diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eff6c453acd..88eec1aece6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ on: jobs: run_linters: name: Run Linters - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Setup Cache @@ -37,7 +37,7 @@ jobs: compile_all_maps: name: Compile All Maps - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Setup Cache @@ -54,7 +54,7 @@ jobs: unit_tests_and_sql: name: Unit Tests + SQL Validation - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 services: mariadb: image: mariadb:latest diff --git a/.github/workflows/render_nanomaps.yml b/.github/workflows/render_nanomaps.yml index bb90815b7f0..403bc8dc77d 100644 --- a/.github/workflows/render_nanomaps.yml +++ b/.github/workflows/render_nanomaps.yml @@ -35,11 +35,6 @@ jobs: git commit -m "NanoMap Auto-Update (`date`)" -a || true git push -f -u origin nanomap-render - - name: 'Push Maps' - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - - name: Create Pull Request uses: repo-sync/pull-request@v2 with: diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000000..5547f1b61f6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "workbench.editorAssociations": [ + { + "filenamePattern": "*.dmi", + "viewType": "imagePreview.previewEditor" + } + ] +} diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index 8917d28d6bb..a1ece757484 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -99,7 +99,7 @@ CREATE TABLE `customuseritems` ( `cuiJobMask` text NOT NULL, PRIMARY KEY (`id`), KEY `cuiCKey` (`cuiCKey`) -) ENGINE=MyISAM AUTO_INCREMENT=56 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -126,7 +126,7 @@ CREATE TABLE `death` ( `fireloss` int(11) NOT NULL, `oxyloss` int(11) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=166546 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=166546 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -241,7 +241,7 @@ CREATE TABLE `feedback` ( `version` tinyint(3) UNSIGNED NOT NULL, `json` LONGTEXT NOT NULL COLLATE 'utf8mb4_general_ci', PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=257638 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=257638 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -321,7 +321,7 @@ CREATE TABLE `karma` ( `spenderip` text NOT NULL, `time` datetime NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=73614 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=73614 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -338,7 +338,7 @@ CREATE TABLE `karmatotals` ( `karmaspent` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`id`), KEY `byondkey` (`byondkey`) -) ENGINE=MyISAM AUTO_INCREMENT=25715 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=25715 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -359,7 +359,7 @@ CREATE TABLE `library` ( PRIMARY KEY (`id`), KEY `ckey` (`ckey`), KEY `flagged` (`flagged`) -) ENGINE=MyISAM AUTO_INCREMENT=4537 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4537 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -375,7 +375,7 @@ CREATE TABLE `legacy_population` ( `admincount` int(11) DEFAULT NULL, `time` datetime NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=2550 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=2550 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -392,7 +392,7 @@ CREATE TABLE `whitelist` ( `species` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`), KEY `ckey` (`ckey`) -) ENGINE=MyISAM AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; diff --git a/SQL/paradise_schema_prefixed.sql b/SQL/paradise_schema_prefixed.sql index b3c8f1f7643..9b2fdb845e0 100644 --- a/SQL/paradise_schema_prefixed.sql +++ b/SQL/paradise_schema_prefixed.sql @@ -98,7 +98,7 @@ CREATE TABLE `SS13_customuseritems` ( `cuiPropAdjust` text, `cuiJobMask` text NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=56 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8mb4; ALTER TABLE `SS13_customuseritems` ADD INDEX(`cuiCKey`); /*!40101 SET character_set_client = @saved_cs_client */; @@ -126,7 +126,7 @@ CREATE TABLE `SS13_death` ( `fireloss` int(11) NOT NULL, `oxyloss` int(11) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=166546 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=166546 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -240,7 +240,7 @@ CREATE TABLE `SS13_feedback` ( `version` tinyint(3) UNSIGNED NOT NULL, `json` LONGTEXT NOT NULL COLLATE 'utf8mb4_general_ci', PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=257638 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=257638 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -320,7 +320,7 @@ CREATE TABLE `SS13_karma` ( `spenderip` text NOT NULL, `time` datetime NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=73614 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=73614 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -337,7 +337,7 @@ CREATE TABLE `SS13_karmatotals` ( `karmaspent` int(11) NOT NULL DEFAULT 0, PRIMARY KEY (`id`), KEY `byondkey` (`byondkey`) -) ENGINE=MyISAM AUTO_INCREMENT=25715 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=25715 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -358,7 +358,7 @@ CREATE TABLE `SS13_library` ( PRIMARY KEY (`id`), KEY `ckey` (`ckey`), KEY `flagged` (`flagged`) -) ENGINE=MyISAM AUTO_INCREMENT=4537 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4537 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -374,7 +374,7 @@ CREATE TABLE `SS13_legacy_population` ( `admincount` int(11) DEFAULT NULL, `time` datetime NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=2550 DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB AUTO_INCREMENT=2550 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -391,7 +391,7 @@ CREATE TABLE `SS13_whitelist` ( `species` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`), KEY `ckey` (`ckey`) -) ENGINE=MyISAM AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; diff --git a/SQL/updates/22-23.sql b/SQL/updates/22-23.sql new file mode 100644 index 00000000000..975e8acd413 --- /dev/null +++ b/SQL/updates/22-23.sql @@ -0,0 +1,11 @@ +# Updating SQL from version 22 to 23 -AffectedArc07 +# Converts existing MyISAM tables to InnoDB + +ALTER TABLE `customuseritems` ENGINE=InnoDB; +ALTER TABLE `death` ENGINE=InnoDB; +ALTER TABLE `feedback` ENGINE=InnoDB; +ALTER TABLE `karma` ENGINE=InnoDB; +ALTER TABLE `karmatotals` ENGINE=InnoDB; +ALTER TABLE `legacy_population` ENGINE=InnoDB; +ALTER TABLE `library` ENGINE=InnoDB; +ALTER TABLE `whitelist` ENGINE=InnoDB; diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index e8162ac7e5f..0eed170f63f 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -4095,7 +4095,7 @@ /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/suit_storage_unit/engine/secure, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "ajT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable/yellow{ @@ -4603,7 +4603,7 @@ /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/suit_storage_unit/engine/secure, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "akQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -5164,15 +5164,13 @@ /turf/simulated/floor/plating, /area/security/main) "alQ" = ( -/obj/effect/decal/warning_stripes/yellow/hollow, -/obj/machinery/door/poddoor{ - density = 0; - icon_state = "open"; - id_tag = "Singularity"; - name = "Containment Blast Doors"; - opacity = 0 +/obj/structure/sign/securearea{ + pixel_y = 32 }, -/turf/simulated/floor/plasteel, +/obj/machinery/light_switch{ + pixel_x = -9 + }, +/turf/simulated/wall/r_wall, /area/engine/engineering) "alR" = ( /obj/machinery/door/firedoor, @@ -7246,11 +7244,6 @@ icon_state = "redcorner" }, /area/security/brig) -"aqe" = ( -/obj/effect/decal/warning_stripes/west, -/obj/machinery/suit_storage_unit/engine/secure, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "aqh" = ( /obj/machinery/gravity_generator/main/station, /turf/simulated/floor/plasteel{ @@ -7356,16 +7349,6 @@ }, /turf/simulated/floor/plating, /area/maintenance/fore) -"aqv" = ( -/obj/machinery/alarm{ - dir = 4; - icon_state = "alarm0"; - pixel_x = -22 - }, -/obj/effect/decal/warning_stripes/southwest, -/obj/machinery/suit_storage_unit/engine/secure, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "aqw" = ( /obj/structure/closet/crate, /obj/item/bodybag, @@ -8745,26 +8728,6 @@ icon_state = "showroomfloor" }, /area/security/warden) -"asX" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal{ - amount = 50 - }, -/obj/item/stack/sheet/glass{ - amount = 50 - }, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/obj/machinery/cell_charger, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "vault" - }, -/area/engine/mechanic_workshop) "asZ" = ( /turf/simulated/floor/engine, /area/security/podbay) @@ -12290,10 +12253,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/fore) -"azM" = ( -/obj/machinery/space_heater, -/turf/simulated/floor/plating, -/area/engine/engineering) "azN" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -13417,10 +13376,10 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "aCd" = ( +/obj/effect/decal/warning_stripes/northwest, /obj/structure/sign/securearea{ pixel_y = 32 }, -/obj/effect/decal/warning_stripes/northwest, /turf/simulated/floor/plasteel, /area/engine/engineering) "aCe" = ( @@ -13435,33 +13394,20 @@ }, /area/crew_quarters/sleep) "aCf" = ( -/obj/machinery/light_switch{ - pixel_x = 23 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/shower{ - dir = 8; - icon_state = "shower"; - name = "emergency shower"; - tag = "icon-shower (WEST)" - }, +/obj/effect/decal/warning_stripes/northeast, /obj/structure/sign/securearea{ pixel_y = 32 }, -/obj/effect/decal/warning_stripes/northeast, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, /turf/simulated/floor/plasteel, /area/engine/engineering) "aCg" = ( /turf/simulated/wall/r_wall, /area/engine/engineering) "aCh" = ( -/obj/structure/closet/emcloset, -/turf/simulated/floor/plating, +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/engine/engineering) "aCi" = ( /obj/machinery/newscaster{ @@ -13648,13 +13594,16 @@ }, /area/security/nuke_storage) "aCD" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" +/obj/machinery/atmospherics/unary/portables_connector{ + layer = 2 + }, +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" }, -/turf/simulated/floor/plating/airless, /area/engine/engineering) "aCE" = ( /obj/machinery/alarm{ @@ -13823,7 +13772,7 @@ icon_state = "0-8" }, /turf/simulated/floor/plating, -/area/engine/engineering) +/area/engine/equipmentstorage) "aCN" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -13992,14 +13941,9 @@ /area/engine/gravitygenerator) "aDc" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/warning_stripes/north, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5; - level = 1 - }, /turf/simulated/floor/plasteel, /area/engine/engineering) "aDd" = ( @@ -14019,13 +13963,12 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "aDf" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 2 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" }, -/turf/simulated/floor/plating/airless, /area/engine/engineering) "aDg" = ( /obj/structure/table, @@ -14034,75 +13977,19 @@ icon_state = "showroomfloor" }, /area/security/warden) -"aDh" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aDi" = ( -/turf/simulated/floor/plating/airless, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Fore"; + dir = 8; + network = list("SS13","engine") + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/engine/engineering) -"aDj" = ( -/obj/structure/cable, -/obj/machinery/power/emitter{ - anchored = 1; - state = 2 - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) -"aDk" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/plating/airless, -/area/maintenance/starboard) -"aDl" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) -"aDm" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) -"aDn" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/simulated/wall/r_wall, -/area/engine/engineering) -"aDo" = ( -/obj/structure/grille, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) "aDp" = ( /obj/item/stack/cable_coil, /turf/simulated/floor/plating/airless, @@ -14148,16 +14035,13 @@ name = "\improper Mining Office" }) "aDw" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ +/obj/effect/decal/warning_stripes/east, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/obj/effect/decal/warning_stripes/east, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/engine/engineering) "aDx" = ( @@ -14239,19 +14123,6 @@ /area/quartermaster/sorting{ name = "\improper Warehouse" }) -"aDC" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Fore Arm - Far"; - dir = 8; - network = list("Singulo") - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aDD" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -14331,8 +14202,24 @@ /turf/simulated/floor/plating, /area/bridge) "aDL" = ( -/obj/effect/spawner/window/reinforced, -/turf/simulated/floor/plating, +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/south, +/turf/simulated/floor/engine, /area/engine/engineering) "aDM" = ( /obj/machinery/flasher{ @@ -14556,14 +14443,14 @@ /turf/simulated/floor/carpet, /area/security/detectives_office) "aEd" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 }, /turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "vault" + icon_state = "dark" }, /area/engine/engineering) "aEe" = ( @@ -14607,14 +14494,6 @@ }, /turf/simulated/floor/plating, /area/bridge) -"aEi" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aEj" = ( /obj/machinery/atmospherics/pipe/simple/hidden/universal, /turf/simulated/floor/plating, @@ -14647,17 +14526,20 @@ }, /area/crew_quarters/sleep) "aEn" = ( -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access = null; - req_access_txt = "10;13" +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10"; + req_one_access_txt = "0" }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" }, -/turf/simulated/floor/plating, /area/engine/engineering) "aEo" = ( /obj/structure/disposalpipe/segment{ @@ -14833,7 +14715,7 @@ }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/maintenance/starboard) +/area/engine/engineering) "aEy" = ( /obj/machinery/door/window/southright{ dir = 4; @@ -14845,17 +14727,17 @@ /turf/simulated/floor/plasteel, /area/engine/engineering) "aEz" = ( -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/wrench, /obj/machinery/light{ dir = 8 }, -/obj/item/hand_labeler, /obj/structure/window/reinforced{ dir = 1 }, /obj/effect/decal/warning_stripes/yellow, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/engine/engineering) "aEA" = ( @@ -14913,14 +14795,6 @@ /obj/effect/decal/warning_stripes/west, /turf/simulated/floor/plasteel, /area/engine/engineering) -"aEF" = ( -/obj/item/multitool, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) -"aEG" = ( -/obj/item/radio/off, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aEH" = ( /obj/structure/closet/crate, /obj/item/stack/ore/glass, @@ -15059,14 +14933,6 @@ icon_state = "dark" }, /area/security/brig) -"aES" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aET" = ( /turf/simulated/floor/plasteel{ icon_state = "floorgrime" @@ -15095,15 +14961,6 @@ icon_state = "showroomfloor" }, /area/security/warden) -"aEW" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aEX" = ( /obj/structure/closet/crate{ name = "Gold Crate" @@ -15138,18 +14995,6 @@ luminosity = 2 }, /area/security/nuke_storage) -"aFa" = ( -/obj/structure/grille, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aFb" = ( /obj/item/coin/silver{ pixel_x = 7; @@ -15257,29 +15102,11 @@ icon_state = "floorgrime" }, /area/security/brig) -"aFk" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aFl" = ( /turf/simulated/floor/plasteel{ icon_state = "red" }, /area/security/brig) -"aFm" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aFn" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 @@ -15583,14 +15410,6 @@ /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/engine/engineering) -"aFN" = ( -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/decal/warning_stripes/yellow, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "aFO" = ( /obj/machinery/door/poddoor/shutters{ dir = 8; @@ -15644,10 +15463,6 @@ "aFR" = ( /turf/simulated/wall, /area/engine/engineering) -"aFS" = ( -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aFT" = ( /obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plating, @@ -15674,32 +15489,20 @@ }, /area/security/brig) "aFY" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plating, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 2 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/engine/engineering) "aFZ" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Fore Arm - Near"; - dir = 4; - network = list("Singulo") +/obj/structure/closet/firecloset, +/turf/simulated/floor/plasteel{ + icon_state = "dark" }, -/turf/space, -/area/space/nearstation) +/area/engine/engineering) "aGb" = ( -/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/item/radio/intercom{ frequency = 1459; name = "Station Intercom (General)"; @@ -15710,7 +15513,7 @@ dir = 2; network = list("SS13") }, -/obj/effect/decal/warning_stripes/yellow, +/obj/effect/decal/warning_stripes/northwest, /turf/simulated/floor/plasteel, /area/engine/engineering) "aGc" = ( @@ -15722,24 +15525,6 @@ /obj/effect/decal/warning_stripes/northwest, /turf/simulated/floor/plasteel, /area/engine/engineering) -"aGd" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/east, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/engine/engineering) -"aGe" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'RADIOACTIVE AREA'"; - icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/east, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "aGf" = ( /obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel, @@ -16003,17 +15788,9 @@ }, /area/security/brig) "aGC" = ( -/obj/structure/disposalpipe/sortjunction{ - sortType = 4 - }, -/obj/effect/landmark/start{ - name = "Station Engineer" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel, /area/engine/engineering) "aGD" = ( @@ -16163,14 +15940,6 @@ }, /turf/simulated/floor/plasteel, /area/crew_quarters/sleep) -"aGT" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aGU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -16280,14 +16049,7 @@ }, /area/security/processing) "aHi" = ( -/obj/machinery/door/poddoor{ - density = 0; - icon_state = "open"; - id_tag = "Singularity"; - name = "Containment Blast Doors"; - opacity = 0 - }, -/obj/effect/decal/warning_stripes/west, +/obj/effect/spawner/window/reinforced/plasma, /turf/simulated/floor/plating, /area/engine/engineering) "aHj" = ( @@ -16476,7 +16238,7 @@ }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aHI" = ( /turf/simulated/floor/plasteel{ dir = 1; @@ -16794,10 +16556,6 @@ /area/crew_quarters/locker/locker_toilet{ name = "\improper Restrooms" }) -"aIf" = ( -/obj/structure/lattice, -/turf/space, -/area/engine/engineering) "aIg" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/fungus, @@ -16813,12 +16571,17 @@ name = "\improper Restrooms" }) "aIi" = ( -/obj/structure/disposalpipe/segment, -/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/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plasteel, /area/engine/engineering) "aIk" = ( @@ -16903,12 +16666,22 @@ /turf/simulated/floor/mineral/tranquillite, /area/crew_quarters/sleep) "aIu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/machinery/atmospherics/unary/vent_scrubber, /turf/simulated/floor/plasteel, /area/engine/engineering) "aIv" = ( @@ -16918,15 +16691,12 @@ icon_state = "2-4" }, /obj/effect/decal/warning_stripes/northeast, -/obj/machinery/atmospherics/unary/vent_pump, +/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aIw" = ( -/obj/effect/landmark/start{ - name = "Station Engineer" - }, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aIy" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; @@ -16945,7 +16715,7 @@ }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aIA" = ( /obj/effect/decal/warning_stripes/west, /turf/simulated/floor/plasteel, @@ -16959,7 +16729,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/engine/engineering) "aIC" = ( @@ -16998,7 +16768,7 @@ dir = 6 }, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aIE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -17016,11 +16786,17 @@ /area/engine/engineering) "aIF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 + dir = 9 }, -/obj/effect/decal/warning_stripes/south, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/effect/decal/warning_stripes/east, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4; + initialize_directions = 11 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/simulated/floor/plasteel, /area/engine/engineering) @@ -17147,7 +16923,7 @@ }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aIT" = ( /obj/machinery/light/small, /obj/structure/table/wood, @@ -17174,18 +16950,7 @@ }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) -"aIW" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/east, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aIX" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable/yellow{ @@ -17239,21 +17004,8 @@ /turf/simulated/floor/plasteel, /area/hallway/primary/fore) "aJb" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel, +/obj/effect/spawner/window/reinforced/plasma, +/turf/simulated/floor/engine, /area/engine/engineering) "aJc" = ( /turf/simulated/floor/plasteel, @@ -17392,23 +17144,6 @@ }, /turf/simulated/floor/plasteel, /area/hallway/primary/fore) -"aJo" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/item/clothing/glasses/meson, -/obj/machinery/door/poddoor{ - density = 0; - icon_state = "open"; - id_tag = "Singularity"; - name = "Containment Blast Doors"; - opacity = 0 - }, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plating, -/area/engine/engineering) "aJp" = ( /obj/structure/chair/office/dark{ dir = 8 @@ -17469,13 +17204,21 @@ }, /area/security/detectives_office) "aJt" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/manifold/visible/green{ + dir = 1; + tag = "icon-manifold-g (NORTH)" }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes/north, +/obj/machinery/meter, +/turf/simulated/floor/engine, +/area/engine/engineering) "aJu" = ( /obj/machinery/door/airlock/maintenance{ name = "Law Office Maintenance"; @@ -17509,14 +17252,6 @@ /area/crew_quarters/locker/locker_toilet{ name = "\improper Restrooms" }) -"aJx" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) "aJy" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -17654,20 +17389,14 @@ }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aJJ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/effect/spawner/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 2 }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/turf/simulated/floor/engine, +/area/engine/engineering) "aJK" = ( /obj/machinery/door/airlock/bananium/glass, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -17688,7 +17417,7 @@ dir = 4 }, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aJN" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable/yellow, @@ -17718,7 +17447,7 @@ dir = 9 }, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aJR" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -17738,7 +17467,7 @@ dir = 4 }, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aJS" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -17775,34 +17504,30 @@ }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aJU" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/obj/effect/decal/warning_stripes/yellow, +/obj/effect/decal/warning_stripes/east, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5; + level = 1 + }, /turf/simulated/floor/plasteel, /area/engine/engineering) "aJV" = ( -/obj/structure/rack{ - dir = 8; - layer = 2.9 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, -/obj/item/storage/belt/utility, -/obj/item/wrench, -/obj/item/weldingtool, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/effect/decal/warning_stripes/yellow, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/engine, /area/engine/engineering) "aJW" = ( -/obj/machinery/field/generator{ - anchored = 1; - state = 2 +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 10; + initialize_directions = 10 }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/obj/effect/decal/warning_stripes/southwestcorner, +/turf/simulated/floor/engine, +/area/engine/engineering) "aJX" = ( /turf/simulated/floor/wood, /area/lawoffice) @@ -17822,18 +17547,16 @@ /turf/simulated/floor/plating, /area/bridge) "aJZ" = ( -/obj/structure/closet/radiation, -/obj/effect/decal/warning_stripes/yellow, -/turf/simulated/floor/plasteel, -/area/engine/engineering) -"aKa" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10"; + req_one_access_txt = "0" }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "aKb" = ( /obj/effect/spawner/window/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -17960,14 +17683,6 @@ }, /turf/simulated/floor/plating, /area/hallway/primary/fore) -"aKp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aKq" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable/yellow{ @@ -18342,6 +18057,13 @@ icon_state = "grimy" }, /area/security/detectives_office) +"aKT" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 4 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) "aKU" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -18541,21 +18263,6 @@ /obj/structure/closet/secure_closet/clown, /turf/simulated/floor/wood, /area/crew_quarters/sleep) -"aLn" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/effect/decal/warning_stripes/southeast, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "aLo" = ( /obj/machinery/door/poddoor/shutters{ dir = 2; @@ -18602,7 +18309,7 @@ /obj/item/grenade/chem_grenade/metalfoam, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aLq" = ( /obj/structure/table, /obj/item/stack/rods{ @@ -18612,7 +18319,7 @@ /obj/item/storage/box/lights/mixed, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aLr" = ( /obj/structure/closet/crate{ name = "solar pack crate" @@ -18635,27 +18342,7 @@ /obj/item/paper/solar, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) -"aLs" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plasteel, -/area/engine/engineering) -"aLt" = ( -/obj/effect/landmark/start{ - name = "Station Engineer" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aLu" = ( /obj/structure/table, /obj/item/stack/cable_coil{ @@ -18675,7 +18362,7 @@ }, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aLv" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -18688,30 +18375,30 @@ }, /area/security/processing) "aLw" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes/south, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/engine, /area/engine/engineering) "aLx" = ( -/obj/item/wirecutters, -/obj/structure/lattice, -/turf/space, -/area/space/nearstation) +/obj/machinery/power/emitter{ + anchored = 1; + state = 2 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "aLy" = ( /obj/machinery/computer/guestpass{ pixel_x = 30 @@ -18748,21 +18435,15 @@ /turf/simulated/floor/plasteel, /area/construction) "aLE" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 8 }, -/obj/machinery/door/poddoor{ - density = 0; - icon_state = "open"; - id_tag = "Singularity"; - name = "Containment Blast Doors"; - opacity = 0 +/obj/machinery/portable_atmospherics/canister, +/obj/effect/decal/warning_stripes/yellow/hollow, +/turf/simulated/floor/plasteel{ + icon_state = "dark" }, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plating, -/area/engine/engineering) +/area/engine/supermatter) "aLF" = ( /obj/structure/closet/toolcloset, /obj/machinery/light_construct{ @@ -18800,23 +18481,20 @@ /turf/simulated/floor/plating, /area/maintenance/fore) "aLN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/atmospherics/binary/pump{ + dir = 8; + name = "Mix Bypass" }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) -"aLO" = ( -/obj/machinery/power/grounding_rod{ - anchored = 1 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, /obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" + d1 = 2; + d2 = 8; + icon_state = "2-8" }, -/turf/simulated/floor/plating/airless, +/obj/effect/decal/warning_stripes/south, +/turf/simulated/floor/engine, /area/engine/engineering) "aLP" = ( /obj/structure/disposalpipe/segment, @@ -18844,7 +18522,7 @@ /obj/structure/cable/yellow, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/equipmentstorage) "aLS" = ( /obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel, @@ -18857,26 +18535,11 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aLU" = ( -/obj/structure/table, -/obj/machinery/light_switch{ - pixel_x = 23 - }, /obj/machinery/light{ dir = 4; icon_state = "tube1" }, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/effect/decal/warning_stripes/yellow, +/obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel, /area/engine/engineering) "aLV" = ( @@ -19271,10 +18934,6 @@ /area/construction/Storage{ name = "Storage Wing" }) -"aMF" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "aMG" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; @@ -19307,11 +18966,17 @@ name = "Storage Wing" }) "aMI" = ( -/obj/machinery/power/grounding_rod{ - anchored = 1 +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 2 }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/engine, +/area/engine/engineering) "aMJ" = ( /obj/machinery/door/window{ dir = 1; @@ -19363,20 +19028,19 @@ /turf/simulated/floor/plating, /area/turret_protected/ai_upload) "aMQ" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/crowbar, -/obj/item/wirecutters, -/obj/item/stack/cable_coil, -/obj/effect/decal/warning_stripes/yellow, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/south, +/turf/simulated/floor/engine, /area/engine/engineering) "aMR" = ( /obj/machinery/firealarm{ @@ -19421,18 +19085,19 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aMU" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /obj/structure/cable{ d1 = 2; d2 = 4; icon_state = "2-4" }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/southeastcorner, +/turf/simulated/floor/engine, /area/engine/engineering) "aMW" = ( /obj/structure/cable/yellow{ @@ -19462,9 +19127,13 @@ d2 = 8; icon_state = "2-8" }, -/obj/effect/decal/warning_stripes/southeastcorner, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/simulated/floor/plasteel, /area/engine/engineering) @@ -19565,13 +19234,15 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aNd" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'RADIOACTIVE AREA'"; - icon_state = "radiation"; - name = "RADIOACTIVE AREA" +/obj/machinery/atmospherics/binary/pump{ + dir = 8; + name = "External Gas to Loop" }, -/turf/simulated/wall/r_wall, -/area/engine/engineering) +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/supermatter) "aNe" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -20046,14 +19717,14 @@ state = 2 }, /turf/simulated/floor/plating, -/area/engine/engineering) +/area/storage/secure) "aNT" = ( /obj/machinery/field/generator{ anchored = 0; state = 2 }, /turf/simulated/floor/plating, -/area/engine/engineering) +/area/storage/secure) "aNU" = ( /obj/machinery/shieldgen, /obj/machinery/light/small{ @@ -20065,11 +19736,11 @@ network = list("SS13") }, /turf/simulated/floor/plating, -/area/engine/engineering) +/area/storage/secure) "aNV" = ( /obj/machinery/shieldgen, /turf/simulated/floor/plating, -/area/engine/engineering) +/area/storage/secure) "aNX" = ( /obj/machinery/camera{ c_tag = "Cargo Bay - Storage Wing Entrance"; @@ -20100,15 +19771,15 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aOa" = ( -/obj/machinery/power/rad_collector{ - anchored = 1 +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10"; + req_one_access_txt = "0" }, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 2 }, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plating, +/turf/simulated/floor/engine, /area/engine/engineering) "aOb" = ( /obj/machinery/computer/security{ @@ -20121,21 +19792,13 @@ icon_state = "dark" }, /area/security/brig) -"aOc" = ( -/obj/effect/landmark/start{ - name = "Station Engineer" - }, -/turf/simulated/floor/plating, -/area/engine/engineering) "aOd" = ( /turf/simulated/floor/plating, /area/engine/engineering) "aOe" = ( -/obj/structure/particle_accelerator/particle_emitter/right{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/engine/engineering) +/obj/machinery/atmospherics/pipe/simple/visible/universal, +/turf/simulated/wall/r_wall, +/area/engine/supermatter) "aOf" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 @@ -20158,7 +19821,15 @@ name = "Storage Wing" }) "aOg" = ( -/obj/effect/decal/warning_stripes/northeast, +/obj/effect/decal/warning_stripes/east, +/obj/structure/table, +/obj/item/geiger_counter, +/obj/item/geiger_counter, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/head/radiation, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/glasses/meson/engine, /turf/simulated/floor/plasteel, /area/engine/engineering) "aOh" = ( @@ -20203,10 +19874,6 @@ icon_state = "dark" }, /area/security/brig) -"aOj" = ( -/obj/item/crowbar, -/turf/space, -/area/space/nearstation) "aOk" = ( /obj/machinery/alarm{ dir = 4; @@ -20222,10 +19889,6 @@ }, /turf/simulated/floor/plating, /area/construction) -"aOm" = ( -/obj/effect/decal/warning_stripes/northwest, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) "aOp" = ( /obj/machinery/door/poddoor{ id_tag = "QMLoaddoor"; @@ -20236,10 +19899,6 @@ }, /turf/simulated/floor/plating, /area/quartermaster/storage) -"aOq" = ( -/obj/effect/decal/warning_stripes/northeast, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) "aOs" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ req_access_txt = 1 @@ -20251,18 +19910,6 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/quartermaster/storage) -"aOv" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes/northeastcorner, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "aOw" = ( /obj/structure/toilet{ pixel_y = 8 @@ -20530,20 +20177,18 @@ name = "\improper Restrooms" }) "aPa" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + dir = 8; + initialize_directions = 11; + level = 2 + }, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/machinery/door/poddoor{ - density = 0; - icon_state = "open"; - id_tag = "Singularity"; - name = "Containment Blast Doors"; - opacity = 0 - }, -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, /area/engine/engineering) "aPb" = ( /obj/structure/disposalpipe/segment, @@ -20566,13 +20211,6 @@ icon_state = "redcorner" }, /area/security/brig) -"aPd" = ( -/obj/machinery/the_singularitygen{ - anchored = 1 - }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) "aPe" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/warning_stripes/west, @@ -20587,19 +20225,6 @@ /obj/structure/plasticflaps/mining, /turf/simulated/floor/plating, /area/quartermaster/storage) -"aPg" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) "aPh" = ( /obj/structure/table, /obj/item/hatchet, @@ -20646,7 +20271,7 @@ "aPl" = ( /obj/machinery/portable_atmospherics/canister/toxins, /turf/simulated/floor/plating, -/area/engine/engineering) +/area/storage/secure) "aPm" = ( /obj/machinery/door_timer{ dir = 1; @@ -20707,29 +20332,59 @@ /turf/simulated/floor/plasteel, /area/construction) "aPs" = ( -/obj/structure/particle_accelerator/end_cap{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + dir = 8; + initialize_directions = 11; + level = 2 }, -/turf/simulated/floor/plating, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/warning_stripes/east, +/obj/machinery/door_control{ + id = "engsm"; + name = "Radiation Shutters Control"; + pixel_x = 24; + req_access_txt = "10"; + req_one_access = null + }, +/turf/simulated/floor/engine, /area/engine/engineering) "aPt" = ( -/obj/structure/particle_accelerator/fuel_chamber{ +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 4 }, -/turf/simulated/floor/plating, -/area/engine/engineering) +/turf/simulated/wall/r_wall, +/area/engine/supermatter) "aPu" = ( -/obj/structure/particle_accelerator/power_box{ - dir = 4 +/obj/machinery/atmospherics/binary/pump{ + dir = 4; + name = "Gas to Chamber" }, -/turf/simulated/floor/plating, -/area/engine/engineering) +/obj/machinery/power/apc{ + cell_type = 25000; + dir = 1; + name = "Engineering Engine Super APC"; + pixel_x = 0; + pixel_y = 24; + shock_proof = 1 + }, +/obj/structure/cable/yellow{ + d1 = 0; + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) "aPv" = ( -/obj/structure/particle_accelerator/particle_emitter/center{ - dir = 4 +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 9 }, -/turf/simulated/floor/plating, -/area/engine/engineering) +/turf/simulated/wall/r_wall, +/area/engine/supermatter) "aPw" = ( /obj/machinery/door_control{ id = "qm_warehouse"; @@ -20755,12 +20410,20 @@ name = "Storage Wing" }) "aPy" = ( -/obj/machinery/power/tesla_coil{ - anchored = 1 +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/structure/cable, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/obj/effect/decal/warning_stripes/northeast, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/binary/valve/digital/open{ + name = "Output Release" + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "aPz" = ( /obj/item/seeds/apple, /obj/item/seeds/banana, @@ -20879,15 +20542,17 @@ /turf/simulated/floor/plasteel, /area/engine/engineering) "aPL" = ( -/obj/machinery/door/poddoor{ - density = 0; - icon_state = "open"; - id_tag = "Singularity"; - name = "Containment Blast Doors"; - opacity = 0 +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10"; + req_one_access_txt = "0" }, -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/engine, /area/engine/engineering) "aPM" = ( /obj/structure/window/reinforced{ @@ -21300,6 +20965,15 @@ icon_state = "neutralcorner" }, /area/crew_quarters/locker) +"aQF" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/plasteel, +/area/engine/engineering) "aQG" = ( /obj/effect/decal/warning_stripes/arrow{ dir = 8; @@ -21428,30 +21102,32 @@ name = "\improper Garden" }) "aQR" = ( +/obj/effect/decal/warning_stripes/east, /obj/structure/table, -/obj/machinery/door_control{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = 25; - req_access_txt = "11" - }, -/obj/item/storage/toolbox/electrical{ +/obj/item/rpd, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/head/radiation, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = 1; pixel_y = 5 }, -/obj/effect/decal/warning_stripes/yellow, -/obj/item/clothing/glasses/meson/engine, /turf/simulated/floor/plasteel, /area/engine/engineering) "aQS" = ( /obj/machinery/power/emitter, /turf/simulated/floor/plating, -/area/engine/engineering) +/area/storage/secure) "aQT" = ( /obj/effect/landmark{ name = "blobstart" }, /turf/simulated/floor/plating, -/area/engine/engineering) +/area/storage/secure) "aQU" = ( /obj/effect/decal/warning_stripes/southwestcorner, /turf/simulated/floor/plasteel, @@ -21495,72 +21171,70 @@ }, /turf/simulated/floor/plasteel, /area/engine/engineering) -"aQZ" = ( -/obj/machinery/door_control{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" - }, -/obj/effect/decal/warning_stripes/northwest, -/turf/simulated/floor/plating, -/area/engine/engineering) "aRa" = ( -/obj/structure/cable{ +/obj/machinery/atmospherics/pipe/simple/visible/supply{ + dir = 6 + }, +/turf/simulated/wall/r_wall, +/area/engine/supermatter) +"aRb" = ( +/obj/machinery/door/airlock/engineering/glass{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plating, -/area/engine/engineering) -"aRb" = ( -/obj/machinery/particle_accelerator/control_box, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/turf/simulated/floor/plating, -/area/engine/engineering) +/turf/simulated/floor/engine, +/area/engine/supermatter) "aRc" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/simulated/floor/plating, -/area/engine/engineering) -"aRd" = ( -/obj/structure/particle_accelerator/particle_emitter/left{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/engine/engineering) -"aRe" = ( -/obj/item/weldingtool, -/turf/space, -/area/space/nearstation) -"aRf" = ( -/obj/item/wirecutters, -/obj/structure/cable{ +/obj/structure/cable/yellow{ d1 = 1; - d2 = 4; - icon_state = "1-4" + d2 = 8; + icon_state = "1-8" }, -/obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plating, +/turf/simulated/floor/engine, +/area/engine/supermatter) +"aRd" = ( +/obj/machinery/door/airlock/engineering/glass{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) +"aRe" = ( +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 2 + }, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/engine, /area/engine/engineering) +"aRf" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) "aRg" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + dir = 8; + initialize_directions = 11; + level = 2 + }, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plating, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, /area/engine/engineering) "aRh" = ( /obj/effect/decal/warning_stripes/west, @@ -21627,29 +21301,17 @@ }, /turf/simulated/floor/plasteel, /area/quartermaster/storage) -"aRr" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Particle Accelerator"; - dir = 2; - network = list("Singulo","SS13") - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plating, -/area/engine/engineering) "aRs" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/visible/supply{ + dir = 10 }, -/obj/effect/decal/warning_stripes/northeast, -/turf/simulated/floor/plating, -/area/engine/engineering) +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) "aRt" = ( /obj/structure/mirror{ pixel_x = -28 @@ -22068,7 +21730,7 @@ /obj/machinery/power/emitter, /obj/machinery/light/small, /turf/simulated/floor/plating, -/area/engine/engineering) +/area/storage/secure) "aSh" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/metal{ @@ -22091,17 +21753,7 @@ }, /obj/item/gps, /turf/simulated/floor/plating, -/area/engine/engineering) -"aSi" = ( -/obj/machinery/the_singularitygen{ - anchored = 0 - }, -/turf/simulated/floor/plating, -/area/engine/engineering) -"aSk" = ( -/obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/area/storage/secure) "aSl" = ( /obj/machinery/navbeacon{ codes_txt = "delivery"; @@ -22129,13 +21781,17 @@ /turf/simulated/floor/plasteel, /area/engine/engineering) "aSo" = ( -/obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plating, -/area/engine/engineering) +/turf/simulated/floor/engine, +/area/engine/supermatter) "aSp" = ( -/obj/effect/decal/warning_stripes/southwest, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/obj/structure/reflector/box{ + anchored = 1; + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "aSq" = ( /turf/simulated/wall/mineral/titanium, /area/shuttle/pod_1) @@ -22202,13 +21858,8 @@ name = "\improper Garden" }) "aSC" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high{ - charge = 100; - maxcharge = 15000 - }, /obj/effect/decal/warning_stripes/yellow, +/obj/machinery/computer/sm_monitor, /turf/simulated/floor/plasteel, /area/engine/engineering) "aSD" = ( @@ -22234,8 +21885,12 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes/southeastcorner, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, /turf/simulated/floor/plasteel, /area/engine/engineering) "aSF" = ( @@ -22597,15 +22252,6 @@ /obj/machinery/hologram/holopad, /turf/simulated/floor/wood, /area/lawoffice) -"aTl" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plating, -/area/engine/engineering) "aTm" = ( /obj/machinery/firealarm{ dir = 8; @@ -22865,10 +22511,6 @@ /area/hallway/secondary/construction{ name = "\improper Garden" }) -"aTG" = ( -/obj/effect/decal/warning_stripes/southeast, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) "aTH" = ( /obj/machinery/power/apc{ dir = 4; @@ -22896,54 +22538,35 @@ /area/hallway/secondary/construction{ name = "\improper Garden" }) -"aTI" = ( -/obj/machinery/the_singularitygen/tesla{ - anchored = 1 - }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) "aTJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/machinery/light{ + dir = 4 }, -/turf/simulated/floor/plating, -/area/engine/engineering) -"aTK" = ( /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, /obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plating, +/turf/simulated/floor/engine, /area/engine/engineering) +"aTK" = ( +/obj/structure/window/plasmareinforced, +/obj/machinery/atmospherics/pipe/manifold/visible/supply{ + dir = 8 + }, +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/structure/cable, +/turf/simulated/floor/engine, +/area/engine/supermatter) "aTL" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/quartermaster/storage) -"aTM" = ( -/obj/machinery/power/tesla_coil{ - anchored = 1 - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) -"aTO" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aTP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plating, @@ -22955,9 +22578,11 @@ /turf/simulated/floor/plasteel, /area/construction) "aTR" = ( -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plating, -/area/engine/engineering) +/obj/machinery/atmospherics/pipe/simple/visible/green{ + dir = 4 + }, +/turf/simulated/wall/r_wall, +/area/engine/supermatter) "aTS" = ( /obj/docking_port/stationary{ dir = 8; @@ -22986,9 +22611,9 @@ /turf/simulated/floor/plating, /area/quartermaster/storage) "aTV" = ( -/obj/effect/decal/warning_stripes/southeast, -/turf/simulated/floor/plating, -/area/engine/engineering) +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/engine, +/area/engine/supermatter) "aTW" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -23142,13 +22767,6 @@ /turf/simulated/floor/plasteel, /area/storage/primary) "aUh" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring the singularity engine safely."; - dir = 8; - name = "Singularity Monitor"; - network = list("Singulo"); - pixel_x = 32 - }, /obj/machinery/camera{ c_tag = "Engineering - Central"; dir = 8; @@ -23392,18 +23010,6 @@ /area/hallway/secondary/construction{ name = "\improper Garden" }) -"aUF" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plating, -/area/engine/engineering) "aUG" = ( /obj/structure/window/reinforced{ dir = 1 @@ -23472,19 +23078,6 @@ tag = "icon-vault" }, /area/engine/engineering) -"aUM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) "aUN" = ( /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, @@ -23528,7 +23121,6 @@ d2 = 8; icon_state = "2-8" }, -/obj/effect/decal/warning_stripes/east, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/engine/engineering) @@ -23661,17 +23253,13 @@ /turf/simulated/floor/plasteel, /area/engine/engineering) "aVh" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/obj/effect/decal/warning_stripes/yellow, -/turf/simulated/floor/plasteel, -/area/engine/engineering) -"aVi" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/decal/warning_stripes/yellow, +/obj/effect/decal/warning_stripes/east, +/obj/structure/table, +/obj/item/rpd, +/obj/item/geiger_counter, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/glasses/meson, +/obj/item/clothing/head/radiation, /turf/simulated/floor/plasteel, /area/engine/engineering) "aVk" = ( @@ -23766,17 +23354,21 @@ }, /area/crew_quarters/locker) "aVs" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" +/obj/machinery/atmospherics/binary/pump/on{ + name = "Gas to Filter" }, /obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/turf/simulated/floor/plating, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, /area/engine/engineering) "aVt" = ( /obj/structure/table, @@ -24042,25 +23634,6 @@ icon_state = "neutralcorner" }, /area/crew_quarters/locker) -"aVN" = ( -/obj/structure/table, -/obj/item/book/manual/engineering_guide{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/book/manual/engineering_particle_accelerator{ - pixel_x = -2; - pixel_y = 3 - }, -/obj/machinery/door_control{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = 25; - req_access_txt = "11" - }, -/obj/effect/decal/warning_stripes/yellow, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "aVO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -24189,16 +23762,6 @@ /area/hallway/secondary/construction{ name = "\improper Garden" }) -"aWb" = ( -/obj/machinery/door_control{ - id = "Singularity"; - name = "Shutters Control"; - pixel_x = -25; - req_access_txt = "11" - }, -/obj/effect/decal/warning_stripes/southwest, -/turf/simulated/floor/plating, -/area/engine/engineering) "aWc" = ( /turf/simulated/floor/plasteel{ dir = 6; @@ -24239,13 +23802,25 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "aWg" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/green{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Port"; + dir = 8; + network = list("SS13","engine") + }, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plating, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, /area/engine/engineering) "aWh" = ( /obj/machinery/camera/autoname{ @@ -24355,25 +23930,12 @@ }, /area/security/brig) "aWp" = ( -/obj/structure/table, -/obj/item/book/manual/engineering_hacking{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/book/manual/engineering_construction{ - pixel_y = 3 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, /obj/machinery/light{ dir = 4; icon_state = "tube1" }, -/obj/item/book/manual/engineering_singularity_safety{ - pixel_x = -4 - }, -/obj/effect/decal/warning_stripes/yellow, +/obj/effect/decal/warning_stripes/east, +/obj/structure/closet/firecloset, /turf/simulated/floor/plasteel, /area/engine/engineering) "aWq" = ( @@ -24461,6 +24023,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "yellow" @@ -24494,15 +24062,10 @@ icon_state = "neutralcorner" }, /area/crew_quarters/locker) -"aWz" = ( -/obj/machinery/power/grounding_rod{ - anchored = 1 - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "aWA" = ( -/turf/space, -/area/engine/engineering) +/obj/structure/lattice, +/turf/simulated/wall/r_wall, +/area/space/nearstation) "aWB" = ( /obj/structure/window/reinforced{ dir = 1; @@ -24826,22 +24389,15 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aXo" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/manifold/visible/red{ + dir = 1 }, -/obj/structure/rack{ - dir = 8; - layer = 2.9 - }, -/obj/item/crowbar, -/obj/item/stack/cable_coil, -/obj/item/screwdriver, -/obj/item/weldingtool, +/obj/machinery/meter, /obj/effect/decal/warning_stripes/yellow, -/turf/simulated/floor/plasteel, -/area/engine/engineering) +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/supermatter) "aXp" = ( /obj/machinery/vending/crittercare, /obj/effect/decal/warning_stripes/north, @@ -24862,24 +24418,14 @@ name = "\improper Garden" }) "aXs" = ( +/obj/machinery/atmospherics/trinary/filter/flipped, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "90Curve" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, /area/engine/engineering) "aXt" = ( /obj/machinery/computer/security/mining, @@ -25581,9 +25127,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/landmark/start{ - name = "Station Engineer" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -25632,7 +25175,7 @@ icon_state = "vault"; tag = "icon-vault" }, -/area/engine/chiefs_office) +/area/engine/engineering) "aYV" = ( /obj/structure/cable/yellow{ d2 = 4; @@ -25646,16 +25189,16 @@ icon_state = "vault"; tag = "icon-vault" }, -/area/engine/chiefs_office) +/area/engine/engineering) "aYW" = ( /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/obj/effect/decal/warning_stripes/north, +/obj/effect/decal/warning_stripes/east, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 + dir = 10 }, /turf/simulated/floor/plasteel, /area/engine/engineering) @@ -25764,7 +25307,6 @@ d2 = 8; icon_state = "4-8" }, -/obj/effect/decal/warning_stripes/northeastcorner, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4; @@ -25773,68 +25315,50 @@ /turf/simulated/floor/plasteel, /area/engine/engineering) "aZd" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/obj/machinery/power/terminal{ - dir = 1; - icon_state = "term" - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/engine, /area/engine/engineering) "aZe" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, +/obj/effect/spawner/window/reinforced/plasma, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, +/obj/structure/sign/securearea{ + pixel_y = 32 + }, +/turf/simulated/floor/engine, /area/engine/engineering) "aZg" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 5 }, -/obj/effect/decal/warning_stripes/northeast, -/turf/simulated/floor/plasteel, -/area/engine/engineering) +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/supermatter) "aZh" = ( +/obj/machinery/atmospherics/pipe/simple/visible/green, /obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "90Curve" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" }, /obj/structure/cable{ d1 = 1; d2 = 8; icon_state = "1-8" }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, /area/engine/engineering) "aZj" = ( /obj/machinery/door/airlock/external{ @@ -26085,13 +25609,21 @@ }, /area/turret_protected/ai_upload_foyer) "aZO" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/pipe/manifold/visible/green{ + dir = 1; + tag = "icon-manifold-g (NORTH)" + }, +/obj/machinery/meter, +/turf/simulated/floor/engine, /area/engine/engineering) "aZP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -26354,33 +25886,33 @@ }, /area/storage/primary) "bao" = ( +/obj/machinery/atmospherics/pipe/simple/visible/green{ + dir = 5; + initialize_directions = 12; + tag = "icon-intact-g (NORTHEAST)" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /obj/structure/cable{ d1 = 1; d2 = 4; icon_state = "1-4"; - tag = "90Curve" + tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/northeastcorner, +/turf/simulated/floor/engine, /area/engine/engineering) "bap" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/manifold/visible/yellow{ + dir = 4 }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, +/area/engine/engineering) "baq" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -26426,10 +25958,6 @@ /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/quartermaster/storage) -"bat" = ( -/obj/machinery/light_switch, -/turf/simulated/wall, -/area/engine/engineering) "bau" = ( /obj/item/clothing/head/fedora, /obj/structure/table/wood/poker, @@ -26451,12 +25979,13 @@ /obj/effect/decal/warning_stripes/south, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, /turf/simulated/floor/plasteel, /area/engine/engineering) -"bax" = ( -/obj/item/wrench, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "bay" = ( /obj/machinery/hologram/holopad, /obj/structure/cable/yellow{ @@ -26473,16 +26002,6 @@ /area/bridge/meeting_room{ name = "\improper Command Hallway" }) -"baA" = ( -/obj/machinery/light, -/obj/machinery/camera{ - c_tag = "Engineering - Aft"; - dir = 1; - network = list("SS13") - }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "baB" = ( /obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel, @@ -26513,41 +26032,11 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "baE" = ( -/obj/machinery/camera/autoname{ - dir = 4; - network = list("SS13") - }, -/obj/machinery/door_control{ - desc = "A remote control-switch for the engineering security doors."; - id = "Engineering"; - name = "Engineering Lockdown"; - pixel_x = -24; - pixel_y = -6; - req_access_txt = "1" - }, -/obj/machinery/door_control{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = -24; - pixel_y = 5; - req_access_txt = "1" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 4; - external_pressure_bound = 101.325; - on = 1; - pressure_checks = 1 - }, /turf/simulated/floor/plasteel{ - dir = 10; + dir = 9; icon_state = "yellow" }, -/area/engine/engineering) +/area/engine/break_room) "baF" = ( /obj/machinery/light{ dir = 4 @@ -26569,9 +26058,12 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "baG" = ( -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 5 + }, +/turf/space, +/area/space/nearstation) "baH" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 10; @@ -27042,16 +26534,13 @@ }, /area/hallway/primary/central) "bbC" = ( -/obj/effect/landmark/start{ - name = "Station Engineer" +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel, +/obj/effect/decal/warning_stripes/south, +/turf/simulated/floor/engine, /area/engine/engineering) "bbD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -27099,14 +26588,6 @@ "bbH" = ( /turf/simulated/wall, /area/storage/tech) -"bbI" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "bbJ" = ( /obj/structure/cable{ d1 = 2; @@ -27141,16 +26622,8 @@ /turf/simulated/floor/plasteel, /area/engine/engineering) "bbO" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -4; - pixel_y = 10 - }, -/obj/item/pen{ - pixel_x = -3; - pixel_y = 5 - }, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/closet/secure_closet/engineering_welding, /turf/simulated/floor/plasteel, /area/engine/engineering) "bbP" = ( @@ -27225,19 +26698,6 @@ /area/quartermaster/office{ name = "\improper Cargo Office" }) -"bbU" = ( -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2"; - pixel_y = 1 - }, -/obj/machinery/power/emitter{ - anchored = 1; - dir = 1; - state = 2 - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "bbV" = ( /obj/structure/table, /obj/item/analyzer, @@ -27524,22 +26984,9 @@ tag = "icon-vault (SOUTHWEST)" }, /area/turret_protected/ai_upload_foyer) -"bcp" = ( -/obj/machinery/light/small, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "bcq" = ( -/obj/structure/table, -/obj/item/folder/yellow, -/obj/item/folder/yellow, -/obj/item/storage/firstaid/fire, /obj/effect/decal/warning_stripes/yellow, +/obj/structure/closet/secure_closet/engineering_electrical, /turf/simulated/floor/plasteel, /area/engine/engineering) "bcr" = ( @@ -27670,16 +27117,6 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/security/brig) -"bcC" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'RADIOACTIVE AREA'"; - icon_state = "radiation"; - name = "RADIOACTIVE AREA"; - pixel_x = 32 - }, -/obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "bcD" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -27734,18 +27171,6 @@ /area/maintenance/fpmaint2{ name = "Port Maintenance" }) -"bcG" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "bcH" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -28154,18 +27579,12 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "bdp" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Aft Arm - Far"; - dir = 8; - network = list("Singulo") +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 10 }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) +/turf/space, +/area/space/nearstation) "bdq" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -28412,16 +27831,6 @@ }, /turf/simulated/floor/plasteel, /area/hallway/primary/central) -"bdG" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4"; - tag = "90Curve" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "bdH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -29118,12 +28527,6 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /turf/simulated/floor/plasteel, /area/security/brig) -"beU" = ( -/obj/machinery/door/airlock/external{ - name = "South Containment Arm Access" - }, -/turf/simulated/floor/plating, -/area/engine/engineering) "beV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -29153,17 +28556,6 @@ /area/construction/hallway{ name = "\improper MiniSat Exterior" }) -"beZ" = ( -/obj/machinery/camera/emp_proof{ - c_tag = "Aft Arm - Near"; - dir = 4; - network = list("Singulo") - }, -/obj/machinery/power/grounding_rod{ - anchored = 1 - }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) "bfb" = ( /obj/structure/window/reinforced{ dir = 8 @@ -29419,22 +28811,6 @@ /obj/effect/decal/warning_stripes/northeast, /turf/simulated/floor/plasteel, /area/engine/engineering) -"bft" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = -32 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/warning_stripes/southeast, -/turf/simulated/floor/plasteel, -/area/engine/engineering) "bfu" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -29486,24 +28862,14 @@ /turf/simulated/floor/plasteel, /area/engine/engineering) "bfz" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 6; + icon_state = "intact"; + tag = "icon-intact (SOUTHEAST)" }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plating, -/area/engine/engineering) +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) "bfA" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -29520,16 +28886,6 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/security/brig) -"bfB" = ( -/obj/machinery/light, -/obj/structure/grille, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) "bfC" = ( /obj/machinery/status_display{ dir = 4; @@ -30118,17 +29474,15 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "bgE" = ( -/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/machinery/door/airlock/engineering, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel, -/area/engine/engineering) +/area/engine/break_room) "bgF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -30144,10 +29498,6 @@ }, /turf/simulated/floor/plasteel, /area/hallway/primary/central) -"bgG" = ( -/obj/item/cigbutt, -/turf/simulated/floor/plating, -/area/engine/engineering) "bgH" = ( /obj/machinery/ai_status_display{ pixel_y = 32 @@ -30625,19 +29975,10 @@ }, /area/hallway/primary/central) "bhA" = ( -/obj/structure/grille, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating/airless, -/area/engine/engineering) +/obj/structure/lattice, +/obj/structure/lattice/catwalk, +/turf/space, +/area/space/nearstation) "bhB" = ( /obj/machinery/atmospherics/unary/vent_pump{ dir = 4; @@ -31794,13 +31135,6 @@ }, /area/storage/tools) "bjG" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for monitoring the singularity engine safely."; - dir = 8; - name = "Singularity Monitor"; - network = list("Singulo"); - pixel_x = 29 - }, /obj/structure/cable/yellow{ d1 = 1; d2 = 2; @@ -31812,6 +31146,14 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/computer/security/telescreen{ + desc = "A telescreen that connects to the engine's camera network."; + dir = 8; + layer = 4; + name = "Engine Monitor"; + network = list("engine"); + pixel_x = 30 + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "vault" @@ -31879,26 +31221,6 @@ "bjN" = ( /turf/simulated/wall, /area/engine/break_room) -"bjO" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/computer/monitor, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, -/turf/simulated/floor/plasteel{ - dir = 6; - icon_state = "yellow" - }, -/area/engine/engineering) "bjP" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable/yellow, @@ -31930,20 +31252,6 @@ icon_state = "vault" }, /area/turret_protected/ai) -"bjT" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_y = 32 - }, -/obj/effect/decal/warning_stripes/east, -/obj/machinery/atmospherics/pipe/simple/visible{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/engine/engineering) "bjU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4; @@ -32657,16 +31965,11 @@ /turf/simulated/floor/plating, /area/engine/mechanic_workshop) "blj" = ( -/obj/machinery/door/firedoor, /obj/structure/cable/yellow{ d1 = 4; d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock/engineering/glass{ - name = "Mechanic Workshop"; - req_access_txt = "70" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 }, @@ -32674,7 +31977,10 @@ dir = 4; level = 1 }, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "vault" + }, /area/engine/mechanic_workshop) "bll" = ( /obj/structure/closet/emcloset, @@ -34141,27 +33447,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "yellow" - }, -/area/engine/break_room) -"bnD" = ( -/obj/machinery/disposal{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "yellow" - }, +/turf/simulated/floor/plasteel, /area/engine/break_room) "bnE" = ( /obj/machinery/light_switch{ @@ -36019,6 +35306,9 @@ /obj/structure/chair/stool{ pixel_y = 8 }, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, /turf/simulated/floor/plasteel, /area/engine/break_room) "bqT" = ( @@ -36994,6 +36284,9 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/landmark/start{ + name = "Station Engineer" + }, /turf/simulated/floor/plasteel, /area/engine/break_room) "bsE" = ( @@ -37010,15 +36303,13 @@ /turf/simulated/floor/plating, /area/janitor) "bsF" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 4; - on = 1 +/obj/structure/disposalpipe/sortjunction, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 }, /turf/simulated/floor/plasteel, /area/engine/engineering) @@ -37096,6 +36387,8 @@ icon_state = "D-NW"; tag = "icon-D-NW" }, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/visible/yellow, /turf/space, /area/space/nearstation) "bsO" = ( @@ -37239,6 +36532,12 @@ dir = 4; level = 1 }, +/obj/structure/table, +/obj/item/pod_parts/core, +/obj/item/circuitboard/mecha/pod, +/obj/item/clothing/glasses/welding{ + pixel_y = 12 + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "vault" @@ -37255,6 +36554,20 @@ name = "Mechanic Workshop APC"; pixel_y = -25 }, +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/machinery/cell_charger, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "vault" @@ -38639,7 +37952,7 @@ dir = 8; icon_state = "vault" }, -/area/space/nearstation) +/area/engine/break_room) "bvl" = ( /obj/effect/spawner/window/reinforced, /obj/machinery/door/poddoor/shutters{ @@ -38805,7 +38118,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/space/nearstation) +/area/engine/break_room) "bvw" = ( /obj/machinery/alarm{ dir = 4; @@ -39513,6 +38826,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/visible/yellow, /turf/simulated/floor/plating/airless, /area/space/nearstation) "bwG" = ( @@ -41831,7 +41145,7 @@ dir = 8; icon_state = "vault" }, -/area/space/nearstation) +/area/engine/break_room) "bAu" = ( /obj/machinery/vending/boozeomat, /turf/simulated/wall, @@ -41950,15 +41264,11 @@ }, /area/hallway/primary/starboard) "bAL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel, /area/engine/engineering) -"bAO" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/simulated/floor/plating, -/area/engine/break_room) "bAP" = ( /obj/machinery/door/poddoor{ density = 0; @@ -42690,10 +42000,7 @@ name = "\improper Command Hallway" }) "bCj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel, /area/engine/engineering) "bCk" = ( @@ -42880,7 +42187,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/space/nearstation) +/area/engine/break_room) "bCx" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; @@ -43122,7 +42429,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/space/nearstation) +/area/engine/break_room) "bDa" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -44237,13 +43544,13 @@ }, /area/atmos) "bEL" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plating, +/turf/simulated/floor/engine, /area/engine/engineering) "bEM" = ( /obj/machinery/computer/atmos_alert, @@ -48803,18 +48110,6 @@ }, /turf/simulated/floor/wood, /area/library) -"bMO" = ( -/obj/machinery/power/rad_collector{ - anchored = 1 - }, -/obj/item/tank/internals/plasma, -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plating, -/area/engine/engineering) "bMP" = ( /obj/machinery/bookbinder, /turf/simulated/floor/wood, @@ -54319,7 +53614,7 @@ name = "Secure Storage Blast Doors" }, /turf/simulated/floor/plating, -/area/engine/engineering) +/area/storage/secure) "bXv" = ( /obj/structure/sign/nosmoking_2, /turf/simulated/wall, @@ -55615,10 +54910,6 @@ /area/maintenance/aft{ name = "Aft Maintenance" }) -"bZV" = ( -/obj/effect/decal/cleanable/fungus, -/turf/simulated/wall/r_wall, -/area/maintenance/starboard) "bZW" = ( /obj/machinery/newscaster{ pixel_x = -32 @@ -56889,9 +56180,16 @@ name = "Aft Maintenance" }) "ccu" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plating, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/south, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/floor/engine, /area/engine/engineering) "ccv" = ( /obj/structure/closet/crate/hydroponics, @@ -68413,6 +67711,9 @@ icon_state = "bluecorner" }, /area/hallway/primary/aft) +"cwA" = ( +/turf/simulated/wall/r_wall, +/area/engine/equipmentstorage) "cwB" = ( /obj/machinery/power/compressor{ comp_id = "incineratorturbine"; @@ -87032,31 +86333,26 @@ name = "\improper Secure Lab" }) "ddZ" = ( -/obj/machinery/power/tesla_coil{ - anchored = 1 - }, -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" - }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, +/area/engine/engineering) "dea" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/simple/visible/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) -"dec" = ( /obj/structure/cable{ d1 = 1; d2 = 8; icon_state = "1-8" }, -/turf/simulated/floor/plating/airless, -/area/space/nearstation) +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/engine, +/area/engine/engineering) "ded" = ( /obj/machinery/dye_generator, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -87467,8 +86763,23 @@ }, /area/chapel/main) "deW" = ( -/obj/machinery/light_switch, -/turf/simulated/wall/r_wall, +/obj/structure/rack{ + dir = 1 + }, +/obj/item/radio{ + pixel_y = 6 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/storage/toolbox/electrical, +/obj/item/storage/belt/utility, +/obj/item/extinguisher, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "vault" + }, /area/engine/mechanic_workshop) "deX" = ( /obj/structure/chair/stool, @@ -87507,68 +86818,6 @@ icon_state = "vault" }, /area/engine/mechanic_workshop) -"dfb" = ( -/obj/machinery/door/poddoor{ - density = 0; - icon_state = "open"; - id_tag = "mechpod"; - name = "Mechanic's Workshop Inner Door"; - opacity = 0 - }, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "vault" - }, -/area/engine/mechanic_workshop) -"dfc" = ( -/obj/machinery/mecha_part_fabricator/spacepod, -/obj/machinery/light{ - dir = 1; - in_use = 1 - }, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "vault" - }, -/area/engine/mechanic_workshop) -"dfd" = ( -/obj/machinery/camera, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "vault" - }, -/area/engine/mechanic_workshop) -"dfe" = ( -/obj/structure/table, -/obj/item/pod_parts/core, -/obj/item/circuitboard/mecha/pod, -/obj/item/clothing/glasses/welding{ - pixel_y = 12 - }, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "vault" - }, -/area/engine/mechanic_workshop) -"dff" = ( -/obj/structure/rack{ - dir = 1 - }, -/obj/item/extinguisher, -/obj/item/storage/belt/utility, -/obj/item/storage/toolbox/electrical, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/radio{ - pixel_y = 6 - }, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "vault" - }, -/area/engine/mechanic_workshop) "dfg" = ( /turf/simulated/floor/plasteel{ dir = 5; @@ -87618,13 +86867,6 @@ icon_state = "vault" }, /area/engine/mechanic_workshop) -"dfm" = ( -/obj/machinery/vending/cola, -/turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "vault" - }, -/area/engine/mechanic_workshop) "dfn" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -87774,8 +87016,13 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Mechanic Workshop"; + req_access_txt = "70" + }, +/obj/machinery/door/firedoor, /turf/simulated/floor/plasteel, -/area/engine/break_room) +/area/engine/mechanic_workshop) "dfB" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -87852,6 +87099,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/machinery/vending/cola, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "vault" @@ -88329,9 +87577,9 @@ /turf/simulated/floor/plasteel, /area/engine/break_room) "dgO" = ( -/obj/structure/sign/pods, +/obj/machinery/light_switch, /turf/simulated/wall, -/area/engine/break_room) +/area/engine/mechanic_workshop) "dgW" = ( /obj/machinery/computer/camera_advanced/xenobio, /turf/simulated/floor/plasteel{ @@ -88648,12 +87896,32 @@ icon_state = "yellowcorner" }, /area/hallway/primary/starboard) +"dom" = ( +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/plasteel, +/area/engine/equipmentstorage) "dqh" = ( /obj/effect/decal/warning_stripes/south, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/engine/break_room) +"dqm" = ( +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ + dir = 9 + }, +/obj/machinery/camera{ + c_tag = "Supermatter Chamber"; + dir = 4; + network = list("engine") + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) "dvV" = ( /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 6 @@ -88740,6 +88008,17 @@ }, /turf/simulated/floor/plasteel, /area/construction) +"dMG" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "dMV" = ( /obj/machinery/atmospherics/pipe/manifold/visible/cyan{ dir = 8; @@ -88821,6 +88100,20 @@ icon_state = "neutralcorner" }, /area/hallway/primary/central) +"dXb" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + level = 2 + }, +/obj/machinery/light{ + dir = 2 + }, +/obj/effect/decal/warning_stripes/south, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "dZe" = ( /obj/effect/decal/warning_stripes/west, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -88830,6 +88123,29 @@ icon_state = "white" }, /area/medical/cryo) +"ebM" = ( +/obj/machinery/atmospherics/pipe/simple/visible/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/engine, +/area/engine/engineering) +"ebV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) "edg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -88845,6 +88161,22 @@ icon_state = "green" }, /area/hydroponics) +"edK" = ( +/obj/machinery/atmospherics/binary/pump{ + dir = 1; + name = "Gas to Mix" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "ehr" = ( /obj/structure/chair/office/dark, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -88889,6 +88221,12 @@ icon_state = "dark" }, /area/engine/break_room) +"evR" = ( +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/wall/r_wall, +/area/engine/engineering) "eEV" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume{ dir = 4; @@ -88972,6 +88310,22 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/hallway/primary/central) +"fga" = ( +/obj/machinery/atmospherics/pipe/simple/visible/green, +/obj/machinery/door/window/northleft{ + dir = 8; + icon_state = "left"; + name = "Inner Pipe Access"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4; + level = 2 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/atmos) "fgw" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 @@ -88989,14 +88343,35 @@ /area/hallway/secondary/entry{ name = "Arrivals" }) +"flr" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ + dir = 9 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) "fmg" = ( /obj/effect/spawner/window/reinforced, /obj/effect/spawner/airlock, /turf/simulated/floor/plating, /area/maintenance/portsolar) -"fnC" = ( -/turf/space, -/area/space/nearstation) +"fmP" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 10 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "frX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -89045,10 +88420,6 @@ icon_state = "white" }, /area/medical/virology) -"fBB" = ( -/obj/structure/lattice, -/turf/space, -/area/space) "fDi" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -89075,6 +88446,13 @@ }, /turf/simulated/floor/plating, /area/maintenance/starboard) +"fHC" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 5 + }, +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/engine, +/area/engine/engineering) "fNU" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 @@ -89172,6 +88550,11 @@ icon_state = "chapel" }, /area/chapel/main) +"gdM" = ( +/obj/effect/spawner/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction, +/turf/simulated/floor/engine, +/area/engine/engineering) "ged" = ( /obj/structure/sink{ dir = 8; @@ -89193,6 +88576,17 @@ /area/toxins/xenobiology{ name = "\improper Secure Lab" }) +"gfB" = ( +/obj/structure/window/plasmareinforced, +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/machinery/atmospherics/pipe/simple/visible/supply{ + dir = 10 + }, +/obj/structure/cable, +/turf/simulated/floor/engine, +/area/engine/supermatter) "gog" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -89200,6 +88594,22 @@ icon_state = "redfull" }, /area/security/main) +"gpj" = ( +/obj/machinery/status_display, +/turf/simulated/wall/r_wall, +/area/engine/supermatter) +"gqj" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + dir = 8; + initialize_directions = 11; + level = 2 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/engine, +/area/engine/engineering) "gsn" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -89212,6 +88622,26 @@ }, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) +"gsr" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) +"gyy" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 9 + }, +/obj/structure/lattice, +/obj/structure/lattice/catwalk, +/turf/space, +/area/space/nearstation) "gyR" = ( /obj/structure/sign/securearea{ desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; @@ -89282,6 +88712,51 @@ /obj/effect/spawner/airlock/s_to_n, /turf/simulated/floor/plating, /area/maintenance/auxsolarstarboard) +"gYM" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) +"gZY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/engine/engineering) +"hdL" = ( +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/engine/engineering) +"hfb" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) +"hgN" = ( +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "hlZ" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -89303,6 +88778,12 @@ }, /turf/simulated/floor/plasteel, /area/crew_quarters/courtroom) +"hnC" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5 + }, +/turf/simulated/floor/plasteel, +/area/atmos) "hnL" = ( /obj/structure/chair{ dir = 8 @@ -89315,6 +88796,29 @@ /area/crew_quarters/fitness{ name = "\improper Recreation Area" }) +"hqN" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/engine, +/area/engine/engineering) +"huo" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 10 + }, +/turf/simulated/wall/r_wall, +/area/engine/supermatter) "hxv" = ( /obj/machinery/camera{ c_tag = "Telecoms - Server Room - Aft"; @@ -89329,6 +88833,15 @@ }, /turf/simulated/floor/plasteel/dark, /area/tcommsat/server) +"hAg" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/northwest, +/turf/simulated/floor/engine, +/area/engine/engineering) "hBn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ req_access_txt = 1 @@ -89355,6 +88868,40 @@ }, /turf/simulated/floor/plasteel, /area/storage/primary) +"hEA" = ( +/obj/machinery/camera/autoname{ + dir = 4; + network = list("SS13") + }, +/obj/machinery/door_control{ + desc = "A remote control-switch for the engineering security doors."; + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_x = -24; + pixel_y = -6; + req_access_txt = "1" + }, +/obj/machinery/door_control{ + id = "atmos"; + name = "Atmospherics Lockdown"; + pixel_x = -24; + pixel_y = 5; + req_access_txt = "1" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/unary/vent_pump{ + dir = 4; + on = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "yellow" + }, +/area/engine/engineering) "hEP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -89366,6 +88913,10 @@ icon_state = "chapel" }, /area/chapel/main) +"hHE" = ( +/obj/effect/decal/warning_stripes/southwest, +/turf/simulated/floor/plasteel, +/area/engine/equipmentstorage) "hHX" = ( /obj/machinery/firealarm{ dir = 8; @@ -89379,6 +88930,21 @@ icon_state = "neutralcorner" }, /area/hallway/primary/aft) +"hIG" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/computer/monitor, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "yellow" + }, +/area/engine/engineering) "hIT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -89402,6 +88968,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) +"hWr" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/simulated/wall/r_wall, +/area/engine/supermatter) "hYZ" = ( /obj/machinery/atmospherics/pipe/simple/visible/universal{ dir = 4 @@ -89435,6 +89009,18 @@ /area/toxins/xenobiology{ name = "\improper Secure Lab" }) +"ibi" = ( +/obj/effect/spawner/window/reinforced/plasma, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "ibR" = ( /obj/docking_port/stationary{ dir = 8; @@ -89487,11 +89073,38 @@ icon_state = "green" }, /area/hydroponics) +"iof" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes/south, +/turf/simulated/floor/plasteel, +/area/engine/engineering) "izL" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel, /area/storage/primary) +"iAT" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + dir = 8; + initialize_directions = 11; + level = 2 + }, +/obj/machinery/camera{ + c_tag = "Engineering Supermatter Starboard"; + dir = 4; + network = list("SS13","engine") + }, +/obj/effect/decal/warning_stripes/northwest, +/turf/simulated/floor/engine, +/area/engine/engineering) "iDw" = ( /obj/machinery/atmospherics/unary/portables_connector, /obj/machinery/portable_atmospherics/canister/air, @@ -89524,6 +89137,15 @@ }, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) +"iIk" = ( +/obj/effect/decal/warning_stripes/east, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel, +/area/engine/engineering) "iMC" = ( /obj/effect/decal/warning_stripes/west, /obj/machinery/light{ @@ -89549,6 +89171,29 @@ /area/medical/research{ name = "Research Division" }) +"iNu" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "yellow" + }, +/area/engine/break_room) +"iNI" = ( +/obj/machinery/atmospherics/pipe/manifold4w/visible, +/turf/simulated/floor/plasteel, +/area/atmos) +"iSH" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/south, +/obj/machinery/atmospherics/binary/pump{ + dir = 8; + name = "Atmos to Loop" + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "iTR" = ( /obj/effect/decal/warning_stripes/south, /obj/machinery/atmospherics/pipe/simple/visible{ @@ -89590,12 +89235,25 @@ icon_state = "dark" }, /area/chapel/main) +"iZY" = ( +/obj/structure/sign/pods, +/turf/simulated/wall, +/area/engine/mechanic_workshop) "jap" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/maintenance/fpmaint2{ name = "Port Maintenance" }) +"jbk" = ( +/obj/structure/reflector/double{ + anchored = 1; + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "jdi" = ( /obj/effect/landmark/start{ name = "Life Support Specialist" @@ -89687,25 +89345,57 @@ /turf/simulated/floor/plasteel, /area/hallway/secondary/entry) "jLP" = ( -/obj/machinery/atmospherics/unary/vent_pump, +/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel, /area/atmos) -"jZt" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +"jPv" = ( +/obj/effect/decal/warning_stripes/north, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes/east, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/engine/engineering) +"jUV" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/binary/valve{ + dir = 4; + name = "Output to Waste" + }, +/turf/simulated/floor/plating, +/area/engine/engineering) +"kez" = ( +/turf/simulated/wall/r_wall, +/area/engine/supermatter) +"kkt" = ( +/obj/effect/spawner/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4; + level = 2 + }, +/turf/simulated/floor/plating, +/area/atmos) "kmF" = ( /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/hallway/secondary/entry) +"knc" = ( +/obj/machinery/atmospherics/pipe/simple/visible/green, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, +/area/engine/engineering) "koz" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -89730,6 +89420,22 @@ icon_state = "neutralcorner" }, /area/hallway/primary/port) +"kto" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/visible/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/turf/space, +/area/space/nearstation) +"ktv" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 9; + tag = "icon-intact-y (NORTHWEST)" + }, +/turf/space, +/area/space/nearstation) "ktI" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -89762,6 +89468,35 @@ }, /turf/simulated/floor/bluegrid, /area/assembly/chargebay) +"kxf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/effect/decal/warning_stripes/northwestcorner, +/obj/effect/decal/warning_stripes/southeastcorner, +/turf/simulated/floor/plasteel, +/area/engine/engineering) +"kBa" = ( +/obj/machinery/atmospherics/binary/pump/on{ + name = "Gas to Cooling Loop" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/south, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "kBq" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -89784,6 +89519,19 @@ icon_state = "brown" }, /area/storage/primary) +"kGw" = ( +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + dir = 2; + id_tag = "engsm"; + name = "Radiation Chamber Shutters" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/engine/supermatter) "kHS" = ( /obj/structure/chair/office/dark{ dir = 8 @@ -89793,6 +89541,23 @@ }, /turf/simulated/floor/wood, /area/library) +"kKa" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 5; + icon_state = "intact"; + tag = "icon-intact (NORTHEAST)" + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"kLs" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + layer = 2 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "kNc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -89810,20 +89575,20 @@ icon_state = "whiteblue" }, /area/medical/paramedic) -"kOI" = ( -/obj/structure/cable/yellow{ - d1 = 1; +"kRX" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers, +/obj/structure/cable{ d2 = 2; - icon_state = "1-2" + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/warning_stripes/east, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/plasteel, -/area/engine/engineering) +/turf/simulated/floor/engine, +/area/engine/supermatter) "kSC" = ( /obj/machinery/atmospherics/unary/portables_connector{ dir = 4 @@ -89842,12 +89607,21 @@ }, /turf/simulated/floor/plating, /area/maintenance/starboard) -"kWU" = ( -/obj/machinery/atmospherics/pipe/simple/visible{ - dir = 6; - level = 2 +"kWg" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/decal/warning_stripes/yellow/hollow, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/supermatter) +"lcc" = ( +/obj/machinery/atmospherics/pipe/manifold4w/visible, +/turf/simulated/floor/plasteel{ + icon_state = "dark" }, -/turf/simulated/floor/plating, /area/engine/engineering) "lcL" = ( /obj/machinery/portable_atmospherics/canister/air, @@ -89858,6 +89632,10 @@ /area/maintenance/aft{ name = "Aft Maintenance" }) +"len" = ( +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/engine, +/area/engine/engineering) "lfz" = ( /obj/effect/decal/warning_stripes/west, /obj/machinery/atmospherics/unary/vent_pump{ @@ -89893,6 +89671,27 @@ icon_state = "redfull" }, /area/security/main) +"lmi" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 10 + }, +/turf/space, +/area/space/nearstation) +"lpU" = ( +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 2 + }, +/obj/effect/decal/warning_stripes/southeast, +/turf/simulated/floor/engine, +/area/engine/engineering) +"lwo" = ( +/obj/effect/decal/warning_stripes/east, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/turf/simulated/floor/plasteel, +/area/engine/engineering) "lCt" = ( /obj/structure/window/reinforced{ dir = 4 @@ -89913,12 +89712,51 @@ }, /turf/simulated/floor/engine, /area/toxins/explab) +"lGk" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/engine/engineering) +"lGr" = ( +/obj/machinery/atmospherics/binary/pump{ + dir = 8; + name = "Gas to Filter" + }, +/obj/machinery/alarm/engine{ + dir = 4; + pixel_x = -22 + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) "lIR" = ( /turf/simulated/floor/plasteel{ dir = 4; icon_state = "green" }, /area/hydroponics) +"lJX" = ( +/obj/structure/window/plasmareinforced, +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/visible/supply{ + dir = 1 + }, +/obj/structure/cable, +/turf/simulated/floor/engine, +/area/engine/supermatter) +"lOU" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/engine, +/area/engine/engineering) "lPA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -90013,6 +89851,27 @@ }, /turf/simulated/floor/plating, /area/hallway/secondary/entry) +"miB" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/south, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 5; + tag = "icon-intact-y (NORTHWEST)" + }, +/turf/simulated/floor/engine, +/area/engine/engineering) +"moi" = ( +/obj/machinery/atmospherics/trinary/filter/flipped{ + dir = 1; + filter_type = -1 + }, +/obj/effect/decal/warning_stripes/northeast, +/turf/simulated/floor/engine, +/area/engine/engineering) "moJ" = ( /obj/structure/window/reinforced{ dir = 4 @@ -90042,6 +89901,23 @@ /area/medical/research{ name = "Research Division" }) +"mzf" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/machinery/power/rad_collector{ + anchored = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/engine, +/area/engine/supermatter) "mAt" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -90078,9 +89954,65 @@ /area/toxins/xenobiology{ name = "\improper Secure Lab" }) +"mVG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/pipe/simple/visible/green{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) +"mWL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "mXy" = ( /turf/simulated/floor/mineral/titanium, /area/shuttle/arrival/station) +"mZJ" = ( +/obj/structure/reflector/single{ + anchored = 1; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/engine/engineering) +"naP" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 2; + initialize_directions = 11 + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/south, +/turf/simulated/floor/engine, +/area/engine/engineering) "nbq" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -90142,6 +90074,24 @@ icon_state = "redfull" }, /area/security/main) +"nqA" = ( +/obj/machinery/hologram/holopad, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 10 + }, +/turf/simulated/floor/plasteel, +/area/atmos) +"nss" = ( +/obj/machinery/atmospherics/binary/pump{ + dir = 4; + name = "Cooling Loop Bypass" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes/northwestcorner, +/turf/simulated/floor/engine, +/area/engine/engineering) "ntG" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -90196,6 +90146,22 @@ /area/construction/hallway{ name = "\improper MiniSat Exterior" }) +"nEQ" = ( +/obj/machinery/atmospherics/binary/pump/on{ + dir = 1; + name = "Cooling Loop to Gas" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/southeast, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "nIZ" = ( /obj/docking_port/stationary{ dir = 8; @@ -90236,6 +90202,22 @@ icon_state = "dark" }, /area/crew_quarters/courtroom) +"nMx" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/turf/space, +/area/space/nearstation) +"nMC" = ( +/turf/simulated/wall/r_wall, +/area/storage/secure) +"nRh" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "nUW" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -90292,6 +90274,22 @@ }, /turf/simulated/floor/plating, /area/maintenance/starboard) +"ogE" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10"; + req_one_access_txt = "0" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "ogV" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 4 @@ -90314,6 +90312,14 @@ /area/toxins/xenobiology{ name = "\improper Secure Lab" }) +"ojl" = ( +/obj/machinery/atmospherics/trinary/filter/flipped{ + dir = 1; + filter_type = 2 + }, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, +/area/engine/engineering) "okl" = ( /obj/effect/landmark/start{ name = "Cook" @@ -90345,10 +90351,6 @@ icon_state = "purplecorner" }, /area/hallway/primary/aft) -"oAG" = ( -/obj/effect/spawner/airlock/w_to_e, -/turf/simulated/wall, -/area/engine/engineering) "oBY" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 @@ -90399,6 +90401,11 @@ }, /turf/simulated/floor/plating, /area/maintenance/starboard) +"oOs" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/engine, +/area/engine/engineering) "oOT" = ( /obj/machinery/atmospherics/unary/vent_pump{ dir = 1; @@ -90416,6 +90423,10 @@ /area/medical/medbay2{ name = "Medbay Storage" }) +"oTM" = ( +/obj/structure/sign/fire, +/turf/simulated/wall/r_wall, +/area/engine/supermatter) "oUC" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -90428,6 +90439,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) +"oWm" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "pad" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -90456,6 +90475,15 @@ /area/toxins/xenobiology{ name = "\improper Secure Lab" }) +"pcW" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/southwest, +/turf/simulated/floor/engine, +/area/engine/engineering) "pdC" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -90483,10 +90511,23 @@ /area/medical/research{ name = "Research Division" }) +"peo" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/turf/space, +/area/space) "pep" = ( /obj/effect/spawner/airlock/s_to_n, /turf/simulated/wall, /area/maintenance/starboard) +"peO" = ( +/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/obj/machinery/atmospherics/binary/pump{ + dir = 4; + name = "Mix to Engine" + }, +/turf/simulated/floor/plasteel, +/area/atmos) "pkf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -90509,6 +90550,23 @@ /area/toxins/mixing{ name = "\improper Toxins Lab" }) +"plu" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) +"pmh" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 2 + }, +/obj/machinery/meter, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "poN" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/wood, @@ -90530,6 +90588,11 @@ /area/hallway/secondary/exit{ name = "\improper Departure Lounge" }) +"pvv" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/effect/decal/warning_stripes/southwest, +/turf/simulated/floor/engine, +/area/engine/engineering) "pzX" = ( /obj/effect/decal/warning_stripes/south, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -90561,12 +90624,27 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/security/armoury) +"pKs" = ( +/obj/machinery/atmospherics/pipe/simple/visible/universal{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "pMx" = ( /obj/effect/spawner/airlock/w_to_e, /turf/simulated/wall, /area/maintenance/aft{ name = "Aft Maintenance" }) +"pNG" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "pOV" = ( /obj/effect/decal/warning_stripes/south, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -90576,6 +90654,16 @@ /area/hallway/secondary/entry{ name = "Arrivals" }) +"pPA" = ( +/obj/machinery/light{ + dir = 1; + in_use = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "vault" + }, +/area/engine/mechanic_workshop) "pQx" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -90595,6 +90683,32 @@ /area/maintenance/aft{ name = "Aft Maintenance" }) +"pRy" = ( +/obj/effect/decal/warning_stripes/north, +/obj/machinery/camera, +/turf/simulated/floor/engine, +/area/engine/mechanic_workshop) +"pSk" = ( +/obj/machinery/mecha_part_fabricator/spacepod, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "vault" + }, +/area/engine/mechanic_workshop) +"pUc" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"pUq" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + dir = 8; + initialize_directions = 11; + level = 2 + }, +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/engine, +/area/engine/engineering) "pXI" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -90658,6 +90772,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/security/brig) +"qpO" = ( +/turf/simulated/wall, +/area/engine/equipmentstorage) "qsd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -90676,6 +90793,16 @@ }, /turf/simulated/floor/plasteel, /area/assembly/robotics) +"qtt" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 5; + icon_state = "intact"; + tag = "icon-intact (NORTHEAST)" + }, +/obj/structure/lattice, +/obj/structure/lattice/catwalk, +/turf/space, +/area/space/nearstation) "qtw" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -90685,6 +90812,18 @@ icon_state = "neutralcorner" }, /area/hallway/primary/aft) +"qxn" = ( +/obj/machinery/alarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "qAm" = ( /obj/structure/window/reinforced{ dir = 8 @@ -90770,6 +90909,19 @@ /area/toxins/misc_lab{ name = "\improper Research Testing Range" }) +"qHS" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "yellowcorner" + }, +/area/engine/break_room) "qQy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -90785,6 +90937,13 @@ }, /turf/simulated/floor/plating, /area/maintenance/starboard) +"qWn" = ( +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 2 + }, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, +/area/engine/engineering) "qYF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5; @@ -90792,6 +90951,17 @@ }, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) +"raV" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "rdz" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "plant-06"; @@ -90810,6 +90980,10 @@ /area/hallway/secondary/entry{ name = "Arrivals" }) +"riM" = ( +/obj/effect/decal/warning_stripes/northwest, +/turf/simulated/floor/plasteel, +/area/engine/equipmentstorage) "rjU" = ( /obj/structure/window/reinforced{ dir = 1; @@ -90825,6 +90999,24 @@ /area/construction/hallway{ name = "\improper MiniSat Exterior" }) +"rlJ" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + level = 2 + }, +/obj/machinery/light{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/south, +/turf/simulated/floor/engine, +/area/engine/engineering) "rpg" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -90852,6 +91044,22 @@ }, /turf/simulated/floor/plasteel, /area/engine/break_room) +"rsT" = ( +/obj/machinery/atmospherics/binary/pump{ + name = "Mix to Gas" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/engine, +/area/engine/engineering) +"rwh" = ( +/obj/machinery/power/supermatter_crystal/engine, +/turf/simulated/floor/engine, +/area/engine/supermatter) "rxV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 @@ -90867,13 +91075,6 @@ icon_state = "neutralcorner" }, /area/atmos) -"rzO" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/atmospherics/unary/portables_connector{ - dir = 1 - }, -/turf/simulated/floor/plating, -/area/engine/engineering) "rDg" = ( /obj/structure/cable/yellow{ d1 = 4; @@ -90901,6 +91102,19 @@ }, /turf/space, /area/space) +"rDF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "yellow" + }, +/area/engine/break_room) "rEw" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -90960,6 +91174,10 @@ /area/construction/hallway{ name = "\improper MiniSat Exterior" }) +"rNt" = ( +/obj/effect/decal/warning_stripes/south, +/turf/simulated/floor/plasteel, +/area/engine/equipmentstorage) "rOw" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -90989,6 +91207,18 @@ icon_state = "neutralcorner" }, /area/hallway/primary/port) +"rRM" = ( +/obj/effect/spawner/window/reinforced/plasma, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "rTO" = ( /obj/docking_port/stationary{ dir = 2; @@ -91001,6 +91231,21 @@ }, /turf/space, /area/space) +"rYj" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 9 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) +"rYO" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 4 + }, +/obj/structure/lattice, +/obj/structure/lattice/catwalk, +/turf/space, +/area/space/nearstation) "say" = ( /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -91072,6 +91317,23 @@ /area/medical/research{ name = "Research Division" }) +"ssZ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/engine/engineering) +"swl" = ( +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "szt" = ( /obj/machinery/atmospherics/unary/vent_pump{ dir = 8; @@ -91086,6 +91348,9 @@ }, /turf/simulated/floor/wood, /area/security/vacantoffice) +"sBY" = ( +/turf/simulated/floor/plating, +/area/storage/secure) "sDC" = ( /obj/docking_port/stationary/whiteship{ dir = 8; @@ -91186,6 +91451,10 @@ }, /turf/simulated/floor/plasteel, /area/security/brig) +"tbK" = ( +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/plasteel, +/area/engine/equipmentstorage) "tca" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -91210,6 +91479,13 @@ icon_state = "dark" }, /area/chapel/main) +"tgE" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 10 + }, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) "thz" = ( /obj/effect/decal/warning_stripes/north, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -91225,6 +91501,37 @@ }, /turf/simulated/floor/plasteel, /area/construction) +"tpg" = ( +/obj/machinery/firealarm{ + pixel_y = 29 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) +"tvk" = ( +/obj/machinery/atmospherics/pipe/simple/visible/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/engine, +/area/engine/engineering) "tvn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9; @@ -91234,6 +91541,12 @@ icon_state = "grimy" }, /area/security/detectives_office) +"tvr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "twD" = ( /obj/structure/disposalpipe/segment{ dir = 2; @@ -91243,6 +91556,25 @@ /area/maintenance/fpmaint2{ name = "Port Maintenance" }) +"tAn" = ( +/obj/machinery/atmospherics/pipe/simple/visible/green{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/engine, +/area/engine/engineering) "tEL" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -91278,6 +91610,20 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) +"tSX" = ( +/obj/structure/lattice, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/space, +/area/space/nearstation) +"tVw" = ( +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ + dir = 5 + }, +/turf/simulated/wall/r_wall, +/area/engine/supermatter) "tWl" = ( /obj/effect/spawner/window/reinforced, /obj/effect/spawner/airlock/e_to_w, @@ -91285,6 +91631,20 @@ /area/maintenance/aft{ name = "Aft Maintenance" }) +"tZI" = ( +/obj/machinery/atmospherics/unary/outlet_injector{ + frequency = 1441; + icon_state = "on"; + id = "engine-waste_out"; + name = "engine outlet injector"; + on = 1; + volume_rate = 200 + }, +/turf/simulated/floor/plating, +/area/engine/engineering) +"uaQ" = ( +/turf/simulated/wall, +/area/engine/mechanic_workshop) "ueD" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -91380,6 +91740,13 @@ /area/maintenance/fpmaint2{ name = "Port Maintenance" }) +"uLE" = ( +/obj/structure/reflector/single{ + anchored = 1; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "uMx" = ( /obj/structure/cable/yellow{ d1 = 1; @@ -91451,6 +91818,15 @@ icon_state = "dark" }, /area/crew_quarters/courtroom) +"vfv" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/heat_exchanging, +/obj/structure/lattice, +/obj/structure/lattice/catwalk, +/turf/space, +/area/space/nearstation) "vgP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -91467,6 +91843,27 @@ }, /turf/space, /area/space) +"vjL" = ( +/obj/effect/spawner/window/reinforced/plasma, +/turf/simulated/floor/engine, +/area/engine/supermatter) +"vmT" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 6; + icon_state = "intact"; + tag = "icon-intact (SOUTHEAST)" + }, +/obj/structure/lattice, +/obj/structure/lattice/catwalk, +/turf/space, +/area/space/nearstation) +"vny" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/engine, +/area/engine/engineering) "vtP" = ( /obj/machinery/conveyor/west{ id = "garbage" @@ -91482,6 +91879,14 @@ icon_state = "whitebluefull" }, /area/medical/reception) +"vwA" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/engine, +/area/engine/engineering) "vBA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -91493,6 +91898,16 @@ icon_state = "dark" }, /area/bridge) +"vCR" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "vDW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -91550,6 +91965,27 @@ icon_state = "redcorner" }, /area/security/brig) +"vRY" = ( +/obj/effect/spawner/window/reinforced/plasma, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/engine, +/area/engine/engineering) +"vUD" = ( +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + state = 2 + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "vVo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -91604,6 +92040,14 @@ "vZo" = ( /turf/simulated/floor/plating, /area/space/nearstation) +"vZU" = ( +/obj/machinery/atmospherics/unary/thermomachine/freezer{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/engine/engineering) "wgm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -91621,6 +92065,13 @@ icon_state = "whiteblue" }, /area/medical/reception) +"wuZ" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1" + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "wvK" = ( /obj/structure/cable{ d1 = 1; @@ -91646,6 +92097,14 @@ icon_state = "dark" }, /area/medical/morgue) +"wxE" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/heat_exchanging, +/obj/structure/lattice, +/turf/space, +/area/space/nearstation) "wyX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -91659,6 +92118,17 @@ /area/medical/research{ name = "Research Division" }) +"wAP" = ( +/obj/structure/transit_tube{ + icon_state = "D-SW"; + tag = "icon-D-SW" + }, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 6 + }, +/turf/space, +/area/space/nearstation) "wHZ" = ( /obj/effect/spawner/window/reinforced, /obj/structure/sign/securearea{ @@ -91675,6 +92145,14 @@ }, /turf/simulated/floor/plating, /area/maintenance/starboard) +"wLN" = ( +/obj/machinery/atmospherics/trinary/filter/flipped{ + dir = 1; + filter_type = -1 + }, +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/engine, +/area/engine/engineering) "wRS" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -91792,6 +92270,16 @@ }, /turf/simulated/floor/carpet, /area/library) +"xyA" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4; + level = 2 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/atmos) "xyZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/carpet, @@ -91808,6 +92296,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel, /area/hallway/primary/aft) +"xDw" = ( +/obj/effect/decal/warning_stripes/east, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/visible/red{ + dir = 8 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "xEi" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 @@ -91830,6 +92326,30 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plating, /area/maintenance/starboard) +"xHf" = ( +/obj/effect/decal/warning_stripes/southeast, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel, +/area/engine/engineering) +"xHU" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/warning_stripes/south, +/obj/machinery/atmospherics/pipe/simple/visible/yellow{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/engine/engineering) "xJS" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -91845,6 +92365,14 @@ icon_state = "neutralcorner" }, /area/hallway/primary/central) +"xLf" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 10 + }, +/obj/structure/lattice, +/obj/structure/lattice/catwalk, +/turf/space, +/area/space/nearstation) "xOM" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -91897,10 +92425,43 @@ icon_state = "floorgrime" }, /area/security/permabrig) +"xYW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/turf/simulated/floor/plating, +/area/engine/engineering) "xZq" = ( /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/solar/starboard) +"yaq" = ( +/obj/machinery/power/emitter{ + anchored = 1; + dir = 1; + state = 2 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/engine/engineering) +"yeW" = ( +/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/simulated/wall/r_wall, +/area/engine/supermatter) "yij" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -130551,23 +131112,23 @@ asI aoG dHr asI -axh -axh -axh -axh -axh -axh -axh -axh -axh -axh -axh -axh -axh -axh -axh -axh -axh +cwA +cwA +cwA +cwA +cwA +cwA +nMC +nMC +nMC +nMC +nMC +nMC +aCg +aCg +aCg +aCg +aCg bam bam bam @@ -130808,23 +131369,23 @@ asJ aoG dHr arr -axh +cwA aHH aIV aJI aJT aLq -aCg +nMC aNS aNT aQS aQS -aCg +nMC aWN aYE aZI aYV -bam +aCg bdE bdy beI @@ -131065,23 +131626,23 @@ awL ayo aBX asJ -axh +cwA ajS -aHa -aIA -aJL +riM +tbK +hHE aLp -aCg +nMC aNT aNT aQS aSg -aCg +nMC aUL aYD aXx aYU -bam +aCg bfd bdz beJ @@ -131322,23 +131883,23 @@ asJ aoG dHr asI -axh +cwA aIz -aHg +dom aIw -aJO +rNt aLu -aCg +nMC aNU aPl aQT aSh -aCg +nMC aWX aYG aXF aYU -bam +aCg bbK bdz beK @@ -131579,23 +132140,23 @@ aoG aoG dHr aDa -axh +cwA akP -aHg -ccH +dom +aIw aJM aLr -aCg +nMC aNV -aOd -aOd -aSi -aCg +sBY +sBY +sBY +nMC aST aUK aZM aST -bam +aCg bam bdA bmN @@ -131836,18 +132397,18 @@ ayv xGP qQy dgI -axh +cwA aIS aIv aID aJQ aLR -aCg -aCg +nMC +nMC bXu bXu -aCg -aCg +nMC +nMC aVg aYQ aXQ @@ -132093,12 +132654,12 @@ aoG aoG aBZ axh -axh -aFR +cwA +qpO aCM aJR aCM -aFR +qpO aFR aPK aHa @@ -132349,7 +132910,7 @@ buC bZJ asJ aBW -axh +aCg aEA aGc aIA @@ -132606,13 +133167,13 @@ aoG aoG aoG dgE -axh +aCg aEA aHg aHc aIB -aMF -aLt +ccH +ccH ccH ccH aPo @@ -132863,20 +133424,20 @@ ayo ayr atA aCa -axh +aCg aFM -aHg +jPv bCj aMX -aLs -kOI -jZt -aOv +aPp +aPp +aPp +aPp aPp aSE -jZt +aPp aUR -jZt +aPp aZc ccz baw @@ -133118,11 +133679,11 @@ asJ asJ aoG aAI -axh +aCg aEx -axh +aCg aGb -aHg +kxf bAL aIF aJU @@ -133130,13 +133691,13 @@ aLU aQR aOg aUh -aSn -aVN +iIk +baB aWp aVh aYW -ccH -aJO +lwo +xHf bcq aFR bho @@ -133152,7 +133713,7 @@ bsC bqS bxm bjN -bAO +buz bCM bCM bCM @@ -133375,26 +133936,26 @@ avD aoG aoG azs -axh +aCg aEy aEz -aFN aHg -bAL -aIF -aJZ +iof aCg +vRY +aJZ +aJb aCg alQ -aCg +aJb aPL +aJb aCg aCg -aJZ aZe -ccH -baA -bat +dMG +vRY +aCg aFR aFR aFR @@ -133634,32 +134195,32 @@ ayN ayI amk aCd -aIA aEE aPn -bAL -aIF +iof +aCg +hAg aJV -aCg -aQZ -aTl -aUF +len +len +len +len bEL -aWb -aCg -aVi +len +len +len aZd -ccH -aQU -aqe -aqv -aFR +vny +pcW +aCg ayE aAO aHw -baE +hEA bhZ -bnz +baE +iNu +qHS dfz bqT bsD @@ -133903,22 +134464,22 @@ aTJ aPs aVs aWg -aPa +knc aXs aZh bao bbC -bcG -bcp -aFR +aCg azv aAW -aIu +aQF bck +aIu +rDF bgE bnC dfB -bpn +dgL bpn aZo bxd @@ -134149,33 +134710,33 @@ azn amk aCf aDw -aGe -aGd -aIW -aLn +baB +aSn +aJb +aLw aMQ aNd -aRa -aOc +aNd +kez aPt aRb aTR -aNd +yeW aXo aZg aZO -baB -bcC -bft -aFR +miB +aCg azJ aHl bfr -bjO -bhZ -bnD +hIG +aFR +uaQ +bli +bli dfA -dgL +iZY bvt bpn bqU @@ -134403,34 +134964,34 @@ avI amk amk bqV -bZV cbc +aCg aEn aCg aHi -aJo -aLE -aLE aCg -aRr -aOd +aLw +aMQ +kWg +kWg +kez aPu aRc -aTR +lGr +kez +aLE +aLE +ebM +iSH aCg -aLE -aLE -aLE -aHi -aCg -aEn aFR aFR aFR aFR -aFR -aFR -bli +uaQ +pSk +dfg +dfg blj dgO bjN @@ -134660,36 +135221,36 @@ avH axM amk aAK -bZV +cbc aCh aEd -aCg +plu aFY aOa -aOa -aOa -aDL +rsT +rlJ +gpj aRa aOe aPv aRd -aTR -aDL -aOa -bMO -aOa +huo +aOe +tVw +gpj +tAn ccu aCg bfz -aTR -beU -bgG -aCh +pUc +pUc +kKa +anq deW -dff -dfm +dfg +dfg bsZ -bnt +anq bnt bxf jdX @@ -134917,36 +135478,36 @@ awU ayz amk aCb -axh -aCg -aEn -aCg aCg +kLs +pNG +lcc +vZU +aJb +aLw aDL -aDL -aDL -aDL +kGw aRs aTK aRf aSo aTV -aDL -aDL -aDL -aDL -aCg -aCg -aEn -aCg -aCg -aOd +mzf +dqm +kGw +mVG +ccu aCg +aKT +bfz +pUc +rYj +anq avP dfh dft dfI -bnt +anq bvu bly bxg @@ -135174,31 +135735,31 @@ amk amk amk azy -bZV +cbc aCD -aES -abq +pNG +pmh aFZ -arA +aJb aMI -aDL -aDL -aDL -aDL -aUK -aDL -aDL -aDL -aDL -beZ -arA -aaa -abq -aGT -bdG -aCg -aOd +naP +kGw +ebV +lJX +aRf +rwh +aTV +kRX +ebV +kGw +tvk +xHU aCg +aKT +tgE +pUc +kKa +anq dfa dfg dfq @@ -135218,7 +135779,7 @@ bMd bNa bPz bRf -bSR +iNI bUv bSP bSP @@ -135431,33 +135992,33 @@ ape arr ayx azy -axh -aDf -aDi -abq -abq -aJx -aLN -aLN -aLN -aLN -aLN -aUM -aLN -aLN -aLN -aLN +aCg +kLs +pNG +lcc +vZU +aJb +aLw aLN +kGw +ebV +gfB +aRf +aSo +aTV +flr +ebV +kGw dea -abq -abq -aDi -aDf +ccu aCg -aOd -aCg -dfc -dfg +aKT +bfz +pUc +rYj +anq +anq +pPA dfx dfK anq @@ -135475,8 +136036,8 @@ bMe bNc bIp bIn -bSS -bGG +nqA +hnC bYk bYm bYk @@ -135688,32 +136249,32 @@ ans ans asI azy -axh +aCg aDf aDi -aDi -aaa +fmP +aFY +aOa +edK +dXb +gpj +kez +kez +oTM +vjL +hWr +kez +kez +gpj aJt -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -arA -aJt -aaa -aDi -aDi -aDf -aCg -aOd -aCg -dfb +kBa +gdM +gyy +xLf +qtt +vmT +qtt +anq dfj dfu dfJ @@ -135733,7 +136294,7 @@ bNa bPA bRg bRg -bRg +peO bVS bRg bRg @@ -135945,33 +136506,33 @@ arT ans azr azy -axh -aDh -aDj -aFS -abq -aJt -arA -aJW -aaa -aaa -aJW -aaa -aaa -aaa -aaa -aJW -arA -aJt -abq -baG -bbU -bhA aCg -aOd aCg -dfd -dfk +aCg +aCg +aHi +aCg +gsr +aJW +pUq +lOU +gqj +pvv +oOs +iAT +vwA +fHC +len +nss +ccu +aJb +abq +bfz +wxE +wxE +gyy +anq +pRy dfy btc anq @@ -135990,7 +136551,7 @@ bNg bQR bSs bUt -bUw +fga bXj bYc bZK @@ -136203,31 +136764,31 @@ axd aGW bal axh -aDf -aWz -aEF -aaa +axh +abq +aef +tZI aJJ aPy -aaa -aaa -aaa -abq -aaa +xDw +wLN +qWn +wLN +lpU aRe -aaa -aaa -aaa +moi +qWn +ojl ddZ bap -aaa -bax -aDi -aDf -aCg -aOd -aCg -asX +nEQ +gdM +kKa +tgE +wxE +wxE +qtt +anq dfk deZ bkV @@ -136247,7 +136808,7 @@ bNe bPC bRi bSU -bRi +xyA bPC bRi bSU @@ -136460,31 +137021,31 @@ ayA azu asJ axh -aDk -aEW -aDi -aaa -aJt -arA -aaa -aaa +axh abq -abq -abq -abq -abq -aaa -aaa -arA -aJt -aaa -aDi -aCD -aFk +aef +aef aCg -aOd +rRM +ogE +aJb aCg -dfe +aCg +aJb +aJb +aJb +aCg +aCg +aJb +hqN +ibi +aCg +aKT +bfz +wxE +wxE +gyy +anq dfk aoN dgK @@ -136504,7 +137065,7 @@ bzL bHG bzL bIt -bzL +kkt bHG bzL bIt @@ -136718,50 +137279,50 @@ buC aCc axh axh -aDf -aDi -aaa -aJt -arA -aaa -aaa -abq -aOm -aRh -aSp abq abq -aJW -arA -aJt -aaa -aDi -aDf -aCg +abq aCg +mWL +jUV aOd +gYM +nRh +nRh +aSp +jbk +nRh +gYM +aOd +gZY +hgN aCg +rYO +xLf +vfv +vfv +qtt anq dfl dfl azD anq -bsL +wAP bwF bsN -aaa -abq -abq -abq -abq -bIu -abq -bMj -abq -bIu -abq -bMj -abq +peo +cmL +cmL +cmL +cmL +nMx +cmL +kto +cmL +nMx +cmL +kto +ktv bIu abq bMj @@ -136975,35 +137536,35 @@ cbX asJ arr axh -aFa -aDi -abq -aJJ -aPy aaa aaa -abq -aPd -csp -aTI -abq aaa -aaa -ddZ -bap -aaa -aDi -bfB aCg -azM -aOd +tpg +lGk +raV +nRh +nRh +nRh +nRh +nRh +nRh +nRh +oWm +ssZ +qxn aCg +rYO +vmT +vfv +vfv +gyy anq abq abq abq anq -abq +bIu bwL abq abq @@ -137231,36 +137792,36 @@ bnI asJ asJ axh +axh +aaa +aaa +aaa aCg -aDf -aDi -abq -aJt -arA -aJW +mWL +pKs aLx -abq -aOq -aSk -aTG -abq -aaa -aaa -arA -aJt -abq -aDi -aDf +nRh +nRh +nRh +aSp +nRh +nRh +nRh +yaq +xYW +hfb aCg -aCg -kWU -rzO -aDL +aKT +tgE +wxE +wxE +qtt +aaa aaa aaa aaa abq -aaa +bIu bwL aaa aaa @@ -137488,36 +138049,36 @@ axh azf dAH axh -aCD -aFk -aDi -aaa -aJt -arA aaa aaa -abq -abq -abq -abq -abq aaa aaa -arA -aJt -aaa -aDi -aDm -bdG aCg -bjT -aFR -aFR +tvr +vCR +hdL +aOd +aOd +uLE +aCg +mZJ +aOd +aOd +vUD +wuZ +swl +aCg +aKT +bfz +wxE +wxE +gyy aaa aaa aaa -abq aaa +aaa +bIu bwL aaa aaa @@ -137745,36 +138306,36 @@ aoG aoG asJ uJn -aDf -aWz -aEG aaa -aJJ -aPy -aaa -aaa -aaa -aOj aaa abq -aaa -aaa -aaa -ddZ -bap -aaa -aDi -aDi -aDf +abq aCg -aOd -oAG +aCg +aCg +aCg +aCg +aCg +aCg +aCg +aCg +aCg +aCg +aCg +aCg +evR +aCg +aKT +tgE +wxE +wxE +qtt aaa aaa aaa aaa -abq -abq +aaa +tSX bwM abq abq @@ -138002,36 +138563,36 @@ aoG aoG asJ axh -aDl -aDj -aFS abq -aJt -arA -aJW +abd +abd aaa aaa aaa aaa -aJW -aaa -aaa -aJW -arA -aJt abq +aaa +aaa +aaa +aaa +abq +aaa +aaa +abq +aef +lmi baG -bbU +rYO bhA -aCg -aOd -aFR +xLf +gyy +rYO aaa -fnC -fnC -abq -abq aaa +aaa +aaa +abq +bIu bwU aaa abq @@ -138259,36 +138820,36 @@ aaa aoG asJ axh -aDf -aDi -aDi aaa -aJt -arA -arA -aTM -arA -arA -aTM -arA -arA -aTM -arA -arA -aJt +abd +bre +bre +aaa +aaa +aaa abq -aDi -aDi -aDf -aCg -aOd -aFR aaa aaa aaa aaa abq aaa +aaa +abq +aaa +aaa +bIu +tgE +pUc +pUc +pUc +rYj +aaa +aaa +aaa +aaa +aaa +bIu bwL aaa abq @@ -138516,36 +139077,36 @@ aaa abq aef aCj -aDm -aFm -aDC -aWA -aKa -aLN -aLN -aPg -aLN -aLN -aPg -aLN -aLN -aPg -aLN -aLN -dec -aWA -bdp -aFm -aFk -aNd -aef -abq -abq -abq -fBB -fBB -abq aaa +abd +abd +bre +abd +abq +arB +arB +arB +arB +arB +arB +arB +arB +arB +arB +arB +arB +bdp +cmL +cmL +cmL +cmL +cmL +cmL +cmL +cmL +cmL +cmL +ktv bwL aaa abq @@ -138772,32 +139333,32 @@ abq abq abq aef +axh +aaa +aaa +abd +abd +abd +aaa +abd +bre bre -aCg -aDn -aGT -aEi aWA +bre +bre +bre +bre aWA -aIf -aIf -aWA -aWA -aIf -aWA -aWA -aIf -aIf -aWA -aWA -bbI -aES -aDn -aCg -aCg -aef -aaa +bre +bre +arB aaa +arB +abd +arB +abd +abd +abd aaa aaa aaa @@ -139030,34 +139591,34 @@ aaa aaa aaa abq -abq -aCg -aCg -aGT -aKp -aLO -aKp -aKp -aKp -aTO -aLO -aKp -aKp -aKp -aKp -aLO -aKp -aES -aCg -aCg -abq -abq aaa aaa aaa aaa aaa aaa +arB +arB +arB +arB +arB +arB +arB +arB +bFb +arB +arB +arB +abq +arB +bre +aWA +bre +bre +abd +aaa +aaa +aaa abq aaa bwL @@ -139288,33 +139849,33 @@ aaa aaa aaa aaa -abq -aCg -aCg -aCg -aCg -aCg -aCg -aCg -aCg -aCg -aCg -aCg -aCg -aCg -aCg -aCg -aCg -aCg -abq -aaa -abf aaa aaa aaa aaa aaa aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arB +abd +arB +abd +abd +abd +aaa +aaa +aaa abq aaa bwL @@ -139546,23 +140107,23 @@ aaa aaa aaa aaa -aDo -aDo -aDo -aDo -aNd -aDo -aDo -aDo -aDo -aDo -aDo -aDo -aNd -aDo -aDo -aDo -aDo +aaa +aaa +aaD +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abq abq aaa abq @@ -139803,22 +140364,22 @@ aaa aaa aaa aaa -abq -abq -abq -abq -abq -abq -abq -abq -abq -abq -abq -abq -abq -abq -abq -abq +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa abq abq aaa @@ -140064,15 +140625,15 @@ aaa aaa aaa aaa -abq -aaa -aaa -abq aaa aaa aaa aaa -abq +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -140321,7 +140882,6 @@ aaa aaa aaa aaa -abq aaa aaa aaa @@ -140329,7 +140889,8 @@ aaa aaa aaa aaa -abq +aaa +aaa aaa aaa aaa @@ -140578,7 +141139,6 @@ aaa aaa aaa aaa -abq aaa aaa aaa @@ -140586,7 +141146,8 @@ aaa aaa aaa aaa -abq +aaa +aaa aaa aaa aaa @@ -140843,7 +141404,7 @@ aaa aaa aaa aaa -abq +aaa aaa aaa aaa @@ -141605,7 +142166,7 @@ aaa aaa aaa aaa -aaD +aaa aaa aaa aaa diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index 1be71d3b8a8..210d381f45e 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -132,7 +132,7 @@ /area/ruin/powered/beach) "ax" = ( /obj/machinery/disco/immobile, -/turf/simulated/floor/light/colour_cycle, +/turf/simulated/floor/light, /area/ruin/powered/beach) "ay" = ( /obj/machinery/door/airlock/sandstone{ diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm deleted file mode 100644 index 93415236e34..00000000000 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ /dev/null @@ -1,9161 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/turf/simulated/floor/plating/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors) -"ac" = ( -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"ad" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_virology"; - name = "interior access button"; - pixel_x = 25; - pixel_y = -25; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ae" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"af" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ag" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ah" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/beer/upgraded{ - dir = 1 - }, -/obj/structure/sign/barsign{ - pixel_y = -32; - req_access = null; - req_access_txt = "0" - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ai" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/soda/upgraded{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"aj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/medical/syndicate_access, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ak" = ( -/obj/machinery/vending/boozeomat/syndicate_access, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/bar) -"al" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/medical/syndicate_access, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"am" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"an" = ( -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ao" = ( -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ap" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"aq" = ( -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"ar" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"as" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"at" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/poddoor{ - id_tag = "lavalandsyndi_chemistry" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"au" = ( -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"av" = ( -/obj/machinery/light/small, -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"aw" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"ax" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ay" = ( -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_north_interior"; - locked = 1; - req_access_txt = "150" - }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"az" = ( -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_west_south"; - pixel_x = -25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_west_south_exterior"; - tag_interior_door = "syndicate_base_west_south_interior" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aA" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/sign/fire{ - pixel_x = 32 - }, -/obj/structure/closet/emcloset/anchored, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/flashlight/seclite, -/obj/item/clothing/mask/gas, -/obj/structure/sign/vacuum{ - pixel_x = 0; - pixel_y = 32 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aB" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_north_interior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"aC" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_north_exterior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"aD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_west_south"; - name = "interior access button"; - pixel_x = 25; - pixel_y = 25; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aF" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"aG" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_south_exterior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aH" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aI" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - frequency = 1449; - id_tag = "syndicate_base_virology_interior"; - locked = 1; - name = "Virology Lab Interior Airlock"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"aJ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - frequency = 1449; - id_tag = "syndicate_base_virology_exterior"; - locked = 1; - name = "Virology Lab Exterior Airlock"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"aK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_virology"; - name = "exterior access button"; - pixel_x = -25; - pixel_y = 25; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"aL" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"aM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/chem_dispenser/upgraded, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"aN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/caution/stand_clear{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_south"; - name = "interior access button"; - pixel_x = 25; - pixel_y = -25; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aO" = ( -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_south_interior"; - locked = 1; - req_access_txt = "150" - }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aP" = ( -/obj/structure/sign/vacuum{ - pixel_x = -32 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_south"; - pixel_x = 25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_south_exterior"; - tag_interior_door = "syndicate_base_south_interior" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aR" = ( -/obj/structure/sign/xeno_warning_mining{ - pixel_x = -32 - }, -/obj/structure/sign/fire{ - pixel_x = 32 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aS" = ( -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_south"; - name = "exterior access button"; - pixel_x = 20; - pixel_y = 21; - req_access_txt = "150" - }, -/turf/simulated/floor/plating/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors) -"aT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_west_north"; - name = "interior access button"; - pixel_x = 25; - pixel_y = -8; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"aU" = ( -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_west_north"; - pixel_x = -25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_west_north_exterior"; - tag_interior_door = "syndicate_base_west_north_interior" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"aV" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/sign/fire{ - pixel_x = 32 - }, -/obj/structure/closet/emcloset/anchored, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/flashlight/seclite, -/obj/item/clothing/mask/gas, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/vacuum{ - pixel_x = 0; - pixel_y = -32 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"aW" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_arrivals"; - name = "Arrivals Blast Door Control"; - pixel_y = -26; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aX" = ( -/obj/effect/turf_decal/caution/red{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"aY" = ( -/obj/structure/fans/tiny, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_north_exterior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"aZ" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_south_exterior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"ba" = ( -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_south_interior"; - locked = 1; - req_access_txt = "150" - }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"bb" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_south_interior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"bc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/mapping_helpers/no_lava, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_west_north"; - name = "exterior access button"; - pixel_x = -21; - pixel_y = 21; - req_access_txt = "150" - }, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"bd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_virology"; - pixel_x = -25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_virology_exterior"; - tag_interior_door = "syndicate_base_virology_interior" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"be" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/power/apc/syndicate{ - dir = 1; - name = "Engineering APC"; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass{ - frequency = 1449; - id_tag = "syndicate_base_incinerator_interior"; - locked = 1; - req_access_txt = "150" - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_incinerator"; - name = "interior access button"; - pixel_x = -25; - pixel_y = 0; - req_access_txt = "150" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bg" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bi" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/binary/pump{ - name = "Incinerator Input" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass{ - frequency = 1449; - id_tag = "syndicate_base_incinerator_exterior"; - locked = 1; - req_access_txt = "150" - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_incinerator"; - name = "exterior access button"; - pixel_x = -25; - pixel_y = 0; - req_access_txt = "150" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bk" = ( -/obj/structure/rack, -/obj/item/flashlight{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/flashlight, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bl" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/caution/stand_clear{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_east"; - name = "interior access button"; - pixel_x = 25; - pixel_y = 25; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bn" = ( -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_east_interior"; - locked = 1; - req_access_txt = "150" - }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bo" = ( -/obj/structure/sign/vacuum{ - pixel_y = -32 - }, -/obj/machinery/light/small, -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_east"; - pixel_x = 0; - pixel_y = 25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_east_exterior"; - tag_interior_door = "syndicate_base_east_interior" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bp" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_east_exterior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bq" = ( -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_east"; - name = "exterior access button"; - pixel_x = -21; - pixel_y = 21; - req_access_txt = "150" - }, -/turf/simulated/floor/plating/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors) -"br" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/trinary/mixer/flipped{ - dir = 8; - node1_concentration = 0.2; - node2_concentration = 0.8; - on = 1; - target_pressure = 4500 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bs" = ( -/obj/machinery/air_sensor{ - frequency = 1442; - id_tag = "syndie_lavaland_n2_sensor" - }, -/turf/simulated/floor/engine/n2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bt" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/engine/n2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bu" = ( -/obj/machinery/atmospherics/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1442; - id_tag = "syndie_lavaland_n2_out"; - name = "nitrogen out" - }, -/turf/simulated/floor/engine/n2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/effect/mapping_helpers/no_lava, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_west_south"; - name = "exterior access button"; - pixel_x = -21; - pixel_y = -21; - req_access_txt = "150" - }, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"bw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/bookcase/random, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"bx" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/turretid/lethal{ - ailock = 1; - check_synth = 0; - control_area = "Syndicate Lavaland Primary Hallway"; - dir = 1; - faction = "syndicate"; - name = "Base turret controls"; - pixel_y = 30; - req_access = null; - req_access_txt = "150"; - syndicate = 1 - }, -/turf/simulated/floor/redgrid, -/area/ruin/unpowered/syndicate_lava_base/main) -"by" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bz" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 6; - initialize_directions = 6; - level = 2 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bA" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4; - level = 2 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bB" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4; - level = 2 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bC" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bD" = ( -/obj/machinery/atmospherics/pipe/simple/visible/universal, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bE" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bF" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 5 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/visible/supply, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bH" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bI" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"bJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/visible/cyan, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4; - level = 2 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/visible/yellow{ - dir = 8; - level = 2 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bM" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/light/small, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/binary/pump{ - dir = 8; - name = "Plasma to Incinerator" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 10; - level = 2 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/item/clothing/head/welding, -/obj/item/weldingtool/largetank, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bO" = ( -/obj/machinery/ignition_switch{ - id = "syndicate_base_incinerator"; - pixel_x = 6; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_incinerator"; - pixel_x = -6; - pixel_y = -25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_incinerator_exterior"; - tag_interior_door = "syndicate_base_incinerator_interior" - }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bP" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bQ" = ( -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bR" = ( -/obj/machinery/optable, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"bS" = ( -/obj/machinery/vending/toyliberationstation{ - req_access_txt = "150" - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bT" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"bU" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/door_control{ - id = "lavalandsyndi"; - name = "Syndicate Experimentation Lockdown Control"; - pixel_y = 26; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"bV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel/white/corner{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"bW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"bY" = ( -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"bZ" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ca" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 6; - level = 2 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"cc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"cd" = ( -/obj/machinery/light/small, -/obj/structure/extinguisher_cabinet{ - pixel_y = -29 - }, -/obj/structure/cable/yellow, -/obj/machinery/power/apc/syndicate{ - dir = 4; - name = "Medbay APC"; - pixel_x = 24 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"ce" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/main) -"cg" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/turf/simulated/floor/engine/n2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ch" = ( -/obj/machinery/air_sensor{ - frequency = 1442; - id_tag = "syndie_lavaland_o2_sensor" - }, -/turf/simulated/floor/engine/o2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ci" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/engine/o2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cj" = ( -/obj/machinery/atmospherics/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1442; - id_tag = "syndie_lavaland_o2_out"; - name = "oxygen out" - }, -/turf/simulated/floor/engine/o2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ck" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/simulated/floor/engine/o2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cl" = ( -/obj/machinery/atmospherics/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1442; - id_tag = "syndie_lavaland_tox_out"; - name = "toxin out" - }, -/turf/simulated/floor/engine/plasma, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cm" = ( -/obj/machinery/air_sensor{ - frequency = 1442; - id_tag = "syndie_lavaland_tox_sensor" - }, -/turf/simulated/floor/engine/plasma, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cn" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/simulated/floor/engine/plasma, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"co" = ( -/obj/machinery/light/small, -/turf/simulated/floor/engine/plasma, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/igniter{ - id = "syndicate_base_incinerator" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cq" = ( -/obj/machinery/atmospherics/unary/outlet_injector/on{ - dir = 1; - id = "syndie_lavaland_inc_in" - }, -/obj/structure/sign/vacuum/external{ - pixel_y = -32 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cr" = ( -/obj/machinery/door/poddoor{ - id_tag = "lavalandsyndi_incineratorinput" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cs" = ( -/obj/structure/cable, -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/compressor{ - comp_id = "syndie_lavaland_incineratorturbine"; - dir = 1; - luminosity = 2 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ct" = ( -/obj/structure/cable, -/obj/machinery/power/turbine{ - dir = 2; - luminosity = 2 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cu" = ( -/obj/machinery/door/poddoor{ - id_tag = "lavalandsyndi_incineratoroutput" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cA" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"cG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/chem_master, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dc" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"di" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"do" = ( -/obj/structure/closet/secure_closet/medical1{ - req_access = null; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/box/beakers/bluespace, -/obj/item/storage/box/beakers/bluespace, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"du" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_chemistry"; - name = "Chemistry Blast Door Control"; - pixel_y = 26; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/chem_heater, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dw" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dy" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"dA" = ( -/obj/structure/closet/l3closet, -/obj/machinery/power/apc/syndicate{ - dir = 8; - name = "Chemistry APC"; - pixel_x = -24 - }, -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dB" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dC" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dE" = ( -/obj/structure/table/glass, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5; - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5; - pixel_y = 2 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5; - pixel_x = 2; - pixel_y = -2 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/glass/bottle/charcoal{ - pixel_x = 6 - }, -/obj/item/reagent_containers/glass/bottle/epinephrine, -/turf/simulated/floor/plasteel/white/corner{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dG" = ( -/obj/structure/lattice/catwalk, -/turf/simulated/floor/plating/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors) -"dI" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder{ - pixel_y = 5 - }, -/obj/item/reagent_containers/glass/beaker/large, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dK" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/obj/structure/closet/crate/secure/gear{ - req_access_txt = "150" - }, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/under/syndicate/combat, -/obj/item/storage/belt/military, -/obj/item/storage/belt/military, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/mask/gas/syndicate, -/obj/item/clothing/mask/gas/syndicate, -/obj/item/clothing/glasses/night, -/obj/item/clothing/glasses/night, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"dL" = ( -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/obj/structure/closet/crate, -/obj/item/extinguisher{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/extinguisher{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/extinguisher{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/flashlight{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"dM" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/item/storage/box/donkpockets{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/storage/box/donkpockets{ - pixel_y = 3 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"dP" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"dQ" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"dR" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - heat_proof = 1; - name = "Experimentation Room"; - req_access_txt = "150" - }, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi"; - name = "Syndicate Research Experimentation Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"dS" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi"; - name = "Syndicate Research Experimentation Shutters" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"dT" = ( -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dX" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dY" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dZ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/folder/white, -/obj/item/reagent_containers/glass/beaker/large{ - pixel_x = -3 - }, -/obj/item/reagent_containers/glass/beaker/large{ - pixel_x = -3 - }, -/obj/item/reagent_containers/dropper, -/obj/machinery/alarm/syndicate{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/screwdriver/nuke{ - pixel_y = 18 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"ea" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/obj/structure/closet/crate/secure/weapon{ - req_access_txt = "150" - }, -/obj/item/ammo_box/c10mm{ - pixel_y = 6 - }, -/obj/item/ammo_box/c10mm, -/obj/item/ammo_box/magazine/m10mm{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/ammo_box/magazine/m10mm{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/ammo_box/magazine/m10mm{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/ammo_box/magazine/m10mm{ - pixel_x = 4; - pixel_y = -4 - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eb" = ( -/obj/structure/closet/crate, -/obj/item/storage/toolbox/electrical{ - pixel_y = 4 - }, -/obj/item/storage/toolbox/mechanical, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ec" = ( -/obj/effect/turf_decal/box/white/corners, -/obj/structure/closet/crate/medical, -/obj/item/storage/firstaid/fire{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/brute, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ed" = ( -/obj/structure/table, -/obj/item/pen, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/paper_bin/syndicate, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ef" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc/syndicate{ - dir = 1; - name = "Cargo Bay APC"; - pixel_y = 24 - }, -/obj/structure/closet/emcloset/anchored, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eg" = ( -/obj/structure/closet/firecloset/full{ - anchored = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eh" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ei" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ek" = ( -/obj/effect/spawner/window/plastitanium, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"el" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eo" = ( -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/syndicate, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/paper/crumpled{ - info = "Explosive testing on site is STRICTLY forbidden, as this outpost's walls are lined with explosives intended for intentional self-destruct purposes that may be set off prematurely through careless experiments."; - name = "Explosives Testing Warning"; - pixel_x = -6; - pixel_y = -3 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"ep" = ( -/obj/structure/table/reinforced, -/obj/effect/decal/cleanable/dirt, -/obj/item/pen, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/paper_bin/syndicate, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eq" = ( -/obj/structure/table/reinforced, -/obj/item/restraints/handcuffs, -/obj/item/taperecorder, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"er" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"es" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"et" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/chem_heater, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"ev" = ( -/turf/simulated/floor/plasteel/white/corner, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"ew" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/syndichem, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"ex" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ey" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ez" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eA" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/mining/glass{ - name = "Warehouse"; - req_access_txt = "150" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eB" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eC" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/table, -/obj/item/storage/box/lights/bulbs, -/obj/item/wrench, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eF" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor{ - id_tag = "lavalandsyndi_cargo" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eG" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"eH" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"eI" = ( -/obj/effect/spawner/window/plastitanium, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/virology) -"eJ" = ( -/obj/structure/disposalpipe/segment, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/virology) -"eL" = ( -/obj/machinery/door/airlock/hatch{ - name = "Monkey Pen"; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eM" = ( -/obj/machinery/firealarm/syndicate{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eN" = ( -/obj/machinery/alarm/syndicate{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eP" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eQ" = ( -/obj/machinery/light/small, -/obj/structure/table/reinforced, -/obj/item/storage/box/monkeycubes/syndicate, -/obj/item/storage/box/monkeycubes/syndicate, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eR" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/chem_master, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eT" = ( -/obj/effect/turf_decal/bot, -/obj/structure/chair/office/light, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/chem_dispenser/upgraded, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eV" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eW" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eX" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/obj/structure/closet/crate/internals, -/obj/item/tank/internals/oxygen/yellow, -/obj/item/tank/internals/oxygen/yellow, -/obj/item/tank/internals/oxygen/yellow, -/obj/item/tank/internals/emergency_oxygen/double, -/obj/item/tank/internals/emergency_oxygen/double, -/obj/item/tank/internals/emergency_oxygen/double, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eY" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/item/storage/box/donkpockets{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/storage/box/donkpockets{ - pixel_y = 3 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = 2 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eZ" = ( -/obj/structure/rack{ - dir = 8 - }, -/obj/item/stack/sheet/cardboard{ - amount = 3 - }, -/obj/item/stack/rods/twentyfive, -/obj/item/stock_parts/cell/high/plus, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fa" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fd" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/turf/simulated/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ff" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fg" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fh" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fi" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/syringes, -/obj/machinery/power/apc/syndicate{ - dir = 1; - name = "Virology APC"; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fj" = ( -/obj/structure/table/glass, -/obj/structure/reagent_dispensers/virusfood{ - pixel_y = 28 - }, -/obj/item/clothing/gloves/color/latex, -/obj/item/healthanalyzer, -/obj/item/clothing/glasses/hud/health, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/syndicate{ - dir = 4; - pixel_x = 26 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fk" = ( -/obj/machinery/power/apc/syndicate{ - dir = 2; - name = "Experimentation Lab APC"; - pixel_y = -24 - }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"fl" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/extinguisher_cabinet{ - pixel_x = 25 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"fm" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Chemistry Lab"; - req_access_txt = "150" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"fn" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"fo" = ( -/obj/machinery/door/firedoor, -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ - base_state = "left"; - dir = 2; - icon_state = "left"; - name = "Chemistry" - }, -/obj/machinery/door/window/southleft{ - base_state = "left"; - dir = 1; - icon_state = "left"; - name = "Chemistry"; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"fp" = ( -/obj/machinery/smartfridge/secure/chemistry/preloaded/syndicate, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"fq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/assist, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fr" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fs" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/obj/structure/closet/crate, -/obj/item/storage/box/stockparts/deluxe, -/obj/item/storage/box/stockparts/deluxe, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/circuitboard/processor, -/obj/item/circuitboard/gibber, -/obj/item/circuitboard/deepfryer, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ft" = ( -/obj/effect/turf_decal/box/white/corners, -/obj/structure/closet/crate, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fu" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/table, -/obj/item/clothing/suit/storage/hazardvest, -/obj/item/clothing/suit/storage/hazardvest, -/obj/item/clothing/head/soft{ - pixel_x = -8 - }, -/obj/item/clothing/head/soft{ - pixel_x = -8 - }, -/obj/item/radio{ - pixel_x = 5 - }, -/obj/item/radio{ - pixel_x = 5 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fv" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fx" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fy" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Isolation B"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fz" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Isolation A"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fA" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/spray/cleaner, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fB" = ( -/obj/structure/chair/stool, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel/white/corner{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fC" = ( -/obj/machinery/smartfridge/secure/chemistry/virology/preloaded/syndicate, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fD" = ( -/obj/structure/sign/biohazard, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fE" = ( -/obj/effect/turf_decal/bot, -/obj/structure/closet/l3closet, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"fF" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/shower{ - pixel_y = 14 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"fG" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/hatch{ - name = "Experimentation Lab"; - req_access_txt = "150" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"fH" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/main) -"fI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/main) -"fO" = ( -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/main) -"fW" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/mining/glass{ - name = "Warehouse"; - req_access_txt = "150" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fY" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/structure/table, -/obj/item/folder/yellow, -/obj/item/stack/wrapping_paper{ - pixel_y = 5 - }, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gb" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gg" = ( -/obj/structure/sign/fire{ - pixel_y = 32 - }, -/obj/structure/sign/xeno_warning_mining{ - pixel_y = -32 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gj" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gq" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gr" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gs" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/obj/machinery/light/small, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gv" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gE" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gF" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gG" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gH" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gI" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gJ" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gK" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gL" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gO" = ( -/obj/structure/sign/cargo, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gP" = ( -/obj/machinery/photocopier, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gQ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gS" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_cargo"; - name = "Cargo Bay Blast Door Control"; - pixel_x = 26; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gT" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Monkey Pen"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gU" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gV" = ( -/obj/structure/chair/office/light, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ha" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) -"hb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hd" = ( -/obj/effect/turf_decal/tile/red, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"he" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hg" = ( -/obj/machinery/light/small, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hh" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hi" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hj" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Bay" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hl" = ( -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hn" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ho" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/computer/shuttle{ - desc = "Occasionally used to call in a resupply shuttle if one is in range."; - dir = 8; - icon_keyboard = "syndie_key"; - icon_screen = "syndishuttle"; - light_color = "#FA8282"; - name = "syndicate cargo shuttle terminal"; - possible_destinations = "syndielavaland_cargo"; - req_access_txt = "150"; - shuttleId = "syndie_cargo" - }, -/turf/simulated/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hq" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hs" = ( -/obj/machinery/computer/pandemic, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door_control{ - id = "lavalandsyndi_virology"; - name = "Virology Blast Door Control"; - pixel_x = -26; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ht" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/hand_labeler, -/obj/item/pen/red, -/obj/item/restraints/handcuffs, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/glasses/science, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hu" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5 - }, -/obj/item/stack/sheet/mineral/uranium{ - amount = 10 - }, -/obj/item/stack/sheet/mineral/gold{ - amount = 10 - }, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hv" = ( -/obj/machinery/disposal, -/obj/structure/sign/deathsposal{ - pixel_x = 32 - }, -/obj/effect/turf_decal/stripes/red/box, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hx" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hy" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hz" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hA" = ( -/obj/structure/closet/emcloset/anchored, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hB" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Bay" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/rack, -/obj/item/storage/belt/utility, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hF" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hH" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi_virology" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hJ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"hL" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hM" = ( -/obj/structure/table/wood, -/obj/item/ammo_box/magazine/m10mm, -/obj/item/ammo_box/magazine/sniper_rounds, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hN" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hO" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hP" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hQ" = ( -/obj/structure/table/wood, -/obj/item/ammo_box/magazine/m10mm, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hS" = ( -/obj/structure/table/reinforced, -/obj/item/folder, -/obj/item/suppressor, -/obj/item/clothing/ears/earmuffs, -/obj/item/clothing/ears/earmuffs, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hU" = ( -/obj/machinery/light/small, -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/autolathe, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hW" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 10 - }, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) -"hZ" = ( -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ia" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ib" = ( -/obj/effect/mob_spawn/human/lavaland_syndicate{ - icon_state = "sleeper_s"; - dir = 4 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"ic" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"id" = ( -/obj/structure/toilet{ - pixel_y = 18 - }, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"ie" = ( -/obj/effect/mob_spawn/human/lavaland_syndicate/comms{ - dir = 8; - icon_state = "sleeper_s" - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"if" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ig" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"ih" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"ii" = ( -/obj/structure/table, -/obj/item/storage/toolbox/emergency, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ij" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ik" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"il" = ( -/obj/machinery/door/airlock{ - name = "Cabin 2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"im" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"in" = ( -/obj/machinery/door/airlock{ - name = "Cabin 4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"ip" = ( -/obj/effect/turf_decal/stripes/red/corner, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iq" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) -"ir" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/red/line{ - dir = 9 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) -"it" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/red/line{ - dir = 5 - }, -/obj/structure/filingcabinet, -/obj/item/folder/syndicate/mining, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) -"iu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"iv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"iw" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ix" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iy" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Dormitories" - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iz" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iA" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iB" = ( -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iD" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/firealarm/syndicate{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iF" = ( -/obj/machinery/washing_machine, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iG" = ( -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iH" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/caution/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iI" = ( -/obj/machinery/door/airlock/vault{ - id_tag = "syndie_lavaland_vault"; - req_access_txt = "150"; - locked = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) -"iJ" = ( -/turf/simulated/floor/redgrid, -/area/ruin/unpowered/syndicate_lava_base/main) -"iK" = ( -/obj/machinery/syndicatebomb/self_destruct{ - anchored = 1 - }, -/turf/simulated/floor/redgrid, -/area/ruin/unpowered/syndicate_lava_base/main) -"iM" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"iN" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/main) -"iO" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iP" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iR" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Dormitories" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iS" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iT" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel{ - heat_capacity = 1e+006 - }, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iU" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/power/apc/syndicate{ - dir = 2; - name = "Dormitories APC"; - pixel_y = -24 - }, -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/tile/neutral, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iW" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel{ - heat_capacity = 1e+006 - }, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iY" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iZ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ja" = ( -/obj/effect/turf_decal/stripes/red/corner{ - dir = 4 - }, -/obj/machinery/door_control{ - id = "syndie_lavaland_vault"; - name = "Vault Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 24; - pixel_y = 8; - req_access_txt = "150"; - specialfunctions = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/red/line{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) -"jc" = ( -/obj/machinery/light/small, -/turf/simulated/floor/redgrid, -/area/ruin/unpowered/syndicate_lava_base/main) -"jd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/red/line{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) -"je" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"jf" = ( -/obj/machinery/door/airlock{ - name = "Cabin 1" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jg" = ( -/obj/machinery/door/airlock/maintenance, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jh" = ( -/obj/machinery/door/airlock{ - name = "Cabin 3" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"ji" = ( -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc/syndicate{ - dir = 8; - name = "Primary Hallway APC"; - pixel_x = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jj" = ( -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jk" = ( -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"jl" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jn" = ( -/obj/effect/mob_spawn/human/lavaland_syndicate{ - icon_state = "sleeper_s"; - dir = 4 - }, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jo" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"jq" = ( -/obj/effect/mob_spawn/human/lavaland_syndicate{ - dir = 8; - icon_state = "sleeper_s" - }, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jr" = ( -/obj/machinery/vending/snack, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"js" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jt" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/structure/reagent_dispensers/watertank, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ju" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jv" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/suit_storage_unit/radsuit, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jw" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/toolcloset{ - anchored = 1 - }, -/obj/item/crowbar, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jx" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi_bar" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jy" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jz" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Bar" - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jA" = ( -/obj/structure/table/wood, -/obj/item/ammo_box/magazine/m10mm, -/obj/item/ammo_box/magazine/sniper_rounds, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jB" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jC" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jD" = ( -/obj/machinery/vending/cola, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jE" = ( -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jF" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jG" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engineering"; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/alarm/syndicate{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jJ" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 6 - }, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jK" = ( -/obj/machinery/atmospherics/unary/outlet_injector/on{ - dir = 8; - volume_rate = 200; - id = "syndie_lavaland_waste" - }, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jL" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/lighter{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/storage/fancy/cigarettes/cigpack_syndicate{ - pixel_x = -3 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jM" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_bar"; - name = "Bar Blast Door Control"; - pixel_y = 26; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jN" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jO" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 25 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jP" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"jR" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jS" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/firecloset/full{ - anchored = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jU" = ( -/obj/structure/sign/engineering, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/shower{ - desc = "The HS-452. Installed recently by the DonkCo Hygiene Division."; - dir = 4; - name = "emergency shower" - }, -/obj/structure/sign/radiation/rad_area{ - pixel_y = -32 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jY" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jZ" = ( -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ka" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kb" = ( -/obj/structure/rack{ - dir = 8 - }, -/obj/item/storage/box/lights/bulbs, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/clothing/head/welding, -/obj/item/stock_parts/cell/high/plus, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kd" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"ke" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kf" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kg" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kh" = ( -/obj/machinery/door/airlock/maintenance, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"ki" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"kj" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"kk" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/engineering{ - name = "Engineering"; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kl" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"km" = ( -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/computer/monitor/secret, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ko" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kq" = ( -/obj/machinery/alarm/syndicate{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/vending/coffee/free, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kr" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ks" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"ku" = ( -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/main) -"kv" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/main) -"kw" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/gloves/combat{ - pixel_y = -6 - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/clothing/mask/breath{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/main) -"kx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ky" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kz" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kB" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kC" = ( -/obj/machinery/computer/general_air_control/large_tank_control{ - dir = 8; - frequency = 1442; - name = "Nitrogen Supply Control"; - output_tag = "syndie_lavaland_n2_out"; - sensors = list("syndie_lavaland_n2_sensor" = "Tank") - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kD" = ( -/obj/effect/spawner/window/plastitanium, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kG" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/cans/beer, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kH" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kJ" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kK" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kM" = ( -/obj/machinery/firealarm/syndicate{ - dir = 4; - pixel_x = 26 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/cigarette/syndicate/free, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kO" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kP" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/decal/cleanable/dirt, -/obj/item/soap/syndie, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kQ" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"kR" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay" - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"kS" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay" - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"kT" = ( -/obj/structure/sign/lifestar, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"kV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/power/smes/engineering, -/obj/structure/cable/yellow, -/obj/structure/sign/electricshock{ - pixel_x = -32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/power/smes/engineering, -/obj/structure/cable/yellow, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lf" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lg" = ( -/obj/structure/chair/stool/bar, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lh" = ( -/obj/structure/table/wood, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"li" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck/syndicate{ - pixel_x = -6; - pixel_y = 6 - }, -/turf/simulated/floor/wood{ - icon_state = "wood-broken4" - }, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lj" = ( -/obj/machinery/door/window/southleft{ - base_state = "right"; - dir = 1; - icon_state = "right"; - name = "Bar" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lk" = ( -/obj/structure/table/wood, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 30 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/item/book/manual/chef_recipes{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/reagent_containers/food/drinks/shaker, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ll" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/reagent_dispensers/beerkeg, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lm" = ( -/obj/structure/closet/secure_closet/medical1{ - req_access = null; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/defibrillator, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"ln" = ( -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lo" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/box/masks{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/storage/box/gloves{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lu" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/pump, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lw" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"ly" = ( -/obj/structure/chair/stool/bar, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lz" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/glass/rag{ - pixel_x = -4; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/drinks/cans/beer{ - pixel_x = 5; - pixel_y = -2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lA" = ( -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lC" = ( -/obj/structure/table/wood, -/obj/machinery/reagentgrinder, -/obj/item/kitchen/rollingpin, -/obj/item/kitchen/knife{ - pixel_x = 6 - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lE" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lF" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/item/vending_refill/snack{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/vending_refill/snack{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/vending_refill/coffee, -/obj/item/vending_refill/cola, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lG" = ( -/obj/structure/table, -/obj/item/storage/box/syringes, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/gun/syringe/syndicate, -/obj/machinery/defibrillator_mount/loaded{ - pixel_x = -30 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lH" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/corner{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lI" = ( -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lJ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lK" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/firstaid/fire{ - pixel_x = 4; - pixel_y = 4 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lL" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/stack/sheet/mineral/plastitanium{ - amount = 30 - }, -/obj/item/stack/sheet/glass/fifty{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lP" = ( -/obj/machinery/computer/general_air_control/large_tank_control{ - dir = 8; - frequency = 1442; - name = "Oxygen Supply Control"; - output_tag = "syndie_lavaland_o2_out"; - sensors = list("syndie_lavaland_o2_sensor" = "Tank") - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lS" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 9 - }, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) -"lU" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/chair/stool, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lV" = ( -/obj/structure/chair/stool/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lW" = ( -/obj/structure/table/wood, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lX" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ma" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Bar Storage"; - req_access_txt = "150" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mb" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mc" = ( -/obj/item/storage/box/donkpockets{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/storage/box/donkpockets{ - pixel_y = 3 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = 2 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/freezer/kitchen/maintenance{ - req_access = null - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"md" = ( -/obj/machinery/sleeper/syndie{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"me" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mf" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/machinery/alarm/syndicate{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mg" = ( -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/rpd{ - pixel_y = 3 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/binary/pump{ - dir = 8; - name = "O2 to Incinerator" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mn" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mo" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mp" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi_telecomms" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mr" = ( -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"mt" = ( -/obj/machinery/computer/arcade/orion_trail, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mu" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mv" = ( -/obj/structure/table/wood, -/obj/machinery/light/small, -/obj/structure/cable/yellow, -/obj/machinery/power/apc/syndicate{ - dir = 2; - name = "Bar APC"; - pixel_y = -24 - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mw" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mx" = ( -/obj/structure/table/wood, -/obj/machinery/kitchen_machine/microwave, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"my" = ( -/obj/structure/closet/secure_closet/freezer/fridge/open, -/obj/item/reagent_containers/food/condiment/enzyme, -/obj/item/reagent_containers/food/snacks/chocolatebar, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mz" = ( -/obj/machinery/door/airlock/maintenance, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"mA" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/item/reagent_containers/iv_bag/blood/OMinus, -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mC" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mD" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mE" = ( -/obj/structure/table/reinforced, -/obj/item/scalpel, -/obj/item/circular_saw{ - pixel_y = 9 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mF" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/structure/chair/stool, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mK" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/computer/general_air_control/large_tank_control{ - dir = 1; - frequency = 1442; - name = "Toxins Supply Control"; - output_tag = "syndie_lavaland_tox_out"; - sensors = list("syndie_lavaland_tox_sensor" = "Tank") - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mN" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mP" = ( -/obj/structure/filingcabinet/security, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mQ" = ( -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mR" = ( -/obj/structure/table, -/obj/item/storage/toolbox/syndicate, -/obj/item/multitool, -/obj/machinery/door_control{ - id = "lavalandsyndi_telecomms"; - name = "Telecomms Blast Door Control"; - pixel_x = 26; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mT" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"mU" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mX" = ( -/obj/structure/rack{ - dir = 8 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/stack/cable_coil/yellow{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/item/multitool, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"mY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"mZ" = ( -/obj/machinery/sleeper/syndie{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"na" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nc" = ( -/obj/machinery/computer/turbine_computer{ - dir = 1; - id = "syndie_lavaland_incineratorturbine" - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_incineratoroutput"; - name = "Incinerator Output Blast Door Control"; - pixel_x = -6; - pixel_y = -24; - req_access_txt = "150" - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_incineratorinput"; - name = "Incinerator Input Blast Door Control"; - pixel_x = 6; - pixel_y = -24; - req_access_txt = "150" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"nd" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"nf" = ( -/obj/structure/sign/fire, -/turf/simulated/wall/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ng" = ( -/obj/structure/table, -/obj/machinery/photocopier/faxmachine/longrange/syndie{ - department = "Syndicate Bioweapon Research Outpost" - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nk" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nl" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nm" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 27 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"no" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"np" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nq" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"ns" = ( -/obj/structure/closet/emcloset/anchored, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc/syndicate{ - dir = 1; - name = "Arrival Hallway APC"; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nv" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nw" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 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/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nx" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay" - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"ny" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nz" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nA" = ( -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/plasteel/white/corner, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nB" = ( -/obj/structure/table/reinforced, -/obj/item/surgicaldrill, -/obj/effect/decal/cleanable/dirt, -/obj/item/bonegel, -/obj/item/bonesetter, -/obj/item/FixOVein, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nC" = ( -/obj/structure/table/reinforced, -/obj/item/retractor, -/obj/item/hemostat, -/obj/effect/decal/cleanable/dirt, -/obj/item/cautery, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nH" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nI" = ( -/obj/machinery/computer/camera_advanced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nJ" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nL" = ( -/obj/machinery/door/airlock/hatch{ - name = "Telecommunications"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nN" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nQ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nR" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nS" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/firealarm/syndicate{ - dir = 2; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nT" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nU" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nW" = ( -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nX" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nZ" = ( -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"oa" = ( -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"ob" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"oh" = ( -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"oi" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"ok" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/cable/yellow, -/obj/machinery/power/apc/syndicate{ - dir = 2; - name = "Telecommunications APC"; - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"ol" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/rack{ - dir = 8 - }, -/obj/item/clothing/suit/space/syndicate, -/obj/item/clothing/mask/gas/syndicate, -/obj/item/clothing/head/helmet/space/syndicate, -/obj/item/mining_scanner, -/obj/item/pickaxe, -/turf/simulated/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"om" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"on" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -29 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"oo" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"op" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"or" = ( -/obj/structure/rack{ - dir = 8 - }, -/obj/item/storage/belt/medical, -/obj/effect/decal/cleanable/dirt, -/obj/item/crowbar, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/accessory/stethoscope, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"ou" = ( -/obj/machinery/computer/message_monitor{ - dir = 1 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"ov" = ( -/obj/structure/table/reinforced, -/obj/item/pen, -/obj/item/paper_bin/syndicate, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"ox" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor{ - id_tag = "lavalandsyndi_arrivals" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"oF" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"oP" = ( -/obj/structure/sign/chemistry, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"pQ" = ( -/obj/structure/sign/explosives/alt{ - pixel_x = 32 - }, -/turf/simulated/floor/redgrid, -/area/ruin/unpowered/syndicate_lava_base/main) -"qG" = ( -/obj/structure/sign/explosives/alt{ - pixel_x = -32 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"vu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"yd" = ( -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/turf/simulated/wall/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"yU" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"Au" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"BF" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi"; - name = "Syndicate Research Experimentation Shutters" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"Cg" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"CG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"DL" = ( -/obj/structure/sign/explosives/alt{ - pixel_x = 32 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"Lg" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"LQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"RI" = ( -/turf/simulated/wall/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"RV" = ( -/obj/structure/sign/fire, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"Tp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"TC" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -ab -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(4,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(5,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(7,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -eh -gj -eh -eh -eh -eh -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -mn -mN -mn -mn -mn -mn -ab -ab -ab -ab -ab -ab -ab -aa -"} -(8,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ac -eh -eG -ff -eI -aj -eh -eh -eh -eh -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -mp -mP -cb -nH -oh -mn -mn -ab -ab -ab -ab -ab -ab -aa -"} -(9,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -eh -eH -fg -fy -gp -eI -am -ao -eh -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -mp -ng -nk -nI -oi -ou -mn -ab -ab -ab -ab -ab -ab -ab -"} -(10,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ac -eh -eI -eI -eI -gq -gT -hq -hF -eh -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -mp -mQ -nl -nJ -nJ -ov -mn -ab -ab -ab -ab -ab -ab -ab -"} -(11,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ac -eh -eG -fh -eI -gr -eI -an -ar -eh -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -mp -mR -nm -nK -ok -mn -mn -ab -ab -ab -ab -ab -ab -ab -"} -(12,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -eh -eH -fg -fz -gs -eh -gj -eh -eh -ab -ab -ab -ab -ab -ab -dG -dG -dG -dG -dG -dG -lS -mn -mn -mo -nL -mn -mn -ab -ab -ab -ab -ab -ab -ab -ab -"} -(13,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -eh -gj -eI -eI -gt -gU -hs -hH -ab -ab -ab -ab -ab -ab -dG -dG -ig -iu -iu -iu -bv -aZ -az -ba -nn -aE -mT -mT -ab -ab -ab -ab -ab -ab -ab -ab -"} -(14,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ac -eh -fi -fA -bV -gV -ht -hH -ab -ab -ab -ab -ab -dG -dG -ig -je -iv -jk -aw -lw -aZ -mr -bb -aD -nN -ol -mT -ab -ab -ab -ab -ab -ab -ab -ab -"} -(15,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ei -eJ -fj -fB -gv -ax -hu -hH -ab -ab -ab -ab -dG -dG -ig -je -jk -jx -jx -jy -jy -jy -aA -mT -no -nN -ol -mT -ab -ab -ab -ab -ab -ab -ab -ab -"} -(16,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ac -ab -ac -ac -ae -ae -ae -ae -fC -ad -aX -hv -hH -ab -ab -ab -dG -dG -ig -je -jk -jx -jx -kG -lf -bw -jy -jy -jP -np -aH -mT -mT -mT -oF -ab -ab -ab -ab -ab -ab -"} -(17,1,1) = {" -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -au -av -aL -fD -aI -eh -eh -eh -hW -dG -dG -dG -ig -je -iv -jx -jx -kn -kH -jN -jZ -lU -mt -mU -np -aN -aO -aP -aR -aG -aS -ab -ab -ab -ab -aa -"} -(18,1,1) = {" -ab -ab -ab -ab -ae -aL -aq -aq -qG -dc -aq -dQ -ek -eL -ae -fE -gy -bd -ay -aU -aC -bc -iu -iu -je -jk -jx -jx -jN -jZ -jN -jZ -jN -jZ -kn -mU -nq -nQ -mT -mT -mT -oF -ab -ab -ab -ab -ab -aa -"} -(19,1,1) = {" -ab -ab -ab -ab -ae -ap -aq -Lg -aq -Lg -aq -dR -el -eM -ae -fF -gz -aT -aB -hJ -aY -ih -iv -iM -iv -iv -jx -jL -jY -jN -bZ -lg -ly -lV -mu -mU -cc -nR -om -mT -ab -ab -ab -ab -ab -ab -aa -aa -"} -(20,1,1) = {" -aa -ab -ab -ab -ae -aq -aq -aF -aq -aF -aq -ae -bU -eN -ae -ae -aJ -ha -ha -aV -ha -ha -ha -ha -ha -ha -jy -jM -jN -jZ -kJ -lh -lz -lW -mv -jy -jy -nS -on -mT -ab -ab -ab -ab -ab -ab -ab -aa -"} -(21,1,1) = {" -aa -ab -ab -ab -ae -aq -aq -Tp -aq -Cg -aq -dS -eo -eO -fk -ae -aK -hb -ha -iN -ha -ii -iw -iO -hB -jl -jz -jN -jZ -ko -kK -li -lA -lX -mw -ah -jy -nu -oo -ox -ab -ab -ab -ab -ab -ab -ab -ab -"} -(22,1,1) = {" -aa -ab -ab -ab -ae -ap -aq -CG -vu -TC -LQ -BF -ep -eP -fl -fG -gE -hc -hx -hL -hZ -ij -ix -iP -hd -jm -jz -jO -jN -kp -kL -lj -lB -lY -lA -ai -jP -nT -op -ox -ab -ab -ab -ab -ab -ab -ab -ab -"} -(23,1,1) = {" -aa -ab -ab -ab -ae -ae -aq -aq -DL -di -aq -dS -eq -eQ -ae -dQ -gF -hd -hy -hy -ia -ik -if -iQ -hz -hz -jP -jy -ka -kq -kM -lk -lC -lZ -mx -jy -jy -nU -oo -ox -ab -ab -ab -ab -ab -ab -ab -ab -"} -(24,1,1) = {" -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -aL -ae -ae -ae -oP -fH -gG -he -hz -hz -hz -hz -iy -iR -hz -jn -jA -jy -jy -jy -jy -jy -ak -ma -jy -jy -ns -nV -oo -ox -ab -ab -ab -ab -ab -ab -ab -ab -"} -(25,1,1) = {" -aa -ab -ab -ab -ab -ab -ac -ac -as -do -dA -dT -er -eR -fm -fI -gH -he -hz -hM -ib -hz -iz -iS -jf -jo -jB -hz -kb -jy -kN -jZ -lE -mb -my -jy -nt -nW -aW -mT -ab -ab -ab -ab -ab -ab -ab -ab -"} -(26,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -as -as -du -dB -dU -es -eS -fn -fO -gG -hf -hz -hN -ic -il -iA -iT -hz -hz -hz -hz -kc -kr -kO -ll -lF -mc -jy -jy -nu -nX -oo -mT -ab -ab -ab -ab -ab -ab -ab -ab -"} -(27,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -at -aM -dv -dC -bI -et -eT -fo -fO -gG -hg -hz -hz -hz -hz -iB -iU -jg -jp -jp -jQ -kd -jy -jy -jy -jy -jy -jy -mX -nv -aQ -mT -mT -ab -ab -ab -ab -ab -ab -ab -aa -"} -(28,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -at -cA -dw -dC -dX -eu -eU -fn -fH -gG -he -hA -hO -id -im -bX -iV -hz -hz -hz -hz -ke -jQ -jQ -jQ -jp -jp -mz -mY -nw -nZ -mT -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(29,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -at -cG -dx -dE -dY -ev -eV -fp -fH -gI -he -hz -hz -hz -hz -iD -iW -jh -jo -jC -hz -kf -ks -kP -kQ -kQ -kQ -kQ -kT -nx -kR -kQ -kQ -ab -ab -ab -ab -ab -ab -ab -ab -"} -(30,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -as -as -as -dI -dZ -ew -as -yU -as -gJ -hh -hz -hP -ic -in -iE -iX -hz -jq -jA -hz -kg -kt -kQ -bT -lG -md -mA -mZ -ny -oa -or -kQ -ab -ab -ab -ab -ab -ab -ab -ab -"} -(31,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ac -as -as -as -as -as -fq -dy -gK -he -hz -hQ -ie -hz -iF -iY -hz -hO -hz -hz -kh -ha -kQ -lm -lH -me -mB -na -nz -ob -al -kQ -ab -ab -ab -ab -ab -ab -ab -ab -"} -(32,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ac -dy -dK -ea -ex -eW -fr -fW -gL -he -hz -hz -hz -hz -hz -hz -hz -jr -jD -jR -iQ -ku -kR -ln -lI -lI -mC -lI -nA -cd -kQ -kQ -ac -ab -ab -ab -ab -ab -ab -ab -"} -(33,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -dy -dL -eb -ey -eX -fs -fa -gM -hi -hB -hB -hB -ag -iG -iZ -ji -js -jE -jS -ki -kv -kS -ln -lJ -mf -mD -lI -nB -kQ -kQ -ac -ab -ab -ab -ab -ab -ab -ab -ab -"} -(34,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -dy -dM -ec -ez -eY -ft -dP -gN -hj -hj -hR -af -ip -iH -ja -bY -jj -gI -if -kj -kw -kT -lo -lK -kQ -mE -bR -nC -kQ -ac -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(35,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -dy -dy -ed -ey -eZ -dy -dy -gO -hk -hC -dy -ha -ce -iI -iq -ha -jt -jF -jT -ju -ju -ju -ju -ju -Au -ju -ju -RI -RI -RI -RI -RI -ab -ab -ab -ab -ab -ab -ab -"} -(36,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ac -dy -dy -eA -fa -dy -fY -gP -gQ -hl -hS -ha -ir -iJ -jb -ha -ju -jG -jU -ju -kx -kV -lp -lL -mg -mF -nc -RI -bg -RI -bQ -RI -RI -nf -ab -ab -ab -ab -aa -"} -(37,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -bk -eB -fb -fu -gb -gQ -hl -bW -bS -ha -bx -iK -jc -ha -jv -jH -jV -ju -ky -kW -lq -lM -mh -mG -nd -bf -bh -bj -cp -cs -ct -cu -ab -ab -ab -ab -ab -"} -(38,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -ef -eC -fc -fv -fv -gR -gQ -hl -hU -ha -it -pQ -jd -ha -jw -jI -jW -kk -kz -by -bC -bF -ca -bL -bO -yd -bi -yd -cq -RI -RI -nf -ab -ab -ab -ab -ab -"} -(39,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -eg -eD -fd -bl -bm -gS -hn -gQ -hV -ha -ha -ha -ha -ha -ju -jJ -kl -kl -be -bz -bD -bG -mj -bM -RV -RI -RI -RI -cr -nf -ab -ab -ab -ab -ab -ab -ab -"} -(40,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -dP -eE -fe -dy -bn -dy -ho -hD -dy -dy -ac -ab -ab -ab -ac -jK -ju -km -kB -br -bE -bH -bJ -bN -bP -cl -cn -RI -ab -ab -ab -ab -ab -ab -ab -ab -ab -"} -(41,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -eF -eF -dy -bo -dy -eF -eF -dy -ab -ab -ab -ab -ab -ab -ab -ju -ju -kC -bA -lu -lP -bK -mK -kD -cm -co -RI -ab -ab -ab -ab -ab -ab -ab -ab -ab -"} -(42,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -gg -dy -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ju -kD -bB -Au -kD -bB -ju -ju -ju -ju -RI -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(43,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -fx -bp -fx -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ju -bs -bu -ju -ch -cj -ju -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(44,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bq -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ju -bt -cg -ju -ci -ck -ju -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(45,1,1) = {" -aa -aa -aa -ab -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ju -ju -ju -ju -ju -ju -ju -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(46,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(48,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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -"} diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm new file mode 100644 index 00000000000..6f97ce3e9f8 --- /dev/null +++ b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm @@ -0,0 +1,8654 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aj" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"ap" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"ar" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"at" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"av" = ( +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"aT" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/clothing/mask/gas/clown_hat{ + desc = "What is this? A secret syndie space face, inside the secret syndie space base?"; + name = "syndicate clown mask" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"aX" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"be" = ( +/obj/machinery/atmospherics/binary/pump/on{ + name = "Air To Distro" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"br" = ( +/obj/effect/turf_decal/stripes/red/line, +/obj/machinery/door_control{ + id = "syndie_lavaland_vault"; + name = "Vault Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "150"; + specialfunctions = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"bw" = ( +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"bO" = ( +/obj/structure/rack, +/obj/item/rpd{ + pixel_y = 3 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"bS" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"bT" = ( +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"bY" = ( +/obj/structure/table, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"cg" = ( +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkbluecorners" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"ch" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"cj" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"cs" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"cB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"cC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"cD" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4; + initialize_directions = 11; + level = 2 + }, +/obj/machinery/meter, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"cE" = ( +/obj/machinery/atmospherics/binary/valve, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"cH" = ( +/obj/machinery/door/window/eastright{ + name = "Animal Storage"; + req_access_txt = "150"; + req_one_access_txt = "150" + }, +/obj/structure/window/basic{ + dir = 1 + }, +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"cJ" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5; + level = 1 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"cL" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Medical APC"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "whiteblue"; + tag = "icon-whiteblue (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"cO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"cS" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"cU" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/beaker/large, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "whitepurple"; + tag = "icon-whitepurple (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"di" = ( +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"dl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"ds" = ( +/obj/structure/sign/poster/contraband/hacking_guide, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/engineering) +"dH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"dP" = ( +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/portable_atmospherics/canister/sleeping_agent, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"dS" = ( +/obj/structure/closet/crate, +/obj/item/extinguisher{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/extinguisher{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/extinguisher{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/flashlight{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"dW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"el" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/monkeycubes/syndicate, +/obj/item/storage/box/monkeycubes/syndicate, +/obj/item/storage/box/monkeycubes/syndicate, +/obj/item/storage/box/monkeycubes/syndicate, +/obj/item/storage/box/monkeycubes/syndicate, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"em" = ( +/obj/structure/table, +/obj/machinery/door_control{ + id = "SSBrestricted"; + name = "Shutters Control"; + pixel_x = 6; + req_access_txt = "151" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"eC" = ( +/obj/machinery/atmospherics/unary/thermomachine/freezer, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"eN" = ( +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"eQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"eV" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whiteblue"; + tag = "icon-whiteblue (NORTH)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"fb" = ( +/obj/machinery/kitchen_machine/microwave, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"fe" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"ff" = ( +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"fi" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/engine/air, +/area/ruin/unpowered/syndicate_space_base/engineering) +"fn" = ( +/obj/machinery/vending/syndichem, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "whitepurple"; + tag = "icon-whitepurple (NORTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"fu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/chem_master, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "whitepurple"; + tag = "icon-whitepurple (SOUTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"fx" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"fF" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"fH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"fP" = ( +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"fQ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"fU" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"fX" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 4 + }, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"ge" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"gg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"gh" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"gj" = ( +/obj/structure/sign/securearea{ + name = "\improper STAY CLEAR HEAVY MACHINERY"; + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"gl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"gn" = ( +/obj/structure/sign/poster/contraband/syndicate_pistol, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/cargo) +"gs" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"gu" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"gD" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/medbay) +"gS" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/item/reagent_containers/iv_bag/blood/OMinus, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"gY" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/redgrid, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"gZ" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"hc" = ( +/obj/machinery/atmospherics/binary/volume_pump, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"hp" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/beaker/large, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Chemistry APC"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "whitepurple"; + tag = "icon-whitepurple (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"hq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"hr" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"hB" = ( +/obj/machinery/plantgenes, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"hK" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"hO" = ( +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 30; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 30 + }, +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 30; + pixel_x = -5; + pixel_y = -5 + }, +/obj/structure/rack{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"hR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"hS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"hX" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"ia" = ( +/turf/simulated/mineral, +/area/ruin/unpowered/syndicate_space_base/testlab) +"ic" = ( +/turf/template_noop, +/area/template_noop) +"id" = ( +/obj/machinery/atmospherics/unary/passive_vent, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"ii" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"ik" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"in" = ( +/obj/machinery/kitchen_machine/oven, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"ir" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"it" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"iy" = ( +/obj/structure/table, +/obj/machinery/photocopier/faxmachine/longrange/syndie{ + department = "Syndicate Bioweapon Research Outpost" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"iA" = ( +/obj/machinery/atmospherics/pipe/simple/visible/universal{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"iF" = ( +/obj/structure/table, +/obj/item/pen, +/obj/item/paper_bin, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"iH" = ( +/obj/machinery/atmospherics/unary/thermomachine/heater, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"ji" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"jl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"jm" = ( +/obj/machinery/light/small, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"jq" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"jt" = ( +/obj/structure/table, +/obj/item/storage/box/masks{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/storage/box/gloves{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"jy" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"jB" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/soap/syndie, +/obj/item/soap/syndie, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"jC" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"jI" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"jO" = ( +/obj/structure/chair/stool/bar, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"jS" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4; + initialize_directions = 11; + level = 2 + }, +/obj/machinery/meter, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"jW" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/beer/upgraded{ + dir = 1 + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"kg" = ( +/obj/machinery/computer/cryopod{ + pixel_x = -32; + req_one_access = null + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"kk" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"ks" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"ku" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank/high, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"kC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"kD" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"kE" = ( +/obj/effect/spawner/window/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"kI" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"kU" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/syringes, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitegreen"; + tag = "icon-whitegreen (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"kY" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"lf" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/main) +"lm" = ( +/obj/machinery/atmospherics/unary/passive_vent, +/turf/simulated/floor/engine/air, +/area/ruin/unpowered/syndicate_space_base/engineering) +"lo" = ( +/obj/machinery/optable, +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"lr" = ( +/obj/machinery/smartfridge, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"lu" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"lv" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/stack/sheet/cardboard{ + amount = 3 + }, +/obj/item/stack/rods/twentyfive, +/obj/item/stock_parts/cell/high/plus, +/obj/item/storage/box/stockparts/deluxe, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"lw" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"ly" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"lB" = ( +/obj/machinery/smartfridge/secure/chemistry/virology/preloaded/syndicate, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"lM" = ( +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"lZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + d1 = 0; + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"mh" = ( +/obj/structure/table/glass, +/obj/structure/reagent_dispensers/virusfood{ + pixel_y = 28 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/healthanalyzer, +/obj/item/clothing/glasses/hud/health, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "whitegreen"; + tag = "icon-whitegreen (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"mi" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"mB" = ( +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Telecomms APC"; + pixel_y = 24 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"mE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/fans/tiny, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/testlab) +"mP" = ( +/obj/machinery/power/generator, +/obj/structure/cable/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"mX" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 10; + pixel_y = 0 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"nc" = ( +/obj/machinery/atmospherics/unary/outlet_injector/on{ + dir = 8 + }, +/turf/simulated/floor/plating/airless, +/area/ruin/unpowered/syndicate_space_base/engineering) +"ne" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"nf" = ( +/obj/item/book/manual/chef_recipes{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"nj" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"nm" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"nr" = ( +/obj/machinery/door/airlock/vault{ + id_tag = "syndie_lavaland_vault"; + locked = 1; + req_access_txt = "150" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"nv" = ( +/obj/machinery/light, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"ny" = ( +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "whitegreen"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"nA" = ( +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"nD" = ( +/obj/machinery/hydroponics/constructable, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"nG" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"nT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"nY" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"nZ" = ( +/obj/machinery/reagentgrinder, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/obj/item/stack/sheet/mineral/uranium{ + amount = 10 + }, +/obj/item/stack/sheet/mineral/gold{ + amount = 10 + }, +/obj/structure/table/glass, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitegreen"; + tag = "icon-whitegreen (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"ob" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"oi" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"oj" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/storage/box/donkpockets{ + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"ol" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"ow" = ( +/obj/structure/closet/crate/medical, +/obj/item/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/window/basic, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"oO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/unpowered/syndicate_space_base/cargo) +"oW" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/obj/machinery/biogenerator, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"oZ" = ( +/obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/binary/pump{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"pa" = ( +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"ph" = ( +/obj/machinery/light, +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"pp" = ( +/obj/machinery/vending/hydronutrients, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"pA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"pG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"pI" = ( +/obj/structure/table/reinforced, +/obj/item/retractor, +/obj/item/hemostat, +/obj/effect/decal/cleanable/dirt, +/obj/item/cautery, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"pK" = ( +/obj/item/flag/syndi, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"pR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"qs" = ( +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"qt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/operating, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"qv" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"qz" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"qF" = ( +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"qN" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"qQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"qT" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "syndiegarbage"; + name = "disposal coveyor" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"qY" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 10 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"rp" = ( +/obj/machinery/vending/toyliberationstation{ + req_access_txt = "150" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"rr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/testlab) +"rw" = ( +/obj/item/gun/energy/floragun, +/obj/item/gun/energy/floragun, +/obj/item/gun/energy/floragun, +/obj/item/gun/energy/floragun, +/obj/structure/closet/crate/hydroponics, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"rD" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/reagent_containers/spray/cleaner, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"rK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"rN" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 9 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"rV" = ( +/obj/machinery/seed_extractor, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"rW" = ( +/obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/binary/pump, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"sb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"sr" = ( +/obj/effect/decal/warning_stripes/blue, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"ss" = ( +/obj/structure/bookcase/random, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"sw" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"sz" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/navbeacon/invisible{ + codes_txt = "patrol;next_patrol=SBSE"; + location = "SBNE" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"sH" = ( +/obj/machinery/vending/artvend, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"sR" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"te" = ( +/obj/machinery/computer/camera_advanced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"tf" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"th" = ( +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"tj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"tv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"tz" = ( +/obj/structure/closet/secure_closet/medical1{ + req_access = null; + req_access_txt = "150" + }, +/obj/item/defibrillator, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"tL" = ( +/obj/structure/closet/firecloset/full, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"tQ" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurple"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"tW" = ( +/obj/structure/table, +/obj/machinery/computer/library/checkout, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"uk" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"un" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/fans/tiny, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/testlab) +"uq" = ( +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"ur" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"uu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"uz" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"uF" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/stack/sheet/metal/fifty{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/stack/sheet/metal/fifty{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/stack/sheet/metal/fifty, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"uJ" = ( +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"uL" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/item/storage/box/monkeycubes/syndicate, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitegreen"; + tag = "icon-whitegreen (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"uN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"uX" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"uZ" = ( +/obj/machinery/monkey_recycler, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "whitegreen"; + tag = "icon-whitegreen (SOUTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"ve" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"vk" = ( +/obj/machinery/kitchen_machine/grill, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"vn" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"vq" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"vs" = ( +/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"; + tag = "" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"vt" = ( +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"vv" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/soda/upgraded{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"vE" = ( +/obj/machinery/atmospherics/binary/volume_pump{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"vF" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/grille, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"vJ" = ( +/obj/structure/closet/l3closet, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"vK" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"vL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplefull"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"vM" = ( +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"vP" = ( +/obj/machinery/recycler, +/obj/machinery/conveyor/east{ + id = "syndiegarbage" + }, +/obj/machinery/light, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"vQ" = ( +/turf/simulated/floor/plasteel, +/area/ruin/unpowered/syndicate_space_base/cargo) +"vY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/meter, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"wc" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"wf" = ( +/obj/structure/closet/crate, +/obj/item/vending_refill/snack{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/vending_refill/snack{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/vending_refill/coffee, +/obj/item/vending_refill/cola, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"wg" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"wh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"wj" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplefull"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"wn" = ( +/obj/structure/table, +/obj/machinery/smartfridge/disks, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"wp" = ( +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"wq" = ( +/obj/structure/closet/crate/secure/weapon{ + req_access_txt = "150" + }, +/obj/item/ammo_box/magazine/m10mm/ap, +/obj/item/ammo_box/magazine/m10mm/ap, +/obj/item/ammo_box/magazine/m10mm/fire, +/obj/item/ammo_box/magazine/m10mm/fire, +/obj/item/ammo_box/magazine/m10mm/hp, +/obj/item/ammo_box/magazine/m10mm/hp, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"ws" = ( +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"wz" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkbluecorners" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"wB" = ( +/obj/structure/bed, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"wC" = ( +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"wJ" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/effect/turf_decal/caution/red, +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4; + initialize_directions = 11; + level = 2 + }, +/obj/machinery/meter, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"wS" = ( +/obj/item/kitchen/rollingpin, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"wX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Primary Corridor APC"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"wZ" = ( +/obj/machinery/atmospherics/binary/circulator{ + side = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"xc" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"xm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/medical/syndicate_access, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "whiteblue"; + tag = "icon-whiteblue (NORTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"xo" = ( +/obj/machinery/door_control{ + id = "syndbaseventing"; + name = "Toxin Venting Control"; + pixel_x = -8; + pixel_y = 26 + }, +/obj/machinery/ignition_switch{ + id = "syndbaseigniter"; + pixel_x = 6; + pixel_y = 25 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"xr" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"xt" = ( +/obj/machinery/portable_atmospherics/canister/air{ + anchored = 1 + }, +/turf/simulated/floor/engine/air, +/area/ruin/unpowered/syndicate_space_base/engineering) +"xu" = ( +/obj/structure/sign/poster/contraband/tools, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/engineering) +"xB" = ( +/obj/item/storage/box/monkeycubes/syndicate, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"xG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/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 = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"xN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"yf" = ( +/obj/machinery/computer/monitor{ + name = "Engine Grid Power Monitoring Computer" + }, +/obj/structure/cable/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"yq" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"yz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"yB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"yE" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"yY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"yZ" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"zj" = ( +/obj/structure/table, +/obj/item/storage/box/disks_plantgene, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"zl" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitegreen"; + tag = "icon-whitegreen (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"zm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"zs" = ( +/obj/structure/sign/biohazard{ + pixel_y = 0 + }, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/virology) +"zG" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/cans/beer, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"zS" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/obj/machinery/floodlight, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Ai" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Aj" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Am" = ( +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"AA" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/science, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplefull"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"AB" = ( +/obj/machinery/autolathe/syndicate, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"AG" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "whitegreen"; + tag = "icon-whitegreen (NORTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"AI" = ( +/obj/structure/table/glass, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5; + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5; + pixel_y = 2 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5; + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6 + }, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/item/storage/box/beakers/bluespace, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitepurple"; + tag = "icon-whitepurple (NORTH)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"AJ" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"AM" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"AU" = ( +/obj/machinery/vending/cigarette/syndicate/free, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"AV" = ( +/turf/simulated/mineral, +/area/template_noop) +"AX" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Bt" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"BC" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"BG" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"BH" = ( +/obj/structure/table/reinforced, +/obj/item/scalpel, +/obj/item/circular_saw{ + pixel_y = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"BN" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"BS" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Cd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Ce" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Cf" = ( +/obj/machinery/conveyor/east{ + id = "syndiegarbage" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Cj" = ( +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Cr" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Cv" = ( +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "whitegreen"; + tag = "icon-whitegreen (SOUTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"CG" = ( +/turf/simulated/floor/plasteel, +/area/ruin/unpowered/syndicate_space_base/engineering) +"CH" = ( +/obj/structure/closet/bombcloset, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"CI" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"CL" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/redgrid, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"CM" = ( +/obj/structure/sign/explosives/alt, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Da" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Dp" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Dv" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Dw" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Dy" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"DE" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"DG" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/cargo) +"DH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"DL" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"DN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"DP" = ( +/obj/item/clothing/glasses/night, +/obj/item/clothing/glasses/night, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/item/storage/belt/military, +/obj/item/storage/belt/military, +/obj/item/clothing/under/syndicate/combat, +/obj/item/clothing/under/syndicate/combat, +/obj/item/clothing/gloves/combat, +/obj/structure/closet/crate/secure/gear{ + req_access_txt = "150" + }, +/obj/item/clothing/gloves/combat, +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"DW" = ( +/obj/machinery/computer/pandemic, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"El" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Em" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Es" = ( +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"EA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 0; + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"EC" = ( +/obj/structure/table, +/obj/item/storage/box/syringes, +/obj/item/gun/syringe/syndicate, +/obj/machinery/defibrillator_mount/loaded{ + pixel_x = -30 + }, +/obj/item/stock_parts/cell/high/plus, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"EI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"EK" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"EM" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"EO" = ( +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"EP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"ET" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"EW" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/insulated, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"EX" = ( +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkbluecorners" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Fd" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/firstaid/fire{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Fe" = ( +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Virology APC"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"Fi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Fl" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/virology) +"Fm" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Fp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/chem_heater, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple"; + tag = "icon-whitepurple (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Fs" = ( +/obj/structure/window/basic{ + dir = 1 + }, +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"Ft" = ( +/obj/structure/sign/chemistry, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"FC" = ( +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"FK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurple"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"FQ" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/storage/bag/trash, +/obj/item/storage/bag/trash, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"FW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"FY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"Ga" = ( +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Gd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Ge" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/chem_master, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "whitepurple"; + tag = "icon-whitepurple (SOUTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Go" = ( +/obj/machinery/cooker/deepfryer, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Gq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"GJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"GK" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/storage/bag/plants, +/obj/item/storage/bag/plants, +/obj/item/storage/bag/plants, +/obj/item/storage/bag/plants, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"GM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"GQ" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"GY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Hc" = ( +/turf/space, +/area/ruin/unpowered/syndicate_space_base/engineering) +"He" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Hq" = ( +/obj/structure/closet/firecloset/full, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Hv" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"HB" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12; + pixel_y = 2 + }, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"HF" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurple"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"HL" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/stockparts/deluxe, +/obj/item/storage/box/stockparts/deluxe, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/circuitboard/gibber, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"HS" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"HZ" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/bar) +"Ig" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{ + dir = 4 + }, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Ih" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Il" = ( +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Iv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/unpowered/syndicate_space_base/cargo) +"IA" = ( +/obj/machinery/vending/boozeomat, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"IL" = ( +/obj/machinery/navbeacon/invisible{ + codes_txt = "patrol;next_patrol=SBNE"; + location = "SBNW" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"IZ" = ( +/obj/machinery/atmospherics/binary/circulator, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Ja" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/unpowered/syndicate_space_base/cargo) +"Je" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Jg" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/effect/turf_decal/caution/red, +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Jh" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Ji" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Jk" = ( +/obj/machinery/tcomms/relay/ruskie{ + network_id = "SYNDIE-RELAY" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"Jm" = ( +/turf/simulated/floor/plasteel{ + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Jq" = ( +/obj/structure/table/wood, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"JH" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"JX" = ( +/obj/machinery/navbeacon/invisible{ + codes_txt = "patrol;next_patrol=SBNW"; + location = "SBSW" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Kf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Kh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Ki" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Bar APC"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Kj" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Km" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/chem_heater, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple"; + tag = "icon-whitepurple (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Ko" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Kt" = ( +/obj/machinery/bodyscanner, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Kv" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Kw" = ( +/obj/machinery/processor, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Kx" = ( +/obj/machinery/recharge_station, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"KB" = ( +/mob/living/simple_animal/pig, +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"KH" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"KJ" = ( +/obj/item/flag/syndi, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"KK" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"KQ" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"KS" = ( +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/structure/rack{ + dir = 8 + }, +/obj/item/stack/sheet/glass/fifty, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"La" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Le" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Lf" = ( +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Lh" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/wrench, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Lj" = ( +/obj/item/reagent_containers/food/drinks/shaker, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Lk" = ( +/obj/machinery/computer/syndicate_depot/teleporter, +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Lm" = ( +/obj/structure/table, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Engineering APC"; + pixel_y = 24; + shock_proof = 1 + }, +/obj/structure/cable/yellow{ + d1 = 0; + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Ls" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"LI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"LK" = ( +/obj/structure/chair/stool/bar, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"LP" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkbluecorners" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"LQ" = ( +/obj/structure/closet/crate/secure/gear{ + req_access_txt = "150" + }, +/obj/item/clothing/suit/space/syndicate, +/obj/item/clothing/suit/space/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/head/helmet/space/syndicate, +/obj/item/clothing/head/helmet/space/syndicate, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"LR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"LV" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 10 + }, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"LX" = ( +/obj/machinery/door/poddoor{ + id_tag = "syndbaseventing"; + name = "Venting Bay Door"; + use_power = 0 + }, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"LY" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Mb" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Mc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Me" = ( +/obj/machinery/atmospherics/binary/volume_pump, +/obj/machinery/alarm/syndicate{ + pixel_x = -32 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Mi" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Mk" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplefull"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Mq" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/storage/belt/medical, +/obj/item/crowbar, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/accessory/stethoscope, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Ms" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"MH" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"MU" = ( +/obj/structure/table, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"MV" = ( +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Na" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"NE" = ( +/obj/machinery/atmospherics/unary/outlet_injector/on, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"NN" = ( +/obj/structure/bookcase/random, +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"NO" = ( +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/hand_labeler, +/obj/item/pen/red, +/obj/item/restraints/handcuffs, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/glasses/science, +/obj/structure/table/glass, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitegreen"; + tag = "icon-whitegreen (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"NT" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/rack, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"NV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Og" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"On" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/power/smes/engineering, +/obj/structure/cable/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Op" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Ot" = ( +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"OG" = ( +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"OK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"OY" = ( +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Dorms APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Pq" = ( +/obj/item/holosign_creator/atmos, +/obj/structure/table, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"PB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"PE" = ( +/obj/machinery/vending/medical/syndicate_access, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"PH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/chem_dispenser/upgraded, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "whitepurple"; + tag = "icon-whitepurple (SOUTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"PI" = ( +/obj/machinery/light, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"PK" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"PX" = ( +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/computer/monitor{ + name = "Output Grid Power Monitoring Computer" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Qj" = ( +/obj/structure/closet/crate/medical, +/obj/item/clothing/mask/breath/medical, +/obj/item/clothing/mask/breath/medical, +/obj/item/tank/internals/anesthetic, +/obj/item/tank/internals/anesthetic, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Qr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Qt" = ( +/obj/structure/sign/barsign, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/bar) +"QO" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"QQ" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"QW" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Ri" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Rk" = ( +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Rn" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Rr" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Ry" = ( +/obj/structure/table/reinforced, +/obj/item/surgicaldrill, +/obj/effect/decal/cleanable/dirt, +/obj/item/bonegel, +/obj/item/bonesetter, +/obj/item/FixOVein, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"RC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"RF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"RG" = ( +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"RM" = ( +/obj/structure/grille, +/obj/structure/window/full/plastitanium, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"RN" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Sh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/navbeacon/invisible{ + codes_txt = "patrol;next_patrol=SBSW"; + location = "SBSE" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"SE" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3 + }, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3 + }, +/obj/item/reagent_containers/dropper, +/obj/item/screwdriver/nuke{ + pixel_y = 18 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/reagent_containers/spray/cleaner, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple"; + tag = "icon-whitepurple (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"SI" = ( +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/bluespace_beacon/syndicate/infiltrator, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"SO" = ( +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"SQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"SU" = ( +/obj/machinery/vending/coffee/free, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"SV" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"SW" = ( +/mob/living/simple_animal/cow, +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"SX" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/mob/living/simple_animal/chicken, +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"Tc" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/storage/box/donkpockets{ + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 2 + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"Te" = ( +/obj/machinery/sparker{ + id = "syndbaseigniter"; + pixel_x = -20 + }, +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 4 + }, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Tg" = ( +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Tl" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4; + initialize_directions = 11; + level = 2 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Tm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Tn" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Tq" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/obj/machinery/vending/hydroseeds, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Tr" = ( +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Arrivals APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Tv" = ( +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Tw" = ( +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"TC" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"TD" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/testlab) +"TJ" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"TM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"TN" = ( +/obj/structure/curtain/open/shower, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Uo" = ( +/obj/structure/closet/l3closet, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"Us" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"UF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"UR" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Vc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Vd" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/simulated/floor/redgrid, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"Vf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Vg" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Vl" = ( +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Vs" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Vu" = ( +/obj/machinery/monkey_recycler, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Vx" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/effect/turf_decal/caution/red, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"VB" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/insulated{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"VH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/power/smes/engineering{ + charge = 0 + }, +/obj/structure/cable/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"VK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"VP" = ( +/obj/machinery/light, +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"VQ" = ( +/obj/machinery/shower{ + dir = 8; + icon_state = "shower"; + tag = "icon-shower (WEST)" + }, +/obj/item/soap/syndie, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"VW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Wi" = ( +/obj/machinery/kitchen_machine/candy_maker, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Wl" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/hydroponics/constructable, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Wn" = ( +/obj/machinery/sleeper/syndie, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Wr" = ( +/turf/simulated/floor/engine/air, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Wz" = ( +/obj/structure/sign/lifestar{ + desc = "The Star of Life, a symbol of Medical Aid."; + icon_state = "lifestar"; + name = "Medbay" + }, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/medbay) +"WC" = ( +/obj/item/kitchen/knife{ + pixel_x = 6 + }, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"WG" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"WN" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"WT" = ( +/obj/structure/window/basic, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Xa" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 9 + }, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Xb" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Xh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Xm" = ( +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"XQ" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/insulated, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"XS" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3 + }, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3 + }, +/obj/item/reagent_containers/dropper, +/obj/item/screwdriver/nuke{ + pixel_y = 18 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple"; + tag = "icon-whitepurple (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Ya" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Yc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Yq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Yz" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id_tag = "SSBrestricted"; + name = "Syndicate Restricted Area" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"YC" = ( +/obj/effect/spawner/window/reinforced, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"YJ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"YP" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"YU" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/item/storage/part_replacer, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"Za" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Zg" = ( +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Test Chamber APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Zl" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/cultivator, +/obj/item/cultivator, +/obj/item/cultivator, +/obj/item/cultivator, +/obj/item/shovel/spade, +/obj/item/shovel/spade, +/obj/item/shovel/spade, +/obj/item/shovel/spade, +/obj/item/hatchet, +/obj/item/hatchet, +/obj/item/hatchet, +/obj/item/hatchet, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Zo" = ( +/obj/machinery/computer/general_air_control{ + frequency = 1222; + name = "Bomb Mix Monitor"; + sensors = list("burn_sensor" = "Burn Mix") + }, +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Zy" = ( +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"ZB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"ZR" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/testlab) + +(1,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(2,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(3,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(4,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(5,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(6,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(7,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(8,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(9,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +"} +(10,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +"} +(11,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +"} +(12,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(13,1,1) = {" +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +fF +fF +fF +fF +fF +fF +fF +fF +nj +nj +nj +nj +nj +nj +hB +Tw +Wl +Tw +ii +HB +ii +Tw +ii +Fs +nA +HZ +AV +AV +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(14,1,1) = {" +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +fF +Lf +Vs +KJ +kg +KJ +Vs +Rk +nj +iy +iF +Jk +te +nj +rV +Dy +nD +Dy +nD +Dy +nD +Dy +nD +Fs +KB +HZ +lf +lf +gD +xm +Mq +tz +EC +gS +WT +pI +BH +Ry +gD +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(15,1,1) = {" +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +fF +SO +La +La +La +La +La +ph +nj +fU +CL +Vd +gY +nj +pp +Tw +Dy +Tw +Dy +Tw +Dy +Tw +Dy +Fs +SW +HZ +uk +uk +Wz +eV +bw +bw +bw +bw +bw +bw +bw +lo +gD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(16,1,1) = {" +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +fF +Ga +Zy +cg +La +EX +Zy +ff +nj +mB +FY +zm +jl +nj +Tq +xr +zS +wn +Tw +Dy +zj +ku +oW +cH +SX +HZ +tv +fQ +EI +cO +ks +lu +lu +Jh +bw +bw +bw +qt +gD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(17,1,1) = {" +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +fF +fF +fF +qz +La +Fm +fF +fF +nj +nj +hR +uX +kE +nj +Ji +GK +Zl +rw +Dy +Tw +lr +Am +Il +Tw +Ji +HZ +ZB +yz +gD +cL +Fd +Kt +Wn +Wn +ow +Qj +av +jt +gD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(18,1,1) = {" +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +fF +HS +La +Gq +dl +dl +Tm +LR +Dp +ne +Cd +ik +Gd +ap +DN +qN +Gd +ap +Gd +yY +cS +ap +Gd +ik +Rr +cC +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(19,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +fF +OY +gl +Xh +gl +gl +Yc +VW +VW +Mi +IL +pR +it +Tw +Dy +Tw +Dy +Tw +Dy +Tw +Dy +Tw +Dy +OG +JX +yz +Fl +AG +cs +wg +lB +DW +PE +Cv +RM +vq +wC +Fl +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(20,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +fF +fF +fF +qz +La +DE +fF +fF +fF +fF +fF +Op +Es +HZ +Ki +di +Jq +jO +Tw +IA +WC +wS +fb +Cj +uJ +Qt +ZB +yz +Fl +Fe +EO +EO +EO +bS +EO +ny +nY +wC +wB +Fl +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(21,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +fF +fP +Vs +wz +La +LP +Vs +MV +fF +La +fF +xN +uk +HZ +jW +di +zG +LK +Dy +AU +Lj +uJ +uJ +uJ +uJ +HZ +kk +Kh +ir +uu +qQ +gg +gg +yq +EO +ny +RM +RM +RM +Fl +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(22,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +fF +RG +La +La +La +La +La +VP +fF +La +fF +xN +uk +HZ +Jq +di +PK +jO +Tw +SU +nf +uJ +uJ +uJ +uJ +HZ +uk +yz +zs +ly +jq +EO +jq +EO +EO +ny +nY +wC +wC +Fl +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(23,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +fF +pa +Zy +pK +Zy +pK +Zy +lM +fF +aT +fF +Ya +mi +HZ +vv +di +TJ +LK +Dy +Le +Kw +vk +in +Go +Wi +HZ +uk +yz +Fl +mh +NO +zl +kU +nZ +uL +uZ +RM +jI +wB +Fl +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(24,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +Em +Em +Em +Em +Em +Em +Em +Em +Em +Em +Em +Em +xN +uk +DG +DG +DG +DG +DG +DG +DG +DG +DG +DG +DG +DG +DG +uk +PI +Og +Og +Og +Og +YC +Og +Og +YC +Og +Og +Og +Og +Og +AV +AV +AV +AV +AV +AV +AV +AV +"} +(25,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Kx +gh +lw +RN +Em +tL +He +Pq +He +Hq +Em +NV +jC +DG +Tc +dS +YU +vJ +lv +wf +HL +wf +gn +ws +wq +DG +uk +yz +Og +fn +tQ +HF +FK +fu +Og +fn +tQ +HF +FK +Ge +Og +AV +AV +AV +AV +AV +AV +AV +AV +"} +(26,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +AB +CG +CG +Jm +Em +AJ +CG +CG +CG +Jm +Em +wX +uk +EM +SV +vQ +Iv +vQ +vQ +vQ +Ja +br +nr +nG +DP +DG +uk +yz +YC +AI +Mk +wj +vL +AA +fe +AI +Mk +wj +vL +AA +Og +AV +AV +AV +AV +AV +AV +AV +AV +"} +(27,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +hO +CG +uF +KS +Em +uz +Xm +CG +Xm +Dv +Em +GJ +uk +DG +oj +rp +oO +Uo +CH +sH +Ja +el +DG +qs +LQ +DG +uk +yz +Og +hp +XS +UF +Fp +PH +Og +cU +SE +bT +Km +PH +Og +AV +AV +AV +AV +AV +AV +AV +AV +"} +(28,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Em +sR +Hv +Em +Em +Em +Hv +sR +Em +Em +Em +tf +uk +DG +DG +DG +oi +EM +EM +EM +BC +DG +DG +DG +DG +DG +uk +yz +Og +Og +Og +TM +Ft +Og +Og +Og +Ft +Xb +Og +Og +Og +Og +AV +AV +AV +AV +AV +AV +AV +"} +(29,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Tn +DH +DH +Da +eQ +ar +Ms +Qr +BS +BS +hX +sz +BS +FW +Ko +LI +BS +xG +tj +fx +BS +BS +BS +wh +BS +Sh +yB +ge +Kf +Fi +EP +PB +Na +Na +Na +sb +kC +cB +Xb +xB +Og +AV +AV +AV +AV +AV +AV +AV +"} +(30,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Za +qF +qF +qF +qF +Ls +SQ +Tg +uk +uk +hK +uk +uk +uk +El +uk +uk +yz +pG +uk +uk +uk +uk +KQ +uk +gs +uk +vM +Xb +Ai +hS +CI +Xb +mX +Xb +CI +Xb +Ai +Xb +Vu +Og +AV +AV +AV +AV +AV +AV +AV +"} +(31,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +Em +Em +Em +Za +qF +qF +qF +JH +QW +SQ +xu +Em +Em +Em +Em +Em +sR +pA +Em +yE +GM +gZ +yE +yE +yE +yE +yE +yE +TD +TD +TD +TD +TD +rr +CM +TD +TD +TD +CM +ZR +TD +Og +Og +Og +AV +AV +AV +AV +AV +AV +AV +"} +(32,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +Em +MU +qF +Za +qF +qF +qF +qF +Ls +SQ +bO +Em +Wr +Wr +Wr +Vx +Aj +Ce +vn +yE +nT +rK +xc +uq +uq +uq +uq +uq +TD +ia +ia +ia +TD +un +TD +ia +ia +ia +TD +mE +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +"} +(33,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +Em +PX +DH +vs +Vf +VH +lZ +AM +Je +SQ +YJ +Em +Wr +xt +Wr +Jg +Aj +iA +UR +yE +nT +rK +yE +Kv +yE +TN +yE +TN +TD +TD +TD +TD +TD +rr +CM +TD +TD +TD +CM +ZR +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +"} +(34,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +Em +Lm +VK +aX +Mc +On +EA +AM +ch +AX +yf +Em +Wr +lm +fi +wJ +be +jS +rN +yE +dW +Us +yE +LY +yE +jy +yE +VQ +TD +Zg +fH +fH +RC +uN +ol +RF +RF +dH +cJ +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +"} +(35,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +Em +NT +qF +ji +AM +AM +AM +AM +nm +EK +ds +Em +Em +Em +Em +Em +yE +yE +yE +yE +Tr +rK +yE +yE +yE +yE +yE +yE +TD +Rn +Vl +Vl +sw +Vc +Vl +Vl +Vl +Vc +Ri +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +"} +(36,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +Em +th +qF +qF +qF +qF +qF +qF +at +qF +YP +Me +BG +TC +qF +Em +jB +ur +WG +aj +Mb +cj +aj +WG +qT +jm +yE +AV +TD +Vl +Vl +Vl +sw +Vc +Vl +Vl +Vl +Vc +Ri +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(37,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +Em +qF +ET +qF +qF +qF +qF +qF +at +eC +Tl +IZ +cD +vE +gu +Em +vt +WG +WG +xc +WG +rK +xc +WG +WG +Cf +yE +AV +TD +Vl +Vl +Vl +sw +Vc +Vl +Vl +Vl +Vc +Ri +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(38,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +Em +qF +VB +qF +qF +qF +qF +qF +kY +AM +Lh +mP +qF +qF +qF +Em +rD +vK +FQ +yE +Ih +QO +yE +yE +gj +vP +yE +AV +TD +Vl +Vl +Vl +sw +Vc +Vl +Vl +Vl +Vc +Ri +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(39,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +Em +Em +Ig +Em +Em +xo +qF +JH +QW +iH +WN +wZ +hr +vE +gu +Em +yE +yE +yE +yE +WG +rK +BN +yE +WG +Cf +yE +AV +TD +Vl +Vl +Vl +DL +ve +Vl +Vl +Vl +ve +DL +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(40,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +Em +Em +Em +fX +Te +NE +EW +oZ +cE +Bt +Ls +qF +qY +hc +yZ +qF +qF +Em +ss +WG +WG +aj +WG +rK +bY +yE +WG +yE +yE +AV +TD +eN +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +nv +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(41,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +Em +Hc +LX +fX +fX +Tv +vF +Zo +qF +qF +wc +OK +QQ +OK +OK +GQ +qF +Em +ss +WG +WG +xc +WG +rK +MH +yE +yE +yE +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(42,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +Em +Em +Em +LV +Xa +id +XQ +rW +cE +Bt +vY +qF +Em +KH +qF +qF +dP +Em +NN +WG +WG +yE +aj +ob +aj +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(43,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +AV +AV +Em +Em +Em +Em +Em +Em +Em +Em +Yq +Em +Em +Cr +qF +qF +dP +Em +ss +WG +BN +yE +FC +GY +kD +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(44,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +nc +Hc +Em +kI +qF +qF +Vg +Em +ss +WG +tW +yE +Dw +hq +Ot +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(45,1,1) = {" +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Hc +Hc +Em +kI +qF +Kj +Vg +Em +yE +yE +yE +yE +wp +em +KK +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(46,1,1) = {" +ic +ic +ic +AV +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Em +Em +Em +Em +Em +Em +Em +Em +AV +AV +AV +yE +Yz +yE +yE +yE +AV +AV +AV +AV +TD +eN +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +nv +TD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(47,1,1) = {" +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +yE +WG +WG +sr +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(48,1,1) = {" +ic +AV +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +yE +WG +WG +Lk +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(49,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +yE +WG +WG +SI +yE +AV +AV +AV +AV +TD +Vl +qv +Vl +Vl +Vl +Vl +Vl +Vl +Vl +qv +Vl +TD +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(50,1,1) = {" +ic +AV +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +yE +yE +yE +yE +yE +AV +AV +AV +AV +TD +TD +TD +TD +TD +TD +TD +TD +TD +TD +TD +TD +TD +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(51,1,1) = {" +ic +ic +ic +AV +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(52,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +AV +AV +AV +AV +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +"} +(53,1,1) = {" +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +"} +(54,1,1) = {" +ic +AV +ic +ic +ic +ic +ic +ic +ic +AV +ic +AV +ic +ic +AV +ic +ic +ic +AV +AV +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +"} +(55,1,1) = {" +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +"} +(56,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +AV +ic +AV +ic +ic +ic +AV +ic +AV +ic +ic +ic +ic +AV +ic +ic +AV +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +"} +(57,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +AV +ic +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +"} +(58,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +AV +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +ic +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(59,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +AV +ic +ic +ic +AV +AV +AV +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +AV +AV +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(60,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} diff --git a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm index 3a657a7e054..1ba82c992a5 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm @@ -6735,7 +6735,7 @@ }) "nS" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/food/snacks/beetsoup, +/obj/item/reagent_containers/food/snacks/soup/beetsoup, /turf/simulated/floor/plasteel{ icon_state = "bar" }, diff --git a/_maps/map_files/RandomZLevels/beach.dmm b/_maps/map_files/RandomZLevels/beach.dmm index 3001121184a..e77a5d19162 100644 --- a/_maps/map_files/RandomZLevels/beach.dmm +++ b/_maps/map_files/RandomZLevels/beach.dmm @@ -18,10 +18,6 @@ }, /turf/simulated/floor/beach/away/water/deep/sand_floor, /area/awaymission/undersea) -"af" = ( -/obj/structure/constructshell, -/turf/simulated/floor/beach/away/water/deep/wood_floor, -/area/awaymission/undersea) "ag" = ( /obj/structure/chair/wood/wings, /turf/simulated/floor/beach/away/water/deep/wood_floor, @@ -46312,7 +46308,7 @@ ad ad ad ah -af +ah ah ah ar @@ -46823,7 +46819,7 @@ av av ad ad -af +ah ah ah ah @@ -48108,7 +48104,7 @@ av av ad ad -af +ah ah ah ah @@ -48625,7 +48621,7 @@ ad ad ad ah -af +ah ah ah ah diff --git a/_maps/map_files/RandomZLevels/spacebattle.dmm b/_maps/map_files/RandomZLevels/spacebattle.dmm index 82ff15e5bd5..41249533907 100644 --- a/_maps/map_files/RandomZLevels/spacebattle.dmm +++ b/_maps/map_files/RandomZLevels/spacebattle.dmm @@ -666,7 +666,7 @@ /area/awaymission/spacebattle/cruiser) "cS" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/snacks/stew, +/obj/item/reagent_containers/food/snacks/soup/stew, /turf/simulated/floor/plasteel{ icon_state = "cafeteria"; dir = 2 diff --git a/_maps/map_files/RandomZLevels/wildwest.dmm b/_maps/map_files/RandomZLevels/wildwest.dmm index 5ceeeac6383..50a7074a7a9 100644 --- a/_maps/map_files/RandomZLevels/wildwest.dmm +++ b/_maps/map_files/RandomZLevels/wildwest.dmm @@ -1217,7 +1217,7 @@ }, /area/awaymission/wwgov) "dy" = ( -/obj/item/reagent_containers/food/snacks/stew, +/obj/item/reagent_containers/food/snacks/soup/stew, /turf/simulated/floor/plasteel{ tag = "icon-stage_bleft"; icon_state = "stage_bleft" diff --git a/code/__DEFINES/contracts.dm b/code/__DEFINES/contracts.dm deleted file mode 100644 index 26351cfbac2..00000000000 --- a/code/__DEFINES/contracts.dm +++ /dev/null @@ -1,58 +0,0 @@ -#define CONTRACT_POWER "Power" -#define CONTRACT_WEALTH "Wealth" -#define CONTRACT_PRESTIGE "Prestige" -#define CONTRACT_MAGIC "Magic" -#define CONTRACT_REVIVE "Revive" -#define CONTRACT_KNOWLEDGE "Knowledge" -#define CONTRACT_UNWILLING "Unwilling" -#define CONTRACT_FRIENDSHIP "Friendship" -// FIXME: Implement these -#define CONTRACT_ETALENT "Engineering Talent" -#define CONTRACT_CTALENT "Chemistry Talent" -#define CONTRACT_RETURNDEAD "Return Dead" -#define CONTRACT_AUGMENT "Cybernetic Augmentations" -#define CONTRACT_CANDY "Endless Candy" -#define CONTRACT_ECHANCE "An Extra Chance" -#define CONTRACT_ATECH "Advanced Technology" -#define CONTRACT_DEVILSMACHINE "Devil's Machinery" -#define CONTRACT_YOUTH "Eternal Youth" -#define CONTRACT_FOOD "Food" -#define CONTRACT_SPACE "Space Gear" -#define CONTRACT_CALAMITY "Calamity" - -#define BANE_SALT "salt" -#define BANE_LIGHT "light" -#define BANE_IRON "iron" -#define BANE_WHITECLOTHES "whiteclothes" -#define BANE_SILVER "silver" -#define BANE_HARVEST "harvest" -#define BANE_TOOLBOX "toolbox" - -#define OBLIGATION_FOOD "food" -#define OBLIGATION_FIDDLE "fiddle" -#define OBLIGATION_DANCEOFF "danceoff" -#define OBLIGATION_GREET "greet" -#define OBLIGATION_PRESENCEKNOWN "presenceknown" -#define OBLIGATION_SAYNAME "sayname" -#define OBLIGATION_ANNOUNCEKILL "announcekill" -#define OBLIGATION_ANSWERTONAME "answername" - -#define BAN_HURTWOMAN "hurtwoman" -#define BAN_HURTMAN "hurtman" -#define BAN_CHAPEL "chapel" -#define BAN_HURTPRIEST "hurtpriest" -#define BAN_AVOIDWATER "avoidwater" -#define BAN_STRIKEUNCONCIOUS "strikeunconcious" -#define BAN_HURTLIZARD "hurtlizard" -#define BAN_HURTANIMAL "hurtanimal" - -#define BANISH_WATER "water" -#define BANISH_COFFIN "coffin" -#define BANISH_FORMALDYHIDE "embalm" -#define BANISH_RUNES "runes" -#define BANISH_CANDLES "candles" -#define BANISH_DESTRUCTION "destruction" -#define BANISH_FUNERAL_GARB "funeral" - -#define LORE 1 -#define LAW 2 diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index 157fa1c30b9..f64022136ef 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -81,3 +81,4 @@ #define NO_INTORGANS "no_internal_organs" #define CAN_WINGDINGS "can_wingdings" #define NO_CLONESCAN "no_clone_scan" +#define NO_HAIR "no_hair" diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index f4d5b9f5b1c..14e5fc674ce 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -53,9 +53,8 @@ #define ANTAG_HUD_VAMPIRE 16 #define ANTAG_HUD_ABDUCTOR 17 #define DATA_HUD_ABDUCTOR 18 -#define ANTAG_HUD_DEVIL 19 -#define ANTAG_HUD_EVENTMISC 20 -#define ANTAG_HUD_BLOB 21 +#define ANTAG_HUD_EVENTMISC 19 +#define ANTAG_HUD_BLOB 20 // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index e75eb49a02e..f9aba1efc1b 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -363,7 +363,7 @@ #define INVESTIGATE_BOMB "bombs" // The SQL version required by this version of the code -#define SQL_VERSION 22 +#define SQL_VERSION 23 // Vending machine stuff #define CAT_NORMAL 1 diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 878dab544d9..7ee21738019 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -54,8 +54,9 @@ #define PREFTOGGLE_2_EMOTE_BUBBLE 256 // Yes I know this being an "enable to disable" is misleading, but it avoids having to tweak all existing pref entries #define PREFTOGGLE_2_REVERB_DISABLE 512 +#define PREFTOGGLE_2_FORCE_WHITE_RUNECHAT 1024 -#define TOGGLES_2_TOTAL 1023 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. +#define TOGGLES_2_TOTAL 2047 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. #define TOGGLES_2_DEFAULT (PREFTOGGLE_2_FANCYUI|PREFTOGGLE_2_ITEMATTACK|PREFTOGGLE_2_WINDOWFLASHING|PREFTOGGLE_2_RUNECHAT|PREFTOGGLE_2_DEATHMESSAGE|PREFTOGGLE_2_EMOTE_BUBBLE) @@ -93,7 +94,7 @@ #define EXP_TYPE_SERVICE "Service" #define EXP_TYPE_WHITELIST "Whitelist" -#define EXP_DEPT_TYPE_LIST list(EXP_TYPE_SERVICE, EXP_TYPE_MEDICAL, EXP_TYPE_ENGINEERING, EXP_TYPE_SCIENCE, EXP_TYPE_SECURITY, EXP_TYPE_COMMAND, EXP_TYPE_SILICON, EXP_TYPE_SPECIAL) +#define EXP_DEPT_TYPE_LIST list(EXP_TYPE_SUPPLY, EXP_TYPE_SERVICE, EXP_TYPE_MEDICAL, EXP_TYPE_ENGINEERING, EXP_TYPE_SCIENCE, EXP_TYPE_SECURITY, EXP_TYPE_COMMAND, EXP_TYPE_SILICON, EXP_TYPE_SPECIAL, EXP_TYPE_GHOST) // Defines just for parallax because its levels make storing it in the regular prefs a pain in the ass // These dont need to be bitflags because there isnt going to be more than one at a time of these active diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 8021fa4452d..85c15c1971c 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -26,7 +26,6 @@ #define ROLE_REVENANT "revenant" #define ROLE_HOG_GOD "hand of god: god" // We're prolly gonna port this one day or another #define ROLE_HOG_CULTIST "hand of god: cultist" -#define ROLE_DEVIL "devil" #define ROLE_RAIDER "vox raider" #define ROLE_TRADER "trader" #define ROLE_VAMPIRE "vampire" @@ -54,7 +53,6 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_CHANGELING = /datum/game_mode/changeling, // Changeling ROLE_BORER, // Cortical borer ROLE_CULTIST = /datum/game_mode/cult, // Cultist - ROLE_DEVIL = /datum/game_mode/devil/devil_agents, // Devil ROLE_GSPIDER, // Giant spider ROLE_GUARDIAN, // Guardian ROLE_MORPH, // Morph diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 333efc90e0b..c3f7780b917 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -6,11 +6,14 @@ #define CHANNEL_HEARTBEAT 1020 //sound channel for heartbeats #define CHANNEL_BUZZ 1019 #define CHANNEL_AMBIENCE 1018 +#define CHANNEL_ENGINE 1017 // Engine ambient sounds + +#define USER_VOLUME(M, C) M?.client?.prefs.get_channel_volume(C) //THIS SHOULD ALWAYS BE THE LOWEST ONE! //KEEP IT UPDATED -#define CHANNEL_HIGHEST_AVAILABLE 1017 +#define CHANNEL_HIGHEST_AVAILABLE 1016 #define MAX_INSTRUMENT_CHANNELS (128 * 6) diff --git a/code/__HELPERS/AnimationLibrary.dm b/code/__HELPERS/AnimationLibrary.dm index cc496a85b63..1f0c3dd9ab1 100644 --- a/code/__HELPERS/AnimationLibrary.dm +++ b/code/__HELPERS/AnimationLibrary.dm @@ -4,26 +4,26 @@ * The spin from being thrown will interrupt most of these animations as will grabs, account for that accordingly. */ -/proc/animate_fade_grayscale(var/atom/A, var/time = 5) +/proc/animate_fade_grayscale(atom/A, time = 5) if(!istype(A) && !istype(A, /client)) return A.color = null animate(A, color = MATRIX_GREYSCALE, time = time, easing = SINE_EASING) -/proc/animate_melt_pixel(var/atom/A) +/proc/animate_melt_pixel(atom/A) if(!istype(A)) return animate(A, pixel_y = 0, time = 50 - A.pixel_y, alpha = 175, easing = BOUNCE_EASING) animate(alpha = 0, easing = LINEAR_EASING) -/proc/animate_explode_pixel(var/atom/A) +/proc/animate_explode_pixel(atom/A) if(!istype(A)) return var/floatdegrees = rand(5, 20) var/side = pick(-1, 1) animate(A, pixel_x = rand(-64, 64), pixel_y = rand(-64, 64), transform = matrix(floatdegrees * (side == 1 ? 1:-1), MATRIX_ROTATE), time = 10, alpha = 0, easing = SINE_EASING) -/proc/animate_float(var/atom/A, var/loopnum = -1, floatspeed = 20, random_side = 1) +/proc/animate_float(atom/A, loopnum = -1, floatspeed = 20, random_side = 1) if(!istype(A)) return var/floatdegrees = rand(5, 20) @@ -35,7 +35,7 @@ animate(A, pixel_y = 32, transform = matrix(floatdegrees * (side == 1 ? 1:-1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING) animate(pixel_y = 0, transform = matrix(floatdegrees * (side == 1 ? -1:1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING) -/proc/animate_levitate(var/atom/A, var/loopnum = -1, floatspeed = 20, random_side = 1) +/proc/animate_levitate(atom/A, loopnum = -1, floatspeed = 20, random_side = 1) if(!istype(A)) return var/floatdegrees = rand(5, 20) @@ -47,7 +47,7 @@ animate(A, pixel_y = 8, transform = matrix(floatdegrees * (side == 1 ? 1:-1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING) animate(pixel_y = 0, transform = null, time = floatspeed, loop = loopnum, easing = SINE_EASING) -/proc/animate_ghostly_presence(var/atom/A, var/loopnum = -1, floatspeed = 20, random_side = 1) +/proc/animate_ghostly_presence(atom/A, loopnum = -1, floatspeed = 20, random_side = 1) if(!istype(A)) return var/floatdegrees = rand(5, 20) @@ -59,7 +59,7 @@ animate(A, pixel_y = 8, transform = matrix(floatdegrees * (side == 1 ? 1:-1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING) animate(pixel_y = 0, transform = matrix(floatdegrees * (side == 1 ? -1:1), MATRIX_ROTATE), time = floatspeed, loop = loopnum, easing = SINE_EASING) -/proc/animate_fading_leap_up(var/atom/A) +/proc/animate_fading_leap_up(atom/A) if(!istype(A)) return var/matrix/M = matrix() @@ -71,7 +71,7 @@ sleep(1) A.alpha = 0 -/proc/animate_fading_leap_down(var/atom/A) +/proc/animate_fading_leap_down(atom/A) if(!istype(A)) return var/matrix/M = matrix() @@ -84,7 +84,7 @@ sleep(1) animate(A, transform = M, pixel_z = 0, alpha = 255, time = 1, loop = 1, easing = LINEAR_EASING) -/proc/animate_shake(var/atom/A, var/amount = 5, var/x_severity = 2, var/y_severity = 2) +/proc/animate_shake(atom/A, amount = 5, x_severity = 2, y_severity = 2) // Wiggles the sprite around on its tile then returns it to normal if(!istype(A)) return @@ -101,7 +101,7 @@ spawn(amount) animate(A, transform = null, pixel_y = 0, pixel_x = 0,time = 1,loop = 1, easing = LINEAR_EASING) -/proc/animate_teleport(var/atom/A) +/proc/animate_teleport(atom/A) if(!istype(A)) return var/matrix/M = matrix(1, 3, MATRIX_SCALE) @@ -110,7 +110,7 @@ animate(transform = M, time = 5, color = "#1111ff", alpha = 0, easing = CIRCULAR_EASING) animate(transform = null, time = 5, color = "#ffffff", alpha = 255, pixel_y = 0, easing = ELASTIC_EASING) -/proc/animate_teleport_wiz(var/atom/A) +/proc/animate_teleport_wiz(atom/A) if(!istype(A)) return var/matrix/M = matrix(0, 4, MATRIX_SCALE) @@ -119,14 +119,14 @@ animate(time = 8, transform = M, alpha = 5) //Do nothing, essentially animate(transform = null, time = 5, color = "#ffffff", alpha = 255, pixel_y = 0, easing = ELASTIC_EASING) -/proc/animate_rainbow_glow_old(var/atom/A) +/proc/animate_rainbow_glow_old(atom/A) if(!istype(A)) return animate(A, color = "#FF0000", time = rand(5,10), loop = -1, easing = LINEAR_EASING) animate(color = "#00FF00", time = rand(5,10), loop = -1, easing = LINEAR_EASING) animate(color = "#0000FF", time = rand(5,10), loop = -1, easing = LINEAR_EASING) -/proc/animate_rainbow_glow(var/atom/A) +/proc/animate_rainbow_glow(atom/A) if(!istype(A)) return animate(A, color = "#FF0000", time = rand(5,10), loop = -1, easing = LINEAR_EASING) @@ -136,37 +136,37 @@ animate(color = "#0000FF", time = rand(5,10), loop = -1, easing = LINEAR_EASING) animate(color = "#FF00FF", time = rand(5,10), loop = -1, easing = LINEAR_EASING) -/proc/animate_fade_to_color_fill(var/atom/A, var/the_color, var/time) +/proc/animate_fade_to_color_fill(atom/A, the_color, time) if(!istype(A) || !the_color || !time) return animate(A, color = the_color, time = time, easing = LINEAR_EASING) -/proc/animate_flash_color_fill(var/atom/A, var/the_color, var/loops, var/time) +/proc/animate_flash_color_fill(atom/A, the_color, loops, time) if(!istype(A) || !the_color || !time || !loops) return animate(A, color = the_color, time = time, easing = LINEAR_EASING) animate(color = "#FFFFFF", time = 5, loop = loops, easing = LINEAR_EASING) -/proc/animate_flash_color_fill_inherit(var/atom/A, var/the_color, var/loops, var/time) +/proc/animate_flash_color_fill_inherit(atom/A, the_color, loops, time) if(!istype(A) || !the_color || !time || !loops) return var/color_old = A.color animate(A, color = the_color, time = time, loop = loops, easing = LINEAR_EASING) animate(A, color = color_old, time = time, loop = loops, easing = LINEAR_EASING) -/proc/animate_clownspell(var/atom/A) +/proc/animate_clownspell(atom/A) if(!istype(A)) return animate(A, transform = matrix(1.3, MATRIX_SCALE), time = 5, color = "#00ff00", easing = BACK_EASING) animate(transform = null, time = 5, color = "#ffffff", easing = ELASTIC_EASING) -/proc/animate_wiggle_then_reset(var/atom/A, var/loops = 5, var/speed = 5, var/x_var = 3, var/y_var = 3) +/proc/animate_wiggle_then_reset(atom/A, loops = 5, speed = 5, x_var = 3, y_var = 3) if(!istype(A) || !loops || !speed) return animate(A, pixel_x = rand(-x_var, x_var), pixel_y = rand(-y_var, y_var), time = speed * 2,loop = loops, easing = rand(2,7)) animate(pixel_x = 0, pixel_y = 0, time = speed, easing = rand(2,7)) -/proc/animate_spin(var/atom/A, var/dir = "L", var/T = 1, var/looping = -1) +/proc/animate_spin(atom/A, dir = "L", T = 1, looping = -1) if(!istype(A)) return @@ -180,7 +180,7 @@ animate(transform = matrix(M, turn, MATRIX_ROTATE | MATRIX_MODIFY), time = T, loop = looping) animate(transform = matrix(M, turn, MATRIX_ROTATE | MATRIX_MODIFY), time = T, loop = looping) -/proc/animate_shockwave(var/atom/A) +/proc/animate_shockwave(atom/A) if(!istype(A)) return var/punchstr = rand(10, 20) diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 38176cd0981..34e7f3fda28 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -149,7 +149,7 @@ GLOBAL_PROTECT(log_end) // A logging proc that only outputs after setup is done, to // help devs test initialization stuff that happens a lot -/proc/log_after_setup(var/message) +/proc/log_after_setup(message) if(SSticker && SSticker.current_state > GAME_STATE_SETTING_UP) to_chat(world, "[message]") log_world(message) @@ -160,7 +160,7 @@ GLOBAL_PROTECT(log_end) // Helper procs for building detailed log lines -/proc/datum_info_line(var/datum/d) +/proc/datum_info_line(datum/d) if(!istype(d)) return if(!istype(d, /mob)) @@ -168,7 +168,7 @@ GLOBAL_PROTECT(log_end) var/mob/m = d return "[m] ([m.ckey]) ([m.type])" -/proc/atom_loc_line(var/atom/a) +/proc/atom_loc_line(atom/a) if(!istype(a)) return var/turf/t = get_turf(a) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index d76ffc005a0..63e527b59f2 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -51,7 +51,7 @@ // Like view but bypasses luminosity check -/proc/hear(var/range, var/atom/source) +/proc/hear(range, atom/source) var/lum = source.luminosity source.luminosity = 6 @@ -145,7 +145,7 @@ // It will keep doing this until it checks every content possible. This will fix any problems with mobs, that are inside objects, // being unable to hear people due to being in a box within a bag. -/proc/recursive_mob_check(var/atom/O, var/list/L = list(), var/recursion_limit = 3, var/client_check = 1, var/sight_check = 1, var/include_radio = 1) +/proc/recursive_mob_check(atom/O, list/L = list(), recursion_limit = 3, client_check = 1, sight_check = 1, include_radio = 1) //GLOB.debug_mob += O.contents.len if(!recursion_limit) @@ -174,7 +174,7 @@ // The old system would loop through lists for a total of 5000 per function call, in an empty server. // This new system will loop at around 1000 in an empty server. -/proc/get_mobs_in_view(var/R, var/atom/source, var/include_clientless = FALSE) +/proc/get_mobs_in_view(R, atom/source, include_clientless = FALSE) // Returns a list of mobs in range of R from source. Used in radio and say code. var/turf/T = get_turf(source) @@ -200,7 +200,7 @@ return hear -/proc/get_mobs_in_radio_ranges(var/list/obj/item/radio/radios) +/proc/get_mobs_in_radio_ranges(list/obj/item/radio/radios) . = list() // Returns a list of mobs who can hear any of the radios given in @radios var/list/speaker_coverage = list() @@ -263,7 +263,7 @@ return 0 return 1 -/proc/isInSight(var/atom/A, var/atom/B) +/proc/isInSight(atom/A, atom/B) var/turf/Aturf = get_turf(A) var/turf/Bturf = get_turf(B) @@ -293,7 +293,7 @@ if(AM.Move(get_step(T, direction))) break -/proc/get_mob_by_key(var/key) +/proc/get_mob_by_key(key) for(var/mob/M in GLOB.mob_list) if(M.ckey == lowertext(key)) return M @@ -339,16 +339,6 @@ O.screen_loc = screen_loc return O -/proc/Show2Group4Delay(obj/O, list/group, delay=0) - if(!isobj(O)) return - if(!group) group = GLOB.clients - for(var/client/C in group) - C.screen += O - if(delay) - spawn(delay) - for(var/client/C in group) - C.screen -= O - /proc/remove_images_from_clients(image/I, list/show_to) for(var/client/C in show_to) C.images -= I @@ -402,7 +392,7 @@ src.dest_x = dest_x src.dest_y = dest_y -/proc/projectile_trajectory(var/src_x, var/src_y, var/rotation, var/angle, var/power) +/proc/projectile_trajectory(src_x, src_y, rotation, angle, power) // returns the destination (Vx,y) that a projectile shot at [src_x], [src_y], with an angle of [angle], // rotated at [rotation] and with the power of [power] @@ -420,7 +410,7 @@ return new /datum/projectile_data(src_x, src_y, time, distance, power_x, power_y, dest_x, dest_y) -/proc/mobs_in_area(var/area/the_area, var/client_needed=0, var/moblist=GLOB.mob_list) +/proc/mobs_in_area(area/the_area, client_needed=0, moblist=GLOB.mob_list) var/list/mobs_found[0] var/area/our_area = get_area(the_area) for(var/mob/M in moblist) @@ -431,7 +421,7 @@ mobs_found += M return mobs_found -/proc/alone_in_area(var/area/the_area, var/mob/must_be_alone, var/check_type = /mob/living/carbon) +/proc/alone_in_area(area/the_area, mob/must_be_alone, check_type = /mob/living/carbon) var/area/our_area = get_area(the_area) for(var/C in GLOB.alive_mob_list) if(!istype(C, check_type)) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index ee1530df81b..282ad53cd06 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -84,13 +84,13 @@ continue if(!use_name) - error("Loadout - Missing display name: [G]") + stack_trace("Loadout - Missing display name: [G]") continue if(!initial(G.cost)) - error("Loadout - Missing cost: [G]") + stack_trace("Loadout - Missing cost: [G]") continue if(!initial(G.path)) - error("Loadout - Missing path definition: [G]") + stack_trace("Loadout - Missing path definition: [G]") continue if(!GLOB.loadout_categories[use_category]) diff --git a/code/__HELPERS/heap.dm b/code/__HELPERS/heap.dm index 50a11e71abb..c9ad037755f 100644 --- a/code/__HELPERS/heap.dm +++ b/code/__HELPERS/heap.dm @@ -33,7 +33,7 @@ Sink(1) //Get a node up to its right position in the heap -/datum/heap/proc/Swim(var/index) +/datum/heap/proc/Swim(index) var/parent = round(index * 0.5) while(parent > 0 && (call(cmp)(L[index], L[parent]) > 0)) @@ -42,7 +42,7 @@ parent = round(index * 0.5) //Get a node down to its right position in the heap -/datum/heap/proc/Sink(var/index) +/datum/heap/proc/Sink(index) var/g_child = GetGreaterChild(index) while(g_child > 0 && (call(cmp)(L[index], L[g_child]) < 0)) @@ -52,7 +52,7 @@ //Returns the greater (relative to the comparison proc) of a node children //or 0 if there's no child -/datum/heap/proc/GetGreaterChild(var/index) +/datum/heap/proc/GetGreaterChild(index) if(index * 2 > L.len) return 0 diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index caa8291b4bb..90873b6309a 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -289,7 +289,7 @@ //Icon smoothing helpers -/proc/smooth_zlevel(var/zlevel, now = FALSE) +/proc/smooth_zlevel(zlevel, now = FALSE) var/list/away_turfs = block(locate(1, 1, zlevel), locate(world.maxx, world.maxy, zlevel)) for(var/V in away_turfs) var/turf/T = V diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index ef0f47b2f9c..78d9fb407bf 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -894,7 +894,7 @@ The _flatIcons list is a cache for generated icon files. composite.Blend(icon(I.icon, I.icon_state, I.dir, 1), ICON_OVERLAY) return composite -/proc/adjust_brightness(var/color, var/value) +/proc/adjust_brightness(color, value) if(!color) return "#FFFFFF" if(!value) return color @@ -904,7 +904,7 @@ The _flatIcons list is a cache for generated icon files. RGB[3] = clamp(RGB[3]+value,0,255) return rgb(RGB[1],RGB[2],RGB[3]) -/proc/sort_atoms_by_layer(var/list/atoms) +/proc/sort_atoms_by_layer(list/atoms) // Comb sort icons based on levels var/list/result = atoms.Copy() var/gap = result.len @@ -925,7 +925,7 @@ The _flatIcons list is a cache for generated icon files. //Interface for using DrawBox() to draw 1 pixel on a coordinate. //Returns the same icon specifed in the argument, but with the pixel drawn -/proc/DrawPixel(var/icon/I,var/colour,var/drawX,var/drawY) +/proc/DrawPixel(icon/I, colour, drawX, drawY) if(!I) return 0 var/Iwidth = I.Width() @@ -938,7 +938,7 @@ The _flatIcons list is a cache for generated icon files. return I //Interface for easy drawing of one pixel on an atom. -/atom/proc/DrawPixelOn(var/colour, var/drawX, var/drawY) +/atom/proc/DrawPixelOn(colour, drawX, drawY) var/icon/I = new(icon) var/icon/J = DrawPixel(I, colour, drawX, drawY) if(J) //Only set the icon if it succeeded, the icon without the pixel is 1000x better than a black square. @@ -961,7 +961,7 @@ The _flatIcons list is a cache for generated icon files. //Imagine removing pixels from the main icon that are covered by pixels from the mask icon. //Standard behaviour is to cut pixels from the main icon that are covered by pixels from the mask icon unless passed mask_ready, see below. -/proc/get_icon_difference(var/icon/main, var/icon/mask, var/mask_ready) +/proc/get_icon_difference(icon/main, icon/mask, mask_ready) /*You should skip prep if the mask is already sprited properly. This significantly improves performance by eliminating most of the realtime icon work. e.g. A 'ready' mask is a mask where the part you want cut out is missing (no pixels, 0 alpha) from the sprite, and everything else is solid white.*/ diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index aab920f55fd..bf0d7ab2b61 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -39,7 +39,7 @@ //Returns a list in plain english as a string -/proc/english_list(var/list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) +/proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) var/total = input.len if(!total) return "[nothing_text]" @@ -60,7 +60,7 @@ return "[output][and_text][input[index]]" //Returns list element or null. Should prevent "index out of bounds" error. -/proc/listgetindex(var/list/list,index) +/proc/listgetindex(list/list, index) if(istype(list) && list.len) if(isnum(index)) if(InRange(index,1,list.len)) @@ -158,7 +158,7 @@ * If skiprep = 1, repeated elements are treated as one. * If either of arguments is not a list, returns null */ -/proc/difflist(var/list/first, var/list/second, var/skiprep=0) +/proc/difflist(list/first, list/second, skiprep=0) if(!islist(first) || !islist(second)) return var/list/result = new @@ -176,7 +176,7 @@ * If skipref = 1, repeated elements are treated as one. * If either of arguments is not a list, returns null */ -/proc/uniquemergelist(var/list/first, var/list/second, var/skiprep=0) +/proc/uniquemergelist(list/first, list/second, skiprep=0) if(!islist(first) || !islist(second)) return var/list/result = new @@ -236,7 +236,7 @@ return output //Randomize: Return the list in a random order -/proc/shuffle(var/list/L) +/proc/shuffle(list/L) if(!L) return L = L.Copy() @@ -247,20 +247,20 @@ return L //Return a list with no duplicate entries -/proc/uniquelist(var/list/L) +/proc/uniquelist(list/L) . = list() for(var/i in L) . |= i //Mergesort: divides up the list into halves to begin the sort -/proc/sortKey(var/list/client/L, var/order = 1) +/proc/sortKey(list/client/L, order = 1) if(isnull(L) || L.len < 2) return L var/middle = L.len / 2 + 1 return mergeKey(sortKey(L.Copy(0,middle)), sortKey(L.Copy(middle)), order) //Mergsort: does the actual sorting and returns the results back to sortAtom -/proc/mergeKey(var/list/client/L, var/list/client/R, var/order = 1) +/proc/mergeKey(list/client/L, list/client/R, order = 1) var/Li=1 var/Ri=1 var/list/result = new() @@ -277,7 +277,7 @@ return (result + R.Copy(Ri, 0)) //Mergesort: divides up the list into halves to begin the sort -/proc/sortAtom(var/list/atom/L, var/order = 1) +/proc/sortAtom(list/atom/L, order = 1) listclearnulls(L) if(isnull(L) || L.len < 2) return L @@ -285,7 +285,7 @@ return mergeAtoms(sortAtom(L.Copy(0,middle)), sortAtom(L.Copy(middle)), order) //Mergsort: does the actual sorting and returns the results back to sortAtom -/proc/mergeAtoms(var/list/atom/L, var/list/atom/R, var/order = 1) +/proc/mergeAtoms(list/atom/L, list/atom/R, order = 1) if(!L || !R) return 0 var/Li=1 var/Ri=1 @@ -306,7 +306,7 @@ //Mergesort: Specifically for record datums in a list. -/proc/sortRecord(var/list/datum/data/record/L, var/field = "name", var/order = 1) +/proc/sortRecord(list/datum/data/record/L, field = "name", order = 1) if(isnull(L)) return list() if(L.len < 2) @@ -315,7 +315,7 @@ return mergeRecordLists(sortRecord(L.Copy(0, middle), field, order), sortRecord(L.Copy(middle), field, order), field, order) //Mergsort: does the actual sorting and returns the results back to sortRecord -/proc/mergeRecordLists(var/list/datum/data/record/L, var/list/datum/data/record/R, var/field = "name", var/order = 1) +/proc/mergeRecordLists(list/datum/data/record/L, list/datum/data/record/R, field = "name", order = 1) var/Li=1 var/Ri=1 var/list/result = new() @@ -342,20 +342,20 @@ //Mergesort: any value in a list -/proc/sortList(var/list/L) +/proc/sortList(list/L) if(L.len < 2) return L var/middle = L.len / 2 + 1 // Copy is first,second-1 return mergeLists(sortList(L.Copy(0,middle)), sortList(L.Copy(middle))) //second parameter null = to end of list //Mergsorge: uses sortAssoc() but uses the var's name specifically. This should probably be using mergeAtom() instead -/proc/sortNames(var/list/L) +/proc/sortNames(list/L) var/list/Q = new() for(var/atom/x in L) Q[x.name] = x return sortAssoc(Q) -/proc/mergeLists(var/list/L, var/list/R) +/proc/mergeLists(list/L, list/R) var/Li=1 var/Ri=1 var/list/result = new() @@ -371,13 +371,13 @@ // List of lists, sorts by element[key] - for things like crew monitoring computer sorting records by name. -/proc/sortByKey(var/list/L, var/key) +/proc/sortByKey(list/L, key) if(L.len < 2) return L var/middle = L.len / 2 + 1 return mergeKeyedLists(sortByKey(L.Copy(0, middle), key), sortByKey(L.Copy(middle), key), key) -/proc/mergeKeyedLists(var/list/L, var/list/R, var/key) +/proc/mergeKeyedLists(list/L, list/R, key) var/Li=1 var/Ri=1 var/list/result = new() @@ -396,13 +396,13 @@ //Mergesort: any value in a list, preserves key=value structure -/proc/sortAssoc(var/list/L) +/proc/sortAssoc(list/L) if(L.len < 2) return L var/middle = L.len / 2 + 1 // Copy is first,second-1 return mergeAssoc(sortAssoc(L.Copy(0,middle)), sortAssoc(L.Copy(middle))) //second parameter null = to end of list -/proc/mergeAssoc(var/list/L, var/list/R) +/proc/mergeAssoc(list/L, list/R) var/Li=1 var/Ri=1 var/list/result = new() @@ -434,7 +434,7 @@ return r // Returns the key based on the index -/proc/get_key_by_index(var/list/L, var/index) +/proc/get_key_by_index(list/L, index) var/i = 1 for(var/key in L) if(index == i) @@ -442,7 +442,7 @@ i++ return null -/proc/count_by_type(var/list/L, type) +/proc/count_by_type(list/L, type) var/i = 0 for(var/T in L) if(istype(T, type)) @@ -450,7 +450,7 @@ return i //Don't use this on lists larger than half a dozen or so -/proc/insertion_sort_numeric_list_ascending(var/list/L) +/proc/insertion_sort_numeric_list_ascending(list/L) //log_world("ascending len input: [L.len]") var/list/out = list(pop(L)) for(var/entry in L) @@ -467,7 +467,7 @@ //log_world(" output: [out.len]") return out -/proc/insertion_sort_numeric_list_descending(var/list/L) +/proc/insertion_sort_numeric_list_descending(list/L) //log_world("descending len input: [L.len]") var/list/out = insertion_sort_numeric_list_ascending(L) //log_world(" output: [out.len]") @@ -483,13 +483,13 @@ if(islist(.[i])) .[i] = .(.[i]) -/proc/dd_sortedObjectList(var/list/L, var/cache=list()) +/proc/dd_sortedObjectList(list/L, list/cache = list()) if(L.len < 2) return L var/middle = L.len / 2 + 1 // Copy is first,second-1 return dd_mergeObjectList(dd_sortedObjectList(L.Copy(0,middle), cache), dd_sortedObjectList(L.Copy(middle), cache), cache) //second parameter null = to end of list -/proc/dd_mergeObjectList(var/list/L, var/list/R, var/list/cache) +/proc/dd_mergeObjectList(list/L, list/R, list/cache) var/Li=1 var/Ri=1 var/list/result = new() @@ -514,7 +514,7 @@ return (result + R.Copy(Ri, 0)) // Insert an object into a sorted list, preserving sortedness -/proc/dd_insertObjectList(var/list/L, var/O) +/proc/dd_insertObjectList(list/L, O) var/min = 1 var/max = L.len var/Oval = O:dd_SortValue() @@ -658,7 +658,7 @@ proc/dd_sortedObjectList(list/incoming) var/case_sensitive = 1 return dd_sortedtextlist(incoming, case_sensitive) -/proc/subtypesof(var/path) //Returns a list containing all subtypes of the given path, but not the given path itself. +/proc/subtypesof(path) //Returns a list containing all subtypes of the given path, but not the given path itself. if(!path || !ispath(path)) CRASH("Invalid path, failed to fetch subtypes of \"[path]\".") return (typesof(path) - path) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 841d42bf3ff..e836824ad3a 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -1,4 +1,4 @@ -/proc/GetOppositeDir(var/dir) +/proc/GetOppositeDir(dir) switch(dir) if(NORTH) return SOUTH if(SOUTH) return NORTH @@ -46,7 +46,7 @@ return pick(valid_picks) -/proc/random_hair_style(var/gender, species = "Human", var/datum/robolimb/robohead) +/proc/random_hair_style(gender, species = "Human", datum/robolimb/robohead) var/h_style = "Bald" var/list/valid_hairstyles = list() for(var/hairstyle in GLOB.hair_styles_public_list) @@ -75,7 +75,7 @@ return h_style -/proc/random_facial_hair_style(var/gender, species = "Human", var/datum/robolimb/robohead) +/proc/random_facial_hair_style(gender, species = "Human", datum/robolimb/robohead) var/f_style = "Shaved" var/list/valid_facial_hairstyles = list() for(var/facialhairstyle in GLOB.facial_hair_styles_list) @@ -119,7 +119,7 @@ return ha_style -/proc/random_marking_style(var/location = "body", species = "Human", var/datum/robolimb/robohead, var/body_accessory, var/alt_head) +/proc/random_marking_style(location = "body", species = "Human", datum/robolimb/robohead, body_accessory, alt_head) var/m_style = "None" var/list/valid_markings = list() for(var/marking in GLOB.marking_styles_list) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index d6c95256585..68acde69228 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -22,7 +22,7 @@ return html_encode(txt) //Simply removes < and > and limits the length of the message -/proc/strip_html_simple(var/t,var/limit=MAX_MESSAGE_LEN) +/proc/strip_html_simple(t, limit=MAX_MESSAGE_LEN) var/list/strip_chars = list("<",">") t = copytext(t,1,limit) for(var/char in strip_chars) @@ -33,13 +33,13 @@ return t //Removes a few problematic characters -/proc/sanitize_simple(var/t,var/list/repl_chars = list("\n"="#","\t"="#")) +/proc/sanitize_simple(t, list/repl_chars = list("\n"="#","\t"="#")) for(var/char in repl_chars) t = replacetext(t, char, repl_chars[char]) return t //Runs byond's sanitization proc along-side sanitize_simple -/proc/sanitize(var/t,var/list/repl_chars = null) +/proc/sanitize(t, list/repl_chars = null) return html_encode(sanitize_simple(t,repl_chars)) // Gut ANYTHING that isnt alphanumeric, or brackets @@ -54,7 +54,7 @@ //Runs sanitize and strip_html_simple //I believe strip_html_simple() is required to run first to prevent '<' from displaying as '<' after sanitize() calls byond's html_encode() -/proc/strip_html(var/t,var/limit=MAX_MESSAGE_LEN) +/proc/strip_html(t, limit=MAX_MESSAGE_LEN) return copytext((sanitize(strip_html_simple(t))),1,limit) // Used to get a properly sanitized multiline input, of max_length @@ -67,12 +67,12 @@ //Runs byond's sanitization proc along-side strip_html_simple //I believe strip_html_simple() is required to run first to prevent '<' from displaying as '<' that html_encode() would cause -/proc/adminscrub(var/t,var/limit=MAX_MESSAGE_LEN) +/proc/adminscrub(t, limit=MAX_MESSAGE_LEN) return copytext((html_encode(strip_html_simple(t))),1,limit) //Returns null if there is any bad text in the string -/proc/reject_bad_text(var/text, var/max_length=512) +/proc/reject_bad_text(text, max_length=512) if(length(text) > max_length) return //message too long var/non_whitespace = 0 for(var/i=1, i<=length(text), i++) @@ -106,7 +106,7 @@ return msg //Filters out undesirable characters from names -/proc/reject_bad_name(var/t_in, var/allow_numbers=0, var/max_length=MAX_NAME_LEN) +/proc/reject_bad_name(t_in, allow_numbers=0, max_length=MAX_NAME_LEN) // Decode so that names with characters like < are still rejected t_in = html_decode(t_in) if(!t_in || length(t_in) > max_length) @@ -174,7 +174,7 @@ //checks text for html tags //if tag is not in whitelist (var/list/paper_tag_whitelist in global.dm) //relpaces < with < -/proc/checkhtml(var/t) +/proc/checkhtml(t) t = sanitize_simple(t, list("&#"=".")) var/p = findtext(t,"<",1) while(p) //going through all the tags @@ -226,7 +226,7 @@ * Text modification */ // See bygex.dm -/proc/replace_characters(var/t,var/list/repl_chars) +/proc/replace_characters(t, list/repl_chars) for(var/char in repl_chars) t = replacetext(t, char, repl_chars[char]) return t @@ -277,7 +277,7 @@ return trim_left(trim_right(text)) //Returns a string with the first element of the string capitalized. -/proc/capitalize(var/t as text) +/proc/capitalize(t as text) return uppertext(copytext(t, 1, 2)) + copytext(t, 2) //Centers text by adding spaces to either side of the string. @@ -305,7 +305,7 @@ return copytext(message, 1, length + 1) -/proc/stringmerge(var/text,var/compare,replace = "*") +/proc/stringmerge(text, compare,replace = "*") //This proc fills in all spaces with the "replace" var (* by default) with whatever //is in the other string at the same spot (assuming it is not a replace char). //This is used for fingerprints @@ -326,7 +326,7 @@ return 0 return newtext -/proc/stringpercent(var/text,character = "*") +/proc/stringpercent(text, character = "*") //This proc returns the number of chars of the string that is the character //This is used for detective work to determine fingerprint completion. if(!text || !character) @@ -338,7 +338,7 @@ count++ return count -/proc/reverse_text(var/text = "") +/proc/reverse_text(text = "") var/new_text = "" for(var/i = length(text); i > 0; i--) new_text += copytext(text, i, i+1) @@ -347,7 +347,7 @@ //This proc strips html properly, but it's not lazy like the other procs. //This means that it doesn't just remove < and > and call it a day. //Also limit the size of the input, if specified. -/proc/strip_html_properly(var/input, var/max_length = MAX_MESSAGE_LEN, allow_lines = 0) +/proc/strip_html_properly(input, max_length = MAX_MESSAGE_LEN, allow_lines = 0) if(!input) return var/opentag = 1 //These store the position of < and > respectively. @@ -371,12 +371,12 @@ input = copytext(input,1,max_length) return sanitize(input, allow_lines ? list("\t" = " ") : list("\n" = " ", "\t" = " ")) -/proc/trim_strip_html_properly(var/input, var/max_length = MAX_MESSAGE_LEN, allow_lines = 0) +/proc/trim_strip_html_properly(input, max_length = MAX_MESSAGE_LEN, allow_lines = 0) return trim(strip_html_properly(input, max_length, allow_lines)) //Used in preferences' SetFlavorText and human's set_flavor verb //Previews a string of len or less length -/proc/TextPreview(var/string,var/len=40) +/proc/TextPreview(string, len=40) if(length(string) <= len) if(!length(string)) return "\[...\]" @@ -386,14 +386,14 @@ return "[copytext_preserve_html(string, 1, 37)]..." //alternative copytext() for encoded text, doesn't break html entities (" and other) -/proc/copytext_preserve_html(var/text, var/first, var/last) +/proc/copytext_preserve_html(text, first, last) return html_encode(copytext(html_decode(text), first, last)) //Run sanitize(), but remove <, >, " first to prevent displaying them as > < &34; in some places, after html_encode(). //Best used for sanitize object names, window titles. //If you have a problem with sanitize() in chat, when quotes and >, < are displayed as html entites - //this is a problem of double-encode(when & becomes &), use sanitize() with encode=0, but not the sanitizeSafe()! -/proc/sanitizeSafe(var/input, var/max_length = MAX_MESSAGE_LEN, var/encode = 1, var/trim = 1, var/extra = 1) +/proc/sanitizeSafe(input, max_length = MAX_MESSAGE_LEN, encode = 1, trim = 1, extra = 1) return sanitize(replace_characters(input, list(">"=" ","<"=" ", "\""="'")), max_length, encode, trim, extra) @@ -513,6 +513,7 @@ text = replacetext(text, "\[cell\]", "") text = replacetext(text, "\[logo\]", "​") text = replacetext(text, "\[time\]", "[station_time_timestamp()]") // TO DO + text = replacetext(text, "\[date\]", "[GLOB.current_date_string]") if(!no_font) if(P) text = "[text]" @@ -651,3 +652,22 @@ // return the split html object to the caller return s + +/** + * Proc to generate a "rank colour" from a client + * + * This takes the client and looks at various factors in order, such as patreon status, staff rank, and more + * Arguments: + * * C - The client were looking up + */ +/proc/client2rankcolour(client/C) + // First check if end user is an admin + if(C.holder) + if(C.holder.rank in GLOB.rank_colour_map) + // Return their rank colour if they are in here + return GLOB.rank_colour_map[C.holder.rank] + + // If they arent an admin, see if they are a patreon. Just accept any level + if(C.donator_level) + return "#e67e22" // Patreon orange + return null diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index a5524d7c719..5f6e01e93ed 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -62,7 +62,7 @@ return time2text(station_time(time, TRUE), format) /* Returns 1 if it is the selected month and day */ -/proc/isDay(var/month, var/day) +/proc/isDay(month, day) if(isnum(month) && isnum(day)) var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day @@ -94,13 +94,13 @@ return GLOB.month_names.Find(number) //Take a value in seconds and returns a string of minutes and seconds in the format X minute(s) and X seconds. -/proc/seconds_to_time(var/seconds as num) +/proc/seconds_to_time(seconds as num) var/numSeconds = seconds % 60 var/numMinutes = (seconds - numSeconds) / 60 return "[numMinutes] [numMinutes > 1 ? "minutes" : "minute"] and [numSeconds] seconds" //Take a value in seconds and makes it display like a clock -/proc/seconds_to_clock(var/seconds as num) +/proc/seconds_to_clock(seconds as num) return "[add_zero(num2text((seconds / 60) % 60), 2)]:[add_zero(num2text(seconds % 60), 2)]" //Takes a value of time in deciseconds. diff --git a/code/__HELPERS/traits.dm b/code/__HELPERS/traits.dm index 6faff552ff5..74760fd22b4 100644 --- a/code/__HELPERS/traits.dm +++ b/code/__HELPERS/traits.dm @@ -152,6 +152,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NOEXAMINE "no_examine" #define TRAIT_NOPAIN "no_pain" +/// Blowing kisses actually does damage to the victim +#define TRAIT_KISS_OF_DEATH "kiss_of_death" + // // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index bf44f6a4bc9..b962907d043 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -146,7 +146,7 @@ return //Converts an angle (degrees) into an ss13 direction -/proc/angle2dir(var/degree) +/proc/angle2dir(degree) degree = ((degree+22.5)%365) if(degree < 45) return NORTH if(degree < 90) return NORTHEAST @@ -170,7 +170,7 @@ //returns the north-zero clockwise angle in degrees, given a direction -/proc/dir2angle(var/D) +/proc/dir2angle(D) switch(D) if(NORTH) return 0 if(SOUTH) return 180 @@ -183,7 +183,7 @@ else return null //Returns the angle in english -/proc/angle2text(var/degree) +/proc/angle2text(degree) return dir2text(angle2dir(degree)) //Converts a blend_mode constant to one acceptable to icon.Blend() @@ -281,7 +281,7 @@ if(3*hue < 2) return (a+(b-a)*((2/3)-hue)*6) return a -/proc/num2septext(var/theNum, var/sigFig = 7,var/sep=",") // default sigFig (1,000,000) +/proc/num2septext(theNum, sigFig = 7, sep=",") // default sigFig (1,000,000) var/finalNum = num2text(theNum, sigFig) // Start from the end, or from the decimal point @@ -323,7 +323,7 @@ . = max(0, min(255, 138.5177312231 * log(temp - 10) - 305.0447927307)) //Argument: Give this a space-separated string consisting of 6 numbers. Returns null if you don't -/proc/text2matrix(var/matrixtext) +/proc/text2matrix(matrixtext) var/list/matrixtext_list = splittext(matrixtext, " ") var/list/matrix_list = list() for(var/item in matrixtext_list) @@ -351,7 +351,7 @@ //The string is well, obviously the string being checked //The datum is used as a source for var names, to check validity //Otherwise every single word could technically be a variable! -/proc/string2listofvars(var/t_string, var/datum/var_source) +/proc/string2listofvars(t_string, datum/var_source) if(!t_string || !var_source) return list() diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index dcf08d93b5c..3056485d755 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -5,7 +5,7 @@ /* Get the direction of startObj relative to endObj. * Return values: To the right, 1. Below, 2. To the left, 3. Above, 4. Not found adjacent in cardinal directions, 0. */ -/proc/getRelativeDirection(var/atom/movable/startObj, var/atom/movable/endObj) +/proc/getRelativeDirection(atom/movable/startObj, atom/movable/endObj) if(endObj.x == startObj.x + 1 && endObj.y == startObj.y) return EAST @@ -21,11 +21,11 @@ return 0 //Returns the middle-most value -/proc/dd_range(var/low, var/high, var/num) +/proc/dd_range(low, high, num) return max(low,min(high,num)) //Returns whether or not A is the middle most value -/proc/InRange(var/A, var/lower, var/upper) +/proc/InRange(A, lower, upper) if(A < lower) return 0 if(A > upper) return 0 return 1 @@ -152,7 +152,7 @@ Turf and target are seperate in case you want to teleport some distance from a t // Returns true if direction is blocked from loc // Checks if doors are open -/proc/DirBlocked(turf/loc,var/dir) +/proc/DirBlocked(turf/loc, dir) for(var/obj/structure/window/D in loc) if(!D.density) continue @@ -240,7 +240,7 @@ Turf and target are seperate in case you want to teleport some distance from a t return 1 //Ensure the frequency is within bounds of what it should be sending/recieving at -/proc/sanitize_frequency(var/f, var/low = PUBLIC_LOW_FREQ, var/high = PUBLIC_HIGH_FREQ) +/proc/sanitize_frequency(f, low = PUBLIC_LOW_FREQ, high = PUBLIC_HIGH_FREQ) f = round(f) f = max(low, f) f = min(high, f) @@ -249,10 +249,10 @@ Turf and target are seperate in case you want to teleport some distance from a t return f //Turns 1479 into 147.9 -/proc/format_frequency(var/f) +/proc/format_frequency(f) return "[round(f / 10)].[f % 10]" -/obj/proc/atmosanalyzer_scan(var/datum/gas_mixture/air_contents, mob/user, var/obj/target = src) +/obj/proc/atmosanalyzer_scan(datum/gas_mixture/air_contents, mob/user, obj/target = src) var/obj/icon = target user.visible_message("[user] has used the analyzer on [target].", "You use the analyzer on [target].") var/pressure = air_contents.return_pressure() @@ -320,7 +320,7 @@ Turf and target are seperate in case you want to teleport some distance from a t return selected -/proc/select_active_ai(var/mob/user) +/proc/select_active_ai(mob/user) var/list/ais = active_ais() if(ais.len) if(user) . = input(usr,"AI signals detected:", "AI selection") in ais @@ -438,7 +438,7 @@ Turf and target are seperate in case you want to teleport some distance from a t return DisplayJoules(units * SSmachines.wait * 0.1 / GLOB.CELLRATE) //Forces a variable to be posative -/proc/modulus(var/M) +/proc/modulus(M) if(M >= 0) return M if(M < 0) @@ -465,7 +465,7 @@ Turf and target are seperate in case you want to teleport some distance from a t // 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(var/atom/movable/M) +/proc/get_atom_on_turf(atom/movable/M) var/atom/loc = M while(loc && loc.loc && !istype(loc.loc, /turf/)) loc = loc.loc @@ -475,7 +475,7 @@ Turf and target are seperate in case you want to teleport some distance from a t Returns 1 if the chain up to the area contains the given typepath 0 otherwise */ -/atom/proc/is_found_within(var/typepath) +/atom/proc/is_found_within(typepath) var/atom/A = src while(A.loc) if(istype(A.loc, typepath)) @@ -491,7 +491,7 @@ Returns 1 if the chain up to the area contains the given typepath // returns the turf located at the map edge in the specified direction relative to A // used for mass driver -/proc/get_edge_target_turf(var/atom/A, var/direction) +/proc/get_edge_target_turf(atom/A, direction) var/turf/target = locate(A.x, A.y, A.z) if(!A || !target) @@ -515,7 +515,7 @@ Returns 1 if the chain up to the area contains the given typepath // result is bounded to map size // note range is non-pythagorean // used for disposal system -/proc/get_ranged_target_turf(var/atom/A, var/direction, var/range) +/proc/get_ranged_target_turf(atom/A, direction, range) var/x = A.x var/y = A.y @@ -533,17 +533,17 @@ Returns 1 if the chain up to the area contains the given typepath // returns turf relative to A offset in dx and dy tiles // bound to map limits -/proc/get_offset_target_turf(var/atom/A, var/dx, var/dy) +/proc/get_offset_target_turf(atom/A, dx, dy) var/x = min(world.maxx, max(1, A.x + dx)) var/y = min(world.maxy, max(1, A.y + dy)) return locate(x,y,A.z) //Makes sure MIDDLE is between LOW and HIGH. If not, it adjusts it. Returns the adjusted value. -/proc/between(var/low, var/middle, var/high) +/proc/between(low, middle, high) return max(min(middle, high), low) //returns random gauss number -/proc/GaussRand(var/sigma) +/proc/GaussRand(sigma) var/x,y,rsq do x=2*rand()-1 @@ -553,7 +553,7 @@ Returns 1 if the chain up to the area contains the given typepath return sigma*y*sqrt(-2*log(rsq)/rsq) //returns random gauss number, rounded to 'roundto' -/proc/GaussRandRound(var/sigma,var/roundto) +/proc/GaussRandRound(sigma, roundto) return round(GaussRand(sigma),roundto) //Will return the contents of an atom recursivly to a depth of 'searchDepth' @@ -576,7 +576,7 @@ Returns 1 if the chain up to the area contains the given typepath return weight //Step-towards method of determining whether one atom can see another. Similar to viewers() -/proc/can_see(var/atom/source, var/atom/target, var/length=5) // I couldnt be arsed to do actual raycasting :I This is horribly inaccurate. +/proc/can_see(atom/source, atom/target, length=5) // I couldnt be arsed to do actual raycasting :I This is horribly inaccurate. var/turf/current = get_turf(source) var/turf/target_turf = get_turf(target) var/steps = 1 @@ -606,7 +606,7 @@ Returns 1 if the chain up to the area contains the given typepath return 1 return 0 -/proc/get_step_towards2(var/atom/ref , var/atom/trg) +/proc/get_step_towards2(atom/ref , atom/trg) var/base_dir = get_dir(ref, get_step_towards(ref,trg)) var/turf/temp = get_step_towards(ref,trg) @@ -636,7 +636,7 @@ Returns 1 if the chain up to the area contains the given typepath //Takes: Anything that could possibly have variables and a varname to check. //Returns: 1 if found, 0 if not. -/proc/hasvar(var/datum/A, var/varname) +/proc/hasvar(datum/A, varname) if(A.vars.Find(lowertext(varname))) return 1 else return 0 @@ -653,7 +653,7 @@ Returns 1 if the chain up to the area contains the given typepath //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(var/areatype) +/proc/get_areas(areatype) if(!areatype) return null if(istext(areatype)) areatype = text2path(areatype) if(isarea(areatype)) @@ -667,7 +667,7 @@ Returns 1 if the chain up to the area contains the given typepath //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(var/areatype) +/proc/get_area_turfs(areatype) if(!areatype) return null if(istext(areatype)) areatype = text2path(areatype) if(isarea(areatype)) @@ -682,7 +682,7 @@ Returns 1 if the chain up to the area contains the given typepath //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(var/areatype) +/proc/get_area_all_atoms(areatype) if(!areatype) return null if(istext(areatype)) areatype = text2path(areatype) if(isarea(areatype)) @@ -701,7 +701,7 @@ Returns 1 if the chain up to the area contains the given typepath var/y_pos = null var/z_pos = null -/area/proc/move_contents_to(var/area/A, var/turftoleave=null, var/direction = null) +/area/proc/move_contents_to(area/A, turftoleave=null, direction = null) //Takes: Area. Optional: turf type to leave behind. //Returns: Nothing. //Notes: Attempts to move the contents of one area to another area. @@ -840,7 +840,7 @@ Returns 1 if the chain up to the area contains the given typepath -/proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0, var/atom/newloc = null) +/proc/DuplicateObject(obj/original, perfectcopy = 0 , sameloc = 0, atom/newloc = null) if(!original) return null @@ -867,7 +867,7 @@ Returns 1 if the chain up to the area contains the given typepath O.update_icon() return O -/area/proc/copy_contents_to(var/area/A , var/platingRequired = 0 ) +/area/proc/copy_contents_to(area/A , platingRequired = 0 ) //Takes: Area. Optional: If it should copy to areas that don't have plating //Returns: Nothing. //Notes: Attempts to move the contents of one area to another area. @@ -1096,7 +1096,7 @@ Returns 1 if the chain up to the area contains the given typepath //centered = 0 counts from turf edge to edge //centered = 1 counts from turf center to turf center //of course mathematically this is just adding world.icon_size on again -/proc/getPixelDistance(var/atom/A, var/atom/B, var/centered = 1) +/proc/getPixelDistance(atom/A, atom/B, centered = 1) if(!istype(A)||!istype(B)) return 0 . = bounds_dist(A, B) + sqrt((((A.pixel_x+B.pixel_x)**2) + ((A.pixel_y+B.pixel_y)**2))) @@ -1186,7 +1186,7 @@ GLOBAL_LIST_INIT(can_embed_types, typecacheof(list( return 1 return 0 -/proc/reverse_direction(var/dir) +/proc/reverse_direction(dir) switch(dir) if(NORTH) return SOUTH @@ -1261,7 +1261,7 @@ GLOBAL_LIST_INIT(wall_items, typecacheof(list(/obj/machinery/power/apc, /obj/mac Standard way to write links -Sayu */ -/proc/topic_link(var/datum/D, var/arglist, var/content) +/proc/topic_link(datum/D, arglist, content) if(istype(arglist,/list)) arglist = list2params(arglist) return "[content]" @@ -1372,7 +1372,7 @@ Standard way to write links -Sayu chance = max(chance - (initial_chance / steps), 0) steps-- -/proc/get_random_colour(var/simple, var/lower, var/upper) +/proc/get_random_colour(simple, lower, upper) var/colour if(simple) colour = pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF")) @@ -1384,7 +1384,7 @@ Standard way to write links -Sayu colour += temp_col return colour -/proc/get_distant_turf(var/turf/T,var/direction,var/distance) +/proc/get_distant_turf(turf/T, direction, distance) if(!T || !direction || !distance) return var/dest_x = T.x @@ -1405,7 +1405,7 @@ Standard way to write links -Sayu GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) //Version of view() which ignores darkness, because BYOND doesn't have it. -/proc/dview(var/range = world.view, var/center, var/invis_flags = 0) +/proc/dview(range = world.view, center, invis_flags = 0) if(!center) return @@ -1574,7 +1574,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) //The y dimension of the icon file used in the image // eg: center_image(I, 32,32) // eg2: center_image(I, 96,96) -/proc/center_image(var/image/I, x_dimension = 0, y_dimension = 0) +/proc/center_image(image/I, x_dimension = 0, y_dimension = 0) if(!I) return @@ -1729,7 +1729,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) chosen = matches[chosen] return chosen -/proc/make_types_fancy(var/list/types) +/proc/make_types_fancy(list/types) if(ispath(types)) types = list(types) . = list() @@ -1962,7 +1962,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) result += (1 << num) return result -/proc/pixel_shift_dir(var/dir, var/amount_x = 32, var/amount_y = 32) //Returns a list with pixel_shift values that will shift an object's icon one tile in the direction passed. +/proc/pixel_shift_dir(dir, amount_x = 32, amount_y = 32) //Returns a list with pixel_shift values that will shift an object's icon one tile in the direction passed. amount_x = min(max(0, amount_x), 32) //No less than 0, no greater than 32. amount_y = min(max(0, amount_x), 32) var/list/shift = list("x" = 0, "y" = 0) @@ -2116,7 +2116,9 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) return "White Noise" if(CHANNEL_AMBIENCE) return "Ambience" - + if(CHANNEL_ENGINE) + return "Engine Ambience" + /proc/slot_bitfield_to_slot(input_slot_flags) // Kill off this garbage ASAP; slot flags and clothing flags should be IDENTICAL. GOSH DARN IT. Doesn't work with ears or pockets, either. switch(input_slot_flags) if(SLOT_OCLOTHING) diff --git a/code/_globalvars/lists/devil.dm b/code/_globalvars/lists/devil.dm deleted file mode 100644 index 54528709573..00000000000 --- a/code/_globalvars/lists/devil.dm +++ /dev/null @@ -1,8 +0,0 @@ -//what could possibly go wrong -GLOBAL_LIST_INIT(devil_machines, typecacheof(/obj/item/circuitboard, TRUE) - list( - /obj/item/circuitboard/shuttle, - /obj/item/circuitboard/swfdoor, - /obj/item/circuitboard/olddoor, - /obj/item/circuitboard/computer, - /obj/item/circuitboard/machine -)) diff --git a/code/_globalvars/lists/misc.dm b/code/_globalvars/lists/misc.dm index ebdf2017900..b5fd84ef6d6 100644 --- a/code/_globalvars/lists/misc.dm +++ b/code/_globalvars/lists/misc.dm @@ -54,4 +54,7 @@ GLOBAL_LIST_INIT(cooking_recipes, list(RECIPE_MICROWAVE = list(), RECIPE_OVEN = GLOBAL_LIST_INIT(cooking_ingredients, list(RECIPE_MICROWAVE = list(), RECIPE_OVEN = list(), RECIPE_GRILL = list(), RECIPE_CANDY = list())) GLOBAL_LIST_INIT(cooking_reagents, list(RECIPE_MICROWAVE = list(), RECIPE_OVEN = list(), RECIPE_GRILL = list(), RECIPE_CANDY = list())) +/// Associative list of admin rank to colour. Set in config/rank_colours.txt +GLOBAL_LIST_EMPTY(rank_colour_map) + #define EGG_LAYING_MESSAGES list("lays an egg.", "squats down and croons.", "begins making a huge racket.", "begins clucking raucously.") diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index cb8920f30ed..6d28489127a 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -92,7 +92,6 @@ GLOBAL_VAR(map_name) // Self explanatory GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) // Station datacore, manifest, etc GLOBAL_VAR_INIT(panic_bunker_enabled, FALSE) // Is the panic bunker enabled -GLOBAL_VAR_INIT(pending_server_update, FALSE) GLOBAL_LIST_EMPTY(ability_verbs) // Create-level abilities GLOBAL_LIST_INIT(pipe_colors, list("grey" = PIPE_COLOR_GREY, "red" = PIPE_COLOR_RED, "blue" = PIPE_COLOR_BLUE, "cyan" = PIPE_COLOR_CYAN, "green" = PIPE_COLOR_GREEN, "yellow" = PIPE_COLOR_YELLOW, "purple" = PIPE_COLOR_PURPLE)) diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 906b4b608c1..382303c1212 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -45,6 +45,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_DWARF" = TRAIT_DWARF, "TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS, "TRAIT_ALCOHOL_TOLERANCE" = TRAIT_ALCOHOL_TOLERANCE, + "TRAIT_KISS_OF_DEATH" = TRAIT_KISS_OF_DEATH, "TRAIT_COMIC_SANS" = TRAIT_COMIC_SANS, "TRAIT_NOFINGERPRINTS" = TRAIT_NOFINGERPRINTS, diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm index 58cfdf477f2..f9096ad6492 100644 --- a/code/_onclick/adjacent.dm +++ b/code/_onclick/adjacent.dm @@ -10,11 +10,11 @@ Note that in all cases the neighbor is handled simply; this is usually the user's mob, in which case it is up to you to check that the mob is not inside of something */ -/atom/proc/Adjacent(var/atom/neighbor) // basic inheritance, unused +/atom/proc/Adjacent(atom/neighbor) // basic inheritance, unused return 0 // Not a sane use of the function and (for now) indicative of an error elsewhere -/area/Adjacent(var/atom/neighbor) +/area/Adjacent(atom/neighbor) CRASH("Call to /area/Adjacent(), unimplemented proc") @@ -25,7 +25,7 @@ * If you are diagonally adjacent, ensure you can pass through at least one of the mutually adjacent square. * Passing through in this case ignores anything with the LETPASSTHROW flag, such as tables, racks, and morgue trays. */ -/turf/Adjacent(var/atom/neighbor, var/atom/target = null) +/turf/Adjacent(atom/neighbor, atom/target = null) var/turf/T0 = get_turf(neighbor) if(T0 == src) return 1 @@ -63,7 +63,7 @@ Note: Multiple-tile objects are created when the bound_width and bound_height are creater than the tile size. This is not used in stock /tg/station currently. */ -/atom/movable/Adjacent(var/atom/neighbor) +/atom/movable/Adjacent(atom/neighbor) if(neighbor == loc) return 1 if(!isturf(loc)) return 0 for(var/turf/T in locs) @@ -72,7 +72,7 @@ return 0 // This is necessary for storage items not on your person. -/obj/item/Adjacent(var/atom/neighbor, var/recurse = 1) +/obj/item/Adjacent(atom/neighbor, recurse = 1) if(neighbor == loc) return 1 if(istype(loc,/obj/item)) if(recurse > 0) @@ -85,7 +85,7 @@ This is defined as any dense ON_BORDER object, or any dense object without LETPASSTHROW. The border_only flag allows you to not objects (for source and destination squares) */ -/turf/proc/ClickCross(var/target_dir, var/border_only, var/target_atom = null) +/turf/proc/ClickCross(target_dir, border_only, target_atom = null) for(var/obj/O in src) if( !O.density || O == target_atom || (O.pass_flags & LETPASSTHROW)) continue // LETPASSTHROW is used for anything you can click through diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 8467c6dcb75..77a4ae192f1 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -196,7 +196,7 @@ return FALSE // Default behavior: ignore double clicks, consider them normal clicks instead -/mob/proc/DblClickOn(var/atom/A, var/params) +/mob/proc/DblClickOn(atom/A, params) return /* @@ -209,7 +209,7 @@ proximity_flag is not currently passed to attack_hand, and is instead used in human click code to allow glove touches only at melee range. */ -/mob/proc/UnarmedAttack(var/atom/A, var/proximity_flag) +/mob/proc/UnarmedAttack(atom/A, proximity_flag) if(ismob(A)) changeNext_move(CLICK_CD_MELEE) return @@ -230,14 +230,14 @@ Used when you are handcuffed and click things. Not currently used by anything but could easily be. */ -/mob/proc/RestrainedClickOn(var/atom/A) +/mob/proc/RestrainedClickOn(atom/A) return /* Middle click Only used for swapping hands */ -/mob/proc/MiddleClickOn(var/atom/A) +/mob/proc/MiddleClickOn(atom/A) pointed(A) return @@ -285,7 +285,7 @@ // In case of use break glass /* -/atom/proc/MiddleClick(var/mob/M as mob) +/atom/proc/MiddleClick(mob/M as mob) return */ @@ -294,10 +294,10 @@ For most mobs, examine. This is overridden in ai.dm */ -/mob/proc/ShiftClickOn(var/atom/A) +/mob/proc/ShiftClickOn(atom/A) A.ShiftClick(src) return -/atom/proc/ShiftClick(var/mob/user) +/atom/proc/ShiftClick(mob/user) if(user.client && get_turf(user.client.eye) == get_turf(user)) user.examinate(src) return @@ -306,7 +306,7 @@ Ctrl click For most objects, pull */ -/mob/proc/CtrlClickOn(var/atom/A) +/mob/proc/CtrlClickOn(atom/A) A.CtrlClick(src) return @@ -320,7 +320,7 @@ Alt click Unused except for AI */ -/mob/proc/AltClickOn(var/atom/A) +/mob/proc/AltClickOn(atom/A) A.AltClick(src) return @@ -331,36 +331,39 @@ else ..() -/atom/proc/AltClick(var/mob/user) +/atom/proc/AltClick(mob/user) + SEND_SIGNAL(src, COMSIG_CLICK_ALT, user) var/turf/T = get_turf(src) - if(T) - if(user.TurfAdjacent(T)) - user.listed_turf = T - user.client.statpanel = T.name - // If we had a method to force a `Stat` update, it would go here - else - user.listed_turf = null - return + if(T && (isturf(loc) || isturf(src)) && user.TurfAdjacent(T)) + user.listed_turf = T + user.client.statpanel = T.name -/mob/proc/TurfAdjacent(var/turf/T) +/// Use this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction +/atom/proc/AltClickNoInteract(mob/user, atom/A) + var/turf/T = get_turf(A) + if(T && user.TurfAdjacent(T)) + user.listed_turf = T + user.client.statpanel = T.name + +/mob/proc/TurfAdjacent(turf/T) return T.Adjacent(src) /* Control+Shift/Alt+Shift click Unused except for AI */ -/mob/proc/CtrlShiftClickOn(var/atom/A) +/mob/proc/CtrlShiftClickOn(atom/A) A.CtrlShiftClick(src) return -/atom/proc/CtrlShiftClick(var/mob/user) +/atom/proc/CtrlShiftClick(mob/user) return -/mob/proc/AltShiftClickOn(var/atom/A) +/mob/proc/AltShiftClickOn(atom/A) A.AltShiftClick(src) return -/atom/proc/AltShiftClick(var/mob/user) +/atom/proc/AltShiftClick(mob/user) return @@ -392,7 +395,7 @@ LE.fire() // Simple helper to face what you clicked on, in case it should be needed in more than one place -/mob/proc/face_atom(var/atom/A) +/mob/proc/face_atom(atom/A) if( stat || buckled || !A || !x || !y || !A.x || !A.y ) return var/dx = A.x - x var/dy = A.y - y diff --git a/code/_onclick/click_override.dm b/code/_onclick/click_override.dm index 1136af3eae4..0336c809511 100644 --- a/code/_onclick/click_override.dm +++ b/code/_onclick/click_override.dm @@ -12,7 +12,7 @@ /datum/middleClickOverride/ -/datum/middleClickOverride/proc/onClick(var/atom/A, var/mob/living/user) +/datum/middleClickOverride/proc/onClick(atom/A, mob/living/user) user.middleClickOverride = null return 1 /* Note, when making a new click override it is ABSOLUTELY VITAL that you set the source's clickOverride to null at some point if you don't want them to be stuck with it forever. @@ -35,7 +35,7 @@ /datum/middleClickOverride/badminClicker var/summon_path = /obj/item/reagent_containers/food/snacks/cookie -/datum/middleClickOverride/badminClicker/onClick(var/atom/A, var/mob/living/user) +/datum/middleClickOverride/badminClicker/onClick(atom/A, mob/living/user) var/atom/movable/newObject = new summon_path newObject.loc = get_turf(A) to_chat(user, "You release the power you had stored up, summoning \a [newObject.name]! ") diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index 58fd73656cb..91fe0c99bf7 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -22,7 +22,6 @@ //Middle left indicators #define ui_lingchemdisplay "WEST:6,CENTER-1:15" #define ui_lingstingdisplay "WEST:6,CENTER-3:11" -#define ui_devilsouldisplay "WEST:6,CENTER-1:15" //Lower center, persistant menu #define ui_sstore1 "CENTER-5:10,SOUTH:5" diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index 01940be1d8b..c408c1cd7b6 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -132,6 +132,8 @@ if(isovermind(usr)) var/mob/camera/blob/B = usr B.split_consciousness() + if(B.split_used) // Destroys split proc if the split is succesfully used + qdel(src) /datum/hud/blob_overmind/New(mob/user) ..() @@ -194,6 +196,8 @@ using.screen_loc = ui_storage2 static_inventory += using - using = new /obj/screen/blob/Split() - using.screen_loc = ui_acti - static_inventory += using + var/mob/camera/blob/B = user + if(!B.is_offspring) // Checks if the blob is an offspring, to not create split button if it is + using = new /obj/screen/blob/Split() + using.screen_loc = ui_acti + static_inventory += using diff --git a/code/_onclick/hud/devil.dm b/code/_onclick/hud/devil.dm deleted file mode 100644 index 53f7265c6a4..00000000000 --- a/code/_onclick/hud/devil.dm +++ /dev/null @@ -1,87 +0,0 @@ - -//Soul counter is stored with the humans, it does weird when you place it here apparently... - - -/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 - using.screen_loc = ui_drop_throw - static_inventory += using - - mymob.pullin = new /obj/screen/pull() - mymob.pullin.icon = ui_style - mymob.pullin.update_icon(mymob) - mymob.pullin.screen_loc = ui_pull_resist - static_inventory += mymob.pullin - - 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 - - using = new /obj/screen/swap_hand() - using.name = "hand" - using.icon = ui_style - using.icon_state = "swap_1" - using.screen_loc = ui_swaphand1 - static_inventory += using - - using = new /obj/screen/swap_hand() - using.name = "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) - - lingchemdisplay = new /obj/screen/ling/chems() - devilsouldisplay = new /obj/screen/devil/soul_counter - infodisplay += devilsouldisplay - - for(var/obj/screen/inventory/inv in static_inventory) - if(inv.slot_id) - inv.hud = src - inv_slots[inv.slot_id] = inv - inv.update_icon() - - -/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 - else - if(D.r_hand) - D.r_hand.screen_loc = null - if(D.l_hand) - D.l_hand.screen_loc = null - -/mob/living/carbon/true_devil/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/devil(src, ui_style2icon(client.prefs.UI_style)) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index c8d8a7d2290..0cfb6985b8e 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -27,8 +27,6 @@ var/obj/screen/move_intent var/obj/screen/module_store_icon - var/obj/screen/devil/soul_counter/devilsouldisplay - 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/hotkeybuttons = list() //the buttons that can be used via hotkeys @@ -89,7 +87,6 @@ alien_plasma_display = null vampire_blood_display = null nightvisionicon = null - devilsouldisplay = null QDEL_LIST_ASSOC_VAL(plane_masters) diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 5b4ce4c99e9..8f125079d6b 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -36,35 +36,6 @@ var/mob/living/carbon/U = usr U.unset_sting() -/obj/screen/devil - invisibility = INVISIBILITY_ABSTRACT - -/obj/screen/devil/soul_counter - icon = 'icons/mob/screen_gen.dmi' - name = "souls owned" - icon_state = "Devil-6" - screen_loc = ui_devilsouldisplay - -/obj/screen/devil/soul_counter/proc/update_counter(souls = 0) - invisibility = 0 - maptext = "
[souls]
" - switch(souls) - if(0,null) - icon_state = "Devil-1" - if(1,2) - icon_state = "Devil-2" - if(3 to 5) - icon_state = "Devil-3" - if(6 to 8) - icon_state = "Devil-4" - if(9 to INFINITY) - icon_state = "Devil-5" - else - icon_state = "Devil-6" - -/obj/screen/devil/soul_counter/proc/clear() - invisibility = INVISIBILITY_ABSTRACT - /obj/screen/ling/chems name = "chemical storage" icon_state = "power_display" @@ -85,7 +56,7 @@ /datum/hud/human var/hud_alpha = 255 -/datum/hud/human/New(mob/living/carbon/human/owner, var/ui_style = 'icons/mob/screen_white.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255) +/datum/hud/human/New(mob/living/carbon/human/owner, ui_style = 'icons/mob/screen_white.dmi', ui_color = "#ffffff", ui_alpha = 255) ..() owner.overlay_fullscreen("see_through_darkness", /obj/screen/fullscreen/see_through_darkness) @@ -372,9 +343,6 @@ lingstingdisplay = new /obj/screen/ling/sting() infodisplay += lingstingdisplay - devilsouldisplay = new /obj/screen/devil/soul_counter - infodisplay += devilsouldisplay - zone_select = new /obj/screen/zone_sel() zone_select.color = ui_color zone_select.icon = ui_style diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index d5fb5cad4fa..e9b95cdd4fc 100644 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -8,7 +8,7 @@ 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_layers_max = 4 var/parallax_animate_timer /datum/hud/proc/create_parallax() @@ -21,6 +21,8 @@ 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) C.parallax_layers_cached += new /obj/screen/parallax_layer/planet(null, C.view) + if(SSparallax.random_layer) + C.parallax_layers_cached += new SSparallax.random_layer C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_3(null, C.view) C.parallax_layers = C.parallax_layers_cached.Copy() @@ -44,12 +46,12 @@ switch(C.prefs.parallax) if (PARALLAX_INSANE) C.parallax_throttle = FALSE - C.parallax_layers_max = 4 + C.parallax_layers_max = 5 return TRUE if (PARALLAX_MED) C.parallax_throttle = PARALLAX_DELAY_MED - C.parallax_layers_max = 2 + C.parallax_layers_max = 3 return TRUE if (PARALLAX_LOW) @@ -60,8 +62,9 @@ if (PARALLAX_DISABLE) return FALSE + //This is high parallax. C.parallax_throttle = PARALLAX_DELAY_DEFAULT - C.parallax_layers_max = 3 + C.parallax_layers_max = 4 return TRUE /datum/hud/proc/update_parallax_pref() @@ -276,6 +279,21 @@ speed = 1.4 layer = 3 +/obj/screen/parallax_layer/random + blend_mode = BLEND_OVERLAY + speed = 3 + layer = 3 + +/obj/screen/parallax_layer/random/space_gas + icon_state = "space_gas" + +/obj/screen/parallax_layer/random/space_gas/New(view) + ..() + add_atom_colour(SSparallax.random_parallax_color, ADMIN_COLOUR_PRIORITY) + +/obj/screen/parallax_layer/random/asteroids + icon_state = "asteroids" + /obj/screen/parallax_layer/planet icon_state = "planet" blend_mode = BLEND_OVERLAY diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 456d30c0059..1fe1c68522b 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -31,7 +31,7 @@ return FALSE /obj/attackby(obj/item/I, mob/living/user, params) - return ..() || (can_be_hit && I.attack_obj(src, user)) + return ..() || (can_be_hit && I.attack_obj(src, user, params)) /mob/living/attackby(obj/item/I, mob/living/user, params) user.changeNext_move(CLICK_CD_MELEE) @@ -87,7 +87,7 @@ //the equivalent of the standard version of attack() but for object targets. -/obj/item/proc/attack_obj(obj/O, mob/living/user) +/obj/item/proc/attack_obj(obj/O, mob/living/user, params) if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_OBJ, O, user) & COMPONENT_NO_ATTACK_OBJ) return if(flags & (NOBLUDGEON)) diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index 073fab88b34..8a23d228afc 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -1,4 +1,4 @@ -/mob/dead/observer/DblClickOn(var/atom/A, var/params) +/mob/dead/observer/DblClickOn(atom/A, params) if(client.click_intercept) // Not doing a click intercept here, because otherwise we double-tap with the `ClickOn` proc. // But we return here since we don't want to do regular dblclick handling @@ -18,7 +18,7 @@ forceMove(get_turf(A)) update_parallax_contents() -/mob/dead/observer/ClickOn(var/atom/A, var/params) +/mob/dead/observer/ClickOn(atom/A, params) if(client.click_intercept) client.click_intercept.InterceptClickOn(src, params, A) return @@ -48,14 +48,14 @@ ShiftClickOn(A) return if(modifiers["alt"]) - AltClickOn(A) + AltClickNoInteract(src, A) return // You are responsible for checking config.ghost_interaction when you override this function // Not all of them require checking, see below A.attack_ghost(src) // We don't need a fucking toggle. -/mob/dead/observer/ShiftClickOn(var/atom/A) +/mob/dead/observer/ShiftClickOn(atom/A) examinate(A) /atom/proc/attack_ghost(mob/user) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 3720f9bdb2e..b2338937ebc 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -28,11 +28,11 @@ return /* -/mob/living/carbon/human/RestrainedClickOn(var/atom/A) -- Handled by carbons +/mob/living/carbon/human/RestrainedClickOn(atom/A) -- Handled by carbons return */ -/mob/living/carbon/RestrainedClickOn(var/atom/A) +/mob/living/carbon/RestrainedClickOn(atom/A) return 0 /mob/living/carbon/human/RangedAttack(atom/A, params) @@ -54,17 +54,17 @@ /* Animals & All Unspecified */ -/mob/living/UnarmedAttack(var/atom/A) +/mob/living/UnarmedAttack(atom/A) A.attack_animal(src) -/mob/living/simple_animal/hostile/UnarmedAttack(var/atom/A) +/mob/living/simple_animal/hostile/UnarmedAttack(atom/A) target = A AttackingTarget() /atom/proc/attack_animal(mob/user) return -/mob/living/RestrainedClickOn(var/atom/A) +/mob/living/RestrainedClickOn(atom/A) return /* @@ -109,5 +109,5 @@ return // pAIs are not intended to interact with anything in the world -/mob/living/silicon/pai/UnarmedAttack(var/atom/A) +/mob/living/silicon/pai/UnarmedAttack(atom/A) return diff --git a/code/_onclick/overmind.dm b/code/_onclick/overmind.dm index 419524c8711..40c60b99268 100644 --- a/code/_onclick/overmind.dm +++ b/code/_onclick/overmind.dm @@ -1,7 +1,7 @@ // Blob Overmind Controls -/mob/camera/blob/ClickOn(var/atom/A, var/params) //Expand blob +/mob/camera/blob/ClickOn(atom/A, params) //Expand blob var/list/modifiers = params2list(params) if(modifiers["middle"]) MiddleClickOn(A) diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index df9c8ea1fae..342af86c0b6 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -87,7 +87,7 @@ //stops TK grabs being equipped anywhere but into hands -/obj/item/tk_grab/equipped(mob/user, var/slot) +/obj/item/tk_grab/equipped(mob/user, slot) if( (slot == slot_l_hand) || (slot== slot_r_hand) ) return qdel(src) @@ -151,7 +151,7 @@ if(!.) return I == focus -/obj/item/tk_grab/proc/focus_object(var/obj/target, var/mob/user) +/obj/item/tk_grab/proc/focus_object(obj/target, mob/user) if(!istype(target,/obj)) return//Cant throw non objects atm might let it do mobs later if(target.anchored || !isturf(target.loc)) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index aa43133d111..3b39682efbf 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -925,3 +925,34 @@ runnable_modes[M] = probabilities[M.config_tag] // to_chat(world, "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]") return runnable_modes + +/datum/configuration/proc/load_rank_colour_map() + var/list/lines = file2list("config/rank_colours.txt") + + for(var/line in lines) + // Skip newlines + if(!length(line)) + continue + // Skip comments + if(line[1] == "#") + continue + + //Split the line at every " - " + var/list/split_holder = splittext(line, " - ") + if(!length(split_holder)) + continue + + // Rank is before the " - " + var/rank = split_holder[1] + if(!rank) + continue + + // Color is after the " - " + var/colour = "" + if(length(split_holder) >= 2) + colour = split_holder[2] + + if(rank && colour) + GLOB.rank_colour_map[rank] = colour + else + stack_trace("Invalid colour for rank '[rank]' in config/rank_colours.txt") diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 6b08efe7b38..324df11b8d1 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -283,7 +283,7 @@ SUBSYSTEM_DEF(air) for(var/turf/simulated/S in T.atmos_adjacent_turfs) add_to_active(S) -/datum/controller/subsystem/air/proc/setup_allturfs(var/list/turfs_to_init = block(locate(1, 1, 1), locate(world.maxx, world.maxy, world.maxz))) +/datum/controller/subsystem/air/proc/setup_allturfs(list/turfs_to_init = block(locate(1, 1, 1), locate(world.maxx, world.maxy, world.maxz))) var/list/active_turfs = src.active_turfs // Clear active turfs - faster than removing every single turf in the world @@ -321,7 +321,7 @@ SUBSYSTEM_DEF(air) ET.excited = 1 . += ET -/datum/controller/subsystem/air/proc/setup_atmos_machinery(var/list/machines_to_init) +/datum/controller/subsystem/air/proc/setup_atmos_machinery(list/machines_to_init) var/watch = start_watch() log_startup_progress("Initializing atmospherics machinery...") var/count = _setup_atmos_machinery(machines_to_init) @@ -329,7 +329,7 @@ SUBSYSTEM_DEF(air) // this underscored variant is so that we can have a means of late initing // atmos machinery without a loud announcement to the world -/datum/controller/subsystem/air/proc/_setup_atmos_machinery(var/list/machines_to_init) +/datum/controller/subsystem/air/proc/_setup_atmos_machinery(list/machines_to_init) var/count = 0 for(var/obj/machinery/atmospherics/A in machines_to_init) A.atmos_init() @@ -345,7 +345,7 @@ SUBSYSTEM_DEF(air) //this can't be done with setup_atmos_machinery() because // all atmos machinery has to initalize before the first // pipenet can be built. -/datum/controller/subsystem/air/proc/setup_pipenets(var/list/pipes) +/datum/controller/subsystem/air/proc/setup_pipenets(list/pipes) var/watch = start_watch() log_startup_progress("Initializing pipe networks...") var/count = _setup_pipenets(pipes) @@ -353,7 +353,7 @@ SUBSYSTEM_DEF(air) // An underscored wrapper that exists for the same reason // the machine init wrapper does -/datum/controller/subsystem/air/proc/_setup_pipenets(var/list/pipes) +/datum/controller/subsystem/air/proc/_setup_pipenets(list/pipes) var/count = 0 for(var/obj/machinery/atmospherics/machine in pipes) machine.build_network() diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index 1512d8e6e70..acfb7444323 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -65,7 +65,7 @@ SUBSYSTEM_DEF(blackbox) sqlversion = versions[FV.key] var/datum/db_query/query_feedback_save = SSdbcore.NewQuery({" - INSERT DELAYED IGNORE INTO [format_table_name("feedback")] (datetime, round_id, key_name, key_type, version, json) + INSERT IGNORE INTO [format_table_name("feedback")] (datetime, round_id, key_name, key_type, version, json) VALUES (NOW(), :rid, :keyname, :keytype, :version, :json)"}, list( "rid" = text2num(GLOB.round_id), "keyname" = FV.key, diff --git a/code/controllers/subsystem/jobs.dm b/code/controllers/subsystem/jobs.dm index 504f263247b..c7e18522392 100644 --- a/code/controllers/subsystem/jobs.dm +++ b/code/controllers/subsystem/jobs.dm @@ -29,7 +29,7 @@ SUBSYSTEM_DEF(jobs) return batch_update_player_exp(announce = FALSE) // Set this to true if you ever want to inform players about their EXP gains -/datum/controller/subsystem/jobs/proc/SetupOccupations(var/list/faction = list("Station")) +/datum/controller/subsystem/jobs/proc/SetupOccupations(list/faction = list("Station")) occupations = list() var/list/all_jobs = subtypesof(/datum/job) if(!all_jobs.len) @@ -47,7 +47,7 @@ SUBSYSTEM_DEF(jobs) return 1 -/datum/controller/subsystem/jobs/proc/Debug(var/text) +/datum/controller/subsystem/jobs/proc/Debug(text) if(!GLOB.debug2) return 0 job_debug.Add(text) @@ -67,7 +67,7 @@ SUBSYSTEM_DEF(jobs) /datum/controller/subsystem/jobs/proc/GetPlayerAltTitle(mob/new_player/player, rank) return player.client.prefs.GetPlayerAltTitle(GetJob(rank)) -/datum/controller/subsystem/jobs/proc/AssignRole(var/mob/new_player/player, var/rank, var/latejoin = 0) +/datum/controller/subsystem/jobs/proc/AssignRole(mob/new_player/player, rank, latejoin = 0) Debug("Running AR, Player: [player], Rank: [rank], LJ: [latejoin]") if(player && player.mind && rank) var/datum/job/job = GetJob(rank) @@ -110,7 +110,7 @@ SUBSYSTEM_DEF(jobs) Debug("AR has failed, Player: [player], Rank: [rank]") return 0 -/datum/controller/subsystem/jobs/proc/FreeRole(var/rank) //making additional slot on the fly +/datum/controller/subsystem/jobs/proc/FreeRole(rank) //making additional slot on the fly var/datum/job/job = GetJob(rank) if(job && job.current_positions >= job.total_positions && job.total_positions != -1) job.total_positions++ @@ -145,7 +145,7 @@ SUBSYSTEM_DEF(jobs) candidates += player return candidates -/datum/controller/subsystem/jobs/proc/GiveRandomJob(var/mob/new_player/player) +/datum/controller/subsystem/jobs/proc/GiveRandomJob(mob/new_player/player) Debug("GRJ Giving random job, Player: [player]") for(var/datum/job/job in shuffle(occupations)) if(!job) @@ -229,7 +229,7 @@ SUBSYSTEM_DEF(jobs) ///This proc is called at the start of the level loop of DivideOccupations() and will cause head jobs to be checked before any other jobs of the same level -/datum/controller/subsystem/jobs/proc/CheckHeadPositions(var/level) +/datum/controller/subsystem/jobs/proc/CheckHeadPositions(level) for(var/command_position in GLOB.command_positions) var/datum/job/job = GetJob(command_position) if(!job) @@ -409,7 +409,7 @@ SUBSYSTEM_DEF(jobs) log_debug("Dividing Occupations took [stop_watch(watch)]s") return 1 -/datum/controller/subsystem/jobs/proc/AssignRank(var/mob/living/carbon/human/H, var/rank, var/joined_late = 0) +/datum/controller/subsystem/jobs/proc/AssignRank(mob/living/carbon/human/H, rank, joined_late = 0) if(!H) return null var/datum/job/job = GetJob(rank) diff --git a/code/controllers/subsystem/parallax.dm b/code/controllers/subsystem/parallax.dm index 1e3c8aca0d9..d0cfadae95d 100644 --- a/code/controllers/subsystem/parallax.dm +++ b/code/controllers/subsystem/parallax.dm @@ -1,19 +1,27 @@ SUBSYSTEM_DEF(parallax) name = "Parallax" wait = 2 - flags = SS_POST_FIRE_TIMING | SS_BACKGROUND + flags = SS_POST_FIRE_TIMING | SS_BACKGROUND | SS_NO_INIT priority = FIRE_PRIORITY_PARALLAX runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT offline_implications = "Space parallax will no longer move around. No immediate action is needed." var/list/currentrun var/planet_x_offset = 128 var/planet_y_offset = 128 + var/random_layer + var/random_parallax_color -/datum/controller/subsystem/parallax/Initialize(timeofday) + +//These are cached per client so needs to be done asap so people joining at roundstart do not miss these. +/datum/controller/subsystem/parallax/PreInit() . = ..() + if(prob(70)) //70% chance to pick a special extra layer + random_layer = pick(/obj/screen/parallax_layer/random/space_gas, /obj/screen/parallax_layer/random/asteroids) + random_parallax_color = pick(COLOR_TEAL, COLOR_GREEN, COLOR_SILVER, COLOR_YELLOW, COLOR_CYAN, COLOR_ORANGE, COLOR_PURPLE) //Special color for random_layer1. Has to be done here so everyone sees the same color. planet_y_offset = rand(100, 160) planet_x_offset = rand(100, 160) + /datum/controller/subsystem/parallax/fire(resumed = 0) if(!resumed) src.currentrun = GLOB.clients.Copy() diff --git a/code/controllers/subsystem/radio.dm b/code/controllers/subsystem/radio.dm index 2cedc36c14e..533588173ba 100644 --- a/code/controllers/subsystem/radio.dm +++ b/code/controllers/subsystem/radio.dm @@ -26,7 +26,7 @@ SUBSYSTEM_DEF(radio) var/list/datum/radio_frequency/frequencies = list() // This is fucking disgusting and needs to die -/datum/controller/subsystem/radio/proc/frequency_span_class(var/frequency) +/datum/controller/subsystem/radio/proc/frequency_span_class(frequency) // Antags! if(frequency in ANTAG_FREQS) return "syndradio" @@ -62,7 +62,7 @@ SUBSYSTEM_DEF(radio) return "radio" -/datum/controller/subsystem/radio/proc/add_object(obj/device as obj, var/new_frequency as num, var/filter = null as text|null) +/datum/controller/subsystem/radio/proc/add_object(obj/device as obj, new_frequency as num, filter = null as text|null) var/f_text = num2text(new_frequency) var/datum/radio_frequency/frequency = frequencies[f_text] @@ -87,7 +87,7 @@ SUBSYSTEM_DEF(radio) return 1 -/datum/controller/subsystem/radio/proc/return_frequency(var/new_frequency as num) +/datum/controller/subsystem/radio/proc/return_frequency(new_frequency as num) var/f_text = num2text(new_frequency) var/datum/radio_frequency/frequency = frequencies[f_text] diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index a6918b665c7..e4f5a6d6ecf 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -125,14 +125,14 @@ SUBSYSTEM_DEF(ticker) current_state = GAME_STATE_FINISHED Master.SetRunLevel(RUNLEVEL_POSTGAME) // This shouldnt process more than once, but you never know auto_toggle_ooc(TRUE) // Turn it on - declare_completion() + addtimer(CALLBACK(src, .proc/call_reboot), 5 SECONDS) - spawn(50) - if(mode.station_was_nuked) - reboot_helper("Station destroyed by Nuclear Device.", "nuke") - else - reboot_helper("Round ended.", "proper completion") +/datum/controller/subsystem/ticker/proc/call_reboot() + if(mode.station_was_nuked) + reboot_helper("Station destroyed by Nuclear Device.", "nuke") + else + reboot_helper("Round ended.", "proper completion") /datum/controller/subsystem/ticker/proc/setup() cultdat = setupcult() diff --git a/code/controllers/subsystem/tickets/tickets.dm b/code/controllers/subsystem/tickets/tickets.dm index 2441d6521f8..24919f801f5 100644 --- a/code/controllers/subsystem/tickets/tickets.dm +++ b/code/controllers/subsystem/tickets/tickets.dm @@ -597,7 +597,7 @@ UI STUFF else usr.client.resolveAllAdminTickets() -/datum/controller/subsystem/tickets/proc/takeTicket(var/index) +/datum/controller/subsystem/tickets/proc/takeTicket(index) if(assignStaffToTicket(usr.client, index)) if(span_class == "mentorhelp") message_staff("[usr.client] / ([usr]) has taken [ticket_name] number [index]") diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 4284097b392..346297d900f 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -184,7 +184,7 @@ SUBSYSTEM_DEF(vote) return . -/datum/controller/subsystem/vote/proc/submit_vote(var/ckey, var/vote) +/datum/controller/subsystem/vote/proc/submit_vote(ckey, vote) if(mode) if(config.vote_no_dead && usr.stat == DEAD && !usr.client.holder) return 0 @@ -197,7 +197,7 @@ SUBSYSTEM_DEF(vote) return vote return 0 -/datum/controller/subsystem/vote/proc/initiate_vote(var/vote_type, var/initiator_key) +/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key) if(!mode) if(started_time != null && !check_rights(R_ADMIN)) var/next_allowed_time = (started_time + config.vote_delay) @@ -280,7 +280,7 @@ SUBSYSTEM_DEF(vote) return 1 return 0 -/datum/controller/subsystem/vote/proc/browse_to(var/client/C) +/datum/controller/subsystem/vote/proc/browse_to(client/C) if(!C) return var/admin = check_rights(R_ADMIN, 0, user = C.mob) @@ -330,10 +330,10 @@ SUBSYSTEM_DEF(vote) popup.set_content(dat) popup.open() -/datum/controller/subsystem/vote/proc/update_panel(var/client/C) +/datum/controller/subsystem/vote/proc/update_panel(client/C) C << output(url_encode(vote_html(C)), "vote.browser:update_vote_div") -/datum/controller/subsystem/vote/proc/vote_html(var/client/C) +/datum/controller/subsystem/vote/proc/vote_html(client/C) . = "" if(question) . += "

Vote: '[question]'

" diff --git a/code/datums/action.dm b/code/datums/action.dm index 8d02d4622cf..91a8f072ab7 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -17,7 +17,7 @@ var/button_icon_state = "default" var/mob/owner -/datum/action/New(var/Target) +/datum/action/New(Target) target = Target button = new button.linked_action = src @@ -383,6 +383,9 @@ /datum/action/item_action/hands_free/activate name = "Activate" +/datum/action/item_action/hands_free/activate/always + check_flags = null + /datum/action/item_action/toggle_research_scanner name = "Toggle Research Scanner" button_icon_state = "scan_mode" diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index a37d767542f..9fee24101d0 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -17,10 +17,6 @@ /datum/ai_law/zero/get_index() return 0 -/datum/ai_law/sixsixsix/get_index() - return 666 - - /datum/ai_laws var/name = "Unknown Laws" var/law_header = "Prime Directives" @@ -31,11 +27,9 @@ var/list/datum/ai_law/inherent_laws = list() var/list/datum/ai_law/supplied_laws = list() var/list/datum/ai_law/ion/ion_laws = list() - var/list/datum/ai_law/sixsixsix/devil_laws = list() var/list/datum/ai_law/sorted_laws = list() var/state_zeroth = 0 - var/list/state_devil = list() var/list/state_ion = list() var/list/state_inherent = list() var/list/state_supplied = list() @@ -68,9 +62,6 @@ for(var/ion_law in ion_laws) sorted_laws += ion_law - for(var/evil_law in devil_laws) - sorted_laws += evil_law - var/index = 1 for(var/datum/ai_law/inherent_law in inherent_laws) inherent_law.index = index++ @@ -81,7 +72,7 @@ if(istype(AL)) sorted_laws += AL -/datum/ai_laws/proc/sync(var/mob/living/silicon/S, var/full_sync = 1) +/datum/ai_laws/proc/sync(mob/living/silicon/S, full_sync = 1) // Add directly to laws to avoid log-spam S.sync_zeroth(zeroth_law, zeroth_law_borg) @@ -101,7 +92,7 @@ S.laws.add_supplied_law(law.index, law.law) -/mob/living/silicon/proc/sync_zeroth(var/datum/ai_law/zeroth_law, var/datum/ai_law/zeroth_law_borg) +/mob/living/silicon/proc/sync_zeroth(datum/ai_law/zeroth_law, datum/ai_law/zeroth_law_borg) if(!is_special_character(src) || mind.original != src) if(zeroth_law_borg) laws.set_zeroth_law(zeroth_law_borg.law) @@ -110,14 +101,14 @@ else laws.clear_zeroth_laws() -/mob/living/silicon/ai/sync_zeroth(var/datum/ai_law/zeroth_law, var/datum/ai_law/zeroth_law_borg) +/mob/living/silicon/ai/sync_zeroth(datum/ai_law/zeroth_law, datum/ai_law/zeroth_law_borg) if(zeroth_law) laws.set_zeroth_law(zeroth_law.law, zeroth_law_borg ? zeroth_law_borg.law : null) /**************** * Add Laws * ****************/ -/datum/ai_laws/proc/set_zeroth_law(var/law, var/law_borg = null) +/datum/ai_laws/proc/set_zeroth_law(law, law_borg = null) if(!law) return @@ -128,22 +119,7 @@ zeroth_law_borg = null sorted_laws.Cut() -/datum/ai_laws/proc/set_sixsixsix_law(var/law) - if(!law) - return - - for(var/datum/ai_law/AL in devil_laws) - if(AL.law == law) - return - - var/new_law = new/datum/ai_law/sixsixsix(law) - devil_laws += new_law - if(state_devil.len < devil_laws.len) - state_devil += 1 - - sorted_laws.Cut() - -/datum/ai_laws/proc/add_ion_law(var/law) +/datum/ai_laws/proc/add_ion_law(law) if(!law) return @@ -158,7 +134,7 @@ sorted_laws.Cut() -/datum/ai_laws/proc/add_inherent_law(var/law) +/datum/ai_laws/proc/add_inherent_law(law) if(!law) return @@ -173,7 +149,7 @@ sorted_laws.Cut() -/datum/ai_laws/proc/add_supplied_law(var/number, var/law) +/datum/ai_laws/proc/add_supplied_law(number, law) if(!law) return @@ -200,31 +176,28 @@ /**************** * Remove Laws * *****************/ -/datum/ai_laws/proc/delete_law(var/datum/ai_law/law) +/datum/ai_laws/proc/delete_law(datum/ai_law/law) if(istype(law)) law.delete_law(src) -/datum/ai_law/proc/delete_law(var/datum/ai_laws/laws) +/datum/ai_law/proc/delete_law(datum/ai_laws/laws) -/datum/ai_law/zero/delete_law(var/datum/ai_laws/laws) +/datum/ai_law/zero/delete_law(datum/ai_laws/laws) laws.clear_zeroth_laws() -/datum/ai_law/ion/delete_law(var/datum/ai_laws/laws) +/datum/ai_law/ion/delete_law(datum/ai_laws/laws) laws.internal_delete_law(laws.ion_laws, laws.state_ion, src) -/datum/ai_law/sixsixsix/delete_law(var/datum/ai_laws/laws) - laws.internal_delete_law(laws.devil_laws, laws.state_devil, src) - -/datum/ai_law/inherent/delete_law(var/datum/ai_laws/laws) +/datum/ai_law/inherent/delete_law(datum/ai_laws/laws) laws.internal_delete_law(laws.inherent_laws, laws.state_inherent, src) -/datum/ai_law/supplied/delete_law(var/datum/ai_laws/laws) +/datum/ai_law/supplied/delete_law(datum/ai_laws/laws) var/index = laws.supplied_laws.Find(src) if(index) laws.supplied_laws[index] = "" laws.state_supplied[index] = 1 -/datum/ai_laws/proc/internal_delete_law(var/list/datum/ai_law/laws, var/list/state, var/list/datum/ai_law/law) +/datum/ai_laws/proc/internal_delete_law(list/datum/ai_law/laws, list/state, list/datum/ai_law/law) var/index = laws.Find(law) if(index) laws -= law @@ -239,10 +212,6 @@ zeroth_law = null zeroth_law_borg = null -/datum/ai_laws/proc/clear_sixsixsix_laws() - devil_laws.Cut() - sorted_laws.Cut() - /datum/ai_laws/proc/clear_ion_laws() ion_laws.Cut() sorted_laws.Cut() @@ -255,7 +224,7 @@ supplied_laws.Cut() sorted_laws.Cut() -/datum/ai_laws/proc/show_laws(var/who) +/datum/ai_laws/proc/show_laws(who) sort_laws() for(var/datum/ai_law/law in sorted_laws) if(law == zeroth_law_borg) @@ -271,25 +240,25 @@ /******** * Get * ********/ -/datum/ai_laws/proc/get_state_law(var/datum/ai_law/law) +/datum/ai_laws/proc/get_state_law(datum/ai_law/law) return law.get_state_law(src) -/datum/ai_law/proc/get_state_law(var/datum/ai_laws/laws) +/datum/ai_law/proc/get_state_law(datum/ai_laws/laws) -/datum/ai_law/zero/get_state_law(var/datum/ai_laws/laws) +/datum/ai_law/zero/get_state_law(datum/ai_laws/laws) if(src == laws.zeroth_law) return laws.state_zeroth -/datum/ai_law/ion/get_state_law(var/datum/ai_laws/laws) +/datum/ai_law/ion/get_state_law(datum/ai_laws/laws) return laws.get_state_internal(laws.ion_laws, laws.state_ion, src) -/datum/ai_law/inherent/get_state_law(var/datum/ai_laws/laws) +/datum/ai_law/inherent/get_state_law(datum/ai_laws/laws) return laws.get_state_internal(laws.inherent_laws, laws.state_inherent, src) -/datum/ai_law/supplied/get_state_law(var/datum/ai_laws/laws) +/datum/ai_law/supplied/get_state_law(datum/ai_laws/laws) return laws.get_state_internal(laws.supplied_laws, laws.state_supplied, src) -/datum/ai_laws/proc/get_state_internal(var/list/datum/ai_law/laws, var/list/state, var/list/datum/ai_law/law) +/datum/ai_laws/proc/get_state_internal(list/datum/ai_law/laws, list/state, list/datum/ai_law/law) var/index = laws.Find(law) if(index) return state[index] @@ -298,25 +267,25 @@ /******** * Set * ********/ -/datum/ai_laws/proc/set_state_law(var/datum/ai_law/law, var/state) +/datum/ai_laws/proc/set_state_law(datum/ai_law/law, state) law.set_state_law(src, state) -/datum/ai_law/proc/set_state_law(var/datum/ai_law/law, var/state) +/datum/ai_law/proc/set_state_law(datum/ai_law/law, state) -/datum/ai_law/zero/set_state_law(var/datum/ai_laws/laws, var/state) +/datum/ai_law/zero/set_state_law(datum/ai_laws/laws, state) if(src == laws.zeroth_law) laws.state_zeroth = state -/datum/ai_law/ion/set_state_law(var/datum/ai_laws/laws, var/state) +/datum/ai_law/ion/set_state_law(datum/ai_laws/laws, state) laws.set_state_law_internal(laws.ion_laws, laws.state_ion, src, state) -/datum/ai_law/inherent/set_state_law(var/datum/ai_laws/laws, var/state) +/datum/ai_law/inherent/set_state_law(datum/ai_laws/laws, state) laws.set_state_law_internal(laws.inherent_laws, laws.state_inherent, src, state) -/datum/ai_law/supplied/set_state_law(var/datum/ai_laws/laws, var/state) +/datum/ai_law/supplied/set_state_law(datum/ai_laws/laws, state) laws.set_state_law_internal(laws.supplied_laws, laws.state_supplied, src, state) -/datum/ai_laws/proc/set_state_law_internal(var/list/datum/ai_law/laws, var/list/state, var/list/datum/ai_law/law, var/do_state) +/datum/ai_laws/proc/set_state_law_internal(list/datum/ai_law/laws, list/state, list/datum/ai_law/law, do_state) var/index = laws.Find(law) if(index) state[index] = do_state diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 76be0b02a12..1e7f95b5780 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -16,7 +16,7 @@ var/title_buttons = "" -/datum/browser/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, var/atom/nref = null) +/datum/browser/New(nuser, nwindow_id, ntitle = 0, nwidth = 0, nheight = 0, atom/nref = null) user = nuser window_id = nwindow_id @@ -101,7 +101,7 @@ [get_footer()] "} -/datum/browser/proc/open(var/use_onclose = 1) +/datum/browser/proc/open(use_onclose = 1) var/window_size = "" if(width && height) window_size = "size=[width]x[height];" @@ -145,7 +145,7 @@ // Otherwise, the user mob's machine var will be reset directly. // -/proc/onclose(mob/user, windowid, var/atom/ref=null) +/proc/onclose(mob/user, windowid, atom/ref=null) if(!user || !user.client) return var/param = "null" if(ref) @@ -161,7 +161,7 @@ // if a valid atom reference is supplied, call the atom's Topic() with "close=1" // otherwise, just reset the client mob's machine var. // -/client/verb/windowclose(var/atomref as text) +/client/verb/windowclose(atomref as text) set hidden = 1 // hide this verb from the user's panel set name = ".windowclose" // no autocomplete on cmd line diff --git a/code/datums/cache/powermonitor.dm b/code/datums/cache/powermonitor.dm index a11e9b76a41..31195303f3f 100644 --- a/code/datums/cache/powermonitor.dm +++ b/code/datums/cache/powermonitor.dm @@ -1,6 +1,6 @@ GLOBAL_DATUM_INIT(powermonitor_repository, /datum/repository/powermonitor, new()) -/datum/repository/powermonitor/proc/powermonitor_data(var/refresh = 0) +/datum/repository/powermonitor/proc/powermonitor_data(refresh = 0) var/pMonData[0] var/datum/cache_entry/cache_entry = cache_data diff --git a/code/datums/components/decal.dm b/code/datums/components/decal.dm index 876cf0c0507..ba5864ad0eb 100644 --- a/code/datums/components/decal.dm +++ b/code/datums/components/decal.dm @@ -71,5 +71,5 @@ if(strength >= cleanable) qdel(src) -/datum/component/decal/proc/examine(datum/source, mob/user, var/list/examine_list) +/datum/component/decal/proc/examine(datum/source, mob/user, list/examine_list) examine_list += description diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 5371384e781..38ee8ed6042 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -205,7 +205,7 @@ return amt return FALSE -/datum/component/material_container/proc/transer_amt_to(var/datum/component/material_container/T, amt, id) +/datum/component/material_container/proc/transer_amt_to(datum/component/material_container/T, amt, id) if((amt==0)||(!T)||(!id)) return FALSE if(amt<0) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index ccd0b4c66e5..b258a18b94c 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -345,7 +345,7 @@ GLOBAL_VAR_INIT(record_id_num, 1001) locked += L return -/proc/get_id_photo(mob/living/carbon/human/H, var/custom_job = null) +/proc/get_id_photo(mob/living/carbon/human/H, custom_job = null) var/icon/preview_icon = null var/obj/item/organ/external/head/head_organ = H.get_organ("head") var/obj/item/organ/internal/eyes/eyes_organ = H.get_int_organ(/obj/item/organ/internal/eyes) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index dc6101630bf..675b59b965c 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -445,7 +445,7 @@ usr << browse(html, "window=variables[refid];size=475x650") #define VV_HTML_ENCODE(thing) ( sanitize ? html_encode(thing) : thing ) -/proc/debug_variable(name, value, level, var/datum/DA = null, sanitize = TRUE) +/proc/debug_variable(name, value, level, datum/DA = null, sanitize = TRUE) var/header if(DA) if(islist(DA)) diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index f167df70dac..132ddf6ff66 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -44,7 +44,7 @@ GLOBAL_LIST_INIT(advance_cures, list( */ -/datum/disease/advance/New(var/process = 1, var/datum/disease/advance/D) +/datum/disease/advance/New(process = 1, datum/disease/advance/D) if(!istype(D)) D = null // Generate symptoms if we weren't given any. @@ -317,7 +317,7 @@ GLOBAL_LIST_INIT(advance_cures, list( */ // Mix a list of advance diseases and return the mixed result. -/proc/Advance_Mix(var/list/D_list) +/proc/Advance_Mix(list/D_list) // to_chat(world, "Mixing!!!!") diff --git a/code/datums/diseases/advance/presets.dm b/code/datums/diseases/advance/presets.dm index c1df095f9c2..0cf111358c9 100644 --- a/code/datums/diseases/advance/presets.dm +++ b/code/datums/diseases/advance/presets.dm @@ -1,6 +1,6 @@ // Cold -/datum/disease/advance/cold/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) +/datum/disease/advance/cold/New(process = 1, datum/disease/advance/D, copy = 0) if(!D) name = "Cold" symptoms = list(new/datum/symptom/sneeze) @@ -9,7 +9,7 @@ // Flu -/datum/disease/advance/flu/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) +/datum/disease/advance/flu/New(process = 1, datum/disease/advance/D, copy = 0) if(!D) name = "Flu" symptoms = list(new/datum/symptom/cough) @@ -18,7 +18,7 @@ // Voice Changing -/datum/disease/advance/voice_change/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) +/datum/disease/advance/voice_change/New(process = 1, datum/disease/advance/D, copy = 0) if(!D) name = "Epiglottis Mutation" symptoms = list(new/datum/symptom/voice_change) @@ -27,7 +27,7 @@ // Toxin Filter -/datum/disease/advance/heal/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) +/datum/disease/advance/heal/New(process = 1, datum/disease/advance/D, copy = 0) if(!D) name = "Liver Enhancer" symptoms = list(new/datum/symptom/heal) @@ -36,7 +36,7 @@ // Hullucigen -/datum/disease/advance/hullucigen/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) +/datum/disease/advance/hullucigen/New(process = 1, datum/disease/advance/D, copy = 0) if(!D) name = "Reality Impairment" symptoms = list(new/datum/symptom/hallucigen) @@ -44,7 +44,7 @@ // Sensory Restoration -/datum/disease/advance/sensory_restoration/New(var/process = 1, var/datum/disease/advance/D, var/copy = 0) +/datum/disease/advance/sensory_restoration/New(process = 1, datum/disease/advance/D, copy = 0) if(!D) name = "Reality Enhancer" symptoms = list(new/datum/symptom/sensory_restoration) diff --git a/code/datums/diseases/advance/symptoms/shedding.dm b/code/datums/diseases/advance/symptoms/shedding.dm index c3a64501759..a1f244c5566 100644 --- a/code/datums/diseases/advance/symptoms/shedding.dm +++ b/code/datums/diseases/advance/symptoms/shedding.dm @@ -31,20 +31,25 @@ BONUS to_chat(M, "[pick("Your scalp itches.", "Your skin feels flakey.")]") if(istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M + if(NO_HAIR in H.dna.species.species_traits) + return // Hair can't fall out if you don't have any var/obj/item/organ/external/head/head_organ = H.get_organ("head") switch(A.stage) if(3, 4) if(!(head_organ.h_style == "Bald") && !(head_organ.h_style == "Balding Hair")) to_chat(H, "Your hair starts to fall out in clumps...") - spawn(50) - head_organ.h_style = "Balding Hair" - H.update_hair() + addtimer(CALLBACK(src, .proc/change_hair, H, head_organ, null, "Balding Hair"), 5 SECONDS) if(5) if(!(head_organ.f_style == "Shaved") || !(head_organ.h_style == "Bald")) to_chat(H, "Your hair starts to fall out in clumps...") - spawn(50) - head_organ.f_style = "Shaved" - head_organ.h_style = "Bald" - H.update_hair() - H.update_fhair() - return + addtimer(CALLBACK(src, .proc/change_hair, H, head_organ, "Shaved", "Bald"), 5 SECONDS) + +/datum/symptom/shedding/proc/change_hair(mob/living/carbon/human/H, obj/item/organ/external/head/head_organ, f_style, h_style) + if(!H || !head_organ) + return + if(f_style) + head_organ.f_style = f_style + H.update_fhair() + if(h_style) + head_organ.h_style = h_style + H.update_hair() diff --git a/code/datums/dog_fashion.dm b/code/datums/dog_fashion.dm index ef3b76652ea..af1e3376687 100644 --- a/code/datums/dog_fashion.dm +++ b/code/datums/dog_fashion.dm @@ -31,7 +31,7 @@ if(speak_emote) D.speak_emote = speak_emote -/datum/dog_fashion/proc/get_overlay(var/dir) +/datum/dog_fashion/proc/get_overlay(dir) if(icon_file && obj_icon_state) var/image/corgI = image(icon_file, obj_icon_state, dir = dir) corgI.alpha = obj_alpha @@ -124,6 +124,10 @@ name = "Pyromancer REAL_NAME" speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "ONI SOMA!") +/datum/dog_fashion/head/black_wizard + name = "Necromancer REAL_NAME" + speak = list("YAP", "Woof!", "Bark!", "AUUUUUU") + /datum/dog_fashion/head/cardborg name = "Borgi" speak = list("Ping!","Beep!","Woof!") @@ -148,6 +152,8 @@ name = "Corgi Tech REAL_NAME" desc = "The reason your yellow gloves have chew-marks." +/datum/dog_fashion/head/softcap + /datum/dog_fashion/head/reindeer name = "REAL_NAME the red-nosed Corgi" emote_hear = list("lights the way!", "illuminates.", "yaps!") @@ -208,3 +214,38 @@ /datum/dog_fashion/head/fried_vox_empty name = "Colonel REAL_NAME" desc = "Keep away from live vox." + +/datum/dog_fashion/head/HoS + name = "Head of Security REAL_NAME" + desc = "Probably better than the last HoS." + +/datum/dog_fashion/head/beret/sec + name = "Officer REAL_NAME" + desc = "Ever-loyal, ever-vigilant." + +/datum/dog_fashion/head/bowlerhat + name = "REAL_NAME" + desc = "A sophisticated city gent." + +/datum/dog_fashion/head/surgery + name = "Nurse-in-Training REAL_NAME" + desc = "The most adorable bed-side manner ever." + +/datum/dog_fashion/head/bucket + name = "REAL_NAME" + desc = "A janitor's best friend." + +/datum/dog_fashion/head/justice_wig + name = "Arbiter REAL_NAME" + desc = "Head of the High Court of Cute." + +/datum/dog_fashion/head/wizard/magus + name = "Battlemage REAL_NAME" + +/datum/dog_fashion/head/wizard/marisa + name = "Witch REAL_NAME" + desc = "Flying broom not included." + +/datum/dog_fashion/head/roman + name = "Imperator REAL_NAME" + desc = "For the Senate and the people of Rome!" diff --git a/code/datums/helper_datums/construction_datum.dm b/code/datums/helper_datums/construction_datum.dm index 8eefe5efa0d..155bbaed8dc 100644 --- a/code/datums/helper_datums/construction_datum.dm +++ b/code/datums/helper_datums/construction_datum.dm @@ -217,7 +217,7 @@ text = replacetext(text,"{HOLDER}","[holder]") return text -/datum/construction/reversible2/custom_action(index, diff, used_atom, var/mob/user) +/datum/construction/reversible2/custom_action(index, diff, used_atom, mob/user) if(!..(index,used_atom,user)) return 0 diff --git a/code/datums/helper_datums/input.dm b/code/datums/helper_datums/input.dm index 4c3dc6a1cf4..175a730b275 100644 --- a/code/datums/helper_datums/input.dm +++ b/code/datums/helper_datums/input.dm @@ -45,7 +45,7 @@ return result // Callback function should take the result as the last argument -/datum/async_input/proc/on_close(var/datum/callback/cb) +/datum/async_input/proc/on_close(datum/callback/cb) onCloseCb = cb /datum/async_input/proc/show() diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 4609075ddd7..49c38103d56 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -84,14 +84,12 @@ /datum/teleport/proc/playSpecials(atom/location,datum/effect_system/effect,sound) if(location) if(effect) - spawn(-1) - src = null - effect.attach(location) - effect.start() + src = null + effect.attach(location) + effect.start() if(sound) - spawn(-1) - src = null - playsound(location,sound,60,1) + src = null + playsound(location,sound,60,1) return //do the monkey dance diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 50152c4873d..60fbb9c8194 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -21,7 +21,6 @@ GLOBAL_LIST_INIT(huds, list( \ ANTAG_HUD_VAMPIRE = new/datum/atom_hud/antag/hidden(),\ ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag/hidden(),\ DATA_HUD_ABDUCTOR = new/datum/atom_hud/abductor(),\ - ANTAG_HUD_DEVIL = new/datum/atom_hud/antag/hidden(),\ ANTAG_HUD_EVENTMISC = new/datum/atom_hud/antag/hidden(),\ ANTAG_HUD_BLOB = new/datum/atom_hud/antag/hidden()\ )) diff --git a/code/datums/log_record.dm b/code/datums/log_record.dm index 2a659477b47..cf437c86dbd 100644 --- a/code/datums/log_record.dm +++ b/code/datums/log_record.dm @@ -37,7 +37,7 @@ else . = subject -/datum/log_record/proc/get_health_string(var/mob/living/L) +/datum/log_record/proc/get_health_string(mob/living/L) var/OX = L.getOxyLoss() > 50 ? "[L.getOxyLoss()]" : L.getOxyLoss() var/TX = L.getToxLoss() > 50 ? "[L.getToxLoss()]" : L.getToxLoss() var/BU = L.getFireLoss() > 50 ? "[L.getFireLoss()]" : L.getFireLoss() diff --git a/code/datums/looping_sounds/looping_sound.dm b/code/datums/looping_sounds/looping_sound.dm index 5e019439bc4..33fb5595c24 100644 --- a/code/datums/looping_sounds/looping_sound.dm +++ b/code/datums/looping_sounds/looping_sound.dm @@ -31,6 +31,8 @@ var/falloff_exponent var/muted = TRUE var/falloff_distance + /// Channel of the audio, random otherwise + var/channel /datum/looping_sound/New(list/_output_atoms = list(), start_immediately = FALSE, _direct = FALSE) if(!mid_sounds) @@ -75,14 +77,16 @@ var/list/atoms_cache = output_atoms var/sound/S = sound(soundfile) if(direct) - S.channel = SSsounds.random_available_channel() - S.volume = volume + S.channel = channel || SSsounds.random_available_channel() for(var/i in 1 to atoms_cache.len) var/atom/thing = atoms_cache[i] if(direct) + if(ismob(thing)) + var/mob/M = thing + S.volume = volume * (USER_VOLUME(M, channel) || 1) SEND_SOUND(thing, S) else - playsound(thing, S, volume, vary, extra_range, falloff_exponent = falloff_exponent, falloff_distance = falloff_distance) + playsound(thing, S, volume, vary, extra_range, falloff_exponent = falloff_exponent, falloff_distance = falloff_distance, channel = channel) /datum/looping_sound/proc/get_sound(looped, _mid_sounds) if(!_mid_sounds) diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index 280aa5fab60..432e2709335 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -16,3 +16,4 @@ falloff_exponent = 10 falloff_distance = 5 vary = TRUE + channel = CHANNEL_ENGINE diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 591a487598e..35e0053822d 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -55,10 +55,6 @@ var/antag_hud_icon_state = null //this mind's ANTAG_HUD should have this icon_state var/datum/atom_hud/antag/antag_hud = null //this mind's antag HUD var/datum/mindslaves/som //stands for slave or master...hush.. - 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/hasSoul = TRUE var/isholy = FALSE // is this person a chaplain or admin role allowed to use bibles var/isblessed = FALSE // is this person blessed by a chaplain? @@ -76,7 +72,6 @@ /datum/mind/New(new_key) key = new_key - soulOwner = src /datum/mind/Destroy() SSticker.minds -= src @@ -88,7 +83,6 @@ antag_datums = null current = null original = null - soulOwner = null return ..() /datum/mind/proc/transfer_to(mob/living/new_character) @@ -314,22 +308,6 @@ . += _memory_edit_role_enabled(ROLE_ABDUCTOR) -/datum/mind/proc/memory_edit_devil(mob/living/H) - . = _memory_edit_header("devil", list("devilagents")) - if(src in SSticker.mode.devils) - if(!devilinfo) - . += "No devilinfo found! Yell at a coder!" - else if(!devilinfo.ascendable) - . += "DEVIL|Ascendable Devil|sintouched|no" - else - . += "DEVIL|ASCENDABLE DEVIL|sintouched|no" - else if(src in SSticker.mode.sintouched) - . += "devil|Ascendable Devil|SINTOUCHED|no" - else - . += "devil|Ascendable Devil|sintouched|NO" - - . += _memory_edit_role_enabled(ROLE_DEVIL) - /datum/mind/proc/memory_edit_eventmisc(mob/living/H) . = _memory_edit_header("event", list()) if(src in SSticker.mode.eventmiscs) @@ -461,10 +439,6 @@ sections["shadowling"] = memory_edit_shadowling(H) /** Abductors **/ sections["abductor"] = memory_edit_abductor(H) - /** DEVIL ***/ - var/static/list/devils_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/carbon/true_devil, /mob/living/silicon/robot)) - if(is_type_in_typecache(current, devils_typecache)) - sections["devil"] = memory_edit_devil(H) sections["eventmisc"] = memory_edit_eventmisc(H) /** TRAITOR ***/ sections["traitor"] = memory_edit_traitor() @@ -1104,76 +1078,6 @@ SSticker.mode.update_eventmisc_icons_added(src) message_admins("[key_name_admin(usr)] has eventantag'ed [current].") log_admin("[key_name(usr)] has eventantag'ed [current].") - else if(href_list["devil"]) - switch(href_list["devil"]) - if("clear") - if(src in SSticker.mode.devils) - if(istype(current,/mob/living/carbon/true_devil/)) - to_chat(usr,"This cannot be used on true or arch-devils.") - else - SSticker.mode.devils -= src - SSticker.mode.update_devil_icons_removed(src) - special_role = null - to_chat(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/targeted/click/fireball/hellish) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/click/summon_contract) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork/greater) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork/ascended) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/violin) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_dancefloor) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/sintouch) - RemoveSpell(/obj/effect/proc_holder/spell/targeted/sintouch/ascended) - message_admins("[key_name_admin(usr)] has de-devil'ed [current].") - if(issilicon(current)) - var/mob/living/silicon/S = current - S.laws.clear_sixsixsix_laws() - devilinfo = null - log_admin("[key_name(usr)] has de-devil'ed [current].") - else if(src in SSticker.mode.sintouched) - SSticker.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(devilinfo) - devilinfo.ascendable = FALSE - message_admins("[key_name_admin(usr)] has made [current] unable to ascend as a devil.") - log_admin("[key_name_admin(usr)] has made [current] unable to ascend as a devil.") - return - if(!ishuman(current) && !isrobot(current)) - to_chat(usr, "This only works on humans and cyborgs!") - return - SSticker.mode.devils += src - special_role = "devil" - SSticker.mode.update_devil_icons_added(src) - SSticker.mode.finalize_devil(src, FALSE) - SSticker.mode.forge_devil_objectives(src, 2) - SSticker.mode.greet_devil(src) - message_admins("[key_name_admin(usr)] has devil'ed [current].") - log_admin("[key_name(usr)] has devil'ed [current].") - if("ascendable_devil") - if(devilinfo) - devilinfo.ascendable = TRUE - message_admins("[key_name_admin(usr)] has made [current] able to ascend as a devil.") - log_admin("[key_name_admin(usr)] has made [current] able to ascend as a devil.") - return - if(!ishuman(current) && !isrobot(current)) - to_chat(usr, "This only works on humans and cyborgs!") - return - SSticker.mode.devils += src - special_role = "devil" - SSticker.mode.update_devil_icons_added(src) - SSticker.mode.finalize_devil(src, TRUE) - SSticker.mode.forge_devil_objectives(src, 2) - SSticker.mode.greet_devil(src) - message_admins("[key_name_admin(usr)] has devil'ed [current]. The devil has been marked as ascendable.") - log_admin("[key_name(usr)] has devil'ed [current]. The devil has been marked as ascendable.") - if("sintouched") - var/mob/living/carbon/human/H = current - H.influenceSin() - message_admins("[key_name_admin(usr)] has sintouch'ed [current].") - log_admin("[key_name(usr)] has sintouch'ed [current].") else if(href_list["traitor"]) switch(href_list["traitor"]) @@ -1805,17 +1709,6 @@ var/obj/effect/proc_holder/spell/S = X S.action.Grant(new_character) -/datum/mind/proc/disrupt_spells(delay, list/exceptions = New()) - for(var/X in spell_list) - var/obj/effect/proc_holder/spell/S = X - for(var/type in exceptions) - if(istype(S, type)) - continue - S.charge_counter = delay - spawn(0) - S.start_recharge() - S.updateButtonIcon() - /datum/mind/proc/get_ghost(even_if_they_cant_reenter) for(var/mob/dead/observer/G in GLOB.dead_mob_list) if(G.mind == src) @@ -1891,18 +1784,6 @@ to_chat(current, "You seem to have forgotten the events of the past 10 minutes or so, and your head aches a bit as if someone beat it savagely with a stick.") to_chat(current, "This means you don't remember who you were working for or what you were doing.") -/datum/mind/proc/is_revivable() //Note, this ONLY checks the mind. - if(damnation_type) - return FALSE - return TRUE - -// returns a mob to message to produce something visible for the target mind -/datum/mind/proc/messageable_mob() - if(!QDELETED(current) && current.client) - return current - else - return get_ghost(even_if_they_cant_reenter = TRUE) - //Initialisation procs /mob/proc/mind_initialize() if(mind) diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm index 1c5aba0f171..283b6951b9f 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -111,6 +111,8 @@ for(var/path in backpack_contents) var/number = backpack_contents[path] + if(!number) + number = 1 for(var/i in 1 to number) H.equip_or_collect(new path(H), slot_in_backpack) diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 22d61c818ec..4448ef20655 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -3,7 +3,7 @@ /datum/outfit/admin/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() - if(!visualsOnly) + if(!visualsOnly && H.mind) H.mind.assigned_role = name H.job = name @@ -627,6 +627,10 @@ /obj/item/implanter/death_alarm = 1, ) + implants = list(/obj/item/implant/mindshield, + /obj/item/implant/death_alarm + ) + /datum/outfit/admin/solgov_rep/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() if(visualsOnly) @@ -634,33 +638,43 @@ var/obj/item/card/id/I = H.wear_id if(istype(I)) - apply_to_card(I, H, get_all_accesses(), name, "lifetimeid") + apply_to_card(I, H, get_all_centcom_access(), name, "lifetimeid") + I.assignment = "Solar Federation Representative" /datum/outfit/admin/solgov name = "Solar Federation Marine" - uniform = /obj/item/clothing/under/solgov suit = /obj/item/clothing/suit/armor/bulletproof back = /obj/item/storage/backpack/security - belt = /obj/item/storage/belt/military/assault - head = /obj/item/clothing/head/soft/solgov - glasses = /obj/item/clothing/glasses/hud/security/night + belt = /obj/item/storage/belt/military/assault/marines/full + head = /obj/item/clothing/head/soft/solgov/marines + glasses = /obj/item/clothing/glasses/night gloves = /obj/item/clothing/gloves/combat shoes = /obj/item/clothing/shoes/combat l_ear = /obj/item/radio/headset/ert id = /obj/item/card/id - l_hand = /obj/item/gun/projectile/automatic/ar + l_hand = /obj/item/gun/projectile/automatic/shotgun/bulldog + suit_store = /obj/item/gun/projectile/automatic/pistol/m1911 r_pocket = /obj/item/flashlight/seclite pda = /obj/item/pda backpack_contents = list( /obj/item/storage/box/responseteam = 1, - /obj/item/ammo_box/magazine/m556 = 3, /obj/item/clothing/shoes/magboots = 1, - /obj/item/gun/projectile/automatic/pistol/m1911 = 1, - /obj/item/ammo_box/magazine/m45 = 2 + /obj/item/whetstone = 1, + /obj/item/clothing/mask/gas/explorer/marines = 1, + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1 ) - var/is_tsf_lieutenant = FALSE + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/arm/flash, + /obj/item/organ/internal/cyberimp/chest/nutriment, + /obj/item/organ/internal/cyberimp/eyes/hud/security + ) + implants = list(/obj/item/implant/mindshield, + /obj/item/implant/death_alarm + ) + + var/is_solgov_lieutenant = FALSE /datum/outfit/admin/solgov/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -668,31 +682,80 @@ if(visualsOnly) return - if(is_tsf_lieutenant) + if(is_solgov_lieutenant) H.real_name = "Lieutenant [pick(GLOB.last_names)]" else H.real_name = "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(GLOB.last_names)]" H.name = H.real_name var/obj/item/card/id/I = H.wear_id - if(istype(I)) - apply_to_card(I, H, get_all_accesses(), name, "lifetimeid") + I.assignment = name + if(istype(I) && is_solgov_lieutenant) + apply_to_card(I, H, get_centcom_access("Emergency Response Team Leader"), name, "lifetimeid") + else if(istype(I)) + apply_to_card(I, H, get_centcom_access("Emergency Response Team Member"), name, "lifetimeid") + H.sec_hud_set_ID() /datum/outfit/admin/solgov/lieutenant name = "Solar Federation Lieutenant" - uniform = /obj/item/clothing/under/solgov/command - head = /obj/item/clothing/head/soft/solgov/command + head = /obj/item/clothing/head/beret/solgov/command + glasses = /obj/item/clothing/glasses/night back = /obj/item/storage/backpack/satchel + l_ear = /obj/item/radio/headset/ert/alt/commander l_hand = null + belt = /obj/item/melee/baton/loaded + suit_store = /obj/item/gun/projectile/automatic/pistol/deagle l_pocket = /obj/item/pinpointer/advpinpointer backpack_contents = list( /obj/item/storage/box/responseteam = 1, - /obj/item/melee/classic_baton/telescopic = 1, + /obj/item/storage/box/handcuffs = 1, /obj/item/clothing/shoes/magboots/advance = 1, - /obj/item/gun/projectile/automatic/pistol/deagle = 1, - /obj/item/ammo_box/magazine/m50 = 2 + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1, + /obj/item/clothing/mask/gas/explorer/marines = 1, + /obj/item/ammo_box/magazine/m50 = 3 ) - is_tsf_lieutenant = TRUE + is_solgov_lieutenant = TRUE + +/datum/outfit/admin/solgov/elite + name = "Solar Federation Specops Marine" + uniform = /obj/item/clothing/under/solgov/elite + head = /obj/item/clothing/head/soft/solgov/marines/elite + belt = /obj/item/storage/belt/military/assault/marines/elite/full + l_hand = /obj/item/gun/projectile/automatic/ar + backpack_contents = list( + /obj/item/storage/box/responseteam = 1, + /obj/item/clothing/shoes/magboots/advance = 1, + /obj/item/whetstone = 1, + /obj/item/clothing/mask/gas/explorer/marines = 1, + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1 + ) + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/eyes/hud/security, + /obj/item/organ/internal/cyberimp/chest/nutriment, + /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, + /obj/item/organ/internal/cyberimp/arm/flash, + /obj/item/organ/internal/eyes/cybernetic/shield + ) +/datum/outfit/admin/solgov/elite/lieutenant + name = "Solar Federation Specops Lieutenant" + uniform = /obj/item/clothing/under/solgov/command/elite + head = /obj/item/clothing/head/beret/solgov/command/elite + glasses = /obj/item/clothing/glasses/night + back = /obj/item/storage/backpack/satchel + belt = /obj/item/melee/baton/loaded + l_hand = null + suit_store = /obj/item/gun/projectile/automatic/pistol/deagle + l_pocket = /obj/item/pinpointer/advpinpointer + l_ear = /obj/item/radio/headset/ert/alt/commander + backpack_contents = list( + /obj/item/storage/box/responseteam = 1, + /obj/item/storage/box/handcuffs = 1, + /obj/item/clothing/shoes/magboots/advance = 1, + /obj/item/clothing/mask/gas/explorer/marines = 1, + /obj/item/reagent_containers/hypospray/autoinjector/survival = 1, + /obj/item/ammo_box/magazine/m50 = 3 + ) + is_solgov_lieutenant = TRUE /datum/outfit/admin/sol_trader name = "Sol Trader" diff --git a/code/datums/pipe_datums.dm b/code/datums/pipe_datums.dm index 8d3b0807f9c..8fd243850b3 100644 --- a/code/datums/pipe_datums.dm +++ b/code/datums/pipe_datums.dm @@ -370,13 +370,13 @@ GLOBAL_LIST_EMPTY(rpd_pipe_list) //Some pipes we don't want to be dispensable pipe_id = PIPE_DISPOSALS_JUNCTION_LEFT pipe_icon = "pipe-j2" -/proc/get_pipe_name(var/pipe_id, var/pipe_type) +/proc/get_pipe_name(pipe_id, pipe_type) for(var/datum/pipes/P in GLOB.construction_pipe_list) if(P.pipe_id == pipe_id && P.pipe_type == pipe_type) return P.pipe_name return "unknown pipe" -/proc/get_pipe_icon(var/pipe_id) +/proc/get_pipe_icon(pipe_id) for(var/datum/pipes/P in GLOB.construction_pipe_list) if(P.pipe_id == pipe_id) return P.pipe_icon diff --git a/code/datums/radio.dm b/code/datums/radio.dm index efeebc7c973..79890350f20 100644 --- a/code/datums/radio.dm +++ b/code/datums/radio.dm @@ -3,7 +3,7 @@ var/frequency as num var/list/obj/devices = list() -/datum/radio_frequency/proc/post_signal(obj/source as obj|null, datum/signal/signal, var/filter = null as text|null, var/range = null as num|null) +/datum/radio_frequency/proc/post_signal(obj/source as obj|null, datum/signal/signal, filter = null as text|null, range = null as num|null) var/turf/start_point if(range) start_point = get_turf(source) @@ -19,7 +19,7 @@ send_to_filter(source, signal, next_filter, start_point, range) //Sends a signal to all machines belonging to a given filter. Should be called by post_signal() -/datum/radio_frequency/proc/send_to_filter(obj/source, datum/signal/signal, var/filter, var/turf/start_point = null, var/range = null) +/datum/radio_frequency/proc/send_to_filter(obj/source, datum/signal/signal, filter, turf/start_point = null, range = null) if(range && !start_point) return @@ -35,7 +35,7 @@ device.receive_signal(signal, TRANSMISSION_RADIO, frequency) -/datum/radio_frequency/proc/add_listener(obj/device as obj, var/filter as text|null) +/datum/radio_frequency/proc/add_listener(obj/device as obj, filter as text|null) if(!filter) filter = RADIO_DEFAULT //log_admin("add_listener(device=[device],filter=[filter]) frequency=[frequency]") diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 2143fb5ad5c..5110058674a 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -51,14 +51,6 @@ 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" diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index c11eed424da..d05b932b5cc 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -258,6 +258,15 @@ always_place = TRUE cost = 0 +/datum/map_template/ruin/space/syndicate_space_base + name = "Syndicate Space Base" + id = "syndie-space-base" + description = "A secret base researching illegal bioweapons, it is closely guarded by an elite team of syndicate agents." + suffix = "syndie_space_base.dmm" + cost = 0 + always_place = TRUE + allow_duplicates = FALSE + /datum/map_template/ruin/space/syndiecakesfactory id = "Syndiecakes Factory" suffix = "syndiecakesfactory.dmm" diff --git a/code/datums/soullink.dm b/code/datums/soullink.dm deleted file mode 100644 index f5727f1d0d0..00000000000 --- a/code/datums/soullink.dm +++ /dev/null @@ -1,166 +0,0 @@ -/mob/living - var/list/ownedSoullinks //soullinks we are the owner of - var/list/sharedSoullinks //soullinks we are a/the sharer of - -/mob/living/Destroy() - for(var/s in ownedSoullinks) - var/datum/soullink/S = s - S.ownerDies(FALSE) - qdel(s) //If the owner is destroy()'d, the soullink is destroy()'d - ownedSoullinks = null - for(var/s in sharedSoullinks) - var/datum/soullink/S = s - S.sharerDies(FALSE) - S.removeSoulsharer(src) //If a sharer is destroy()'d, they are simply removed - sharedSoullinks = null - return ..() - -//Keeps track of a Mob->Mob (potentially Player->Player) connection -//Can be used to trigger actions on one party when events happen to another -//Eg: shared deaths -//Can be used to form a linked list of mob-hopping -//Does NOT transfer with minds -/datum/soullink - var/mob/living/soulowner - var/mob/living/soulsharer - var/id //Optional ID, for tagging and finding specific instances - -/datum/soullink/Destroy() - if(soulowner) - LAZYREMOVE(soulowner.ownedSoullinks, src) - soulowner = null - if(soulsharer) - LAZYREMOVE(soulsharer.sharedSoullinks, src) - soulsharer = null - return ..() - -/datum/soullink/proc/removeSoulsharer(mob/living/sharer) - if(soulsharer == sharer) - soulsharer = null - LAZYREMOVE(sharer.sharedSoullinks, src) - -//Used to assign variables, called primarily by soullink() -//Override this to create more unique soullinks (Eg: 1->Many relationships) -//Return TRUE/FALSE to return the soullink/null in soullink() -/datum/soullink/proc/parseArgs(mob/living/owner, mob/living/sharer) - if(!owner || !sharer) - return FALSE - soulowner = owner - soulsharer = sharer - LAZYADD(owner.ownedSoullinks, src) - LAZYADD(sharer.sharedSoullinks, src) - return TRUE - -//Runs after /living death() -//Override this for content -/datum/soullink/proc/ownerDies(gibbed, mob/living/owner) - -//Runs after /living death() -//Override this for content -/datum/soullink/proc/sharerDies(gibbed, mob/living/owner) - -//Runs after /living update_revive() -//Override this for content -/datum/soullink/proc/ownerRevives(mob/living/owner) - -//Runs after /living update_revive() -//Override this for content -/datum/soullink/proc/sharerRevives(mob/living/owner) - -//Quick-use helper -/proc/soullink(typepath, ...) - var/datum/soullink/S = new typepath() - if(S.parseArgs(arglist(args.Copy(2, 0)))) - return S - - - -///////////////// -// MULTISHARER // -///////////////// -//Abstract soullink for use with 1 Owner -> Many Sharer setups -/datum/soullink/multisharer - var/list/soulsharers - -/datum/soullink/multisharer/parseArgs(mob/living/owner, list/sharers) - if(!owner || !LAZYLEN(sharers)) - return FALSE - soulowner = owner - soulsharers = sharers - LAZYADD(owner.ownedSoullinks, src) - for(var/l in sharers) - var/mob/living/L = l - LAZYADD(L.sharedSoullinks, src) - return TRUE - -/datum/soullink/multisharer/removeSoulsharer(mob/living/sharer) - LAZYREMOVE(soulsharers, sharer) - - - -///////////////// -// SHARED FATE // -///////////////// -//When the soulowner dies, the soulsharer dies, and vice versa -//This is intended for two players(or AI) and two mobs - -/datum/soullink/sharedfate/ownerDies(gibbed, mob/living/owner) - if(soulsharer) - soulsharer.death(gibbed) - -/datum/soullink/sharedfate/sharerDies(gibbed, mob/living/sharer) - if(soulowner) - soulowner.death(gibbed) - -///////////////// -// Demon Bind // -///////////////// -//When the soulowner dies, the soulsharer dies, but NOT vice versa -//This is intended for two players(or AI) and two mobs - -/datum/soullink/oneway/ownerDies(gibbed, mob/living/owner) - if(soulsharer) - soulsharer.dust(FALSE) - -/datum/soullink/oneway/devilfriend - -///////////////// -// SHARED BODY // -///////////////// -//When the soulsharer dies, they're placed in the soulowner, who remains alive -//If the soulowner dies, the soulsharer is killed and placed into the soulowner (who is still dying) -//This one is intended for one player moving between many mobs - -/datum/soullink/sharedbody/ownerDies(gibbed, mob/living/owner) - if(soulowner && soulsharer) - if(soulsharer.mind) - soulsharer.mind.transfer_to(soulowner) - soulsharer.death(gibbed) - -/datum/soullink/sharedbody/sharerDies(gibbed, mob/living/sharer) - if(soulowner && soulsharer && soulsharer.mind) - soulsharer.mind.transfer_to(soulowner) - - - -////////////////////// -// REPLACEMENT POOL // -////////////////////// -//When the owner dies, one of the sharers is placed in the owner's body, fully healed -//Sort of a "winner-stays-on" soullink -//Gibbing ends it immediately - -/datum/soullink/multisharer/replacementpool/ownerDies(gibbed, mob/living/owner) - if(LAZYLEN(soulsharers) && !gibbed) //let's not put them in some gibs - var/list/souls = shuffle(soulsharers.Copy()) - for(var/l in souls) - var/mob/living/L = l - if(L.stat != DEAD && L.mind) - L.mind.transfer_to(soulowner) - soulowner.revive(TRUE, TRUE) - L.death(FALSE) - -//Lose your claim to the throne! -/datum/soullink/multisharer/replacementpool/sharerDies(gibbed, mob/living/sharer) - removeSoulsharer(sharer) - diff --git a/code/datums/spell.dm b/code/datums/spell.dm index d530c074a78..db668cd609a 100644 --- a/code/datums/spell.dm +++ b/code/datums/spell.dm @@ -38,7 +38,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) spell.remove_ranged_ability(spell.ranged_ability_user) return ..() -/obj/effect/proc_holder/proc/add_ranged_ability(mob/user, var/msg) +/obj/effect/proc_holder/proc/add_ranged_ability(mob/user, msg) if(!user || !user.client) return if(user.ranged_ability && user.ranged_ability != src) @@ -61,7 +61,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) 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(mob/user, var/msg) +/obj/effect/proc_holder/proc/remove_ranged_ability(mob/user, msg) if(!user || (user.ranged_ability && user.ranged_ability != src)) //To avoid removing the wrong ability return user.ranged_ability = null diff --git a/code/datums/spells/area_teleport.dm b/code/datums/spells/area_teleport.dm index 5986da3a412..b931bd9840f 100644 --- a/code/datums/spells/area_teleport.dm +++ b/code/datums/spells/area_teleport.dm @@ -11,7 +11,7 @@ /obj/effect/proc_holder/spell/targeted/area_teleport/perform(list/targets, recharge = 1, mob/living/user = usr) var/thearea = before_cast(targets) - if(!thearea || !cast_check(TRUE, FALSE, user)) + if(!thearea || !cast_check(FALSE, FALSE, user)) revert_cast() return invocation(thearea) diff --git a/code/datums/spells/conjure.dm b/code/datums/spells/conjure.dm index 4c15353e6c4..be716536aff 100644 --- a/code/datums/spells/conjure.dm +++ b/code/datums/spells/conjure.dm @@ -44,9 +44,7 @@ summoned_object.admin_spawned = TRUE if(summon_lifespan) - spawn(summon_lifespan) - if(summoned_object) - qdel(summoned_object) + QDEL_IN(summoned_object, summon_lifespan) else switch(charge_type) if("recharge") diff --git a/code/datums/spells/construct_spells.dm b/code/datums/spells/construct_spells.dm index afc91f922ab..57dd43ad38c 100644 --- a/code/datums/spells/construct_spells.dm +++ b/code/datums/spells/construct_spells.dm @@ -49,7 +49,7 @@ /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone name = "Summon Soulstone" - desc = "This spell reaches into Nar'Sie's realm, summoning one of the legendary fragments across time and space" + desc = "This spell reaches into Redspace, summoning one of the legendary fragments across time and space" action_icon_state = "summonsoulstone" action_background_icon_state = "bg_cult" school = "conjuration" @@ -68,7 +68,7 @@ /obj/effect/proc_holder/spell/aoe_turf/conjure/pylon name = "Cult Pylon" - desc = "This spell conjures a fragile crystal from Nar'Sie's realm. Makes for a convenient light source." + desc = "This spell conjures a fragile crystal from Redspace. Makes for a convenient light source." action_icon_state = "pylon" action_background_icon_state = "bg_cult" school = "conjuration" @@ -118,7 +118,12 @@ /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/do_jaunt(mob/living/target) target.set_light(0) ..() - target.set_light(2, 3, l_color = SSticker.cultdat ? SSticker.cultdat.construct_glow : LIGHT_COLOR_BLOOD_MAGIC) + if(isconstruct(target)) + var/mob/living/simple_animal/hostile/construct/C = target + if(C.holy) + C.set_light(3, 5, LIGHT_COLOR_DARK_BLUE) + else + C.set_light(2, 3, l_color = SSticker.cultdat ? SSticker.cultdat.construct_glow : LIGHT_COLOR_BLOOD_MAGIC) /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_steam(mobloc) return diff --git a/code/datums/spells/devil.dm b/code/datums/spells/devil.dm deleted file mode 100644 index f9e075bdf81..00000000000 --- a/code/datums/spells/devil.dm +++ /dev/null @@ -1,248 +0,0 @@ -/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork - name = "Summon Pitchfork" - desc = "A devil's weapon of choice. Use this to summon/unsummon your pitchfork." - item_type = /obj/item/twohanded/pitchfork/demonic - action_icon_state = "pitchfork" - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork/greater - item_type = /obj/item/twohanded/pitchfork/demonic/greater - -/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork/ascended - item_type = /obj/item/twohanded/pitchfork/demonic/ascended - -/obj/effect/proc_holder/spell/targeted/conjure_item/violin - item_type = /obj/item/instrument/violin/golden - desc = "A devil's instrument of choice. Use this to summon/unsummon your golden violin." - invocation_type = "whisper" - invocation = "I ain't 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/click/summon_contract - name = "Summon infernal contract" - desc = "Skip making a contract by hand, just do it by magic." - invocation_type = "whisper" - invocation = "Just sign on the dotted line." - selection_activated_message = "You prepare a detailed contract. Click on a target to summon the contract in his hands." - selection_deactivated_message = "You archive the contract for later use." - include_user = FALSE - range = 5 - auto_target_single = FALSE // Prevent an accidental contract from summoning - click_radius = -1 // Precision clicking required - allowed_type = /mob/living/carbon - clothes_req = FALSE - school = "conjuration" - charge_max = 150 - cooldown_min = 10 - action_icon_state = "spell_default" - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/click/summon_contract/cast(list/targets, mob/user = usr) - for(var/target in targets) - var/mob/living/carbon/C = target - if(C.mind && user.mind) - if(C.stat == DEAD) - if(user.drop_item()) - var/obj/item/paper/contract/infernal/revive/contract = new(user.loc, C.mind, user.mind) - user.put_in_hands(contract) - else - var/obj/item/paper/contract/infernal/contract - var/contractTypeName = input(user, "What type of contract?") in list (CONTRACT_POWER, CONTRACT_WEALTH, CONTRACT_PRESTIGE, CONTRACT_MAGIC, CONTRACT_KNOWLEDGE, CONTRACT_FRIENDSHIP) //TODO: Refactor this to be less boilerplate-y - switch(contractTypeName) - if(CONTRACT_POWER) - contract = new /obj/item/paper/contract/infernal/power(C.loc, C.mind, user.mind) - if(CONTRACT_WEALTH) - contract = new /obj/item/paper/contract/infernal/wealth(C.loc, C.mind, user.mind) - if(CONTRACT_PRESTIGE) - contract = new /obj/item/paper/contract/infernal/prestige(C.loc, C.mind, user.mind) - if(CONTRACT_MAGIC) - contract = new /obj/item/paper/contract/infernal/magic(C.loc, C.mind, user.mind) - if(CONTRACT_KNOWLEDGE) - contract = new /obj/item/paper/contract/infernal/knowledge(C.loc, C.mind, user.mind) - if(CONTRACT_FRIENDSHIP) - contract = new /obj/item/paper/contract/infernal/friendship(C.loc, C.mind, user.mind) - C.put_in_hands(contract) - else - to_chat(user,"[C] seems to not be sentient. You are unable to summon a contract for them.") - - -/obj/effect/proc_holder/spell/targeted/click/fireball/hellish - name = "Hellfire" - desc = "This spell launches hellfire at the target." - school = "evocation" - charge_max = 80 - clothes_req = FALSE - invocation = "Your very soul will catch fire!" - invocation_type = "shout" - fireball_type = /obj/item/projectile/magic/fireball/infernal - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/click/fireball/hellish/cast(list/targets, mob/living/user = usr) - add_attack_logs(user, targets, "has fired a Hellfire ball", ATKLOG_FEW) - .=..() - - -/obj/effect/proc_holder/spell/targeted/infernal_jaunt - name = "Infernal Jaunt" - desc = "Use hellfire to phase out of existence." - charge_max = 200 - clothes_req = FALSE - selection_type = "range" - range = -1 - cooldown_min = 0 - overlay = null - include_user = TRUE - action_icon_state = "jaunt" - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/infernal_jaunt/cast(list/targets, mob/living/user = usr) - if(istype(user)) - if(istype(user.loc, /obj/effect/dummy/slaughter)) - var/continuing = 0 - if(istype(get_area(user), /area/shuttle)) // Can always phase in in a shuttle. - continuing = TRUE - 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 = TRUE - break - if(continuing) - to_chat(user,"You are now phasing in.") - if(do_mob(user,user,150)) - user.infernalphasein() - else - to_chat(user,"You can only re-appear near a potential signer or on a shuttle.") - revert_cast() - return ..() - else - user.notransform = TRUE - user.fakefire() - to_chat(user,"You begin to phase back into sinful flames.") - if(do_mob(user,user,150)) - user.infernalphaseout() - else - to_chat(user,"You must remain still while exiting.") - user.ExtinguishMob() - start_recharge() - return - revert_cast() - - -/mob/living/proc/infernalphaseout() - dust_animation() - visible_message("[src] disappears in a flashfire!") - playsound(get_turf(src), 'sound/misc/enter_blood.ogg', 100, 1, -1) - var/obj/effect/dummy/slaughter/s_holder = new(loc) - ExtinguishMob() - forceMove(s_holder) - holder = s_holder - notransform = FALSE - fakefireextinguish() - -/mob/living/proc/infernalphasein() - if(notransform) - to_chat(src,"You're too busy to jaunt in.") - return 0 - fakefire() - forceMove(get_turf(src)) - visible_message("[src] appears in a firey blaze!") - playsound(get_turf(src), 'sound/misc/exit_blood.ogg', 100, 1, -1) - spawn(15) - fakefireextinguish(TRUE) - -/obj/effect/proc_holder/spell/targeted/sintouch - name = "Sin Touch" - desc = "Subtly encourage someone to sin." - charge_max = 1800 - clothes_req = FALSE - selection_type = "range" - range = 2 - cooldown_min = 0 - overlay = null - include_user = FALSE - action_icon_state = "sintouch" - action_background_icon_state = "bg_demon" - random_target = TRUE - random_target_priority = TARGET_RANDOM - max_targets = 3 - invocation = "TASTE SIN AND INDULGE!!" - invocation_type = "shout" - -/obj/effect/proc_holder/spell/targeted/sintouch/ascended - name = "Greater sin touch" - charge_max = 100 - range = 7 - max_targets = 10 - -/obj/effect/proc_holder/spell/targeted/sintouch/cast(list/targets, mob/living/user = usr) - for(var/mob/living/carbon/human/H in targets) - if(!H.mind) - continue - for(var/datum/objective/sintouched/A in H.mind.objectives) - continue - 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 = TRUE - range = -1 - clothes_req = FALSE - - 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 - var/list/funky_turfs = RANGE_TURFS(1, user) - for(var/turf/T in funky_turfs) - if(T.density) - to_chat(user, "You're too close to a wall.") - return - dancefloor_exists = TRUE - var/i = 1 - 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/simulated/floor/light/colour_cycle/dancefloor_a : /turf/simulated/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 -*/ diff --git a/code/datums/spells/devil_boons.dm b/code/datums/spells/devil_boons.dm deleted file mode 100644 index 5746fd9c2d2..00000000000 --- a/code/datums/spells/devil_boons.dm +++ /dev/null @@ -1,73 +0,0 @@ -/obj/effect/proc_holder/spell/targeted/summon_wealth - name = "Summon wealth" - desc = "The reward for selling your soul." - invocation_type = "none" - include_user = 1 - range = -1 - clothes_req = 0 - school = "conjuration" - charge_max = 100 - cooldown_min = 10 - action_icon_state = "moneybag" - - -/obj/effect/proc_holder/spell/targeted/summon_wealth/cast(list/targets, mob/user = usr) - for(var/mob/living/carbon/C in targets) - if(user.drop_item()) - var/obj/item = pick( - new /obj/item/coin/gold(user.loc), - new /obj/item/coin/diamond(user.loc), - new /obj/item/coin/silver(user.loc), - new /obj/item/stack/sheet/mineral/gold(user.loc), - new /obj/item/stack/sheet/mineral/silver(user.loc), - new /obj/item/stack/sheet/mineral/diamond(user.loc), - new /obj/item/stack/spacecash/c1000(user.loc)) - C.put_in_hands(item) - -/obj/effect/proc_holder/spell/targeted/view_range - name = "Distant vision" - desc = "The reward for selling your soul." - invocation_type = "none" - include_user = 1 - range = -1 - clothes_req = 0 - charge_max = 50 - cooldown_min = 10 - action_icon_state = "camera_jump" - var/ranges = list(7,8,9,10/*,11,12*/) - -/obj/effect/proc_holder/spell/targeted/view_range/cast(list/targets, mob/user = usr) - for(var/mob/C in targets) - if(!C.client) - continue - C.client.view = input("Select view range:", "Range", 4) in ranges - -/obj/effect/proc_holder/spell/targeted/summon_friend - name = "Summon Friend" - desc = "The reward for selling your soul." - invocation_type = "none" - include_user = 1 - range = -1 - clothes_req = 0 - charge_max = 50 - cooldown_min = 10 - action_icon_state = "sacredflame" - var/mob/living/friend - var/obj/effect/mob_spawn/human/demonic_friend/friendShell - -/obj/effect/proc_holder/spell/targeted/summon_friend/cast(list/targets, mob/user = usr) - if(!QDELETED(friend)) - to_chat(friend, "Your master has deemed you a poor friend. Your durance in hell will now resume.") - to_chat(user, "You banish your friend back to whence [friend.p_they()] came.") - friend.dust() - qdel(friendShell) - return - if(!QDELETED(friendShell)) - qdel(friendShell) - return - for(var/C in targets) - var/mob/living/L = C - friendShell = new /obj/effect/mob_spawn/human/demonic_friend(L.loc, L.mind, src) - -/obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/robeless - clothes_req = FALSE diff --git a/code/datums/spells/knock.dm b/code/datums/spells/knock.dm index e4c652ae1d3..072bbf244e2 100644 --- a/code/datums/spells/knock.dm +++ b/code/datums/spells/knock.dm @@ -16,19 +16,23 @@ /obj/effect/proc_holder/spell/aoe_turf/knock/cast(list/targets, mob/user = usr) for(var/turf/T in targets) for(var/obj/machinery/door/door in T.contents) - spawn(1) - if(istype(door,/obj/machinery/door/airlock/hatch/gamma)) - return - if(istype(door,/obj/machinery/door/airlock)) - var/obj/machinery/door/airlock/A = door - A.unlock(1) //forced because it's magic! - door.open() + INVOKE_ASYNC(src, .proc/try_open_airlock, door) for(var/obj/structure/closet/C in T.contents) - spawn(1) - if(istype(C, /obj/structure/closet/secure_closet)) - var/obj/structure/closet/secure_closet/SC = C - SC.locked = 0 - C.open() + INVOKE_ASYNC(src, .proc/try_open_closet, C) + +/obj/effect/proc_holder/spell/aoe_turf/knock/proc/try_open_airlock(obj/machinery/door/door) + if(istype(door, /obj/machinery/door/airlock/hatch/gamma)) + return + if(istype(door, /obj/machinery/door/airlock)) + var/obj/machinery/door/airlock/A = door + A.unlock(TRUE) //forced because it's magic! + door.open() + +/obj/effect/proc_holder/spell/aoe_turf/knock/proc/try_open_closet(obj/structure/closet/C) + if(istype(C, /obj/structure/closet/secure_closet)) + var/obj/structure/closet/secure_closet/SC = C + SC.locked = FALSE + C.open() /obj/effect/proc_holder/spell/aoe_turf/knock/greater name = "Greater Knock" diff --git a/code/datums/spells/shapeshift.dm b/code/datums/spells/shapeshift.dm index 7b72b5a42c4..1095457278f 100644 --- a/code/datums/spells/shapeshift.dm +++ b/code/datums/spells/shapeshift.dm @@ -73,14 +73,22 @@ /obj/effect/proc_holder/spell/targeted/shapeshift/dragon name = "Dragon Form" - desc = "Take on the shape a lesser ash drake." - invocation = "RAAAAAAAAWR!" + desc = "Take on the shape a lesser ash drake after a short delay." + invocation = "*scream" shapeshift_type = /mob/living/simple_animal/hostile/megafauna/dragon/lesser current_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser) current_casters = list() possible_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser) +/obj/effect/proc_holder/spell/targeted/shapeshift/dragon/Shapeshift(mob/living/caster) + caster.visible_message("[caster] screams in agony as bones and claws erupt out of their flesh!", + "You begin channeling the transformation.") + if(!do_after(caster, 5 SECONDS, FALSE, caster)) + to_chat(caster, "You lose concentration of the spell!") + return + return ..() + /obj/effect/proc_holder/spell/targeted/shapeshift/bats name = "Bat Form" desc = "Take on the shape of a swarm of bats." diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm index a954f72cb13..acaeeb41487 100644 --- a/code/datums/spells/wizard.dm +++ b/code/datums/spells/wizard.dm @@ -374,7 +374,7 @@ for(var/am in thrownatoms) var/atom/movable/AM = am - if(AM == user || AM.anchored) + if(AM == user || AM.anchored || AM.move_resist == INFINITY) continue throwtarget = get_edge_target_turf(user, get_dir(user, get_step_away(AM, user))) diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index 2580b1c9935..fa392b4082e 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -67,6 +67,9 @@ owner = null qdel(src) +/datum/status_effect/proc/before_remove() //! Called before being removed; returning FALSE will cancel removal + return TRUE + /datum/status_effect/proc/refresh() var/original_duration = initial(duration) if(original_duration == -1) @@ -118,12 +121,13 @@ S1 = new effect(arguments) . = 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 +/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 + var/list/arguments = args.Copy(2) if(status_effects) var/datum/status_effect/S1 = effect for(var/datum/status_effect/S in status_effects) - if(initial(S1.id) == S.id) + if(initial(S1.id) == S.id && S.before_remove(arguments)) qdel(S) . = TRUE @@ -205,6 +209,8 @@ if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occuring if changing from above threshold to still above threshold threshold_crossed = TRUE on_threshold_cross() + if(consumed_on_threshold) + return else if(stacks < stack_threshold && threshold_crossed) threshold_crossed = FALSE //resets threshold effect if we fall below threshold so threshold effect can trigger again on_threshold_drop() @@ -220,8 +226,9 @@ qdel(src) //deletes status if stacks fall under one /datum/status_effect/stacking/on_creation(mob/living/new_owner, stacks_to_apply) - ..() - add_stacks(stacks_to_apply) + . = ..() + if(.) + add_stacks(stacks_to_apply) /datum/status_effect/stacking/on_apply() if(!can_have_status()) @@ -246,3 +253,22 @@ owner.underlays -= status_underlay QDEL_NULL(status_overlay) return ..() + +/// Status effect from multiple sources, when all sources are removed, so is the effect +/datum/status_effect/grouped + status_type = STATUS_EFFECT_MULTIPLE //! Adds itself to sources and destroys itself if one exists already, there are never multiple + var/list/sources = list() + +/datum/status_effect/grouped/on_creation(mob/living/new_owner, source) + var/datum/status_effect/grouped/existing = new_owner.has_status_effect(type) + if(existing) + existing.sources |= source + qdel(src) + return FALSE + else + sources |= source + return ..() + +/datum/status_effect/grouped/before_remove(source) + sources -= source + return !length(sources) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 6a25e22b985..3a856a8d130 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -18,7 +18,7 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY_ENGINEER,SUPPLY_MEDICAL,SUPPLY_SCIENCE,SUPPLY_ORGANIC,SUPPLY_MATERIALS,SUPPLY_MISC,SUPPLY_VEND)) -/proc/get_supply_group_name(var/cat) +/proc/get_supply_group_name(cat) switch(cat) if(SUPPLY_EMERGENCY) return "Emergency" diff --git a/code/datums/tgs_event_handler.dm b/code/datums/tgs_event_handler.dm index df140ad6ff6..9dd5b624115 100644 --- a/code/datums/tgs_event_handler.dm +++ b/code/datums/tgs_event_handler.dm @@ -1,39 +1,53 @@ +/// Will our restart be slower? +GLOBAL_VAR_INIT(slower_restart, FALSE) + +/proc/server_announce_global(announcement_text) + to_chat(world, "\[Server] [announcement_text]") + +/proc/server_announce_adminonly(announcement_text) + to_chat(GLOB.admins, "\[Server] \[Admin] [announcement_text]") + /datum/tgs_event_handler/impl var/datum/timedevent/reattach_timer + /datum/tgs_event_handler/impl/HandleEvent(event_code, ...) switch(event_code) if(TGS_EVENT_REBOOT_MODE_CHANGE) var/list/reboot_mode_lookup = list ("[TGS_REBOOT_MODE_NORMAL]" = "be normal", "[TGS_REBOOT_MODE_SHUTDOWN]" = "shutdown the server", "[TGS_REBOOT_MODE_RESTART]" = "hard restart the server") var/old_reboot_mode = args[2] var/new_reboot_mode = args[3] - message_admins("\[Server]\[Info] Reboot will no longer [reboot_mode_lookup["[old_reboot_mode]"]], it will instead [reboot_mode_lookup["[new_reboot_mode]"]]") + if(new_reboot_mode == TGS_REBOOT_MODE_SHUTDOWN) + GLOB.slower_restart = TRUE + else + GLOB.slower_restart = FALSE + server_announce_adminonly("\[Info] Reboot will no longer [reboot_mode_lookup["[old_reboot_mode]"]], it will instead [reboot_mode_lookup["[new_reboot_mode]"]]") if(TGS_EVENT_PORT_SWAP) - message_admins("\[Server]\[Info] Changing port from [world.port] to [args[2]]") + server_announce_adminonly("\[Info] Changing port from [world.port] to [args[2]]") if(TGS_EVENT_INSTANCE_RENAMED) - message_admins("\[Server]\[Info] Instance renamed to from [world.TgsInstanceName()] to [args[2]]") + server_announce_adminonly("\[Info] Instance renamed to from [world.TgsInstanceName()] to [args[2]]") if(TGS_EVENT_COMPILE_START) - message_admins("\[Server]\[Info] Code deployment started, new game version incoming next round...") + server_announce_adminonly("\[Info] Code deployment started, new game version incoming next round...") if(TGS_EVENT_COMPILE_CANCELLED) - message_admins("\[Server]\[Warning] Code deployment cancelled!") + server_announce_adminonly("\[Warning] Code deployment cancelled! Consult a maintainer/host to see if this was intentional!") if(TGS_EVENT_COMPILE_FAILURE) - message_admins("\[Server]\[Error] Code deployment failed! Inform a maintainer/host immediately!") + server_announce_adminonly("\[Error] Code deployment failed! Inform a maintainer/host immediately!") if(TGS_EVENT_DEPLOYMENT_COMPLETE) - message_admins("\[Server]\[Info] Code deployment complete!") - to_chat(world, "Server updated, changes will be applied on the next round...") + server_announce_adminonly("\[Info] Code deployment complete!") + server_announce_global("Server update complete. Changes will be applied on the next round.") if(TGS_EVENT_WATCHDOG_DETACH) - message_admins("\[Server]\[Info] Server manager restarting...") + server_announce_adminonly("\[Info] Server manager restarting...") reattach_timer = addtimer(CALLBACK(src, .proc/LateOnReattach), 1 MINUTES, TIMER_STOPPABLE) if(TGS_EVENT_WATCHDOG_REATTACH) var/datum/tgs_version/old_version = world.TgsVersion() var/datum/tgs_version/new_version = args[2] if(!old_version.Equals(new_version)) - message_admins("\[Server]\[Info] Manager back online. TGS has been updated to v[new_version.deprefixed_parameter]") + server_announce_adminonly("\[Info] Server manager back online. TGS has been updated to v[new_version.deprefixed_parameter]") else - message_admins("\[Server]\[Info] Manager back online") + server_announce_adminonly("\[Info] Server manager back online") if(reattach_timer) deltimer(reattach_timer) reattach_timer = null /datum/tgs_event_handler/impl/proc/LateOnReattach() - message_admins("\[Server]\[Warning] TGS hasn't notified us of it coming back for a full minute! Is there a problem?") + server_announce_adminonly("\[Warning] TGS hasn't notified us of it coming back for a full minute! Is there a problem?") diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 8175f4353cc..61c1e8df625 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -1,6 +1,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) -/proc/get_uplink_items(var/job = null) +/proc/get_uplink_items(job = null) var/list/uplink_items = list() var/list/sales_items = list() var/newreference = 1 @@ -82,7 +82,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) var/refund_path = null // Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites). var/refund_amount // specified refund amount in case there needs to be a TC penalty for refunds. -/datum/uplink_item/proc/spawn_item(var/turf/loc, var/obj/item/uplink/U) +/datum/uplink_item/proc/spawn_item(turf/loc, obj/item/uplink/U) if(hijack_only && !(usr.mind.special_role == SPECIAL_ROLE_NUKEOPS))//nukies get items that regular traitors only get with hijack. If a hijack-only item is not for nukies, then exclude it via the gamemode list. if(!(locate(/datum/objective/hijack) in usr.mind.objectives)) @@ -103,7 +103,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = replacetext(initial(temp.desc), "\n", "
") return desc -/datum/uplink_item/proc/buy(var/obj/item/uplink/hidden/U, var/mob/user) +/datum/uplink_item/proc/buy(obj/item/uplink/hidden/U, mob/user) if(!istype(U)) return 0 @@ -952,6 +952,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/toy/carpplushie/dehy_carp cost = 2 +/datum/uplink_item/stealthy_weapons/combat_plus + name = "Combat Gloves Plus" + desc = "Combat gloves with installed nanochips that teach you Krav Maga when worn, great as a cheap backup weapon. Warning, the nanochips will override any other fighting styles such as CQC." + reference = "CGP" + item = /obj/item/clothing/gloves/color/black/krav_maga/combat + cost = 5 + gamemodes = list(/datum/game_mode/nuclear) + // GRENADES AND EXPLOSIVES /datum/uplink_item/explosives diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm index a02ee54d6fa..b62f0f8763b 100644 --- a/code/defines/procs/announce.dm +++ b/code/defines/procs/announce.dm @@ -14,37 +14,37 @@ GLOBAL_DATUM_INIT(event_announcement, /datum/announcement/priority/command/event var/admin_announcement = 0 // Admin announcements are received regardless of being in range of a radio, unless you're in the lobby to prevent metagaming var/language = "Galactic Common" -/datum/announcement/New(var/do_log = 0, var/new_sound = null, var/do_newscast = 0) +/datum/announcement/New(do_log = 0, new_sound = null, do_newscast = 0) sound = new_sound log = do_log newscast = do_newscast -/datum/announcement/minor/New(var/do_log = 0, var/new_sound = sound('sound/misc/notice2.ogg'), var/do_newscast = 0) +/datum/announcement/minor/New(do_log = 0, new_sound = sound('sound/misc/notice2.ogg'), do_newscast = 0) ..(do_log, new_sound, do_newscast) title = "Attention" announcement_type = "Minor Announcement" -/datum/announcement/priority/New(var/do_log = 1, var/new_sound = sound('sound/misc/notice2.ogg'), var/do_newscast = 0) +/datum/announcement/priority/New(do_log = 1, new_sound = sound('sound/misc/notice2.ogg'), do_newscast = 0) ..(do_log, new_sound, do_newscast) title = "Priority Announcement" announcement_type = "Priority Announcement" -/datum/announcement/priority/command/New(var/do_log = 1, var/new_sound = sound('sound/misc/notice2.ogg'), var/do_newscast = 0) +/datum/announcement/priority/command/New(do_log = 1, new_sound = sound('sound/misc/notice2.ogg'), do_newscast = 0) ..(do_log, new_sound, do_newscast) admin_announcement = 1 title = "[command_name()] Update" announcement_type = "[command_name()] Update" -/datum/announcement/priority/command/event/New(var/do_log = 1, var/new_sound = sound('sound/misc/notice2.ogg'), var/do_newscast = 0) +/datum/announcement/priority/command/event/New(do_log = 1, new_sound = sound('sound/misc/notice2.ogg'), do_newscast = 0) ..(do_log, new_sound, do_newscast) admin_announcement = 0 -/datum/announcement/priority/security/New(var/do_log = 1, var/new_sound = sound('sound/misc/notice2.ogg'), var/do_newscast = 0) +/datum/announcement/priority/security/New(do_log = 1, new_sound = sound('sound/misc/notice2.ogg'), do_newscast = 0) ..(do_log, new_sound, do_newscast) title = "Security Announcement" announcement_type = "Security Announcement" -/datum/announcement/proc/Announce(var/message as text, var/new_title = "", var/new_sound = null, var/do_newscast = newscast, var/msg_sanitized = 0, var/from, var/msg_language) +/datum/announcement/proc/Announce(message as text, new_title = "", new_sound = null, do_newscast = newscast, msg_sanitized = 0, from, msg_language) if(!message) return @@ -76,7 +76,7 @@ GLOBAL_DATUM_INIT(event_announcement, /datum/announcement/priority/command/event Sound(message_sound, combined_receivers[1] + combined_receivers[2]) Log(message, message_title) -/datum/announcement/proc/Get_Receivers(var/datum/language/message_language) +/datum/announcement/proc/Get_Receivers(datum/language/message_language) var/list/receivers = list() var/list/garbled_receivers = list() @@ -161,7 +161,7 @@ GLOBAL_DATUM_INIT(event_announcement, /datum/announcement/priority/command/event news.can_be_redacted = 0 announce_newscaster_news(news) -/datum/announcement/proc/Sound(var/message_sound, var/receivers) +/datum/announcement/proc/Sound(message_sound, receivers) if(!message_sound) return for(var/mob/M in receivers) @@ -172,6 +172,6 @@ GLOBAL_DATUM_INIT(event_announcement, /datum/announcement/priority/command/event log_game("[key_name(usr)] has made \a [announcement_type]: [message_title] - [message] - [announcer]") message_admins("[key_name_admin(usr)] has made \a [announcement_type].", 1) -/proc/GetNameAndAssignmentFromId(var/obj/item/card/id/I) +/proc/GetNameAndAssignmentFromId(obj/item/card/id/I) // Format currently matches that of newscaster feeds: Registered Name (Assigned Rank) return I.assignment ? "[I.registered_name] ([I.assignment])" : I.registered_name diff --git a/code/defines/procs/radio.dm b/code/defines/procs/radio.dm index 7c0dc4de7f8..c0f7716557e 100644 --- a/code/defines/procs/radio.dm +++ b/code/defines/procs/radio.dm @@ -3,7 +3,7 @@ #define TELECOMMS_RECEPTION_RECEIVER 2 #define TELECOMMS_RECEPTION_BOTH 3 -/proc/get_frequency_name(var/display_freq) +/proc/get_frequency_name(display_freq) var/freq_text // the name of the channel diff --git a/code/defines/procs/records.dm b/code/defines/procs/records.dm index a74680ec578..277dae36f1a 100644 --- a/code/defines/procs/records.dm +++ b/code/defines/procs/records.dm @@ -25,7 +25,7 @@ qdel(dummy) return G -/proc/CreateSecurityRecord(var/name as text, var/id as text) +/proc/CreateSecurityRecord(name as text, id as text) var/datum/data/record/R = new /datum/data/record() R.fields["name"] = name R.fields["id"] = id diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index d2485e24357..6565779e14b 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -375,7 +375,7 @@ #define ENVIRON 3 */ -/area/proc/powered(var/chan) // return true if the area has power to given channel +/area/proc/powered(chan) // return true if the area has power to given channel if(!requires_power) return 1 @@ -405,7 +405,7 @@ SEND_SIGNAL(src, COMSIG_AREA_POWER_CHANGE) updateicon() -/area/proc/usage(var/chan) +/area/proc/usage(chan) var/used = 0 switch(chan) if(LIGHT) @@ -439,7 +439,7 @@ used_light = 0 used_environ = 0 -/area/proc/use_power(var/amount, var/chan) +/area/proc/use_power(amount, chan) switch(chan) if(EQUIP) used_equip += amount @@ -448,7 +448,7 @@ if(ENVIRON) used_environ += amount -/area/proc/use_battery_power(var/amount, var/chan) +/area/proc/use_battery_power(amount, chan) switch(chan) if(EQUIP) used_equip += amount @@ -488,14 +488,14 @@ else if(L && L.client && !(L.client.prefs.sound & SOUND_BUZZ)) L.client.ambience_playing = FALSE -/area/proc/gravitychange(var/gravitystate = 0, var/area/A) +/area/proc/gravitychange(gravitystate = 0, area/A) A.has_gravity = gravitystate if(gravitystate) for(var/mob/living/carbon/human/M in A) thunk(M) -/area/proc/thunk(var/mob/living/carbon/human/M) +/area/proc/thunk(mob/living/carbon/human/M) if(istype(M,/mob/living/carbon/human/)) // Only humans can wear magboots, so we give them a chance to. if(istype(M.shoes, /obj/item/clothing/shoes/magboots) && (M.shoes.flags & NOSLIP)) return diff --git a/code/game/area/areas/depot-areas.dm b/code/game/area/areas/depot-areas.dm index fa667e73bfa..ec1ba64deec 100644 --- a/code/game/area/areas/depot-areas.dm +++ b/code/game/area/areas/depot-areas.dm @@ -314,7 +314,7 @@ for(var/obj/machinery/computer/syndicate_depot/C in src) C.security_lockout = FALSE -/area/syndicate_depot/core/proc/set_emergency_access(var/openaccess) +/area/syndicate_depot/core/proc/set_emergency_access(openaccess) for(var/obj/machinery/door/airlock/A in src) if(istype(A, /obj/machinery/door/airlock/hatch/syndicate/vault)) continue diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index 534ea820006..c267bbeffae 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -37,45 +37,6 @@ /area/ruin/powered/seedvault icon_state = "dk_yellow" -/area/ruin/unpowered/syndicate_lava_base - name = "Secret Base" - icon_state = "dk_yellow" - ambientsounds = HIGHSEC_SOUNDS - report_alerts = FALSE - hide_attacklogs = TRUE - -/area/ruin/unpowered/syndicate_lava_base/engineering - name = "Syndicate Lavaland Engineering" - -/area/ruin/unpowered/syndicate_lava_base/medbay - name = "Syndicate Lavaland Medbay" - -/area/ruin/unpowered/syndicate_lava_base/arrivals - name = "Syndicate Lavaland Arrivals" - -/area/ruin/unpowered/syndicate_lava_base/bar - name = "Syndicate Lavaland Bar" - -/area/ruin/unpowered/syndicate_lava_base/main - name = "Syndicate Lavaland Primary Hallway" - -/area/ruin/unpowered/syndicate_lava_base/cargo - name = "Syndicate Lavaland Cargo Bay" - -/area/ruin/unpowered/syndicate_lava_base/chemistry - name = "Syndicate Lavaland Chemistry" - -/area/ruin/unpowered/syndicate_lava_base/virology - name = "Syndicate Lavaland Virology" - -/area/ruin/unpowered/syndicate_lava_base/testlab - name = "Syndicate Lavaland Experimentation Lab" - -/area/ruin/unpowered/syndicate_lava_base/dormitories - name = "Syndicate Lavaland Dormitories" - -/area/ruin/unpowered/syndicate_lava_base/telecomms - name = "Syndicate Lavaland Telecommunications" //Xeno Nest diff --git a/code/game/area/areas/ruins/syndicate_space_base.dm b/code/game/area/areas/ruins/syndicate_space_base.dm new file mode 100644 index 00000000000..f26eb56fa86 --- /dev/null +++ b/code/game/area/areas/ruins/syndicate_space_base.dm @@ -0,0 +1,50 @@ +/area/ruin/unpowered/syndicate_space_base + name = "Secret Base" + icon_state = "dk_yellow" + ambientsounds = HIGHSEC_SOUNDS + report_alerts = FALSE + hide_attacklogs = TRUE + +/area/ruin/unpowered/syndicate_space_base/engineering + name = "Syndicate Space Base Engineering" + icon_state = "engine" + +/area/ruin/unpowered/syndicate_space_base/medbay + name = "Syndicate Space Base Medbay" + icon_state = "medbay2" + +/area/ruin/unpowered/syndicate_space_base/arrivals + name = "Syndicate Space Base Arrivals" + icon_state = "teleporter" + + +/area/ruin/unpowered/syndicate_space_base/bar + name = "Syndicate Space Base Bar" + icon_state = "bar" + +/area/ruin/unpowered/syndicate_space_base/main + name = "Syndicate Space Base Primary Hallway" + +/area/ruin/unpowered/syndicate_space_base/cargo + name = "Syndicate Space Base Cargo Bay" + icon_state = "storage" + +/area/ruin/unpowered/syndicate_space_base/chemistry + name = "Syndicate Space Base Chemistry" + icon_state = "chem" + +/area/ruin/unpowered/syndicate_space_base/virology + name = "Syndicate Space Base Virology" + icon_state = "virology" + +/area/ruin/unpowered/syndicate_space_base/testlab + name = "Syndicate Space Base Experimentation Lab" + icon_state = "toxtest" + +/area/ruin/unpowered/syndicate_space_base/dormitories + name = "Syndicate Space Base Dormitories" + icon_state = "dorms" + +/area/ruin/unpowered/syndicate_space_base/telecomms + name = "Syndicate Space Base Telecommunications" + icon_state = "tcomsatcham" diff --git a/code/game/area/ss13_areas.dm b/code/game/area/ss13_areas.dm index 736a6d84447..36b3461bd6f 100644 --- a/code/game/area/ss13_areas.dm +++ b/code/game/area/ss13_areas.dm @@ -1108,7 +1108,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station sound_environment = SOUND_AREA_SMALL_ENCLOSED /area/engine/equipmentstorage - name = "\improper Engineering Equipment Storage" + name = "Engineering Equipment Storage" icon_state = "storage" sound_environment = SOUND_AREA_SMALL_ENCLOSED @@ -1260,7 +1260,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/medical/biostorage - name = "\improper Medical Storage" + name = "Medical Storage" icon_state = "medbaysecstorage" /area/medical/reception @@ -1285,19 +1285,19 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "patientsward" /area/medical/patient_a - name = "\improper Isolation A" + name = "Isolation A" icon_state = "medbayisoa" /area/medical/patient_b - name = "\improper Isolation B" + name = "Isolation B" icon_state = "medbayisob" /area/medical/patient_c - name = "\improper Isolation C" + name = "Isolation C" icon_state = "medbayisoc" /area/medical/iso_access - name = "\improper Isolation Access" + name = "Isolation Access" icon_state = "medbayisoaccess" /area/medical/cmo @@ -1305,15 +1305,15 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "CMO" /area/medical/cmostore - name = "\improper Medical Secondary Storage" + name = "Medical Secondary Storage" icon_state = "medbaysecstorage" /area/medical/robotics - name = "\improper Robotics" + name = "Robotics" icon_state = "medresearch" /area/medical/research - name = "\improper Medical Research" + name = "Medical Research" icon_state = "medresearch" /area/medical/research_shuttle_dock @@ -1321,7 +1321,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "medresearch" /area/medical/virology - name = "\improper Virology" + name = "Virology" icon_state = "virology" /area/medical/virology/lab @@ -1336,7 +1336,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station sound_environment = SOUND_AREA_SMALL_ENCLOSED /area/medical/chemistry - name = "\improper Chemistry" + name = "Chemistry" icon_state = "chem" /area/medical/surgery @@ -1344,19 +1344,19 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "surgery" /area/medical/surgery1 - name = "\improper Surgery 1" + name = "Surgery 1" icon_state = "surgery1" /area/medical/surgery2 - name = "\improper Surgery 2" + name = "Surgery 2" icon_state = "surgery2" /area/medical/surgeryobs - name = "\improper Surgery Observation" + name = "Surgery Observation" icon_state = "surgery" /area/medical/cryo - name = "\improper Cryogenics" + name = "Cryogenics" icon_state = "cryo" /area/medical/exam_room @@ -1376,7 +1376,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "exam_room" /area/medical/paramedic - name = "\improper Paramedic" + name = "Paramedic" icon_state = "medbay" //Security @@ -1441,22 +1441,22 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "brig" /area/security/execution - name = "\improper Execution" + name = "Execution" icon_state = "execution" can_get_auto_cryod = FALSE /area/security/processing - name = "\improper Prisoner Processing" + name = "Prisoner Processing" icon_state = "prisonerprocessing" can_get_auto_cryod = FALSE /area/security/interrogation - name = "\improper Interrogation" + name = "Interrogation" icon_state = "interrogation" can_get_auto_cryod = FALSE /area/security/seceqstorage - name = "\improper Security Equipment Storage" + name = "Security Equipment Storage" icon_state = "securityequipmentstorage" /area/security/interrogationhallway @@ -1469,7 +1469,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station sound_environment = SOUND_AREA_LARGE_ENCLOSED /area/security/interrogationobs - name = "\improper Interrogation Observation" + name = "Interrogation Observation" icon_state = "security" can_get_auto_cryod = FALSE @@ -1530,11 +1530,11 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "nuke_storage" /area/security/customs - name = "\improper Customs" + name = "Customs" icon_state = "checkpoint1" /area/security/customs2 - name = "\improper Customs" + name = "Customs" icon_state = "security" /area/security/checkpoint @@ -1601,7 +1601,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "mining" /area/quartermaster/miningstorage - name = "\improper Mining Storage" + name = "Mining Storage" icon_state = "green" /area/quartermaster/mechbay @@ -1614,7 +1614,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station sound_environment = SOUND_AREA_SMALL_ENCLOSED /area/hydroponics - name = "\improper Hydroponics" + name = "Hydroponics" icon_state = "hydro" sound_environment = SOUND_AREA_STANDARD_STATION @@ -1629,7 +1629,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station sound_environment = SOUND_AREA_STANDARD_STATION /area/toxins/lab - name = "\improper Research and Development" + name = "Research and Development" icon_state = "toxlab" /area/toxins/hallway @@ -1650,7 +1650,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station xenobiology_compatible = TRUE /area/toxins/xenobiology/xenoflora_storage - name = "\improper Xenoflora Storage" + name = "Xenoflora Storage" icon_state = "toxlab" /area/toxins/xenobiology/xenoflora @@ -1658,7 +1658,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "toxlab" /area/toxins/storage - name = "\improper Toxins Storage" + name = "Toxins Storage" icon_state = "toxstorage" /area/toxins/test_area @@ -1671,7 +1671,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "toxmix" /area/toxins/launch - name = "Toxins Launch Room" + name = "\improper Toxins Launch Room" icon_state = "toxlaunch" /area/toxins/misc_lab @@ -1739,7 +1739,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "auxstorage" /area/storage/office - name = "\improper Office Supplies" + name = "Office Supplies" icon_state = "office_supplies" // ENGIE OUTPOST diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 73cbcb3f7b0..583daa7ade3 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -132,7 +132,7 @@ // Used in shuttle movement and AI eye stuff. // Primarily used to notify objects being moved by a shuttle/bluespace fuckup. -/atom/movable/proc/setLoc(var/T, var/teleported=0) +/atom/movable/proc/setLoc(T, teleported=0) loc = T /atom/movable/Move(atom/newloc, direct = 0, movetime) @@ -308,7 +308,7 @@ //Return 0 to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting //Mobs should return 1 if they should be able to move of their own volition, see client/Move() in mob_movement.dm //movement_dir == 0 when stopping or any dir when trying to move -/atom/movable/proc/Process_Spacemove(var/movement_dir = 0) +/atom/movable/proc/Process_Spacemove(movement_dir = 0) if(has_gravity(src)) return 1 diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 3692f725361..284b130f803 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -181,11 +181,18 @@ var/dead = stat == DEAD || HAS_TRAIT(src, TRAIT_FAKEDEATH) // To the right of health bar if(dead) - var/revivable = timeofdeath && (round(world.time - timeofdeath) < DEFIB_TIME_LIMIT) + var/mob/dead/observer/ghost = get_ghost(TRUE) + var/revivable + if(ghost && !ghost.can_reenter_corpse) // DNR or AntagHUD + revivable = FALSE + else if(timeofdeath && (round(world.time - timeofdeath) < DEFIB_TIME_LIMIT)) + revivable = TRUE + if(revivable) holder.icon_state = "hudflatline" else holder.icon_state = "huddead" + else if(HAS_TRAIT(src, TRAIT_XENO_HOST)) holder.icon_state = "hudxeno" else if(B && B.controlling) diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index b0323825c70..2dfe4d660c9 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -14,6 +14,7 @@ GLOBAL_LIST_INIT(assigned_mutation_blocks, new(DNA_SE_LENGTH)) // Used to determine what each block means (admin hax and species stuff on /vg/, mostly) GLOBAL_LIST_INIT(assigned_blocks, new(DNA_SE_LENGTH)) +/// Assoc list. Key = type of the mutation, value = the mutation GLOBAL_LIST_EMPTY(dna_mutations) GLOBAL_LIST_EMPTY(good_blocks) diff --git a/code/game/dna/dna2_domutcheck.dm b/code/game/dna/dna2_domutcheck.dm index d82e652dbb7..8da02df0806 100644 --- a/code/game/dna/dna2_domutcheck.dm +++ b/code/game/dna/dna2_domutcheck.dm @@ -3,7 +3,8 @@ // M: Mob to mess with // flags: See below, bitfield. /proc/domutcheck(mob/living/M, flags = 0) - for(var/datum/mutation/mutation in GLOB.dna_mutations) + for(var/mutation_type in GLOB.dna_mutations) + var/datum/mutation/mutation = GLOB.dna_mutations[mutation_type] if(!M || !M.dna) return if(!mutation.block) @@ -32,7 +33,7 @@ var/mutation_active = M.dna.GetSEState(mutation.block) // Sanity checks, don't skip. - if(!mutation.can_activate(M, flags) && mutation_active) + if(mutation_active && !mutation.can_activate(M, flags)) //testing("[M] - Failed to activate [gene.name] (can_activate fail).") return FALSE @@ -46,11 +47,7 @@ if(mutation_active) //testing("[gene.name] activated!") mutation.activate(M) - if(M) - M.active_mutations |= mutation.type // If Gene is NOT active: else //testing("[gene.name] deactivated!") mutation.deactivate(M) - if(M) - M.active_mutations -= mutation.type diff --git a/code/game/dna/mutations/_mutations.dm b/code/game/dna/mutations/_mutations.dm index a9718394066..8ed4022c5be 100644 --- a/code/game/dna/mutations/_mutations.dm +++ b/code/game/dna/mutations/_mutations.dm @@ -31,7 +31,9 @@ // Called when the gene activates. Do your magic here. /datum/mutation/proc/activate(mob/living/M) + SHOULD_CALL_PARENT(TRUE) M.gene_stability -= instability + M.active_mutations |= type // |= is probably not required but just in case for(var/thing in traits_to_add) ADD_TRAIT(M, thing, GENETIC_MUTATION) if(length(activation_messages)) @@ -42,7 +44,9 @@ // Called when the gene deactivates. Undo your magic here. // Only called when the block is deactivated. /datum/mutation/proc/deactivate(mob/living/M) + SHOULD_CALL_PARENT(TRUE) M.gene_stability += instability + M.active_mutations -= type for(var/thing in traits_to_add) REMOVE_TRAIT(M, thing, GENETIC_MUTATION) if(length(deactivation_messages)) diff --git a/code/game/dna/mutations/monkey.dm b/code/game/dna/mutations/monkey.dm index 4ebe366bfb7..c9e91179527 100644 --- a/code/game/dna/mutations/monkey.dm +++ b/code/game/dna/mutations/monkey.dm @@ -9,6 +9,7 @@ return ishuman(M) /datum/mutation/monkey/activate(mob/living/carbon/human/H) + ..() if(!istype(H)) return if(issmall(H)) @@ -42,6 +43,7 @@ return H /datum/mutation/monkey/deactivate(mob/living/carbon/human/H) + ..() if(!istype(H)) return if(!issmall(H)) diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm index a1c04e93d46..60d854a7832 100644 --- a/code/game/gamemodes/blob/blob.dm +++ b/code/game/gamemodes/blob/blob.dm @@ -63,7 +63,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) return candidates -/datum/game_mode/blob/proc/blobize(var/mob/living/carbon/human/blob) +/datum/game_mode/blob/proc/blobize(mob/living/carbon/human/blob) var/datum/mind/blobmind = blob.mind if(!istype(blobmind)) return 0 @@ -79,7 +79,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) burst_blob(blobmind) return 1 -/datum/game_mode/blob/proc/make_blobs(var/count) +/datum/game_mode/blob/proc/make_blobs(count) var/list/candidates = get_blob_candidates() var/mob/living/carbon/human/blob = null count=min(count, candidates.len) @@ -97,16 +97,17 @@ GLOBAL_LIST_EMPTY(blob_nodes) to_chat(world, "You must kill it all while minimizing the damage to the station.") -/datum/game_mode/blob/proc/greet_blob(var/datum/mind/blob) +/datum/game_mode/blob/proc/greet_blob(datum/mind/blob) to_chat(blob.current, "You are infected by the Blob!") to_chat(blob.current, "Your body is ready to give spawn to a new blob core which will eat this station.") to_chat(blob.current, "Find a good location to spawn the core and then take control and overwhelm the station!") to_chat(blob.current, "When you have found a location, wait until you spawn; this will happen automatically and you cannot speed up the process.") to_chat(blob.current, "If you go outside of the station level, or in space, then you will die; make sure your location has lots of ground to cover.") + to_chat(blob.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Blob)") SEND_SOUND(blob.current, sound('sound/magic/mutate.ogg')) return -/datum/game_mode/blob/proc/show_message(var/message) +/datum/game_mode/blob/proc/show_message(message) for(var/datum/mind/blob in infected_crew) to_chat(blob.current, message) @@ -114,7 +115,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) for(var/datum/mind/blob in infected_crew) burst_blob(blob) -/datum/game_mode/blob/proc/burst_blob(var/datum/mind/blob, var/warned=0) +/datum/game_mode/blob/proc/burst_blob(datum/mind/blob, warned=0) var/client/blob_client = null var/turf/location = null @@ -190,7 +191,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) return ..() -/datum/game_mode/blob/proc/stage(var/stage) +/datum/game_mode/blob/proc/stage(stage) switch(stage) if(0) send_intercept(1) diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm index 93b84dbb54d..670c9ea8aa4 100644 --- a/code/game/gamemodes/blob/blob_report.dm +++ b/code/game/gamemodes/blob/blob_report.dm @@ -1,4 +1,4 @@ -/datum/game_mode/blob/proc/send_intercept(var/report = 1) +/datum/game_mode/blob/proc/send_intercept(report = 1) var/intercepttext = "" var/interceptname = "" switch(report) @@ -89,7 +89,7 @@ else if(istype(O, /obj/machinery)) src.mach += 1 -/datum/station_state/proc/score(var/datum/station_state/result) +/datum/station_state/proc/score(datum/station_state/result) if(!result) return 0 var/output = 0 output += (result.floor / max(floor,1)) diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index cdc8caaaf74..14603c1681a 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -20,7 +20,7 @@ fire_damage = 3 var/mob/camera/blob/overmind = null -/mob/living/simple_animal/hostile/blob/proc/adjustcolors(var/a_color) +/mob/living/simple_animal/hostile/blob/proc/adjustcolors(a_color) if(a_color) color = a_color @@ -69,7 +69,7 @@ return 1 return ..() -/mob/living/simple_animal/hostile/blob/blobspore/New(loc, var/obj/structure/blob/factory/linked_node) +/mob/living/simple_animal/hostile/blob/blobspore/New(loc, obj/structure/blob/factory/linked_node) if(istype(linked_node)) factory = linked_node factory.spores += src @@ -103,7 +103,7 @@ icon = H.icon speak_emote = list("groans") icon_state = "zombie2_s" - if(head_organ) + if(head_organ && !(NO_HAIR in H.dna.species.species_traits)) head_organ.h_style = null H.update_hair() human_overlays = H.overlays @@ -149,7 +149,7 @@ adjustcolors(overmind?.blob_reagent_datum?.complementary_color) -/mob/living/simple_animal/hostile/blob/blobspore/adjustcolors(var/a_color) +/mob/living/simple_animal/hostile/blob/blobspore/adjustcolors(a_color) color = a_color if(is_zombie) diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index bd86b7ff1fc..b4a9bf3c3e8 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -27,7 +27,7 @@ point_rate = new_rate -/obj/structure/blob/core/adjustcolors(var/a_color) +/obj/structure/blob/core/adjustcolors(a_color) overlays.Cut() color = null var/image/I = new('icons/mob/blob.dmi', "blob") @@ -117,13 +117,13 @@ if(C && !QDELETED(src)) var/mob/camera/blob/B = new(loc) + B.is_offspring = is_offspring B.key = C.key B.blob_core = src overmind = B color = overmind.blob_reagent_datum.color if(B.mind && !B.mind.special_role) B.mind.make_Overmind() - B.is_offspring = is_offspring /obj/structure/blob/core/proc/lateblobtimer() addtimer(CALLBACK(src, .proc/lateblobcheck), 50) diff --git a/code/game/gamemodes/blob/blobs/node.dm b/code/game/gamemodes/blob/blobs/node.dm index 90982d70e2b..0023328b463 100644 --- a/code/game/gamemodes/blob/blobs/node.dm +++ b/code/game/gamemodes/blob/blobs/node.dm @@ -11,7 +11,7 @@ GLOB.blob_nodes += src START_PROCESSING(SSobj, src) -/obj/structure/blob/node/adjustcolors(var/a_color) +/obj/structure/blob/node/adjustcolors(a_color) overlays.Cut() color = null var/image/I = new('icons/mob/blob.dmi', "blob") diff --git a/code/game/gamemodes/blob/blobs/storage.dm b/code/game/gamemodes/blob/blobs/storage.dm index b9052b3601a..ced60709575 100644 --- a/code/game/gamemodes/blob/blobs/storage.dm +++ b/code/game/gamemodes/blob/blobs/storage.dm @@ -11,6 +11,6 @@ overmind.max_blob_points -= 50 ..() -/obj/structure/blob/storage/proc/update_max_blob_points(var/new_point_increase) +/obj/structure/blob/storage/proc/update_max_blob_points(new_point_increase) if(overmind) overmind.max_blob_points += new_point_increase diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index 7e60aeee6bf..e5da77c8196 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -55,13 +55,13 @@ if(blob_core && hud_used) hud_used.blobhealthdisplay.maptext = "
[round(blob_core.obj_integrity)]
" -/mob/camera/blob/proc/add_points(var/points) +/mob/camera/blob/proc/add_points(points) if(points != 0) blob_points = clamp(blob_points + points, 0, max_blob_points) if(hud_used) hud_used.blobpwrdisplay.maptext = "
[round(src.blob_points)]
" -/mob/camera/blob/say(var/message) +/mob/camera/blob/say(message) if(!message) return @@ -105,7 +105,7 @@ stat(null, "Core Health: [blob_core.obj_integrity]") stat(null, "Power Stored: [blob_points]/[max_blob_points]") -/mob/camera/blob/Move(var/NewLoc, var/Dir = 0) +/mob/camera/blob/Move(NewLoc, Dir = 0) var/obj/structure/blob/B = locate() in range("3x3", NewLoc) if(B) loc = NewLoc diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index 40cde4ad9db..6ed1bc1aef8 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -1,6 +1,6 @@ // Point controlling procs -/mob/camera/blob/proc/can_buy(var/cost = 15) +/mob/camera/blob/proc/can_buy(cost = 15) if(blob_points < cost) to_chat(src, "You cannot afford this!") return 0 @@ -50,7 +50,7 @@ var/turf/T = get_turf(src) create_shield(T) -/mob/camera/blob/proc/create_shield(var/turf/T) +/mob/camera/blob/proc/create_shield(turf/T) var/obj/structure/blob/B = locate(/obj/structure/blob) in T var/obj/structure/blob/shield/S = locate(/obj/structure/blob/shield) in T @@ -283,7 +283,7 @@ var/turf/T = get_turf(src) remove_blob(T) -/mob/camera/blob/proc/remove_blob(var/turf/T) +/mob/camera/blob/proc/remove_blob(turf/T) var/obj/structure/blob/B = locate(/obj/structure/blob) in T if(!T) @@ -312,7 +312,7 @@ var/turf/T = get_turf(src) expand_blob(T) -/mob/camera/blob/proc/expand_blob(var/turf/T) +/mob/camera/blob/proc/expand_blob(turf/T) if(!T) return @@ -350,7 +350,7 @@ var/turf/T = get_turf(src) rally_spores(T) -/mob/camera/blob/proc/rally_spores(var/turf/T) +/mob/camera/blob/proc/rally_spores(turf/T) to_chat(src, "You rally your spores.") var/list/surrounding_turfs = block(locate(T.x - 1, T.y - 1, T.z), locate(T.x + 1, T.y + 1, T.z)) diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index 2864854a1e9..b1c5ffde619 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -73,7 +73,7 @@ health_timestamp = world.time + 10 // 1 seconds -/obj/structure/blob/proc/Pulse(var/pulse = 0, var/origin_dir = 0, var/a_color)//Todo: Fix spaceblob expand +/obj/structure/blob/proc/Pulse(pulse = 0, origin_dir = 0, a_color)//Todo: Fix spaceblob expand RegenHealth() if(run_action())//If we can do something here then we dont need to pulse more @@ -110,7 +110,7 @@ if(iswallturf(loc)) loc.blob_act(src) //don't ask how a wall got on top of the core, just eat it -/obj/structure/blob/proc/expand(var/turf/T = null, var/prob = 1, var/a_color) +/obj/structure/blob/proc/expand(turf/T = null, prob = 1, a_color) if(prob && !prob(obj_integrity)) return if(istype(T, /turf/space) && prob(75)) return @@ -139,7 +139,7 @@ A.blob_act(src) return 1 -/obj/structure/blob/Crossed(var/mob/living/L, oldloc) +/obj/structure/blob/Crossed(mob/living/L, oldloc) ..() L.blob_act(src) @@ -188,7 +188,7 @@ if(. && obj_integrity > 0) update_icon() -/obj/structure/blob/proc/change_to(var/type) +/obj/structure/blob/proc/change_to(type) if(!ispath(type)) error("[type] is an invalid type for the blob.") var/obj/structure/blob/B = new type(src.loc) @@ -198,7 +198,7 @@ B.adjustcolors(color) qdel(src) -/obj/structure/blob/proc/adjustcolors(var/a_color) +/obj/structure/blob/proc/adjustcolors(a_color) if(a_color) color = a_color return diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 7d074e869e7..01f87d3b758 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -147,6 +147,7 @@ GLOBAL_LIST_INIT(possible_changeling_IDs, list("Alpha","Beta","Gamma","Delta","E for(var/datum/objective/objective in changeling.objectives) to_chat(changeling.current, "Objective #[obj_count]: [objective.explanation_text]") obj_count++ + to_chat(changeling.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Changeling)") return /datum/game_mode/proc/remove_changeling(datum/mind/changeling_mind) diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm index dc5c0f9f90c..47f83b4618b 100644 --- a/code/game/gamemodes/changeling/changeling_power.dm +++ b/code/game/gamemodes/changeling/changeling_power.dm @@ -25,7 +25,7 @@ if you override it, MAKE SURE you call parent or it will not be usable the same goes for Remove(). if you override Remove(), call parent or else your power wont be removed on respec */ -/datum/action/changeling/proc/on_purchase(var/mob/user) +/datum/action/changeling/proc/on_purchase(mob/user) if(needs_button) Grant(user) @@ -46,18 +46,18 @@ the same goes for Remove(). if you override Remove(), call parent or else your p sting_feedback(user, target) take_chemical_cost(c) -/datum/action/changeling/proc/sting_action(var/mob/user, var/mob/target) +/datum/action/changeling/proc/sting_action(mob/user, mob/target) return 0 -/datum/action/changeling/proc/sting_feedback(var/mob/user, var/mob/target) +/datum/action/changeling/proc/sting_feedback(mob/user, mob/target) return 0 -/datum/action/changeling/proc/take_chemical_cost(var/datum/changeling/changeling) +/datum/action/changeling/proc/take_chemical_cost(datum/changeling/changeling) changeling.chem_charges -= chemical_cost changeling.geneticdamage += genetic_damage //Fairly important to remember to return 1 on success >.< -/datum/action/changeling/proc/can_sting(var/mob/user, var/mob/target) +/datum/action/changeling/proc/can_sting(mob/user, mob/target) if(!ishuman(user)) //typecast everything from mob to carbon from this point onwards return 0 if(req_human && (!ishuman(user) || issmall(user))) @@ -82,7 +82,7 @@ the same goes for Remove(). if you override Remove(), call parent or else your p return 1 //used in /mob/Stat() -/datum/action/changeling/proc/can_be_used_by(var/mob/user) +/datum/action/changeling/proc/can_be_used_by(mob/user) if(!ishuman(user)) return 0 if(req_human && !ishuman(user)) @@ -90,7 +90,7 @@ the same goes for Remove(). if you override Remove(), call parent or else your p return 1 // Transform the target to the chosen dna. Used in transform.dm and tiny_prick.dm (handy for changes since it's the same thing done twice) -/datum/action/changeling/proc/transform_dna(var/mob/living/carbon/human/H, var/datum/dna/D) +/datum/action/changeling/proc/transform_dna(mob/living/carbon/human/H, datum/dna/D) if(!D) return diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index 8485f8f0540..c07e8ac083b 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -84,7 +84,7 @@ view_mode = new_view_mode return TRUE -/datum/changeling/proc/purchasePower(var/mob/living/carbon/user, var/sting_name) +/datum/changeling/proc/purchasePower(mob/living/carbon/user, sting_name) var/datum/action/changeling/thepower = null var/list/all_powers = init_subtypes(/datum/action/changeling) @@ -122,7 +122,7 @@ return TRUE //Reselect powers -/datum/changeling/proc/lingRespec(var/mob/user) +/datum/changeling/proc/lingRespec(mob/user) if(!ishuman(user) || issmall(user)) to_chat(user, "We can't remove our evolutions in this form!") return FALSE @@ -136,7 +136,7 @@ to_chat(user, "You lack the power to readapt your evolutions!") return FALSE -/mob/proc/make_changeling(var/get_free_powers = TRUE) +/mob/proc/make_changeling(get_free_powers = TRUE) if(!mind) return if(!ishuman(src)) @@ -170,7 +170,7 @@ return 1 //Used to dump the languages from the changeling datum into the actual mob. -/mob/proc/changeling_update_languages(var/updated_languages) +/mob/proc/changeling_update_languages(updated_languages) for(var/datum/language/L in updated_languages) add_language("L.name") @@ -190,7 +190,7 @@ chem_recharge_slowdown = initial(chem_recharge_slowdown) mimicing = "" -/mob/proc/remove_changeling_powers(var/keep_free_powers=0) +/mob/proc/remove_changeling_powers(keep_free_powers=0) if(ishuman(src)) if(mind && mind.changeling) digitalcamo = 0 diff --git a/code/game/gamemodes/changeling/powers/absorb.dm b/code/game/gamemodes/changeling/powers/absorb.dm index bae3f75ce6b..33c0501c7d5 100644 --- a/code/game/gamemodes/changeling/powers/absorb.dm +++ b/code/game/gamemodes/changeling/powers/absorb.dm @@ -27,7 +27,7 @@ var/mob/living/carbon/target = G.affecting return changeling.can_absorb_dna(user,target) -/datum/action/changeling/absorbDNA/sting_action(var/mob/user) +/datum/action/changeling/absorbDNA/sting_action(mob/user) var/datum/changeling/changeling = user.mind.changeling var/obj/item/grab/G = user.get_active_hand() var/mob/living/carbon/human/target = G.affecting @@ -101,7 +101,7 @@ return 1 //Absorbs the target DNA. -/datum/changeling/proc/absorb_dna(mob/living/carbon/T, var/mob/user) +/datum/changeling/proc/absorb_dna(mob/living/carbon/T, mob/user) T.dna.real_name = T.real_name //Set this again, just to be sure that it's properly set. var/datum/dna/new_dna = T.dna.Clone() //Steal all of their languages! @@ -113,7 +113,7 @@ absorbedcount++ store_dna(new_dna, user) -/datum/changeling/proc/store_dna(var/datum/dna/new_dna, var/mob/user) +/datum/changeling/proc/store_dna(datum/dna/new_dna, mob/user) for(var/datum/objective/escape/escape_with_identity/E in user.mind.objectives) if(E.target_real_name == new_dna.real_name) protected_dna |= new_dna diff --git a/code/game/gamemodes/changeling/powers/digitalcamo.dm b/code/game/gamemodes/changeling/powers/digitalcamo.dm index d50a2afe5c7..29385d33636 100644 --- a/code/game/gamemodes/changeling/powers/digitalcamo.dm +++ b/code/game/gamemodes/changeling/powers/digitalcamo.dm @@ -6,7 +6,7 @@ dna_cost = 1 //Prevents AIs tracking you but makes you easily detectable to the human-eye. -/datum/action/changeling/digitalcamo/sting_action(var/mob/user) +/datum/action/changeling/digitalcamo/sting_action(mob/user) if(user.digitalcamo) to_chat(user, "We return to normal.") diff --git a/code/game/gamemodes/changeling/powers/epinephrine.dm b/code/game/gamemodes/changeling/powers/epinephrine.dm index 758e9215ed8..ef22de10ce4 100644 --- a/code/game/gamemodes/changeling/powers/epinephrine.dm +++ b/code/game/gamemodes/changeling/powers/epinephrine.dm @@ -9,7 +9,7 @@ req_stat = UNCONSCIOUS //Recover from stuns. -/datum/action/changeling/epinephrine/sting_action(var/mob/living/user) +/datum/action/changeling/epinephrine/sting_action(mob/living/user) if(user.lying) to_chat(user, "We arise.") diff --git a/code/game/gamemodes/changeling/powers/fakedeath.dm b/code/game/gamemodes/changeling/powers/fakedeath.dm index 343a8e1e1c7..b29dd5f8ac6 100644 --- a/code/game/gamemodes/changeling/powers/fakedeath.dm +++ b/code/game/gamemodes/changeling/powers/fakedeath.dm @@ -9,7 +9,7 @@ max_genetic_damage = 100 //Fake our own death and fully heal. You will appear to be dead but regenerate fully after a short delay. -/datum/action/changeling/fakedeath/sting_action(var/mob/living/user) +/datum/action/changeling/fakedeath/sting_action(mob/living/user) to_chat(user, "We begin our stasis, preparing energy to arise once more.") if(user.stat != DEAD) @@ -30,7 +30,7 @@ var/datum/action/changeling/revive/R = new R.Grant(user) -/datum/action/changeling/fakedeath/can_sting(var/mob/user) +/datum/action/changeling/fakedeath/can_sting(mob/user) if(HAS_TRAIT(user, TRAIT_FAKEDEATH)) to_chat(user, "We are already regenerating.") return diff --git a/code/game/gamemodes/changeling/powers/fleshmend.dm b/code/game/gamemodes/changeling/powers/fleshmend.dm index 6ed396c0cba..99cb6164aa6 100644 --- a/code/game/gamemodes/changeling/powers/fleshmend.dm +++ b/code/game/gamemodes/changeling/powers/fleshmend.dm @@ -25,7 +25,7 @@ recent_uses = max(1, recent_uses - (1 / healing_ticks)) //Starts healing you every second for 10 seconds. Can be used whilst unconscious. -/datum/action/changeling/fleshmend/sting_action(var/mob/living/user) +/datum/action/changeling/fleshmend/sting_action(mob/living/user) to_chat(user, "We begin to heal rapidly.") if(recent_uses > 1) to_chat(user, "Our healing's effectiveness is reduced \ diff --git a/code/game/gamemodes/changeling/powers/hivemind.dm b/code/game/gamemodes/changeling/powers/hivemind.dm index 6506f25263c..f67b222189d 100644 --- a/code/game/gamemodes/changeling/powers/hivemind.dm +++ b/code/game/gamemodes/changeling/powers/hivemind.dm @@ -7,7 +7,7 @@ chemical_cost = -1 needs_button = FALSE -/datum/action/changeling/hivemind_comms/on_purchase(var/mob/user) +/datum/action/changeling/hivemind_comms/on_purchase(mob/user) ..() var/datum/changeling/changeling=user.mind.changeling changeling.changeling_speak = 1 diff --git a/code/game/gamemodes/changeling/powers/humanform.dm b/code/game/gamemodes/changeling/powers/humanform.dm index fd00afab30a..bc413fae216 100644 --- a/code/game/gamemodes/changeling/powers/humanform.dm +++ b/code/game/gamemodes/changeling/powers/humanform.dm @@ -8,7 +8,7 @@ max_genetic_damage = 3 //Transform into a human. -/datum/action/changeling/humanform/sting_action(var/mob/living/carbon/human/user) +/datum/action/changeling/humanform/sting_action(mob/living/carbon/human/user) var/datum/changeling/changeling = user.mind.changeling var/list/names = list() for(var/datum/dna/DNA in (changeling.absorbed_dna+changeling.protected_dna)) diff --git a/code/game/gamemodes/changeling/powers/lesserform.dm b/code/game/gamemodes/changeling/powers/lesserform.dm index c492c47f9c6..9622cb4f48e 100644 --- a/code/game/gamemodes/changeling/powers/lesserform.dm +++ b/code/game/gamemodes/changeling/powers/lesserform.dm @@ -9,7 +9,7 @@ req_human = 1 //Transform into a monkey. -/datum/action/changeling/lesserform/sting_action(var/mob/living/carbon/human/user) +/datum/action/changeling/lesserform/sting_action(mob/living/carbon/human/user) var/datum/changeling/changeling = user.mind.changeling if(!user) return 0 diff --git a/code/game/gamemodes/changeling/powers/mimic_voice.dm b/code/game/gamemodes/changeling/powers/mimic_voice.dm index bcbe91a3cb6..cddb369963a 100644 --- a/code/game/gamemodes/changeling/powers/mimic_voice.dm +++ b/code/game/gamemodes/changeling/powers/mimic_voice.dm @@ -9,7 +9,7 @@ // Fake Voice -/datum/action/changeling/mimicvoice/sting_action(var/mob/user) +/datum/action/changeling/mimicvoice/sting_action(mob/user) var/datum/changeling/changeling=user.mind.changeling if(changeling.mimicing) changeling.mimicing = "" diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index fb2d19e7d0b..420628a0198 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -21,7 +21,7 @@ var/weapon_type var/weapon_name_simple -/datum/action/changeling/weapon/try_to_sting(var/mob/user, var/mob/target) +/datum/action/changeling/weapon/try_to_sting(mob/user, mob/target) if(istype(user.l_hand, weapon_type)) //Not the nicest way to do it, but eh qdel(user.l_hand) if(!silent) @@ -36,7 +36,7 @@ return ..(user, target) -/datum/action/changeling/weapon/sting_action(var/mob/user) +/datum/action/changeling/weapon/sting_action(mob/user) if(!user.drop_item()) to_chat(user, "The [user.get_active_hand()] is stuck to your hand, you cannot grow a [weapon_name_simple] over it!") return @@ -60,7 +60,7 @@ var/recharge_slowdown = 0 var/blood_on_castoff = 0 -/datum/action/changeling/suit/try_to_sting(var/mob/user, var/mob/target) +/datum/action/changeling/suit/try_to_sting(mob/user, mob/target) var/datum/changeling/changeling = user.mind.changeling if(!ishuman(user) || !changeling) return @@ -84,7 +84,7 @@ return ..(H, target) -/datum/action/changeling/suit/sting_action(var/mob/living/carbon/human/user) +/datum/action/changeling/suit/sting_action(mob/living/carbon/human/user) if(!user.unEquip(user.wear_suit)) to_chat(user, "\the [user.wear_suit] is stuck to your body, you cannot grow a [suit_name_simple] over it!") return @@ -358,7 +358,7 @@ weapon_type = /obj/item/shield/changeling weapon_name_simple = "shield" -/datum/action/changeling/weapon/shield/sting_action(var/mob/user) +/datum/action/changeling/weapon/shield/sting_action(mob/user) var/datum/changeling/changeling = user.mind.changeling //So we can read the absorbedcount. if(!changeling) return diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm index 914a73fa7b4..bc0ff435b38 100644 --- a/code/game/gamemodes/changeling/powers/panacea.dm +++ b/code/game/gamemodes/changeling/powers/panacea.dm @@ -8,7 +8,7 @@ req_stat = UNCONSCIOUS //Heals the things that the other regenerative abilities don't. -/datum/action/changeling/panacea/sting_action(var/mob/user) +/datum/action/changeling/panacea/sting_action(mob/user) to_chat(user, "We cleanse impurities from our form.") diff --git a/code/game/gamemodes/changeling/powers/revive.dm b/code/game/gamemodes/changeling/powers/revive.dm index 13b3877b9bb..8ebe5ba48d8 100644 --- a/code/game/gamemodes/changeling/powers/revive.dm +++ b/code/game/gamemodes/changeling/powers/revive.dm @@ -6,7 +6,7 @@ always_keep = 1 //Revive from regenerative stasis -/datum/action/changeling/revive/sting_action(var/mob/living/carbon/user) +/datum/action/changeling/revive/sting_action(mob/living/carbon/user) user.setToxLoss(0, FALSE) user.setOxyLoss(0, FALSE) user.setCloneLoss(0, FALSE) diff --git a/code/game/gamemodes/changeling/powers/shriek.dm b/code/game/gamemodes/changeling/powers/shriek.dm index 9678a71bc72..b7d021a10d6 100644 --- a/code/game/gamemodes/changeling/powers/shriek.dm +++ b/code/game/gamemodes/changeling/powers/shriek.dm @@ -8,7 +8,7 @@ req_human = 1 //A flashy ability, good for crowd control and sowing chaos. -/datum/action/changeling/resonant_shriek/sting_action(var/mob/user) +/datum/action/changeling/resonant_shriek/sting_action(mob/user) for(var/mob/living/M in get_mobs_in_view(4, user)) if(iscarbon(M)) if(ishuman(M)) @@ -41,7 +41,7 @@ dna_cost = 1 //A flashy ability, good for crowd control and sewing chaos. -/datum/action/changeling/dissonant_shriek/sting_action(var/mob/user) +/datum/action/changeling/dissonant_shriek/sting_action(mob/user) for(var/obj/machinery/light/L in range(5, usr)) L.on = 1 L.break_light_tube() diff --git a/code/game/gamemodes/changeling/powers/spiders.dm b/code/game/gamemodes/changeling/powers/spiders.dm index 5577007a155..4139928dc3c 100644 --- a/code/game/gamemodes/changeling/powers/spiders.dm +++ b/code/game/gamemodes/changeling/powers/spiders.dm @@ -8,7 +8,7 @@ req_dna = 5 //Makes some spiderlings. Good for setting traps and causing general trouble. -/datum/action/changeling/spiders/sting_action(var/mob/user) +/datum/action/changeling/spiders/sting_action(mob/user) for(var/i=0, i<2, i++) var/obj/structure/spider/spiderling/S = new(user.loc) S.grow_as = /mob/living/simple_animal/hostile/poison/giant_spider/hunter diff --git a/code/game/gamemodes/changeling/powers/strained_muscles.dm b/code/game/gamemodes/changeling/powers/strained_muscles.dm index 038cf76331c..a89daed095f 100644 --- a/code/game/gamemodes/changeling/powers/strained_muscles.dm +++ b/code/game/gamemodes/changeling/powers/strained_muscles.dm @@ -12,7 +12,7 @@ var/stacks = 0 //Increments every 5 seconds; damage increases over time var/enabled = 0 //Whether or not you are a hedgehog -/datum/action/changeling/strained_muscles/sting_action(var/mob/living/carbon/user) +/datum/action/changeling/strained_muscles/sting_action(mob/living/carbon/user) enabled = !enabled if(enabled) to_chat(user, "Our muscles tense and strengthen.") diff --git a/code/game/gamemodes/changeling/powers/swap_form.dm b/code/game/gamemodes/changeling/powers/swap_form.dm index 4c44b97f47e..b155cccf5db 100644 --- a/code/game/gamemodes/changeling/powers/swap_form.dm +++ b/code/game/gamemodes/changeling/powers/swap_form.dm @@ -7,7 +7,7 @@ dna_cost = 1 req_human = 1 //Monkeys can't grab -/datum/action/changeling/swap_form/can_sting(var/mob/living/carbon/user) +/datum/action/changeling/swap_form/can_sting(mob/living/carbon/user) if(!..()) return var/obj/item/grab/G = user.get_active_hand() @@ -29,7 +29,7 @@ return return 1 -/datum/action/changeling/swap_form/sting_action(var/mob/living/carbon/user) +/datum/action/changeling/swap_form/sting_action(mob/living/carbon/user) var/obj/item/grab/G = user.get_active_hand() var/mob/living/carbon/human/target = G.affecting var/datum/changeling/changeling = user.mind.changeling diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index 95432db9424..14d93439510 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -37,7 +37,7 @@ if(mind && mind.changeling && mind.changeling.chosen_sting) mind.changeling.chosen_sting.unset_sting(src) -/datum/action/changeling/sting/can_sting(var/mob/user, var/mob/target) +/datum/action/changeling/sting/can_sting(mob/user, mob/target) if(!..()) return if(!user.mind.changeling.chosen_sting) @@ -57,7 +57,7 @@ return return 1 -/datum/action/changeling/sting/sting_feedback(var/mob/user, var/mob/target) +/datum/action/changeling/sting/sting_feedback(mob/user, mob/target) if(!target) return to_chat(user, "We stealthily sting [target.name].") @@ -91,10 +91,10 @@ return ..() -/datum/action/changeling/sting/transformation/can_sting(var/mob/user, var/mob/target) +/datum/action/changeling/sting/transformation/can_sting(mob/user, mob/target) if(!..()) return - if(HAS_TRAIT(target, TRAIT_HUSK) || (!ishuman(target))) + if(HAS_TRAIT(target, TRAIT_HUSK) || !ishuman(target) || (NOTRANSSTING in target.dna.species.species_traits)) to_chat(user, "Our sting appears ineffective against its DNA.") return FALSE if(ishuman(target)) @@ -104,7 +104,7 @@ return FALSE return TRUE -/datum/action/changeling/sting/transformation/sting_action(var/mob/user, var/mob/target) +/datum/action/changeling/sting/transformation/sting_action(mob/user, mob/target) add_attack_logs(user, target, "Transformation sting (changeling) (new identity is [selected_dna.real_name])") if(issmall(target)) to_chat(user, "Our genes cry out as we sting [target.name]!") @@ -129,11 +129,11 @@ chemical_cost = 25 dna_cost = 0 -/datum/action/changeling/sting/extract_dna/can_sting(var/mob/user, var/mob/target) +/datum/action/changeling/sting/extract_dna/can_sting(mob/user, mob/target) if(..()) return user.mind.changeling.can_absorb_dna(user, target) -/datum/action/changeling/sting/extract_dna/sting_action(var/mob/user, var/mob/living/carbon/human/target) +/datum/action/changeling/sting/extract_dna/sting_action(mob/user, mob/living/carbon/human/target) add_attack_logs(user, target, "Extraction sting (changeling)") if(!(user.mind.changeling.has_dna(target.dna))) user.mind.changeling.absorb_dna(target, user) @@ -149,7 +149,7 @@ chemical_cost = 20 dna_cost = 2 -/datum/action/changeling/sting/mute/sting_action(var/mob/user, var/mob/living/carbon/target) +/datum/action/changeling/sting/mute/sting_action(mob/user, mob/living/carbon/target) add_attack_logs(user, target, "Mute sting (changeling)") target.AdjustSilence(30) SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]")) @@ -164,7 +164,7 @@ chemical_cost = 25 dna_cost = 1 -/datum/action/changeling/sting/blind/sting_action(var/mob/living/user, var/mob/living/target) +/datum/action/changeling/sting/blind/sting_action(mob/living/user, mob/living/target) add_attack_logs(user, target, "Blind sting (changeling)") to_chat(target, "Your eyes burn horrifically!") target.become_nearsighted(EYE_DAMAGE) @@ -182,7 +182,7 @@ chemical_cost = 10 dna_cost = 1 -/datum/action/changeling/sting/LSD/sting_action(var/mob/user, var/mob/living/carbon/target) +/datum/action/changeling/sting/LSD/sting_action(mob/user, mob/living/carbon/target) add_attack_logs(user, target, "LSD sting (changeling)") spawn(rand(300,600)) if(target) @@ -199,7 +199,7 @@ chemical_cost = 15 dna_cost = 2 -/datum/action/changeling/sting/cryo/sting_action(var/mob/user, var/mob/target) +/datum/action/changeling/sting/cryo/sting_action(mob/user, mob/target) add_attack_logs(user, target, "Cryo sting (changeling)") if(target.reagents) target.reagents.add_reagent("frostoil", 30) diff --git a/code/game/gamemodes/changeling/powers/transform.dm b/code/game/gamemodes/changeling/powers/transform.dm index f486195b8db..3aaed08b965 100644 --- a/code/game/gamemodes/changeling/powers/transform.dm +++ b/code/game/gamemodes/changeling/powers/transform.dm @@ -9,7 +9,7 @@ max_genetic_damage = 3 //Change our DNA to that of somebody we've absorbed. -/datum/action/changeling/transform/sting_action(var/mob/living/carbon/human/user) +/datum/action/changeling/transform/sting_action(mob/living/carbon/human/user) var/datum/changeling/changeling = user.mind.changeling var/datum/dna/chosen_dna = changeling.select_dna("Select the target DNA: ", "Target DNA") @@ -23,7 +23,7 @@ SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]")) return 1 -/datum/changeling/proc/select_dna(var/prompt, var/title) +/datum/changeling/proc/select_dna(prompt, title) var/list/names = list() for(var/datum/dna/DNA in (absorbed_dna+protected_dna)) names += "[DNA.real_name]" diff --git a/code/game/gamemodes/cult/blood_magic.dm b/code/game/gamemodes/cult/blood_magic.dm index 2583fd693d3..c1b4f6a98d5 100644 --- a/code/game/gamemodes/cult/blood_magic.dm +++ b/code/game/gamemodes/cult/blood_magic.dm @@ -249,7 +249,7 @@ /datum/action/innate/cult/blood_spell/horror/Destroy() var/obj/effect/proc_holder/horror/destroy = PH . = ..() - if(destroy && !QDELETED(destroy)) + if(!QDELETED(destroy)) QDEL_NULL(destroy) /datum/action/innate/cult/blood_spell/horror/Activate() @@ -264,7 +264,7 @@ /obj/effect/proc_holder/horror/Destroy() var/datum/action/innate/cult/blood_spell/AA = attached_action . = ..() - if(AA && !QDELETED(AA)) + if(!QDELETED(AA)) QDEL_NULL(AA) /obj/effect/proc_holder/horror/proc/toggle(mob/user) @@ -464,9 +464,15 @@ var/list/potential_runes = list() var/list/teleportnames = list() var/list/duplicaterunecount = list() + var/atom/movable/teleportee if(!iscultist(target) || !proximity) to_chat(user, "You can only teleport adjacent cultists with this spell!") return + if(user != target) // So that the teleport effect shows on the correct mob + teleportee = target + else + teleportee = user + for(var/R in GLOB.teleport_runes) var/obj/effect/rune/teleport/T = R var/resultkey = T.listkey @@ -487,16 +493,15 @@ log_game("Teleport spell failed - user in away mission") return - var/mob/living/L = target 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(!src || QDELETED(src) || !user || user.l_hand != src && user.r_hand != src || user.incapacitated() || !actual_selected_rune) + if(QDELETED(src) || !user || user.l_hand != src && user.r_hand != src || user.incapacitated() || !actual_selected_rune) return uses-- - var/turf/origin = get_turf(user) + var/turf/origin = get_turf(teleportee) var/turf/destination = get_turf(actual_selected_rune) - INVOKE_ASYNC(actual_selected_rune, /obj/effect/rune/.proc/teleport_effect, user, origin, destination) + INVOKE_ASYNC(actual_selected_rune, /obj/effect/rune/.proc/teleport_effect, teleportee, origin, destination) if(is_mining_level(user.z) && !is_mining_level(destination.z)) //No effect if you stay on lavaland actual_selected_rune.handle_portal("lava") @@ -510,7 +515,7 @@ target.visible_message("Dust flows from [user]'s hand, and [target] disappears in a flash of red light!", \ "You suddenly find yourself somewhere else!") destination.visible_message("There is a boom of outrushing air as something appears above the rune!", null, "You hear a boom.") - L.forceMove(destination) + teleportee.forceMove(destination) return ..() //Shackles @@ -658,7 +663,7 @@ /obj/item/melee/blood_magic/empower/afterattack(atom/target, mob/user, proximity_flag, click_parameters) if(proximity_flag) - //Shielded suit + // Shielded suit if(istype(target, /obj/item/clothing/suit/hooded/cultrobes/cult_shield)) var/obj/item/clothing/suit/hooded/cultrobes/cult_shield/C = target if(C.current_charges < 3) @@ -672,7 +677,7 @@ to_chat(user, "[target] is already at full charge!") return - //Plasteel to runed metal + // Veil Shifter else if(istype(target, /obj/item/cult_shift)) var/obj/item/cult_shift/S = target if(S.uses < 4) @@ -846,39 +851,6 @@ var/list/options = list("Blood Orb (50)", "Blood Recharge (75)", "Blood Spear (150)", "Blood Bolt Barrage (300)") var/choice = input(user, "Choose a greater blood rite...", "Greater Blood Rites") as null|anything in options switch(choice) - if("Blood Spear (150)") - if(uses < BLOOD_SPEAR_COST) - to_chat(user, "You need [BLOOD_SPEAR_COST] charges to perform this rite.") - else - uses -= BLOOD_SPEAR_COST - var/turf/T = get_turf(user) - qdel(src) - var/datum/action/innate/cult/spear/S = new(user) - var/obj/item/twohanded/cult_spear/rite = new(T) - S.Grant(user, rite) - rite.spear_act = S - if(user.put_in_hands(rite)) - to_chat(user, "A [rite.name] appears in your hand!") - else - user.visible_message("A [rite.name] appears at [user]'s feet!", \ - "A [rite.name] materializes at your feet.") - - if("Blood Bolt Barrage (300)") - if(uses < BLOOD_BARRAGE_COST) - to_chat(user, "You need [BLOOD_BARRAGE_COST] charges to perform this rite.") - else - var/obj/rite = new /obj/item/gun/projectile/shotgun/boltaction/enchanted/arcane_barrage/blood() - uses -= BLOOD_BARRAGE_COST - qdel(src) - user.swap_hand() - user.drop_item() - if(user.put_in_hands(rite)) - to_chat(user, "Both of your hands glow with power!") - else - to_chat(user, "You need a free hand for this rite!") - uses += BLOOD_BARRAGE_COST // Refund the charges - qdel(rite) - if("Blood Orb (50)") if(uses < BLOOD_ORB_COST) to_chat(user, "You need [BLOOD_ORB_COST] charges to perform this rite.") @@ -898,7 +870,7 @@ if(user.put_in_hands(rite)) to_chat(user, "A [rite.name] appears in your hand!") else - user.visible_message("A [rite.name] appears at [user]'s feet!", \ + user.visible_message("A [rite.name] appears at [user]'s feet!", "A [rite.name] materializes at your feet.") if("Blood Recharge (75)") @@ -914,3 +886,36 @@ to_chat(user, "You need a free hand for this rite!") uses += BLOOD_RECHARGE_COST // Refund the charges qdel(rite) + + if("Blood Spear (150)") + if(uses < BLOOD_SPEAR_COST) + to_chat(user, "You need [BLOOD_SPEAR_COST] charges to perform this rite.") + else + uses -= BLOOD_SPEAR_COST + var/turf/T = get_turf(user) + qdel(src) + var/datum/action/innate/cult/spear/S = new(user) + var/obj/item/twohanded/cult_spear/rite = new(T) + S.Grant(user, rite) + rite.spear_act = S + if(user.put_in_hands(rite)) + to_chat(user, "A [rite.name] appears in your hand!") + else + user.visible_message("A [rite.name] appears at [user]'s feet!", + "A [rite.name] materializes at your feet.") + + if("Blood Bolt Barrage (300)") + if(uses < BLOOD_BARRAGE_COST) + to_chat(user, "You need [BLOOD_BARRAGE_COST] charges to perform this rite.") + else + var/obj/rite = new /obj/item/gun/projectile/shotgun/boltaction/enchanted/arcane_barrage/blood() + uses -= BLOOD_BARRAGE_COST + qdel(src) + user.swap_hand() + user.drop_item() + if(user.put_in_hands(rite)) + to_chat(user, "Both of your hands glow with power!") + else + to_chat(user, "You need a free hand for this rite!") + uses += BLOOD_BARRAGE_COST // Refund the charges + qdel(rite) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 04c9e13b605..fb15a380c60 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -85,6 +85,9 @@ GLOBAL_LIST_EMPTY(all_cults) to_chat(cult_mind.current, CULT_GREETING) equip_cultist(cult_mind.current) cult_mind.current.faction |= "cult" + var/datum/objective/servecult/obj = new + obj.owner = cult_mind + cult_mind.objectives += obj if(cult_mind.assigned_role == "Clown") to_chat(cult_mind.current, "A dark power has allowed you to overcome your clownish nature, letting you wield weapons without harming yourself.") @@ -96,54 +99,11 @@ GLOBAL_LIST_EMPTY(all_cults) add_cult_actions(cult_mind) update_cult_icons_added(cult_mind) cult_objs.study(cult_mind.current) + to_chat(cult_mind.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Cultist)") cult_threshold_check() addtimer(CALLBACK(src, .proc/cult_threshold_check), 2 MINUTES) // Check again in 2 minutes for latejoiners ..() -/** - * Decides at the start of the round how many conversions are needed to rise/ascend. - * - * The number is decided by (Percentage * (Players - Cultists)), so for example at 110 players it would be 11 conversions for rise. (0.1 * (110 - 4)) - * These values change based on population because 20 cultists are MUCH more powerful if there's only 50 players, compared to 120. - * - * Below 100 players, [CULT_RISEN_LOW] and [CULT_ASCENDANT_LOW] are used. - * Above 100 players, [CULT_RISEN_HIGH] and [CULT_ASCENDANT_HIGH] are used. - */ -/datum/game_mode/proc/cult_threshold_check() - var/players = length(GLOB.player_list) - var/cultists = get_cultists() // Don't count the starting cultists towards the number of needed conversions - if(players >= CULT_POPULATION_THRESHOLD) - // Highpop - ascend_percent = CULT_ASCENDANT_HIGH - rise_number = round(CULT_RISEN_HIGH * (players - cultists)) - ascend_number = round(CULT_ASCENDANT_HIGH * (players - cultists)) - else - // Lowpop - ascend_percent = CULT_ASCENDANT_LOW - rise_number = round(CULT_RISEN_LOW * (players - cultists)) - ascend_number = round(CULT_ASCENDANT_LOW * (players - cultists)) - -/** - * Returns the current number of cultists and constructs. - * - * Returns the number of cultists and constructs in a list ([1] = Cultists, [2] = Constructs), or as one combined number. - * - * * separate - Should the number be returned in two separate values (Humans and Constructs) or as one? - */ -/datum/game_mode/proc/get_cultists(separate = FALSE) - var/cultists = 0 - var/constructs = 0 - for(var/I in cult) - var/datum/mind/M = I - if(ishuman(M.current) && !M.current.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST)) - cultists++ - else if(isconstruct(M.current)) - constructs++ - if(separate) - return list(cultists, constructs) - else - return cultists + constructs - /datum/game_mode/proc/equip_cultist(mob/living/carbon/human/H, metal = TRUE) if(!istype(H)) return @@ -207,8 +167,84 @@ GLOBAL_LIST_EMPTY(all_cults) ascend(cult_mind.current) check_cult_size() cult_objs.study(cult_mind.current) + to_chat(cult_mind.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Cultist)") return TRUE +/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = TRUE, remove_gear = FALSE) + if(!(cult_mind in cult)) // Not actually a cultist in the first place + return + + var/mob/cultist = cult_mind.current + cult -= cult_mind + cultist.faction -= "cult" + cult_mind.special_role = null + for(var/datum/objective/servecult/S in cult_mind.objectives) + cult_mind.objectives -= S + qdel(S) + for(var/datum/action/innate/cult/C in cultist.actions) + qdel(C) + update_cult_icons_removed(cult_mind) + + if(ishuman(cultist)) + var/mob/living/carbon/human/H = cultist + REMOVE_TRAIT(H, CULT_EYES, null) + H.change_eye_color(H.original_eye_color, FALSE) + H.update_eyes() + H.remove_overlay(HALO_LAYER) + H.update_body() + if(remove_gear) // No flagellants robe for non-cultists + for(var/I in H.contents) + if(is_type_in_list(I, CULT_CLOTHING)) + H.unEquip(I) + check_cult_size() + if(show_message) + cultist.visible_message("[cultist] looks like [cultist.p_they()] just reverted to [cultist.p_their()] old faith!", + "An unfamiliar white light flashes through your mind, cleansing the taint of [SSticker.cultdat ? SSticker.cultdat.entity_title1 : "Nar'Sie"] and the memories of your time as their servant with it.") + + +/** + * Decides at the start of the round how many conversions are needed to rise/ascend. + * + * The number is decided by (Percentage * (Players - Cultists)), so for example at 110 players it would be 11 conversions for rise. (0.1 * (110 - 4)) + * These values change based on population because 20 cultists are MUCH more powerful if there's only 50 players, compared to 120. + * + * Below 100 players, [CULT_RISEN_LOW] and [CULT_ASCENDANT_LOW] are used. + * Above 100 players, [CULT_RISEN_HIGH] and [CULT_ASCENDANT_HIGH] are used. + */ +/datum/game_mode/proc/cult_threshold_check() + var/players = length(GLOB.player_list) + var/cultists = get_cultists() // Don't count the starting cultists towards the number of needed conversions + if(players >= CULT_POPULATION_THRESHOLD) + // Highpop + ascend_percent = CULT_ASCENDANT_HIGH + rise_number = round(CULT_RISEN_HIGH * (players - cultists)) + ascend_number = round(CULT_ASCENDANT_HIGH * (players - cultists)) + else + // Lowpop + ascend_percent = CULT_ASCENDANT_LOW + rise_number = round(CULT_RISEN_LOW * (players - cultists)) + ascend_number = round(CULT_ASCENDANT_LOW * (players - cultists)) + +/** + * Returns the current number of cultists and constructs. + * + * Returns the number of cultists and constructs in a list ([1] = Cultists, [2] = Constructs), or as one combined number. + * + * * separate - Should the number be returned as a list with two separate values (Humans and Constructs) or as one number. + */ +/datum/game_mode/proc/get_cultists(separate = FALSE) + var/cultists = 0 + var/constructs = 0 + for(var/I in cult) + var/datum/mind/M = I + if(ishuman(M.current) && !M.current.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST)) + cultists++ + else if(isconstruct(M.current)) + constructs++ + if(separate) + return list(cultists, constructs) + else + return cultists + constructs /datum/game_mode/proc/check_cult_size() if(cult_ascendant) @@ -238,6 +274,8 @@ GLOBAL_LIST_EMPTY(all_cults) /datum/game_mode/proc/rise(cultist) if(ishuman(cultist) && iscultist(cultist)) var/mob/living/carbon/human/H = cultist + if(!H.original_eye_color) + H.original_eye_color = H.get_eye_color() H.change_eye_color(BLOODCULT_EYE, FALSE) H.update_eyes() ADD_TRAIT(H, CULT_EYES, CULT_TRAIT) @@ -249,29 +287,6 @@ GLOBAL_LIST_EMPTY(all_cults) new /obj/effect/temp_visual/cult/sparks(get_turf(H), H.dir) H.update_halo_layer() - -/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, show_message = TRUE) - if(cult_mind in cult) - var/mob/cultist = cult_mind.current - cult -= cult_mind - cultist.faction -= "cult" - cult_mind.special_role = null - for(var/datum/action/innate/cult/C in cultist.actions) - qdel(C) - update_cult_icons_removed(cult_mind) - - if(ishuman(cultist)) - var/mob/living/carbon/human/H = cultist - REMOVE_TRAIT(H, CULT_EYES, null) - H.change_eye_color(H.original_eye_color, FALSE) - H.update_eyes() - H.remove_overlay(HALO_LAYER) - H.update_body() - check_cult_size() - if(show_message) - cultist.visible_message("[cultist] looks like [cultist.p_they()] just reverted to [cultist.p_their()] old faith!", - "An unfamiliar white light flashes through your mind, cleansing the taint of [SSticker.cultdat ? SSticker.cultdat.entity_title1 : "Nar'Sie"] and the memories of your time as their servant with it.") - /datum/game_mode/proc/update_cult_icons_added(datum/mind/cult_mind) var/datum/atom_hud/antag/culthud = GLOB.huds[ANTAG_HUD_CULT] if(cult_mind.current) diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index ca1938a76ea..24ffbb96ce3 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -316,7 +316,8 @@ var/mob/living/carbon/C = user if(C.pulling) var/atom/movable/pulled = C.pulling - pulled.forceMove(T) + var/turf/turf_behind = get_turf(get_step(T, turn(C.dir, 180))) + pulled.forceMove(turf_behind) . = pulled /obj/item/cult_shift/attack_self(mob/user) @@ -324,7 +325,7 @@ to_chat(user, "[src] is dull and unmoving in your hands.") return if(!iscultist(user)) - user.unEquip(src, 1) + user.unEquip(src, TRUE) step(src, pick(GLOB.alldirs)) to_chat(user, "[src] flickers out of your hands, too eager to move!") return @@ -332,36 +333,31 @@ var/outer_tele_radius = 9 var/mob/living/carbon/C = user - var/turf/mobloc = get_turf(C) - var/list/turfs = new/list() - for(var/turf/T in range(user, outer_tele_radius)) + var/list/turfs = list() + for(var/turf/T in orange(user, outer_tele_radius)) if(!is_teleport_allowed(T.z)) break - if(get_dir(C, T) != C.dir) + if(get_dir(C, T) != C.dir) // This seems like a very bad way to do this continue - if(T == mobloc) - continue - if(istype(T, /turf/space)) + if(isspaceturf(T)) continue if(T.x > world.maxx-outer_tele_radius || T.x < outer_tele_radius) continue //putting them at the edge is dumb if(T.y > world.maxy-outer_tele_radius || T.y < outer_tele_radius) continue - turfs += T - if(turfs) + if(length(turfs)) uses-- + var/turf/mobloc = get_turf(C) var/turf/destination = pick(turfs) if(uses <= 0) - icon_state ="shifter_drained" - playsound(mobloc, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + icon_state = "shifter_drained" + playsound(src, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, C.dir) - var/atom/movable/pulled = handle_teleport_grab(destination, C) + handle_teleport_grab(destination, C) C.forceMove(destination) - if(pulled) - C.start_pulling(pulled) //forcemove resets pulls, so we need to re-pull new /obj/effect/temp_visual/dir_setting/cult/phase(destination, C.dir) playsound(destination, 'sound/effects/phasein.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) diff --git a/code/game/gamemodes/cult/cult_objectives.dm b/code/game/gamemodes/cult/cult_objectives.dm index 4565e66ff29..ca8921b7534 100644 --- a/code/game/gamemodes/cult/cult_objectives.dm +++ b/code/game/gamemodes/cult/cult_objectives.dm @@ -133,13 +133,13 @@ for(var/mob/living/carbon/human/H in GLOB.player_list) if(is_admin_level(H.z)) //We can't sacrifice people that are on the centcom z-level continue - if(H.mind && !is_convertable_to_cult(H.mind) && (H.stat != DEAD) && (H.mind.offstation_role != TRUE)) + if(H.mind && !iscultist(H) && !is_convertable_to_cult(H.mind) && (H.stat != DEAD) && !H.mind.offstation_role) target_candidates += H.mind if(!length(target_candidates)) //There are no living unconvertables on the station. Looking for a Sacrifice Target among the ordinary crewmembers for(var/mob/living/carbon/human/H in GLOB.player_list) if(is_admin_level(H.z)) //We can't sacrifice people that are on the centcom z-level continue - if(H.mind && !iscultist(H) && (H.stat != DEAD) && (H.mind.offstation_role != TRUE)) + if(H.mind && !iscultist(H) && (H.stat != DEAD) && !H.mind.offstation_role) // Same checks, but add them even if they could be converted target_candidates += H.mind if(length(target_candidates)) target = pick(target_candidates) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 5211b82ea44..47a53ef89c6 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -84,6 +84,10 @@ /obj/item/melee/cultblade/dagger/proc/can_scribe(mob/living/user) if(!src || !user || loc != user || user.incapacitated()) return FALSE + if(drawing_rune) + to_chat(user, "You're already drawing a rune!") + return FALSE + var/turf/T = get_turf(user) if(isspaceturf(T)) return FALSE @@ -135,12 +139,12 @@ to_chat(user, "The veil is not weak enough here to summon a cultist, you must be on station!") return - var/old_color = user.color // we'll temporarily redden the user for better feedback to fellow cultists. Store this to revert them back. + var/old_color = user.color // we'll temporarily redden the user for better feedback to fellow cultists. Store this to revert them back. if(narsie_rune) if(!narsie_rune_check(user, A)) return // don't do shit var/list/summon_areas = gamemode.cult_objs.obj_summon.summon_spots - if(!(A in summon_areas)) // Check again to make sure they didn't move + if(!(A in summon_areas)) // Check again to make sure they didn't move to_chat(user, "The ritual can only begin where the veil is weak - in [english_list(summon_areas)]!") return GLOB.command_announcement.Announce("Figments from an eldritch god are being summoned into the [A.map_name] from an unknown dimension. Disrupt the ritual at all costs, before the station is destroyed! Space law and SOP are suspended. The entire crew must kill cultists on sight.", "Central Command Higher Dimensional Affairs", 'sound/AI/spanomalies.ogg') @@ -148,7 +152,7 @@ var/turf/T = I var/obj/machinery/shield/cult/narsie/N = new(T) shields |= N - user.color = "red" + user.color = COLOR_RED // Draw the rune var/mob/living/carbon/human/H = user @@ -161,12 +165,14 @@ user.visible_message(others_message, "You slice open your body and begin drawing a sigil of [SSticker.cultdat.entity_title3].") + drawing_rune = TRUE // Only one at a time var/scribe_successful = do_after(user, initial(rune.scribe_delay) * scribe_multiplier, target = runeturf) for(var/V in shields) // Only used for the 'Tear Veil' rune var/obj/machinery/shield/S = V if(S && !QDELETED(S)) qdel(S) user.color = old_color + drawing_rune = FALSE if(!scribe_successful) return diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 4c98a3c59d3..272076e1f67 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -263,6 +263,8 @@ structure_check() searches for nearby cultist structures required for the invoca var/turf/T = get_turf(src) for(var/mob/living/M in T) if(!iscultist(M) || (M.mind && is_sacrifice_target(M.mind))) + if(isconstruct(M)) // No offering constructs please + continue offer_targets += M // Offering a head/brain @@ -418,6 +420,8 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/teleport/Destroy() GLOB.teleport_runes -= src + QDEL_NULL(inner_portal) + QDEL_NULL(outer_portal) return ..() /obj/effect/rune/teleport/invoke(list/invokers) @@ -452,7 +456,7 @@ structure_check() searches for nearby cultist structures required for the invoca 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(!src || !Adjacent(user) || QDELETED(src) || user.incapacitated() || !actual_selected_rune) + if(QDELETED(src) || QDELETED(actual_selected_rune) ||!Adjacent(user) || user.incapacitated()) fail_invoke() return @@ -685,7 +689,7 @@ structure_check() searches for nearby cultist structures required for the invoca cultists[M.current.real_name] = M.current var/input = input(user, "Who do you wish to call to [src]?", "Acolytes") as null|anything in cultists var/mob/living/cultist_to_summon = cultists[input] - if(!src || QDELETED(src) || !Adjacent(user) || user.incapacitated()) + if(QDELETED(src) || !Adjacent(user) || user.incapacitated()) return if(!cultist_to_summon) log_game("Summon Cultist rune failed - no target") @@ -882,6 +886,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/mob/living/carbon/human/new_human = new(T) new_human.real_name = ghost_to_spawn.real_name new_human.key = ghost_to_spawn.key + new_human.gender = ghost_to_spawn.gender new_human.alpha = 150 //Makes them translucent new_human.equipOutfit(/datum/outfit/ghost_cultist) //give them armor new_human.apply_status_effect(STATUS_EFFECT_SUMMONEDGHOST) //ghosts can't summon more ghosts, also lets you see actual ghosts @@ -999,7 +1004,7 @@ structure_check() searches for nearby cultist structures required for the invoca //BEGIN THE SUMMONING gamemode.cult_objs.succesful_summon() used = TRUE - color = rgb(255, 0, 0) + color = COLOR_RED ..() SEND_SOUND(world, sound('sound/effects/dimensional_rend.ogg')) to_chat(world, "The veil... is... TORN!!!--") diff --git a/code/game/gamemodes/devil/contracts/friend.dm b/code/game/gamemodes/devil/contracts/friend.dm deleted file mode 100644 index 8838dc8a371..00000000000 --- a/code/game/gamemodes/devil/contracts/friend.dm +++ /dev/null @@ -1,54 +0,0 @@ -/obj/effect/mob_spawn/human/demonic_friend - name = "Essence of friendship" - desc = "Oh boy! Oh boy! A friend!" - mob_name = "Demonic friend" - icon = 'icons/obj/cardboard_cutout.dmi' - icon_state = "cutout_basic" - outfit = /datum/outfit/demonic_friend - death = FALSE - roundstart = FALSE - random = TRUE - id_job = "SuperFriend" - id_access = "assistant" - var/obj/effect/proc_holder/spell/targeted/summon_friend/spell - var/datum/mind/owner - assignedrole = "SuperFriend" - -/obj/effect/mob_spawn/human/demonic_friend/Initialize(mapload, datum/mind/owner_mind, obj/effect/proc_holder/spell/targeted/summon_friend/summoning_spell) - . = ..() - owner = owner_mind - description = "Be someone's loyal friend/slave. If they die, you die as well." //best I could think of in the moment, not sure how this role plays in practise, have never seen it. - flavour_text = "You have been given a reprieve from your eternity of torment, to be [owner.name]'s friend for [owner.p_their()] short mortal coil. Be aware that if you do not live up to [owner.name]'s expectations, [owner.p_they()] can send you back to hell with a single thought. [owner.name]'s death will also return you to hell." - var/area/A = get_area(src) - if(!mapload && A) - notify_ghosts("\A friendship shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = TRUE) - objectives = "Be [owner.name]'s friend, and keep [owner.name] alive, so you don't get sent back to hell." - spell = summoning_spell - - -/obj/effect/mob_spawn/human/demonic_friend/special(mob/living/L) - if(!QDELETED(owner.current) && owner.current.stat != DEAD) - L.real_name = "[owner.name]'s best friend" - L.name = L.real_name - soullink(/datum/soullink/oneway/devilfriend, owner.current, L) - spell.friend = L - spell.charge_counter = spell.charge_max - L.mind.hasSoul = FALSE - var/mob/living/carbon/human/H = L - var/obj/item/worn = H.wear_id - var/obj/item/card/id/id = worn.GetID() - id.registered_name = L.real_name - id.update_label() - to_chat(owner.current, "Your friend has arrived!") - else - to_chat(L, "Your owner is already dead! You will soon perish.") - addtimer(CALLBACK(L, /mob.proc/dust), 150) //Give em a few seconds as a mercy. - -/datum/outfit/demonic_friend - name = "Demonic Friend" - uniform = /obj/item/clothing/under/assistantformal - shoes = /obj/item/clothing/shoes/laceup - r_pocket = /obj/item/radio/off - back = /obj/item/storage/backpack - implants = list(/obj/item/implant/mindshield) //No revolutionaries, he's MY friend. - id = /obj/item/card/id diff --git a/code/game/gamemodes/devil/devil.dm b/code/game/gamemodes/devil/devil.dm deleted file mode 100644 index 06933891ba6..00000000000 --- a/code/game/gamemodes/devil/devil.dm +++ /dev/null @@ -1,48 +0,0 @@ -GLOBAL_LIST_INIT(whiteness, list( - /obj/item/clothing/under/color/white = 2, - /obj/item/clothing/under/rank/bartender = 1, - /obj/item/clothing/under/rank/chef = 1, - /obj/item/clothing/under/rank/chief_engineer = 1, - /obj/item/clothing/under/rank/scientist = 1, - /obj/item/clothing/under/rank/chemist = 1, - /obj/item/clothing/under/rank/chief_medical_officer = 1, - /obj/item/clothing/under/rank/geneticist = 1, - /obj/item/clothing/under/rank/virologist = 1, - /obj/item/clothing/under/rank/nursesuit = 1, - /obj/item/clothing/under/rank/medical = 1, - /obj/item/clothing/under/rank/psych = 1, - /obj/item/clothing/under/rank/orderly = 1, - /obj/item/clothing/under/rank/security/brigphys = 1, - /obj/item/clothing/under/rank/internalaffairs = 1, - /obj/item/clothing/under/rank/ntrep = 1, - /obj/item/clothing/under/det = 1, - /obj/item/clothing/under/wedding/bride_white = 1, - /obj/item/clothing/under/mafia/white = 1, - /obj/item/clothing/under/noble_clothes = 1, - /obj/item/clothing/under/sl_suit = 1, - /obj/item/clothing/under/burial = 1 -)) - - - -/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)) - 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 - if(GLOB.whiteness[U.type]) - src.visible_message("[src] seems to have been harmed by the purity of [attacker]'s clothes.", "Unsullied white clothing is disrupting your form.") - return GLOB.whiteness[U.type] + 1 - if(BANE_TOOLBOX) - if(istype(weapon,/obj/item/storage/toolbox)) - src.visible_message("The [weapon] seems unusually robust this time.", "The [weapon] is your unmaking!") - return 2.5 // Will take four hits with a normal toolbox. - if(BANE_HARVEST) - if(istype(weapon,/obj/item/reagent_containers/food/snacks/grown/) || istype(weapon,/obj/item/grown)) - src.visible_message("The spirits of the harvest aid in the exorcism.", "The harvest spirits are harming you.") - src.Weaken(2) - qdel(weapon) - return 2 - return 1 diff --git a/code/game/gamemodes/devil/devil_agent/devil_agent.dm b/code/game/gamemodes/devil/devil_agent/devil_agent.dm deleted file mode 100644 index e9a1d998a7a..00000000000 --- a/code/game/gamemodes/devil/devil_agent/devil_agent.dm +++ /dev/null @@ -1,38 +0,0 @@ -/datum/game_mode/devil/devil_agents - name = "Devil Agents" - config_tag = "devilagents" - required_players = 25 - required_enemies = 3 - recommended_enemies = 8 - - 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 - -/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/forge_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_game_mode.dm b/code/game/gamemodes/devil/devil_game_mode.dm deleted file mode 100644 index 3ea91343f6b..00000000000 --- a/code/game/gamemodes/devil/devil_game_mode.dm +++ /dev/null @@ -1,67 +0,0 @@ -/datum/game_mode/devil - name = "devil" - config_tag = "devil" - protected_jobs = list("Security Officer", "Warden", "Detective", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", - "Internal Affairs Agent", "Librarian", "Chaplain", "Head of Security", "Captain", "Brig Physician", - "Nanotrasen Navy Officer", "Special Operations Officer", "AI", "Cyborg") - required_players = 2 - required_enemies = 1 - recommended_enemies = 4 - - 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 - var/devil_scale_coefficient = 10 - -/datum/game_mode/devil/announce() - to_chat(world, {"The current game mode is - Devil!
) - Devils: Purchase souls and tempt the crew to sin!
- 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 - - var/list/possible_devils = get_players_for_role(ROLE_DEVIL) - var/num_devils = 0 - if(!possible_devils.len) - return 0 - if(config.traitor_scaling) - num_devils = max(1, round((num_players())/(devil_scale_coefficient))+1) - else - num_devils = max(1, min(num_players(), traitors_possible)) - - - for(var/j = 0, j < num_devils, j++) - if (!possible_devils.len) - break - var/datum/mind/devil = pick(possible_devils) - devils += devil - devil.special_role = ROLE_DEVIL - devil.restricted_roles = restricted_jobs - - log_game("[devil.key] (ckey) has been selected as a [config_tag]") - possible_devils.Remove(devil) - - if(devils.len < required_enemies) - return 0 - return 1 - - -/datum/game_mode/devil/post_setup() - for(var/datum/mind/devil in devils) - spawn(rand(10, 100)) - finalize_devil(devil, TRUE) - spawn(100) - forge_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.devilinfo.announce_laws(devil.current) - var/obj_count = 1 - to_chat(devil.current, " Your current objectives:") - for(var/datum/objective/objective in devil.objectives) - to_chat(devil.current, "Objective #[obj_count]: [objective.explanation_text]") - obj_count++ - modePlayer += devils - ..() - return 1 diff --git a/code/game/gamemodes/devil/devilinfo.dm b/code/game/gamemodes/devil/devilinfo.dm deleted file mode 100644 index 6a7646d5e2e..00000000000 --- a/code/game/gamemodes/devil/devilinfo.dm +++ /dev/null @@ -1,559 +0,0 @@ -#define BLOOD_THRESHOLD 3 //How many souls are needed per stage. -#define TRUE_THRESHOLD 7 -#define ARCH_THRESHOLD 12 - -#define BASIC_DEVIL 0 -#define BLOOD_LIZARD 1 -#define TRUE_DEVIL 2 -#define ARCH_DEVIL 3 - -#define LOSS_PER_DEATH 2 - -#define SOULVALUE (soulsOwned.len-reviveNumber) - -#define DEVILRESURRECTTIME 600 - -GLOBAL_LIST_EMPTY(allDevils) -GLOBAL_LIST_INIT(lawlorify, list ( - LORE = list( - OBLIGATION_FOOD = "This devil seems to always offer it's 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.", - OBLIGATION_ANNOUNCEKILL = "This devil always loudly announces his kills for the world to hear.", - OBLIGATION_ANSWERTONAME = "This devil always responds to his truename.", - BANE_SILVER = "Silver seems to gravely injure this devil.", - BANE_SALT = "Throwing salt at this devil will hinder his ability to use infernal powers temporarily.", - BANE_LIGHT = "Bright flashes will disorient the devil, likely causing him to flee.", - BANE_IRON = "Cold iron will slowly injure him, until he can purge it from his system.", - BANE_WHITECLOTHES = "Wearing clean white clothing will help ward off this devil.", - BANE_HARVEST = "Presenting the labors of a harvest will disrupt the devil.", - BANE_TOOLBOX = "That which holds the means of creation also holds the means of the devil's undoing.", - BAN_HURTWOMAN = "This devil seems to prefer hunting men.", - BAN_CHAPEL = "This devil avoids holy ground.", - BAN_HURTPRIEST = "The anointed clergy appear to be immune to his powers.", - BAN_AVOIDWATER = "The devil seems to have some sort of aversion to water, though it does not appear to harm him.", - BAN_STRIKEUNCONCIOUS = "This devil only shows interest in those who are awake.", - BAN_HURTLIZARD = "This devil will not strike an Unathi first.", - BAN_HURTANIMAL = "This devil avoids hurting animals.", - BANISH_WATER = "To banish the devil, you must infuse it's body with holy water.", - 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_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_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_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.", - OBLIGATION_ANNOUNCEKILL = "Upon killing someone, you must make your deed known to all within earshot, over comms if reasonably possible.", - OBLIGATION_ANSWERTONAME = "If you are not under attack, you must always respond to your true name.", - BAN_HURTWOMAN = "You must never harm a female outside of self defense.", - BAN_CHAPEL = "You must never attempt to enter the chapel.", - BAN_HURTPRIEST = "You must never attack a priest.", - BAN_AVOIDWATER = "You must never willingly touch a wet surface.", - BAN_STRIKEUNCONCIOUS = "You must never strike an unconscious person.", - BAN_HURTLIZARD = "You must never harm an Unathi 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_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.", - BANE_WHITECLOTHES = "Those clad in pristine white garments will strike you true.", - BANE_HARVEST = "The fruits of the harvest shall be your downfall.", - BANE_TOOLBOX = "Toolboxes are bad news for you, for some reason.", - BANISH_WATER = "If your corpse is filled with holy water, you will be unable to resurrect.", - BANISH_COFFIN = "If your corpse is in a coffin, you will be unable to resurrect.", - BANISH_FORMALDYHIDE = "If your corpse is embalmed, you will be unable to resurrect.", - BANISH_RUNES = "If your corpse is placed within a rune, you will be unable to resurrect.", - BANISH_CANDLES = "If your corpse is near lit candles, you will be unable to resurrect.", - BANISH_DESTRUCTION = "If your corpse is destroyed, you will be unable to resurrect.", - BANISH_FUNERAL_GARB = "If your corpse is clad in funeral garments, you will be unable to resurrect." - ) - )) - -/datum/devilinfo - var/datum/mind/owner = null - var/obligation - var/ban - var/bane - var/banish - var/truename - var/list/datum/mind/soulsOwned = new - var/datum/dna/humanform = null - var/reviveNumber = 0 - var/form = BASIC_DEVIL - var/exists = 0 - var/static/list/dont_remove_spells = list( - /obj/effect/proc_holder/spell/targeted/click/summon_contract, - /obj/effect/proc_holder/spell/targeted/conjure_item/violin, - /obj/effect/proc_holder/spell/targeted/summon_dancefloor) - var/ascendable = FALSE - -/datum/devilinfo/New() - ..() - dont_remove_spells = typecacheof(dont_remove_spells) - -/proc/randomDevilInfo(name = randomDevilName()) - var/datum/devilinfo/devil = new - devil.truename = name - devil.bane = randomdevilbane() - devil.obligation = randomdevilobligation() - devil.ban = randomdevilban() - devil.banish = randomdevilbanish() - return devil - -/proc/devilInfo(name, saveDetails = 0) - if(GLOB.allDevils[lowertext(name)]) - return GLOB.allDevils[lowertext(name)] - else - var/datum/devilinfo/devil = randomDevilInfo(name) - GLOB.allDevils[lowertext(name)] = devil - devil.exists = saveDetails - return devil - - - -/proc/randomDevilName() - var/preTitle = "" - var/title = "" - var/mainName = "" - var/suffix = "" - if(prob(65)) - if(prob(35)) - preTitle = pick("Dark ", "Hellish ", "Fiery ", "Sinful ", "Blood ") - title = pick("Lord ", "Fallen Prelate ", "Count ", "Viscount ", "Vizier ", "Elder ", "Adept ") - var/probability = 100 - mainName = pick("Hal", "Ve", "Odr", "Neit", "Ci", "Quon", "Mya", "Folth", "Wren", "Gyer", "Geyr", "Hil", "Niet", "Twou", "Hu", "Don") - while(prob(probability)) - mainName += pick("hal", "ve", "odr", "neit", "ca", "quon", "mya", "folth", "wren", "gyer", "geyr", "hil", "niet", "twoe", "phi", "coa") - probability -= 20 - if(prob(40)) - suffix = pick(" the Red", " the Soulless", " the Master", ", the Lord of all things", ", Jr.") - return preTitle + title + mainName + suffix - -/proc/randomdevilobligation() - 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) - -/proc/randomdevilbane() - return pick(BANE_SALT, BANE_LIGHT, BANE_IRON, BANE_WHITECLOTHES, BANE_SILVER, BANE_HARVEST, BANE_TOOLBOX) - -/proc/randomdevilbanish() - return pick(BANISH_WATER, BANISH_COFFIN, BANISH_FORMALDYHIDE, BANISH_RUNES, BANISH_CANDLES, BANISH_DESTRUCTION, BANISH_FUNERAL_GARB) - -/datum/devilinfo/proc/link_with_mob(mob/living/L) - if(istype(L, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = L - humanform = H.dna.Clone() - owner = L.mind - give_base_spells(1) - -/datum/devilinfo/proc/add_soul(datum/mind/soul) - if(soulsOwned.Find(soul)) - return - soulsOwned += soul - owner.current.set_nutrition(NUTRITION_LEVEL_FULL) - to_chat(owner.current, "You feel satiated as you received a new soul.") - update_hud() - switch(SOULVALUE) - if(0) - to_chat(owner.current, "Your hellish powers have been restored.") - give_base_spells() - if(BLOOD_THRESHOLD) - to_chat(owner.current, "You feel as though your humanoid form is about to shed. You will soon turn into a blood lizard.") - sleep(50) - increase_blood_lizard() - if(TRUE_THRESHOLD) - to_chat(owner.current, "You feel as though your current form is about to shed. You will soon turn into a true devil.") - sleep(50) - increase_true_devil() - if(ARCH_THRESHOLD) - arch_devil_prelude() - increase_arch_devil() - -/datum/devilinfo/proc/remove_soul(datum/mind/soul) - if(soulsOwned.Remove(soul)) - to_chat(owner.current, "You feel as though a soul has slipped from your grasp.") - check_regression() - update_hud() - -/datum/devilinfo/proc/check_regression() - if(form == ARCH_DEVIL) - return //arch devil can't regress - //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() - to_chat(owner.current, "As punishment for your failures, all of your powers except contract creation have been revoked.") - -/datum/devilinfo/proc/regress_humanoid() - to_chat(owner.current, "Your powers weaken, have more contracts be signed to regain power.") - if(istype(owner.current, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = owner.current - if(humanform) - H.set_species(humanform.species) - H.dna = humanform.Clone() - H.sync_organ_dna(assimilate = 0) - else - H.set_species(/datum/species/human) - // TODO: Add some appearance randomization here or something - humanform = H.dna.Clone() - H.regenerate_icons() - else - owner.current.color = "" - give_base_spells() - if(istype(owner.current.loc, /obj/effect/dummy/slaughter)) - owner.current.forceMove(get_turf(owner.current))//Fixes dying while jaunted leaving you permajaunted. - form = BASIC_DEVIL - -/datum/devilinfo/proc/regress_blood_lizard() - var/mob/living/carbon/true_devil/D = owner.current - to_chat(D, "Your powers weaken, have more contracts be signed to regain power.") - D.oldform.loc = D.loc - owner.transfer_to(D.oldform) - D.oldform.status_flags &= ~GODMODE - give_lizard_spells() - qdel(D) - form = BLOOD_LIZARD - update_hud() - - -/datum/devilinfo/proc/increase_blood_lizard() - if(ishuman(owner.current)) - var/mob/living/carbon/human/H = owner.current - var/list/language_temp = H.languages.Copy() - H.set_species(/datum/species/unathi) - H.languages = language_temp - H.underwear = "Nude" - H.undershirt = "Nude" - H.socks = "Nude" - H.change_skin_color(80, 16, 16) //A deep red - H.regenerate_icons() - else //Did the devil get hit by a staff of transmutation? - owner.current.color = "#501010" - give_lizard_spells() - form = BLOOD_LIZARD - - - -/datum/devilinfo/proc/increase_true_devil() - var/mob/living/carbon/true_devil/A = new /mob/living/carbon/true_devil(owner.current.loc, owner.current) - A.faction |= "hell" - // Put the old body in stasis - owner.current.status_flags |= GODMODE - owner.current.loc = A - A.oldform = owner.current - owner.transfer_to(A) - A.set_name() - give_true_spells() - form = TRUE_DEVIL - update_hud() - -/datum/devilinfo/proc/arch_devil_prelude() - if(!ascendable) - return - var/mob/living/carbon/true_devil/D = owner.current - to_chat(D, "You feel as though your form is about to ascend.") - sleep(50) - if(!D) - return - D.visible_message("[D]'s skin begins to erupt with spikes.", \ - "Your flesh begins creating a shield around yourself.") - sleep(100) - if(!D) - return - D.visible_message("The horns on [D]'s head slowly grow and elongate.", \ - "Your body continues to mutate. Your telepathic abilities grow.") - sleep(90) - if(!D) - return - D.visible_message("[D]'s body begins to violently stretch and contort.", \ - "You begin to rend apart the final barriers to ultimate power.") - sleep(40) - if(!D) - return - to_chat(D, "Yes!") - sleep(10) - if(!D) - return - to_chat(D, "YES!!") - sleep(10) - if(!D) - return - to_chat(D, "YE--") - sleep(1) - if(!D) - return - to_chat(world, "SLOTH, WRATH, GLUTTONY, ACEDIA, ENVY, GREED, PRIDE! FIRES OF HELL AWAKEN!!") - SEND_SOUND(world, sound('sound/hallucinations/veryfar_noise.ogg')) - sleep(50) - if(!SSticker.mode.devil_ascended) - SSshuttle.emergency.request(null, 0.3) - SSticker.mode.devil_ascended++ - -/datum/devilinfo/proc/increase_arch_devil() - if(!ascendable) - return - var/mob/living/carbon/true_devil/D = owner.current - if(!istype(D)) - return - give_arch_spells() - D.convert_to_archdevil() - if(istype(D.loc, /obj/effect/dummy/slaughter)) - D.forceMove(get_turf(D)) - var/area/A = get_area(owner.current) - if(A) - notify_ghosts("An arch devil has ascended in [A.name]. Reach out to the devil to start climbing the infernal corporate ladder.", title = "Arch Devil Ascended", source = owner.current, action = NOTIFY_ATTACK) - form = ARCH_DEVIL - -/datum/devilinfo/proc/remove_spells() - for(var/X in owner.spell_list) - var/obj/effect/proc_holder/spell/S = X - if(!is_type_in_typecache(S, dont_remove_spells)) - owner.RemoveSpell(S) - -/datum/devilinfo/proc/give_summon_contract() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/click/summon_contract(null)) - - -/datum/devilinfo/proc/give_base_spells(give_summon_contract = 0) - remove_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/click/fireball/hellish(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/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/conjure_item/pitchfork(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/click/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/conjure_item/pitchfork/greater(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/click/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/conjure_item/pitchfork/ascended(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch/ascended(null)) - -/datum/devilinfo/proc/beginResurrectionCheck(mob/living/body) - if(owner.current != body) - body = owner.current - if(SOULVALUE > 0) - to_chat(owner.current, "Your body has been damaged to the point that you may no longer use it. At the cost of some of your power, you will return to life soon.") - addtimer(CALLBACK(src, "activateResurrection", body), DEVILRESURRECTTIME) - else - to_chat(owner.messageable_mob(), "Your hellish powers are too weak to resurrect yourself.") - -/datum/devilinfo/proc/activateResurrection(mob/living/body) - if(QDELETED(body) || body.stat == DEAD) - if(SOULVALUE > 0) - if(check_banishment(body)) - to_chat(owner.messageable_mob(), "Unfortunately, the mortals have finished a ritual that prevents your resurrection.") - return -1 - else - to_chat(owner.messageable_mob(), "WE LIVE AGAIN!") - return hellish_resurrection(body) - else - to_chat(owner.messageable_mob(), "Unfortunately, the power that stemmed from your contracts has been extinguished. You no longer have enough power to resurrect.") - return -1 - else - to_chat(owner.current, "You seem to have resurrected without your hellish powers.") - -/datum/devilinfo/proc/check_banishment(mob/living/body) - switch(banish) - if(BANISH_WATER) - if(!QDELETED(body) && iscarbon(body)) - var/mob/living/carbon/H = body - return H.reagents.has_reagent("holy water") - return 0 - if(BANISH_COFFIN) - return (!QDELETED(body) && istype(body.loc, /obj/structure/closet/coffin)) - if(BANISH_FORMALDYHIDE) - if(!QDELETED(body) && iscarbon(body)) - var/mob/living/carbon/H = body - return H.reagents.has_reagent("formaldehyde") - return 0 - if(BANISH_RUNES) - if(!QDELETED(body)) - for(var/obj/effect/decal/cleanable/crayon/R in range(0,body)) - if (R.name == "rune") - return 1 - return 0 - if(BANISH_CANDLES) - if(!QDELETED(body)) - var/count = 0 - for(var/obj/item/candle/C in range(1,body)) - count += C.lit - if(count>=4) - return 1 - return 0 - if(BANISH_DESTRUCTION) - if(!QDELETED(body)) - return 0 - return 1 - if(BANISH_FUNERAL_GARB) - if(!QDELETED(body) && iscarbon(body)) - var/mob/living/carbon/human/H = body - if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/burial)) - return 1 - return 0 - else - for(var/obj/item/clothing/under/burial/B in range(0,body)) - if(B.loc == get_turf(B)) //Make sure it's not in someone's inventory or something. - return 1 - return 0 - -/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 && ascendable) // once ascended, arch devils do not go down in power by any means. - reviveNumber += LOSS_PER_DEATH - update_hud() - if(!QDELETED(body)) - body.revive() - if(!body.client) - var/mob/dead/observer/O = owner.get_ghost() - O.reenter_corpse() - if(istype(body.loc, /obj/effect/dummy/slaughter)) - body.forceMove(get_turf(body))//Fixes dying while jaunted leaving you permajaunted. - if(istype(body, /mob/living/carbon/true_devil)) - var/mob/living/carbon/true_devil/D = body - if(D.oldform) - D.oldform.revive() // Heal the old body too, so the devil doesn't resurrect, then immediately regress into a dead body. - if(body.stat == DEAD) // Not sure why this would happen - create_new_body() - else if(GLOB.blobstart.len > 0) - // teleport the body so repeated beatdowns aren't an option) - body.forceMove(get_turf(pick(GLOB.blobstart))) - // give them the devil lawyer outfit in case they got stripped - if(ishuman(body)) - var/mob/living/carbon/human/H = body - H.equipOutfit(/datum/outfit/devil_lawyer) - else - create_new_body() - check_regression() - -/datum/devilinfo/proc/create_new_body() - if(GLOB.blobstart.len > 0) - var/turf/targetturf = get_turf(pick(GLOB.blobstart)) - var/mob/currentMob = owner.current - if(QDELETED(currentMob)) - currentMob = owner.get_ghost() - if(!currentMob) - message_admins("[owner.name]'s devil resurrection failed due to client logoff. Aborting.") - return -1 - if(currentMob.mind != owner) - message_admins("[owner.name]'s devil resurrection failed due to becoming a new mob. Aborting.") - return -1 - var/mob/living/carbon/human/H = new /mob/living/carbon/human(targetturf) - owner.transfer_to(H) - if(isobserver(currentMob)) - var/mob/dead/observer/O = currentMob - O.reenter_corpse() - if(humanform) - H.set_species(humanform.species) - H.dna = humanform.Clone() - - H.dna.UpdateSE() - H.dna.UpdateUI() - - H.sync_organ_dna(1) // It's literally a fresh body as you can get, so all organs properly belong to it - H.UpdateAppearance() - else - // gibbed cyborg or similar - create a randomized "humanform" appearance - H.scramble_appearance() - humanform = H.dna.Clone() - - - H.equipOutfit(/datum/outfit/devil_lawyer) - give_base_spells(TRUE) - if(SOULVALUE >= BLOOD_THRESHOLD) - increase_blood_lizard() - if(SOULVALUE >= TRUE_THRESHOLD) //Yes, BOTH this and the above if statement are to run if soulpower is high enough. - increase_true_devil() - if(SOULVALUE >= ARCH_THRESHOLD && ascendable) - increase_arch_devil() - else - throw EXCEPTION("Unable to find a blobstart landmark for hellish resurrection") - -/datum/devilinfo/proc/update_hud() - if(istype(owner.current, /mob/living/carbon)) - var/mob/living/C = owner.current - if(C.hud_used && C.hud_used.devilsouldisplay) - C.hud_used.devilsouldisplay.update_counter(SOULVALUE) - -// SECTION: Messages and explanations - -/datum/devilinfo/proc/announce_laws(mob/living/owner) - to_chat(owner, "You remember your link to the infernal. You are [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.") - to_chat(owner, "However, your infernal form is not without weaknesses.") - to_chat(owner, "You may not use violence to coerce someone into selling their soul.") - to_chat(owner, "You may not directly and knowingly physically harm a devil, other than yourself.") - to_chat(owner,GLOB.lawlorify[LAW][bane]) - to_chat(owner,GLOB.lawlorify[LAW][ban]) - to_chat(owner,GLOB.lawlorify[LAW][obligation]) - to_chat(owner,GLOB.lawlorify[LAW][banish]) - to_chat(owner, "

Remember, the crew can research your weaknesses if they find out your devil name.
") - - -#undef BLOOD_THRESHOLD -#undef TRUE_THRESHOLD -#undef ARCH_THRESHOLD -#undef BASIC_DEVIL -#undef BLOOD_LIZARD -#undef TRUE_DEVIL -#undef ARCH_DEVIL -#undef LOSS_PER_DEATH -#undef SOULVALUE -#undef DEVILRESURRECTTIME - -/datum/outfit/devil_lawyer - name = "Devil Lawyer" - uniform = /obj/item/clothing/under/lawyer/black - shoes = /obj/item/clothing/shoes/laceup - back = /obj/item/storage/backpack - l_hand = /obj/item/storage/briefcase - l_pocket = /obj/item/pen - l_ear = /obj/item/radio/headset - - id = /obj/item/card/id - -/datum/outfit/devil_lawyer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - var/obj/item/card/id/W = H.wear_id - if(!istype(W) || W.assignment) // either doesn't have a card, or the card is already written to - return - var/name_to_use = H.real_name - if(H.mind && H.mind.devilinfo) - // Having hell create an ID for you causes its risks - name_to_use = H.mind.devilinfo.truename - - W.name = "[name_to_use]'s ID Card (Lawyer)" - W.registered_name = name_to_use - W.assignment = "Lawyer" - W.rank = W.assignment - W.age = H.age - W.sex = capitalize(H.gender) - W.access = list(ACCESS_MAINT_TUNNELS, ACCESS_SYNDICATE, ACCESS_EXTERNAL_AIRLOCKS) - W.photo = get_id_photo(H) diff --git a/code/game/gamemodes/devil/game_mode.dm b/code/game/gamemodes/devil/game_mode.dm deleted file mode 100644 index 7e9f054faea..00000000000 --- a/code/game/gamemodes/devil/game_mode.dm +++ /dev/null @@ -1,94 +0,0 @@ -/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 += "
" - to_chat(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 += "
" - to_chat(world,text) - - -/datum/game_mode/proc/finalize_devil(datum/mind/devil_mind, ascendable = FALSE) - var/trueName= randomDevilName() - devil_mind.devilinfo = devilInfo(trueName, 1) - devil_mind.devilinfo.ascendable = ascendable - devil_mind.store_memory("Your diabolical true name is [devil_mind.devilinfo.truename]
[GLOB.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.
[GLOB.lawlorify[LAW][devil_mind.devilinfo.bane]]
[GLOB.lawlorify[LAW][devil_mind.devilinfo.obligation]]
[GLOB.lawlorify[LAW][devil_mind.devilinfo.banish]]
") - devil_mind.devilinfo.link_with_mob(devil_mind.current) - if(devil_mind.assigned_role == "Clown") - to_chat(devil_mind.current, "Your infernal nature allows you to wield weapons without harming yourself.") - devil_mind.current.dna.SetSEState(GLOB.clumsyblock, FALSE) - singlemutcheck(devil_mind.current, GLOB.clumsyblock, MUTCHK_FORCED) - var/datum/action/innate/toggle_clumsy/A = new - A.Grant(devil_mind.current) - spawn(10) - devil_mind.devilinfo.update_hud() - if(issilicon(devil_mind.current)) - var/mob/living/silicon/S = devil_mind.current - S.laws.set_sixsixsix_law("You may not use violence to coerce someone into selling their soul.") - S.laws.set_sixsixsix_law("You may not directly and knowingly physically harm a devil, other than yourself.") - S.laws.set_sixsixsix_law("[GLOB.lawlorify[LAW][devil_mind.devilinfo.ban]]") - S.laws.set_sixsixsix_law("[GLOB.lawlorify[LAW][devil_mind.devilinfo.obligation]]") - S.laws.set_sixsixsix_law("Accomplish your objectives at all costs.") - -// unsure about the second "quantity" arg and how it fits with the antag refactor -/datum/game_mode/proc/forge_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/game_mode/proc/greet_devil(datum/mind/devil_mind) - if(!devil_mind.devilinfo) - return - devil_mind.devilinfo.announce_laws(devil_mind.current) - devil_mind.announce_objectives() - - -/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 += " [GLOB.lawlorify[LORE][ply.devilinfo.ban]]
" - text += " [GLOB.lawlorify[LORE][ply.devilinfo.bane]]
" - text += " [GLOB.lawlorify[LORE][ply.devilinfo.obligation]]
" - text += " [GLOB.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 = GLOB.huds[ANTAG_HUD_DEVIL] - hud.join_hud(devil_mind.current) - set_antag_hud(devil_mind.current, "huddevil") - -/datum/game_mode/proc/update_devil_icons_removed(datum/mind/devil_mind) - var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_DEVIL] - hud.leave_hud(devil_mind.current) - set_antag_hud(devil_mind.current, null) diff --git a/code/game/gamemodes/devil/imp/imp.dm b/code/game/gamemodes/devil/imp/imp.dm deleted file mode 100644 index e863eaf1f6a..00000000000 --- a/code/game/gamemodes/devil/imp/imp.dm +++ /dev/null @@ -1,54 +0,0 @@ -//////////////////The Monster - -/mob/living/simple_animal/imp - name = "imp" - real_name = "imp" - desc = "A large, menacing creature covered in armored black scales." - speak_emote = list("cackles") - emote_hear = list("cackles","screeches") - response_help = "thinks better of touching" - response_disarm = "flails at" - response_harm = "punches" - icon = 'icons/mob/mob.dmi' - icon_state = "imp" - icon_living = "imp" - speed = 1 - a_intent = INTENT_HARM - stop_automated_movement = 1 - status_flags = CANPUSH - attack_sound = 'sound/misc/demon_attack1.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 = 250 //Weak to cold - maxbodytemp = INFINITY - faction = list("hell") - attacktext = "wildly tears into" - maxHealth = 200 - health = 200 - healable = 0 - environment_smash = 1 - melee_damage_lower = 10 - melee_damage_upper = 15 - see_in_dark = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - var/boost - var/playstyle_string = "You are an imp, a mischevious creature from hell. You are the lowest rank on the hellish totem pole \ - Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \ - of intentionally harming a fellow devil." - -/mob/living/simple_animal/imp/New() - ..() - boost = world.time + 60 - -/mob/living/simple_animal/imp/Life() - ..() - if(boost[src] screams in agony as it sublimates into a sulfurous smoke.
") - ghostize() - qdel(src) diff --git a/code/game/gamemodes/devil/objectives.dm b/code/game/gamemodes/devil/objectives.dm deleted file mode 100644 index 04d0217b599..00000000000 --- a/code/game/gamemodes/devil/objectives.dm +++ /dev/null @@ -1,109 +0,0 @@ -/datum/objective/devil - -/datum/objective/devil/soulquantity - explanation_text = "You shouldn't see this text. Error:DEVIL1" - target_amount = 4 - -/datum/objective/devil/soulquantity/New() - target_amount = pick(6, 7, 8) - update_explanation_text() - -/datum/objective/devil/proc/update_explanation_text() - //Intentionally empty - -/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 == owner) - count++ - return count >= target_amount - - - -/datum/objective/devil/soulquality - explanation_text = "You shouldn't see this text. Error:DEVIL2" - var/contractType - var/contractName - -/datum/objective/devil/soulquality/New() - contractType = pick(CONTRACT_POWER, CONTRACT_WEALTH, CONTRACT_PRESTIGE, CONTRACT_MAGIC, CONTRACT_REVIVE, CONTRACT_KNOWLEDGE) - target_amount = pick(1, 2) - switch(contractType) - if(CONTRACT_POWER) - contractName = "for power" - if(CONTRACT_WEALTH) - contractName = "for wealth" - if(CONTRACT_PRESTIGE) - contractName = "for prestige" - if(CONTRACT_MAGIC) - contractName = "for magic" - if(CONTRACT_REVIVE) - contractName = "of revival" - if(CONTRACT_KNOWLEDGE) - contractName = "for knowledge" - 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 - for(var/S in owner.devilinfo.soulsOwned) - var/datum/mind/L = S - if(L.soulOwner != L && L.damnation_type == contractType) - count++ - return count >= target_amount - - - -/datum/objective/devil/sintouch - explanation_text = "You shouldn't see this text. Error:DEVIL3" - -/datum/objective/devil/sintouch/New() - target_amount = pick(4, 5) - explanation_text = "Ensure at least [target_amount] mortals are sintouched." - -/datum/objective/devil/sintouch/check_completion() - return target_amount <= SSticker.mode.sintouched.len - - - -/datum/objective/devil/buy_target - explanation_text = "You shouldn't see this text. Error:DEVIL4" - -/datum/objective/devil/buy_target/New() - find_target() - update_explanation_text() - -/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/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 deleted file mode 100644 index 197524c0e38..00000000000 --- a/code/game/gamemodes/devil/true_devil/_true_devil.dm +++ /dev/null @@ -1,218 +0,0 @@ -#define DEVIL_R_HAND_LAYER 1 -#define DEVIL_L_HAND_LAYER 2 -#define DEVIL_TOTAL_LAYERS 2 - -// This is used primarily for having hands. -/mob/living/carbon/true_devil - name = "True Devil" - desc = "A pile of infernal energy, taking a vaguely humanoid form." - icon = 'icons/mob/32x64.dmi' - icon_state = "true_devil" - gender = NEUTER - health = 350 - maxHealth = 350 - ventcrawler = FALSE - density = TRUE - pass_flags = 0 - var/ascended = FALSE - sight = (SEE_TURFS | SEE_OBJS) - status_flags = CANPUSH - universal_understand = TRUE - universal_speak = TRUE //The devil speaks all languages meme - var/mob/living/oldform - var/list/devil_overlays[DEVIL_TOTAL_LAYERS] - -/mob/living/carbon/true_devil/New(loc, mob/living/carbon/dna_source) - dna = dna_source.dna.Clone() - var/obj/item/organ/internal/brain/B = new(src) - var/obj/item/organ/internal/ears/E = new(src) - B.insert() - E.insert() - ..() - -// inventory system could use some love -/mob/living/carbon/true_devil/put_in_hands(obj/item/W) - if(!W) - return 0 - if(put_in_active_hand(W)) - return TRUE - else if(put_in_inactive_hand(W)) - return TRUE - else - ..() - -/mob/living/carbon/true_devil/proc/convert_to_archdevil() - maxHealth = 5000 // not an IMPOSSIBLE amount, but still near impossible. - ascended = TRUE - health = maxHealth - icon_state = "arch_devil" - -/mob/living/carbon/true_devil/proc/set_name() - name = mind.devilinfo.truename - real_name = name - -/mob/living/carbon/true_devil/Login() - ..() - if(mind.devilinfo) - mind.devilinfo.announce_laws(src) - mind.announce_objectives() - - -/mob/living/carbon/true_devil/death(gibbed) - . = ..(gibbed) - drop_l_hand() - drop_r_hand() - - -/mob/living/carbon/true_devil/examine(mob/user) - var/msg = "*---------*\nThis is [bicon(src)] [src]!\n" - - //Left hand items - if(l_hand && !(l_hand.flags & ABSTRACT)) - if(l_hand.blood_DNA) - msg += "It is holding [bicon(l_hand)] [l_hand.gender == PLURAL? "some" : "a"] blood-stained [l_hand.name] in its left hand!\n" - else - msg += "It is holding [bicon(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 [bicon(r_hand)] [r_hand.gender == PLURAL? "some" : "a"] blood-stained [r_hand.name] in its right hand!\n" - else - msg += "It is holding [bicon(r_hand)] \a [r_hand] in its right hand.\n" - - //Braindead - if(!client && stat != DEAD) - msg += "The devil seems to be in deep contemplation.\n" - - //Damaged - 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" - else if(health < (maxHealth/2)) - msg += "You can see hellfire inside of it's wounds.\n" - msg += "*---------*" - . = list(msg) - - -/mob/living/carbon/true_devil/IsAdvancedToolUser() - return TRUE - -/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, visual = 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/attacked_by(obj/item/I, mob/living/user, def_zone) - var/weakness = check_weakness(I, user) - apply_damage(I.force * weakness, I.damtype, def_zone) - var/message_verb = "" - if(I.attack_verb && I.attack_verb.len) - message_verb = "[pick(I.attack_verb)]" - else if(I.force) - message_verb = "attacked" - - var/attack_message = "[src] has been [message_verb] with [I]." - if(user) - user.do_attack_animation(src) - if(user in viewers(src, null)) - attack_message = "[user] has [message_verb] [src] with [I]!" - if(message_verb) - visible_message("[attack_message]", - "[attack_message]") - return TRUE - -/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity) - if(!ishuman(A)) - // `attack_hand` on mobs assumes the attacker is a human - // I am the worst - A.attack_hand(src) - // If the devil wants to actually attack, they have the pitchfork. - - -/mob/living/carbon/true_devil/Process_Spacemove(movement_dir = 0) - return TRUE - -/mob/living/carbon/true_devil/singularity_act() - if(ascended) - return 0 - return ..() - -/mob/living/carbon/true_devil/attack_ghost(mob/dead/observer/user as mob) - if(ascended || user.mind.soulOwner == src.mind) - var/mob/living/simple_animal/imp/S = new(get_turf(loc)) - S.key = user.key - S.mind.assigned_role = "MODE" - S.mind.special_role = "Imp" - var/datum/objective/newobjective = new - newobjective.explanation_text = "Try to get a promotion to a higher infernal rank." - S.mind.objectives += newobjective - to_chat(S,S.playstyle_string) - to_chat(S,"Objective #1: [newobjective.explanation_text]") - return - else - return ..() - -/mob/living/carbon/true_devil/resist_fire() - //They're immune to fire. - -/mob/living/carbon/true_devil/attack_hand(mob/living/carbon/human/M) - if(..()) - switch(M.a_intent) - if(INTENT_HARM) - var/damage = rand(1, 5) - playsound(loc, "punch", 25, 1, -1) - visible_message("[M] has punched [src]!", \ - "[M] has punched [src]!") - adjustBruteLoss(damage) - add_attack_logs(M, src, "attacked") - updatehealth() - if(INTENT_DISARM) - if(!lying && !ascended) //No stealing the arch devil's pitchfork. - if(prob(5)) - // Weaken knocks people over - // Paralyse knocks people out - // It's Paralyse for parity though - // Weaken(2) - Paralyse(2) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - add_attack_logs(M, src, "pushed") - visible_message("[M] has pushed down [src]!", \ - "[M] has pushed down [src]!") - else - if(prob(25)) - 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/true_devil/handle_breathing() - // devils do not need to breathe - -/mob/living/carbon/true_devil/is_literate() - return TRUE - -/mob/living/carbon/true_devil/ex_act(severity, ex_target) - if(!ascended) - var/b_loss - switch (severity) - if (1) - b_loss = 500 - if (2) - b_loss = 150 - if(3) - b_loss = 30 - if(has_bane(BANE_LIGHT)) - b_loss *=2 - adjustBruteLoss(b_loss) - return ..() - -#undef DEVIL_TOTAL_LAYERS diff --git a/code/game/gamemodes/devil/true_devil/inventory.dm b/code/game/gamemodes/devil/true_devil/inventory.dm deleted file mode 100644 index 7b6d6fb3013..00000000000 --- a/code/game/gamemodes/devil/true_devil/inventory.dm +++ /dev/null @@ -1,50 +0,0 @@ -/mob/living/carbon/true_devil/unEquip(obj/item/I, force, silent = FALSE) - if(..()) - update_inv_r_hand() - update_inv_l_hand() - return 1 - return 0 - -/mob/living/carbon/true_devil/update_inv_r_hand() - ..() - if(r_hand) - var/t_state = r_hand.item_state - if(!t_state) - t_state = r_hand.icon_state - - var/image/I = image("icon" = r_hand.righthand_file, "icon_state" = "[t_state]") - I = center_image(I, r_hand.inhand_x_dimension, r_hand.inhand_y_dimension) - devil_overlays[DEVIL_R_HAND_LAYER] = I - else - devil_overlays[DEVIL_R_HAND_LAYER] = null - update_icons() - - -/mob/living/carbon/true_devil/update_inv_l_hand() - ..() - if(l_hand) - var/t_state = l_hand.item_state - if(!t_state) - t_state = l_hand.icon_state - - var/image/I = image("icon" = l_hand.lefthand_file, "icon_state" = "[t_state]") - I = center_image(I, l_hand.inhand_x_dimension, l_hand.inhand_y_dimension) - devil_overlays[DEVIL_L_HAND_LAYER] = I - else - devil_overlays[DEVIL_L_HAND_LAYER] = null - update_icons() - -/mob/living/carbon/true_devil/proc/remove_overlay(cache_index) - if(devil_overlays[cache_index]) - overlays -= devil_overlays[cache_index] - devil_overlays[cache_index] = null - - -/mob/living/carbon/true_devil/proc/apply_overlay(cache_index) - var/image/I = devil_overlays[cache_index] - if(I) - if(I in overlays) - return - var/list/new_overlays = overlays.Copy() - new_overlays += I - overlays = new_overlays diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 4f150975322..343f8bf27ae 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -227,7 +227,7 @@ /datum/game_mode/proc/check_win() //universal trigger to be called at mob death, nuke explosion, etc. To be called from everywhere. return 0 -/datum/game_mode/proc/get_players_for_role(var/role, override_jobbans=0) +/datum/game_mode/proc/get_players_for_role(role, override_jobbans=0) var/list/players = list() var/list/candidates = list() //var/list/drafted = list() @@ -276,10 +276,10 @@ // Less if there are not enough valid players in the game entirely to make recommended_enemies. -/datum/game_mode/proc/latespawn(var/mob) +/datum/game_mode/proc/latespawn(mob) /* -/datum/game_mode/proc/check_player_role_pref(var/role, var/mob/player) +/datum/game_mode/proc/check_player_role_pref(role, mob/player) if(player.preferences.be_special & role) return 1 return 0 @@ -406,7 +406,7 @@ to_chat(M, msg) //Announces objectives/generic antag text. -/proc/show_generic_antag_text(var/datum/mind/player) +/proc/show_generic_antag_text(datum/mind/player) if(player.current) to_chat(player.current, "You are an antagonist! Within the rules, \ try to act as an opposing force to the crew. Further RP and try to make sure \ @@ -415,7 +415,7 @@ Think through your actions and make the roleplay immersive! Please remember all \ rules aside from those without explicit exceptions apply to antagonists.") -/proc/show_objectives(var/datum/mind/player) +/proc/show_objectives(datum/mind/player) if(!player || !player.current) return var/obj_count = 1 @@ -424,7 +424,7 @@ to_chat(player.current, "Objective #[obj_count]: [objective.explanation_text]") obj_count++ -/proc/get_roletext(var/role) +/proc/get_roletext(role) return role /proc/get_nuke_code() diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index 54faf90fef8..a579a90273c 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -83,7 +83,7 @@ GLOBAL_LIST_EMPTY(cortical_stacks) //Stacks for 'leave nobody behind' objective. return ..() -/datum/game_mode/proc/create_vox(var/datum/mind/newraider) +/datum/game_mode/proc/create_vox(datum/mind/newraider) var/sounds = rand(2,8) var/i = 0 @@ -175,12 +175,13 @@ GLOBAL_LIST_EMPTY(cortical_stacks) //Stacks for 'leave nobody behind' objective. return objs -/datum/game_mode/proc/greet_vox(var/datum/mind/raider) +/datum/game_mode/proc/greet_vox(datum/mind/raider) to_chat(raider.current, "You are a Vox Raider, fresh from the Shoal!") to_chat(raider.current, "The Vox are a race of cunning, sharp-eyed nomadic raiders and traders endemic to the frontier and much of the unexplored galaxy. You and the crew have come to the [station_name()] for plunder, trade or both.") to_chat(raider.current, "Vox are cowardly and will flee from larger groups, but corner one or find them en masse and they are vicious.") to_chat(raider.current, "Use :V to voxtalk, :H to talk on your encrypted channel, and don't forget to turn on your nitrogen internals!") to_chat(raider.current, "Choose to accomplish your objectives by either raiding the crew and taking what you need, or by attempting to trade with them.") + to_chat(raider.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Vox_Raider)") spawn(25) show_objectives(raider) diff --git a/code/game/gamemodes/intercept_report.dm b/code/game/gamemodes/intercept_report.dm index acee798e96c..aaf5dd1eea7 100644 --- a/code/game/gamemodes/intercept_report.dm +++ b/code/game/gamemodes/intercept_report.dm @@ -55,7 +55,7 @@ ) -/datum/intercept_text/proc/build(var/mode_type, datum/mind/correct_person) +/datum/intercept_text/proc/build(mode_type, datum/mind/correct_person) switch(mode_type) if("revolution") src.text = "" diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 69d37bf1ce6..e299f0c97c2 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -331,7 +331,8 @@ to_chat(L, "The blast wave from [src] tears you atom from atom!") L.dust() to_chat(world, "The AI cleansed the station of life with the doomsday device!") - SSticker.force_ending = 1 + SSticker.force_ending = TRUE + SSticker.mode.station_was_nuked = TRUE //AI Turret Upgrade: Increases the health and damage of all turrets. /datum/AI_Module/large/upgrade_turrets @@ -785,4 +786,3 @@ /datum/AI_Module/large/cameracrack/upgrade(mob/living/silicon/ai/AI) if(AI.builtInCamera) QDEL_NULL(AI.builtInCamera) - diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 7c5d350436b..d156c97266b 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -18,11 +18,11 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops /////////////////////////////// //Meteor spawning global procs /////////////////////////////// -/proc/spawn_meteors(var/number = 10, var/list/meteortypes) +/proc/spawn_meteors(number = 10, list/meteortypes) for(var/i = 0; i < number; i++) spawn_meteor(meteortypes) -/proc/spawn_meteor(var/list/meteortypes) +/proc/spawn_meteor(list/meteortypes) var/turf/pickedstart var/turf/pickedgoal var/max_i = 10//number of tries to spawn meteor. @@ -136,7 +136,7 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops /obj/effect/meteor/CanPass(atom/movable/mover, turf/target, height=0) return istype(mover, /obj/effect/meteor) ? 1 : ..() -/obj/effect/meteor/proc/ram_turf(var/turf/T) +/obj/effect/meteor/proc/ram_turf(turf/T) //first bust whatever is in the turf for(var/atom/A in T) if(A != src) @@ -170,7 +170,7 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops var/obj/item/O = new meteordrop(get_turf(src)) O.throw_at(dest, 5, 10) -/obj/effect/meteor/proc/meteor_effect(var/sound=1) +/obj/effect/meteor/proc/meteor_effect(sound=1) if(sound) var/sound/meteor_sound = sound(meteorsound) var/random_frequency = get_rand_frequency() diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index 60de5ba4238..6587907cdbd 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -158,6 +158,7 @@ to_chat(abductor.current, "You are an agent of [team_name]!") to_chat(abductor.current, "With the help of your teammate, kidnap and experiment on station crew members!") to_chat(abductor.current, "Use your stealth technology and equipment to incapacitate humans for your scientist to retrieve.") + to_chat(abductor.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Abductor)") abductor.announce_objectives() @@ -170,6 +171,7 @@ to_chat(abductor.current, "You are a scientist of [team_name]!") to_chat(abductor.current, "With the help of your teammate, kidnap and experiment on station crew members!") to_chat(abductor.current, "Use your tool and ship consoles to support the agent and retrieve human specimens.") + to_chat(abductor.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Abductor)") abductor.announce_objectives() diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm index 53c550daf01..021c4e09f06 100644 --- a/code/game/gamemodes/miniantags/abduction/gland.dm +++ b/code/game/gamemodes/miniantags/abduction/gland.dm @@ -68,7 +68,7 @@ active_mind_control = FALSE update_gland_hud() -/obj/item/organ/internal/heart/gland/remove(var/mob/living/carbon/M, special = 0) +/obj/item/organ/internal/heart/gland/remove(mob/living/carbon/M, special = 0) active = 0 if(initial(uses) == 1) uses = initial(uses) @@ -77,7 +77,7 @@ clear_mind_control() . = ..() -/obj/item/organ/internal/heart/gland/insert(var/mob/living/carbon/M, special = 0) +/obj/item/organ/internal/heart/gland/insert(mob/living/carbon/M, special = 0) ..() if(special != 2 && uses) // Special 2 means abductor surgery Start() diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index 750473b1dfa..0342c1d4707 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -25,7 +25,7 @@ if(M.mind && isobserver(M)) to_chat(M, "Thought-speech, [src] -> [B.truename]: [message]") -/mob/living/captive_brain/say_understands(var/mob/other, var/datum/language/speaking = null) +/mob/living/captive_brain/say_understands(mob/other, datum/language/speaking = null) var/mob/living/simple_animal/borer/B = loc if(!istype(B)) log_runtime(EXCEPTION("Trapped mind found without a borer!"), src) @@ -114,12 +114,12 @@ var/datum/action/innate/borer/freeze_victim/freeze_victim_action = new var/datum/action/innate/borer/torment/torment_action = new -/mob/living/simple_animal/borer/New(atom/newloc, var/gen=1) +/mob/living/simple_animal/borer/New(atom/newloc, gen=1) ..(newloc) remove_from_all_data_huds() generation = gen add_language("Cortical Link") - notify_ghosts("A cortical borer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) + notify_ghosts("A cortical borer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK, role = ROLE_BORER) real_name = "Cortical Borer [rand(1000,9999)]" truename = "[borer_names[min(generation, borer_names.len)]] [rand(1000,9999)]" GrantBorerActions() @@ -151,7 +151,7 @@ if(client.statpanel == "Status") stat("Chemicals", chemicals) -/mob/living/simple_animal/borer/say(var/message) +/mob/living/simple_animal/borer/say(message) var/list/message_pieces = parse_languages(message) for(var/datum/multilingual_say_piece/S in message_pieces) if(!istype(S.speaking, /datum/language/corticalborer) && loc == host && !talk_inside_host) @@ -823,7 +823,7 @@ /mob/living/simple_animal/borer/can_use_vents() return -/mob/living/simple_animal/borer/proc/transfer_personality(var/client/candidate) +/mob/living/simple_animal/borer/proc/transfer_personality(client/candidate) if(!candidate || !candidate.mob) return @@ -837,6 +837,7 @@ to_chat(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.") to_chat(src, "Sugar nullifies your abilities, avoid it at all costs!") to_chat(src, "You can speak to your fellow borers by prefixing your messages with ':bo'. Check out your Borer tab to see your abilities.") + to_chat(src, "For more information, check the wiki page: ([config.wikiurl]/index.php/Cortical_Borer)") /proc/create_borer_mind(key) var/datum/mind/M = new /datum/mind(key) diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index e2747ebb532..9711f2c0bfa 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -21,7 +21,7 @@ roundstart = FALSE important_info = "Follow your objectives, do not make the station inhospitable or try and kill crew." flavour_text = "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." - description = {" Your goal is to create more of yourself by consuming the station. 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. + description = {"Your goal is to create more of yourself by consuming the station. 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. @@ -63,12 +63,10 @@ mob_biotypes = MOB_ROBOTIC health = 40 maxHealth = 40 - status_flags = CANPUSH icon_state = "swarmer" icon_living = "swarmer" icon_dead = "swarmer_unactivated" - icon_gib = null - wander = 0 + wander = FALSE harm_intent_damage = 5 minbodytemp = 0 maxbodytemp = 500 @@ -86,22 +84,22 @@ friendly = "pinches" speed = 0 a_intent = INTENT_HARM - can_change_intents = 0 + can_change_intents = FALSE faction = list("swarmer") AIStatus = AI_OFF pass_flags = PASSTABLE + flags_2 = RAD_PROTECT_CONTENTS_2 | RAD_NO_CONTAMINATE_2 mob_size = MOB_SIZE_SMALL ventcrawler = VENTCRAWLER_ALWAYS - ranged = 1 + ranged = TRUE 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/stack/ore/bluespace_crystal) - del_on_death = 1 + del_on_death = TRUE deathmessage = "explodes with a sharp pop!" light_color = LIGHT_COLOR_CYAN - universal_speak = 0 - universal_understand = 0 + universal_understand = FALSE var/resources = 0 //Resource points, generated by consuming metal/glass var/max_resources = 100 @@ -114,6 +112,7 @@ to_chat(src, "1. Consume resources and replicate until there are no more resources left.") to_chat(src, "2. Ensure that the station is fit for invasion at a later date, do not perform actions that would render it dangerous or inhospitable.") to_chat(src, "3. Biological and sentient resources will be harvested at a later date, do not harm them.") + to_chat(src, "For more information, check the wiki page: ([config.wikiurl]/index.php/Swarmer)") /mob/living/simple_animal/hostile/swarmer/New() ..() @@ -489,7 +488,7 @@ changeNext_move(CLICK_CD_MELEE) target.ex_act(EXPLODE_LIGHT) -/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 @@ -605,7 +604,7 @@ max_integrity = 10 density = FALSE -/obj/structure/swarmer/trap/Crossed(var/atom/movable/AM, oldloc) +/obj/structure/swarmer/trap/Crossed(atom/movable/AM, oldloc) if(isliving(AM)) var/mob/living/L = AM if(!istype(L, /mob/living/simple_animal/hostile/swarmer)) diff --git a/code/game/gamemodes/miniantags/guardian/guardian.dm b/code/game/gamemodes/miniantags/guardian/guardian.dm index b0194c53f33..db33bc355a8 100644 --- a/code/game/gamemodes/miniantags/guardian/guardian.dm +++ b/code/game/gamemodes/miniantags/guardian/guardian.dm @@ -250,10 +250,9 @@ var/name_list = list("Aries", "Leo", "Sagittarius", "Taurus", "Virgo", "Capricorn", "Gemini", "Libra", "Aquarius", "Cancer", "Scorpio", "Pisces") /obj/item/guardiancreator/attack_self(mob/living/user) - for(var/mob/living/simple_animal/hostile/guardian/G in GLOB.alive_mob_list) - if(G.summoner == user) - to_chat(user, "You already have a [mob_name]!") - return + if(has_guardian(user)) + to_chat(user, "You already have a [mob_name]!") + return if(user.mind && (user.mind.changeling || user.mind.vampire)) to_chat(user, "[ling_failure]") return @@ -285,6 +284,10 @@ if(candidates.len) theghost = pick(candidates) + if(has_guardian(user)) + to_chat(user, "You already have a [mob_name]!") + used = FALSE + return spawn_guardian(user, theghost.key, guardian_type) else to_chat(user, "[failure_message]") @@ -295,6 +298,13 @@ if(used) . += "[used_message]" +/obj/item/guardiancreator/proc/has_guardian(mob/living/user) + for(var/mob/living/simple_animal/hostile/guardian/G in GLOB.alive_mob_list) + if(G.summoner == user) + return TRUE + return FALSE + + /obj/item/guardiancreator/proc/spawn_guardian(mob/living/user, key, guardian_type) var/pickedtype = /mob/living/simple_animal/hostile/guardian/punch switch(guardian_type) @@ -333,6 +343,7 @@ to_chat(G, "You are capable of manifesting or recalling to your master with verbs in the Guardian tab. You will also find a verb to communicate with them privately there.") to_chat(G, "While personally invincible, you will die if [user.real_name] does, and any damage dealt to you will have a portion passed on to them as you feed upon them to sustain yourself.") to_chat(G, "[G.playstyle_string]") + to_chat(G, "For more information, check the wiki page: ([config.wikiurl]/index.php/Guardian)") G.faction = user.faction var/color = pick(color_list) diff --git a/code/game/gamemodes/miniantags/guardian/types/bomb.dm b/code/game/gamemodes/miniantags/guardian/types/bomb.dm index cf709cb1767..67b99d91968 100644 --- a/code/game/gamemodes/miniantags/guardian/types/bomb.dm +++ b/code/game/gamemodes/miniantags/guardian/types/bomb.dm @@ -42,7 +42,7 @@ var/mob/living/spawner -/obj/item/guardian_bomb/proc/disguise(var/obj/A) +/obj/item/guardian_bomb/proc/disguise(obj/A) A.forceMove(src) stored_obj = A opacity = A.opacity @@ -60,7 +60,7 @@ to_chat(spawner, "Failure! Your trap on [stored_obj] didn't catch anyone this time.") qdel(src) -/obj/item/guardian_bomb/proc/detonate(var/mob/living/user) +/obj/item/guardian_bomb/proc/detonate(mob/living/user) if(!istype(user)) return to_chat(user, "The [src] was boobytrapped!") diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm index a122351a4bb..6e3627f2684 100644 --- a/code/game/gamemodes/miniantags/morph/morph.dm +++ b/code/game/gamemodes/miniantags/morph/morph.dm @@ -152,7 +152,7 @@ /mob/living/simple_animal/hostile/morph/LoseAggro() vision_range = initial(vision_range) -/mob/living/simple_animal/hostile/morph/AIShouldSleep(var/list/possible_targets) +/mob/living/simple_animal/hostile/morph/AIShouldSleep(list/possible_targets) . = ..() if(.) var/list/things = list() diff --git a/code/game/gamemodes/miniantags/morph/morph_event.dm b/code/game/gamemodes/miniantags/morph/morph_event.dm index dd1a198f6f8..f24166b1381 100644 --- a/code/game/gamemodes/miniantags/morph/morph_event.dm +++ b/code/game/gamemodes/miniantags/morph/morph_event.dm @@ -26,6 +26,7 @@ player_mind.special_role = SPECIAL_ROLE_MORPH SSticker.mode.traitors |= player_mind to_chat(S, S.playstyle_string) + to_chat(S, "For more information, check the wiki page: ([config.wikiurl]/index.php/Morph)") SEND_SOUND(S, sound('sound/magic/mutate.ogg')) message_admins("[key_of_morph] has been made into morph by an event.") log_game("[key_of_morph] was spawned as a morph by an event.") diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index fb46533b817..9373861798e 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -168,7 +168,7 @@ to_chat(src, "You are invincible and invisible to everyone but other ghosts. Most abilities will reveal you, rendering you vulnerable.") to_chat(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.") to_chat(src, "You do not remember anything of your past lives, nor will you remember anything about this one after your death.") - to_chat(src, "Be sure to read the wiki page at http://www.paradisestation.org/wiki/index.php/Revenant to learn more.") + to_chat(src, "For more information, check the wiki page: ([config.wikiurl]/index.php/Revenant)") var/datum/objective/revenant/objective = new objective.owner = mind mind.objectives += objective diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm index fc49a534f2c..0c4bfc48f33 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm @@ -1,5 +1,5 @@ ///Harvest -/mob/living/simple_animal/revenant/ClickOn(var/atom/A, var/params) //Copypaste from ghost code - revenants can't interact with the world directly. +/mob/living/simple_animal/revenant/ClickOn(atom/A, params) //Copypaste from ghost code - revenants can't interact with the world directly. if(client.click_intercept) client.click_intercept.InterceptClickOn(src, params, A) diff --git a/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm b/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm index 6871e87c3ba..40f6ac3398c 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_spawn_event.dm @@ -4,7 +4,7 @@ var/key_of_revenant -/datum/event/revenant/proc/get_revenant(var/end_if_fail = 0) +/datum/event/revenant/proc/get_revenant(end_if_fail = 0) var/deadMobs = 0 for(var/mob/M in GLOB.dead_mob_list) deadMobs++ diff --git a/code/game/gamemodes/miniantags/sintouched/objectives.dm b/code/game/gamemodes/miniantags/sintouched/objectives.dm deleted file mode 100644 index 04e0e3266f0..00000000000 --- a/code/game/gamemodes/miniantags/sintouched/objectives.dm +++ /dev/null @@ -1,34 +0,0 @@ -/datum/objective/sintouched - completed = 1 - -/* NO ERP OBJECTIVE FOR YOU. -/datum/objective/sintouched/lust - dangerrating = 3 // it's not AS dangerous. - -/datum/objective/sintouched/lust/New() - var/mob/dead/D = pick(dead_mob_list) - if(prob(50) && D) - explanation_text = "You know that [D] has perished.... and you think [D] is kinda cute. Make sure everyone knows how HOT [D]'s lifeless body is." - else - explanation_text = "Go get married, then immediately cheat on your new spouse." */ - -/datum/objective/sintouched/gluttony - explanation_text = "Food is delicious, so delicious you can't let it be wasted on other people." - -/datum/objective/sintouched/greed - explanation_text = "You want MORE, more money, more wealth, more riches. Go get it, but don't hurt people for it." - -/datum/objective/sintouched/sloth - explanation_text = "You just get tired randomly. Go take a nap at a time that would inconvenience other people." - -/datum/objective/sintouched/wrath - explanation_text = "What have your coworkers ever done for you? Don't offer to help them in any matter, and refuse if asked." - -/datum/objective/sintouched/envy - explanation_text = "Why should you be stuck with your rank? Show everyone you can do other jobs too, and don't let anyone stop you, least of all because you have no training." - -/datum/objective/sintouched/pride - explanation_text = "You are the BEST thing on the station. Make sure everyone knows it." - -/datum/objective/sintouched/acedia - explanation_text = "Angels, devils, good, evil... who cares? Just ignore any hellish threats and do your job." diff --git a/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm b/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm index ed0a4a908ed..f5311010707 100644 --- a/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm +++ b/code/game/gamemodes/miniantags/slaughter/bloodcrawl.dm @@ -2,7 +2,7 @@ #define BLOODCRAWL 1 #define BLOODCRAWL_EAT 2 -/mob/living/proc/phaseout(var/obj/effect/decal/cleanable/B) +/mob/living/proc/phaseout(obj/effect/decal/cleanable/B) if(iscarbon(src)) var/mob/living/carbon/C = src @@ -105,7 +105,7 @@ icon = 'icons/effects/blood.dmi' flags = NODROP|ABSTRACT -/mob/living/proc/phasein(var/obj/effect/decal/cleanable/B) +/mob/living/proc/phasein(obj/effect/decal/cleanable/B) if(notransform) to_chat(src, "Finish eating first!") diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm index b488e0a826c..88ce7fbff99 100644 --- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm +++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm @@ -92,6 +92,7 @@ mind.objectives += fluffObjective to_chat(src, "Objective #[1]: [objective.explanation_text]") to_chat(src, "Objective #[2]: [fluffObjective.explanation_text]") + to_chat(src, "For more information, check the wiki page: ([config.wikiurl]/index.php/Slaughter_Demon)") /obj/effect/decal/cleanable/blood/innards diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index a1dbbf35644..9540efe8f89 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -186,7 +186,7 @@ M.regenerate_icons() M.update_body() -/datum/game_mode/proc/prepare_syndicate_leader(var/datum/mind/synd_mind, var/nuke_code) +/datum/game_mode/proc/prepare_syndicate_leader(datum/mind/synd_mind, nuke_code) var/leader_title = pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord") synd_mind.current.real_name = "[syndicate_name()] Team [leader_title]" to_chat(synd_mind.current, "You are the Syndicate leader for this mission. You are responsible for the distribution of telecrystals and your ID is the only one who can open the launch bay doors.") @@ -219,7 +219,7 @@ else nuke_code = "code will be provided later" -/datum/game_mode/proc/update_syndicate_id(var/datum/mind/synd_mind, is_leader = FALSE) +/datum/game_mode/proc/update_syndicate_id(datum/mind/synd_mind, is_leader = FALSE) var/list/found_ids = synd_mind.current.search_contents_for(/obj/item/card/id) if(LAZYLEN(found_ids)) @@ -231,13 +231,13 @@ else message_admins("Warning: Operative [key_name_admin(synd_mind.current)] spawned without an ID card!") -/datum/game_mode/proc/forge_syndicate_objectives(var/datum/mind/syndicate) +/datum/game_mode/proc/forge_syndicate_objectives(datum/mind/syndicate) var/datum/objective/nuclear/syndobj = new syndobj.owner = syndicate syndicate.objectives += syndobj -/datum/game_mode/proc/greet_syndicate(var/datum/mind/syndicate, var/you_are=1) +/datum/game_mode/proc/greet_syndicate(datum/mind/syndicate, you_are=1) SEND_SOUND(syndicate.current, sound('sound/ambience/antag/ops.ogg')) if(you_are) to_chat(syndicate.current, "You are a [syndicate_name()] agent!") @@ -245,6 +245,7 @@ for(var/datum/objective/objective in syndicate.objectives) to_chat(syndicate.current, "Objective #[obj_count]: [objective.explanation_text]") obj_count++ + to_chat(syndicate.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Nuclear_Agent)") return @@ -418,7 +419,7 @@ to_chat(world, text) return 1 -/proc/nukelastname(var/mob/M as mob) //--All praise goes to NEO|Phyte, all blame goes to DH, and it was Cindi-Kate's idea. Also praise Urist for copypasta ho. +/proc/nukelastname(mob/M as mob) //--All praise goes to NEO|Phyte, all blame goes to DH, and it was Cindi-Kate's idea. Also praise Urist for copypasta ho. var/randomname = pick(GLOB.last_names) var/newname = sanitize(copytext(input(M,"You are the nuke operative [pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord")]. Please choose a last name for your family.", "Name change",randomname),1,MAX_NAME_LEN)) @@ -452,10 +453,9 @@ for(var/obj/machinery/nuclearbomb/nuke in GLOB.machines) if(nuke.r_code == "Nope") continue - var/turf/T = get_turf(nuke) - var/area/A = T.loc + var/area/A = get_area(nuke) - var/list/thousand_penalty = list(/area/wizard_station, /area/solar, /area) + var/list/thousand_penalty = list(/area/solar) var/list/fiftythousand_penalty = list(/area/security/main, /area/security/brig, /area/security/armoury, /area/security/checkpoint2) if(is_type_in_list(A, thousand_penalty)) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index a1aa14dd92b..ffbc8f0bc6c 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -4,11 +4,6 @@ #define NUKE_SEALANT_OPEN 3 #define NUKE_UNWRENCHED 4 #define NUKE_MOBILE 5 -#define NUKE_CORE_EVERYTHING_FINE 6 -#define NUKE_CORE_PANEL_EXPOSED 7 -#define NUKE_CORE_PANEL_UNWELDED 8 -#define NUKE_CORE_FULLY_EXPOSED 9 - GLOBAL_VAR(bomb_set) @@ -20,7 +15,7 @@ GLOBAL_VAR(bomb_set) density = 1 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF anchored = TRUE - var/extended = FALSE + var/extended = TRUE var/lighthack = FALSE var/timeleft = 120 var/timing = FALSE @@ -31,16 +26,11 @@ GLOBAL_VAR(bomb_set) var/safety = TRUE var/obj/item/disk/nuclear/auth = null var/removal_stage = NUKE_INTACT - var/obj/item/nuke_core/plutonium/core = null var/lastentered var/is_syndicate = FALSE use_power = NO_POWER_USE var/previous_level = "" var/datum/wires/nuclearbomb/wires = null - ///The same state removal stage is, until someone opens the panel of the nuke. This way. we can have someone open the front of the nuke, while keep track of where in the world we are on the anchoring bolts. - var/anchor_stage = NUKE_INTACT - ///This is so we can check if the internal components are sealed up propperly, when the outer hatch is closed. - var/core_stage = NUKE_CORE_EVERYTHING_FINE /obj/machinery/nuclearbomb/syndicate is_syndicate = TRUE @@ -49,19 +39,16 @@ GLOBAL_VAR(bomb_set) extended = FALSE anchored = FALSE -/obj/machinery/nuclearbomb/Initialize() - . = ..() +/obj/machinery/nuclearbomb/New() + ..() r_code = rand(10000, 99999.0) // Creates a random code upon object spawn. wires = new/datum/wires/nuclearbomb(src) previous_level = get_security_level() GLOB.poi_list |= src - core = new /obj/item/nuke_core/plutonium(src) - STOP_PROCESSING(SSobj, core) //Let us not irradiate the vault by default. /obj/machinery/nuclearbomb/Destroy() SStgui.close_uis(wires) QDEL_NULL(wires) - QDEL_NULL(core) GLOB.poi_list.Remove(src) return ..() @@ -86,41 +73,16 @@ GLOBAL_VAR(bomb_set) else to_chat(user, "You need to deploy [src] first.") return - if(istype(O, /obj/item/stack/sheet/mineral/titanium) && removal_stage == NUKE_CORE_FULLY_EXPOSED) - if(do_after(user, 20, target = src)) - var/obj/item/stack/S = O - if(!loc || !S || S.get_amount() < 5) - return - S.use(5) - user.visible_message("[user] repairs [src]'s inner core plate.", "You repair [src]'s inner core plate. The radiation is contained.") - removal_stage = NUKE_CORE_PANEL_UNWELDED - if(core) - STOP_PROCESSING(SSobj, core) - return - if(istype(O, /obj/item/stack/sheet/metal) && removal_stage == NUKE_CORE_PANEL_EXPOSED) - var/obj/item/stack/S = O - if(do_after(user, 20, target = src)) - if(!loc || !S || S.get_amount() < 5) - return - S.use(5) - user.visible_message("[user] repairs [src]'s outer core plate.", "You repair [src]'s outer core plate.") - removal_stage = NUKE_CORE_EVERYTHING_FINE - return - if(istype(O, /obj/item/nuke_core/plutonium) && removal_stage == NUKE_CORE_FULLY_EXPOSED) - if(do_after(user, 20, target = src)) - if(!user.unEquip(O)) - to_chat(user, "The [O] is stuck to your hand!") - return - user.visible_message("[user] puts [O] back in [src].", "You put [O] back in [src].") - O.forceMove(src) - core = O - else if(istype(O, /obj/item/disk/plantgene)) to_chat(user, "You try to plant the disk, but despite rooting around, it won't fit! After you branch out to read the instructions, you find out where the problem stems from. You've been bamboo-zled, this isn't a nuclear disk at all!") return return ..() /obj/machinery/nuclearbomb/crowbar_act(mob/user, obj/item/I) + if(!anchored) + return + if(removal_stage != NUKE_UNWRENCHED && removal_stage != NUKE_COVER_OFF) + return . = TRUE if(!I.tool_use_check(user, 0)) return @@ -128,25 +90,9 @@ GLOBAL_VAR(bomb_set) user.visible_message("[user] starts forcing open the bolt covers on [src].", "You start forcing open the anchoring bolt covers with [I]...") if(!I.use_tool(src, user, 15, volume = I.tool_volume) || removal_stage != NUKE_COVER_OFF) return - user.visible_message("[user] forces open the bolt covers on [src].", ">You force open the bolt covers.") + user.visible_message("[user] forces open the bolt covers on [src].", "You force open the bolt covers.") removal_stage = NUKE_COVER_OPEN - if(removal_stage == NUKE_CORE_EVERYTHING_FINE) - user.visible_message("[user] starts removing [src]'s outer core plate...", "You start removing [src]'s outer plate...") - if(!I.use_tool(src, user, 40, volume = I.tool_volume) || removal_stage != NUKE_CORE_EVERYTHING_FINE) - return - user.visible_message("[user] finishes removing [src]'s outer core plate.", "You finish removing [src]'s outer core plate.") - new /obj/item/stack/sheet/metal(loc, 5) - removal_stage = NUKE_CORE_PANEL_EXPOSED - if(removal_stage == NUKE_CORE_PANEL_UNWELDED) - user.visible_message("[user] starts removing [src]'s inner core plate...", "You start removing [src]'s inner plate...") - if(!I.use_tool(src, user, 80, volume = I.tool_volume) || removal_stage != NUKE_CORE_PANEL_UNWELDED) - return - user.visible_message("[user] finishes removing [src]'s inner core plate.", "You remove [src]'s inner core plate. You can see the core's green glow!") - removal_stage = NUKE_CORE_FULLY_EXPOSED - new /obj/item/stack/sheet/mineral/titanium(loc, 5) - if(core) - START_PROCESSING(SSobj, core) - if(removal_stage == NUKE_UNWRENCHED) + else user.visible_message("[user] begins lifting [src] off of the anchors.", "You begin lifting the device off the anchors...") if(!I.use_tool(src, user, 80, volume = I.tool_volume) || removal_stage != NUKE_UNWRENCHED) return @@ -180,19 +126,15 @@ GLOBAL_VAR(bomb_set) . = TRUE if(!I.use_tool(src, user, 0, volume = I.tool_volume)) return - if(auth || (istype(I, /obj/item/screwdriver/nuke))) + if(auth) if(!panel_open) panel_open = TRUE overlays += image(icon, "npanel_open") to_chat(user, "You unscrew the control panel of [src].") - anchor_stage = removal_stage - removal_stage = core_stage else panel_open = FALSE overlays -= image(icon, "npanel_open") to_chat(user, "You screw the control panel of [src] back on.") - core_stage = removal_stage - removal_stage = anchor_stage else if(!panel_open) to_chat(user, "[src] emits a buzzing noise, the panel staying locked in.") @@ -200,8 +142,6 @@ GLOBAL_VAR(bomb_set) panel_open = FALSE overlays -= image(icon, "npanel_open") to_chat(user, "You screw the control panel of [src] back on.") - core_stage = removal_stage - removal_stage = anchor_stage flick("nuclearbombc", src) /obj/machinery/nuclearbomb/wirecutter_act(mob/user, obj/item/I) @@ -214,6 +154,8 @@ GLOBAL_VAR(bomb_set) /obj/machinery/nuclearbomb/welder_act(mob/user, obj/item/I) . = TRUE + if(removal_stage != NUKE_INTACT && removal_stage != NUKE_COVER_OPEN) + return if(!I.tool_use_check(user, 0)) return if(removal_stage == NUKE_INTACT) @@ -225,19 +167,7 @@ GLOBAL_VAR(bomb_set) visible_message("[user] cuts through the bolt covers on [src].",\ "You cut through the bolt cover.") removal_stage = NUKE_COVER_OFF - if(removal_stage == NUKE_CORE_PANEL_UNWELDED) - user.visible_message("[user] starts welding [src]'s inner core plate...", "You start welding [src]'s inner core plate...") - if(!I.use_tool(src, user, 40, 5, volume = I.tool_volume) || removal_stage != NUKE_CORE_PANEL_UNWELDED) - return - user.visible_message("[user] finishes welding [src]'s inner core plate...", "You finish welding [src]'s inner core plate...") - removal_stage = NUKE_CORE_PANEL_EXPOSED - else if(removal_stage == NUKE_CORE_PANEL_EXPOSED) - user.visible_message("[user] starts unwelding [src]'s inner core plate...", "You start unwelding [src]'s inner core plate...") - if(!I.use_tool(src, user, 40, 5, volume = I.tool_volume) || removal_stage != NUKE_CORE_PANEL_EXPOSED) - return - user.visible_message("[user] finishes unwelding [src]'s inner core plate...", "You finish unwelding [src]'s inner core plate...") - removal_stage = NUKE_CORE_PANEL_UNWELDED - if(removal_stage == NUKE_COVER_OPEN) + else if(removal_stage == NUKE_COVER_OPEN) visible_message("[user] starts cutting apart the anchoring system sealant on [src].",\ "You start cutting apart the anchoring system's sealant with [I]...",\ "You hear welding.") @@ -252,18 +182,7 @@ GLOBAL_VAR(bomb_set) /obj/machinery/nuclearbomb/attack_hand(mob/user as mob) if(panel_open) - if(removal_stage == NUKE_CORE_FULLY_EXPOSED && core) - if(timing) //removing the core is less risk then cutting wires, and doesnt take long, so we should not let crew do it while the nuke is armed. You can however get to it, without the special screwdriver, if you put the NAD in. - to_chat(user, "The [core] won't budge, metal clamps keep it in!") - return - user.visible_message("[user] starts to pull [core] out of the [src]!", "You start to pull [core] out of the [src]!") - if(do_after(user, 50, target = src)) - user.visible_message("[user] pulls [core] out of the [src]!", "You pull [core] out of the [src]! Might want to put it somewhere safe.") - core.forceMove(loc) - core = null - - else - wires.Interact(user) + wires.Interact(user) else ui_interact(user) @@ -296,7 +215,7 @@ GLOBAL_VAR(bomb_set) data["codemsg"] = "-----" return data -/obj/machinery/nuclearbomb/proc/is_auth(var/mob/user) +/obj/machinery/nuclearbomb/proc/is_auth(mob/user) if(auth) return TRUE else if(user.can_admin_interact()) @@ -389,9 +308,6 @@ GLOBAL_VAR(bomb_set) if(safety) to_chat(usr, "The safety is still on.") return - if(!core) - to_chat(usr, "The [src]'s screen blinks red! There is no plutonium core in the [src]!") - return timing = !(timing) if(timing) if(!lighthack) @@ -443,8 +359,9 @@ GLOBAL_VAR(bomb_set) var/off_station = 0 var/turf/bomb_location = get_turf(src) + var/area/A = get_area(src) if( bomb_location && is_station_level(bomb_location.z) ) - if( (bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE)) ) + if( (bomb_location.x < (128 - NUKERANGE)) || (bomb_location.x > (128 + NUKERANGE)) || (bomb_location.y < (128 - NUKERANGE)) || (bomb_location.y > (128 + NUKERANGE)) && (!(A in GLOB.the_station_areas))) off_station = 1 else off_station = 2 @@ -467,7 +384,7 @@ GLOBAL_VAR(bomb_set) else to_chat(world, "The station was destoyed by the nuclear blast!") - SSticker.mode.station_was_nuked = (off_station<2) //offstation==1 is a draw. the station becomes irradiated and needs to be evacuated. + SSticker.mode.station_was_nuked = (off_station < 2) //offstation==1 is a draw. the station becomes irradiated and needs to be evacuated. //kinda shit but I couldn't get permission to do what I wanted to do. if(!SSticker.mode.check_finished())//If the mode does not deal with the nuke going off so just reboot because everyone is stuck as is @@ -554,7 +471,3 @@ GLOBAL_VAR(bomb_set) #undef NUKE_SEALANT_OPEN #undef NUKE_UNWRENCHED #undef NUKE_MOBILE -#undef NUKE_CORE_EVERYTHING_FINE -#undef NUKE_CORE_PANEL_EXPOSED -#undef NUKE_CORE_PANEL_UNWELDED -#undef NUKE_CORE_FULLY_EXPOSED diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index a6e8a9a557e..2efad59ba39 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -262,11 +262,13 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) /datum/objective/block/check_completion() if(!istype(owner.current, /mob/living/silicon)) - return 0 + return FALSE + if(SSticker.mode.station_was_nuked) + return TRUE if(SSshuttle.emergency.mode < SHUTTLE_ENDGAME) - return 0 + return FALSE if(!owner.current) - return 0 + return FALSE var/area/A = SSshuttle.emergency.areaInstance @@ -276,9 +278,9 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) if(player.mind && player.stat != DEAD) if(get_area(player) == A) - return 0 // If there are any other organic mobs on the shuttle, you failed the objective. + return FALSE // If there are any other organic mobs on the shuttle, you failed the objective. - return 1 + return TRUE /datum/objective/escape explanation_text = "Escape on the shuttle or an escape pod alive and free." @@ -451,7 +453,7 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) /datum/objective/steal/exchange martyr_compatible = 0 -/datum/objective/steal/exchange/proc/set_faction(var/faction,var/otheragent) +/datum/objective/steal/exchange/proc/set_faction(faction, otheragent) target = otheragent var/datum/theft_objective/unique/targetinfo if(faction == "red") @@ -462,7 +464,7 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) steal_target = targetinfo /datum/objective/steal/exchange/backstab -/datum/objective/steal/exchange/backstab/set_faction(var/faction) +/datum/objective/steal/exchange/backstab/set_faction(faction) var/datum/theft_objective/unique/targetinfo if(faction == "red") targetinfo = new /datum/theft_objective/unique/docs_red @@ -497,7 +499,7 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) /datum/objective/absorb -/datum/objective/absorb/proc/gen_amount_goal(var/lowbound = 4, var/highbound = 6) +/datum/objective/absorb/proc/gen_amount_goal(lowbound = 4, highbound = 6) target_amount = rand (lowbound,highbound) if(SSticker) var/n_p = 1 //autowin diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index c8a9d39e555..a89f12f06ce 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -110,6 +110,7 @@ to_chat(rev_mind.current, "Objective #[obj_count]: [objective.explanation_text]") rev_mind.special_role = SPECIAL_ROLE_HEAD_REV obj_count++ + to_chat(rev_mind.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Revolution)") ///////////////////////////////////////////////////////////////////////////////// //This are equips the rev heads with their gear, and makes the clown not clumsy// diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index 75825a12259..d749f8ef553 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -1,4 +1,4 @@ -/proc/getAssignedBlock(var/name,var/list/blocksLeft, var/activity_bounds=DNA_DEFAULT_BOUNDS, var/good=0) +/proc/getAssignedBlock(name, list/blocksLeft, activity_bounds=DNA_DEFAULT_BOUNDS, good=0) if(blocksLeft.len==0) warning("[name]: No more blocks left to assign!") return 0 @@ -114,18 +114,21 @@ if(G.block) if(G.block in blocks_assigned) warning("DNA2: Gene [G.name] trying to use already-assigned block [G.block] (used by [english_list(blocks_assigned[G.block])])") - GLOB.dna_mutations.Add(G) + GLOB.dna_mutations[mutation_type] = G var/list/assignedToBlock[0] if(blocks_assigned[G.block]) - assignedToBlock=blocks_assigned[G.block] + assignedToBlock = blocks_assigned[G.block] assignedToBlock.Add(G.name) - blocks_assigned[G.block]=assignedToBlock + blocks_assigned[G.block] = assignedToBlock //testing("DNA2: Gene [G.name] assigned to block [G.block].") + else + qdel(G) // I WILL HAVE A LIST OF MUTATIONS THAT MATCHES THE RANDOMIZED BLOCKS GODDAMNIT! for(var/block in 1 to DNA_SE_LENGTH) var/name = GLOB.assigned_blocks[block] - for(var/datum/mutation/mutation in GLOB.dna_mutations) + for(var/mutation_type in GLOB.dna_mutations) + var/datum/mutation/mutation = GLOB.dna_mutations[mutation_type] if(mutation.name == name || mutation.block == block) if(mutation.block in GLOB.assigned_mutation_blocks) warning("DNA2: Mutation [mutation.name] trying to add to already assigned gene block list (used by [english_list(GLOB.assigned_mutation_blocks[block])])") diff --git a/code/game/gamemodes/shadowling/ascendant_shadowling.dm b/code/game/gamemodes/shadowling/ascendant_shadowling.dm index 9eeadeaba0f..e4f6f7de4ab 100644 --- a/code/game/gamemodes/shadowling/ascendant_shadowling.dm +++ b/code/game/gamemodes/shadowling/ascendant_shadowling.dm @@ -38,7 +38,7 @@ icon_state = "NurnKal" icon_living = "NurnKal" -/mob/living/simple_animal/ascendant_shadowling/Process_Spacemove(var/movement_dir = 0) +/mob/living/simple_animal/ascendant_shadowling/Process_Spacemove(movement_dir = 0) return 1 //copypasta from carp code /mob/living/simple_animal/ascendant_shadowling/ex_act(severity) @@ -47,7 +47,7 @@ /mob/living/simple_animal/ascendant_shadowling/singularity_act() return 0 //Well hi, fellow god! How are you today? -/mob/living/simple_animal/ascendant_shadowling/proc/announce(var/text, var/size = 4, var/new_sound = null) +/mob/living/simple_animal/ascendant_shadowling/proc/announce(text, size = 4, new_sound = null) var/message = "\"[text]\"" for(var/mob/M in GLOB.player_list) if(!isnewplayer(M) && M.client) diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 2ed440f366d..67109419040 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -55,15 +55,15 @@ Made by Xhuis var/victory_warning_announced = FALSE var/thrall_ratio = 1 -/proc/is_thrall(var/mob/living/M) +/proc/is_thrall(mob/living/M) return istype(M) && M.mind && SSticker && SSticker.mode && (M.mind in SSticker.mode.shadowling_thralls) -/proc/is_shadow_or_thrall(var/mob/living/M) +/proc/is_shadow_or_thrall(mob/living/M) return istype(M) && M.mind && SSticker && SSticker.mode && ((M.mind in SSticker.mode.shadowling_thralls) || (M.mind in SSticker.mode.shadows)) -/proc/is_shadow(var/mob/living/M) +/proc/is_shadow(mob/living/M) return istype(M) && M.mind && SSticker && SSticker.mode && (M.mind in SSticker.mode.shadows) @@ -122,15 +122,14 @@ Made by Xhuis //give_shadowling_abilities(shadow) ..() -/datum/game_mode/proc/greet_shadow(var/datum/mind/shadow) +/datum/game_mode/proc/greet_shadow(datum/mind/shadow) to_chat(shadow.current, "Currently, you are disguised as an employee aboard [world.name].") to_chat(shadow.current, "In your limited state, you have two abilities: Hatch and Shadowling Hivemind (:8).") to_chat(shadow.current, "Any other shadowlings are your allies. You must assist them as they shall assist you.") - to_chat(shadow.current, "If you are new to shadowling, or want to read about abilities, check the wiki page at https://www.paradisestation.org/wiki/index.php/Shadowling
") + to_chat(shadow.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Shadowling)") - -/datum/game_mode/proc/process_shadow_objectives(var/datum/mind/shadow_mind) +/datum/game_mode/proc/process_shadow_objectives(datum/mind/shadow_mind) var/objective = "enthrall" //may be devour later, but for now it seems murderbone-y if(objective == "enthrall") @@ -140,7 +139,7 @@ Made by Xhuis to_chat(shadow_mind.current, "Objective #1: [objective_explanation]
") -/datum/game_mode/proc/finalize_shadowling(var/datum/mind/shadow_mind) +/datum/game_mode/proc/finalize_shadowling(datum/mind/shadow_mind) var/mob/living/carbon/human/S = shadow_mind.current shadow_mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shadowling_hatch(null)) spawn(0) @@ -169,6 +168,7 @@ Made by Xhuis to_chat(new_thrall_mind.current, "Your body has been irreversibly altered. The attentive can see this - you may conceal it by wearing a mask.") to_chat(new_thrall_mind.current, "Though not nearly as powerful as your masters, you possess some weak powers. These can be found in the Thrall Abilities tab.") to_chat(new_thrall_mind.current, "You may communicate with your allies by speaking in the Shadowling Hivemind (:8).") + to_chat(new_thrall_mind.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Shadowling)") if(jobban_isbanned(new_thrall_mind.current, ROLE_SHADOWLING) || jobban_isbanned(new_thrall_mind.current, ROLE_SYNDICATE)) replace_jobbanned_player(new_thrall_mind.current, ROLE_SHADOWLING) if(!victory_warning_announced && (length(shadowling_thralls) >= warning_threshold))//are the slings very close to winning? @@ -176,7 +176,7 @@ Made by Xhuis GLOB.command_announcement.Announce("Large concentration of psychic bluespace energy detected by long-ranged scanners. Shadowling ascension event imminent. Prevent it at all costs!", "Central Command Higher Dimensional Affairs", 'sound/AI/spanomalies.ogg') return 1 -/datum/game_mode/proc/remove_thrall(datum/mind/thrall_mind, var/kill = 0) +/datum/game_mode/proc/remove_thrall(datum/mind/thrall_mind, kill = 0) if(!istype(thrall_mind) || !(thrall_mind in shadowling_thralls) || !isliving(thrall_mind.current)) return 0 //If there is no mind, the mind isn't a thrall, or the mind's mob isn't alive, return shadowling_thralls.Remove(thrall_mind) diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index 5d7f6c269e8..4d93a601e9d 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -1,6 +1,6 @@ #define EMPOWERED_THRALL_LIMIT 5 -/obj/effect/proc_holder/spell/proc/shadowling_check(var/mob/living/carbon/human/H) +/obj/effect/proc_holder/spell/proc/shadowling_check(mob/living/carbon/human/H) if(!H || !istype(H)) return if(H.incorporeal_move == 1) @@ -80,10 +80,12 @@ var/blacklisted_lights = list(/obj/item/flashlight/flare, /obj/item/flashlight/slime) action_icon_state = "veil" -/obj/effect/proc_holder/spell/aoe_turf/veil/cast(list/targets, mob/user = usr) +/obj/effect/proc_holder/spell/aoe_turf/veil/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/user = usr) if(!shadowling_check(user)) - charge_counter = charge_max - return + return FALSE + return ..() + +/obj/effect/proc_holder/spell/aoe_turf/veil/cast(list/targets, mob/user = usr) to_chat(user, "You silently disable all nearby lights.") for(var/obj/structure/glowshroom/G in orange(2, user)) //Why the fuck was this in the loop below? G.visible_message("[G] withers away!") @@ -103,10 +105,12 @@ include_user = 1 action_icon_state = "shadow_walk" -/obj/effect/proc_holder/spell/targeted/shadow_walk/cast(list/targets, mob/user = usr) +/obj/effect/proc_holder/spell/targeted/shadow_walk/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/user = usr) if(!shadowling_check(user)) - charge_counter = charge_max - return + return FALSE + return ..() + +/obj/effect/proc_holder/spell/targeted/shadow_walk/cast(list/targets, mob/user = usr) for(var/mob/living/target in targets) playsound(user.loc, 'sound/effects/bamf.ogg', 50, 1) target.visible_message("[target] vanishes in a puff of black mist!", "You enter the space between worlds as a passageway.") @@ -176,10 +180,12 @@ clothes_req = 0 action_icon_state = "icy_veins" -/obj/effect/proc_holder/spell/aoe_turf/flashfreeze/cast(list/targets, mob/user = usr) +/obj/effect/proc_holder/spell/aoe_turf/flashfreeze/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/living/user = usr) if(!shadowling_check(user)) - charge_counter = charge_max - return + return FALSE + return ..() + +/obj/effect/proc_holder/spell/aoe_turf/flashfreeze/cast(list/targets, mob/user = usr) to_chat(user, "You freeze the nearby air.") playsound(user.loc, 'sound/effects/ghost2.ogg', 50, 1) @@ -215,8 +221,11 @@ selection_deactivated_message = "Your mind relaxes." allowed_type = /mob/living/carbon/human -/obj/effect/proc_holder/spell/targeted/click/enthrall/can_cast(mob/user = usr, charge_check = TRUE, show_message = FALSE) - if(enthralling || !shadowling_check(user)) +/obj/effect/proc_holder/spell/targeted/click/enthrall/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/living/user = usr) + if(enthralling) + to_chat(user, "You're already enthralling someone!") + return FALSE + if(!shadowling_check(user)) return FALSE return ..() @@ -311,10 +320,12 @@ var/reviveThrallAcquired action_icon_state = "collective_mind" -/obj/effect/proc_holder/spell/targeted/collective_mind/cast(list/targets, mob/user = usr) +/obj/effect/proc_holder/spell/targeted/collective_mind/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/living/user = usr) if(!shadowling_check(user)) - charge_counter = charge_max - return + return FALSE + return ..() + +/obj/effect/proc_holder/spell/targeted/collective_mind/cast(list/targets, mob/user = usr) for(var/mob/living/target in targets) var/thralls = 0 var/victory_threshold = SSticker.mode.required_thralls @@ -386,10 +397,12 @@ include_user = 1 action_icon_state = "black_smoke" -/obj/effect/proc_holder/spell/targeted/blindness_smoke/cast(list/targets, mob/user = usr) //Extremely hacky +/obj/effect/proc_holder/spell/targeted/blindness_smoke/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/living/user = usr) if(!shadowling_check(user)) - charge_counter = charge_max - return + return FALSE + return ..() + +/obj/effect/proc_holder/spell/targeted/blindness_smoke/cast(list/targets, mob/user = usr) //Extremely hacky for(var/mob/living/target in targets) target.visible_message("[target] suddenly bends over and coughs out a cloud of black smoke, which begins to spread rapidly!") to_chat(target, "You regurgitate a vast cloud of blinding smoke.") @@ -435,10 +448,12 @@ clothes_req = 0 action_icon_state = "screech" -/obj/effect/proc_holder/spell/aoe_turf/unearthly_screech/cast(list/targets, mob/user = usr) +/obj/effect/proc_holder/spell/aoe_turf/unearthly_screech/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/living/user = usr) if(!shadowling_check(user)) - charge_counter = charge_max - return + return FALSE + return ..() + +/obj/effect/proc_holder/spell/aoe_turf/unearthly_screech/cast(list/targets, mob/user = usr) user.audible_message("[user] lets out a horrible scream!") playsound(user.loc, 'sound/effects/screech.ogg', 100, 1) @@ -472,11 +487,12 @@ clothes_req = FALSE action_icon_state = "null_charge" -/obj/effect/proc_holder/spell/aoe_turf/null_charge/cast(mob/user = usr) +/obj/effect/proc_holder/spell/aoe_turf/null_charge/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/living/user = usr) if(!shadowling_check(user)) - charge_counter = charge_max - return + return FALSE + return ..() +/obj/effect/proc_holder/spell/aoe_turf/null_charge/cast(mob/user = usr) var/list/local_objs = view(1, user) var/obj/machinery/power/apc/target_apc for(var/object in local_objs) @@ -532,7 +548,7 @@ selection_deactivated_message = "Your mind relaxes." allowed_type = /mob/living/carbon/human -/obj/effect/proc_holder/spell/targeted/click/reviveThrall/can_cast(mob/user = usr) +/obj/effect/proc_holder/spell/targeted/click/reviveThrall/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/living/user = usr) if(!shadowling_check(user)) return FALSE return ..() @@ -622,9 +638,12 @@ action_icon_state = "extend_shuttle" var/global/extendlimit = 0 -/obj/effect/proc_holder/spell/targeted/click/shadowling_extend_shuttle/can_cast(mob/user = usr, charge_check = TRUE, show_message = FALSE) +/obj/effect/proc_holder/spell/targeted/click/shadowling_extend_shuttle/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/living/user = usr) if(!shadowling_check(user)) return FALSE + return ..() + +/obj/effect/proc_holder/spell/targeted/click/shadowling_extend_shuttle/can_cast(mob/user = usr, charge_check = TRUE, show_message = FALSE) if(extendlimit == 1) if(show_message) to_chat(user, "Shuttle was already delayed.") diff --git a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm index 9fb234a27ff..4007ce3c77a 100644 --- a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm @@ -122,10 +122,13 @@ GLOBAL_LIST_INIT(possibleShadowlingNames, list("U'ruan", "Y`shej", "Nex", "Hel-u include_user = 1 action_icon_state = "ascend" +/obj/effect/proc_holder/spell/targeted/shadowling_ascend/cast_check(charge_check = TRUE, start_recharge = TRUE, mob/living/user = usr) + if(!shadowling_check(user)) + return FALSE + return ..() + /obj/effect/proc_holder/spell/targeted/shadowling_ascend/cast(list/targets, mob/user = usr) var/mob/living/carbon/human/H = user - if(!shadowling_check(H)) - return for(H in targets) var/hatch_or_no = alert(H,"It is time to ascend. Are you sure about this?",,"Yes","No") switch(hatch_or_no) diff --git a/code/game/gamemodes/steal_items.dm b/code/game/gamemodes/steal_items.dm index 1b1a222cd9e..2ea71edc2cd 100644 --- a/code/game/gamemodes/steal_items.dm +++ b/code/game/gamemodes/steal_items.dm @@ -15,7 +15,7 @@ /// Do we have a special item we give to somewhen when they get this objective? var/special_equipment = null -/datum/theft_objective/proc/check_completion(var/datum/mind/owner) +/datum/theft_objective/proc/check_completion(datum/mind/owner) if(!owner.current) return 0 if(!isliving(owner.current)) @@ -64,7 +64,7 @@ typepath = /obj/item/aicard location_override = "AI Satellite. An intellicard for transportation can be found in Tech Storage, Science Department or manufactured" -/datum/theft_objective/ai/check_special_completion(var/obj/item/aicard/C) +/datum/theft_objective/ai/check_special_completion(obj/item/aicard/C) if(..()) 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. @@ -168,7 +168,7 @@ required_amount=rand(lower,upper)*step name = "[required_amount] [name]" -/datum/theft_objective/number/check_completion(var/datum/mind/owner) +/datum/theft_objective/number/check_completion(datum/mind/owner) if(!owner.current) return 0 if(!isliving(owner.current)) @@ -180,7 +180,7 @@ found_amount += getAmountStolen(I) return found_amount >= required_amount -/datum/theft_objective/number/proc/getAmountStolen(var/obj/item/I) +/datum/theft_objective/number/proc/getAmountStolen(obj/item/I) return I:amount /datum/theft_objective/unique diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index 56f31a173be..6c116ab53f2 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -135,7 +135,7 @@ to_chat(world, text) return 1 -/datum/game_mode/proc/forge_vampire_objectives(var/datum/mind/vampire) +/datum/game_mode/proc/forge_vampire_objectives(datum/mind/vampire) //Objectives are traitor objectives plus blood objectives var/datum/objective/blood/blood_objective = new @@ -172,7 +172,7 @@ return vampire_mob.make_vampire() -/datum/game_mode/proc/greet_vampire(var/datum/mind/vampire, var/you_are=1) +/datum/game_mode/proc/greet_vampire(datum/mind/vampire, you_are=1) var/dat if(you_are) SEND_SOUND(vampire.current, sound('sound/ambience/antag/vampalert.ogg')) @@ -193,8 +193,8 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha for(var/datum/objective/objective in vampire.objectives) to_chat(vampire.current, "Objective #[obj_count]: [objective.explanation_text]") obj_count++ + to_chat(vampire.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Vampire)") return - /datum/vampire var/bloodtotal = 0 // CHANGE TO ZERO WHEN PLAYTESTING HAPPENS var/bloodusable = 0 // CHANGE TO ZERO WHEN PLAYTESTING HAPPENS @@ -220,6 +220,10 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha /obj/effect/proc_holder/spell/vampire/targetted/enthrall = 300, /datum/vampire_passive/full = 500) +/datum/vampire/proc/adjust_nullification(base, extra) + // First hit should give full nullification, while subsequent hits increase the value slower + nullified = max(nullified + extra, base) + /datum/vampire/New(gend = FEMALE) gender = gend @@ -248,7 +252,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha qdel(ability) owner.update_sight() // Life updates conditionally, so we need to update sight here in case the vamp loses his vision based powers. Maybe one day refactor to be more OOP and on the vampire's ability datum. -/datum/vampire/proc/update_owner(var/mob/living/carbon/human/current) //Called when a vampire gets cloned. This updates vampire.owner to the new body. +/datum/vampire/proc/update_owner(mob/living/carbon/human/current) //Called when a vampire gets cloned. This updates vampire.owner to the new body. if(current.mind && current.mind.vampire && current.mind.vampire.owner && (current.mind.vampire.owner != current)) current.mind.vampire.owner = current diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index db245cd0d25..4e06cb02df1 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -564,7 +564,7 @@ H.raise_vampire(user) -/mob/living/carbon/human/proc/raise_vampire(var/mob/M) +/mob/living/carbon/human/proc/raise_vampire(mob/M) if(!istype(M)) log_debug("human/proc/raise_vampire called with invalid argument.") return diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index ee9fd069a76..af83abba66b 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -147,7 +147,7 @@ var/spawn_path = /mob/living/simple_animal/cow //defaulty cows to prevent unintentional narsies var/spawn_amt_left = 20 -/obj/effect/rend/New(loc, var/spawn_type, var/spawn_amt, var/desc) +/obj/effect/rend/New(loc, spawn_type, spawn_amt, desc) ..() src.spawn_path = spawn_type src.spawn_amt_left = spawn_amt @@ -352,7 +352,7 @@ GLOBAL_LIST_EMPTY(multiverse) to_chat(user, "[src] is recharging! Keep in mind it shares a cooldown with the swords wielded by your copies.") -/obj/item/multisword/proc/spawn_copy(var/client/C, var/turf/T, mob/user) +/obj/item/multisword/proc/spawn_copy(client/C, turf/T, mob/user) var/mob/living/carbon/human/M = new/mob/living/carbon/human(T) if(duplicate_self) user.client.prefs.copy_to(M) @@ -398,7 +398,7 @@ GLOBAL_LIST_EMPTY(multiverse) M.mind.special_role = SPECIAL_ROLE_MULTIVERSE log_game("[M.key] was made a multiverse traveller with the objective to help [usr.real_name] protect the station.") -/obj/item/multisword/proc/equip_copy(var/mob/living/carbon/human/M) +/obj/item/multisword/proc/equip_copy(mob/living/carbon/human/M) var/obj/item/multisword/sword = new sword_type sword.assigned = assigned diff --git a/code/game/gamemodes/wizard/godhand.dm b/code/game/gamemodes/wizard/godhand.dm index f2d0e6eb81a..409a1801e40 100644 --- a/code/game/gamemodes/wizard/godhand.dm +++ b/code/game/gamemodes/wizard/godhand.dm @@ -13,7 +13,7 @@ throw_range = 0 throw_speed = 0 -/obj/item/melee/touch_attack/New(var/spell) +/obj/item/melee/touch_attack/New(spell) attached_spell = spell ..() diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm index 0c2475edd41..d50a6200764 100644 --- a/code/game/gamemodes/wizard/raginmages.dm +++ b/code/game/gamemodes/wizard/raginmages.dm @@ -16,7 +16,7 @@ to_chat(world, "The current game mode is - Ragin' Mages!") to_chat(world, "The Space Wizard Federation is pissed, crew must help defeat all the Space Wizards invading the station!") -/datum/game_mode/wizard/raginmages/greet_wizard(var/datum/mind/wizard, var/you_are=1) +/datum/game_mode/wizard/raginmages/greet_wizard(datum/mind/wizard, you_are=1) if(you_are) to_chat(wizard.current, "You are the Space Wizard!") to_chat(wizard.current, "The Space Wizard Federation has given you the following tasks:") @@ -85,7 +85,7 @@ return ..() // To silence all struggles within the wizard's lair -/datum/game_mode/wizard/raginmages/proc/end_squabble(var/area/wizard_station/A) +/datum/game_mode/wizard/raginmages/proc/end_squabble(area/wizard_station/A) if(!istype(A)) return // You could probably do mean things with this otherwise var/list/marked_for_death = list() for(var/mob/living/L in A) // To hit non-wizard griefers @@ -143,7 +143,7 @@ // ripped from -tg-'s wizcode, because whee lets make a very general proc for a very specific gamemode // This probably wouldn't do half bad as a proc in __HELPERS // Lemme know if this causes species to mess up spectacularly or anything -/datum/game_mode/wizard/raginmages/proc/makeBody(var/mob/dead/observer/G) +/datum/game_mode/wizard/raginmages/proc/makeBody(mob/dead/observer/G) if(!G || !G.key) return // Let's not steal someone's soul here var/mob/living/carbon/human/new_character = new(pick(GLOB.latejoin)) diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index cd7c5d21546..c065502cc58 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -323,6 +323,7 @@ var/mob/living/simple_animal/hostile/construct/C = new picked_class(shell.loc) C.init_construct(shade, src, shell) to_chat(C, C.playstyle_string) + to_chat(C, "For more information, check the wiki page: ([config.wikiurl]/index.php/Construct)") else to_chat(user, "Creation failed!: The soul stone is empty! Go kill someone!") @@ -339,13 +340,11 @@ if(shade.mind) shade.mind.transfer_to(src) if(SS.purified) - set_light(3, 5, LIGHT_COLOR_DARK_BLUE) - name = "Holy [name]" - real_name = "Holy [real_name]" - + make_holy() // Replace regular soulstone summoning with purified soulstones - RemoveSpell(/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone) - AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/holy) + if(is_type_in_list(/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone, mob_spell_list)) + RemoveSpell(/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone) + AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/holy) else if(iscultist(src)) // Re-grant cult actions, lost in the transfer var/datum/action/innate/cult/comm/CC = new diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 88ee4cc393d..c22a26181ad 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -88,7 +88,7 @@ if(!S) S = new spell_type() var/dat ="" - dat += "[initial(S.name)]" + dat += "[name]" if(S.charge_type == "recharge") dat += " Cooldown:[S.charge_max/10]" dat += " Cost:[cost]
" @@ -227,6 +227,25 @@ log_name = "TS" category = "Defensive" +/datum/spellbook_entry/sacred_flame + name = "Sacred Flame and Fire Immunity" + spell_type = /obj/effect/proc_holder/spell/targeted/sacred_flame + cost = 1 + log_name = "SF" + category = "Defensive" + +/datum/spellbook_entry/sacred_flame/LearnSpell(mob/living/carbon/human/user, obj/item/spellbook/book, obj/effect/proc_holder/spell/newspell) + to_chat(user, "You feel fireproof.") + ADD_TRAIT(user, TRAIT_RESISTHEAT, MAGIC_TRAIT) + ADD_TRAIT(user, TRAIT_RESISTHIGHPRESSURE, MAGIC_TRAIT) + return ..() + +/datum/spellbook_entry/sacred_flame/Refund(mob/living/carbon/human/user, obj/item/spellbook/book) + to_chat(user, "You no longer feel fireproof.") + REMOVE_TRAIT(user, TRAIT_RESISTHEAT, MAGIC_TRAIT) + REMOVE_TRAIT(user, TRAIT_RESISTHIGHPRESSURE, MAGIC_TRAIT) + return ..() + //Mobility /datum/spellbook_entry/knock name = "Knock" @@ -357,10 +376,14 @@ name = "Buy Item" refundable = 0 buy_word = "Summon" + var/spawn_on_floor = FALSE var/item_path = null /datum/spellbook_entry/item/Buy(mob/living/carbon/human/user, obj/item/spellbook/book) - user.put_in_hands(new item_path) + if(spawn_on_floor == FALSE) + user.put_in_hands(new item_path) + else + new item_path(user.loc) SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, log_name) return 1 @@ -406,6 +429,30 @@ log_name = "WA" category = "Artefacts" +/datum/spellbook_entry/item/cursed_heart + name = "Cursed Heart" + desc = "A heart that has been empowered with magic to heal the user. The user must ensure the heart is manually beaten or their blood circulation will suffer, but every beat heals their injuries. It must beat every 6 seconds. Not reccomended for first time wizards." + item_path = /obj/item/organ/internal/heart/cursed/wizard + log_name = "CH" + cost = 1 + category = "Artefacts" + +/datum/spellbook_entry/item/voice_of_god + name = "Voice of God" + desc = "A magical vocal cord that can be used to yell out with the voice of a god, be it to harm, help, or confuse the target." + item_path = /obj/item/organ/internal/vocal_cords/colossus/wizard + log_name = "VG" + category = "Artefacts" + +/datum/spellbook_entry/item/warp_cubes + name = "Warp Cubes" + desc = "Two magic cubes, that when they are twisted in hand, teleports the user to the location of the other cube instantly. Great for silently teleporting to a fixed location, or teleporting you to an appretnance, or vice versa. Do not leave on the wizard den, it will not work." + item_path = /obj/item/warp_cube/red + log_name = "WC" + cost = 1 + spawn_on_floor = TRUE // breaks if spawned in hand + category = "Artefacts" + //Weapons and Armors /datum/spellbook_entry/item/battlemage name = "Battlemage Armour" @@ -437,6 +484,21 @@ log_name = "SI" category = "Weapons and Armors" +/datum/spellbook_entry/item/spell_blade //Yes spellblade is technicaly a staff, but you can melee with it and it is not called a staff so I am putting it here + name = "Spellblade" + desc = "A magical sword that is quite good at slashing people, but is even better at shooting magical projectiles that can potentialy delimb at range." + item_path = /obj/item/gun/magic/staff/spellblade + log_name = "SB" + category = "Weapons and Armors" + +/datum/spellbook_entry/item/meat_hook + name = "Meat hook" + desc = "An enchanted hook, that can be used to hook people, hurt them, and bring them right to you. Quite bulky, works well as a belt though." + item_path = /obj/item/gun/magic/hook + cost = 1 + log_name = "MH" + category = "Weapons and Armors" + //Staves /datum/spellbook_entry/item/staffdoor name = "Staff of Door Creation" diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index c21640d8466..d076afbaadb 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -77,7 +77,7 @@ wizhud.leave_hud(wiz_mind.current) set_antag_hud(wiz_mind.current, null) -/datum/game_mode/proc/forge_wizard_objectives(var/datum/mind/wizard) +/datum/game_mode/proc/forge_wizard_objectives(datum/mind/wizard) var/datum/objective/wizchaos/wiz_objective = new wiz_objective.owner = wizard wizard.objectives += wiz_objective @@ -98,7 +98,7 @@ if(wizard_mob.mind) wizard_mob.mind.name = newname -/datum/game_mode/proc/greet_wizard(var/datum/mind/wizard, var/you_are=1) +/datum/game_mode/proc/greet_wizard(datum/mind/wizard, you_are=1) addtimer(CALLBACK(wizard.current, /mob/.proc/playsound_local, null, 'sound/ambience/antag/ragesmages.ogg', 100, 0), 30) if(you_are) to_chat(wizard.current, "You are the Space Wizard!") @@ -108,6 +108,7 @@ for(var/datum/objective/objective in wizard.objectives) to_chat(wizard.current, "Objective #[obj_count]: [objective.explanation_text]") obj_count++ + to_chat(wizard.current, "For more information, check the wiki page: ([config.wikiurl]/index.php/Wizard)") return /*/datum/game_mode/proc/learn_basic_spells(mob/living/carbon/human/wizard_mob) @@ -198,7 +199,7 @@ finished = 1 return 1 -/datum/game_mode/wizard/declare_completion(var/ragin = 0) +/datum/game_mode/wizard/declare_completion(ragin = 0) if(finished && !ragin) SSticker.mode_result = "wizard loss - wizard killed" to_chat(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!") diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index ac533f0b7ef..f2b28fea297 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -54,7 +54,7 @@ L = list() return check_access_list(L) -/obj/proc/check_access_list(var/list/L) +/obj/proc/check_access_list(list/L) generate_req_lists() if(!L) @@ -63,7 +63,7 @@ return 0 return has_access(req_access, req_one_access, L) -/proc/has_access(var/list/req_access, var/list/req_one_access, var/list/accesses) +/proc/has_access(list/req_access, list/req_one_access, list/accesses) for(var/req in req_access) if(!(req in accesses)) //doesn't have this access return 0 @@ -400,6 +400,9 @@ /proc/get_all_centcom_jobs() return list("VIP Guest","Custodian","Thunderdome Overseer","Emergency Response Team Member","Emergency Response Team Leader","Intel Officer","Medical Officer","Death Commando","Research Officer","Deathsquad Officer","Special Operations Officer","Nanotrasen Navy Representative","Nanotrasen Navy Officer","Nanotrasen Navy Captain","Supreme Commander") +/proc/get_all_solgov_jobs() + return list("Solar Federation Lieutenant","Solar Federation Specops Lieutenant","Solar Federation Marine","Solar Federation Specops Marine","Solar Federation Representative","Sol Trader") + //gets the actual job rank (ignoring alt titles) //this is used solely for sechuds /obj/proc/GetJobRealName() @@ -424,26 +427,8 @@ return "Unknown" -//gets the alt title, failing that the actual job rank -//this is unused -// THEN WHY IS IT STILL HERE?? -AA07, 2020-07-31 -/obj/proc/sdsdsd() //GetJobDisplayName - if(!istype(src, /obj/item/pda) && !istype(src,/obj/item/card/id)) - return - var/assignment - if(istype(src, /obj/item/pda)) - if(src:id) - assignment = src:id:assignment - else if(istype(src, /obj/item/card/id)) - assignment = src:assignment - - if(assignment) - return assignment - - return "Unknown" - -/proc/GetIdCard(var/mob/living/carbon/human/H) +/proc/GetIdCard(mob/living/carbon/human/H) if(H.wear_id) var/id = H.wear_id.GetID() if(id) @@ -452,7 +437,7 @@ var/obj/item/I = H.get_active_hand() return I.GetID() -/proc/FindNameFromID(var/mob/living/carbon/human/H) +/proc/FindNameFromID(mob/living/carbon/human/H) ASSERT(istype(H)) var/obj/item/card/id/C = H.get_active_hand() if( istype(C) || istype(C, /obj/item/pda) ) @@ -499,12 +484,18 @@ var/job_icons = get_all_job_icons() var/centcom = get_all_centcom_jobs() + var/solgov = get_all_solgov_jobs() if(assignmentName in centcom) //Return with the NT logo if it is a Centcom job return "Centcom" if(rankName in centcom) return "Centcom" + if(assignmentName in solgov) //Return with the SolGov logo if it is a SolGov job + return "solgov" + if(rankName in solgov) + return "solgov" + if(assignmentName in job_icons) //Check if the job has a hud icon return assignmentName if(rankName in job_icons) diff --git a/code/game/jobs/job_exp.dm b/code/game/jobs/job_exp.dm index 0e281606124..b30fbac02c4 100644 --- a/code/game/jobs/job_exp.dm +++ b/code/game/jobs/job_exp.dm @@ -85,7 +85,7 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list( src << browse(msg, "window=Player_playtime_check") -/datum/admins/proc/cmd_mentor_show_exp_panel(var/client/C) +/datum/admins/proc/cmd_mentor_show_exp_panel(client/C) if(!C) to_chat(usr, "ERROR: Client not found.") return @@ -197,10 +197,10 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list( return_text += "" return return_text -/client/proc/get_exp_type(var/etype) +/client/proc/get_exp_type(etype) return get_exp_format(get_exp_type_num(etype)) -/client/proc/get_exp_type_num(var/etype) +/client/proc/get_exp_type_num(etype) var/list/play_records = params2list(prefs.exp) return text2num(play_records[etype]) @@ -216,7 +216,7 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list( return result_text.Join("") -/proc/get_exp_format(var/expnum) +/proc/get_exp_format(expnum) if(expnum > 60) return num2text(round(expnum / 60)) + "h" else if(expnum > 0) diff --git a/code/game/jobs/job_objective.dm b/code/game/jobs/job_objective.dm index 660d1830f0a..8eaf9e09b39 100644 --- a/code/game/jobs/job_objective.dm +++ b/code/game/jobs/job_objective.dm @@ -1,7 +1,7 @@ /datum/mind/var/list/job_objectives = list() #define FINDJOBTASK_DEFAULT_NEW 1 // Make a new task of this type if one can't be found. -/datum/mind/proc/findJobTask(var/typepath, var/options = 0) +/datum/mind/proc/findJobTask(typepath, options = 0) var/datum/job_objective/task = locate(typepath) in job_objectives if(!istype(task,typepath)) if(options & FINDJOBTASK_DEFAULT_NEW) @@ -18,7 +18,7 @@ var/units_requested = INFINITY var/completion_payment = 0 // Credits paid to owner when completed -/datum/job_objective/New(var/datum/mind/new_owner) +/datum/job_objective/New(datum/mind/new_owner) owner = new_owner owner.job_objectives += src @@ -27,7 +27,7 @@ var/desc = "Placeholder Objective" return desc -/datum/job_objective/proc/unit_completed(var/count=1) +/datum/job_objective/proc/unit_completed(count=1) units_completed += count /datum/job_objective/proc/is_completed() diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index 2f8e426e030..e0e817f76ef 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -105,7 +105,7 @@ GLOBAL_LIST_INIT(whitelisted_positions, list( )) -/proc/guest_jobbans(var/job) +/proc/guest_jobbans(job) return (job in GLOB.whitelisted_positions) /proc/get_job_datums() @@ -119,7 +119,7 @@ GLOBAL_LIST_INIT(whitelisted_positions, list( return occupations -/proc/get_alternate_titles(var/job) +/proc/get_alternate_titles(job) var/list/jobs = get_job_datums() var/list/titles = list() diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm index fe835c4dc8d..af80e7474a4 100644 --- a/code/game/jobs/whitelist.dm +++ b/code/game/jobs/whitelist.dm @@ -13,13 +13,13 @@ GLOBAL_LIST_EMPTY(whitelist) if(!GLOB.whitelist.len) GLOB.whitelist = null /* -/proc/check_whitelist(mob/M, var/rank) +/proc/check_whitelist(mob/M, rank) if(!whitelist) return 0 return ("[M.ckey]" in whitelist) */ -/proc/is_job_whitelisted(mob/M, var/rank) +/proc/is_job_whitelisted(mob/M, rank) if(guest_jobbans(rank)) if(!config.usewhitelist) return TRUE @@ -68,7 +68,7 @@ GLOBAL_LIST_EMPTY(alien_whitelist) GLOB.alien_whitelist = splittext(text, "\n") //todo: admin aliens -/proc/is_alien_whitelisted(mob/M, var/species) +/proc/is_alien_whitelisted(mob/M, species) if(!config.usealienwhitelist) return TRUE if(config.disable_karma) diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm index 1f626f0656b..41612fb870b 100644 --- a/code/game/machinery/Beacon.dm +++ b/code/game/machinery/Beacon.dm @@ -39,7 +39,7 @@ destroy_beacon() return ..() -/obj/machinery/bluespace_beacon/hide(var/intact) +/obj/machinery/bluespace_beacon/hide(intact) invisibility = intact ? INVISIBILITY_MAXIMUM : 0 update_icon() diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index eaa1120ab04..45cd917c39b 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -27,7 +27,7 @@ disabled = TRUE update_icon() -/obj/machinery/ai_slipper/proc/setState(var/enabled, var/uses) +/obj/machinery/ai_slipper/proc/setState(enabled, uses) disabled = disabled uses = uses power_change() diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 8a800e9a29f..c148ca6e68f 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -37,12 +37,13 @@ var/list/recipiecache = list() var/list/categories = list("Tools", "Electronics", "Construction", "Communication", "Security", "Machinery", "Medical", "Miscellaneous", "Dinnerware", "Imported") + var/board_type = /obj/item/circuitboard/autolathe /obj/machinery/autolathe/New() AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS), _show_on_examine=TRUE, _after_insert=CALLBACK(src, .proc/AfterMaterialInsert)) ..() component_parts = list() - component_parts += new /obj/item/circuitboard/autolathe(null) + component_parts += new board_type(null) component_parts += new /obj/item/stock_parts/matter_bin(null) component_parts += new /obj/item/stock_parts/matter_bin(null) component_parts += new /obj/item/stock_parts/matter_bin(null) @@ -57,7 +58,7 @@ /obj/machinery/autolathe/upgraded/New() ..() component_parts = list() - component_parts += new /obj/item/circuitboard/autolathe(null) + component_parts += new board_type(null) component_parts += new /obj/item/stock_parts/matter_bin/super(null) component_parts += new /obj/item/stock_parts/matter_bin/super(null) component_parts += new /obj/item/stock_parts/matter_bin/super(null) @@ -288,6 +289,8 @@ return ..() /obj/machinery/autolathe/crowbar_act(mob/user, obj/item/I) + if(!panel_open) + return if(!I.use_tool(src, user, 0, volume = 0)) return . = TRUE @@ -491,3 +494,13 @@ /obj/machinery/autolathe/proc/check_disabled_callback() if(!wires.is_cut(WIRE_AUTOLATHE_DISABLE)) disabled = FALSE + +/obj/machinery/autolathe/syndicate + name = "syndicate autolathe" + board_type = /obj/item/circuitboard/autolathe/syndi + +/obj/machinery/autolathe/syndicate/New() + ..() + if(files) + QDEL_NULL(files) + files = new /datum/research/autolathe/syndicate(src) diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 9d7b73b2bcc..32b9b381887 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -24,7 +24,7 @@ /obj/machinery/button/indestructible resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF -/obj/machinery/driver_button/New(turf/loc, var/w_dir=null) +/obj/machinery/driver_button/New(turf/loc, w_dir=null) ..() switch(w_dir) if(NORTH) @@ -81,7 +81,7 @@ return ..() -/obj/machinery/driver_button/multitool_menu(var/mob/user, var/obj/item/multitool/P) +/obj/machinery/driver_button/multitool_menu(mob/user, obj/item/multitool/P) return {"