diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b96dee5c47b..69893a3b68a 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -482,9 +482,15 @@ in the SQL/updates folder. ### Mapping Standards * Map Merge - * You MUST run Map Merge prior to opening your PR when updating existing maps to minimize the change differences (even when using third party mapping programs such as FastDMM.) - * Failure to run Map Merge on a map after using third party mapping programs (such as FastDMM) greatly increases the risk of the map's key dictionary - becoming corrupted by future edits after running map merge. Resolving the corruption issue involves rebuilding the map's key dictionary; + * The following guideline for map merging applies to people who are **NOT** using StrongDMM, please see the StrongDMM section if you are. + * You **MUST** run Map Merge prior to opening your PR when updating existing maps to minimize the change differences (even when using third party mapping programs such as FastDMM.) + * Failure to run Map Merge on a map after using third party mapping programs (such as FastDMM) greatly increases the risk of the map's key dictionary becoming corrupted by future edits after running map merge. Resolving the corruption issue involves rebuilding the map's key dictionary; + +* StrongDMM + * When using StrongDMM, the following options **MUST** be enabled to avoid file bloat. They can be found under `File > Preferences > Save Options` in SDMM. + * Map save format: This **MUST** be set to **TGM** if you do not want to run Map Merge. Enabling this setting means SDMM will automatically map merge, letting you skip manual merging. + * Sanitize Variables - Removes variables that are declared on the map, but are the same as default. (For example: A standard floor turf that has `dir = 2` declared on the map will have that variable deleted as it is redundant.) + * Clean Unused Keys - Removes content tile keys that are no longer used on the map, usually leftover keys from deletions or edits. * Variable Editing (Var-edits) * While var-editing an item within the editor is perfectly fine, it is preferred that when you are changing the base behavior of an item (how it functions) that you make a new subtype of that item within the code, especially if you plan to use the item in multiple locations on the same map, or across multiple maps. This makes it easier to make corrections as needed to all instances of the item at one time as opposed to having to find each instance of it and change them all individually. @@ -492,9 +498,45 @@ in the SQL/updates folder. * Please attempt to clean out any dirty variables that may be contained within items you alter through var-editing. For example, due to how DM functions, changing the `pixel_x` variable from 23 to 0 will leave a dirty record in the map's code of `pixel_x = 0`. Likewise this can happen when changing an item's icon to something else and then back. This can lead to some issues where an item's icon has changed within the code, but becomes broken on the map due to it still attempting to use the old entry. * Areas should not be var-edited on a map to change it's name or attributes. All areas of a single type and it's altered instances are considered the same area within the code, and editing their variables on a map can lead to issues with powernets and event subsystems which are difficult to debug. +* If you are making non-minor edits to an area or room, (non-minor being anything more than moving a few objects or fixing small bugs) then you should ensure the entire area/room meets these standards. + +* When making a change to an area or room, follow these guidelines: + * Unless absolutely necessary, do not run pipes (including disposals) under wall turfs. + * NEVER run cables under wall turfs. + * Keep floor turf variations to a minimum. Generally, more than 3 floor turf types in one room is bad design. + * Run air pipes together where possible. The first example below is to be avoided, the second is optimal: + + ![image](https://user-images.githubusercontent.com/12197162/120011088-d22c7400-bfd5-11eb-867f-7b137ac5b1b2.png) ![image](https://user-images.githubusercontent.com/12197162/120011126-dfe1f980-bfd5-11eb-96b2-c83238a9cdcf.png) + * Pipe layouts should be logical and predictable, easy to understand at a glance. Always avoid complex layouts like in this example: + + ![image](https://user-images.githubusercontent.com/12197162/120619480-ecda6f00-c453-11eb-9d9f-abf0d1a99c34.png) + + * Decals are to be used sparingly. Good map design does not require warning tape around everything. Decal overuse contributes to maptick slowdown. + * Every **area** should contain only one APC and air alarm. + * Critical infrastructure rooms (such as the engine, arrivals, and medbay areas) should be given an APC with a larger power cell. + * Every **room** should contain at least one fire alarm, air vent and scrubber, light switch, station intercom, and security camera. + * Intercoms should be set to frequency 145.9, and be speaker ON Microphone OFF. This is so radio signals can reach people even without headsets on. Larger room will require more than one at a time. + * Exceptions can be made to security camera placement for certain rooms, such as the execution room. Larger rooms may require more than one security camera. All security cameras should have a descriptive name that makes it easy to find on a camera console. + * A good example would be the template [Department name] - [Area], so Brig - Cell 1, or Medbay - Treatment Center. Consistency is key to good camera naming. + * Fire alarms should not be placed next to expected heat sources. + * Use the following "on" subtype of vents and scrubbers as opposed to var-editing: `/obj/machinery/atmospherics/unary/vent_scrubber/on` and `/obj/machinery/atmospherics/unary/vent_pump/on` + * Head of staff officers should contain a requests console. + * Firelocks should be used at area boundaries over doors and windows. Firelocks can also be used to break up hallways at reasonable intervals. + * Double firelocks are to be avoided unless absolutely necessary. + * Maintenance access doors should not have firelocks placed over them. + * Windows to secure areas or external areas should be reinforced. Windows in engine areas should be reinforced plasma glass. + * Windows in high security areas, such as the brig, bridge, and head of staff offices, should be electrified by placing a wire node under the window. + * Lights are to be used sparingly, they draw a significant amount of power. + * Ensure door and windoor access is correctly set, these are handled by the variables `req_access_txt` and `req_one_access_txt`. Public doors should have both of these values as `"0"`. For a list of access values, see [`code\__DEFINES\access.dm`](code/__DEFINES/access.dm). + * Always use numerical values encased in quotes for these variables. Multiple access values can be defined by separating them with a `;`, for example: `"28;31"` for kitchen AND cargo access. + * req_access_txt requires ALL LISTED ACCESSES to open the door, while req_one_access_txt lets anyone with ONE OF THE LISTED ACCESSES open the door. + * Departments should be connected to maintenance through a back or side door. This lets players escape and allows antags to break in. + * If this is not possible, departments should have extra entry and exit points. + * Engine areas, or areas with a high probability of receiving explosions, should use reinforced flooring if appropriate. + * External areas, or areas where depressurisation is expected and normal, should use airless turf variants to prevent additional atmospherics load. + * Edits in mapping tools should generally be possible to replicate in-game. For this reason, avoid stacking multiple structures on the same tile (i.e. placing a light and an APC on the same wall.) ### Other Notes * Code should be modular where possible; if you are working on a new addition, then strongly consider putting it in its own file unless it makes sense to put it with similar ones (i.e. a new tool would go in the "tools.dm" file) - * Bloated code may be necessary to add a certain feature, which means there has to be a judgement over whether the feature is worth having or not. You can help make this decision easier by making sure your code is modular. * You are expected to help maintain the code that you add, meaning that if there is a problem then you are likely to be approached in order to fix any issues, runtimes, or bugs. diff --git a/.github/DOWNLOADING.md b/.github/DOWNLOADING.md index eaad0dee7f9..39e671cff78 100644 --- a/.github/DOWNLOADING.md +++ b/.github/DOWNLOADING.md @@ -41,26 +41,29 @@ something has gone wrong - possibly a corrupt download or the files extracted wr or a code issue on the main repo. Feel free to ask on Discord. Once that's done, open up the config folder. -Firstly, you will want to copy everything from the example folder into the regular config folder. -EG: Move `config/example/config.txt` to `config/config.txt`, and do the same for all the other files. -You'll want to edit `config.txt` to set your server location, +Firstly, you will want to copy `config.toml` from the example folder into the regular config folder. +You'll want to edit the `url_configuration` section of `config.toml` to set `reboot_url` to your server location, so that all your players don't get disconnected at the end of each round. It's recommended you don't turn on the gamemodes with probability 0, as they have various issues and aren't currently being tested, so they may have unknown and bizarre bugs. -You'll also want to edit admins.txt to remove the default admins and add your own. +You'll also want to edit the `admin_configuration` section of `config.toml` to remove the default admins and add your own. If you are connecting from localhost to your own test server, you should automatically be admin. -"Host" is the highest level of access, and the other recommended admin levels for now are -"Game Admin" and "Moderator". The format is: +"Head of Staff" is the highest level of access, and the other recommended admin levels for now are +"Game Admin". The format is: -```cfg - byondkey - Rank +```toml +# Note that your ranks must be cased properly, usernames can be normal keys or ckey +admin_assignments = [ + {ckey = "Admin1", rank = "Hosting Provider"}, + {ckey = "Admin2", rank = "Game Admin"}, +] ``` -where the BYOND key must be in lowercase and the admin rank must be properly capitalised. -There are a bunch more admin ranks, but these two should be enough for most servers, -assuming you have trustworthy admins. You can define your own ranks in `admin_ranks.txt` +You can define your own ranks in the admin section of `config.toml`. + +If you want to run a production scale server, we highly recommend using database administrators. Finally, to start the server, run Dream Daemon and enter the path to your compiled paradise.dmb file. @@ -94,7 +97,7 @@ When you have done this, you'll need to recompile the code, but then it should w The SQL backend is required for storing character saves, preferences, administrative data, and many other things. We recommend running a database if your server is going to be used as more than just a local test server. -Your SQL server details go in `config/dbconfig.txt`, +Your SQL server details go in the `database_configuration` section of `config.toml`, and the SQL schema is in `SQL/paradise_schema.sql` or `SQL/paradise_schema_prefix.sql`, depending on if you want table prefixes. More detailed setup instructions are located on our wiki: diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index f73134e6704..3ed1cbca688 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -1,5 +1,5 @@ -CREATE DATABASE IF NOT EXISTS `feedback` /*!40100 DEFAULT CHARACTER SET utf8 */; -USE `feedback`; +CREATE DATABASE IF NOT EXISTS `paradise_gamedb` /*!40100 DEFAULT CHARACTER SET utf8 */; +USE `paradise_gamedb`; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; @@ -24,7 +24,7 @@ CREATE TABLE `characters` ( `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, `slot` int(2) NOT NULL, `OOC_Notes` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `real_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `real_name` varchar(55) COLLATE utf8mb4_unicode_ci NOT NULL, `name_is_always_random` tinyint(1) NOT NULL, `gender` varchar(11) COLLATE utf8mb4_unicode_ci NOT NULL, `age` smallint(4) NOT NULL, diff --git a/SQL/paradise_schema_prefixed.sql b/SQL/paradise_schema_prefixed.sql deleted file mode 100644 index 16ea512fb08..00000000000 --- a/SQL/paradise_schema_prefixed.sql +++ /dev/null @@ -1,597 +0,0 @@ -CREATE DATABASE IF NOT EXISTS `feedback` /*!40100 DEFAULT CHARACTER SET utf8 */; -USE `feedback`; - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `SS13_characters` --- - -DROP TABLE IF EXISTS `SS13_characters`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_characters` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `slot` int(2) NOT NULL, - `OOC_Notes` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `real_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, - `name_is_always_random` tinyint(1) NOT NULL, - `gender` varchar(11) COLLATE utf8mb4_unicode_ci NOT NULL, - `age` smallint(4) NOT NULL, - `species` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, - `language` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, - `hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', - `secondary_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', - `facial_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', - `secondary_facial_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', - `skin_tone` smallint(4) NOT NULL, - `skin_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', - `marking_colours` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'head=%23000000&body=%23000000&tail=%23000000', - `head_accessory_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', - `hair_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, - `facial_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, - `marking_styles` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'head=None&body=None&tail=None', - `head_accessory_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, - `alt_head_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, - `eye_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', - `underwear` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `undershirt` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `backbag` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `b_type` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, - `alternate_option` smallint(4) NOT NULL, - `job_support_high` mediumint(8) NOT NULL, - `job_support_med` mediumint(8) NOT NULL, - `job_support_low` mediumint(8) NOT NULL, - `job_medsci_high` mediumint(8) NOT NULL, - `job_medsci_med` mediumint(8) NOT NULL, - `job_medsci_low` mediumint(8) NOT NULL, - `job_engsec_high` mediumint(8) NOT NULL, - `job_engsec_med` mediumint(8) NOT NULL, - `job_engsec_low` mediumint(8) NOT NULL, - `job_karma_high` mediumint(8) NOT NULL, - `job_karma_med` mediumint(8) NOT NULL, - `job_karma_low` mediumint(8) NOT NULL, - `flavor_text` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `med_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `sec_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `gen_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `disabilities` mediumint(8) NOT NULL, - `player_alt_titles` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `organ_data` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `rlimb_data` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `nanotrasen_relation` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, - `speciesprefs` int(1) NOT NULL, - `socks` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `body_accessory` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `gear` longtext COLLATE utf8mb4_unicode_ci NOT NULL, - `autohiss` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - KEY `ckey` (`ckey`) -) ENGINE=InnoDB AUTO_INCREMENT=125467 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_customuseritems` --- - -DROP TABLE IF EXISTS `SS13_customuseritems`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_customuseritems` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `cuiCKey` varchar(36) NOT NULL, - `cuiRealName` varchar(60) NOT NULL, - `cuiPath` varchar(255) NOT NULL, - `cuiItemName` text, - `cuiDescription` text, - `cuiReason` text, - `cuiPropAdjust` text, - `cuiJobMask` text NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8mb4; -ALTER TABLE `SS13_customuseritems` ADD INDEX(`cuiCKey`); -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_death` --- - -DROP TABLE IF EXISTS `SS13_death`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_death` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `pod` text NOT NULL COMMENT 'Place of death', - `coord` text NOT NULL COMMENT 'X, Y, Z POD', - `tod` datetime NOT NULL COMMENT 'Time of death', - `job` text NOT NULL, - `special` text NOT NULL, - `name` text NOT NULL, - `byondkey` text NOT NULL, - `laname` text NOT NULL COMMENT 'Last attacker name', - `lakey` text NOT NULL COMMENT 'Last attacker key', - `gender` text NOT NULL, - `bruteloss` int(11) NOT NULL, - `brainloss` int(11) NOT NULL, - `fireloss` int(11) NOT NULL, - `oxyloss` int(11) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=166546 DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `donators` --- - -DROP TABLE IF EXISTS `SS13_donators`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_donators` ( - `patreon_name` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `tier` int(2), - `ckey` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Manual Field', - `start_date` datetime, - `end_date` datetime, - `active` boolean, - PRIMARY KEY (`patreon_name`), - KEY `ckey` (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_admin` --- - -DROP TABLE IF EXISTS `SS13_admin`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_admin` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `admin_rank` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Administrator', - `level` int(2) NOT NULL DEFAULT '0', - `flags` int(16) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - KEY `ckey` (`ckey`) -) ENGINE=InnoDB AUTO_INCREMENT=99 DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_admin_log` --- - -DROP TABLE IF EXISTS `SS13_admin_log`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_admin_log` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `adminckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `adminip` varchar(18) COLLATE utf8mb4_unicode_ci NOT NULL, - `log` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - PRIMARY KEY (`id`), - KEY `adminckey` (`adminckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_ban` --- - -DROP TABLE IF EXISTS `SS13_ban`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_ban` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `bantime` datetime NOT NULL, - `ban_round_id` INT(11) NULL DEFAULT NULL, - `serverip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `bantype` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `reason` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `job` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `duration` int(11) NOT NULL, - `rounds` int(11) DEFAULT NULL, - `expiration_time` datetime NOT NULL, - `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `ip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `a_ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `a_computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `a_ip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `who` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `adminwho` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `edits` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `unbanned` tinyint(1) DEFAULT NULL, - `unbanned_datetime` datetime DEFAULT NULL, - `unbanned_round_id` INT(11) NULL DEFAULT NULL, - `unbanned_ckey` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `unbanned_computerid` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `unbanned_ip` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `ckey` (`ckey`), - KEY `computerid` (`computerid`), - KEY `ip` (`ip`) -) ENGINE=InnoDB AUTO_INCREMENT=58903 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_feedback` --- - -DROP TABLE IF EXISTS `SS13_feedback`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_feedback` ( - `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `round_id` int(8) NOT NULL, - `key_name` varchar(32) NOT NULL, - `key_type` enum('text', 'amount', 'tally', 'nested tally', 'associative') NOT NULL, - `version` tinyint(3) UNSIGNED NOT NULL, - `json` LONGTEXT NOT NULL COLLATE 'utf8mb4_general_ci', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=257638 DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_player` --- - -DROP TABLE IF EXISTS `SS13_player`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_player` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `firstseen` datetime NOT NULL, - `lastseen` datetime NOT NULL, - `ip` varchar(18) COLLATE utf8mb4_unicode_ci NOT NULL, - `computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `lastadminrank` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Player', - `ooccolor` varchar(7) COLLATE utf8mb4_unicode_ci DEFAULT '#b82e00', - `UI_style` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'Midnight', - `UI_style_color` varchar(7) COLLATE utf8mb4_unicode_ci DEFAULT '#ffffff', - `UI_style_alpha` smallint(4) DEFAULT '255', - `be_role` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `default_slot` smallint(4) DEFAULT '1', - `toggles` int(11) DEFAULT NULL, - `toggles_2` int(11) DEFAULT '0', - `sound` mediumint(8) DEFAULT '31', - `volume_mixer` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `lastchangelog` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0', - `exp` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `clientfps` smallint(4) DEFAULT '0', - `atklog` smallint(4) DEFAULT '0', - `fuid` bigint(20) DEFAULT NULL, - `fupdate` smallint(4) DEFAULT '0', - `parallax` tinyint(1) DEFAULT '8', - `byond_date` DATE DEFAULT NULL, - `2fa_status` ENUM('DISABLED','ENABLED_IP','ENABLED_ALWAYS') NOT NULL DEFAULT 'DISABLED' COLLATE 'utf8mb4_general_ci', - PRIMARY KEY (`id`), - UNIQUE KEY `ckey` (`ckey`), - KEY `lastseen` (`lastseen`), - KEY `computerid` (`computerid`), - KEY `ip` (`ip`), - KEY `fuid` (`fuid`), - KEY `fupdate` (`fupdate`) -) ENGINE=InnoDB AUTO_INCREMENT=135298 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_privacy` --- - -DROP TABLE IF EXISTS `SS13_privacy`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ss13_privacy` ( - `ckey` varchar(32) NOT NULL, - `datetime` datetime NOT NULL, - `consent` bit(1) NOT NULL, - PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_karma` --- - -DROP TABLE IF EXISTS `SS13_karma`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_karma` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `spendername` text NOT NULL, - `spenderkey` text NOT NULL, - `receivername` text NOT NULL, - `receiverkey` text NOT NULL, - `receiverrole` text, - `receiverspecial` text, - `isnegative` tinyint(1) DEFAULT NULL, - `spenderip` text NOT NULL, - `time` datetime NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=73614 DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_karmatotals` --- - -DROP TABLE IF EXISTS `SS13_karmatotals`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_karmatotals` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `byondkey` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL, - `karma` int(11) NOT NULL, - `karmaspent` int(11) NOT NULL DEFAULT 0, - PRIMARY KEY (`id`), - KEY `byondkey` (`byondkey`) -) ENGINE=InnoDB AUTO_INCREMENT=25715 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_library` --- - -DROP TABLE IF EXISTS `SS13_library`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_library` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `author` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `title` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `content` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `category` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `flagged` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `ckey` (`ckey`), - KEY `flagged` (`flagged`) -) ENGINE=InnoDB AUTO_INCREMENT=4537 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_legacy_population` --- - -DROP TABLE IF EXISTS `SS13_legacy_population`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_legacy_population` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `playercount` int(11) DEFAULT NULL, - `admincount` int(11) DEFAULT NULL, - `time` datetime NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2550 DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_whitelist` --- - -DROP TABLE IF EXISTS `SS13_whitelist`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_whitelist` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `job` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `species` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `ckey` (`ckey`) -) 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 */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- --- Table structure for table `SS13_watch` --- - -DROP TABLE IF EXISTS `SS13_watch`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_watch` ( - `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `reason` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, - `timestamp` datetime NOT NULL, - `adminckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, - `last_editor` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `edits` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, - PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - - --- --- Table structure for table `SS13_notes` --- - -DROP TABLE IF EXISTS `SS13_notes`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_notes` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, - `notetext` text NOT NULL, - `timestamp` datetime NOT NULL, - `round_id` INT(11) NULL DEFAULT NULL, - `adminckey` varchar(32) NOT NULL, - `last_editor` varchar(32), - `edits` text, - `server` varchar(50) NOT NULL, - `crew_playtime` mediumint(8) UNSIGNED DEFAULT '0', - `automated` TINYINT(3) UNSIGNED NULL DEFAULT '0', - PRIMARY KEY (`id`), - KEY `ckey` (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_memo` --- - -DROP TABLE IF EXISTS `SS13_memo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_memo` ( - `ckey` varchar(32) NOT NULL, - `memotext` text NOT NULL, - `timestamp` datetime NOT NULL, - `last_editor` varchar(32), - `edits` text, - PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_ipintel` --- -DROP TABLE IF EXISTS `SS13_ipintel`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_ipintel` ( - `ip` int UNSIGNED NOT NULL, - `date` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, - `intel` real NOT NULL DEFAULT '0', - PRIMARY key (`ip`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_vpn_whitelist` --- -DROP TABLE IF EXISTS `SS13_vpn_whitelist`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_vpn_whitelist` ( - `ckey` varchar(32) NOT NULL, - `reason` text, - PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_oauth_tokens` --- -DROP TABLE IF EXISTS `SS13_oauth_tokens`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_oauth_tokens` ( - `ckey` varchar(32) NOT NULL, - `token` varchar(32) NOT NULL, - PRIMARY KEY (`token`), - KEY `ckey` (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_playtime_history` --- -DROP TABLE IF EXISTS `SS13_playtime_history`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_playtime_history` ( - `ckey` varchar(32) NOT NULL, - `date` DATE NOT NULL, - `time_living` SMALLINT NOT NULL, - `time_ghost` SMALLINT NOT NULL, - PRIMARY KEY (`ckey`, `date`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- --- Table structure for table `SS13_connection_log` --- -DROP TABLE IF EXISTS `SS13_connection_log`; -CREATE TABLE `SS13_connection_log` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `datetime` datetime NOT NULL, - `ckey` varchar(32) NOT NULL, - `ip` varchar(32) NOT NULL, - `computerid` varchar(32) NOT NULL, - `result` ENUM('ESTABLISHED','DROPPED - IPINTEL','DROPPED - BANNED','DROPPED - INVALID') NOT NULL DEFAULT 'ESTABLISHED' COLLATE 'utf8mb4_general_ci', - PRIMARY KEY (`id`), - KEY `ckey` (`ckey`), - KEY `ip` (`ip`), - KEY `computerid` (`computerid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- --- Table structure for table `SS13_changelog` --- -DROP TABLE IF EXISTS `SS13_changelog`; -CREATE TABLE `SS13_changelog` ( - `id` INT(11) NOT NULL AUTO_INCREMENT, - `pr_number` INT(11) NOT NULL, - `date_merged` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `author` VARCHAR(32) NOT NULL, - `cl_type` ENUM('FIX','WIP','TWEAK','SOUNDADD','SOUNDDEL','CODEADD','CODEDEL','IMAGEADD','IMAGEDEL','SPELLCHECK','EXPERIMENT') NOT NULL, - `cl_entry` TEXT NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- --- Table structure for table `ip2group` --- -DROP TABLE IF EXISTS `SS13_ip2group`; -CREATE TABLE `SS13_ip2group` ( - `ip` varchar (18) COLLATE utf8mb4_unicode_ci NOT NULL, - `date` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, - `groupstr` varchar (32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', - PRIMARY KEY (`ip`), - KEY `groupstr` (`groupstr`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- --- Table structure for table `round` --- -DROP TABLE IF EXISTS `SS13_round`; -CREATE TABLE `SS13_round` ( - `id` INT(11) NOT NULL AUTO_INCREMENT, - `initialize_datetime` DATETIME NOT NULL, - `start_datetime` DATETIME NULL, - `shutdown_datetime` DATETIME NULL, - `end_datetime` DATETIME NULL, - `server_ip` INT(10) UNSIGNED NOT NULL, - `server_port` SMALLINT(5) UNSIGNED NOT NULL, - `commit_hash` CHAR(40) NULL, - `game_mode` VARCHAR(32) NULL, - `game_mode_result` VARCHAR(64) NULL, - `end_state` VARCHAR(64) NULL, - `shuttle_name` VARCHAR(64) NULL, - `map_name` VARCHAR(32) NULL, - `station_name` VARCHAR(80) NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- --- Table structure for table `2fa_secrets` --- -CREATE TABLE `SS13_2fa_secrets` ( - `ckey` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_general_ci', - `secret` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_general_ci', - `date_setup` DATETIME NOT NULL DEFAULT current_timestamp(), - `last_time` DATETIME NULL DEFAULT NULL, - PRIMARY KEY (`ckey`) USING BTREE -) -COLLATE='utf8mb4_general_ci' ENGINE=InnoDB; diff --git a/SQL/updates/10-11.sql b/SQL/updates/10-11.sql index 843eb9d9982..7102170a9ff 100644 --- a/SQL/updates/10-11.sql +++ b/SQL/updates/10-11.sql @@ -6,35 +6,35 @@ # Generation (not necessary to run unless your DB has extra tables) SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;") AS ExecuteTheString FROM INFORMATION_SCHEMA.TABLES -WHERE TABLE_SCHEMA="feedback" +WHERE TABLE_SCHEMA="paradise_gamedb" AND TABLE_TYPE="BASE TABLE"; # Actual table conversion stuff -ALTER TABLE feedback.admin CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.admin_log CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.ban CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.characters CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.connection_log CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.customuseritems CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.death CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.donators CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.privacy CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.feedback CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.ipintel CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.karma CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.karmatotals CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.legacy_population CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.library CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.memo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.notes CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.oauth_tokens CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.player CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.playtime_history CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.poll_option CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.poll_question CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.poll_textreply CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.poll_vote CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.privacy CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.vpn_whitelist CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.watch CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -ALTER TABLE feedback.whitelist CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE admin CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE admin_log CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE ban CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE characters CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE connection_log CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE customuseritems CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE death CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE donators CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE privacy CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE feedback CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE ipintel CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE karma CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE karmatotals CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE legacy_population CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE library CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE memo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE notes CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE oauth_tokens CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE player CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE playtime_history CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE poll_option CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE poll_question CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE poll_textreply CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE poll_vote CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE privacy CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE vpn_whitelist CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE watch CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +ALTER TABLE whitelist CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; diff --git a/SQL/updates/17-18.py b/SQL/updates/17-18.py index 61d4fe39674..389722fa7d9 100644 --- a/SQL/updates/17-18.py +++ b/SQL/updates/17-18.py @@ -8,7 +8,7 @@ #To view the parameters for this script, execute it with the argument --help #All the positional arguments are required, remember to include prefixes in your table names if you use them #An example of the command used to execute this script from powershell: -#python feedback_conversion_2017-11-12.py "localhost" "root" "password" "feedback" "feedback" "feedback_2" +#python feedback_conversion_2017-11-12.py "localhost" "root" "password" "paradise_gamedb" "feedback" "feedback_2" #I found that this script would complete conversion of 10000 rows approximately every 2-3 seconds #Depending on the size of your feedback table and the computer used it may take several minutes for the script to finish # diff --git a/SQL/updates/24-25.sql b/SQL/updates/24-25.sql new file mode 100644 index 00000000000..267dc013087 --- /dev/null +++ b/SQL/updates/24-25.sql @@ -0,0 +1,4 @@ +# Updates the DB from 24 to 25 -SabreML +# Increases the maximum length of `real_name` from 45 to 55 in the `characters` table. + +ALTER TABLE `characters` MODIFY COLUMN `real_name` varchar(55) COLLATE utf8mb4_unicode_ci NOT NULL diff --git a/_build_dependencies.sh b/_build_dependencies.sh index be4b390a6d3..8cef5ce91b9 100644 --- a/_build_dependencies.sh +++ b/_build_dependencies.sh @@ -7,5 +7,3 @@ export NODE_VERSION=12 export BYOND_MAJOR=513 # Byond Minor export BYOND_MINOR=1528 -# For the RUSTG library. Not actually installed by CI but kept as a reference -export RUSTG_VERSION=2.1-P diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm index e9944a0a62f..0a5a95c69ac 100644 --- a/_maps/map_files/Delta/delta.dmm +++ b/_maps/map_files/Delta/delta.dmm @@ -15441,6 +15441,13 @@ icon_state = "neutralfull" }, /area/quartermaster/storage) +"aMp" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkblue" + }, +/area/ai_monitored/storage/eva) "aMq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/stool, @@ -26319,6 +26326,9 @@ }, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "browncorner" @@ -30001,6 +30011,9 @@ dir = 6 }, /obj/item/twohanded/required/kirbyplants, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -30013,8 +30026,9 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 1; @@ -30023,9 +30037,9 @@ /area/hallway/primary/central) "bon" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8; - initialize_directions = 11 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 1; @@ -30036,6 +30050,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -30051,6 +30068,9 @@ /obj/machinery/camera{ c_tag = "Central Ring Hallway North" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -30060,6 +30080,9 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -30071,6 +30094,9 @@ }, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -30080,7 +30106,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -30097,6 +30123,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" @@ -30104,6 +30134,9 @@ /area/hallway/primary/central) "bou" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "browncorner" @@ -30113,6 +30146,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "browncorner" @@ -30122,7 +30158,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "browncorner" @@ -30132,6 +30168,9 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "browncorner" @@ -30141,6 +30180,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -30156,6 +30198,9 @@ /obj/machinery/camera{ c_tag = "Central Ring Hallway North" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -30165,7 +30210,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/hallway/primary/central) "boB" = ( @@ -30182,6 +30227,9 @@ dir = 4; icon_state = "pipe-c" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -30200,6 +30248,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -31228,6 +31279,7 @@ dir = 8; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -31273,7 +31325,6 @@ dir = 4; icon_state = "pipe-j2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -31304,9 +31355,8 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -31340,7 +31390,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall2"; location = "hall1" @@ -31365,7 +31414,9 @@ dir = 8; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, /obj/effect/landmark{ name = "lightsout" }, @@ -31391,16 +31442,11 @@ }, /area/hallway/primary/central) "bqv" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + icon_state = "neutralcorner" }, /area/hallway/primary/central) "bqx" = ( @@ -31410,9 +31456,8 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -31420,20 +31465,17 @@ }, /area/hallway/primary/central) "bqy" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" +/obj/effect/spawner/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/hallway/primary/central) +/turf/simulated/floor/plating, +/area/bridge) "bqz" = ( /obj/structure/cable{ d1 = 1; @@ -31448,7 +31490,7 @@ tag = "" }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 + dir = 4 }, /obj/structure/disposalpipe/segment, /obj/machinery/navbeacon{ @@ -31462,6 +31504,10 @@ /area/hallway/primary/central) "bqA" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4; + initialize_directions = 11 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -32279,30 +32325,21 @@ /turf/simulated/floor/plasteel, /area/hydroponics) "bse" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/door_control{ + id = "bridge blast north"; + name = "North Bridge Blast Door Control"; + pixel_y = 32; + req_access_txt = "19" }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + icon_state = "dark" }, -/area/hallway/primary/central) +/area/bridge) "bsf" = ( /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -32311,9 +32348,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/light, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" @@ -32334,9 +32368,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/light/small, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" @@ -32346,9 +32377,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/structure/sign/poster/official/nanotrasen_logo{ pixel_y = -32 @@ -32358,20 +32386,10 @@ icon_state = "neutralcorner" }, /area/hallway/primary/central) -"bsk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - icon_state = "neutral" - }, -/area/hallway/primary/central) "bsl" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/effect/landmark{ name = "Observer-Start" }, @@ -32383,9 +32401,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, @@ -32394,9 +32409,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/light/small, /obj/machinery/camera{ c_tag = "Central Ring Hallway North"; @@ -32419,23 +32431,10 @@ icon_state = "neutralcorner" }, /area/hallway/primary/central) -"bsp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralcorner" - }, -/area/hallway/primary/central) "bsq" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/light/small, /turf/simulated/floor/plasteel{ dir = 8; @@ -32446,7 +32445,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -32457,19 +32455,6 @@ icon_state = "neutralcorner" }, /area/hallway/primary/central) -"bss" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4; - initialize_directions = 11 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralcorner" - }, -/area/hallway/primary/central) "bst" = ( /obj/structure/cable{ d1 = 1; @@ -32491,6 +32476,7 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -33764,6 +33750,7 @@ /area/hydroponics) "buU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -33784,7 +33771,6 @@ /area/hallway/primary/central) "buW" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -33812,13 +33798,6 @@ /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel, /area/maintenance/starboard) -"buZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralcorner" - }, -/area/hallway/primary/central) "bva" = ( /obj/structure/cable{ d1 = 1; @@ -33831,14 +33810,6 @@ icon_state = "neutralfull" }, /area/hallway/primary/central) -"bvb" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "neutralcorner" - }, -/area/hallway/primary/central) "bvc" = ( /turf/simulated/floor/plasteel{ dir = 1; @@ -34448,6 +34419,13 @@ d2 = 4; icon_state = "0-4" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bwd" = ( @@ -34462,6 +34440,13 @@ d2 = 4; icon_state = "0-4" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bwe" = ( @@ -34476,6 +34461,13 @@ icon_state = "2-8"; tag = "" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bwf" = ( @@ -34487,6 +34479,13 @@ d2 = 4; icon_state = "0-4" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bwh" = ( @@ -34507,6 +34506,13 @@ icon_state = "2-8"; tag = "" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bwi" = ( @@ -34515,6 +34521,13 @@ d2 = 8; icon_state = "0-8" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bwj" = ( @@ -34529,6 +34542,13 @@ d2 = 2; icon_state = "0-2" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bwk" = ( @@ -34543,6 +34563,13 @@ icon_state = "4-8"; tag = "" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bwl" = ( @@ -34557,38 +34584,42 @@ icon_state = "2-8"; tag = "" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bwm" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8; - initialize_directions = 11 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" }, /area/hallway/primary/central) "bwn" = ( +/obj/effect/spawner/window/reinforced, /obj/structure/cable{ - d1 = 1; d2 = 2; - icon_state = "1-2"; - tag = "" + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast west"; + name = "Bridge Blast Doors"; + opacity = 0 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/hallway/primary/central) +/turf/simulated/floor/plating, +/area/bridge) "bwo" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 }, /turf/simulated/floor/plasteel{ dir = 4; @@ -35017,6 +35048,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -28 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -35025,7 +35057,7 @@ "bxm" = ( /obj/machinery/computer/card, /turf/simulated/floor/plasteel{ - dir = 9; + dir = 1; icon_state = "darkblue" }, /area/bridge) @@ -35091,7 +35123,6 @@ /area/bridge) "bxt" = ( /obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, /obj/machinery/status_display{ pixel_y = 32 }, @@ -35114,7 +35145,7 @@ /area/bridge) "bxv" = ( /obj/machinery/computer/atmos_alert, -/obj/machinery/computer/station_alert, +/obj/machinery/computer/atmos_alert, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkyellow" @@ -35128,7 +35159,7 @@ pixel_y = 1 }, /turf/simulated/floor/plasteel{ - dir = 5; + dir = 1; icon_state = "darkyellow" }, /area/bridge) @@ -35166,6 +35197,7 @@ dir = 8; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -35875,8 +35907,9 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ @@ -35898,9 +35931,6 @@ tag = "" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -35908,10 +35938,6 @@ /area/hallway/primary/central) "byQ" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4; - initialize_directions = 11 - }, /obj/machinery/light{ dir = 4 }, @@ -35934,8 +35960,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "darkbluecorners" + icon_state = "dark" }, /area/bridge) "byS" = ( @@ -35988,15 +36013,18 @@ /obj/structure/chair/office/dark{ dir = 4 }, +/obj/machinery/door_control{ + id = "bridge blast east"; + name = "East Bridge Blast Door Control"; + pixel_x = 26; + req_access_txt = "19" + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/bridge) "byY" = ( /obj/structure/table/reinforced, -/obj/item/assembly/timer, -/obj/item/assembly/signaler, -/obj/item/wrench, /obj/item/radio/intercom{ dir = 4; pixel_x = 28 @@ -36009,9 +36037,14 @@ d2 = 2; icon_state = "1-2" }, +/obj/item/flash, +/obj/item/storage/box/ids, +/obj/item/storage/box/PDAs{ + pixel_x = 4; + pixel_y = 4 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "darkyellowcorners" + icon_state = "dark" }, /area/bridge) "byZ" = ( @@ -36026,10 +36059,16 @@ icon_state = "2-4"; tag = "" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast north"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bza" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/light{ dir = 8 }, @@ -36041,6 +36080,7 @@ "bzb" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/hallway/primary/central) "bzc" = ( @@ -36083,7 +36123,7 @@ dir = 1 }, /obj/structure/closet/secure_closet/brig{ - id = "Cell 4"; + id = "Cell 2"; name = "Cell 2 Locker" }, /obj/machinery/atmospherics/unary/vent_pump/on, @@ -36183,11 +36223,6 @@ }, /area/security/brig) "bzp" = ( -/obj/machinery/door_timer/cell_4{ - id = "Cell 3"; - layer = 4; - name = "Cell 3" - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -36678,6 +36713,7 @@ dir = 4; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -36701,29 +36737,26 @@ "bAt" = ( /obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "darkblue" + icon_state = "dark" }, /area/bridge) "bAu" = ( /obj/machinery/vending/cola, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "darkblue" + icon_state = "dark" }, /area/bridge) "bAv" = ( /obj/machinery/vending/snack, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "darkblue" + icon_state = "dark" }, /area/bridge) "bAw" = ( /obj/machinery/computer/security/mining, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkpurple" + icon_state = "darkbrown" }, /area/bridge) "bAx" = ( @@ -36736,13 +36769,17 @@ /obj/machinery/computer/supplycomp, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkyellow" + icon_state = "darkbrown" }, /area/bridge) "bAy" = ( -/obj/structure/table/reinforced, -/obj/item/clipboard, -/obj/item/mining_voucher, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -36754,9 +36791,7 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_pump{ - on = 1 - }, +/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -36784,16 +36819,13 @@ }, /area/bridge) "bAC" = ( -/obj/structure/table/reinforced, /obj/machinery/computer/security/telescreen{ desc = "Used for watching the RD's goons from the safety of his office."; name = "Research Monitor"; network = list("Research","Research Outpost","RD"); pixel_y = 2 }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, +/turf/simulated/wall, /area/bridge) "bAD" = ( /obj/structure/cable{ @@ -36805,7 +36837,7 @@ /obj/machinery/computer/shuttle/mining, /turf/simulated/floor/plasteel{ dir = 1; - icon_state = "darkpurple" + icon_state = "darkbrown" }, /area/bridge) "bAE" = ( @@ -36818,24 +36850,15 @@ "bAF" = ( /obj/machinery/vending/coffee, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "darkblue" + icon_state = "dark" }, /area/bridge) "bAG" = ( /obj/machinery/vending/cigarette, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "darkblue" + icon_state = "dark" }, /area/bridge) -"bAH" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "bluecorner" - }, -/area/hallway/primary/central) "bAI" = ( /obj/machinery/alarm{ dir = 1; @@ -36950,7 +36973,7 @@ }, /obj/machinery/door/window/brigdoor{ dir = 8; - id = "Cell 4"; + id = "Cell 2"; name = "Cell 2"; req_access_txt = "2" }, @@ -37750,6 +37773,9 @@ /obj/effect/landmark{ name = "lightsout" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -37797,6 +37823,16 @@ name = "Bridge"; req_access_txt = "19" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast west"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -37815,6 +37851,9 @@ /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" }, @@ -37833,6 +37872,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -37864,6 +37906,9 @@ name = "Bridge"; req_access_txt = "19" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -37879,6 +37924,9 @@ /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" }, @@ -37894,6 +37942,9 @@ dir = 1; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -37911,30 +37962,23 @@ icon_state = "2-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11 }, /obj/item/twohanded/required/kirbyplants, /obj/machinery/light{ dir = 1 }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 }, -/area/bridge) -"bCo" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1; - initialize_directions = 11 - }, -/obj/structure/chair/office/dark{ - dir = 4 +/obj/machinery/door_control{ + id = "bridge blast west"; + name = "West Bridge Blast Door Control"; + pixel_x = null; + pixel_y = 24; + req_access_txt = "19" }, /turf/simulated/floor/plasteel{ icon_state = "dark" @@ -37964,6 +38008,9 @@ /obj/structure/chair/office/dark{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -37980,7 +38027,7 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -37999,6 +38046,9 @@ dir = 4 }, /obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, @@ -38014,17 +38064,17 @@ dir = 1; initialize_directions = 11 }, -/obj/machinery/door/window/brigdoor/southright, +/obj/machinery/door/window/brigdoor/southright{ + req_access_txt = "30" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, /area/bridge) "bCt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -38036,17 +38086,20 @@ icon_state = "2-8"; tag = "" }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11 }, /obj/structure/window/reinforced, -/obj/machinery/hologram/holopad, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + tag = "" + }, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, @@ -38064,6 +38117,9 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "darkbluecorners" @@ -38085,6 +38141,9 @@ icon_state = "1-4"; tag = "" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -38101,13 +38160,15 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1; - initialize_directions = 11 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, /obj/structure/chair/office/dark{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -38125,6 +38186,9 @@ /obj/structure/chair/office/dark{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -38142,13 +38206,24 @@ icon_state = "2-4"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11 }, -/obj/item/twohanded/required/kirbyplants, /obj/machinery/light{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/door_control{ + id = "bridge blast east"; + name = "East Bridge Blast Door Control"; + pixel_x = null; + pixel_y = 24; + req_access_txt = "19" + }, +/obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -38160,12 +38235,12 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_pump{ - on = 1 - }, /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" }, @@ -38196,6 +38271,9 @@ name = "Bridge"; req_access_txt = "19" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -38211,6 +38289,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -38223,9 +38304,11 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4; - initialize_directions = 11 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -38245,6 +38328,12 @@ icon_state = "1-2"; tag = "" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -38252,11 +38341,18 @@ /area/hallway/primary/central) "bCE" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11 + }, /obj/machinery/camera{ c_tag = "Central Ring Hallway East"; dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4; + initialize_directions = 11 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -38320,7 +38416,7 @@ dir = 1 }, /obj/machinery/flasher{ - id = "Cell 4"; + id = "Cell 2"; pixel_y = -28 }, /turf/simulated/floor/plasteel{ @@ -38338,13 +38434,10 @@ /area/security/brig) "bCQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door_timer/cell_4{ - dir = 8; - layer = 4; - name = "Cell 2"; +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door_timer/cell_2{ pixel_x = -32 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "redcorner" @@ -38851,12 +38944,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" + icon_state = "bluecorner" }, /area/hallway/primary/central) "bDH" = ( @@ -38973,6 +39068,7 @@ /area/storage/primary) "bDR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "yellowcorner" @@ -38993,26 +39089,37 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ name = "Bridge"; req_access_txt = "19" }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast west"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" }, /area/bridge) "bDU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/effect/spawner/window/reinforced, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast east"; + name = "Bridge Blast Doors"; + opacity = 0 }, +/turf/simulated/floor/plating, /area/bridge) "bDV" = ( /obj/structure/disposalpipe/sortjunction{ @@ -39020,9 +39127,6 @@ name = "HoP Junction"; sortType = 13 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "vault" @@ -39038,9 +39142,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ name = "Bridge"; @@ -39055,9 +39156,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -39066,9 +39164,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, @@ -39087,75 +39182,104 @@ dir = 2; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/bridge) "bEa" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + initialize_directions = 11 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - icon_state = "dark" + dir = 1; + icon_state = "neutralcorner" }, -/area/bridge) +/area/hallway/primary/central) "bEb" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; + d1 = 4; + d2 = 8; + icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/bridge) -"bEc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 }, /turf/simulated/floor/plasteel{ - dir = 9; icon_state = "darkblue" }, /area/bridge) +"bEc" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast east"; + name = "Bridge Blast Doors"; + opacity = 0 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/bridge) "bEd" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ - dir = 1; + dir = 4; icon_state = "darkblue" }, /area/bridge) "bEe" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/structure/table/wood, /obj/structure/window/reinforced{ dir = 8 }, /obj/item/restraints/handcuffs, /obj/item/flash, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/bridge) "bEf" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/bridge) "bEg" = ( /obj/structure/cable{ @@ -39165,53 +39289,46 @@ tag = "" }, /obj/machinery/computer/communications, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/carpet, /area/bridge) "bEh" = ( /obj/structure/table/wood, /obj/machinery/computer/security/wooden_tv, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/carpet, /area/bridge) "bEi" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/structure/table/wood, /obj/structure/window/reinforced{ dir = 4 }, /obj/item/flashlight/lamp, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/bridge) "bEj" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ - dir = 1; + dir = 8; icon_state = "darkblue" }, /area/bridge) "bEk" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" }, /turf/simulated/floor/plasteel{ - dir = 5; - icon_state = "darkblue" + dir = 8; + icon_state = "vault" }, /area/bridge) "bEl" = ( @@ -39221,22 +39338,38 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/bridge) +"bEm" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/bridge) -"bEm" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/bridge) "bEn" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast east"; + name = "Bridge Blast Doors"; + opacity = 0 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -39244,36 +39377,26 @@ }, /area/bridge) "bEo" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "bluecorner" }, /area/hallway/primary/central) "bEp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + initialize_directions = 11 }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 1; + icon_state = "yellowcorner" }, /area/hallway/primary/central) "bEq" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4; - initialize_directions = 11 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -39777,9 +39900,8 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -39791,12 +39913,8 @@ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4; - initialize_directions = 11 - }, /turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" + icon_state = "bluecorner" }, /area/hallway/primary/central) "bFu" = ( @@ -39805,6 +39923,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast west"; + name = "Bridge Blast Doors"; + opacity = 0 + }, /turf/simulated/floor/plating, /area/bridge) "bFv" = ( @@ -39858,12 +39983,12 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, /area/bridge) "bFB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/camera{ c_tag = "Bridge Port"; dir = 1 @@ -39891,10 +40016,16 @@ }, /area/bridge) "bFE" = ( -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "darkblue" +/obj/effect/spawner/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "bridge blast east"; + name = "Bridge Blast Doors"; + opacity = 0 }, +/turf/simulated/floor/plating, /area/bridge) "bFF" = ( /obj/structure/rack, @@ -39902,8 +40033,8 @@ /obj/item/aicard, /obj/item/storage/secure/briefcase, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "vault" + dir = 6; + icon_state = "darkblue" }, /area/bridge) "bFG" = ( @@ -39912,9 +40043,7 @@ dir = 8 }, /obj/item/taperecorder, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/bridge) "bFH" = ( /obj/structure/cable{ @@ -39926,6 +40055,8 @@ /obj/structure/chair/comfy/black{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/carpet, /area/bridge) "bFI" = ( @@ -39935,9 +40066,8 @@ /turf/simulated/floor/carpet, /area/bridge) "bFJ" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 }, /turf/simulated/floor/carpet, /area/bridge) @@ -39948,28 +40078,37 @@ }, /obj/item/folder/blue, /obj/item/pen, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/bridge) "bFL" = ( /obj/structure/rack, /obj/item/storage/toolbox/emergency, /obj/item/wrench, /obj/machinery/light/small, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "vault" +/obj/item/storage/toolbox/mechanical{ + pixel_y = -3 }, -/area/bridge) -"bFM" = ( /turf/simulated/floor/plasteel{ - dir = 4; + dir = 10; icon_state = "darkblue" }, /area/bridge) +"bFM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/hallway/primary/central) "bFN" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/alarm{ dir = 1; pixel_y = -22 @@ -39995,6 +40134,7 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, @@ -40097,7 +40237,7 @@ dir = 1 }, /obj/structure/closet/secure_closet/brig{ - id = "Cell 5"; + id = "Cell 1"; name = "Cell 1 Locker" }, /obj/item/radio/intercom{ @@ -40811,6 +40951,7 @@ dir = 4; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -40829,7 +40970,6 @@ }, /area/engine/break_room) "bHi" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -40859,26 +40999,38 @@ req_access = null; req_access_txt = "19" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/bridge/meeting_room) "bHm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11 + }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/wall, -/area/bridge/meeting_room) +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "bHn" = ( /obj/structure/table/reinforced, /obj/machinery/recharger, /turf/simulated/floor/plasteel{ - icon_state = "dark" + dir = 10; + icon_state = "darkbluefull" }, /area/bridge) "bHo" = ( /obj/structure/table/reinforced, /obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, /turf/simulated/floor/plasteel{ - icon_state = "dark" + dir = 10; + icon_state = "darkbluefull" }, /area/bridge) "bHp" = ( @@ -40891,9 +41043,7 @@ dir = 8 }, /obj/item/storage/fancy/donut_box, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/bridge) "bHr" = ( /obj/structure/cable{ @@ -40902,6 +41052,8 @@ icon_state = "1-2"; tag = "" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/carpet, /area/bridge) "bHs" = ( @@ -40917,6 +41069,12 @@ c_tag = "Bridge Center"; dir = 1 }, +/obj/machinery/turretid/stun{ + control_area = "\improper AI Upload Chamber"; + name = "AI Upload Turret Control"; + pixel_y = -24; + req_access = list(75) + }, /turf/simulated/floor/carpet, /area/bridge) "bHt" = ( @@ -40945,9 +41103,8 @@ dir = 4 }, /obj/item/paper_bin, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/obj/item/pen, +/turf/simulated/floor/carpet, /area/bridge) "bHv" = ( /obj/machinery/ai_status_display, @@ -40956,17 +41113,15 @@ "bHw" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, +/obj/item/pen, /turf/simulated/floor/plasteel{ - icon_state = "dark" + dir = 10; + icon_state = "darkbluefull" }, /area/bridge) "bHx" = ( /turf/simulated/wall/r_wall, /area/crew_quarters/captain) -"bHy" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/wall/r_wall, -/area/crew_quarters/captain) "bHz" = ( /obj/structure/cable{ d1 = 1; @@ -40982,12 +41137,12 @@ req_access = null; req_access_txt = "20" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/crew_quarters/captain) "bHA" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/power/apc{ dir = 8; name = "west bump"; @@ -41035,6 +41190,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -41265,7 +41421,7 @@ }, /obj/machinery/door/window/brigdoor{ dir = 8; - id = "Cell 5"; + id = "Cell 1"; name = "Cell 1"; req_access_txt = "2" }, @@ -41790,7 +41946,6 @@ }, /area/security/checkpoint/engineering) "bIX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -41809,7 +41964,7 @@ }, /area/bridge/meeting_room) "bIZ" = ( -/obj/structure/bookcase, +/obj/structure/reagent_dispensers/water_cooler, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -41819,9 +41974,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -41830,9 +41982,6 @@ /obj/machinery/firealarm{ pixel_y = 24 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -41847,62 +41996,44 @@ name = "north bump"; pixel_y = 24 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/bridge/meeting_room) "bJd" = ( -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4"; - tag = "" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ - icon_state = "wood" - }, -/area/bridge/meeting_room) -"bJe" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ dir = 8; - icon_state = "pipe-c" + icon_state = "neutralfull" }, +/area/hallway/primary/central) +"bJe" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/light_switch{ pixel_x = 26; pixel_y = 26 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/bridge/meeting_room) "bJf" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4; - initialize_directions = 11 +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, -/area/bridge/meeting_room) +/area/crew_quarters/captain) "bJg" = ( /obj/structure/table/wood, /obj/item/paicard, @@ -41910,9 +42041,6 @@ icon_state = "wood" }, /area/bridge/meeting_room) -"bJh" = ( -/turf/simulated/wall/r_wall, -/area/turret_protected/ai_upload) "bJi" = ( /obj/structure/cable{ d1 = 1; @@ -41924,12 +42052,13 @@ name = "AI Upload"; req_access_txt = "30" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/turret_protected/ai_upload) "bJj" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/table/wood, /obj/item/clipboard, /obj/item/toy/figure/crew/captain, @@ -41956,8 +42085,9 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - icon_state = "cult" + icon_state = "wood" }, /area/crew_quarters/captain) "bJm" = ( @@ -41982,7 +42112,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "vault" + icon_state = "wood" }, /area/crew_quarters/captain) "bJp" = ( @@ -41990,7 +42120,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "vault" + icon_state = "wood" }, /area/crew_quarters/captain) "bJq" = ( @@ -41998,7 +42128,7 @@ pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "vault" + icon_state = "wood" }, /area/crew_quarters/captain) "bJr" = ( @@ -42141,7 +42271,7 @@ dir = 1 }, /obj/machinery/flasher{ - id = "Cell 5"; + id = "Cell 1"; pixel_y = -28 }, /turf/simulated/floor/plasteel{ @@ -42712,7 +42842,7 @@ /obj/machinery/door/poddoor/shutters{ density = 0; dir = 8; - icon_state = "shutter0"; + icon_state = "open"; id_tag = "meetroomshutters"; name = "Meeting Room Shutters"; opacity = 0 @@ -42747,31 +42877,31 @@ }, /area/bridge/meeting_room) "bKG" = ( -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/area/bridge/meeting_room) +/turf/simulated/floor/bluegrid, +/area/turret_protected/ai_upload) "bKH" = ( /obj/structure/chair/comfy/brown, /turf/simulated/floor/carpet, /area/bridge/meeting_room) "bKI" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/turf/simulated/floor/carpet, -/area/bridge/meeting_room) +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/turret_protected/ai_upload) "bKJ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/structure/chair/comfy/brown, -/turf/simulated/floor/carpet, -/area/bridge/meeting_room) +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/turret_protected/ai_upload) "bKK" = ( /obj/structure/chair/comfy/beige, /obj/structure/cable{ @@ -42786,12 +42916,21 @@ /obj/structure/table/wood, /obj/item/phone, /obj/item/cigbutt/cigarbutt, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/carpet, /area/bridge/meeting_room) "bKM" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/light_switch{ + pixel_x = -8; + pixel_y = -26 + }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -42804,12 +42943,15 @@ "bKO" = ( /obj/machinery/vending/coffee, /turf/simulated/floor/plasteel{ + dir = 5; icon_state = "dark" }, /area/bridge/meeting_room) "bKP" = ( /obj/machinery/porta_turret, -/turf/simulated/floor/bluegrid, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/turret_protected/ai_upload) "bKR" = ( /obj/machinery/ai_status_display{ @@ -42830,6 +42972,8 @@ icon_state = "1-2"; tag = "" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -42850,26 +42994,26 @@ "bKX" = ( /obj/machinery/vending/boozeomat, /turf/simulated/floor/plasteel{ + dir = 5; icon_state = "dark" }, /area/crew_quarters/captain) "bKY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - icon_state = "wood" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, -/area/crew_quarters/captain) +/turf/simulated/floor/bluegrid, +/area/turret_protected/ai_upload) "bKZ" = ( /obj/structure/disposalpipe/segment{ dir = 1; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "cult" + icon_state = "wood" }, /area/crew_quarters/captain) "bLa" = ( @@ -42887,13 +43031,20 @@ dir = 4; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, /turf/simulated/floor/plasteel{ - icon_state = "cult" + icon_state = "wood" }, /area/crew_quarters/captain) "bLb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - icon_state = "cult" + icon_state = "wood" }, /area/crew_quarters/captain) "bLc" = ( @@ -42909,14 +43060,14 @@ name = "Captain" }, /turf/simulated/floor/plasteel{ - icon_state = "grimy" + icon_state = "wood" }, /area/crew_quarters/captain) "bLe" = ( /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, /turf/simulated/floor/plasteel{ - icon_state = "grimy" + icon_state = "wood" }, /area/crew_quarters/captain) "bLf" = ( @@ -42924,7 +43075,7 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "grimy" + icon_state = "wood" }, /area/crew_quarters/captain) "bLg" = ( @@ -43704,9 +43855,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/structure/sign/poster/official/nanotrasen_logo{ pixel_y = -32 @@ -43749,7 +43897,7 @@ }, /obj/machinery/hologram/holopad, /turf/simulated/floor/plasteel{ - icon_state = "grimy" + icon_state = "wood" }, /area/bridge/meeting_room) "bMO" = ( @@ -43761,6 +43909,9 @@ }, /obj/structure/table/wood, /obj/item/folder/blue, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/carpet, /area/bridge/meeting_room) "bMP" = ( @@ -43773,23 +43924,22 @@ /obj/structure/chair/comfy/brown{ dir = 4 }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, /turf/simulated/floor/carpet, /area/bridge/meeting_room) "bMQ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment, /obj/structure/table/wood, /obj/item/folder/yellow, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/carpet, /area/bridge/meeting_room) "bMR" = ( @@ -43808,6 +43958,9 @@ icon_state = "1-4"; tag = "" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/carpet, /area/bridge/meeting_room) "bMS" = ( @@ -43817,24 +43970,35 @@ }, /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4; + initialize_directions = 11 }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/carpet, /area/bridge/meeting_room) "bMT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/bridge/meeting_room) "bMU" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 8; - external_pressure_bound = 100; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 }, /turf/simulated/floor/plasteel{ icon_state = "wood" @@ -43846,6 +44010,7 @@ }, /obj/machinery/vending/cigarette, /turf/simulated/floor/plasteel{ + dir = 5; icon_state = "dark" }, /area/bridge/meeting_room) @@ -43876,19 +44041,14 @@ tag = "" }, /obj/structure/table/glass, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/turret_protected/ai_upload) "bNa" = ( -/obj/item/aiModule/protectStation{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/aiModule/nanotrasen{ - pixel_x = 2; - pixel_y = -2 - }, +/obj/item/aiModule/nanotrasen, /obj/structure/table/glass, /turf/simulated/floor/plasteel{ icon_state = "dark" @@ -43897,6 +44057,7 @@ "bNb" = ( /obj/machinery/vending/cigarette, /turf/simulated/floor/plasteel{ + dir = 5; icon_state = "dark" }, /area/crew_quarters/captain) @@ -43915,19 +44076,9 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/hologram/holopad, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - icon_state = "cult" - }, -/area/crew_quarters/captain) -"bNd" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/turf/simulated/floor/plasteel{ - icon_state = "cult" + icon_state = "wood" }, /area/crew_quarters/captain) "bNe" = ( @@ -43937,7 +44088,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -43953,7 +44103,7 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - icon_state = "grimy" + icon_state = "wood" }, /area/crew_quarters/captain) "bNg" = ( @@ -43967,7 +44117,7 @@ /obj/item/clothing/mask/cigarette/cigar, /obj/item/clothing/mask/cigarette/cigar, /turf/simulated/floor/plasteel{ - icon_state = "grimy" + icon_state = "wood" }, /area/crew_quarters/captain) "bNh" = ( @@ -44642,6 +44792,7 @@ /obj/machinery/light{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -44669,18 +44820,25 @@ /turf/simulated/floor/carpet, /area/bridge/meeting_room) "bOH" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access = null; + req_access_txt = "57" + }, +/obj/machinery/door/firedoor, /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/disposalpipe/segment, -/obj/structure/chair/comfy/beige{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "wood" }, -/turf/simulated/floor/carpet, -/area/bridge/meeting_room) +/area/crew_quarters/heads/hop) "bOI" = ( /obj/structure/chair/comfy/brown{ dir = 1 @@ -44690,65 +44848,61 @@ "bOJ" = ( /obj/structure/table/wood, /obj/item/paper_bin, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8; - initialize_directions = 11 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" }, +/obj/structure/disposalpipe/segment, +/obj/item/pen, +/turf/simulated/floor/carpet, /area/bridge/meeting_room) "bOK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/newscaster{ pixel_x = 32; pixel_y = -32 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/bridge/meeting_room) "bOL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "wood" }, -/area/bridge/meeting_room) +/area/crew_quarters/heads/hop) "bOM" = ( /obj/machinery/computer/account_database, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /turf/simulated/floor/plasteel{ + dir = 5; icon_state = "dark" }, /area/bridge/meeting_room) -"bON" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/wall/r_wall, -/area/turret_protected/ai_upload) "bOO" = ( -/obj/item/aiModule/quarantine, +/obj/item/aiModule/crewsimov, /obj/structure/table/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/turret_protected/ai_upload) "bOP" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 8; - external_pressure_bound = 100; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 }, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) @@ -44760,41 +44914,39 @@ icon_state = "1-2"; tag = "" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/turret_protected/ai_upload) "bOR" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 + dir = 8 }, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "bOS" = ( -/obj/item/aiModule/freeform, +/obj/item/aiModule/corp, /obj/structure/table/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/turret_protected/ai_upload) "bOT" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/wall/r_wall, +/turf/simulated/wall, /area/turret_protected/ai_upload) "bOU" = ( /obj/structure/bed/dogbed{ name = "fox box" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /mob/living/simple_animal/pet/dog/fox/Renault, /turf/simulated/floor/plasteel{ + dir = 5; icon_state = "dark" }, /area/crew_quarters/captain) @@ -44807,19 +44959,18 @@ pixel_x = -32; pixel_y = -32 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/crew_quarters/captain) "bOW" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ - icon_state = "wood" + dir = 8; + icon_state = "neutralcorner" }, -/area/crew_quarters/captain) +/area/hallway/primary/central) "bOX" = ( /obj/structure/cable{ d1 = 1; @@ -44828,40 +44979,32 @@ tag = "" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/structure/chair/comfy/brown, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/crew_quarters/captain) "bOY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" }, -/turf/simulated/floor/plasteel{ - icon_state = "wood" - }, -/area/crew_quarters/captain) +/turf/simulated/floor/carpet, +/area/crew_quarters/heads/hop) "bOZ" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4; - initialize_directions = 11 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/turf/simulated/floor/plasteel{ - icon_state = "wood" - }, -/area/crew_quarters/captain) +/turf/simulated/wall, +/area/ntrep) "bPa" = ( /obj/structure/cable, /obj/machinery/power/apc{ @@ -44887,6 +45030,7 @@ /obj/machinery/light{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -45804,11 +45948,11 @@ }, /area/bridge/meeting_room) "bQF" = ( -/obj/structure/bookcase, /obj/item/radio/intercom{ dir = 1; pixel_y = -28 }, +/obj/machinery/slot_machine, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -45834,6 +45978,11 @@ }, /area/bridge/meeting_room) "bQI" = ( +/turf/simulated/wall, +/area/blueshield) +"bQJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -45841,21 +45990,6 @@ tag = "" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/turf/simulated/floor/plasteel{ - icon_state = "wood" - }, -/area/bridge/meeting_room) -"bQJ" = ( -/obj/machinery/light_switch{ - pixel_x = -8; - pixel_y = -26 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -45906,7 +46040,7 @@ /obj/machinery/light{ dir = 8 }, -/turf/simulated/floor/carpet, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bQP" = ( /obj/structure/table/wood, @@ -45915,7 +46049,9 @@ layer = 2.9 }, /obj/item/paper_bin, -/turf/simulated/floor/carpet, +/obj/item/melee/chainofcommand, +/obj/item/pen, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bQQ" = ( /obj/structure/cable{ @@ -45934,7 +46070,10 @@ req_access_txt = "20" }, /obj/item/folder/blue, -/turf/simulated/floor/carpet, +/obj/item/stamp/captain, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bQR" = ( /obj/machinery/door/window{ @@ -45944,11 +46083,7 @@ name = "Captain's Desk Door"; req_access_txt = "20" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bQS" = ( /obj/structure/table/wood, @@ -45958,13 +46093,13 @@ }, /obj/item/storage/secure/briefcase, /obj/item/storage/lockbox/medal, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bQT" = ( /obj/structure/table/wood, -/obj/item/camera, +/obj/machinery/photocopier/faxmachine/longrange{ + department = "Captain's Office" + }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -46727,6 +46862,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -47006,7 +47142,6 @@ }, /area/hallway/primary/port) "bSz" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ @@ -47051,19 +47186,12 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/hallway/primary/central) "bSD" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4; - initialize_directions = 11 - }, /obj/machinery/camera{ c_tag = "Central Ring Hallway West"; dir = 8 @@ -47076,48 +47204,26 @@ /turf/simulated/wall/r_wall, /area/crew_quarters/heads/hop) "bSF" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) +"bSG" = ( /obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2"; tag = "" }, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Head of Personnel"; - req_access = null; - req_access_txt = "57" - }, -/turf/simulated/floor/plasteel{ - icon_state = "wood" - }, -/area/crew_quarters/heads/hop) -"bSG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/wall/r_wall, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "bSH" = ( -/obj/machinery/door/window{ - base_state = "right"; - icon_state = "right"; - name = "Core Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/aiModule/crewsimov, -/obj/item/aiModule/freeformcore, -/obj/item/aiModule/corp, -/obj/item/aiModule/paladin, -/obj/item/aiModule/robocop, -/obj/structure/table/glass, +/obj/machinery/smartfridge/secure/circuits/aiupload/experimental, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "bSI" = ( @@ -47161,23 +47267,7 @@ }, /area/turret_protected/ai_upload) "bSN" = ( -/obj/machinery/door/window{ - dir = 8; - name = "High-Risk Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/aiModule/oxygen, -/obj/item/aiModule/oneCrewMember, -/obj/item/aiModule/purge, -/obj/item/aiModule/antimov, -/obj/structure/table/glass, +/obj/machinery/smartfridge/secure/circuits/aiupload/highrisk, /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "bSO" = ( @@ -47193,12 +47283,12 @@ pixel_x = -30 }, /obj/machinery/computer/card, -/turf/simulated/floor/carpet, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bSP" = ( /obj/structure/table/wood, /obj/machinery/computer/security/wooden_tv, -/turf/simulated/floor/carpet, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bSQ" = ( /obj/structure/cable{ @@ -47214,14 +47304,12 @@ /obj/effect/landmark/start{ name = "Captain" }, -/turf/simulated/floor/carpet, -/area/crew_quarters/captain) -"bSR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, +/area/crew_quarters/captain) +"bSR" = ( +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bSS" = ( /obj/structure/table/wood, @@ -47230,9 +47318,7 @@ /obj/machinery/status_display{ pixel_x = 32 }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bST" = ( /turf/simulated/wall/r_wall, @@ -47243,6 +47329,10 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -47253,6 +47343,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -48290,6 +48381,7 @@ codes_txt = "patrol;next_patrol=engi1"; location = "hall3" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -48312,7 +48404,6 @@ }, /area/hallway/primary/central) "bUM" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/light{ dir = 4 }, @@ -48368,17 +48459,9 @@ }, /area/crew_quarters/heads/hop) "bUS" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, /obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -48390,7 +48473,6 @@ }, /area/crew_quarters/heads/hop) "bUU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/table/wood, /obj/item/storage/box/ids, /obj/item/storage/box/PDAs, @@ -48403,7 +48485,7 @@ /obj/machinery/ai_status_display{ pixel_x = -32 }, -/turf/simulated/floor/carpet, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bUW" = ( /obj/machinery/light_switch{ @@ -48414,7 +48496,7 @@ c_tag = "Captain's Desk"; dir = 1 }, -/turf/simulated/floor/carpet, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bUX" = ( /obj/structure/cable{ @@ -48424,24 +48506,20 @@ tag = "" }, /obj/structure/disposalpipe/segment, -/turf/simulated/floor/carpet, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bUY" = ( /obj/item/radio/intercom{ dir = 1; pixel_y = -28 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bUZ" = ( /obj/structure/displaycase/captain, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain) "bVa" = ( /obj/machinery/light{ @@ -48453,12 +48531,17 @@ /obj/effect/landmark/start{ name = "Captain" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/crew_quarters/captain/bedroom) "bVb" = ( -/obj/machinery/atmospherics/unary/vent_pump, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, /obj/machinery/shower{ pixel_y = 22 }, @@ -48470,10 +48553,6 @@ }, /area/crew_quarters/captain/bedroom) "bVc" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8; - initialize_directions = 11 - }, /obj/machinery/light{ dir = 8 }, @@ -48505,9 +48584,6 @@ /obj/effect/landmark{ name = "lightsout" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -48520,17 +48596,12 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8; - initialize_directions = 11 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall11"; location = "hall10" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -49475,13 +49546,13 @@ dir = 4; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" }, /area/hallway/primary/central) "bWM" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "bluecorner" }, @@ -49512,7 +49583,7 @@ }, /obj/machinery/door/poddoor{ density = 0; - icon_state = "pdoor0"; + icon_state = "open"; id_tag = "hopprivacy"; name = "HoP Privacy Blast Doors"; opacity = 0 @@ -49539,38 +49610,13 @@ icon_state = "wood" }, /area/crew_quarters/heads/hop) -"bWS" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 4; - on = 1 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, -/area/crew_quarters/heads/hop) "bWT" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4; - initialize_directions = 11 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, -/area/crew_quarters/heads/hop) -"bWU" = ( -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "bWV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/vending/cart, /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = 32 @@ -49593,22 +49639,22 @@ req_access = null; req_access_txt = "20" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/crew_quarters/captain) "bWX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/wall/r_wall, +/turf/simulated/wall, /area/crew_quarters/captain) "bWY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/crew_quarters/captain/bedroom) "bWZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/sink{ dir = 4; pixel_x = 12 @@ -49622,7 +49668,11 @@ dir = 4; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + initialize_directions = 11 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -50160,7 +50210,7 @@ }, /obj/machinery/door/poddoor{ density = 0; - icon_state = "pdoor0"; + icon_state = "open"; id_tag = "hopprivacy"; name = "HoP Privacy Blast Doors"; opacity = 0 @@ -50199,29 +50249,9 @@ tag = "" }, /obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, -/area/crew_quarters/heads/hop) -"bYt" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "bYu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/status_display{ pixel_x = 32 }, @@ -50234,7 +50264,7 @@ /turf/simulated/wall/r_wall, /area/ntrep) "bYw" = ( -/turf/simulated/wall/r_wall, +/turf/simulated/wall, /area/civilian/barber) "bYx" = ( /turf/simulated/wall/r_wall, @@ -50256,6 +50286,8 @@ tag = "" }, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -50284,14 +50316,26 @@ /obj/machinery/door/airlock/silver{ name = "Captain's Bathroom" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "white" }, /area/crew_quarters/captain/bedroom) "bYF" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/wall, -/area/crew_quarters/captain/bedroom) +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/hallway/primary/central) "bYG" = ( /obj/structure/sign/directions/evac{ pixel_y = -8 @@ -50966,6 +51010,7 @@ dir = 8; pixel_x = -28 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -50987,7 +51032,6 @@ }, /area/hallway/primary/central) "bZV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/landmark{ name = "lightsout" }, @@ -51011,24 +51055,9 @@ /area/crew_quarters/heads/hop) "bZY" = ( /obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, -/area/crew_quarters/heads/hop) -"bZZ" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "caa" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/table/wood, /obj/machinery/light, /obj/machinery/photocopier/faxmachine{ @@ -51046,18 +51075,14 @@ /area/ntrep) "cac" = ( /obj/machinery/computer/secure_data, -/turf/simulated/floor/plasteel{ - icon_state = "wood" - }, +/turf/simulated/floor/carpet, /area/ntrep) "cad" = ( /obj/structure/table/wood, /obj/machinery/photocopier/faxmachine/longrange{ department = "NT Representative's Office" }, -/turf/simulated/floor/plasteel{ - icon_state = "wood" - }, +/turf/simulated/floor/carpet, /area/ntrep) "cae" = ( /obj/item/flag/nt, @@ -51115,13 +51140,13 @@ /obj/structure/table/wood, /obj/item/flashlight/lamp, /turf/simulated/floor/plasteel{ - icon_state = "wood" + icon_state = "bcarpet05" }, /area/blueshield) "cak" = ( /obj/machinery/computer/crew, /turf/simulated/floor/plasteel{ - icon_state = "wood" + icon_state = "bcarpet05" }, /area/blueshield) "cal" = ( @@ -51138,9 +51163,7 @@ dir = 8; pixel_x = -28 }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "can" = ( /obj/structure/cable{ @@ -51150,20 +51173,32 @@ tag = "" }, /obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "cao" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11 + }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/crew_quarters/captain/bedroom) "cap" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8; - initialize_directions = 11 + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 }, /turf/simulated/floor/plasteel{ icon_state = "wood" @@ -51187,26 +51222,17 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "cas" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, -/area/crew_quarters/captain/bedroom) -"cat" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/turf/simulated/floor/carpet/black, +/area/crew_quarters/captain/bedroom) +"cat" = ( /obj/item/twohanded/required/kirbyplants, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "cau" = ( /obj/structure/disposalpipe/segment, @@ -51214,6 +51240,10 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 28 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4; + initialize_directions = 11 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -51394,17 +51424,15 @@ }, /area/security/brig) "caP" = ( -/obj/machinery/door_timer/cell_4{ - id = "Cell 5"; - layer = 4; - name = "Cell 5" - }, /obj/structure/cable{ d1 = 4; d2 = 8; icon_state = "4-8"; tag = "" }, +/obj/machinery/door_timer/cell_5{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "red" @@ -51429,16 +51457,19 @@ id = "hopprivacy"; name = "Privacy Shutters"; pixel_x = -24; - pixel_y = -6; + pixel_y = -8; req_one_access_txt = "18" }, /obj/machinery/door_control{ id = "hopqueueshutters"; name = "Queue Shutters"; pixel_x = -24; - pixel_y = 6; req_one_access_txt = "18" }, +/obj/machinery/door_control/ticket_machine_button{ + pixel_x = -24; + pixel_y = 8 + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" @@ -51808,9 +51839,6 @@ dir = 1; in_use = 1 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/southwest, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -51960,9 +51988,8 @@ }, /area/library) "cbP" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8; - initialize_directions = 11 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, /turf/simulated/floor/plasteel{ icon_state = "bluecorner" @@ -52001,32 +52028,13 @@ /area/crew_quarters/heads/hop) "cbT" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/structure/cable{ - d1 = 1; + d1 = 4; d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" + icon_state = "4-8" }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "cbU" = ( -/obj/structure/cable{ - d2 = 8; - icon_state = "0-8" - }, /obj/machinery/power/apc{ dir = 4; name = "east bump"; @@ -52036,14 +52044,33 @@ c_tag = "Head of Personnel's Office"; dir = 8 }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "cbV" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/wall, -/area/crew_quarters/heads/hop) +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "cbW" = ( /turf/simulated/floor/plasteel{ icon_state = "wood" @@ -52080,7 +52107,6 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ icon_state = "barber" }, @@ -52137,17 +52163,12 @@ /area/blueshield) "cch" = ( /obj/structure/table/wood, -/obj/machinery/status_display{ - pixel_x = -32 - }, /obj/item/folder/blue, /obj/item/pen/multi/fountain, /obj/item/paper/safe_code{ owner = "captain" }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "cci" = ( /obj/structure/cable{ @@ -52165,9 +52186,7 @@ /obj/effect/landmark/start{ name = "Captain" }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "ccj" = ( /obj/structure/cable{ @@ -52179,7 +52198,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -52201,8 +52222,8 @@ dir = 2; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/hologram/holopad, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "wood" @@ -52215,9 +52236,8 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 1; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 }, /turf/simulated/floor/plasteel{ icon_state = "wood" @@ -52242,12 +52262,10 @@ /obj/item/lighter/zippo/nt_rep, /obj/item/storage/fancy/cigarettes/cigpack_robustgold, /obj/item/toy/figure/crew/captain, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "ccn" = ( -/turf/simulated/floor/carpet, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "cco" = ( /obj/structure/bed, @@ -52258,7 +52276,7 @@ /obj/effect/landmark/start{ name = "Captain" }, -/turf/simulated/floor/carpet, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "ccp" = ( /obj/structure/table, @@ -52562,8 +52580,8 @@ c_tag = "Brig Cell 4" }, /obj/structure/closet/secure_closet/brig{ - id = "Cell 4"; - name = "Cell 4 Locker" + id = "Cell 5"; + name = "Cell 5 Locker" }, /turf/simulated/floor/plating, /area/security/brig) @@ -52893,6 +52911,16 @@ }, /area/crew_quarters/heads/hop) "cdF" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/carpet, +/area/crew_quarters/heads/hop) +"cdG" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4; + initialize_directions = 11 + }, /obj/structure/cable{ d1 = 1; d2 = 2; @@ -52900,26 +52928,9 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, -/area/crew_quarters/heads/hop) -"cdG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "cdH" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4; - initialize_directions = 11 - }, /obj/structure/table/wood, /obj/machinery/light{ dir = 1 @@ -52946,12 +52957,12 @@ "cdJ" = ( /obj/structure/table/wood, /obj/item/folder, -/obj/item/stamp/centcom, /obj/item/pen/multi/fountain, /turf/simulated/floor/carpet, /area/ntrep) "cdK" = ( /obj/structure/table/wood, +/obj/item/stamp/rep, /turf/simulated/floor/carpet, /area/ntrep) "cdL" = ( @@ -52964,13 +52975,15 @@ }, /area/ntrep) "cdM" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/landmark/start{ name = "Barber" }, /obj/machinery/light/small{ dir = 8 }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "barber" }, @@ -52985,8 +52998,11 @@ /obj/structure/chair/barber{ dir = 4 }, -/obj/machinery/atmospherics/unary/vent_pump{ - on = 1 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 }, /turf/simulated/floor/plasteel{ icon_state = "barber" @@ -52998,6 +53014,9 @@ pixel_x = 28 }, /obj/item/razor, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, /turf/simulated/floor/plasteel{ icon_state = "barber" }, @@ -53054,31 +53073,19 @@ /obj/structure/table/wood, /obj/item/reagent_containers/food/drinks/flask/gold, /obj/item/razor, -/obj/item/radio/intercom{ - dir = 8; - pixel_x = -28 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "cdU" = ( /obj/structure/table/wood, /obj/machinery/light/small, /obj/machinery/computer/security/wooden_tv, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "cdV" = ( /obj/machinery/alarm{ dir = 1; pixel_y = -22 }, -/obj/item/twohanded/required/kirbyplants, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -53092,16 +53099,12 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/crew_quarters/captain/bedroom) "cdX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10; - initialize_directions = 10 - }, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -53126,17 +53129,15 @@ dir = 8 }, /obj/machinery/recharger, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "cdZ" = ( /obj/structure/filingcabinet, -/turf/simulated/floor/carpet, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "cea" = ( /obj/structure/dresser, -/turf/simulated/floor/carpet, +/turf/simulated/floor/carpet/black, /area/crew_quarters/captain/bedroom) "ceb" = ( /obj/structure/table, @@ -53541,7 +53542,6 @@ /area/engine/engineering) "cfa" = ( /obj/structure/closet/secure_closet/captains, -/obj/effect/decal/warning_stripes/southeast, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -53836,7 +53836,6 @@ }, /area/crew_quarters/heads/hop) "cfE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/table/wood, /obj/machinery/recharger, /obj/machinery/newscaster{ @@ -53855,12 +53854,8 @@ }, /area/ntrep) "cfG" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 }, /turf/simulated/floor/carpet, /area/ntrep) @@ -53889,7 +53884,6 @@ /area/ntrep) "cfJ" = ( /obj/item/twohanded/required/kirbyplants, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "barber" }, @@ -53902,6 +53896,7 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "barber" }, @@ -53931,10 +53926,8 @@ }, /area/blueshield) "cfN" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 8; - external_pressure_bound = 100; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 }, /turf/simulated/floor/plasteel{ icon_state = "bcarpet05" @@ -53968,12 +53961,24 @@ req_access = null; req_access_txt = "20" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/crew_quarters/captain/bedroom) "cfR" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/wall/r_wall, -/area/crew_quarters/captain/bedroom) +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/hallway/primary/central) "cfS" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -53981,6 +53986,7 @@ dir = 4; pixel_x = 24 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -54224,6 +54230,10 @@ id = "Cell 4"; pixel_y = -32 }, +/obj/machinery/flasher{ + id = "Cell 5"; + pixel_x = -28 + }, /turf/simulated/floor/plasteel, /area/security/brig) "cgu" = ( @@ -54273,16 +54283,13 @@ /obj/machinery/door/poddoor/shutters{ density = 0; dir = 8; - icon_state = "shutter0"; + icon_state = "open"; id_tag = "hopqueueshutters"; name = "Queue Shutters"; opacity = 0 }, /obj/machinery/door/firedoor, -/obj/effect/decal/warning_stripes/arrow{ - dir = 8 - }, -/obj/effect/decal/warning_stripes/yellow/partial{ +/obj/effect/turf_decal/loading_area{ dir = 8 }, /turf/simulated/floor/plasteel, @@ -54292,8 +54299,9 @@ id = "hopflash"; pixel_y = 58 }, -/obj/effect/decal/warning_stripes/yellow, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "bot" + }, /area/hallway/primary/central) "cgG" = ( /obj/effect/spawner/window/reinforced, @@ -54371,7 +54379,7 @@ /area/engine/engineering) "cgQ" = ( /obj/machinery/shieldwallgen, -/obj/effect/decal/warning_stripes/yellow, +/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/teleporter) "cgR" = ( @@ -54470,8 +54478,9 @@ }, /area/hallway/primary/port) "chc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ @@ -54512,25 +54521,12 @@ /obj/structure/disposalpipe/segment, /obj/structure/table/wood, /obj/item/paper_bin, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "chi" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/hologram/holopad, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "chj" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/photocopier, /turf/simulated/floor/plasteel{ icon_state = "wood" @@ -54573,7 +54569,6 @@ /area/ntrep) "chn" = ( /obj/effect/spawner/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plating, /area/civilian/barber) "cho" = ( @@ -54588,12 +54583,13 @@ name = "Barber Shop" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "barber" }, /area/civilian/barber) "chp" = ( -/turf/simulated/wall, +/turf/simulated/wall/r_wall, /area/civilian/barber) "chq" = ( /obj/structure/cable{ @@ -54663,8 +54659,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plating, /area/teleporter) "chy" = ( @@ -54682,6 +54680,9 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, /turf/simulated/floor/plating, /area/teleporter) "chz" = ( @@ -54697,12 +54698,8 @@ /area/teleporter) "chB" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8; - initialize_directions = 11 - }, /turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" + icon_state = "bluecorner" }, /area/hallway/primary/central) "chC" = ( @@ -55217,12 +55214,9 @@ /obj/structure/chair/office/dark{ dir = 1 }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "ciE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/bed/dogbed/ian, /obj/machinery/alarm{ dir = 8; @@ -55298,8 +55292,12 @@ icon_state = "2-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, /obj/structure/disposalpipe/segment{ dir = 2; icon_state = "pipe-c" @@ -55314,15 +55312,14 @@ d2 = 8; icon_state = "0-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plating, /area/ntrep) -"ciK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/bridge/meeting_room) "ciL" = ( /obj/structure/cable{ d1 = 1; @@ -55330,10 +55327,11 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 1; + icon_state = "neutral" }, /area/bridge/meeting_room) "ciM" = ( @@ -55345,9 +55343,15 @@ dir = 1; on = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 4; + icon_state = "neutralcorner" }, /area/bridge/meeting_room) "ciN" = ( @@ -55356,6 +55360,12 @@ d2 = 4; icon_state = "0-4" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plating, /area/blueshield) "ciO" = ( @@ -55376,8 +55386,12 @@ d2 = 4; icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, /obj/structure/disposalpipe/segment{ dir = 4; icon_state = "pipe-c" @@ -55438,9 +55452,9 @@ /turf/simulated/wall, /area/teleporter) "ciT" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/status_display, /turf/simulated/wall, -/area/teleporter) +/area/crew_quarters/captain/bedroom) "ciU" = ( /obj/structure/cable{ d1 = 1; @@ -55454,10 +55468,10 @@ name = "Teleporter Maintenance"; req_access_txt = "17" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/teleporter) "ciV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/sign/securearea{ pixel_x = -32 }, @@ -55922,7 +55936,7 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/teleporter) "cjZ" = ( @@ -56085,7 +56099,6 @@ }, /area/library) "ckm" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, @@ -56095,18 +56108,14 @@ /area/hallway/primary/central) "ckn" = ( /obj/structure/dresser, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "cko" = ( /obj/machinery/light{ dir = 1 }, /obj/structure/filingcabinet, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "ckp" = ( /obj/machinery/light{ @@ -56127,33 +56136,20 @@ tag = "" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/unary/vent_pump{ - on = 1 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "ckr" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, /obj/structure/cable{ - d1 = 1; + d1 = 4; d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" + icon_state = "4-8" }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "cks" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/item/twohanded/required/kirbyplants, /obj/machinery/ai_status_display{ pixel_x = 32 }, @@ -56178,8 +56174,6 @@ name = "NT Representative's Office"; req_access_txt = "73" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" @@ -56203,8 +56197,6 @@ name = "Blueshield's Office"; req_access_txt = "67" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ icon_state = "wood" @@ -56219,13 +56211,9 @@ /obj/machinery/light{ dir = 8 }, -/obj/effect/decal/warning_stripes/arrow, -/obj/effect/decal/warning_stripes/yellow/partial, /turf/simulated/floor/plasteel, /area/teleporter) "ckz" = ( -/obj/effect/decal/warning_stripes/arrow, -/obj/effect/decal/warning_stripes/yellow/partial, /turf/simulated/floor/plasteel, /area/teleporter) "ckA" = ( @@ -56260,7 +56248,6 @@ dir = 2; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/table, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high, @@ -56276,7 +56263,7 @@ id = "teleaccessshutter"; name = "Teleporter Shutters Access Control"; pixel_y = 24; - req_access_txt = "62" + req_access_txt = "17" }, /obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel, @@ -56310,7 +56297,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -56337,6 +56323,7 @@ icon_state = "pipe-j2" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -56929,14 +56916,11 @@ }, /obj/structure/bed, /obj/item/bedsheet/hop, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "clJ" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 }, /obj/machinery/light_switch{ pixel_x = 26; @@ -56945,9 +56929,7 @@ /obj/effect/landmark/start{ name = "Head of Personnel" }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "clK" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ @@ -56977,38 +56959,32 @@ tag = "" }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "clN" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "clO" = ( /obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8"; + d1 = 1; + d2 = 2; + icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "clP" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/table/wood, /obj/item/clipboard, /obj/item/toy/figure/crew/ian, @@ -57027,24 +57003,10 @@ icon_state = "1-4"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/bridge/meeting_room) -"clR" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 1; + icon_state = "neutralcorner" }, /area/bridge/meeting_room) "clS" = ( @@ -57054,10 +57016,9 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 1; + icon_state = "neutralcorner" }, /area/bridge/meeting_room) "clT" = ( @@ -57079,6 +57040,7 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -57095,8 +57057,8 @@ c_tag = "Central Ring Hallway Center" }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 4; + icon_state = "neutralcorner" }, /area/bridge/meeting_room) "clV" = ( @@ -57106,12 +57068,10 @@ icon_state = "1-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 4; + icon_state = "neutralcorner" }, /area/bridge/meeting_room) "clW" = ( @@ -57119,26 +57079,25 @@ /obj/item/storage/toolbox/emergency, /obj/item/crowbar, /obj/item/wrench, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/teleporter) "clX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, +/turf/simulated/floor/plasteel, /area/teleporter) "clY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, +/turf/simulated/floor/plasteel, /area/teleporter) "clZ" = ( /obj/structure/cable{ @@ -57154,11 +57113,10 @@ dir = 4 }, /obj/machinery/hologram/holopad, -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, +/turf/simulated/floor/plasteel, /area/teleporter) "cma" = ( /obj/structure/cable{ @@ -57174,11 +57132,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, +/turf/simulated/floor/plasteel, /area/teleporter) "cmb" = ( /obj/structure/cable{ @@ -57199,10 +57156,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4; + initialize_directions = 11 }, +/turf/simulated/floor/plasteel, /area/teleporter) "cmc" = ( /obj/structure/cable{ @@ -57223,7 +57181,7 @@ /obj/machinery/status_display{ pixel_x = 32 }, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plating, /area/teleporter) "cme" = ( /obj/structure/disposalpipe/segment, @@ -57232,6 +57190,7 @@ c_tag = "Central Ring Hallway East"; dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -57565,7 +57524,6 @@ dir = 1; pixel_y = -24 }, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/teleporter) "cmY" = ( @@ -57705,15 +57663,11 @@ dir = 8; pixel_x = -28 }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "cnp" = ( /obj/structure/closet/secure_closet/hop, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/crew_quarters/heads/hop) "cnq" = ( /obj/structure/cable{ @@ -57731,7 +57685,6 @@ }, /area/crew_quarters/heads/hop) "cnr" = ( -/obj/item/twohanded/required/kirbyplants, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -57748,12 +57701,12 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "wood" }, /area/crew_quarters/heads/hop) "cnt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/item/twohanded/required/kirbyplants, /obj/machinery/light_switch{ pixel_x = -8; @@ -57763,41 +57716,22 @@ icon_state = "wood" }, /area/crew_quarters/heads/hop) -"cnu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/bridge/meeting_room) "cnv" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" - }, -/area/bridge/meeting_room) +/obj/structure/disposalpipe/segment, +/obj/machinery/hologram/holopad, +/turf/simulated/floor/carpet, +/area/crew_quarters/heads/hop) "cnw" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8; - icon_state = "neutralfull" + initialize_directions = 11 }, -/area/bridge/meeting_room) +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "cnx" = ( /obj/structure/cable{ d1 = 1; @@ -57805,41 +57739,28 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/bridge/meeting_room) "cny" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 4; + icon_state = "neutralcorner" }, /area/bridge/meeting_room) "cnz" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8; - initialize_directions = 11 - }, -/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/teleporter) "cnA" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 8; - external_pressure_bound = 100; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/camera{ c_tag = "Teleporter"; @@ -57857,16 +57778,19 @@ /turf/simulated/floor/plasteel, /area/teleporter) "cnC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8; initialize_directions = 11 }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, -/area/teleporter) +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "cnD" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 + dir = 1 }, /obj/machinery/light, /obj/machinery/alarm{ @@ -57895,7 +57819,7 @@ /area/security/range) "cnG" = ( /obj/machinery/computer/teleporter, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plating, /area/teleporter) "cnH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -58020,8 +57944,9 @@ /turf/space, /area/space/nearstation) "cnW" = ( -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "bot" + }, /area/hallway/primary/central) "cnX" = ( /obj/structure/lattice, @@ -58191,6 +58116,7 @@ name = "Teleport Access"; req_access_txt = "17" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/teleporter) "cor" = ( @@ -58273,7 +58199,7 @@ /obj/structure/cable, /obj/machinery/door/poddoor{ density = 0; - icon_state = "pdoor0"; + icon_state = "open"; id_tag = "hopprivacy"; name = "HoP Privacy Blast Doors"; opacity = 0 @@ -58291,7 +58217,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/poddoor{ density = 0; - icon_state = "pdoor0"; + icon_state = "open"; id_tag = "hopprivacy"; name = "HoP Privacy Blast Doors"; opacity = 0 @@ -58301,6 +58227,7 @@ req_access = null; req_access_txt = "57" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -58316,12 +58243,11 @@ "coD" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 1; + icon_state = "neutralcorner" }, /area/bridge/meeting_room) "coE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ @@ -58330,30 +58256,25 @@ }, /area/hallway/primary/central) "coF" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 2; - id_tag = "teleportershutter"; - name = "Teleporter Shutters" - }, /obj/machinery/door_control{ id = "teleportershutter"; name = "Teleporter Shutters Access Control"; pixel_x = -24; - req_access_txt = "62" + req_access_txt = "17" }, -/obj/effect/decal/warning_stripes/north, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, -/area/teleporter) -"coG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/poddoor/shutters{ dir = 2; id_tag = "teleportershutter"; name = "Teleporter Shutters" }, -/obj/effect/decal/warning_stripes/north, -/obj/effect/decal/warning_stripes/south, +/turf/simulated/floor/plasteel, +/area/teleporter) +"coG" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 2; + id_tag = "teleportershutter"; + name = "Teleporter Shutters" + }, /turf/simulated/floor/plasteel, /area/teleporter) "coH" = ( @@ -58565,13 +58486,12 @@ }, /area/construction/hallway) "cpf" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 8; - external_pressure_bound = 100; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "bot" }, -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel, /area/hallway/primary/central) "cpg" = ( /obj/item/wrench, @@ -58894,8 +58814,11 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -58903,7 +58826,12 @@ }, /area/hallway/primary/central) "cpO" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/hallway/primary/central) "cpP" = ( @@ -58916,19 +58844,13 @@ icon_state = "yellowcorner" }, /area/hallway/primary/port) -"cpQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "neutralcorner" - }, -/area/bridge/meeting_room) "cpR" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -58942,6 +58864,7 @@ tag = "" }, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -58951,7 +58874,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -58970,6 +58895,9 @@ d2 = 2; icon_state = "0-2" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -58985,6 +58913,9 @@ name = "HIGH VOLTAGE"; pixel_y = 32 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -59000,6 +58931,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -59012,6 +58946,9 @@ /obj/structure/sign/poster/official/nanotrasen_logo{ pixel_y = 32 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -59025,30 +58962,9 @@ dir = 1; icon_state = "pipe-c" }, -/turf/simulated/floor/plasteel{ +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1; - icon_state = "neutralcorner" - }, -/area/bridge/meeting_room) -"cpZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "neutralcorner" - }, -/area/bridge/meeting_room) -"cqa" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment{ - dir = 4 + initialize_directions = 11 }, /turf/simulated/floor/plasteel{ dir = 1; @@ -59066,9 +58982,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "neutral" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "cqc" = ( @@ -59078,9 +58995,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "neutralcorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "cqd" = ( @@ -59091,6 +59011,9 @@ dir = 4; icon_state = "pipe-j2" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -59106,6 +59029,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -59124,6 +59050,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -59142,6 +59071,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -59152,6 +59084,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -59169,6 +59105,9 @@ dir = 4 }, /obj/effect/decal/warning_stripes/northeastcorner, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -59178,11 +59117,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -59192,11 +59134,13 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -59204,7 +59148,6 @@ /area/bridge/meeting_room) "cqm" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ @@ -59215,10 +59158,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -59237,6 +59182,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -59251,6 +59199,10 @@ dir = 1; icon_state = "pipe-j2" }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4; + initialize_directions = 11 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -59623,6 +59575,9 @@ dir = 4 }, /obj/effect/decal/warning_stripes/northwestcorner, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -59737,12 +59692,8 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -59756,10 +59707,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -59774,43 +59721,25 @@ icon_state = "dark" }, /area/library) -"crt" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralcorner" - }, -/area/bridge/meeting_room) "cru" = ( /obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; + d1 = 1; + d2 = 2; + icon_state = "1-2"; tag = "" }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1; +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; initialize_directions = 11 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralcorner" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" }, -/area/bridge/meeting_room) +/turf/simulated/floor/carpet, +/area/crew_quarters/heads/hop) "crv" = ( /obj/structure/cable{ d1 = 4; @@ -59818,12 +59747,8 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 1; - on = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 }, /obj/machinery/light, /turf/simulated/floor/plasteel{ @@ -59838,9 +59763,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "Central Ring Hallway Center"; dir = 1 @@ -59863,9 +59785,6 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -59878,7 +59797,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -59891,9 +59809,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/structure/cable{ d1 = 1; d2 = 8; @@ -59923,9 +59838,6 @@ icon_state = "2-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -59938,9 +59850,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/light/small, /turf/simulated/floor/plasteel{ dir = 8; @@ -59954,10 +59863,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1; - initialize_directions = 11 - }, /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; @@ -59965,27 +59870,12 @@ pixel_x = -32; pixel_y = -32 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" }, /area/bridge/meeting_room) -"crD" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "bluecorner" - }, -/area/bridge/meeting_room) "crE" = ( /obj/structure/cable{ d1 = 4; @@ -59993,11 +59883,10 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/structure/chair/comfy/black, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "crF" = ( @@ -60012,24 +59901,16 @@ icon_state = "2-8"; tag = "" }, +/obj/item/radio/beacon, /obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4"; + d1 = 4; + d2 = 8; + icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/item/radio/beacon, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "crG" = ( @@ -60039,16 +59920,13 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/structure/chair/comfy/black, /obj/effect/landmark/start{ name = "Civilian" }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "crH" = ( @@ -60058,14 +59936,11 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "crI" = ( @@ -60076,9 +59951,6 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/structure/sign/securearea{ desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; @@ -60097,9 +59969,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/light/small, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" @@ -60123,38 +59992,6 @@ icon_state = "2-4"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" - }, -/area/bridge/meeting_room) -"crL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "neutralcorner" - }, -/area/bridge/meeting_room) -"crM" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1; - initialize_directions = 11 - }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -60173,9 +60010,7 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -60187,7 +60022,9 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, /obj/machinery/light, /obj/machinery/camera{ c_tag = "Central Ring Hallway Center"; @@ -60204,7 +60041,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -60218,6 +60054,9 @@ dir = 4 }, /obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -60230,10 +60069,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4; - initialize_directions = 11 - }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -60252,9 +60087,8 @@ icon_state = "2-8"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -60267,6 +60101,7 @@ dir = 4; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -60635,6 +60470,9 @@ c_tag = "Captain's Office Nook"; dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, /turf/simulated/floor/plasteel, /area/teleporter) "csM" = ( @@ -60671,8 +60509,8 @@ dir = 4 }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "csQ" = ( @@ -60695,12 +60533,14 @@ /obj/effect/landmark{ name = "lightsout" }, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, /area/bridge/meeting_room) "csS" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 4; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -60715,7 +60555,8 @@ dir = 8 }, /turf/simulated/floor/plasteel{ - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "csU" = ( @@ -60734,9 +60575,11 @@ /turf/simulated/wall/r_wall, /area/gateway) "csW" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/wall/r_wall, -/area/gateway) +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutralcorner" + }, +/area/bridge/meeting_room) "csX" = ( /obj/structure/cable{ d1 = 4; @@ -60744,9 +60587,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ @@ -60766,6 +60606,7 @@ name = "Gateway Access"; req_access_txt = "62" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/gateway) "csZ" = ( @@ -60787,6 +60628,7 @@ dir = 8; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" @@ -61055,16 +60897,17 @@ /obj/machinery/door/poddoor/shutters{ density = 0; dir = 8; - icon_state = "shutter0"; + icon_state = "open"; id_tag = "hopqueueshutters"; name = "Queue Shutters"; opacity = 0 }, /obj/machinery/door/firedoor, -/obj/effect/decal/warning_stripes/arrow{ - dir = 4 +/obj/machinery/ticket_machine{ + layer = 4; + pixel_y = 32 }, -/obj/effect/decal/warning_stripes/yellow/partial{ +/obj/effect/turf_decal/loading_area{ dir = 4 }, /turf/simulated/floor/plasteel, @@ -61164,7 +61007,6 @@ }, /area/library) "ctQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/light{ dir = 4 }, @@ -61249,8 +61091,9 @@ name = "E.V.A."; req_one_access_txt = "18" }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "ctY" = ( /obj/structure/cable/yellow{ @@ -61304,7 +61147,8 @@ /obj/structure/table/wood, /obj/item/paper_bin, /turf/simulated/floor/plasteel{ - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "cuc" = ( @@ -61321,7 +61165,8 @@ name = "Civilian" }, /turf/simulated/floor/plasteel{ - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "cud" = ( @@ -61337,7 +61182,8 @@ tag = "" }, /turf/simulated/floor/plasteel{ - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "cue" = ( @@ -61351,7 +61197,8 @@ dir = 1 }, /turf/simulated/floor/plasteel{ - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "cuf" = ( @@ -61363,7 +61210,8 @@ }, /obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ - icon_state = "bluecorner" + dir = 8; + icon_state = "neutralfull" }, /area/bridge/meeting_room) "cug" = ( @@ -61398,17 +61246,15 @@ /turf/simulated/floor/plasteel, /area/gateway) "cul" = ( -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/power/apc{ dir = 1; name = "north bump"; pixel_y = 24 }, -/obj/effect/decal/warning_stripes/yellow/hollow, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, /turf/simulated/floor/plasteel, /area/gateway) "cum" = ( @@ -61419,11 +61265,16 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, /turf/simulated/floor/plasteel, /area/gateway) "cun" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/light{ dir = 8 }, @@ -61438,6 +61289,7 @@ /area/hallway/primary/central) "cuo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -61450,8 +61302,9 @@ name = "E.V.A."; req_one_access_txt = "18" }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cuq" = ( /turf/simulated/floor/plasteel{ @@ -61812,7 +61665,6 @@ pixel_x = -8; pixel_y = 24 }, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) "cuY" = ( @@ -62032,6 +61884,7 @@ c_tag = "Central Ring Hallway West"; dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -62076,13 +61929,9 @@ tag = "" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, -/area/ai_monitored/storage/eva) -"cvw" = ( -/obj/item/twohanded/required/kirbyplants, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cvx" = ( /obj/structure/cable{ @@ -62094,25 +61943,24 @@ name = "north bump"; pixel_y = 24 }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cvy" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cvz" = ( /obj/item/twohanded/required/kirbyplants, /obj/machinery/light{ dir = 1 }, -/obj/effect/decal/warning_stripes/northeast, -/turf/simulated/floor/plasteel, -/area/ai_monitored/storage/eva) -"cvA" = ( -/obj/effect/decal/warning_stripes/southwest, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cvB" = ( /obj/structure/cable{ @@ -62190,7 +62038,6 @@ }, /obj/item/storage/toolbox/emergency, /obj/item/flashlight, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) "cvK" = ( @@ -62204,22 +62051,6 @@ /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) -"cvL" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/warning_stripes/northwest, -/turf/simulated/floor/plasteel, -/area/gateway) "cvM" = ( /obj/structure/cable{ d1 = 1; @@ -62233,17 +62064,8 @@ icon_state = "2-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, -/area/gateway) -"cvN" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/effect/decal/warning_stripes/northeast, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel, /area/gateway) "cvO" = ( @@ -62340,7 +62162,6 @@ "cvY" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) "cvZ" = ( @@ -62736,7 +62557,6 @@ }, /area/library) "cwQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 @@ -62779,8 +62599,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cwT" = ( /obj/structure/cable{ @@ -62793,8 +62614,9 @@ dir = 10; initialize_directions = 10 }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cwU" = ( /obj/structure/cable{ @@ -62808,14 +62630,15 @@ d2 = 8; icon_state = "1-8" }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cwV" = ( /obj/item/radio/beacon, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 1; + icon_state = "darkblue" }, /area/ai_monitored/storage/eva) "cwW" = ( @@ -62828,8 +62651,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cwX" = ( /obj/structure/cable{ @@ -62841,11 +62665,13 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cwY" = ( -/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/suit_storage_unit/mime, +/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -62905,7 +62731,7 @@ /area/crew_quarters/locker) "cxe" = ( /obj/structure/bed/roller, -/obj/effect/decal/warning_stripes/yellow, +/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) "cxf" = ( @@ -62920,22 +62746,13 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/gateway) -"cxg" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8; - initialize_directions = 11 - }, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plasteel, -/area/gateway) "cxh" = ( /obj/structure/cable{ d1 = 4; @@ -62943,8 +62760,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel, /area/gateway) "cxi" = ( @@ -62987,7 +62802,6 @@ }, /area/gateway) "cxm" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/camera{ c_tag = "Central Ring Hallway East"; dir = 4 @@ -63198,7 +63012,6 @@ /obj/item/paper/pamphlet, /obj/item/paper/pamphlet, /obj/item/paper/pamphlet, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) "cxK" = ( @@ -63248,6 +63061,9 @@ dir = 4 }, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -63264,8 +63080,9 @@ icon_state = "4-8"; tag = "" }, -/obj/effect/decal/warning_stripes/southeast, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cxR" = ( /obj/structure/table/reinforced, @@ -63379,16 +63196,11 @@ icon_state = "dark" }, /area/ai_monitored/storage/eva) -"cye" = ( -/obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plasteel, -/area/ai_monitored/storage/eva) "cyf" = ( /obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/decal/warning_stripes/yellow, +/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + icon_state = "dark" }, /area/ai_monitored/storage/eva) "cyg" = ( @@ -63407,7 +63219,7 @@ /obj/structure/window/reinforced, /obj/structure/showcase, /turf/simulated/floor/plasteel{ - icon_state = "grimy" + icon_state = "wood" }, /area/assembly/showroom) "cyi" = ( @@ -63435,9 +63247,7 @@ icon_state = "1-2"; tag = "" }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cyl" = ( /obj/machinery/ai_status_display{ @@ -63446,24 +63256,13 @@ /obj/machinery/camera{ c_tag = "Showroom" }, -/turf/simulated/floor/plasteel{ - dir = 6; - icon_state = "vault" - }, -/area/assembly/showroom) -"cym" = ( -/turf/simulated/floor/plasteel{ - icon_state = "vault" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cyn" = ( /obj/machinery/status_display{ pixel_y = 32 }, -/turf/simulated/floor/plasteel{ - dir = 10; - icon_state = "vault" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cyo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -63484,13 +63283,15 @@ }, /obj/structure/showcase, /turf/simulated/floor/plasteel{ - icon_state = "grimy" + icon_state = "wood" }, /area/assembly/showroom) "cyq" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkblue" + }, /area/ai_monitored/storage/eva) "cyr" = ( /obj/structure/rack, @@ -63511,7 +63312,6 @@ /obj/item/storage/pill_bottle/painkillers, /obj/item/reagent_containers/food/pill/patch/styptic, /obj/item/reagent_containers/food/pill/patch/silver_sulf, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) "cys" = ( @@ -63521,19 +63321,28 @@ icon_state = "1-2"; tag = "" }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + initialize_directions = 11 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" }, /area/gateway) "cyt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/warning_stripes/west, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/gateway) "cyu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/east, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, /turf/simulated/floor/plasteel, /area/gateway) "cyv" = ( @@ -63581,7 +63390,6 @@ }, /area/gateway) "cyz" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/item/radio/intercom{ dir = 0; pixel_x = -28 @@ -63597,6 +63405,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -63678,7 +63487,7 @@ dir = 4; pixel_x = 28 }, -/obj/effect/decal/warning_stripes/yellow, +/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) "cyJ" = ( @@ -64284,8 +64093,10 @@ /area/engine/engine_smes) "czI" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkblue" + }, /area/ai_monitored/storage/eva) "czJ" = ( /obj/structure/cable{ @@ -64337,22 +64148,15 @@ d2 = 4; icon_state = "1-4" }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8"; - tag = "" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 }, /obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4"; + d1 = 1; + d2 = 2; + icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4; - initialize_directions = 11 - }, /turf/simulated/floor/plasteel{ icon_state = "wood" }, @@ -64428,6 +64232,7 @@ }, /obj/structure/table/wood, /obj/item/paper_bin, +/obj/item/pen, /turf/simulated/floor/carpet, /area/assembly/showroom) "czR" = ( @@ -64437,9 +64242,8 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8; - initialize_directions = 11 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 }, /turf/simulated/floor/plasteel{ icon_state = "wood" @@ -64452,9 +64256,8 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 8; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 }, /turf/simulated/floor/plasteel{ icon_state = "wood" @@ -64497,10 +64300,8 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 4; - on = 1 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -64543,39 +64344,14 @@ name = "protective hat"; pixel_y = 8 }, -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel, -/area/gateway) -"czX" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/effect/decal/warning_stripes/northeastcorner, /turf/simulated/floor/plasteel, /area/gateway) "czY" = ( -/obj/effect/spawner/window/reinforced, -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "neutralcorner" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/gateway) -"czZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes/northeast, -/turf/simulated/floor/plasteel, -/area/gateway) -"cAa" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes/northwest, -/turf/simulated/floor/plasteel, -/area/gateway) +/area/bridge/meeting_room) "cAb" = ( /obj/structure/cable{ d1 = 1; @@ -64583,11 +64359,7 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 8; - external_pressure_bound = 100; - on = 1 - }, +/obj/machinery/atmospherics/unary/vent_pump/on, /obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel, /area/gateway) @@ -65105,10 +64877,6 @@ icon_state = "dark" }, /area/ai_monitored/storage/eva) -"cBf" = ( -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plasteel, -/area/ai_monitored/storage/eva) "cBg" = ( /obj/structure/cable{ d1 = 4; @@ -65116,9 +64884,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/door/firedoor, /turf/simulated/floor/plasteel{ dir = 8; @@ -65144,18 +64909,18 @@ /obj/machinery/light{ dir = 1 }, -/obj/effect/decal/warning_stripes/northwest, /obj/machinery/camera{ c_tag = "EVA West" }, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cBj" = ( /obj/structure/dispenser/oxygen, /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + icon_state = "dark" }, /area/ai_monitored/storage/eva) "cBk" = ( @@ -65168,15 +64933,14 @@ c_tag = "EVA Storage"; dir = 8 }, -/obj/effect/decal/warning_stripes/west, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cBl" = ( /obj/machinery/hologram/holopad, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + icon_state = "darkblue" }, /area/ai_monitored/storage/eva) "cBm" = ( @@ -65202,14 +64966,10 @@ /obj/structure/table/wood, /obj/item/clipboard, /obj/item/toy/figure/crew/dsquad, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cBo" = ( -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cBp" = ( /obj/structure/chair/comfy/black{ @@ -65261,12 +65021,10 @@ }, /obj/structure/table/wood, /obj/item/storage/secure/briefcase, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cBv" = ( -/obj/effect/decal/warning_stripes/northeast, +/obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel, /area/gateway) "cBw" = ( @@ -65277,15 +65035,6 @@ }, /obj/item/storage/belt, /obj/item/radio, -/obj/effect/decal/warning_stripes/yellow/hollow, -/turf/simulated/floor/plasteel, -/area/gateway) -"cBx" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8; - initialize_directions = 11 - }, -/obj/effect/decal/warning_stripes/southwest, /turf/simulated/floor/plasteel, /area/gateway) "cBy" = ( @@ -65295,23 +65044,11 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 + dir = 5 }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, -/area/gateway) -"cBz" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plasteel, /area/gateway) "cBA" = ( @@ -65332,27 +65069,17 @@ icon_state = "2-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ name = "Gateway Access"; req_access_txt = "62" }, -/turf/simulated/floor/plasteel, -/area/gateway) -"cBB" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/effect/decal/warning_stripes/southeast, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/gateway) "cBC" = ( @@ -65365,7 +65092,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/effect/decal/warning_stripes/west, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel, /area/gateway) "cBD" = ( @@ -65374,10 +65103,12 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 }, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) "cBE" = ( @@ -65400,13 +65131,6 @@ }, /turf/simulated/wall, /area/crew_quarters/locker/locker_toilet) -"cBH" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/decal/warning_stripes/east, -/turf/simulated/floor/plasteel, -/area/gateway) "cBI" = ( /obj/structure/cable{ d1 = 2; @@ -65894,49 +65618,37 @@ icon_state = "dark" }, /area/ai_monitored/storage/eva) -"cCD" = ( -/obj/effect/decal/warning_stripes/northwest, -/turf/simulated/floor/plasteel, -/area/ai_monitored/storage/eva) "cCE" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cCF" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4; - initialize_directions = 11 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, -/area/ai_monitored/storage/eva) -"cCG" = ( -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, /area/ai_monitored/storage/eva) "cCH" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8; - initialize_directions = 11 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, /area/ai_monitored/storage/eva) "cCI" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 8; - external_pressure_bound = 100; - on = 1 +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel, -/area/ai_monitored/storage/eva) -"cCJ" = ( -/obj/effect/decal/warning_stripes/northeast, -/turf/simulated/floor/plasteel, /area/ai_monitored/storage/eva) "cCK" = ( /obj/structure/table/reinforced, @@ -65956,16 +65668,12 @@ }, /obj/structure/table/wood, /obj/item/folder/yellow, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cCM" = ( /obj/structure/table/wood, /obj/item/storage/photo_album, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cCN" = ( /obj/item/twohanded/required/kirbyplants, @@ -65974,17 +65682,13 @@ pixel_y = -24 }, /obj/machinery/light, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cCO" = ( /obj/structure/chair/comfy/brown{ dir = 1 }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cCP" = ( /obj/structure/cable{ @@ -65994,31 +65698,23 @@ tag = "" }, /obj/machinery/hologram/holopad, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cCQ" = ( /obj/structure/chair/comfy/black{ dir = 1 }, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cCR" = ( /obj/item/twohanded/required/kirbyplants, /obj/machinery/light, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cCS" = ( /obj/structure/table/wood, /obj/item/paicard, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cCT" = ( /obj/structure/cable{ @@ -66033,9 +65729,7 @@ pixel_x = 28 }, /obj/item/folder/red, -/turf/simulated/floor/plasteel{ - icon_state = "grimy" - }, +/turf/simulated/floor/carpet, /area/assembly/showroom) "cCU" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -66053,25 +65747,19 @@ "cCV" = ( /obj/structure/table, /obj/machinery/recharger, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) "cCW" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/table, /obj/machinery/cell_charger, /obj/machinery/light_switch{ pixel_x = 8; pixel_y = -24 }, -/obj/effect/decal/warning_stripes/yellow/hollow, +/obj/item/stock_parts/cell/high, /turf/simulated/floor/plasteel, /area/gateway) "cCX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) "cCY" = ( @@ -66092,12 +65780,11 @@ /obj/effect/decal/warning_stripes/yellow/hollow, /turf/simulated/floor/plasteel, /area/gateway) -"cDb" = ( -/obj/effect/decal/warning_stripes/southwest, -/turf/simulated/floor/plasteel, -/area/gateway) "cDc" = ( /obj/effect/decal/warning_stripes/south, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, /turf/simulated/floor/plasteel, /area/gateway) "cDd" = ( @@ -66119,7 +65806,7 @@ /turf/simulated/wall/rust, /area/crew_quarters/locker/locker_toilet) "cDf" = ( -/obj/effect/decal/warning_stripes/southeast, +/obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plasteel, /area/gateway) "cDg" = ( @@ -66435,8 +66122,9 @@ /obj/machinery/ai_status_display{ pixel_y = -32 }, -/obj/effect/decal/warning_stripes/southwest, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cDP" = ( /obj/structure/rack, @@ -66552,17 +66240,9 @@ name = "Station Intercom (General)"; pixel_y = -29 }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, -/area/ai_monitored/storage/eva) -"cEc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, -/area/ai_monitored/storage/eva) -"cEd" = ( -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cEe" = ( /obj/effect/spawner/window/reinforced, @@ -66619,13 +66299,12 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/locker/locker_toilet) "cEk" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor, +/obj/effect/decal/warning_stripes/south, /obj/machinery/door/airlock/command{ name = "Gateway Access"; req_access_txt = "62" }, -/obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plasteel, /area/gateway) "cEl" = ( @@ -66640,7 +66319,6 @@ id_tag = "stationawaygate"; name = "Gateway Access Shutters" }, -/obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plasteel, /area/gateway) "cEm" = ( @@ -66667,7 +66345,6 @@ id_tag = "stationawaygate"; name = "Gateway Access Shutters" }, -/obj/effect/decal/warning_stripes/south, /turf/simulated/floor/plasteel, /area/gateway) "cEq" = ( @@ -66679,14 +66356,15 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/locker/locker_toilet) "cEr" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cEs" = ( /obj/item/twohanded/required/kirbyplants, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cEt" = ( /obj/machinery/door/airlock/glass{ @@ -66819,33 +66497,23 @@ /area/maintenance/fpmaint2) "cEK" = ( /obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2"; + d1 = 4; + d2 = 8; + icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/landmark{ - name = "lightsout" - }, /turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralfull" + dir = 4; + icon_state = "neutralcorner" }, -/area/hallway/primary/central) +/area/bridge/meeting_room) "cEL" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" }, /area/hallway/primary/central) "cEM" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/item/radio/intercom{ dir = 1; pixel_y = 28 @@ -66859,8 +66527,9 @@ /obj/machinery/status_display{ pixel_y = -32 }, -/obj/effect/decal/warning_stripes/southeast, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cEO" = ( /obj/structure/table/reinforced, @@ -66868,14 +66537,15 @@ /turf/simulated/floor/plasteel, /area/maintenance/fpmaint2) "cEP" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/decal/warning_stripes/south, /obj/machinery/door/poddoor/shutters{ dir = 2; id_tag = "eva-shutters"; name = "E.V.A. Storage Shutters" }, -/obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cEQ" = ( /obj/machinery/door/poddoor/shutters{ @@ -66884,15 +66554,11 @@ name = "E.V.A. Storage Shutters" }, /obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cER" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/poddoor/shutters{ - dir = 2; - id_tag = "eva-shutters"; - name = "E.V.A. Storage Shutters" - }, /obj/machinery/door_control{ id = "eva-shutters"; name = "Auxilary E.V.A. Storage"; @@ -66900,12 +66566,16 @@ req_one_access_txt = "18" }, /obj/effect/decal/warning_stripes/south, -/turf/simulated/floor/plasteel, +/obj/machinery/door/poddoor/shutters{ + dir = 2; + id_tag = "eva-shutters"; + name = "E.V.A. Storage Shutters" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, /area/ai_monitored/storage/eva) "cES" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/light{ dir = 1; in_use = 1 @@ -66916,9 +66586,6 @@ }, /area/hallway/primary/central) "cET" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/firealarm{ pixel_y = 24 }, @@ -66928,9 +66595,6 @@ }, /area/hallway/primary/central) "cEU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, @@ -66946,35 +66610,18 @@ icon_state = "1-2"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "neutralcorner" }, /area/hallway/primary/central) "cEW" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutral" }, /area/hallway/primary/central) -"cEX" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "neutralcorner" - }, -/area/hallway/primary/central) "cEY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, @@ -66984,10 +66631,6 @@ }, /area/hallway/primary/central) "cEZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/light{ dir = 1; in_use = 1 @@ -67001,7 +66644,6 @@ }, /area/hallway/primary/central) "cFa" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "neutralcorner" @@ -67020,14 +66662,12 @@ /area/crew_quarters/locker/locker_toilet) "cFc" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4; - initialize_directions = 11 - }, /obj/machinery/camera{ c_tag = "Central Ring Hallway East"; dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -67044,9 +66684,6 @@ /turf/simulated/wall, /area/crew_quarters/locker/locker_toilet) "cFf" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/effect/decal/warning_stripes/northeastcorner, /turf/simulated/floor/plasteel{ dir = 1; @@ -67130,9 +66767,6 @@ }, /area/crew_quarters/sleep) "cFp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /turf/simulated/floor/plasteel{ @@ -67967,6 +67601,7 @@ dir = 8; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -68008,7 +67643,6 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralfull" @@ -68038,7 +67672,6 @@ icon_state = "4-8"; tag = "" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall9"; location = "hall8" @@ -68049,19 +67682,13 @@ }, /area/hallway/primary/central) "cGC" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - tag = "" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8; - initialize_directions = 11 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor, +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 8; - icon_state = "neutralfull" + icon_state = "neutralcorner" }, /area/hallway/primary/central) "cGD" = ( @@ -68076,9 +67703,7 @@ d2 = 8; icon_state = "1-8" }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, +/obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall10"; location = "hall9" @@ -68100,9 +67725,11 @@ name = "Medbay Junction"; sortType = 13 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -68168,9 +67795,6 @@ /turf/simulated/floor/plating, /area/maintenance/starboard) "cGK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel{ dir = 1; @@ -68178,9 +67802,6 @@ }, /area/hallway/primary/central) "cGL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, /obj/effect/decal/warning_stripes/northwestcorner, @@ -68306,9 +67927,6 @@ }, /area/crew_quarters/fitness) "cGY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "Central Ring Hallway South" }, @@ -68593,6 +68211,9 @@ icon_state = "pipe-c" }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -68605,19 +68226,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/turf/simulated/floor/plasteel{ - dir = 8; - icon_state = "neutralcorner" - }, -/area/hallway/primary/central) -"cHD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel{ - dir = 4; + dir = 8; icon_state = "neutralcorner" }, /area/hallway/primary/central) @@ -68629,6 +68242,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -68642,6 +68258,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -68653,7 +68272,12 @@ name = "Research Junction"; sortType = 20 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -68671,6 +68295,9 @@ c_tag = "Central Ring Hallway South"; dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -68685,6 +68312,9 @@ dir = 1; initialize_directions = 11 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -68692,6 +68322,9 @@ /area/hallway/primary/central) "cHJ" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutral" }, @@ -68701,7 +68334,9 @@ dir = 4; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -68717,15 +68352,7 @@ dir = 4 }, /obj/machinery/light/small, -/turf/simulated/floor/plasteel{ - icon_state = "bluecorner" - }, -/area/hallway/primary/central) -"cHM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /turf/simulated/floor/plasteel{ @@ -68736,7 +68363,12 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "bluecorner" }, @@ -68750,6 +68382,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "bluecorner" }, @@ -68758,7 +68393,12 @@ /obj/structure/disposalpipe/junction{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" }, @@ -68768,8 +68408,9 @@ dir = 8; icon_state = "pipe-c" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 }, /turf/simulated/floor/plasteel{ icon_state = "neutralcorner" @@ -68901,16 +68542,6 @@ icon_state = "neutralcorner" }, /area/crew_quarters/sleep) -"cIf" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/warning_stripes/north, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "neutralcorner" - }, -/area/hallway/primary/central) "cIg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -69253,7 +68884,6 @@ /turf/simulated/floor/plating, /area/maintenance/fpmaint2) "cIT" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel{ dir = 4; @@ -69261,9 +68891,6 @@ }, /area/hallway/primary/central) "cIU" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, /obj/effect/decal/warning_stripes/northwestcorner, /turf/simulated/floor/plasteel{ dir = 4; @@ -79607,6 +79234,9 @@ }, /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "neutralcorner" @@ -87744,10 +87374,6 @@ dir = 1; pixel_y = -25 }, -/obj/effect/decal/warning_stripes/yellow/hollow, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, /turf/simulated/floor/plasteel, /area/gateway) "dtf" = ( @@ -99669,7 +99295,7 @@ icon_state = "2-4"; tag = "" }, -/obj/machinery/smartfridge/secure/chemistry/virology, +/obj/machinery/smartfridge/secure/chemistry/virology/preloaded, /obj/effect/decal/warning_stripes/east, /turf/simulated/floor/plasteel, /area/medical/virology) @@ -103738,6 +103364,19 @@ /obj/structure/lattice/catwalk, /turf/space, /area/maintenance/auxsolarstarboard) +"exL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "ezR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -103787,6 +103426,14 @@ icon_state = "red" }, /area/security/brig) +"eNm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Corporate Lounge"; + req_one_access_txt = "19" + }, +/turf/simulated/floor/carpet, +/area/assembly/showroom) "eNt" = ( /obj/structure/cable{ d1 = 4; @@ -104304,6 +103951,20 @@ /obj/machinery/light, /turf/simulated/floor/plasteel, /area/quartermaster/storage) +"gyY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Corporate Lounge"; + req_one_access_txt = "19" + }, +/turf/simulated/floor/carpet, +/area/assembly/showroom) "gBV" = ( /turf/simulated/floor/plasteel{ dir = 1; @@ -104312,13 +103973,10 @@ /area/security/permasolitary) "gDv" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door_timer/cell_5{ - dir = 8; - layer = 4; - name = "Cell 1"; +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door_timer/cell_1{ pixel_x = -32 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "redcorner" @@ -105037,6 +104695,16 @@ "jQY" = ( /turf/simulated/wall/r_wall, /area/security/seceqstorage) +"jUC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor, +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "jUH" = ( /obj/structure/cable{ d1 = 1; @@ -105204,6 +104872,18 @@ }, /turf/simulated/floor/plating, /area/security/warden) +"kCi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "kGF" = ( /obj/structure/table/reinforced, /obj/item/folder/red, @@ -105350,6 +105030,22 @@ icon_state = "neutralfull" }, /area/security/brig) +"lso" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "ltg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/chair{ @@ -105460,6 +105156,20 @@ }, /turf/simulated/floor/plasteel, /area/security/seceqstorage) +"lIv" = ( +/obj/machinery/suit_storage_unit/clown, +/obj/effect/decal/warning_stripes/yellow/hollow, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ai_monitored/storage/eva) +"lIX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "darkblue" + }, +/area/ai_monitored/storage/eva) "lJT" = ( /obj/structure/cable{ d1 = 1; @@ -105991,6 +105701,13 @@ /obj/machinery/smartfridge/drying_rack, /turf/simulated/floor/plating, /area/security/permabrig) +"nFN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/ai_monitored/storage/eva) "nGL" = ( /obj/machinery/bodyscanner{ dir = 4 @@ -106498,6 +106215,19 @@ "qrT" = ( /turf/simulated/wall/r_wall, /area/tcommsat/chamber) +"qzr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutralcorner" + }, +/area/bridge/meeting_room) "qHs" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 10; @@ -106597,6 +106327,19 @@ icon_state = "vault" }, /area/security/securearmoury) +"qZt" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + tag = "" + }, +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralfull" + }, +/area/hallway/primary/central) "qZI" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating, @@ -106663,6 +106406,20 @@ icon_state = "darkblue" }, /area/medical/surgery2) +"rjr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/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 = "neutralcorner" + }, +/area/hallway/primary/central) "rkB" = ( /obj/structure/cable{ d1 = 2; @@ -106851,6 +106608,13 @@ /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/security/brig) +"shS" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ai_monitored/storage/eva) "siv" = ( /obj/effect/spawner/window/reinforced, /obj/structure/sign/securearea{ @@ -107264,6 +107028,20 @@ icon_state = "dark" }, /area/crew_quarters/theatre) +"tVa" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "tVO" = ( /obj/structure/cable{ d1 = 4; @@ -107279,6 +107057,26 @@ }, /turf/simulated/floor/plating, /area/security/range) +"uiw" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door_timer/cell_3{ + pixel_y = -32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "red" + }, +/area/security/brig) "ujH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -107305,6 +107103,18 @@ }, /turf/simulated/floor/plating, /area/security/range) +"ukK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "bluecorner" + }, +/area/hallway/primary/central) "ulE" = ( /obj/machinery/door/poddoor{ density = 0; @@ -107457,8 +107267,8 @@ /area/crew_quarters/theatre) "uYc" = ( /obj/structure/closet/secure_closet/brig{ - id = "Cell 2"; - name = "Cell 2 Locker" + id = "Cell 3"; + name = "Cell 3 Locker" }, /obj/machinery/camera{ c_tag = "Brig Cell 2" @@ -107627,7 +107437,7 @@ /area/security/permasolitary) "vvQ" = ( /obj/machinery/door_timer/cell_4{ - layer = 4 + pixel_y = -32 }, /turf/simulated/floor/plasteel{ icon_state = "red" @@ -107976,6 +107786,21 @@ }, /turf/simulated/floor/plasteel, /area/security/securearmoury) +"xqH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "neutralcorner" + }, +/area/hallway/primary/central) "xuC" = ( /obj/structure/cable{ d1 = 1; @@ -108041,10 +107866,6 @@ /area/medical/surgery1) "xIo" = ( /obj/structure/bed, -/obj/machinery/flasher{ - id = "Cell 5"; - pixel_y = -28 - }, /obj/item/radio/intercom{ dir = 8; pixel_y = -28 @@ -108185,6 +108006,21 @@ }, /turf/simulated/floor/plasteel, /area/security/permasolitary) +"ygv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "neutralcorner" + }, +/area/bridge/meeting_room) "ygH" = ( /turf/simulated/wall/r_wall, /area/security/permabrig) @@ -143003,18 +142839,18 @@ blb bmW bol bqm -bqm +buU bSg buU buU bxl byO bAq -bqm -bDR +bEa bDR +bEp bHg -cus +bJd bDR bDR bOD @@ -143022,28 +142858,28 @@ bSg byO bUK bWL -buZ +bOW bZT -buZ -buZ -buZ +cbV +bOW +bOW chc bWL -buZ -buZ -buZ -coE -buZ -bwm -buZ -buZ +bOW +bOW +bOW +cGC +tVa +bOW +bOW +bOW cvs -buZ -buZ -buZ -buZ -buZ -buZ +bOW +bOW +bOW +bOW +bOW +bOW chc cGx cHB @@ -143260,7 +143096,7 @@ blc bmX bom bqn -bse +buV btE buV buV @@ -143281,10 +143117,10 @@ bUL bva bva bZU +cfR bva bva bva -bEp bva bva bva @@ -143301,9 +143137,9 @@ bva bva bva bva -cEK +cDd cGy -bso +xqH ddm cKv cMb @@ -143523,7 +143359,7 @@ buW buW buW byQ -buW +chB bDG chB bFt @@ -143549,15 +143385,15 @@ bIX bSz cpO crr -bqA +cEL ctQ -bqA +cEL cwQ -bqA -bqA -bqA -bqA -bqA +cEL +cEL +cEL +cEL +cEL cEL bqu cHC @@ -143780,7 +143616,7 @@ bvV bxi bxi bwf -aot +bwn bCh bDT bFu @@ -144031,7 +143867,7 @@ blf aYZ boo bqp -bsh +bqv bsv btH btH @@ -144039,7 +143875,7 @@ btH bwf bAr bCi -bDU +byU bFv bHj bIY @@ -144061,8 +143897,8 @@ ckn clI cno bSE -cpQ -crt +cpT +cry csK ctR cvt @@ -144074,7 +143910,7 @@ cCC csK cEM bqu -bso +xqH cIW cKw cMd @@ -144288,7 +144124,7 @@ blg aYZ boo bqp -bsh +bqv btH aaa abj @@ -144300,9 +144136,9 @@ bDV bFw bHj bIZ -bKG +bKN bMN -bKG +bKN bQF bSE bSE @@ -144318,18 +144154,18 @@ cko clJ cnp bSE -cpQ -crt +cpT +cry csK cBi -cvA -cye -cye -cye -cCD +cEr +cEr +cEr +cEr +cEr cDO csK -boy +cEL bqu cHE cIX @@ -144545,7 +144381,7 @@ blh aYZ boo bqp -bsh +bqv btH aaa abj @@ -144557,11 +144393,11 @@ bDW asz bHj bJa -bKI +bOG bMP bOG bQG -bSE +ciB caQ bWQ bYq @@ -144575,8 +144411,8 @@ ciB clK ciB bSE -cpQ -cru +qzr +cua ctX cvv cwS @@ -144802,7 +144638,7 @@ blj aYZ bop bqp -bsh +bqv btH aaa abj @@ -144818,7 +144654,7 @@ bKH bMO bOF bKN -bSE +ciB bUQ bWR bYr @@ -144832,19 +144668,19 @@ ckp clL bUT bSE -cpQ -crt +cpT +cry csK -cvw +cEs cwT cyq -cyq -cyq +nFN +lIX cCF -cEc +cEr cEP -cHD -bqv +cIT +bqu cHG cIY cKy @@ -145075,14 +144911,14 @@ bKK bMR bOI bQH -bSE +ciB bUR -bWS -bYs bZY bYs bZY bYs +cnv +bYs chh ciD ckq @@ -145097,12 +144933,12 @@ cwU cwV cBj cBl -cCG -cEd +cEr +cEr cEQ -cIf +cIT bqu -bso +xqH cIW cKz cMh @@ -145316,7 +145152,7 @@ bll bmZ boo bqp -bsh +bqv btH aaa abj @@ -145327,39 +145163,39 @@ bCm bDY bFz bHk -bJd -bKJ +bKN +bKH bMQ -bOH -bQI -bSF +bOF +bKN +ciB bUS bWT -bYt -bZZ +cbT +chi cbT cdF -bYt +cbT +chi chi -bZZ ckr clN cnr bSE -cpQ +cpT crw csK -cvw +cEs cwW czI -czI -czI +shS +aMp cCH cEr cER cIT bqu -bso +xqH cIW cKA cMi @@ -145573,7 +145409,7 @@ blm bmZ boq bqq -bsh +bqv btH aaa abj @@ -145589,17 +145425,17 @@ bKL bMS bOJ bQJ -bSE -bUT -bWU -bWU -bWU +bOH +bOL +clO +bOY +bSG cbU cdG -bWU -bWU -bWU -bWU +bOY +bSG +bSG +cru clO cns coB @@ -145615,8 +145451,8 @@ cCI cEs csK cIU -bqx -bso +qZt +exL cIZ cKB cMj @@ -145830,28 +145666,28 @@ blo bmZ boo bqp -bsh +bqv btH aaa abj aaa bwg bAw -bCo -bEa +bCx +byU bFB -bHm -bJf -bKM +bHk +bKN +bKN bMT bOK bKM -bSG +ciB bUU bWV bYu caa -cbV +ciB cdH cfE chj @@ -145859,21 +145695,21 @@ ciE cks clP cnt -bSG +bSE cpT cry csK cvz cxQ -cBf +cEr cBk -cBf -cCJ +cEr +cEr cEN csK cES bqu -bso +xqH cIW cKC cMk @@ -146095,24 +145931,24 @@ abj bwe bAx bCp -bEb +byW bFC bHk bJg bKN bMU -bOL -bHj -bSE -bSE -bSE -bSE -bSE -bSE -bSE -bSE -bSE -bSE +bKN +bHk +ciB +ciB +ciB +ciB +ciB +ciB +ciB +ciB +ciB +ciB bSE bSE bSE @@ -146124,13 +145960,13 @@ cDs cvB cwY cyg -cwY +lIv cBm cCK csK cET bqu -bso +xqH cIW cKD cMl @@ -146344,26 +146180,26 @@ bnc bmZ boo bqp -bsh +bqv btH aaa bwc -asz +bqy bwf -bAy +aos bCl -bDU +byU bFD bHk -bHj +bHk bKO bMV bOM -bHj +bHk aaa abj aaa -bYv +bOZ cab cbW cdI @@ -146373,9 +146209,9 @@ ciF bYv aaa aaa -bHj +bHk cpV -crt +cry csK csK cvC @@ -146601,7 +146437,7 @@ bne bmZ boo bqp -bsh +bqv btH aaa bwd @@ -146609,18 +146445,18 @@ bxm byR byU bCl -bDU +byU bFy bHn -bJh -bJh -bJh -bON -bJh -bJh -bJh +bOT +bOT +bOT +bOT +bOT +bOT +bOT aaa -bYv +bOZ cac cbY cdK @@ -146642,9 +146478,9 @@ czJ cBn cCL cEe -boy +cEL bqu -bso +xqH cJa cKF cMl @@ -146858,7 +146694,7 @@ bQy bmZ boo bqp -bsh +bqv btH aaa bwd @@ -146866,18 +146702,18 @@ bxn byS byU bCl -bEc -bFE +byU +bFy bHo -bJh +bOT bKP bMW bOO bQK bSH -bJh +bOT abj -bYv +bOZ cad cbX cdJ @@ -146885,9 +146721,9 @@ cfG chl ciH bYv -bHj -bHj -bHj +bHk +bHk +bHk cpX crB bHj @@ -146899,9 +146735,9 @@ czK cBo cCM cEf -boy +cEL bqu -bso +xqH cIW cKG cMm @@ -147115,7 +146951,7 @@ bQy aYZ boo bqp -bsh +bqv btH aaa bwe @@ -147126,15 +146962,15 @@ bCq bEd bFF bHp -bJh +bOT bMY bMX bOP bMY bSI -bJh +bOT aaa -bYv +bOZ cae cbZ cdL @@ -147143,7 +146979,7 @@ chm ciI cku clQ -cnu +coD coD cpY crC @@ -147153,12 +146989,12 @@ cvD cxb cyj czL -cyj -cyj -cxb +cyk +cyk +gyY cEV cGz -bsp +xqH cIW cKH cMn @@ -147383,27 +147219,27 @@ bCr bEe bFG bHq -bJh +bOT bKR bMX +bKG bMX bMX -bMX -bJh +bOT aaa -bYv -bYv -bYv -bYv -bYv +bOZ +bOZ +bOZ +bOZ +bOZ bYv ciJ bYv -clR -cnv +clS ckv -cpZ -crD +ckv +cqc +cuf csP cub cvE @@ -147413,7 +147249,7 @@ czM cBp cCN cxa -boy +cEL bqu cHH cJb @@ -147629,7 +147465,7 @@ aBC byN bos bqs -bsk +bsm btH aaa bwg @@ -147640,13 +147476,13 @@ bCs bEf bFI bHs -bJh +bOT bKS bMY -bMY +bKI bQL bSJ -bJh +bOT aaa bYw caf @@ -147654,12 +147490,12 @@ cca cdM cfJ chn -ciK -ciK +cpT +csW clS -cnw -ciK -cqa +ckv +ckv +cqc crE csQ cuc @@ -147670,7 +147506,7 @@ czO cBr cCO cEg -boy +cEL bqu cHI dEj @@ -147892,7 +147728,7 @@ aaa bwh bxr byW -byW +bAy bCt bEg bFH @@ -147903,7 +147739,7 @@ bMZ bOQ bQM bSK -bJh +bOT abj bYw cag @@ -147912,17 +147748,17 @@ cdN cfK cho ciL -ciL +cnx clT cnx -ciL +cnx cqb crF csR cud cvF cxa -cym +cBo czN cBq cCP @@ -148150,17 +147986,17 @@ bwi bxs byV byU -bCr +bEb bEh bFJ bHt -bJh +bOT bKU bMY -bMY +bKJ bQL bSL -bJh +bOT aaa bYw cah @@ -148169,9 +148005,9 @@ cdO cfL chp ciM +czY +cEK ckv -clR -cnv ckv cqc crG @@ -148184,7 +148020,7 @@ czQ cBt cCQ cEi -boq +cFa cGB cHK dEm @@ -148405,30 +148241,30 @@ bsv abj bwf bxt -byU +bse byU bCr bEi bFK bHu -bJh +bOT bKV bMX +bKY bMX bMX -bMX -bJh +bOT aaa -bYx -bYx -bYx -bYx -bYx +bQI +bQI +bQI +bQI +bQI bYx ciN bYx clU -cnv +ckv ckv cqc crH @@ -148441,7 +148277,7 @@ czP cBs cCR cxa -boo +cFa bqu cHL cJf @@ -148657,7 +148493,7 @@ bls bfq bov bqu -bso +ckH btH aaa bwj @@ -148668,15 +148504,15 @@ bCu bEj bFL bHv -bJh +bOT bMY bMX bOR bMY bSM -bJh +bOT aaa -bYx +bQI cai ccd cdP @@ -148686,7 +148522,7 @@ ciO ckw clV cny -coD +cny cqd crI csU @@ -148695,12 +148531,12 @@ cvH cxc cyo czR -cyo -cyo -cxc -cEX +cBo +cBo +eNm +cFa bqu -cHM +cHN cJg cKM cMo @@ -148914,7 +148750,7 @@ blt bfq bov bqu -bso +ckH btH aaa bwk @@ -148922,18 +148758,18 @@ bxv byX byU bCl -bEk -bFM +byU +bFy bHw -bJh +bOT bKP bNa bOS bQN bSN -bJh +bOT abj -bYx +bQI caj cce cdQ @@ -148941,9 +148777,9 @@ cfN chr ciP bYx -bHj -bHj -bHj +bHk +bHk +bHk cqe crJ bHj @@ -148955,9 +148791,9 @@ czS cBo cCS cEf -boo +cFa bqu -cHM +cHN cJg cKN cMp @@ -149171,7 +149007,7 @@ blu bhU bov bqu -bso +ckH btH aaa bwk @@ -149179,18 +149015,18 @@ bxw byY bAB bCv -bDU +byU bFy bHn -bJh -bJh -bJh bOT -bJh -bJh -bJh +bOT +bOT +bOT +bOT +bOT +bOT aaa -bYx +bQI cak ccf cdR @@ -149212,9 +149048,9 @@ czT cBu cCT cEe -boo +cFa bqu -cHM +cHN cJh cKO cMq @@ -149427,27 +149263,27 @@ bjE blv bhV bow -bqv -bsp +bqu +ckH btH aaa bwl -asz +bqy bwf bAC bCl -bDU +byU bFy -bHx -bHx +bWX +bWX bKX bNb bOU -bHx +bWX aaa abj aaa -bYx +bQI cal ccg cdS @@ -149457,9 +149293,9 @@ ciR bYx aaa aaa -bHj +bHk cqg -crL +crP csV csV cvI @@ -149471,7 +149307,7 @@ csV csV cEY bqu -cHM +cHN cJh cKO cMp @@ -149693,30 +149529,30 @@ abj byZ bAD bCw -bEa +byU bFN -bHy +bWX bJj -bKY -bKY +bLc +bLc bOV -bHx -bHx -bHx -bHx -bST -bST -bST -bST -bST +bWX +bWX +bWX +bWX +bYD +bYD +ciT +bYD +bYD +ciS +ciS cht cht cht cht -cht -cht -cqc -crL +ygv +crP csV cuk cvK @@ -149726,9 +149562,9 @@ czW cBw cCV csV -boo +cFa bqu -cHM +cHN cJg cKP cMq @@ -149942,7 +149778,7 @@ blx bhX bou bqu -bso +ckH btH aaa abj @@ -149950,41 +149786,41 @@ aaa bwi bAE bCx -bDU +byU bFO -bHx +bWX bJk bKZ -bLb -bOW +bLc +bLc bQO bSO bUV -bHx +bWX bYy cam cch cdT -bST +bYD cgQ cgQ cky clW cmX cht -cqc -crM -csW +ygv +crP +csV cul -cvL -cxg +cxh +cCX cyt -cyt -cBx +cCX +cCX cCW -csW +csV cEZ -bqv +bqu cHN cJg cKQ @@ -150199,7 +150035,7 @@ blu bhU box bqx -bso +ckH btH aaa abj @@ -150222,7 +150058,7 @@ bYz can cci cdU -bST +bYD cgQ cgQ ckz @@ -150241,8 +150077,8 @@ cBy cCX cEk cFa -bqx -cHM +qZt +ukK cJi cKR cMr @@ -150456,7 +150292,7 @@ bly bfq bov bqu -bso +ckH btH aaa abj @@ -150466,20 +150302,20 @@ bAF bCz bEm bFy -bHx +bWX bJm bLb -bNd -bOY +bNe +bLc bQP bSP bUW -bHx +bWX bYA cao ccj cdV -bST +bYD chv ciS ckA @@ -150487,19 +150323,19 @@ clY cnA cht cqj -crL +crP csV cuX -cvN +cCX cxh cyu -czX -cBz +cCX +cBC dte csV -boo +cFa bqu -cHM +cHN cJg cKS cMp @@ -150721,13 +150557,13 @@ abj bwf bAG bCl -bDU +byU bFQ -bHx +bWX bJn -bLc +bJf bNe -bOZ +bLc bQR bSR bUY @@ -150750,13 +150586,13 @@ cvJ cvY cxJ cyI -czZ -cBB +cCX +cBC cDa csV -boo +cFa bqu -cHM +cHN cJg cKT cMq @@ -150970,7 +150806,7 @@ blA bdU boy bqu -bso +ckH btH aaa abj @@ -150978,9 +150814,9 @@ aaa bwf bAt bCl -bDU +byU bFx -bHx +bWX bJo bLd bNf @@ -150988,17 +150824,17 @@ bLc bQS bSS bUZ -bHx +bWX cfa caq ccl cdX -cfR +bYD chx -ciT +ciS ckC cma -cnC +cnB coG cql crP @@ -151007,7 +150843,7 @@ csV cvO cxi cyv -czY +cvO cBA cCZ csV @@ -151227,7 +151063,7 @@ bbe bbe boz bqu -bso +ckH btH aaa abj @@ -151235,22 +151071,22 @@ aaa bwf aot bCA -bDT +bEk asz bHx bJp bLe bNg bPa -bHx -bST -bST -bST +bWX +bYD +bYD +bYD bYD car ccm cdY -bST +bYD chy ciU cjY @@ -151258,19 +151094,19 @@ cmb cnD cht cre -crL +crP csZ csV cvP cxj cyw -cAa +cBv cBC -cDb +cDf cEl cGK bqu -cHM +cHN cJh cKV cMq @@ -151484,7 +151320,7 @@ blB bbe boy bqu -bso +ckH btH aaa abj @@ -151492,7 +151328,7 @@ aaa bwf bAs bCB -bEn +bAs bAs bHx bJq @@ -151500,22 +151336,22 @@ bLf bLf bLc bQT -bST +bYD bVa bWY bYE cas ccn cdZ -bST +bYD chz ciS ckD cmc cnE coH -cqc -crL +ygv +crP cta csV cvQ @@ -151527,7 +151363,7 @@ cDc cEp cGK bqu -cHM +cHN cJg cKW cMp @@ -151741,7 +151577,7 @@ blN bbi bov bqu -bso +ckH bsv btH btH @@ -151749,7 +151585,7 @@ btH bwf bAr bCl -bDU +byU bFR bHx bJr @@ -151757,34 +151593,34 @@ bLg bNh bPb bQU -bST +bYD bVb bWZ -bYF +bYD cat cco cea -bST +bYD chA ciS ckF cmd cnG cht -cqc -crL +ygv +crP ctk csV cvR cxl cyy cBv -cBH +cCX cDf cEp cGK bqu -cHM +cHN cJg cKX cMt @@ -151997,17 +151833,17 @@ bfy bnf bNB boA -bqv +bqu bsr bsv btI btI btJ bwf -aot -bCA -bDT -asz +bDU +bEc +bEn +bFE bHx bHx bHx @@ -152041,7 +151877,7 @@ csV csV cGL dxV -dWO +lso cJk cKY cJg @@ -152254,50 +152090,50 @@ bjI bnh bbi bov -bqy -bss +bqu +ckH coE -buZ bwm -buZ +bwm +bwm bza -bAH +bEo bCC bEo -bAH +bEo bHA -buZ -buZ -buZ -buZ -coE -buZ -bVc -buZ -buZ bwm -buZ -buZ -buZ -buZ +bwm +bwm +bwm +coE +bwm +bVc +bwm +bwm +bwm +bwm +bwm +bwm +bwm ciV ckH -buZ -buZ +bwm +bwm coE cqn crR -buU +cFa cun -bqm +cFa cxm cyz -buU -buU -buU -buU -bos -cGC +cFa +cFa +cFa +cFa +cFa +bqu cHP dWP cKY @@ -152515,13 +152351,13 @@ bqz bst bSi bva -bwn +bva btK bva bva bCD -bEp -bFs +bva +bFM bHB bva bva @@ -152532,7 +152368,7 @@ bva bVd bva bva -bZU +bYF bva bva bva @@ -152546,16 +152382,16 @@ cqo crS bva bva -bwn +bva bva bva bva bva cDd bva -bEp +bva cGD -bsh +kCi dWQ cKY cMv @@ -152771,45 +152607,45 @@ boC bqA bsu bSV -bvb +bEq bwo bxz bzb -bvb +bEq bCE bEq -bEq +bHm bHC -bvb -bvb -bvb +bEq +bEq +bEq bPc bSV bSU bVe bXa -buW +bSF cau -buW -buW +bSF +bSF cfS -buW -buW +cnw +cnC ckJ cme -buW -cqm +bSF +jUC cqp crT ctb cuo -bsf -buW +rjr +bSF cyA -buW -buW -buW -buW +bSF +bSF +bSF +bSF cFc cGE cHQ @@ -160998,7 +160834,7 @@ bkj bvr bsL biv -bzn +uiw bAV uYc bEy diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index ba2d214deae..d72b8a9dfa6 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -12074,11 +12074,6 @@ c_tag = "Brig - Hallway - Port"; dir = 1 }, -/obj/machinery/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_y = -32 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, @@ -12087,22 +12082,20 @@ }, /area/security/brig) "aBl" = ( -/obj/machinery/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_y = -32 +/obj/machinery/door_timer/cell_4{ + pixel_y = 32 }, /turf/simulated/floor/plasteel{ - icon_state = "red" + dir = 4; + icon_state = "redcorner" }, /area/security/brig) "aBn" = ( -/obj/machinery/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_y = -32 +/obj/machinery/door_timer/cell_5{ + pixel_y = 32 }, /turf/simulated/floor/plasteel{ + dir = 4; icon_state = "redcorner" }, /area/security/brig) @@ -16030,13 +16023,13 @@ codes_txt = "patrol;next_patrol=1-BrigCells"; location = "0-SecurityDesk" }, -/mob/living/simple_animal/bot/secbot/beepsky, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/mob/living/simple_animal/bot/secbot/beepsky, /turf/simulated/floor/plasteel, /area/hallway/primary/fore) "aJn" = ( @@ -17360,7 +17353,6 @@ "aMc" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/mouse, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -17370,6 +17362,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/mob/living/simple_animal/mouse, /turf/simulated/floor/plating, /area/maintenance/fore) "aMd" = ( @@ -18770,12 +18763,6 @@ /turf/simulated/floor/plating, /area/storage/secure) "aPm" = ( -/obj/machinery/door_timer{ - dir = 1; - id = "Cell 4"; - name = "Cell 4"; - pixel_y = 32 - }, /obj/machinery/light{ dir = 1 }, @@ -19889,10 +19876,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/mob/living/simple_animal/mouse, /obj/machinery/atmospherics/pipe/simple/insulated{ dir = 8 }, +/mob/living/simple_animal/mouse, /turf/simulated/floor/plasteel{ icon_state = "floorgrime" }, @@ -20938,7 +20925,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/item/aiModule/quarantine, +/obj/item/aiModule/crewsimov, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -20996,7 +20983,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/item/aiModule/freeform, +/obj/item/aiModule/nanotrasen, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -21108,15 +21095,11 @@ }, /area/storage/primary) "aUx" = ( -/obj/machinery/door_timer{ - dir = 1; - id = "Cell 5"; - name = "Cell 5"; - pixel_y = 32 +/obj/machinery/door_timer/cell_1{ + pixel_y = -32 }, /turf/simulated/floor/plasteel{ - dir = 1; - icon_state = "red" + icon_state = "redcorner" }, /area/security/brig) "aUy" = ( @@ -21521,23 +21504,11 @@ /turf/simulated/floor/plasteel, /area/quartermaster/storage) "aVw" = ( -/obj/structure/table, -/obj/item/aiModule/asimov, -/obj/item/aiModule/freeformcore, -/obj/machinery/door/window{ - base_state = "right"; - icon_state = "right"; - name = "Core Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/item/aiModule/corp, -/obj/item/aiModule/paladin, -/obj/item/aiModule/robocop, /obj/machinery/flasher{ id = "AI"; pixel_y = 24 }, +/obj/machinery/smartfridge/secure/circuits/aiupload/experimental, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -21591,21 +21562,11 @@ /turf/simulated/floor/bluegrid, /area/turret_protected/ai_upload) "aVA" = ( -/obj/structure/table, -/obj/machinery/door/window{ - dir = 8; - name = "High-Risk Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, /obj/machinery/flasher{ id = "AI"; pixel_y = 24 }, -/obj/item/aiModule/antimov, -/obj/item/aiModule/oxygen, -/obj/item/aiModule/oneCrewMember, -/obj/item/aiModule/purge, +/obj/machinery/smartfridge/secure/circuits/aiupload/highrisk, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -22541,7 +22502,7 @@ id = "AI"; pixel_y = -24 }, -/obj/item/aiModule/protectStation, +/obj/item/aiModule/corp, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -29663,13 +29624,13 @@ d2 = 8; icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, /mob/living/simple_animal/lizard{ name = "Wags-His-Tail"; real_name = "Wags-His-Tail" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, /turf/simulated/floor/plasteel{ icon_state = "floorgrime" }, @@ -33884,12 +33845,6 @@ }, /turf/simulated/floor/plasteel, /area/engine/break_room) -"buL" = ( -/obj/structure/transit_tube{ - icon_state = "D-SE" - }, -/turf/space, -/area/space/nearstation) "buM" = ( /obj/structure/transit_tube{ icon_state = "D-NW" @@ -36451,9 +36406,9 @@ d2 = 4; icon_state = "2-4" }, -/mob/living/simple_animal/bot/secbot/pingsky, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/mob/living/simple_animal/bot/secbot/pingsky, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -52679,12 +52634,6 @@ }, /turf/simulated/floor/plasteel, /area/atmos) -"chl" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/yellow{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/atmos) "chm" = ( /obj/machinery/light, /obj/machinery/power/apc{ @@ -64210,13 +64159,13 @@ d2 = 8; icon_state = "1-8" }, -/mob/living/simple_animal/mouse, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/mob/living/simple_animal/mouse, /turf/simulated/floor/plating, /area/maintenance/aft) "cFd" = ( @@ -66641,7 +66590,7 @@ /obj/machinery/alarm{ pixel_y = 23 }, -/obj/machinery/smartfridge/secure/chemistry/virology, +/obj/machinery/smartfridge/secure/chemistry/virology/preloaded, /turf/simulated/floor/plasteel{ icon_state = "whitegreenfull" }, @@ -78507,6 +78456,14 @@ }, /turf/simulated/floor/plasteel, /area/engine/break_room) +"glM" = ( +/obj/machinery/door_timer/cell_2{ + pixel_y = -32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "redcorner" + }, +/area/security/brig) "gnJ" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 @@ -79672,6 +79629,14 @@ }, /turf/simulated/floor/plating, /area/engine/engineering) +"jZd" = ( +/obj/machinery/door_timer/cell_3{ + pixel_y = -32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "red" + }, +/area/security/brig) "kez" = ( /turf/simulated/wall/r_wall, /area/engine/supermatter) @@ -79768,13 +79733,6 @@ /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 - }, -/turf/space, -/area/space/nearstation) "ktX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -81290,13 +81248,13 @@ }, /area/security/podbay) "ppw" = ( -/mob/living/carbon/human/monkey, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/mob/living/carbon/human/monkey, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, @@ -109364,7 +109322,7 @@ atr aFz atr aAc -aFz +aUx aKc aDO aFh @@ -110392,7 +110350,7 @@ aDg asS aqJ lgv -aFz +glM aKc aDO aFi @@ -110649,7 +110607,7 @@ aEV aJy aOY aZb -aBl +aFl akD akD akD @@ -111420,7 +111378,7 @@ aFz amE aqJ lgv -aFl +jZd aKc aDO aFj @@ -111677,7 +111635,7 @@ aFB ayw aOY aZb -aBn +aFz akD akD akD @@ -112960,7 +112918,7 @@ akD aFg aFX aKc -atr +aBl lgv aFA amE @@ -113217,7 +113175,7 @@ akD amE amE amx -aUx +alF lgv vDc amE @@ -113988,7 +113946,7 @@ akD aFg aGE aKc -atr +aBn lgv aFz amE @@ -127922,7 +127880,7 @@ bRg bRg bRg bRg -chl +bKc ciW ckl cij @@ -128940,7 +128898,7 @@ cmL nMx cmL kto -ktv +cmN bIu abq bMj @@ -130724,7 +130682,7 @@ cmL cmL cmL cmL -ktv +cmN bwL aaa abq @@ -134322,7 +134280,7 @@ aaa aaa aaa abq -buL +bqY bwW bxk aaa diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index bf3dd39de5e..297a0514932 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -8745,12 +8745,10 @@ /turf/simulated/floor/plasteel, /area/security/permabrig) "aua" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, /obj/machinery/door_timer/cell_1{ - dir = 1; - layer = 4; pixel_y = 32 }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkredcorners" @@ -8930,12 +8928,10 @@ }, /area/security/permabrig) "aum" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, /obj/machinery/door_timer/cell_3{ - dir = 1; - layer = 4; pixel_y = 32 }, -/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "darkredcorners" @@ -10767,9 +10763,6 @@ }, /area/security/prison/cell_block/A) "axH" = ( -/obj/machinery/door_timer/cell_2{ - layer = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -10781,6 +10774,9 @@ }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/light, +/obj/machinery/door_timer/cell_2{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "darkredcorners" @@ -10810,9 +10806,6 @@ }, /area/security/prison/cell_block/A) "axJ" = ( -/obj/machinery/door_timer/cell_4{ - layer = 4 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -10823,6 +10816,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/door_timer/cell_4{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "darkredcorners" @@ -11036,14 +11032,12 @@ /area/security/lobby) "ayn" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/door_timer/cell_5{ - dir = 4; - layer = 4; - pixel_x = 32 - }, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +/obj/machinery/door_timer/cell_5{ + pixel_x = 32 + }, /turf/simulated/floor/plasteel{ icon_state = "darkredcorners" }, @@ -35847,7 +35841,7 @@ /area/bridge/meeting_room) "bzT" = ( /obj/structure/table, -/obj/item/aiModule/quarantine, +/obj/item/aiModule/crewsimov, /turf/simulated/floor/transparent/glass/plasma, /area/turret_protected/ai_upload) "bzU" = ( @@ -36869,25 +36863,7 @@ /turf/simulated/floor/carpet, /area/bridge/meeting_room) "bCH" = ( -/obj/structure/table, -/obj/machinery/door/window{ - base_state = "right"; - icon_state = "right"; - name = "Core Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/aiModule/crewsimov, -/obj/item/aiModule/freeformcore, -/obj/item/aiModule/corp, -/obj/item/aiModule/paladin, -/obj/item/aiModule/robocop, +/obj/machinery/smartfridge/secure/circuits/aiupload/experimental, /turf/simulated/floor/transparent/glass/plasma, /area/turret_protected/ai_upload) "bCI" = ( @@ -37481,7 +37457,6 @@ /area/turret_protected/ai_upload) "bEb" = ( /obj/structure/table, -/obj/item/aiModule/protectStation, /obj/item/aiModule/nanotrasen, /turf/simulated/floor/transparent/glass/plasma, /area/turret_protected/ai_upload) @@ -37850,7 +37825,7 @@ /area/maintenance/port) "bFe" = ( /obj/structure/table, -/obj/item/aiModule/freeform, +/obj/item/aiModule/corp, /turf/simulated/floor/transparent/glass/plasma, /area/turret_protected/ai_upload) "bFf" = ( @@ -39680,23 +39655,7 @@ /turf/simulated/floor/transparent/glass/plasma, /area/turret_protected/ai_upload) "bIM" = ( -/obj/structure/table, -/obj/machinery/door/window{ - dir = 8; - name = "High-Risk Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/aiModule/oxygen, -/obj/item/aiModule/oneCrewMember, -/obj/item/aiModule/purge, -/obj/item/aiModule/antimov, +/obj/machinery/smartfridge/secure/circuits/aiupload/highrisk, /turf/simulated/floor/transparent/glass/plasma, /area/turret_protected/ai_upload) "bIN" = ( @@ -57360,7 +57319,7 @@ }, /area/medical/virology) "cpM" = ( -/obj/machinery/smartfridge/secure/chemistry/virology, +/obj/machinery/smartfridge/secure/chemistry/virology/preloaded, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitegreen" diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 8ac366023e8..9a4396d1656 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -119,3 +119,6 @@ #define SPLASHSCREEN_LAYER 23 #define SPLASHSCREEN_PLANE 23 + +///Plane master controller keys +#define PLANE_MASTERS_GAME "plane_masters_game" diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 3d38b8716b6..67d9a70bb19 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -306,10 +306,10 @@ #define TRIGGER_GUARD_NORMAL 1 // Macro to get the current elapsed round time, rather than total world runtime -#define ROUND_TIME (SSticker.round_start_time ? (world.time - SSticker.round_start_time) : 0) +#define ROUND_TIME (SSticker.time_game_started ? (world.time - SSticker.time_game_started) : 0) // Macro that returns true if it's too early in a round to freely ghost out -#define TOO_EARLY_TO_GHOST (config && (ROUND_TIME < (config.round_abandon_penalty_period))) +#define TOO_EARLY_TO_GHOST (ROUND_TIME < GLOB.configuration.general.cryo_penalty_period MINUTES) // Used by radios to indicate that they have sent a message via something other than subspace #define RADIO_CONNECTION_FAIL 0 @@ -363,7 +363,7 @@ #define INVESTIGATE_BOMB "bombs" // The SQL version required by this version of the code -#define SQL_VERSION 24 +#define SQL_VERSION 25 // Vending machine stuff #define CAT_NORMAL 1 @@ -432,9 +432,6 @@ /// Prepares a text to be used for maptext. Use this so it doesn't look hideous. #define MAPTEXT(text) {"[##text]"} -// Filters -#define FILTER_AMBIENT_OCCLUSION filter(type="drop_shadow", x=0, y=-2, size=4, color="#04080FAA") - //Fullscreen overlay resolution in tiles. #define FULLSCREEN_OVERLAY_RESOLUTION_X 15 #define FULLSCREEN_OVERLAY_RESOLUTION_Y 15 @@ -494,3 +491,6 @@ #define HALLUCINATE_MINOR 1 #define HALLUCINATE_MODERATE 2 #define HALLUCINATE_MAJOR 3 + +// Runechat symbol types +#define RUNECHAT_SYMBOL_EMOTE 1 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index b714a79a4c5..561c8720750 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -287,3 +287,6 @@ #define FLASH_PROTECTION_NONE 0 #define FLASH_PROTECTION_FLASH 1 #define FLASH_PROTECTION_WELDER 2 + +#define MAX_EYE_BLURRY_FILTER_SIZE 2 +#define EYE_BLUR_TO_FILTER_SIZE_MULTIPLIER 0.1 diff --git a/code/__DEFINES/rust_g.dm b/code/__DEFINES/rust_g.dm index fe4b644096b..6a331a6131f 100644 --- a/code/__DEFINES/rust_g.dm +++ b/code/__DEFINES/rust_g.dm @@ -18,14 +18,46 @@ // Noise related operations // #define rustg_noise_get_at_coordinates(seed, x, y) call(RUST_G, "noise_get_at_coordinates")(seed, x, y) +// File related operations // +#define rustg_file_read(fname) call(RUST_G, "file_read")(fname) +#define rustg_file_write(text, fname) call(RUST_G, "file_write")(text, fname) +#define rustg_file_append(text, fname) call(RUST_G, "file_append")(text, fname) + +#ifdef RUSTG_OVERRIDE_BUILTINS +#define file2text(fname) rustg_file_read(fname) +#define text2file(text, fname) rustg_file_append(text, fname) +#endif + // Git related operations // #define rustg_git_revparse(rev) call(RUST_G, "rg_git_revparse")(rev) #define rustg_git_commit_date(rev) call(RUST_G, "rg_git_commit_date")(rev) +// Hash related operations // +#define rustg_hash_string(algorithm, text) call(RUST_G, "hash_string")(algorithm, text) +#define rustg_hash_file(algorithm, fname) call(RUST_G, "hash_file")(algorithm, fname) + +#define RUSTG_HASH_MD5 "md5" +#define RUSTG_HASH_SHA1 "sha1" +#define RUSTG_HASH_SHA256 "sha256" +#define RUSTG_HASH_SHA512 "sha512" + +#ifdef RUSTG_OVERRIDE_BUILTINS +#define md5(thing) (isfile(thing) ? rustg_hash_file(RUSTG_HASH_MD5, "[thing]") : rustg_hash_string(RUSTG_HASH_MD5, thing)) +#endif + // Logging stuff // #define rustg_log_write(fname, text) call(RUST_G, "log_write")(fname, text) /proc/rustg_log_close_all() return call(RUST_G, "log_close_all")() +// URL encoding stuff +#define rustg_url_encode(text) call(RUST_G, "url_encode")(text) +#define rustg_url_decode(text) call(RUST_G, "url_decode")(text) + +#ifdef RUSTG_OVERRIDE_BUILTINS +#define url_encode(text) rustg_url_encode(text) +#define url_decode(text) rustg_url_decode(text) +#endif + // HTTP library stuff // #define RUSTG_HTTP_METHOD_GET "get" #define RUSTG_HTTP_METHOD_PUT "put" @@ -50,5 +82,8 @@ #define rustg_sql_disconnect_pool(handle) call(RUST_G, "sql_disconnect_pool")(handle) #define rustg_sql_check_query(job_id) call(RUST_G, "sql_check_query")("[job_id]") +// toml2json stuff // +#define rustg_toml2json(tomlfile) call(RUST_G, "toml2json")(tomlfile) + // RUSTG Version // -#define RUST_G_VERSION "0.4.5-P2" +#define RUST_G_VERSION "0.4.5-P3" diff --git a/code/__DEFINES/text.dm b/code/__DEFINES/text.dm new file mode 100644 index 00000000000..483f09f47ca --- /dev/null +++ b/code/__DEFINES/text.dm @@ -0,0 +1,6 @@ +//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam +#define MAX_MESSAGE_LEN 1024 +#define MAX_PAPER_MESSAGE_LEN 3072 +#define MAX_PAPER_FIELDS 50 +#define MAX_BOOK_MESSAGE_LEN 9216 +#define MAX_NAME_LEN 50 //diona names can get loooooooong diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index fea2756f664..c61d8319d39 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -28,11 +28,12 @@ GLOBAL_PROTECT(log_end) /proc/log_admin(text) GLOB.admin_log.Add(text) - if(config.log_admin) + if(GLOB.configuration.logging.admin_logging) rustg_log_write(GLOB.world_game_log, "ADMIN: [text][GLOB.log_end]") /proc/log_debug(text) - if(config.log_debug) + // This has presence checks as this may be called before GLOB has loaded + if(GLOB?.configuration?.logging.debug_logging) rustg_log_write(GLOB.world_game_log, "DEBUG: [text][GLOB.log_end]") for(var/client/C in GLOB.admins) @@ -40,80 +41,80 @@ GLOBAL_PROTECT(log_end) to_chat(C, "DEBUG: [text]") /proc/log_game(text) - if(config.log_game) + if(GLOB.configuration.logging.game_logging) rustg_log_write(GLOB.world_game_log, "GAME: [text][GLOB.log_end]") /proc/log_vote(text) - if(config.log_vote) + if(GLOB.configuration.logging.vote_logging) rustg_log_write(GLOB.world_game_log, "VOTE: [text][GLOB.log_end]") /proc/log_access_in(client/new_client) - if(config.log_access) + if(GLOB.configuration.logging.access_logging) var/message = "[key_name(new_client)] - IP:[new_client.address] - CID:[new_client.computer_id] - BYOND v[new_client.byond_version]" rustg_log_write(GLOB.world_game_log, "ACCESS IN: [message][GLOB.log_end]") /proc/log_access_out(mob/last_mob) - if(config.log_access) + if(GLOB.configuration.logging.access_logging) var/message = "[key_name(last_mob)] - IP:[last_mob.lastKnownIP] - CID:[last_mob.computer_id] - BYOND Logged Out" rustg_log_write(GLOB.world_game_log, "ACCESS OUT: [message][GLOB.log_end]") /proc/log_say(text, mob/speaker) - if(config.log_say) + if(GLOB.configuration.logging.say_logging) rustg_log_write(GLOB.world_game_log, "SAY: [speaker.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_whisper(text, mob/speaker) - if(config.log_whisper) + if(GLOB.configuration.logging.whisper_logging) rustg_log_write(GLOB.world_game_log, "WHISPER: [speaker.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_ooc(text, client/user) - if(config.log_ooc) + if(GLOB.configuration.logging.ooc_logging) rustg_log_write(GLOB.world_game_log, "OOC: [user.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_aooc(text, client/user) - if(config.log_ooc) + if(GLOB.configuration.logging.ooc_logging) rustg_log_write(GLOB.world_game_log, "AOOC: [user.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_looc(text, client/user) - if(config.log_ooc) + if(GLOB.configuration.logging.ooc_logging) rustg_log_write(GLOB.world_game_log, "LOOC: [user.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_emote(text, mob/speaker) - if(config.log_emote) + if(GLOB.configuration.logging.emote_logging) rustg_log_write(GLOB.world_game_log, "EMOTE: [speaker.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_attack(attacker, defender, message) - if(config.log_attack) + if(GLOB.configuration.logging.attack_logging) rustg_log_write(GLOB.world_game_log, "ATTACK: [attacker] against [defender]: [message][GLOB.log_end]") //Seperate attack logs? Why? /proc/log_adminsay(text, mob/speaker) - if(config.log_adminchat) + if(GLOB.configuration.logging.adminchat_logging) rustg_log_write(GLOB.world_game_log, "ADMINSAY: [speaker.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_qdel(text) rustg_log_write(GLOB.world_qdel_log, "QDEL: [text][GLOB.log_end]") /proc/log_mentorsay(text, mob/speaker) - if(config.log_adminchat) + if(GLOB.configuration.logging.adminchat_logging) rustg_log_write(GLOB.world_game_log, "MENTORSAY: [speaker.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_ghostsay(text, mob/speaker) - if(config.log_say) + if(GLOB.configuration.logging.say_logging) rustg_log_write(GLOB.world_game_log, "DEADCHAT: [speaker.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_ghostemote(text, mob/speaker) - if(config.log_emote) + if(GLOB.configuration.logging.emote_logging) rustg_log_write(GLOB.world_game_log, "DEADEMOTE: [speaker.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_adminwarn(text) - if(config.log_adminwarn) + if(GLOB.configuration.logging.admin_warning_logging) rustg_log_write(GLOB.world_game_log, "ADMINWARN: [html_decode(text)][GLOB.log_end]") /proc/log_pda(text, mob/speaker) - if(config.log_pda) + if(GLOB.configuration.logging.pda_logging) rustg_log_write(GLOB.world_game_log, "PDA: [speaker.simple_info_line()]: [html_decode(text)][GLOB.log_end]") /proc/log_chat(text, mob/speaker) - if(config.log_pda) + if(GLOB.configuration.logging.pda_logging) rustg_log_write(GLOB.world_game_log, "CHAT: [speaker.simple_info_line()] [html_decode(text)][GLOB.log_end]") /proc/log_misc(text) @@ -121,7 +122,8 @@ GLOBAL_PROTECT(log_end) /proc/log_world(text) SEND_TEXT(world.log, text) - if(config && config.log_world_output) + // This has to be presence checked as log_world() is used before world/New(). + if(GLOB?.configuration?.logging.world_logging) rustg_log_write(GLOB.world_game_log, "WORLD: [html_decode(text)][GLOB.log_end]") /proc/log_runtime_txt(text) // different from /tg/'s log_runtime because our error handler has a log_runtime proc already that does other stuff diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index b8b47aa8656..14add1b8308 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -15,10 +15,6 @@ GLOBAL_VAR(church_name) return name -// TODO: Remove this. Its always gonna be NAS Trurl -/proc/command_name() - return "NAS Trurl" - GLOBAL_VAR(religion_name) /proc/religion_name() if(GLOB.religion_name) @@ -139,7 +135,7 @@ GLOBAL_VAR(syndicate_code_response) //Code response for traitors. var/safety[] = list(1,2,3)//Tells the proc which options to remove later on. var/nouns[] = list("love","hate","anger","peace","pride","sympathy","bravery","loyalty","honesty","integrity","compassion","charity","success","courage","deceit","skill","beauty","brilliance","pain","misery","beliefs","dreams","justice","truth","faith","liberty","knowledge","thought","information","culture","trust","dedication","progress","education","hospitality","leisure","trouble","friendships", "relaxation") var/drinks[] = list("vodka and tonic","gin fizz","bahama mama","manhattan","black Russian","whiskey soda","long island tea","margarita","Irish coffee"," manly dwarf","Irish cream","doctor's delight","Beepksy Smash","tequila sunrise","brave bull","gargle blaster","bloody mary","whiskey cola","white Russian","vodka martini","martini","Cuba libre","kahlua","vodka","wine","moonshine") - var/locations[] = GLOB.teleportlocs.len ? GLOB.teleportlocs : drinks//if null, defaults to drinks instead. + var/locations[] = length(SSmapping.teleportlocs) ? SSmapping.teleportlocs : drinks//if null, defaults to drinks instead. var/names[] = list() for(var/datum/data/record/t in GLOB.data_core.general)//Picks from crew manifest. diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 1d9b6550b84..fa357006723 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -8,10 +8,6 @@ * Misc */ - -/proc/format_table_name(table as text) - return sqlfdbktableprefix + table - /* * Text sanitization */ @@ -720,9 +716,9 @@ /proc/client2rankcolour(client/C) // First check if end user is an admin if(C.holder) - if(C.holder.rank in GLOB.rank_colour_map) + if(C.holder.rank in GLOB.configuration.admin.rank_colour_map) // Return their rank colour if they are in here - return GLOB.rank_colour_map[C.holder.rank] + return GLOB.configuration.admin.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) diff --git a/code/__HELPERS/traits.dm b/code/__HELPERS/traits.dm index a6d288d6af0..5534c19cdd1 100644 --- a/code/__HELPERS/traits.dm +++ b/code/__HELPERS/traits.dm @@ -2,89 +2,113 @@ #define SIGNAL_REMOVETRAIT(trait_ref) "removetrait [trait_ref]" // trait accessor defines + +/** + * Adds a status trait to the target datum. + * + * Arguments: (All Required) + * * target - The datum to add the trait to. + * * trait - The trait which is being added. + * * source - The source of the trait which is being added. + */ #define ADD_TRAIT(target, trait, source) \ do { \ - var/list/_L; \ - if (!target.status_traits) { \ - target.status_traits = list(); \ - _L = target.status_traits; \ - _L[trait] = list(source); \ - SEND_SIGNAL(target, SIGNAL_ADDTRAIT(trait), trait); \ + LAZYINITLIST(target.status_traits); \ +\ + if(!target.status_traits[trait]) { \ + target.status_traits[trait] = list(source); \ } else { \ - _L = target.status_traits; \ - if (_L[trait]) { \ - _L[trait] |= list(source); \ - } else { \ - _L[trait] = list(source); \ - SEND_SIGNAL(target, SIGNAL_ADDTRAIT(trait), trait); \ + target.status_traits[trait] |= list(source); \ + } \ +\ + SEND_SIGNAL(target, SIGNAL_ADDTRAIT(trait), trait); \ + } while (0) + +/** + * Removes a status trait from a target datum. + * + * `ROUNDSTART_TRAIT` traits can't be removed without being specified in `sources`. + * Arguments: + * * target - The datum to remove the trait from. + * * trait - The trait which is being removed. + * * sources - If specified, only remove the trait if it is from this source. (Lists Supported) + */ +#define REMOVE_TRAIT(target, trait, sources) \ + do { \ + if(target.status_traits && target.status_traits[trait]) { \ + var/list/SOURCES = sources; \ + if(sources && !islist(sources)) { \ + SOURCES = list(sources); \ + } \ +\ + for(var/TRAIT_SOURCE in target.status_traits[trait]) { \ + if((!SOURCES && (TRAIT_SOURCE != ROUNDSTART_TRAIT)) || (TRAIT_SOURCE in SOURCES)) { \ + if(length(target.status_traits[trait]) == 1) { \ + SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(trait), trait); \ + } \ + LAZYREMOVEASSOC(target.status_traits, trait, TRAIT_SOURCE); \ + } \ } \ } \ } while (0) -#define REMOVE_TRAIT(target, trait, sources) \ - do { \ - var/list/_L = target.status_traits; \ - var/list/_S; \ - if (sources && !islist(sources)) { \ - _S = list(sources); \ - } else { \ - _S = sources\ - }; \ - if (_L && _L[trait]) { \ - for (var/_T in _L[trait]) { \ - if ((!_S && (_T != ROUNDSTART_TRAIT)) || (_T in _S)) { \ - _L[trait] -= _T \ - } \ - };\ - if (!length(_L[trait])) { \ - _L -= trait; \ - SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(trait), trait); \ - }; \ - if (!length(_L)) { \ - target.status_traits = null \ - }; \ - } \ - } while (0) + +/** + * Removes all status traits from a target datum which were NOT added by `sources`. + * + * Arguments: + * * target - The datum to remove the traits from. + * * sources - The trait source which is being searched for. + */ #define REMOVE_TRAITS_NOT_IN(target, sources) \ do { \ - var/list/_L = target.status_traits; \ - var/list/_S = sources; \ - if (_L) { \ - for (var/_T in _L) { \ - _L[_T] &= _S;\ - if (!length(_L[_T])) { \ - _L -= _T; \ - SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(_T), _T); \ - }; \ - };\ - if (!length(_L)) { \ - target.status_traits = null\ - };\ - }\ + if(target.status_traits) { \ + var/list/SOURCES = sources; \ + if(!islist(sources)) { \ + SOURCES = list(sources); \ + } \ +\ + for(var/TRAIT in target.status_traits) { \ + target.status_traits[TRAIT] &= SOURCES; \ + if(!length(target.status_traits[TRAIT])) { \ + target.status_traits -= TRAIT; \ + SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(TRAIT), TRAIT); \ + } \ + } \ + if(!length(target.status_traits)) { \ + target.status_traits = null; \ + } \ + } \ } while (0) +/** + * Removes all status traits from a target datum which were added by `sources`. + * + * Arguments: + * * target - The datum to remove the traits from. + * * sources - The trait source which is being searched for. + */ #define REMOVE_TRAITS_IN(target, sources) \ do { \ - var/list/_L = target.status_traits; \ - var/list/_S = sources; \ - if (sources && !islist(sources)) { \ - _S = list(sources); \ - } else { \ - _S = sources\ - }; \ - if (_L) { \ - for (var/_T in _L) { \ - _L[_T] -= _S;\ - if (!length(_L[_T])) { \ - _L -= _T; \ - SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(_T)); \ - }; \ - };\ - if (!length(_L)) { \ - target.status_traits = null\ - };\ - }\ + if(target.status_traits) { \ + var/list/SOURCES = sources; \ + if(!islist(sources)) { \ + SOURCES = list(sources); \ + } \ +\ + for(var/TRAIT in target.status_traits) { \ + target.status_traits[TRAIT] -= SOURCES; \ + if(!length(target.status_traits[TRAIT])) { \ + target.status_traits -= TRAIT; \ + SEND_SIGNAL(target, SIGNAL_REMOVETRAIT(TRAIT)); \ + } \ + } \ + if(!length(target.status_traits)) { \ + target.status_traits = null; \ + } \ + } \ } while (0) + #define HAS_TRAIT(target, trait) (target.status_traits ? (target.status_traits[trait] ? TRUE : FALSE) : FALSE) #define HAS_TRAIT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (source in target.status_traits[trait]) : FALSE) : FALSE) #define HAS_TRAIT_FROM_ONLY(target, trait, source) (\ @@ -185,4 +209,4 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" //traits that should be properly converted to genetic mutations one day -#define TRAIT_LASEREYES "laser_eyes" +#define TRAIT_LASEREYES "laser_eyes" diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 8478d8c0c91..4bbc7d03d07 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -539,10 +539,6 @@ Returns 1 if the chain up to the area contains the given typepath 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(low, middle, high) - return max(min(middle, high), low) - //returns random gauss number /proc/GaussRand(sigma) var/x,y,rsq @@ -2082,7 +2078,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) /proc/log_connection(ckey, ip, cid, connection_type) ASSERT(connection_type in list(CONNECTION_TYPE_ESTABLISHED, CONNECTION_TYPE_DROPPED_IPINTEL, CONNECTION_TYPE_DROPPED_BANNED, CONNECTION_TYPE_DROPPED_INVALID)) - var/datum/db_query/query_accesslog = SSdbcore.NewQuery("INSERT INTO `[format_table_name("connection_log")]`(`datetime`, `ckey`, `ip`, `computerid`, `result`) VALUES(Now(), :ckey, :ip, :cid, :result)", list( + var/datum/db_query/query_accesslog = SSdbcore.NewQuery("INSERT INTO connection_log (`datetime`, `ckey`, `ip`, `computerid`, `result`) VALUES(Now(), :ckey, :ip, :cid, :result)", list( "ckey" = ckey, "ip" = "[ip ? ip : ""]", // This is important. NULL is not the same as "", and if you directly open the `.dmb` file, you get a NULL IP. "cid" = cid, diff --git a/code/_compile_options.dm b/code/_compile_options.dm index f409af92aaa..0e73437dd93 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -21,13 +21,6 @@ #define IS_MODE_COMPILED(MODE) (ispath(text2path("/datum/game_mode/"+(MODE)))) -//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam -#define MAX_MESSAGE_LEN 1024 -#define MAX_PAPER_MESSAGE_LEN 3072 -#define MAX_PAPER_FIELDS 50 -#define MAX_BOOK_MESSAGE_LEN 9216 -#define MAX_NAME_LEN 50 //diona names can get loooooooong - //Update this whenever you need to take advantage of more recent byond features #define MIN_COMPILER_VERSION 513 #define MIN_COMPILER_BUILD 1514 diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm index ea2cf1290fd..3b7d061ace3 100644 --- a/code/_globalvars/configuration.dm +++ b/code/_globalvars/configuration.dm @@ -1,44 +1,30 @@ -GLOBAL_REAL(config, /datum/configuration) - -GLOBAL_VAR(host) +/// Join MOTD for the server GLOBAL_VAR(join_motd) +GLOBAL_PROTECT(join_motd) // Takes up a lot of space in VV +/// Join TOS for the server GLOBAL_VAR(join_tos) -GLOBAL_VAR_INIT(game_version, "ParaCode") +GLOBAL_PROTECT(join_tos) // Takes up a lot of space. Also dont touch this shit + +/// The current game year GLOBAL_VAR_INIT(game_year, (text2num(time2text(world.realtime, "YYYY")) + 544)) -GLOBAL_VAR_INIT(aliens_allowed, 1) -GLOBAL_VAR_INIT(traitor_scaling, 1) -//GLOBAL_VAR_INIT(goonsay_allowed, 0) -GLOBAL_VAR_INIT(dna_ident, 1) -GLOBAL_VAR_INIT(abandon_allowed, 0) -GLOBAL_VAR_INIT(enter_allowed, 1) -GLOBAL_VAR_INIT(guests_allowed, 1) -GLOBAL_VAR_INIT(shuttle_frozen, 0) -GLOBAL_VAR_INIT(shuttle_left, 0) -GLOBAL_VAR_INIT(tinted_weldhelh, 1) -GLOBAL_VAR_INIT(mouse_respawn_time, 5) //Amount of time that must pass between a player dying as a mouse and repawning as a mouse. In minutes. +/// Allow new players to enter the game? +GLOBAL_VAR_INIT(enter_allowed, TRUE) -// Debug is used exactly once (in living.dm) but is commented out in a lot of places. It is not set anywhere and only checked. -// Debug2 is used in conjunction with a lot of admin verbs and therefore is actually legit. -GLOBAL_VAR_INIT(debug, 0) // global debug switch -GLOBAL_VAR_INIT(debug2, 1) // enables detailed job debug file in secrets +/// Is OOC currently enabled? +GLOBAL_VAR_INIT(ooc_enabled, TRUE) -//This was a define, but I changed it to a variable so it can be changed in-game.(kept the all-caps definition because... code...) -Errorage -GLOBAL_VAR_INIT(max_ex_devastation_range, 3) -GLOBAL_VAR_INIT(max_ex_heavy_range, 7) -GLOBAL_VAR_INIT(max_ex_light_range, 14) -GLOBAL_VAR_INIT(max_ex_flash_range, 14) -GLOBAL_VAR_INIT(max_ex_flame_range, 14) +/// Is LOOC currently enabled? +GLOBAL_VAR_INIT(looc_enabled, TRUE) -//Random event stuff, apparently used -GLOBAL_VAR_INIT(eventchance, 10) //% per 5 mins -GLOBAL_VAR_INIT(event, 0) -GLOBAL_VAR_INIT(hadevent, 0) -GLOBAL_VAR_INIT(blobevent, 0) +/// Is OOC currently enabled for dead people? +GLOBAL_VAR_INIT(dooc_enabled, TRUE) -// These vars are protected because changing them could pose a security risk, though they are fine to be read since they are just system paths -GLOBAL_VAR(shutdown_shell_command) // Command to run if shutting down (SHUTDOWN_ON_REBOOT) instead of rebooting -GLOBAL_PROTECT(shutdown_shell_command) +/// Is deadchat currently enabled? +GLOBAL_VAR_INIT(dsay_enabled, TRUE) -GLOBAL_VAR(python_path) //Path to the python executable. Defaults to "python" on windows and "/usr/bin/env python2" on unix -GLOBAL_PROTECT(python_path) +/// Amount of time (in minutes) that must pass between a player dying as a mouse and repawning as a mouse +GLOBAL_VAR_INIT(mouse_respawn_time, 5) + +/// Enable debugging of things such as job starts and other things +GLOBAL_VAR_INIT(debug2, TRUE) diff --git a/code/_globalvars/lists/misc.dm b/code/_globalvars/lists/misc.dm index 2873a626590..5464ed64bb4 100644 --- a/code/_globalvars/lists/misc.dm +++ b/code/_globalvars/lists/misc.dm @@ -55,7 +55,4 @@ 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/mapping.dm b/code/_globalvars/mapping.dm index caf4a2a58bb..2e447d0484a 100644 --- a/code/_globalvars/mapping.dm +++ b/code/_globalvars/mapping.dm @@ -54,6 +54,3 @@ GLOBAL_LIST_EMPTY(lava_ruins_templates) GLOBAL_LIST_EMPTY(shelter_templates) GLOBAL_LIST_EMPTY(shuttle_templates) -// Teleport locations -GLOBAL_LIST_EMPTY(teleportlocs) -GLOBAL_LIST_EMPTY(ghostteleportlocs) diff --git a/code/_globalvars/sensitive.dm b/code/_globalvars/sensitive.dm deleted file mode 100644 index 4c04b2d480b..00000000000 --- a/code/_globalvars/sensitive.dm +++ /dev/null @@ -1,12 +0,0 @@ -// All global vars in this file require a different handler as we dont want their data to be exposed, not even to admins with permission to view globals -// They write as native BYOND globals, which means they cant be edited at all, and also use a format -// Please only throw absolutely crucial do-not-view shit in here please. -aa07 - -// MySQL configuration -GLOBAL_REAL_VAR(sqladdress) = "localhost" -GLOBAL_REAL_VAR(sqlport) = "3306" -GLOBAL_REAL_VAR(sqlfdbkdb) = "test" -GLOBAL_REAL_VAR(sqlfdbklogin) = "root" -GLOBAL_REAL_VAR(sqlfdbkpass) = "" -GLOBAL_REAL_VAR(sqlfdbktableprefix) = "erro_" -GLOBAL_REAL_VAR(sql_version) = 0 diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 180e5a55e64..2eb3d0b36ed 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -308,6 +308,11 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." var/mob/living/L = usr return L.resist() +//Constructs +/obj/screen/alert/holy_fire + name = "Holy Fire" + desc = "Your body is crumbling from the holy energies. Get out." + icon_state = "fire" //ALIENS diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index 9d00f216eac..f6c8880a485 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -99,11 +99,6 @@ /obj/screen/fullscreen/impaired icon_state = "impairedoverlay" -/obj/screen/fullscreen/blurry - icon = 'icons/mob/screen_gen.dmi' - screen_loc = "WEST,SOUTH to EAST,NORTH" - icon_state = "blurry" - /obj/screen/fullscreen/flash icon = 'icons/mob/screen_gen.dmi' screen_loc = "WEST,SOUTH to EAST,NORTH" diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 0cfb6985b8e..9779e306939 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -37,6 +37,8 @@ var/action_buttons_hidden = FALSE var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object + ///Assoc list of controller groups, associated with key string group name with value of the plane master controller ref + var/list/atom/movable/plane_master_controller/plane_master_controllers = list() /mob/proc/create_mob_hud() if(client && !hud_used) @@ -53,6 +55,10 @@ plane_masters["[instance.plane]"] = instance instance.backdrop(mymob) + for(var/mytype in subtypesof(/atom/movable/plane_master_controller)) + var/atom/movable/plane_master_controller/controller_instance = new mytype(src) + plane_master_controllers[controller_instance.name] = controller_instance + /datum/hud/Destroy() if(mymob.hud_used == src) mymob.hud_used = null @@ -89,6 +95,7 @@ nightvisionicon = null QDEL_LIST_ASSOC_VAL(plane_masters) + QDEL_LIST_ASSOC_VAL(plane_master_controllers) mymob = null return ..() diff --git a/code/_onclick/hud/plane_master_controller.dm b/code/_onclick/hud/plane_master_controller.dm new file mode 100644 index 00000000000..b525dfc0ef3 --- /dev/null +++ b/code/_onclick/hud/plane_master_controller.dm @@ -0,0 +1,77 @@ +///Atom that manages and controls multiple planes. It's an atom so we can hook into add_filter etc. Multiple controllers can control one plane. +/atom/movable/plane_master_controller + ///List of planes in this controllers control. Initially this is a normal list, but becomes an assoc list of plane numbers as strings | plane instance + var/list/controlled_planes = list() + ///hud that owns this controller + var/datum/hud/owner_hud + +///Ensures that all the planes are correctly in the controlled_planes list. +/atom/movable/plane_master_controller/New(hud) + . = ..() + owner_hud = hud + var/assoc_controlled_planes = list() + for(var/i in controlled_planes) + var/obj/screen/plane_master/instance = owner_hud.plane_masters["[i]"] + assoc_controlled_planes["[i]"] = instance + controlled_planes = assoc_controlled_planes + +///Full override so we can just use filterrific +/atom/movable/plane_master_controller/add_filter(name, priority, list/params) + . = ..() + for(var/i in controlled_planes) + var/obj/screen/plane_master/pm_iterator = controlled_planes[i] + pm_iterator.add_filter(name, priority, params) + +///Full override so we can just use filterrific +/atom/movable/plane_master_controller/remove_filter(name_or_names) + . = ..() + for(var/i in controlled_planes) + var/obj/screen/plane_master/pm_iterator = controlled_planes[i] + pm_iterator.remove_filter(name_or_names) + +/atom/movable/plane_master_controller/update_filters() + . = ..() + for(var/i in controlled_planes) + var/obj/screen/plane_master/pm_iterator = controlled_planes[i] + pm_iterator.update_filters() + +///Gets all filters for this controllers plane masters +/atom/movable/plane_master_controller/proc/get_filters(name) + . = list() + for(var/i in controlled_planes) + var/obj/screen/plane_master/pm_iterator = controlled_planes[i] + . += pm_iterator.get_filter(name) + +///Transitions all filters owned by this plane master controller +/atom/movable/plane_master_controller/transition_filter(name, time, list/new_params, easing, loop) + . = ..() + for(var/i in controlled_planes) + var/obj/screen/plane_master/pm_iterator = controlled_planes[i] + pm_iterator.transition_filter(name, time, new_params, easing, loop) + +///Full override so we can just use filterrific +/atom/movable/plane_master_controller/add_atom_colour(coloration, colour_priority) + . = ..() + for(var/i in controlled_planes) + var/obj/screen/plane_master/pm_iterator = controlled_planes[i] + pm_iterator.add_atom_colour(coloration, colour_priority) + + +///Removes an instance of colour_type from the atom's atom_colours list +/atom/movable/plane_master_controller/remove_atom_colour(colour_priority, coloration) + . = ..() + for(var/i in controlled_planes) + var/obj/screen/plane_master/pm_iterator = controlled_planes[i] + pm_iterator.remove_atom_colour(colour_priority, coloration) + + +///Resets the atom's color to null, and then sets it to the highest priority colour available +/atom/movable/plane_master_controller/update_atom_colour() + for(var/i in controlled_planes) + var/obj/screen/plane_master/pm_iterator = controlled_planes[i] + pm_iterator.update_atom_colour() + + +/atom/movable/plane_master_controller/game + name = PLANE_MASTERS_GAME + controlled_planes = list(FLOOR_PLANE, GAME_PLANE, LIGHTING_PLANE) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm deleted file mode 100644 index 2c3d3202a31..00000000000 --- a/code/controllers/configuration.dm +++ /dev/null @@ -1,968 +0,0 @@ -/datum/configuration - var/server_name = null // server name (for world name / status) - var/server_tag_line = null // server tagline (for showing on hub entry) - var/server_extra_features = null // server-specific extra features (for hub entry) - var/server_suffix = 0 // generate numeric suffix based on server port - - var/minimum_client_build = 1421 // Build 1421 due to the middle mouse button exploit - - var/nudge_script_path = "nudge.py" // where the nudge.py script is located - - var/log_ooc = 0 // log OOC channel - var/log_access = 0 // log login/logout - var/log_say = 0 // log client say - var/log_admin = 0 // log admin actions - var/log_debug = 1 // log debug output - var/log_game = 0 // log game events - var/log_vote = 0 // log voting - var/log_whisper = 0 // log client whisper - var/log_emote = 0 // log emotes - var/log_attack = 0 // log attack messages - var/log_adminchat = 0 // log admin chat messages - var/log_adminwarn = 0 // log warnings admins get about bomb construction and such - var/log_pda = 0 // log pda messages - var/log_world_output = 0 // log world.log << messages - var/log_runtimes = 0 // logs world.log to a file - var/log_hrefs = 0 // logs all links clicked in-game. Could be used for debugging and tracking down exploits - var/sql_enabled = 0 // for sql switching - var/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour - var/pregame_timestart = 240 // Time it takes for the server to start the game - var/allow_vote_restart = 0 // allow votes to restart - var/allow_vote_mode = 0 // allow votes to change mode - var/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default) - var/vote_period = 600 // length of voting period (deciseconds, default 1 minute) - var/vote_autotransfer_initial = 72000 // Length of time before the first autotransfer vote is called - var/vote_autotransfer_interval = 18000 // length of time before next sequential autotransfer vote - var/vote_no_default = 0 // vote does not default to nochange/norestart (tbi) - var/vote_no_dead = 0 // dead people can't vote (tbi) -// var/enable_authentication = 0 // goon authentication - var/del_new_on_log = 1 // qdel's new players if they log before they spawn in - var/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard - var/traitor_scaling = 0 //if amount of traitors scales based on amount of players - var/protect_roles_from_antagonist = 0// If security and such can be tratior/cult/other - var/continuous_rounds = 0 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke. - var/allow_Metadata = 0 // Metadata is supported. - var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1. - var/Ticklag = 0.5 - var/socket_talk = 0 // use socket_talk to communicate with other processes - var/list/resource_urls = null - var/antag_hud_allowed = 0 // Ghosts can turn on Antagovision to see a HUD of who is the bad guys this round. - var/antag_hud_restricted = 0 // Ghosts that turn on Antagovision cannot rejoin the round. - var/list/mode_names = list() - var/list/modes = list() // allowed modes - var/list/votable_modes = list() // votable modes - var/list/probabilities = list() // relative probability of each mode - var/humans_need_surnames = 0 - var/allow_random_events = 0 // enables random events mid-round when set to 1 - var/allow_ai = 1 // allow ai job - var/respawn = 0 - var/guest_jobban = 1 - var/panic_bunker_threshold = 150 // above this player count threshold, never-before-seen players are blocked from connecting - var/usewhitelist = 0 - var/mods_are_mentors = 0 - var/load_jobs_from_txt = 0 - var/automute_on = 0 //enables automuting/spam prevention - var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access. - var/round_abandon_penalty_period = 30 MINUTES // Time from round start during which ghosting out is penalized - var/medal_hub_address = null - var/medal_hub_password = null - - var/reactionary_explosions = 0 //If we use reactionary explosions, explosions that react to walls and doors - - var/assistantlimit = 0 //enables assistant limiting - var/assistantratio = 2 //how many assistants to security members - - // The AFK subsystem will not be activated if any of the below config values are equal or less than 0 - var/warn_afk_minimum = 0 // How long till you get a warning while being AFK - var/auto_cryo_afk = 0 // How long till you get put into cryo when you're AFK - var/auto_despawn_afk = 0 // How long till you actually despawn in cryo when you're AFK (Not ssd so not automatic) - - var/auto_cryo_ssd_mins = 0 - var/ssd_warning = 0 - - var/list_afk_minimum = 5 // How long people have to be AFK before it's listed on the "List AFK players" verb - - var/traitor_objectives_amount = 2 - var/shadowling_max_age = 0 - - var/max_maint_drones = 5 //This many drones can spawn, - var/allow_drone_spawn = 1 //assuming the admin allow them to. - var/drone_build_time = 1200 //A drone will become available every X ticks since last drone spawn. Default is 2 minutes. - - var/usealienwhitelist = 0 - var/limitalienplayers = 0 - var/alien_to_human_ratio = 0.5 - - var/server - var/banappeals - var/wikiurl = "http://example.org" - var/forumurl = "http://example.org" - var/rulesurl = "http://example.org" - var/githuburl = "http://example.org" - var/donationsurl = "http://example.org" - var/repositoryurl = "http://example.org" - var/discordurl = "http://example.org" - var/discordforumurl = "http://example.org" - - var/overflow_server_url - var/forbid_singulo_possession = 0 - - var/check_randomizer = 0 - - //game_options.txt configs - - var/bones_can_break = 1 - - var/revival_pod_plants = 1 - var/revival_cloning = 1 - var/revival_brain_life = -1 - - var/auto_toggle_ooc_during_round = 0 - - var/shuttle_refuel_delay = 12000 - - //Used for modifying movement speed for mobs. - //Unversal modifiers - var/run_speed = 0 - var/walk_speed = 0 - - //Mob specific modifiers. NOTE: These will affect different mob types in different ways - var/human_delay = 0 - var/robot_delay = 0 - var/monkey_delay = 0 - var/alien_delay = 0 - var/slime_delay = 0 - var/animal_delay = 0 - - //IP Intel vars - var/ipintel_email - var/ipintel_rating_bad = 1 - var/ipintel_save_good = 12 - var/ipintel_save_bad = 1 - var/ipintel_domain = "check.getipintel.net" - var/ipintel_maxplaytime = 0 - var/ipintel_whitelist = 0 - var/ipintel_detailsurl = "https://iphub.info/?ip=" - - var/forum_link_url - var/forum_playerinfo_url - - var/admin_legacy_system = 0 //Defines whether the server uses the legacy admin system with admins.txt or the SQL system. Config option in config.txt - var/ban_legacy_system = 0 //Defines whether the server uses the legacy banning system with the files in /data or the SQL system. Config option in config.txt - var/use_age_restriction_for_jobs = 0 //Do jobs use account age restrictions? --requires database - var/use_age_restriction_for_antags = 0 //Do antags use account age restrictions? --requires database - - var/use_exp_tracking = 0 - var/use_exp_restrictions = 0 - var/use_exp_restrictions_admin_bypass = 0 - - var/simultaneous_pm_warning_timeout = 100 - - var/assistant_maint = 0 //Do assistants get maint access? - var/gateway_delay = 6000 - var/ghost_interaction = 0 - - var/comms_password = "" - - var/default_laws = 0 //Controls what laws the AI spawns with. - - var/const/minutes_to_ticks = 60 * 10 - // Event settings - var/expected_round_length = 60 * 2 * minutes_to_ticks // 2 hours - // If the first delay has a custom start time - // No custom time, no custom time, between 80 to 100 minutes respectively. - var/list/event_first_run = list(EVENT_LEVEL_MUNDANE = null, EVENT_LEVEL_MODERATE = null, EVENT_LEVEL_MAJOR = list("lower" = 48000, "upper" = 60000)) - // The lowest delay until next event - // 10, 30, 50 minutes respectively - var/list/event_delay_lower = list(EVENT_LEVEL_MUNDANE = 6000, EVENT_LEVEL_MODERATE = 18000, EVENT_LEVEL_MAJOR = 30000) - // The upper delay until next event - // 15, 45, 70 minutes respectively - var/list/event_delay_upper = list(EVENT_LEVEL_MUNDANE = 9000, EVENT_LEVEL_MODERATE = 27000, EVENT_LEVEL_MAJOR = 42000) - - var/starlight = 0 // Whether space turfs have ambient light or not - var/allow_holidays = 0 - var/player_overflow_cap = 0 //number of players before the server starts rerouting - var/list/overflow_whitelist = list() //whitelist for overflow - - var/disable_away_missions = 0 // disable away missions - var/disable_space_ruins = 0 //disable space ruins - - var/extra_space_ruin_levels_min = 4 - var/extra_space_ruin_levels_max = 8 - - var/ooc_allowed = 1 - var/looc_allowed = 1 - var/dooc_allowed = 1 - var/dsay_allowed = 1 - - var/disable_lobby_music = 0 // Disables the lobby music - var/disable_cid_warn_popup = 0 //disables the annoying "You have already logged in this round, disconnect or be banned" popup, because it annoys the shit out of me when testing. - - var/max_loadout_points = 5 // How many points can be spent on extra items in character setup - - var/disable_ooc_emoji = 0 // prevents people from using emoji in OOC - - var/shutdown_on_reboot = 0 // Whether to shut down the world instead of rebooting it - - var/disable_karma = 0 // Disable all karma functions and unlock karma jobs by default - - // StonedMC - var/tick_limit_mc_init = TICK_LIMIT_MC_INIT_DEFAULT //SSinitialization throttling - - // Highpop tickrates - var/base_mc_tick_rate = 1 - var/high_pop_mc_tick_rate = 1.1 - - var/high_pop_mc_mode_amount = 65 - var/disable_high_pop_mc_mode_amount = 60 - - // Nightshift - var/randomize_shift_time = FALSE - var/enable_night_shifts = FALSE - - // Developer - var/developer_express_start = 0 - - // Automatic localhost admin disable - var/disable_localhost_admin = 0 - - //Start now warning - var/start_now_confirmation = 0 - - // Lavaland - var/lavaland_budget = 60 - - //cube monkey limit - var/cubemonkeycap = 20 - - // Makes gamemodes respect player limits - var/enable_gamemode_player_limit = 0 - - /// BYOND account age limit for notifcations of new accounts (Any accounts older than this value will not send notifications on first join) - var/byond_account_age_threshold = 7 - - /// Are discord webhooks enabled? - var/discord_webhooks_enabled = FALSE - - /// Role ID to be pinged for administrative events - var/discord_admin_role_id = null // Intentional null usage - - /// Webhook URLs for the main public webhook - var/list/discord_main_webhook_urls = list() - - /// Webhook URLs for the admin webhook - var/list/discord_admin_webhook_urls = list() - - /// Webhook URLs for the mentor webhook - var/list/discord_mentor_webhook_urls = list() - - /// Do we want to forward all adminhelps to the discord or just ahelps when admins are offline. - /// (This does not mean all ahelps are pinged, only ahelps sent when staff are offline get the ping, regardless of this setting) - var/discord_forward_all_ahelps = FALSE - - /// URL for the CentCom Ban DB API - var/centcom_ban_db_url = null - - /// Timeout (seconds) for async SQL queries - var/async_sql_query_timeout = 10 SECONDS - - /// Limit of how many SQL threads can run at once - var/rust_sql_thread_limit = 50 - - /// Max amount of CIDs that one ckey can have attached to them before they trip a warning - var/max_client_cid_history = 3 - - /// Enable auto profiler of rounds - var/auto_profile = FALSE - - // Enable map voting - var/map_voting_enabled = FALSE - - // 2FA auth host - var/_2fa_auth_host = null - -/datum/configuration/New() - for(var/T in subtypesof(/datum/game_mode)) - var/datum/game_mode/M = T - - if(initial(M.config_tag)) - if(!(initial(M.config_tag) in modes)) // ensure each mode is added only once - src.modes += initial(M.config_tag) - src.mode_names[initial(M.config_tag)] = initial(M.name) - src.probabilities[initial(M.config_tag)] = initial(M.probability) - if(initial(M.votable)) - src.votable_modes += initial(M.config_tag) - src.votable_modes += "secret" - -/datum/configuration/proc/load(filename, type = "config") //the type can also be game_options, in which case it uses a different switch. not making it separate to not copypaste code - Urist - if(IsAdminAdvancedProcCall()) - to_chat(usr, "Config reload blocked: Advanced ProcCall detected.") - message_admins("[key_name(usr)] attempted to reload configuration via advanced proc-call") - log_admin("[key_name(usr)] attempted to reload configuration via advanced proc-call") - return - var/list/Lines = file2list(filename) - - for(var/t in Lines) - if(!t) continue - - t = trim(t) - if(length(t) == 0) - continue - else if(copytext(t, 1, 2) == "#") - continue - - var/pos = findtext(t, " ") - var/name = null - var/value = null - - if(pos) - name = lowertext(copytext(t, 1, pos)) - value = copytext(t, pos + 1) - else - name = lowertext(t) - - if(!name) - continue - - if(type == "config") - switch(name) - if("resource_urls") - config.resource_urls = splittext(value, " ") - - if("admin_legacy_system") - config.admin_legacy_system = 1 - - if("ban_legacy_system") - config.ban_legacy_system = 1 - - if("use_age_restriction_for_jobs") - config.use_age_restriction_for_jobs = 1 - - if("use_age_restriction_for_antags") - config.use_age_restriction_for_antags = 1 - - if("use_exp_tracking") - config.use_exp_tracking = 1 - - if("use_exp_restrictions") - config.use_exp_restrictions = 1 - - if("use_exp_restrictions_admin_bypass") - config.use_exp_restrictions_admin_bypass = 1 - - if("jobs_have_minimal_access") - config.jobs_have_minimal_access = 1 - - if("shadowling_max_age") - config.shadowling_max_age = text2num(value) - - if("warn_afk_minimum") - config.warn_afk_minimum = text2num(value) - if("auto_cryo_afk") - config.auto_cryo_afk = text2num(value) - if("auto_despawn_afk") - config.auto_despawn_afk = text2num(value) - - if("auto_cryo_ssd_mins") - config.auto_cryo_ssd_mins = text2num(value) - if("ssd_warning") - config.ssd_warning = 1 - - if("list_afk_minimum") - config.list_afk_minimum = text2num(value) - - if("ipintel_email") - if(value != "ch@nge.me") - config.ipintel_email = value - if("ipintel_rating_bad") - config.ipintel_rating_bad = text2num(value) - if("ipintel_domain") - config.ipintel_domain = value - if("ipintel_save_good") - config.ipintel_save_good = text2num(value) - if("ipintel_save_bad") - config.ipintel_save_bad = text2num(value) - if("ipintel_maxplaytime") - config.ipintel_maxplaytime = text2num(value) - if("ipintel_whitelist") - config.ipintel_whitelist = 1 - if("ipintel_detailsurl") - config.ipintel_detailsurl = value - - if("forum_link_url") - config.forum_link_url = value - - if("forum_playerinfo_url") - config.forum_playerinfo_url = value - - if("log_ooc") - config.log_ooc = 1 - - if("log_access") - config.log_access = 1 - - if("log_say") - config.log_say = 1 - - if("log_admin") - config.log_admin = 1 - - if("log_debug") - config.log_debug = 1 - - if("log_game") - config.log_game = 1 - - if("log_vote") - config.log_vote = 1 - - if("log_whisper") - config.log_whisper = 1 - - if("log_attack") - config.log_attack = 1 - - if("log_emote") - config.log_emote = 1 - - if("log_adminchat") - config.log_adminchat = 1 - - if("log_adminwarn") - config.log_adminwarn = 1 - - if("log_pda") - config.log_pda = 1 - - if("log_world_output") - config.log_world_output = 1 - - if("log_hrefs") - config.log_hrefs = 1 - - if("log_runtime") - config.log_runtimes = 1 - - if("mentors") - config.mods_are_mentors = 1 - - if("allow_admin_ooccolor") - config.allow_admin_ooccolor = 1 - - if("pregame_timestart") - config.pregame_timestart = text2num(value) - - if("allow_vote_restart") - config.allow_vote_restart = 1 - - if("allow_vote_mode") - config.allow_vote_mode = 1 - - if("no_dead_vote") - config.vote_no_dead = 1 - - if("vote_autotransfer_initial") - config.vote_autotransfer_initial = text2num(value) - - if("vote_autotransfer_interval") - config.vote_autotransfer_interval = text2num(value) - - if("default_no_vote") - config.vote_no_default = 1 - - if("vote_delay") - config.vote_delay = text2num(value) - - if("vote_period") - config.vote_period = text2num(value) - - if("allow_ai") - config.allow_ai = 1 - -// if("authentication") -// config.enable_authentication = 1 - - if("norespawn") - config.respawn = 0 - - if("servername") - config.server_name = value - - if("server_tag_line") - config.server_tag_line = value - - if("server_extra_features") - config.server_extra_features = value - - if("serversuffix") - config.server_suffix = 1 - - if("minimum_client_build") - config.minimum_client_build = text2num(value) - - if("nudge_script_path") - config.nudge_script_path = value - - if("server") - config.server = value - - if("banappeals") - config.banappeals = value - - if("wikiurl") - config.wikiurl = value - - if("forumurl") - config.forumurl = value - - if("rulesurl") - config.rulesurl = value - - if("githuburl") - config.githuburl = value - - if("discordurl") - config.discordurl = value - - if("discordforumurl") - config.discordforumurl = value - - if("donationsurl") - config.donationsurl = value - - if("repositoryurl") - config.repositoryurl = value - - if("guest_jobban") - config.guest_jobban = 1 - - if("guest_ban") - GLOB.guests_allowed = 0 - - if("panic_bunker_threshold") - config.panic_bunker_threshold = text2num(value) - - if("usewhitelist") - config.usewhitelist = 1 - - if("feature_object_spell_system") - config.feature_object_spell_system = 1 - - if("allow_metadata") - config.allow_Metadata = 1 - - if("traitor_scaling") - config.traitor_scaling = 1 - - if("protect_roles_from_antagonist") - config.protect_roles_from_antagonist = 1 - - if("probability") - var/prob_pos = findtext(value, " ") - var/prob_name = null - var/prob_value = null - - if(prob_pos) - prob_name = lowertext(copytext(value, 1, prob_pos)) - prob_value = copytext(value, prob_pos + 1) - if(prob_name in config.modes) - config.probabilities[prob_name] = text2num(prob_value) - else - log_config("Unknown game mode probability configuration definition: [prob_name].") - else - log_config("Incorrect probability configuration definition: [prob_name] [prob_value].") - - if("allow_random_events") - config.allow_random_events = 1 - - if("load_jobs_from_txt") - load_jobs_from_txt = 1 - - if("forbid_singulo_possession") - forbid_singulo_possession = 1 - - if("check_randomizer") - check_randomizer = 1 - - if("popup_admin_pm") - config.popup_admin_pm = 1 - - if("allow_holidays") - config.allow_holidays = 1 - - if("ticklag") - Ticklag = text2num(value) - - if("socket_talk") - socket_talk = text2num(value) - - if("allow_antag_hud") - config.antag_hud_allowed = 1 - - if("antag_hud_restricted") - config.antag_hud_restricted = 1 - - if("humans_need_surnames") - humans_need_surnames = 1 - - if("automute_on") - automute_on = 1 - - if("usealienwhitelist") - usealienwhitelist = 1 - - if("alien_player_ratio") - limitalienplayers = 1 - alien_to_human_ratio = text2num(value) - - if("assistant_maint") - config.assistant_maint = 1 - - if("gateway_delay") - config.gateway_delay = text2num(value) - - if("continuous_rounds") - config.continuous_rounds = 1 - - if("ghost_interaction") - config.ghost_interaction = 1 - - if("comms_password") - config.comms_password = value - - if("python_path") - if(value) - GLOB.python_path = value - else - if(world.system_type == UNIX) - GLOB.python_path = "/usr/bin/env python2" - else //probably windows, if not this should work anyway - GLOB.python_path = "pythonw" - - if("assistant_limit") - config.assistantlimit = 1 - - if("assistant_ratio") - config.assistantratio = text2num(value) - - if("allow_drone_spawn") - config.allow_drone_spawn = text2num(value) - - if("drone_build_time") - config.drone_build_time = text2num(value) - - if("max_maint_drones") - config.max_maint_drones = text2num(value) - - if("expected_round_length") - config.expected_round_length = text2num(value) MINUTES - - if("event_custom_start_mundane") - var/values = text2numlist(value, ";") - config.event_first_run[EVENT_LEVEL_MUNDANE] = list("lower" = values[1] MINUTES, "upper" = values[2] MINUTES) - - if("event_custom_start_moderate") - var/values = text2numlist(value, ";") - config.event_first_run[EVENT_LEVEL_MODERATE] = list("lower" = values[1] MINUTES, "upper" = values[2] MINUTES) - - if("event_custom_start_major") - var/values = text2numlist(value, ";") - config.event_first_run[EVENT_LEVEL_MAJOR] = list("lower" = values[1] MINUTES, "upper" = values[2] MINUTES) - - if("event_delay_lower") - var/values = text2numlist(value, ";") - config.event_delay_lower[EVENT_LEVEL_MUNDANE] = values[1] MINUTES - config.event_delay_lower[EVENT_LEVEL_MODERATE] = values[2] MINUTES - config.event_delay_lower[EVENT_LEVEL_MAJOR] = values[3] MINUTES - - if("event_delay_upper") - var/values = text2numlist(value, ";") - config.event_delay_upper[EVENT_LEVEL_MUNDANE] = values[1] MINUTES - config.event_delay_upper[EVENT_LEVEL_MODERATE] = values[2] MINUTES - config.event_delay_upper[EVENT_LEVEL_MAJOR] = values[3] MINUTES - - if("starlight") - config.starlight = 1 - - if("player_reroute_cap") - var/vvalue = text2num(value) - config.player_overflow_cap = vvalue >= 0 ? vvalue : 0 - - if("overflow_server_url") - config.overflow_server_url = value - - if("disable_away_missions") - config.disable_away_missions = 1 - - if("disable_space_ruins") - config.disable_space_ruins = 1 - - if("disable_lobby_music") - config.disable_lobby_music = 1 - - if("disable_cid_warn_popup") - config.disable_cid_warn_popup = 1 - - if("extra_space_ruin_levels_min") - var/vvalue = text2num(value) - config.extra_space_ruin_levels_min = max(vvalue, 0) - - if("extra_space_ruin_levels_max") - var/vvalue = text2num(value) - config.extra_space_ruin_levels_max = max(vvalue, 0) - - if("max_loadout_points") - config.max_loadout_points = text2num(value) - - if("round_abandon_penalty_period") - config.round_abandon_penalty_period = text2num(value) MINUTES - - if("medal_hub_address") - config.medal_hub_address = value - - if("medal_hub_password") - config.medal_hub_password = value - - if("disable_ooc_emoji") - config.disable_ooc_emoji = 1 - - if("shutdown_on_reboot") - config.shutdown_on_reboot = 1 - - if("shutdown_shell_command") - GLOB.shutdown_shell_command = value - - if("disable_karma") - config.disable_karma = 1 - - if("start_now_confirmation") - config.start_now_confirmation = 1 - - if("tick_limit_mc_init") - config.tick_limit_mc_init = text2num(value) - if("base_mc_tick_rate") - config.base_mc_tick_rate = text2num(value) - if("high_pop_mc_tick_rate") - config.high_pop_mc_tick_rate = text2num(value) - if("high_pop_mc_mode_amount") - config.high_pop_mc_mode_amount = text2num(value) - if("disable_high_pop_mc_mode_amount") - config.disable_high_pop_mc_mode_amount = text2num(value) - if("developer_express_start") - config.developer_express_start = 1 - if("disable_localhost_admin") - config.disable_localhost_admin = 1 - if("enable_gamemode_player_limit") - config.enable_gamemode_player_limit = 1 - if("byond_account_age_threshold") - config.byond_account_age_threshold = text2num(value) - // Discord stuff - if("enable_discord_webhooks") - discord_webhooks_enabled = TRUE - if("discord_webhooks_admin_role_id") - discord_admin_role_id = "[value]" // This MUST be a string because BYOND doesnt like massive integers - if("discord_webhooks_main_url") - discord_main_webhook_urls = splittext(value, "|") - if("discord_webhooks_admin_url") - discord_admin_webhook_urls = splittext(value, "|") - if("discord_webhooks_mentor_url") - discord_mentor_webhook_urls = splittext(value, "|") - if("discord_forward_all_ahelps") - discord_forward_all_ahelps = TRUE - // End discord stuff - if("centcom_ban_db_url") - centcom_ban_db_url = value - if("max_client_cid_history") - max_client_cid_history = text2num(value) - if("enable_auto_profiler") - auto_profile = TRUE - if("enable_map_voting") - map_voting_enabled = TRUE - if("2fa_host") - _2fa_auth_host = value - else - log_config("Unknown setting in configuration: '[name]'") - - - else if(type == "game_options") - value = text2num(value) - - switch(name) - if("revival_pod_plants") - config.revival_pod_plants = value - if("revival_cloning") - config.revival_cloning = value - if("revival_brain_life") - config.revival_brain_life = value - if("auto_toggle_ooc_during_round") - config.auto_toggle_ooc_during_round = 1 - if("run_speed") - config.run_speed = value - if("walk_speed") - config.walk_speed = value - if("human_delay") - config.human_delay = value - if("robot_delay") - config.robot_delay = value - if("monkey_delay") - config.monkey_delay = value - if("alien_delay") - config.alien_delay = value - if("slime_delay") - config.slime_delay = value - if("animal_delay") - config.animal_delay = value - if("bones_can_break") - config.bones_can_break = value - if("shuttle_refuel_delay") - config.shuttle_refuel_delay = text2num(value) - if("traitor_objectives_amount") - config.traitor_objectives_amount = text2num(value) - if("reactionary_explosions") - config.reactionary_explosions = 1 - if("bombcap") - var/BombCap = text2num(value) - if(!BombCap) - continue - if(BombCap < 4) - BombCap = 4 - if(BombCap > 128) - BombCap = 128 - - GLOB.max_ex_devastation_range = round(BombCap/4) - GLOB.max_ex_heavy_range = round(BombCap/2) - GLOB.max_ex_light_range = BombCap - GLOB.max_ex_flash_range = BombCap - GLOB.max_ex_flame_range = BombCap - if("default_laws") - config.default_laws = text2num(value) - if("randomize_shift_time") - config.randomize_shift_time = TRUE - if("enable_night_shifts") - config.enable_night_shifts = TRUE - if("lavaland_budget") - config.lavaland_budget = text2num(value) - if("cubemonkey_cap") - config.cubemonkeycap = text2num(value) - else - log_config("Unknown setting in configuration: '[name]'") - -/datum/configuration/proc/loadsql(filename) // -- TLE - if(IsAdminAdvancedProcCall()) - to_chat(usr, "SQL configuration reload blocked: Advanced ProcCall detected.") - message_admins("[key_name(usr)] attempted to reload SQL configuration via advanced proc-call") - log_admin("[key_name(usr)] attempted to reload SQL configuration via advanced proc-call") - return - var/list/Lines = file2list(filename) - for(var/t in Lines) - if(!t) continue - - t = trim(t) - if(length(t) == 0) - continue - else if(copytext(t, 1, 2) == "#") - continue - - var/pos = findtext(t, " ") - var/name = null - var/value = null - - if(pos) - name = lowertext(copytext(t, 1, pos)) - value = copytext(t, pos + 1) - else - name = lowertext(t) - - if(!name) - continue - - switch(name) - if("sql_enabled") - config.sql_enabled = 1 - if("address") - sqladdress = value - if("port") - sqlport = value - if("feedback_database") - sqlfdbkdb = value - if("feedback_login") - sqlfdbklogin = value - if("feedback_password") - sqlfdbkpass = value - if("feedback_tableprefix") - sqlfdbktableprefix = value - if("db_version") - sql_version = text2num(value) - if("async_query_timeout") - async_sql_query_timeout = text2num(value) - if("rust_sql_thread_limit") - config.rust_sql_thread_limit = text2num(value) - else - log_config("Unknown setting in configuration: '[name]'") - -/datum/configuration/proc/loadoverflowwhitelist(filename) - var/list/Lines = file2list(filename) - for(var/t in Lines) - if(!t) continue - - t = trim(t) - if(length(t) == 0) - continue - else if(copytext(t, 1, 2) == "#") - continue - - config.overflow_whitelist += t - -/datum/configuration/proc/pick_mode(mode_name) - for(var/T in subtypesof(/datum/game_mode)) - var/datum/game_mode/M = T - if(initial(M.config_tag) && initial(M.config_tag) == mode_name) - return new T() - return new /datum/game_mode/extended() - -/datum/configuration/proc/get_runnable_modes() - var/list/datum/game_mode/runnable_modes = new - for(var/T in subtypesof(/datum/game_mode)) - var/datum/game_mode/M = new T() -// to_chat(world, "DEBUG: [T], tag=[M.config_tag], prob=[probabilities[M.config_tag]]") - if(!(M.config_tag in modes)) - qdel(M) - continue - if(probabilities[M.config_tag]<=0) - qdel(M) - continue - if(M.can_start()) - 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/configuration/__config_defines.dm b/code/controllers/configuration/__config_defines.dm new file mode 100644 index 00000000000..f5262401107 --- /dev/null +++ b/code/controllers/configuration/__config_defines.dm @@ -0,0 +1,40 @@ +// Config protection states +#define PROTECTION_PRIVATE "PRIVATE" +#define PROTECTION_READONLY "READONLY" +#define PROTECTION_NONE "NONE" +/// Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to bools. +#define CONFIG_LOAD_BOOL(target, input) \ + if(!isnull(input)) {\ + target = ((input == 1) ? TRUE : FALSE)\ + } + +/// Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to number. +#define CONFIG_LOAD_NUM(target, input) \ + if(!isnull(input)) {\ + target = text2num(input)\ + } + +/// Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to number, and accepts a macro argument for number maths (ds to min for example) +#define CONFIG_LOAD_NUM_MULT(target, input, multiplier) \ + if(!isnull(input)) {\ + target = text2num(input) multiplier\ + } + +/// Wrapper to not overwrite a variable if a list key doesnt exist. Auto casts to string. +#define CONFIG_LOAD_STR(target, input) \ + if(!isnull(input)) {\ + target = "[input]"\ + } + +/// Wrapper to not overwrite a variable if a list key doesnt exist. No casting done. +#define CONFIG_LOAD_RAW(target, input) \ + if(!isnull(input)) {\ + target = input\ + } + +/// Wrapper to not overwrite a variable if a list key doesnt exist. Ensures target is a list. +#define CONFIG_LOAD_LIST(target, input) \ + if(islist(input)) {\ + target = input\ + } + diff --git a/code/controllers/configuration/configuration_core.dm b/code/controllers/configuration/configuration_core.dm new file mode 100644 index 00000000000..c4938d3efc6 --- /dev/null +++ b/code/controllers/configuration/configuration_core.dm @@ -0,0 +1,142 @@ +// Paradise SS13 Configuration System +// Refactored to use config sections as part of a single TOML file, since thats much better to deal with + +/// Global configuration datum holder for all the config sections +GLOBAL_DATUM_INIT(configuration, /datum/server_configuration, new()) + +/// Represents a base configuration datum. Has everything else bundled into it +/datum/server_configuration + /// Holder for the admin configuration datum + var/datum/configuration_section/admin_configuration/admin + /// Holder for the AFK configuration datum + var/datum/configuration_section/afk_configuration/afk + /// Holder for the custom sprites configuration datum + var/datum/configuration_section/custom_sprites_configuration/custom_sprites + /// Holder for the DB configuration datum + var/datum/configuration_section/database_configuration/database + /// Holder for the Discord configuration datum + var/datum/configuration_section/discord_configuration/discord + /// Holder for the Event configuration datum + var/datum/configuration_section/event_configuration/event + /// Holder for the gamemode configuration datum + var/datum/configuration_section/gamemode_configuration/gamemode + /// Holder for the gateway configuration datum + var/datum/configuration_section/gateway_configuration/gateway + /// Holder for the general configuration datum + var/datum/configuration_section/general_configuration/general + /// Holder for the IPIntel configuration datum + var/datum/configuration_section/ipintel_configuration/ipintel + /// Holder for the job configuration datum + var/datum/configuration_section/job_configuration/jobs + /// Holder for the logging configuration datum + var/datum/configuration_section/logging_configuration/logging + /// Holder for the MC configuration datum + var/datum/configuration_section/mc_configuration/mc + /// Holder for the MC configuration datum + var/datum/configuration_section/movement_configuration/movement + /// Holder for the overflow configuration datum + var/datum/configuration_section/overflow_configuration/overflow + /// Holder for the ruins configuration datum + var/datum/configuration_section/ruin_configuration/ruins + /// Holder for the system configuration datum + var/datum/configuration_section/system_configuration/system + /// Holder for the URL configuration datum + var/datum/configuration_section/url_configuration/url + /// Holder for the voting configuration datum + var/datum/configuration_section/vote_configuration/vote + + +/datum/server_configuration/Destroy(force) + SHOULD_CALL_PARENT(FALSE) + // This is going to stay existing. I dont care. + return QDEL_HINT_LETMELIVE + +/datum/server_configuration/CanProcCall(procname) + return FALSE // No thanks + +/datum/server_configuration/proc/load_configuration() + var/start = start_watch() // Time tracking + + // Initialize all our holders + admin = new() + afk = new() + custom_sprites = new() + database = new() + discord = new() + event = new() + gamemode = new() + gateway = new() + general = new() + ipintel = new() + jobs = new() + logging = new() + mc = new() + movement = new() + overflow = new() + ruins = new() + system = new() + url = new() + vote = new() + + // Load our stuff up + var/config_file = "config/config.toml" + if(!fexists(config_file)) + config_file = "config/example/config.toml" // Fallback to example if user hasnt setup config properly + var/raw_json = rustg_toml2json(config_file) + var/list/raw_config_data = json_decode(raw_json) + + // Now pass through all our stuff + admin.load_data(raw_config_data["admin_configuration"]) + afk.load_data(raw_config_data["afk_configuration"]) + custom_sprites.load_data(raw_config_data["custom_sprites_configuration"]) + database.load_data(raw_config_data["database_configuration"]) + discord.load_data(raw_config_data["discord_configuration"]) + event.load_data(raw_config_data["event_configuration"]) + gamemode.load_data(raw_config_data["gamemode_configuration"]) + gateway.load_data(raw_config_data["gateway_configuration"]) + general.load_data(raw_config_data["general_configuration"]) + ipintel.load_data(raw_config_data["ipintel_configuration"]) + jobs.load_data(raw_config_data["job_configuration"]) + logging.load_data(raw_config_data["logging_configuration"]) + mc.load_data(raw_config_data["mc_configuration"]) + movement.load_data(raw_config_data["movement_configuration"]) + overflow.load_data(raw_config_data["overflow_configuration"]) + ruins.load_data(raw_config_data["ruin_configuration"]) + system.load_data(raw_config_data["system_configuration"]) + url.load_data(raw_config_data["url_configuration"]) + vote.load_data(raw_config_data["voting_configuration"]) + + // And report the load + DIRECT_OUTPUT(world.log, "Config loaded in [stop_watch(start)]s") + + +/datum/configuration_section + /// See __config_defines.dm + var/protection_state = PROTECTION_NONE + +/datum/configuration_section/proc/load_data(list/data) + CRASH("load() not overriden for [type]!") + +// Maximum protection +/datum/configuration_section/can_vv_get(var_name) + if(protection_state == PROTECTION_PRIVATE) + return FALSE + return ..() + +/datum/configuration_section/vv_edit_var(var_name, var_value) + if(protection_state in list(PROTECTION_PRIVATE, PROTECTION_READONLY)) + return FALSE + return ..() + +/datum/configuration_section/vv_get_var(var_name) + if(protection_state == PROTECTION_PRIVATE) + return FALSE + return ..() + +/datum/configuration_section/Destroy(force) + SHOULD_CALL_PARENT(FALSE) + // This is going to stay existing. I dont care. + return QDEL_HINT_LETMELIVE + +/datum/configuration_section/CanProcCall(procname) + return FALSE // No thanks diff --git a/code/controllers/configuration/sections/admin_configuration.dm b/code/controllers/configuration/sections/admin_configuration.dm new file mode 100644 index 00000000000..42bcbff4bc1 --- /dev/null +++ b/code/controllers/configuration/sections/admin_configuration.dm @@ -0,0 +1,43 @@ +/// Config holder for all admin related things +/datum/configuration_section/admin_configuration + protection_state = PROTECTION_READONLY // Dont even think about it + /// Do we want to load admins from the database? + var/use_database_admins = FALSE + /// Do we want to auto enable admin rights if you connect from localhost? + var/enable_localhost_autoadmin = TRUE + /// Do we want to allow admins to set their own OOC colour? + var/allow_admin_ooc_colour = TRUE + /// Assoc list of admin ranks and their stuff. key: rank name string | value: list of rights + var/list/rank_rights_map = list() + /// Assoc list of admin ckeys and their ranks. key: ckey | value: rank name + var/list/ckey_rank_map = list() + /// Assoc list of admin ranks and their colours. key: rank | value: rank colour + var/list/rank_colour_map = list() + +/datum/configuration_section/admin_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(use_database_admins, data["use_database_admins"]) + CONFIG_LOAD_BOOL(enable_localhost_autoadmin, data["enable_localhost_autoadmin"]) + CONFIG_LOAD_BOOL(allow_admin_ooc_colour, data["allow_admin_ooc_colour"]) + + // Load admin rank tokens + if(islist(data["admin_ranks"])) + rank_rights_map.Cut() + for(var/list/kvset in data["admin_ranks"]) + rank_rights_map[kvset["name"]] = kvset["rights"] + + // Load admin assignments + if(islist(data["admin_assignments"])) + ckey_rank_map.Cut() + for(var/list/kvset in data["admin_assignments"]) + ckey_rank_map[kvset["ckey"]] = kvset["rank"] + + // Load admin colours + if(islist(data["admin_rank_colour_map"])) + rank_colour_map.Cut() + for(var/list/kvset in data["admin_rank_colour_map"]) + rank_colour_map[kvset["name"]] = kvset["colour"] + + // For the person who asks "Why not put admin datum generation in this step?", well I will tell you why + // Admins can be reloaded at runtime when DB edits are made and such, and I dont want an entire config reload to be part of this + // Separation makes sense. That and in prod we use the DB anyways. diff --git a/code/controllers/configuration/sections/afk_configuration.dm b/code/controllers/configuration/sections/afk_configuration.dm new file mode 100644 index 00000000000..90e2c6b7c67 --- /dev/null +++ b/code/controllers/configuration/sections/afk_configuration.dm @@ -0,0 +1,17 @@ +/// Config holder for all AFK related things +/datum/configuration_section/afk_configuration + /// Minutes before someone gets an AFK warning + var/warning_minutes = 0 + /// Minutes before someone is auto moved to cryo + var/auto_cryo_minutes = 0 + /// Minutes before someone is auto despawned + var/auto_despawn_minutes = 0 + /// Time before SSD people are auto cryo'd + var/ssd_auto_cryo_minutes = 0 + +/datum/configuration_section/afk_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_NUM(warning_minutes, data["afk_warning_minutes"]) + CONFIG_LOAD_NUM(auto_cryo_minutes, data["afk_auto_cryo_minutes"]) + CONFIG_LOAD_NUM(auto_despawn_minutes, data["afk_auto_despawn_minutes"]) + CONFIG_LOAD_NUM(ssd_auto_cryo_minutes, data["ssd_auto_cryo_minutes"]) diff --git a/code/controllers/configuration/sections/custom_sprites_configuration.dm b/code/controllers/configuration/sections/custom_sprites_configuration.dm new file mode 100644 index 00000000000..3b1c18feb70 --- /dev/null +++ b/code/controllers/configuration/sections/custom_sprites_configuration.dm @@ -0,0 +1,25 @@ +/// Config holder for all things regarding custom sprites +/datum/configuration_section/custom_sprites_configuration + /// List of ckeys that have custom cyborg skins + var/list/cyborg_ckeys = list() + /// List of ckeys that have custom AI core skins + var/list/ai_core_ckeys = list() + /// List of ckeys that have custom AI hologram skins + var/list/ai_hologram_ckeys = list() + /// List of ckeys that have custom pAI holoforms + var/list/pai_holoform_ckeys = list() + /// Assoc of ckeys that have custom pAI screens. Key: ckey | value: list of icon states + var/list/ipc_screen_map = list() + +/datum/configuration_section/custom_sprites_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_LIST(cyborg_ckeys, data["cyborgs"]) + CONFIG_LOAD_LIST(ai_core_ckeys, data["ai_core"]) + CONFIG_LOAD_LIST(ai_hologram_ckeys, data["ai_hologram"]) + CONFIG_LOAD_LIST(pai_holoform_ckeys, data["pai_holoform"]) + + // Load the ipc screens + if(islist(data["ipc_screens"])) + ipc_screen_map.Cut() + for(var/kvp in data["ipc_screens"]) + ipc_screen_map[kvp["ckey"]] = kvp["screens"] diff --git a/code/controllers/configuration/sections/database_configuration.dm b/code/controllers/configuration/sections/database_configuration.dm new file mode 100644 index 00000000000..e7ed707f573 --- /dev/null +++ b/code/controllers/configuration/sections/database_configuration.dm @@ -0,0 +1,43 @@ +/// Config holder for all database related things +/datum/configuration_section/database_configuration + protection_state = PROTECTION_PRIVATE // NO! BAD! + /// SQL enabled or not + var/enabled = FALSE + /// What SQL version are we on + var/version = 0 + /// Address of the SQL server + var/address = "127.0.0.1" + /// Port of the SQL server + var/port = 3306 + /// SQL usename + var/username = "root" + /// SQL password + var/password = "root" // Dont do this in prod. Please...... + /// Database name + var/db = "paradise_gamedb" + /// Time in seconds for async queries to time out + var/async_query_timeout = 10 + /// Thread limit for async queries + var/async_thread_limit = 50 + +/datum/configuration_section/database_configuration/load_data(list/data) + // UNIT TESTS ARE DEFINED - USE CUSTOM CI VALUES + #ifdef UNIT_TESTS + + enabled = TRUE + // This needs to happen in the CI environment to ensure the example SQL version gets updated. + CONFIG_LOAD_NUM(version, data["sql_version"]) + + #else + // Load the normal config. Were not in CI mode + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(enabled, data["sql_enabled"]) + CONFIG_LOAD_NUM(version, data["sql_version"]) + CONFIG_LOAD_STR(address, data["sql_address"]) + CONFIG_LOAD_NUM(port, data["sql_port"]) + CONFIG_LOAD_STR(username, data["sql_username"]) + CONFIG_LOAD_STR(password, data["sql_password"]) + CONFIG_LOAD_STR(db, data["sql_database"]) + CONFIG_LOAD_NUM(async_query_timeout, data["async_query_timeout"]) + CONFIG_LOAD_NUM(async_thread_limit, data["async_thread_limit"]) + #endif diff --git a/code/controllers/configuration/sections/discord_configuration.dm b/code/controllers/configuration/sections/discord_configuration.dm new file mode 100644 index 00000000000..3d51c92aa42 --- /dev/null +++ b/code/controllers/configuration/sections/discord_configuration.dm @@ -0,0 +1,26 @@ +/// Config holder for all things relating to discord webhooks +/datum/configuration_section/discord_configuration + protection_state = PROTECTION_PRIVATE // No hook reading + /// Are webhooks enabled at all + var/webhooks_enabled = FALSE + /// Do we want to forward all ahelps or just ones sent with no active admins + var/forward_all_ahelps = TRUE + /// Admin role to ping if no admins are online. Disables if empty string + var/admin_role_id = "" + /// List of all URLs for the main webhooks + var/list/main_webhook_urls = list() + /// List of all URLs for the admin webhooks + var/list/mentor_webhook_urls = list() + /// List of all URLs for the mentor webhooks + var/list/admin_webhook_urls = list() + + + +/datum/configuration_section/discord_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(webhooks_enabled, data["enable_discord_webhooks"]) + CONFIG_LOAD_BOOL(forward_all_ahelps, data["forward_all_ahelps"]) + CONFIG_LOAD_STR(admin_role_id, data["admin_role_id"]) + CONFIG_LOAD_LIST(main_webhook_urls, data["main_webhook_urls"]) + CONFIG_LOAD_LIST(mentor_webhook_urls, data["mentor_webhook_urls"]) + CONFIG_LOAD_LIST(admin_webhook_urls, data["admin_webhook_urls"]) diff --git a/code/controllers/configuration/sections/event_configuration.dm b/code/controllers/configuration/sections/event_configuration.dm new file mode 100644 index 00000000000..d169a92406d --- /dev/null +++ b/code/controllers/configuration/sections/event_configuration.dm @@ -0,0 +1,61 @@ +/// Config holder for all stuff relating to ingame random events +/datum/configuration_section/event_configuration + /// Do we want to enable random events at all + var/enable_random_events = TRUE + /// Assoc list of when the first event in a group can run. key: severity | value: assoc list with upper and low bounds (key: "upper"/"lower" | value: time in deciseconds) + var/list/first_run_times = list( + EVENT_LEVEL_MUNDANE = null, + EVENT_LEVEL_MODERATE = null, + EVENT_LEVEL_MAJOR = list("lower" = 40 MINUTES, "upper" = 50 MINUTES) + ) // <---- Whoever designed this needs to be shot + + /// Assoc list of lower bounds of event delays. key: severity | value: delay (deciseconds) + var/list/delay_lower_bound = list( + EVENT_LEVEL_MUNDANE = 5 MINUTES, + EVENT_LEVEL_MODERATE = 15 MINUTES, + EVENT_LEVEL_MAJOR = 25 MINUTES + ) + /// Assoc list of lower bounds of event delays. key: severity | value: delay (deciseconds) + var/list/delay_upper_bound = list( + EVENT_LEVEL_MUNDANE = 7.5 MINUTES, + EVENT_LEVEL_MODERATE = 22.5 MINUTES, + EVENT_LEVEL_MAJOR = 35 MINUTES + ) + /// Expected time of a round in deciseconds + var/expected_round_length = 120 MINUTES // This macro is equivilent to 72,000 deciseconds + +/datum/configuration_section/event_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(enable_random_events, data["allow_random_events"]) + + // Wrapper cant be used here due to it being multiplied + if(isnum(data["expected_round_length"])) + expected_round_length = data["expected_round_length"] MINUTES // Convert from minutes to deciseconds + + // Load event severities. This is quite awful but needs to be done so we can account for config mistakes. This event system is awful + if(islist(data["event_delay_lower_bounds"])) + CONFIG_LOAD_NUM_MULT(delay_lower_bound[EVENT_LEVEL_MUNDANE], data["event_delay_lower_bounds"]["mundane"], MINUTES) + CONFIG_LOAD_NUM_MULT(delay_lower_bound[EVENT_LEVEL_MODERATE], data["event_delay_lower_bounds"]["moderate"], MINUTES) + CONFIG_LOAD_NUM_MULT(delay_lower_bound[EVENT_LEVEL_MAJOR], data["event_delay_lower_bounds"]["major"], MINUTES) + + // Same here. I hate this. + if(islist(data["event_delay_upper_bounds"])) + CONFIG_LOAD_NUM_MULT(delay_upper_bound[EVENT_LEVEL_MUNDANE], data["event_delay_upper_bounds"]["mundane"], MINUTES) + CONFIG_LOAD_NUM_MULT(delay_upper_bound[EVENT_LEVEL_MODERATE], data["event_delay_upper_bounds"]["moderate"], MINUTES) + CONFIG_LOAD_NUM_MULT(delay_upper_bound[EVENT_LEVEL_MAJOR], data["event_delay_upper_bounds"]["major"], MINUTES) + + // And for the worst, the first run delays. I hate this so much -aa07 + if(islist(data["event_initial_delays"])) + for(var/list/assoclist in data["event_initial_delays"]) + var/target = null + switch(assoclist["severity"]) + if("mundane") + target = EVENT_LEVEL_MUNDANE + if("moderate") + target = EVENT_LEVEL_MODERATE + if("major") + target = EVENT_LEVEL_MAJOR + ASSERT(target in list(EVENT_LEVEL_MUNDANE, EVENT_LEVEL_MODERATE, EVENT_LEVEL_MAJOR)) + first_run_times[target] = list("lower" = assoclist["lower_bound"] MINUTES, "upper" = assoclist["upper_bound"] MINUTES) + + diff --git a/code/controllers/configuration/sections/gamemode_configuration.dm b/code/controllers/configuration/sections/gamemode_configuration.dm new file mode 100644 index 00000000000..d09e02b5c29 --- /dev/null +++ b/code/controllers/configuration/sections/gamemode_configuration.dm @@ -0,0 +1,96 @@ +/// Config holder for everything regarding gamemodes +/datum/configuration_section/gamemode_configuration + /// List of all gamemodes (value: config-tag) + var/list/gamemodes = list() + /// Assoc list of gamemode names (key: config-tag | value: mode name) + var/list/gamemode_names = list() + /// Assoc list of gamemode probabilities (key: config-tag | value: probability) + var/list/probabilities = list() + /// List of all gamemodes that can be voted for (value: config-tag) + var/list/votable_modes = list() + /// Should antags be restricted based on account age? + var/antag_account_age_restriction = FALSE + /// Max age (in SSmobs cycles, [2 seconds]) before a shadowling starts to take damage if they have not hatched + var/shadowling_max_age = 600 // 20 mins + /// Scale amount of traitors with population + var/traitor_scaling = TRUE + /// Prevent mindshield roles getting antagonist status + var/prevent_mindshield_antags = TRUE + /// Rounds such as rev, wizard and malf end instantly when the antag has won. Enable the setting below to not do that. + var/disable_certain_round_early_end = FALSE + /// Amount of objectives traitors should get. Does not include escape or hijack. + var/traitor_objectives_amount = 2 + /// Enable player limits on gamemodes? Disabling can be useful for testing + var/enable_gamemode_player_limit = TRUE + +// Dynamically setup a list of all gamemodes +/datum/configuration_section/gamemode_configuration/New() + for(var/T in subtypesof(/datum/game_mode)) + var/datum/game_mode/M = T + + // Dont bother if theres no tag + if(!initial(M.config_tag)) + continue + // Ensure each mode is added only once + if(initial(M.config_tag) in gamemodes) + continue + + // Add it in + gamemodes += initial(M.config_tag) + gamemode_names[initial(M.config_tag)] = initial(M.name) + probabilities[initial(M.config_tag)] = initial(M.probability) + + if(initial(M.votable)) + votable_modes += initial(M.config_tag) + + // Add secret to the votable pool + votable_modes += "secret" + +/datum/configuration_section/gamemode_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(antag_account_age_restriction, data["antag_account_age_restrictions"]) + CONFIG_LOAD_BOOL(traitor_scaling, data["traitor_scaling"]) + CONFIG_LOAD_BOOL(prevent_mindshield_antags, data["prevent_mindshield_antag"]) + CONFIG_LOAD_BOOL(disable_certain_round_early_end, data["disable_certain_round_early_end"]) + CONFIG_LOAD_BOOL(enable_gamemode_player_limit, data["enable_gamemode_player_limit"]) + + CONFIG_LOAD_NUM(traitor_objectives_amount, data["traitor_objective_amount"]) + CONFIG_LOAD_NUM(shadowling_max_age, data["shadowling_max_age"]) + + // Load gamemode probabilities + if(islist(data["gamemode_probabilities"])) + for(var/list/assocset in data["gamemode_probabilities"]) + // Make sure it exists + if(assocset["gamemode"] in gamemodes) + probabilities[assocset["gamemode"]] = assocset["probability"] + else + stack_trace("Gamemode [assocset["gamemode"]] has a probability in config, but does not exist!") + +/datum/configuration_section/gamemode_configuration/proc/pick_mode(mode_name) + for(var/T in subtypesof(/datum/game_mode)) + var/datum/game_mode/M = T + // If the tag exists, and its the same as the mode + if(initial(M.config_tag) && (initial(M.config_tag) == mode_name)) + return new T() + + // Default to extended if it didnt work + stack_trace("Could not pick a gamemode. Defaulting to extended. (Attempted mode: [mode_name])") + return new /datum/game_mode/extended() + +/datum/configuration_section/gamemode_configuration/proc/get_runnable_modes() + var/list/datum/game_mode/runnable_modes = new + for(var/T in subtypesof(/datum/game_mode)) + var/datum/game_mode/M = new T() + + if(!(M.config_tag in gamemodes)) + qdel(M) + continue + + if(probabilities[M.config_tag] <= 0) + qdel(M) + continue + + if(M.can_start()) + runnable_modes[M] = probabilities[M.config_tag] + + return runnable_modes diff --git a/code/controllers/configuration/sections/gateway_configuration.dm b/code/controllers/configuration/sections/gateway_configuration.dm new file mode 100644 index 00000000000..f9e64e5f3be --- /dev/null +++ b/code/controllers/configuration/sections/gateway_configuration.dm @@ -0,0 +1,14 @@ +/// Config holder for all gateway related things +/datum/configuration_section/gateway_configuration + /// Do we want to enable away missions or not + var/enable_away_mission = TRUE + /// Delay (in deciseconds) before the gateway is usable + var/away_mission_delay = 6000 + /// List of all available away missions + var/list/enabled_away_missions = list() + +/datum/configuration_section/gateway_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(enable_away_mission, data["enable_away_mission"]) + CONFIG_LOAD_NUM(away_mission_delay, data["away_mission_delay"]) + CONFIG_LOAD_LIST(enabled_away_missions, data["enabled_away_missions"]) diff --git a/code/controllers/configuration/sections/general_configuration.dm b/code/controllers/configuration/sections/general_configuration.dm new file mode 100644 index 00000000000..296304c28b7 --- /dev/null +++ b/code/controllers/configuration/sections/general_configuration.dm @@ -0,0 +1,137 @@ +/// Config holder for all general/misc things +/datum/configuration_section/general_configuration + /// Server name for the BYOND hub + var/server_name = "Paradise Station" + /// Tagline for the hub entry + var/server_tag_line = "The perfect mix of RP & action" + /// Server features in a newline + var/server_features = "Medium RP, varied species/jobs" + /// Should bans be stored in the DB + var/use_database_bans = FALSE + /// Allow character OOC notes + var/allow_character_metadata = TRUE + /// Time in seconds for the pregame lobby + var/lobby_time = 240 + /// Ban all Guest BYOND accounts + var/guest_ban = TRUE + /// Player threshold to automatically enable panic bunker + var/panic_bunker_threshold = 150 + /// Allow players to use AntagHUD? + var/allow_antag_hud = TRUE + /// Forbid players from rejoining if they use AntagHUD? + var/restrict_antag_hud_rejoin = TRUE + /// Enable respanws by default? + var/respawn_enabled = FALSE + /// Enable karma? Disable to lockout awarding and unlock everything + var/enable_karma = TRUE + /// Enable CID randomiser buster? + var/enabled_cid_randomiser_buster = FALSE + /// Forbid admins from posessing and flying the singulo round + var/forbid_singulo_possession = FALSE + /// Force open a PM window when replied to? This is very annoying + var/popup_admin_pm = FALSE + /// Announce holidays (christmas, halloween, etc etc) + var/allow_holidays = TRUE + /// Enable auto muting in all chat channels + var/enable_auto_mute = FALSE + /// Show a warning to players to make them accept touching an SSD + var/ssd_warning = TRUE + /// Allow ghosts to spin chairs round + var/ghost_interaction = FALSE + /// Enable/disable starlight to light up space + var/starlight = TRUE + /// Disable lobby music? + var/disable_lobby_music = FALSE + /// Disable a popup if 2 users are on the same CID? + var/disable_cid_warning_popup = FALSE + /// Amount of loadout points non-donors should get + var/base_loadout_points = 5 + /// Respawnability loss penalty for eary cryoing (minutes) + var/cryo_penalty_period = 30 + /// Enable OOC emojis? + var/enable_ooc_emoji = TRUE + /// Auto start the game if on a local test server + var/developer_express_start = FALSE + /// Minimum client build. Keep above 1421 due to exploits + var/minimum_client_build = 1421 + /// Give a confirm button for the "Start Now" verb + var/start_now_confirmation = TRUE + /// BYOND account age threshold for first join alerts + var/byond_account_age_threshold = 3 + /// Max CIDs a client can have history of before a warning is thrown + var/max_client_cid_history = 20 + /// Enable automatic profiling to profile.json + var/enable_auto_profiler = TRUE + /// Auto disable OOC on roundstart? + var/auto_disable_ooc = TRUE + /// Do we want to allow bones to break? + var/breakable_bones = TRUE + /// Enable/disable revival pod plants + var/enable_revival_pod_plants = TRUE + /// Enable/disable cloning + var/enable_cloning = TRUE + /// Randomise shift time instead of it always being 12:00? + var/randomise_shift_time = TRUE + /// Enable night-shift lighting? + var/enable_night_shifts = TRUE + /// Cap for monkey cube monkey spawns + var/monkey_cube_cap = 32 + /// Enable to make explosions react to obstacles instead of ignoring them + var/reactionary_explosions = TRUE + /// Bomb cap (Devastation) Other values will be calculated around this + var/bomb_cap = 20 + /// Time for a brain to keep its spark of life (deciseconds) + var/revival_brain_life = 10 MINUTES + /// Enable random AI lawsets from the default=TRUE pool + var/random_ai_lawset = TRUE + +/datum/configuration_section/general_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + + // A lot of bools + CONFIG_LOAD_BOOL(use_database_bans, data["use_database_bans"]) + CONFIG_LOAD_BOOL(allow_character_metadata, data["allow_character_metadata"]) + CONFIG_LOAD_BOOL(guest_ban, data["guest_ban"]) + CONFIG_LOAD_BOOL(allow_antag_hud, data["allow_antag_hud"]) + CONFIG_LOAD_BOOL(restrict_antag_hud_rejoin, data["restrict_antag_hud_rejoin"]) + CONFIG_LOAD_BOOL(respawn_enabled, data["respawn_enabled"]) + CONFIG_LOAD_BOOL(enable_karma, data["enable_karma"]) + CONFIG_LOAD_BOOL(enabled_cid_randomiser_buster, data["enable_cid_randomiser_buster"]) + CONFIG_LOAD_BOOL(forbid_singulo_possession, data["prevent_admin_singlo_possession"]) + CONFIG_LOAD_BOOL(popup_admin_pm, data["popup_admin_pm"]) + CONFIG_LOAD_BOOL(allow_holidays, data["allow_holidays"]) + CONFIG_LOAD_BOOL(enable_auto_mute, data["enable_auto_mute"]) + CONFIG_LOAD_BOOL(ssd_warning, data["ssd_warning"]) + CONFIG_LOAD_BOOL(ghost_interaction, data["ghost_interaction"]) + CONFIG_LOAD_BOOL(starlight, data["starlight"]) + CONFIG_LOAD_BOOL(disable_lobby_music, data["disable_lobby_music"]) + CONFIG_LOAD_BOOL(disable_cid_warning_popup, data["disable_cid_warning_popup"]) + CONFIG_LOAD_BOOL(enable_ooc_emoji, data["enable_ooc_emoji"]) + CONFIG_LOAD_BOOL(developer_express_start, data["developer_express_start"]) + CONFIG_LOAD_BOOL(start_now_confirmation, data["start_now_confirmation"]) + CONFIG_LOAD_BOOL(enable_auto_profiler, data["enable_auto_profiler"]) + CONFIG_LOAD_BOOL(auto_disable_ooc, data["auto_disable_ooc"]) + CONFIG_LOAD_BOOL(breakable_bones, data["breakable_bones"]) + CONFIG_LOAD_BOOL(enable_revival_pod_plants, data["enable_revival_pod_plants"]) + CONFIG_LOAD_BOOL(enable_cloning, data["enable_cloning"]) + CONFIG_LOAD_BOOL(randomise_shift_time, data["randomise_shift_time"]) + CONFIG_LOAD_BOOL(enable_night_shifts, data["enable_night_shifts"]) + CONFIG_LOAD_BOOL(reactionary_explosions, data["reactionary_explosions"]) + CONFIG_LOAD_BOOL(random_ai_lawset, data["random_ai_lawset"]) + + // Numbers + CONFIG_LOAD_NUM(lobby_time, data["lobby_time"]) + CONFIG_LOAD_NUM(panic_bunker_threshold, data["panic_bunker_threshold"]) + CONFIG_LOAD_NUM(base_loadout_points, data["base_loadout_points"]) + CONFIG_LOAD_NUM(cryo_penalty_period, data["cryo_penalty_period"]) + CONFIG_LOAD_NUM(minimum_client_build, data["minimum_client_build"]) + CONFIG_LOAD_NUM(byond_account_age_threshold, data["byond_account_age_threshold"]) + CONFIG_LOAD_NUM(max_client_cid_history, data["max_client_cid_history"]) + CONFIG_LOAD_NUM(monkey_cube_cap, data["monkey_cube_cap"]) + CONFIG_LOAD_NUM(bomb_cap, data["bomb_cap"]) + CONFIG_LOAD_NUM(revival_brain_life, data["revival_brain_life"]) + + // Strings + CONFIG_LOAD_STR(server_name, data["server_name"]) + CONFIG_LOAD_STR(server_tag_line, data["server_tag_line"]) + CONFIG_LOAD_STR(server_features, data["server_features"]) diff --git a/code/controllers/configuration/sections/ipintel_configuration.dm b/code/controllers/configuration/sections/ipintel_configuration.dm new file mode 100644 index 00000000000..89fa23d5307 --- /dev/null +++ b/code/controllers/configuration/sections/ipintel_configuration.dm @@ -0,0 +1,34 @@ +/// Config holder for all things relating to IPIntel +/datum/configuration_section/ipintel_configuration + /// Is IPIntel enabled + var/enabled = FALSE + /// Are we in whitelist mode (Auto-kick people who are on proxies/VPNs) + var/whitelist_mode = TRUE + /// 0-1 float for percentage threshold to kick people out + var/bad_rating = 0.9 + /// IPIntel contact email. Required. + var/contact_email = null + /// How many hours to save good matches for. Cached due to rate limits + var/hours_save_good = 72 + /// How many hours to save bad matches for. Cached due to rate limits + var/hours_save_bad = 24 + /// IPIntel Domain. Do not prefix with a protocol + var/ipintel_domain = "check.getipintel.net" + /// Do not proxy-check players with more hours than the below threshold + var/playtime_ignore_threshold = 10 + /// Details URL for more info on an IP, including ASN. IP is tacked straight on the end. + var/details_url = "https://iphub.info/?ip=" + +/datum/configuration_section/ipintel_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(enabled, data["ipintel_enabled"]) + CONFIG_LOAD_BOOL(whitelist_mode, data["whitelist_mode"]) + + CONFIG_LOAD_NUM(bad_rating, data["bad_rating"]) + CONFIG_LOAD_NUM(hours_save_good, data["hours_save_good"]) + CONFIG_LOAD_NUM(hours_save_bad, data["hours_save_bad"]) + CONFIG_LOAD_NUM(playtime_ignore_threshold, data["playtime_ignore_threshold"]) + + CONFIG_LOAD_STR(contact_email, data["contact_email"]) + CONFIG_LOAD_STR(ipintel_domain, data["ipintel_domain"]) + CONFIG_LOAD_STR(details_url, data["details_url"]) diff --git a/code/controllers/configuration/sections/job_configuration.dm b/code/controllers/configuration/sections/job_configuration.dm new file mode 100644 index 00000000000..d56faddfc74 --- /dev/null +++ b/code/controllers/configuration/sections/job_configuration.dm @@ -0,0 +1,55 @@ +/// Config holder for all job related things +/datum/configuration_section/job_configuration + /// Do we want jobs to have minimal access or extra access (IE: Scientists having robotics access) + var/jobs_have_minimal_access = TRUE + /// Do we want to restrict jobs based on account age + var/restrict_jobs_on_account_age = FALSE + /// Allow admins to bypass age-based job restrictions + var/restrict_jobs_on_account_age_admin_bypass = TRUE + /// Enable EXP logging and tracking + var/enable_exp_tracking = FALSE + /// Lockout jobs based on EXP + var/enable_exp_restrictions = FALSE + /// Allow admins to bypass EXP restrictions + var/enable_exp_admin_bypass = TRUE + /// Allow non-admins to play as AI + var/allow_ai = TRUE + /// Prevent guests from playing high profile roles + var/guest_job_ban = TRUE + /// Grant assistants maint access + var/assistant_maint_access = TRUE + /// Limit amount of assistants? + var/assistant_limit = FALSE + /// If yes to above, ratio of assistants per security officer (IE: 4:1) + var/assistant_security_ratio = 2 + /// Enable loading of job overrides from the config + var/enable_job_amount_overrides = TRUE + /// Map of job:amount for lowpop. key: Job | value: amount + var/list/lowpop_job_map = list() + /// Map of job:amount for highpop. key: Job | value: amount + var/list/highpop_job_map = list() + +/datum/configuration_section/job_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(jobs_have_minimal_access, data["jobs_have_minimal_access"]) + CONFIG_LOAD_BOOL(restrict_jobs_on_account_age, data["restrict_jobs_on_account_age"]) + CONFIG_LOAD_BOOL(restrict_jobs_on_account_age_admin_bypass, data["restrict_jobs_on_account_age_admin_bypass"]) + CONFIG_LOAD_BOOL(enable_exp_tracking, data["enable_exp_tracking"]) + CONFIG_LOAD_BOOL(enable_exp_restrictions, data["enable_exp_restrictions"]) + CONFIG_LOAD_BOOL(enable_exp_admin_bypass, data["enable_exp_admin_bypass"]) + CONFIG_LOAD_BOOL(allow_ai, data["allow_ai"]) + CONFIG_LOAD_BOOL(guest_job_ban, data["guest_job_ban"]) + CONFIG_LOAD_BOOL(assistant_maint_access, data["assistant_maint_access"]) + CONFIG_LOAD_BOOL(assistant_limit, data["assistant_limit"]) + CONFIG_LOAD_NUM(assistant_security_ratio, data["assistant_security_ratio"]) + CONFIG_LOAD_BOOL(enable_job_amount_overrides, data["enable_job_amount_overrides"]) + + if(enable_job_amount_overrides && islist(data["job_slot_amounts"])) + lowpop_job_map.Cut() + highpop_job_map.Cut() + for(var/kvp in data["job_slot_amounts"]) + if(!isnull(kvp["name"])) + if(!isnull(kvp["lowpop"])) + lowpop_job_map[kvp["name"]] = kvp["lowpop"] + if(!isnull(kvp["highpop"])) + highpop_job_map[kvp["name"]] = kvp["highpop"] diff --git a/code/controllers/configuration/sections/logging_configuration.dm b/code/controllers/configuration/sections/logging_configuration.dm new file mode 100644 index 00000000000..ea2cd492057 --- /dev/null +++ b/code/controllers/configuration/sections/logging_configuration.dm @@ -0,0 +1,53 @@ +/// Config holder for all things regarding logging +/datum/configuration_section/logging_configuration + /// Log OOC messages + var/ooc_logging = TRUE + /// Log ingame say messages + var/say_logging = TRUE + /// Log admin actions + var/admin_logging = TRUE + /// Log client access (login/logout) + var/access_logging = TRUE + /// Log game events (roundstart, results, a lot of other things) + var/game_logging = TRUE + /// Enable logging of votes and their results + var/vote_logging = TRUE + /// Enable logging of whipers + var/whisper_logging = TRUE + /// Enable logging of emotes + var/emote_logging = TRUE + /// Enable logging of attacks between players + var/attack_logging = TRUE + /// Enable logging of PDA messages + var/pda_logging = TRUE + /// Enable runtime logging + var/runtime_logging = TRUE + /// Enable world.log output logging + var/world_logging = TRUE + /// Log hrefs + var/href_logging = TRUE + /// Log admin warning messages + var/admin_warning_logging = TRUE + /// Log asay messages + var/adminchat_logging = TRUE + /// Log debug messages + var/debug_logging = TRUE + +/datum/configuration_section/logging_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(ooc_logging, data["enable_ooc_logging"]) + CONFIG_LOAD_BOOL(say_logging, data["enable_say_logging"]) + CONFIG_LOAD_BOOL(admin_logging, data["enable_admin_logging"]) + CONFIG_LOAD_BOOL(access_logging, data["enable_access_logging"]) + CONFIG_LOAD_BOOL(game_logging, data["enable_game_logging"]) + CONFIG_LOAD_BOOL(vote_logging, data["enable_vote_logging"]) + CONFIG_LOAD_BOOL(whisper_logging, data["enable_whisper_logging"]) + CONFIG_LOAD_BOOL(emote_logging, data["enable_emote_logging"]) + CONFIG_LOAD_BOOL(attack_logging, data["enable_attack_logging"]) + CONFIG_LOAD_BOOL(pda_logging, data["enable_pda_logging"]) + CONFIG_LOAD_BOOL(runtime_logging, data["enable_runtime_logging"]) + CONFIG_LOAD_BOOL(world_logging, data["enable_world_logging"]) + CONFIG_LOAD_BOOL(href_logging, data["enable_href_logging"]) + CONFIG_LOAD_BOOL(admin_warning_logging, data["enable_admin_warning_logging"]) + CONFIG_LOAD_BOOL(adminchat_logging, data["enable_adminchat_logging"]) + CONFIG_LOAD_BOOL(debug_logging, data["enable_debug_logging"]) diff --git a/code/controllers/configuration/sections/mc_configuration.dm b/code/controllers/configuration/sections/mc_configuration.dm new file mode 100644 index 00000000000..0a047b6ac4d --- /dev/null +++ b/code/controllers/configuration/sections/mc_configuration.dm @@ -0,0 +1,23 @@ +/// Config holder for all things regarding the MC +/datum/configuration_section/mc_configuration + /// Server ticklag + var/ticklag = 0.5 + /// Tick limit % during world Init + var/world_init_tick_limit = TICK_LIMIT_MC_INIT_DEFAULT + /// Base MC tick rate + var/base_tickrate = 1 + /// Highpop MC tickrate + var/highpop_tickrate = 1.1 + /// MC Highpop enable threshold + var/highpop_enable_threshold = 65 + /// MC Highpop disable threshold + var/highpop_disable_threshold = 60 + +/datum/configuration_section/mc_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_NUM(ticklag, data["ticklag"]) + CONFIG_LOAD_NUM(world_init_tick_limit, data["world_init_mc_tick_limit"]) + CONFIG_LOAD_NUM(base_tickrate, data["base_mc_tick_rate"]) + CONFIG_LOAD_NUM(highpop_tickrate, data["highpop_mc_tick_rate"]) + CONFIG_LOAD_NUM(highpop_enable_threshold, data["mc_highpop_threshold_enable"]) + CONFIG_LOAD_NUM(highpop_disable_threshold, data["mc_highpop_threshold_disable"]) diff --git a/code/controllers/configuration/sections/movement_configuration.dm b/code/controllers/configuration/sections/movement_configuration.dm new file mode 100644 index 00000000000..1f647b94e8a --- /dev/null +++ b/code/controllers/configuration/sections/movement_configuration.dm @@ -0,0 +1,26 @@ +/// Config holder for values relating to mob movement speeds +/datum/configuration_section/movement_configuration + /// Base run speed before modifiers + var/base_run_speed = 1 + /// Base walk speed before modifiers + var/base_walk_speed = 4 + /// Move delay for humanoids + var/human_delay = 1.5 + /// Move delay for cyborgs + var/robot_delay = 2.5 + /// Move delay for xenomorphs + var/alien_delay = 1.5 + /// Move delay for slimes (xenobio, not slimepeople) + var/slime_delay = 1.5 + /// Move delay for other simple animals + var/animal_delay = 2.5 + +/datum/configuration_section/movement_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_NUM(base_run_speed, data["base_run_speed"]) + CONFIG_LOAD_NUM(base_walk_speed, data["base_walk_speed"]) + CONFIG_LOAD_NUM(human_delay, data["human_delay"]) + CONFIG_LOAD_NUM(robot_delay, data["robot_delay"]) + CONFIG_LOAD_NUM(alien_delay, data["alien_delay"]) + CONFIG_LOAD_NUM(slime_delay, data["slime_delay"]) + CONFIG_LOAD_NUM(animal_delay, data["animal_delay"]) diff --git a/code/controllers/configuration/sections/overflow_configuration.dm b/code/controllers/configuration/sections/overflow_configuration.dm new file mode 100644 index 00000000000..37c083676c1 --- /dev/null +++ b/code/controllers/configuration/sections/overflow_configuration.dm @@ -0,0 +1,14 @@ +/// Config holder for all overflow-server related things +/datum/configuration_section/overflow_configuration + /// Amount of players before reroute server is used. 0 to disable. + var/reroute_cap = 0 + /// Location of the overflow server + var/overflow_server_location = null + /// List of ckeys who will never be routed to the overflow server + var/list/overflow_whitelist = list() + +/datum/configuration_section/overflow_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_NUM(reroute_cap, data["player_reroute_cap"]) + CONFIG_LOAD_STR(overflow_server_location, data["overflow_server"]) + CONFIG_LOAD_LIST(overflow_whitelist, data["overflow_whitelist"]) diff --git a/code/controllers/configuration/sections/ruin_configuration.dm b/code/controllers/configuration/sections/ruin_configuration.dm new file mode 100644 index 00000000000..2adc5570867 --- /dev/null +++ b/code/controllers/configuration/sections/ruin_configuration.dm @@ -0,0 +1,23 @@ +/// Config holder for all things regarding space ruins and lavaland ruins +/datum/configuration_section/ruin_configuration + /// Enable or disable space ruins + var/enable_space_ruins = TRUE + /// Minimum number of extra zlevels to fill with ruins + var/extra_levels_min = 2 + /// Maximum number of extra zlevels to fill with ruins + var/extra_levels_max = 4 + /// List of all active space ruins + var/list/active_space_ruins = list() + /// List of all active lavaland ruins + var/list/active_lava_ruins = list() + /// Budget for lavaland ruins + var/lavaland_ruin_budget = 60 + +/datum/configuration_section/ruin_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(enable_space_ruins, data["enable_space_ruins"]) + CONFIG_LOAD_NUM(extra_levels_min, data["minimum_zlevels"]) + CONFIG_LOAD_NUM(extra_levels_max, data["maximum_zlevels"]) + CONFIG_LOAD_LIST(active_space_ruins, data["active_space_ruins"]) + CONFIG_LOAD_LIST(active_lava_ruins, data["active_lava_ruins"]) + CONFIG_LOAD_NUM(lavaland_ruin_budget, data["lavaland_ruin_budget"]) diff --git a/code/controllers/configuration/sections/system_configuration.dm b/code/controllers/configuration/sections/system_configuration.dm new file mode 100644 index 00000000000..a0354bb2b77 --- /dev/null +++ b/code/controllers/configuration/sections/system_configuration.dm @@ -0,0 +1,26 @@ +/// Config holder for stuff relating to server backend management and secrets +/datum/configuration_section/system_configuration + // NO EDITS OR READS TO THIS WHAT SOEVER + protection_state = PROTECTION_PRIVATE + /// Password for authorising world/Topic requests + var/topic_key = null + /// Medal hub address for lavaland stats + var/medal_hub_address = null + /// Medal hub password for lavaland stats + var/medal_hub_password = null + /// Do we want the server to kill on reboot instead of keeping the same DD session + var/shutdown_on_reboot = FALSE + /// If above is true, you can run a shell command + var/shutdown_shell_command = null + /// 2FA backend server host + var/_2fa_auth_host = null + +/datum/configuration_section/system_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(shutdown_on_reboot, data["shutdown_on_reboot"]) + + CONFIG_LOAD_STR(topic_key, data["communications_password"]) + CONFIG_LOAD_STR(medal_hub_address, data["medal_hub_address"]) + CONFIG_LOAD_STR(medal_hub_password, data["medal_hub_password"]) + CONFIG_LOAD_STR(shutdown_shell_command, data["shutdown_shell_command"]) + CONFIG_LOAD_STR(_2fa_auth_host, data["_2fa_auth_host"]) diff --git a/code/controllers/configuration/sections/url_configuration.dm b/code/controllers/configuration/sections/url_configuration.dm new file mode 100644 index 00000000000..cfdf06a7b51 --- /dev/null +++ b/code/controllers/configuration/sections/url_configuration.dm @@ -0,0 +1,47 @@ +/// Config holder for all the server URLs +/datum/configuration_section/url_configuration + // Dont tweak these. You can read them though. + protection_state = PROTECTION_READONLY + /// List of URLs for the server RSC data + var/list/rsc_urls = list() + /// Server URL for auto-reconnecting people at end round + var/server_url + /// URL for the server ban appeals forum + var/banappeals_url + /// URL for the server wiki + var/wiki_url + /// URL for the server forums + var/forum_url + /// URL for the server rules + var/rules_url + /// URL for the server github repository + var/github_url + /// URL for server donations + var/donations_url + /// URL for a direct discord invite + var/discord_url + /// URL for a discord invite going via the forums + var/discord_forum_url + /// URL for linking ingame accounts and forum accounts. Token is appended to end + var/forum_link_url + /// URL for pulling player info on webtools + var/forum_playerinfo_url + /// URL for the CentCom Ban DB API + var/centcom_ban_db_url + +/datum/configuration_section/url_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_LIST(rsc_urls, data["rsc_urls"]) + + CONFIG_LOAD_STR(server_url, data["reboot_url"]) + CONFIG_LOAD_STR(banappeals_url, data["ban_appeals_url"]) + CONFIG_LOAD_STR(wiki_url, data["wiki_url"]) + CONFIG_LOAD_STR(forum_url, data["forum_url"]) + CONFIG_LOAD_STR(rules_url, data["rules_url"]) + CONFIG_LOAD_STR(github_url, data["github_url"]) + CONFIG_LOAD_STR(donations_url, data["donations_url"]) + CONFIG_LOAD_STR(discord_url, data["discord_url"]) + CONFIG_LOAD_STR(discord_forum_url, data["discord_forum_url"]) + CONFIG_LOAD_STR(forum_link_url, data["forum_link_url"]) + CONFIG_LOAD_STR(forum_playerinfo_url, data["forum_playerinfo_url"]) + CONFIG_LOAD_STR(centcom_ban_db_url, data["centcomm_ban_db_url"]) diff --git a/code/controllers/configuration/sections/vote_configuration.dm b/code/controllers/configuration/sections/vote_configuration.dm new file mode 100644 index 00000000000..5c280c579fb --- /dev/null +++ b/code/controllers/configuration/sections/vote_configuration.dm @@ -0,0 +1,33 @@ +/// Config holder for stuff relating to the ingame vote system +/datum/configuration_section/vote_configuration + /// Allow players to start restart votes? + var/allow_restart_votes = FALSE + /// Allow players to start gamemode votes? + var/allow_mode_votes = FALSE + /// Minimum delay between each vote (deciseconds) + var/vote_delay = 18000 // 30 mins + /// How long will a vote last for (deciseconds) + var/vote_time = 600 // 60 seconds + /// Time before the first shuttle vote (deciseconds) + var/autotransfer_initial_time = 72000 // 2 hours + /// Time between subsequent shuttle votes if the first one is not successful (deciseconds) + var/autotransfer_interval_time = 18000 // 30 mins + /// Prevent dead players from voting + var/prevent_dead_voting = FALSE + /// Default to players not voting + var/disable_default_vote = TRUE + /// Enable map voting? + var/enable_map_voting = FALSE + +/datum/configuration_section/vote_configuration/load_data(list/data) + // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(allow_restart_votes, data["allow_vote_restart"]) + CONFIG_LOAD_BOOL(allow_mode_votes, data["allow_vote_mode"]) + CONFIG_LOAD_BOOL(prevent_dead_voting, data["prevent_dead_voting"]) + CONFIG_LOAD_BOOL(disable_default_vote, data["disable_default_vote"]) + CONFIG_LOAD_BOOL(enable_map_voting, data["enable_map_voting"]) + + CONFIG_LOAD_NUM(vote_delay, data["vote_delay"]) + CONFIG_LOAD_NUM(vote_time, data["vote_time"]) + CONFIG_LOAD_NUM(autotransfer_initial_time, data["autotransfer_initial_time"]) + CONFIG_LOAD_NUM(autotransfer_interval_time, data["autotransfer_interval_time"]) diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 82e2517823a..d445cf6f3b6 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -194,7 +194,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/start_timeofday = REALTIMEOFDAY // Initialize subsystems. - current_ticklimit = config.tick_limit_mc_init + current_ticklimit = GLOB.configuration.mc.world_init_tick_limit for(var/datum/controller/subsystem/SS in subsystems) if(SS.flags & SS_NO_INIT) continue @@ -206,8 +206,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new log_startup_progress("Initializations complete within [time] second[time == 1 ? "" : "s"]!") - if(config.developer_express_start & SSticker.current_state == GAME_STATE_PREGAME) - SSticker.current_state = GAME_STATE_SETTING_UP + if(GLOB.configuration.general.developer_express_start) + SSticker.force_start = TRUE if(!current_runlevel) SetRunLevel(1) @@ -216,7 +216,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new sortTim(subsystems, /proc/cmp_subsystem_display) // Set world options. // world.fps = CONFIG_GET(number/fps) // TIGER TODO - world.tick_lag = config.Ticklag + world.tick_lag = GLOB.configuration.mc.ticklag var/initialized_tod = REALTIMEOFDAY if(sleep_offline_after_initializations) @@ -626,10 +626,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new if(!processing) return var/client_count = length(GLOB.clients) - if(client_count < config.disable_high_pop_mc_mode_amount) - processing = config.base_mc_tick_rate - else if(client_count > config.high_pop_mc_mode_amount) - processing = config.high_pop_mc_tick_rate + if(client_count < GLOB.configuration.mc.highpop_disable_threshold) + processing = GLOB.configuration.mc.base_tickrate + else if(client_count > GLOB.configuration.mc.highpop_enable_threshold) + processing = GLOB.configuration.mc.highpop_tickrate /datum/controller/master/proc/formatcpu() switch(world.cpu) diff --git a/code/controllers/subsystem/afk.dm b/code/controllers/subsystem/afk.dm index 9b1d5f3fa26..c7042513e49 100644 --- a/code/controllers/subsystem/afk.dm +++ b/code/controllers/subsystem/afk.dm @@ -12,7 +12,8 @@ SUBSYSTEM_DEF(afk) /datum/controller/subsystem/afk/Initialize() - if(config.warn_afk_minimum <= 0 || config.auto_cryo_afk <= 0 || config.auto_despawn_afk <= 0) + + if(GLOB.configuration.afk.warning_minutes <= 0 || GLOB.configuration.afk.auto_cryo_minutes <= 0 || GLOB.configuration.afk.auto_despawn_minutes <= 0) flags |= SS_NO_FIRE else non_cryo_antags = list(SPECIAL_ROLE_ABDUCTOR_AGENT, SPECIAL_ROLE_ABDUCTOR_SCIENTIST, \ @@ -35,19 +36,20 @@ SUBSYSTEM_DEF(afk) toRemove += H.ckey continue + var/mins_afk = round(H.client.inactivity / 600) - if(mins_afk < config.warn_afk_minimum) + if(mins_afk < GLOB.configuration.afk.warning_minutes) if(afk_players[H.ckey]) toRemove += H.ckey continue if(!afk_players[H.ckey]) afk_players[H.ckey] = AFK_WARNED - warn(H, "You are AFK for [mins_afk] minutes. You will be cryod after [config.auto_cryo_afk] total minutes and fully despawned after [config.auto_despawn_afk] total minutes. Please move or click in game if you want to avoid being despawned.") + warn(H, "You are AFK for [mins_afk] minutes. You will be cryod after [GLOB.configuration.afk.auto_cryo_minutes] total minutes and fully despawned after [GLOB.configuration.afk.auto_despawn_minutes] total minutes. Please move or click in game if you want to avoid being despawned.") else var/area/A = T.loc // Turfs loc is the area if(afk_players[H.ckey] == AFK_WARNED) - if(mins_afk >= config.auto_cryo_afk && A.can_get_auto_cryod) + if(mins_afk >= GLOB.configuration.afk.auto_cryo_minutes && A.can_get_auto_cryod) if(A.fast_despawn) toRemove += H.ckey warn(H, "You have been despawned after being AFK for [mins_afk] minutes. You have been despawned instantly due to you being in a secure area.") @@ -60,13 +62,13 @@ SUBSYSTEM_DEF(afk) afk_players[H.ckey] = AFK_CRYOD log_afk_action(H, mins_afk, T, "put into cryostorage") warn(H, "You are AFK for [mins_afk] minutes and have been moved to cryostorage. \ - After being AFK for another [config.auto_despawn_afk] minutes you will be fully despawned. \ + After being AFK for another [GLOB.configuration.afk.auto_despawn_minutes] minutes you will be fully despawned. \ Please eject yourself (right click, eject) out of the cryostorage if you want to avoid being despawned.") else message_admins("[key_name_admin(H)] at ([get_area(T).name] [ADMIN_JMP(T)]) is AFK for [mins_afk] and can't be automatically cryod due to it's antag status: ([H.mind.special_role]).") afk_players[H.ckey] = AFK_ADMINS_WARNED - else if(afk_players[H.ckey] != AFK_ADMINS_WARNED && mins_afk >= config.auto_despawn_afk) + else if(afk_players[H.ckey] != AFK_ADMINS_WARNED && mins_afk >= GLOB.configuration.afk.auto_despawn_minutes) log_afk_action(H, mins_afk, T, "despawned") warn(H, "You have been despawned after being AFK for [mins_afk] minutes.") toRemove += H.ckey diff --git a/code/controllers/subsystem/alarm.dm b/code/controllers/subsystem/alarm.dm index 3d91d763be3..7ac7ab389a8 100644 --- a/code/controllers/subsystem/alarm.dm +++ b/code/controllers/subsystem/alarm.dm @@ -1,7 +1,7 @@ SUBSYSTEM_DEF(alarm) name = "Alarm" flags = SS_NO_INIT | SS_NO_FIRE - var/list/alarms = list("Motion" = list(), "Fire" = list(), "Atmosphere" = list(), "Power" = list(), "Camera" = list(), "Burglar" = list()) + var/list/alarms = list("Motion" = list(), "Fire" = list(), "Atmosphere" = list(), "Power" = list(), "Burglar" = list()) /datum/controller/subsystem/alarm/proc/triggerAlarm(class, area/A, list/O, obj/alarmsource) var/list/L = alarms[class] diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index acfb7444323..37e4299b06d 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 IGNORE INTO [format_table_name("feedback")] (datetime, round_id, key_name, key_type, version, json) + INSERT IGNORE INTO 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, @@ -287,7 +287,7 @@ SUBSYSTEM_DEF(blackbox) lakey = L.lastattackerckey var/datum/db_query/deathquery = SSdbcore.NewQuery({" - INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, coord) + INSERT INTO death (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, coord) VALUES (:name, :key, :job, :special, :pod, NOW(), :laname, :lakey, :gender, :bruteloss, :fireloss, :brainloss, :oxyloss, :coord)"}, list( "name" = L.real_name, diff --git a/code/controllers/subsystem/changelog.dm b/code/controllers/subsystem/changelog.dm index 3a2e3513916..55221263033 100644 --- a/code/controllers/subsystem/changelog.dm +++ b/code/controllers/subsystem/changelog.dm @@ -24,7 +24,7 @@ SUBSYSTEM_DEF(changelog) if(!SSdbcore.IsConnected()) return ..() - var/datum/db_query/latest_cl_date = SSdbcore.NewQuery("SELECT CAST(UNIX_TIMESTAMP(date_merged) AS CHAR) AS ut FROM [format_table_name("changelog")] ORDER BY date_merged DESC LIMIT 1") + var/datum/db_query/latest_cl_date = SSdbcore.NewQuery("SELECT CAST(UNIX_TIMESTAMP(date_merged) AS CHAR) AS ut FROM changelog ORDER BY date_merged DESC LIMIT 1") if(!latest_cl_date.warn_execute()) qdel(latest_cl_date) // Abort if we cant do this @@ -63,7 +63,7 @@ SUBSYSTEM_DEF(changelog) C.prefs.lastchangelog = current_cl_timestamp var/datum/db_query/updatePlayerCLTime = SSdbcore.NewQuery( - "UPDATE [format_table_name("player")] SET lastchangelog=:lastchangelog WHERE ckey=:ckey", + "UPDATE player SET lastchangelog=:lastchangelog WHERE ckey=:ckey", list( "lastchangelog" = current_cl_timestamp, "ckey" = C.ckey @@ -266,11 +266,11 @@ SUBSYSTEM_DEF(changelog) usr.client.github() // Takes a PR number as argument if(href_list["openPR"]) - if(config.githuburl) + if(GLOB.configuration.url.github_url) if(alert("This will open PR #[href_list["openPR"]] in your browser. Are you sure?",,"Yes","No")=="No") return // If the github URL in the config has a trailing slash, it doesnt matter here, thankfully github accepts having a double slash: https://github.com/org/repo//pull/1 - var/url = "[config.githuburl]/pull/[href_list["openPR"]]" + var/url = "[GLOB.configuration.url.github_url]/pull/[href_list["openPR"]]" usr << link(url) else to_chat(usr, "The GitHub URL is not set in the server configuration. PRs cannot be opened from changelog view. Please inform the server host.") diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm index 4cfe06083e3..f6974a2fb17 100644 --- a/code/controllers/subsystem/dbcore.dm +++ b/code/controllers/subsystem/dbcore.dm @@ -30,7 +30,7 @@ SUBSYSTEM_DEF(dbcore) // This is in Initialize() so that its actually seen in chat /datum/controller/subsystem/dbcore/Initialize() if(!schema_valid) - to_chat(world, "Database schema ([sql_version]) doesn't match the latest schema version ([SQL_VERSION]). Roundstart has been delayed.") + to_chat(world, "Database schema ([GLOB.configuration.database.version]) doesn't match the latest schema version ([SQL_VERSION]). Roundstart has been delayed.") return ..() @@ -66,7 +66,7 @@ SUBSYSTEM_DEF(dbcore) if(IsConnected()) return TRUE - if(!config.sql_enabled) + if(!GLOB.configuration.database.enabled) return FALSE if(failed_connection_timeout <= world.time) //it's been more than 5 seconds since we failed to connect, reset the counter @@ -77,14 +77,14 @@ SUBSYSTEM_DEF(dbcore) return FALSE var/result = json_decode(rustg_sql_connect_pool(json_encode(list( - "host" = sqladdress, - "port" = text2num(sqlport), - "user" = sqlfdbklogin, - "pass" = sqlfdbkpass, - "db_name" = sqlfdbkdb, - "read_timeout" = config.async_sql_query_timeout, - "write_timeout" = config.async_sql_query_timeout, - "max_threads" = config.rust_sql_thread_limit, + "host" = GLOB.configuration.database.address, + "port" = GLOB.configuration.database.port, + "user" = GLOB.configuration.database.username, + "pass" = GLOB.configuration.database.password, + "db_name" = GLOB.configuration.database.db, + "read_timeout" = GLOB.configuration.database.async_query_timeout, + "write_timeout" = GLOB.configuration.database.async_query_timeout, + "max_threads" = GLOB.configuration.database.async_thread_limit, )))) . = (result["status"] == "ok") if(.) @@ -102,11 +102,11 @@ SUBSYSTEM_DEF(dbcore) * If it is a valid version, the DB will then connect. */ /datum/controller/subsystem/dbcore/proc/CheckSchemaVersion() - if(config.sql_enabled) + if(GLOB.configuration.database.enabled) // The unit tests have their own version of this check, which wont hold the server up infinitely, so this is disabled if we are running unit tests #ifndef UNIT_TESTS - if(config.sql_enabled && sql_version != SQL_VERSION) - config.sql_enabled = FALSE + if(GLOB.configuration.database.enabled && GLOB.configuration.database.version != SQL_VERSION) + GLOB.configuration.database.enabled = FALSE schema_valid = FALSE SSticker.ticker_going = FALSE SEND_TEXT(world.log, "Database connection failed: Invalid SQL Versions") @@ -142,7 +142,7 @@ SUBSYSTEM_DEF(dbcore) //This is as close as we can get to the true round end before Disconnect() without changing where it's called, defeating the reason this is a subsystem if(SSdbcore.Connect()) var/datum/db_query/query_round_shutdown = SSdbcore.NewQuery( - "UPDATE [format_table_name("round")] SET shutdown_datetime = Now(), end_state = :end_state WHERE id = :round_id", + "UPDATE round SET shutdown_datetime = Now(), end_state = :end_state WHERE id = :round_id", list("end_state" = SSticker.end_state, "round_id" = GLOB.round_id) ) query_round_shutdown.Execute() @@ -160,7 +160,7 @@ SUBSYSTEM_DEF(dbcore) if(!IsConnected()) return var/datum/db_query/query_round_initialize = SSdbcore.NewQuery( - "INSERT INTO [format_table_name("round")] (initialize_datetime, server_ip, server_port) VALUES (Now(), INET_ATON(:internet_address), :port)", + "INSERT INTO round (initialize_datetime, server_ip, server_port) VALUES (Now(), INET_ATON(:internet_address), :port)", list("internet_address" = world.internet_address || "0", "port" = "[world.port]") ) query_round_initialize.Execute(async = FALSE) @@ -177,7 +177,7 @@ SUBSYSTEM_DEF(dbcore) if(!IsConnected()) return var/datum/db_query/query_round_start = SSdbcore.NewQuery( - "UPDATE [format_table_name("round")] SET start_datetime=NOW(), commit_hash=:hash WHERE id=:round_id", + "UPDATE round SET start_datetime=NOW(), commit_hash=:hash WHERE id=:round_id", list("hash" = GLOB.revision_info.commit_hash, "round_id" = GLOB.round_id) ) query_round_start.Execute(async = FALSE) // This happens during a time of intense server lag, so should be non-async @@ -193,7 +193,7 @@ SUBSYSTEM_DEF(dbcore) if(!IsConnected()) return var/datum/db_query/query_round_end = SSdbcore.NewQuery( - "UPDATE [format_table_name("round")] SET end_datetime = Now(), game_mode_result = :game_mode_result WHERE id = :round_id", + "UPDATE round SET end_datetime = Now(), game_mode_result = :game_mode_result WHERE id = :round_id", list("game_mode_result" = SSticker.mode_result, "station_name" = station_name(), "round_id" = GLOB.round_id) ) query_round_end.Execute() @@ -206,7 +206,7 @@ SUBSYSTEM_DEF(dbcore) * Does a few sanity checks, then asks the DLL if we are properly connected */ /datum/controller/subsystem/dbcore/proc/IsConnected() - if(!config.sql_enabled) + if(!GLOB.configuration.database.enabled) return FALSE if(!schema_valid) return FALSE @@ -222,7 +222,7 @@ SUBSYSTEM_DEF(dbcore) * Will always report "Database disabled by configuration" if the DB is disabled. */ /datum/controller/subsystem/dbcore/proc/ErrorMsg() - if(!config.sql_enabled) + if(!GLOB.configuration.database.enabled) return "Database disabled by configuration" return last_error @@ -492,7 +492,7 @@ SUBSYSTEM_DEF(dbcore) /client/proc/reestablish_db_connection() set category = "Debug" set name = "Reestablish DB Connection" - if(!config.sql_enabled) + if(!GLOB.configuration.database.enabled) to_chat(usr, "The Database is not enabled in the server configuration!") return diff --git a/code/controllers/subsystem/discord.dm b/code/controllers/subsystem/discord.dm index a0f8c1a68fe..11a2a481073 100644 --- a/code/controllers/subsystem/discord.dm +++ b/code/controllers/subsystem/discord.dm @@ -7,7 +7,7 @@ SUBSYSTEM_DEF(discord) var/last_administration_ping = 0 /datum/controller/subsystem/discord/Initialize(start_timeofday) - if(config.discord_webhooks_enabled) + if(GLOB.configuration.discord.webhooks_enabled) enabled = TRUE return ..() @@ -18,11 +18,11 @@ SUBSYSTEM_DEF(discord) var/list/webhook_urls switch(destination) if(DISCORD_WEBHOOK_ADMIN) - webhook_urls = config.discord_admin_webhook_urls + webhook_urls = GLOB.configuration.discord.admin_webhook_urls if(DISCORD_WEBHOOK_PRIMARY) - webhook_urls = config.discord_main_webhook_urls + webhook_urls = GLOB.configuration.discord.main_webhook_urls if(DISCORD_WEBHOOK_MENTOR) - webhook_urls = config.discord_mentor_webhook_urls + webhook_urls = GLOB.configuration.discord.mentor_webhook_urls var/datum/discord_webhook_payload/dwp = new() dwp.webhook_content = content @@ -36,14 +36,18 @@ SUBSYSTEM_DEF(discord) var/list/webhook_urls switch(destination) if(DISCORD_WEBHOOK_ADMIN) - webhook_urls = config.discord_admin_webhook_urls + webhook_urls = GLOB.configuration.discord.admin_webhook_urls if(DISCORD_WEBHOOK_PRIMARY) - webhook_urls = config.discord_main_webhook_urls + webhook_urls = GLOB.configuration.discord.main_webhook_urls + if(DISCORD_WEBHOOK_MENTOR) + webhook_urls = GLOB.configuration.discord.mentor_webhook_urls for(var/url in webhook_urls) SShttp.create_async_request(RUSTG_HTTP_METHOD_POST, url, dwp.serialize2json(), list("content-type" = "application/json")) // This one is for sending messages to the admin channel if no admins are active, complete with a ping to the game admins role /datum/controller/subsystem/discord/proc/send2discord_simple_noadmins(content, check_send_always = FALSE) + if(!enabled) + return // Setup some stuff var/alerttext var/list/admincounter = staff_countup(R_BAN) @@ -57,7 +61,7 @@ SUBSYSTEM_DEF(discord) else alerttext = " | **NO ADMINS ONLINE**" else - if(check_send_always && config.discord_forward_all_ahelps) + if(check_send_always && GLOB.configuration.discord.forward_all_ahelps) // If we are here, there are admins online. We want to forward everything, but obviously dont want to add a ping, so we do this add_ping = FALSE else @@ -68,17 +72,17 @@ SUBSYSTEM_DEF(discord) var/datum/discord_webhook_payload/dwp = new() dwp.webhook_content = message - for(var/url in config.discord_admin_webhook_urls) + for(var/url in GLOB.configuration.discord.admin_webhook_urls) SShttp.create_async_request(RUSTG_HTTP_METHOD_POST, url, dwp.serialize2json(), list("content-type" = "application/json")) // Helper to make administrator ping easier /datum/controller/subsystem/discord/proc/handle_administrator_ping() // Check if a role is even set - if(config.discord_admin_role_id) + if(GLOB.configuration.discord.admin_role_id) if(last_administration_ping > world.time) return "*(Role pinged recently)*" last_administration_ping = world.time + 60 SECONDS - return "<@&[config.discord_admin_role_id]>" + return "<@&[GLOB.configuration.discord.admin_role_id]>" return "" diff --git a/code/controllers/subsystem/ghost_spawns.dm b/code/controllers/subsystem/ghost_spawns.dm index 96ac8f09116..0490e764685 100644 --- a/code/controllers/subsystem/ghost_spawns.dm +++ b/code/controllers/subsystem/ghost_spawns.dm @@ -166,7 +166,7 @@ SUBSYSTEM_DEF(ghost_spawns) if(role_text) if(jobban_isbanned(M, role_text) || jobban_isbanned(M, ROLE_SYNDICATE)) return - if(config.use_exp_restrictions && min_hours) + if(GLOB.configuration.jobs.enable_exp_restrictions && min_hours) if(M.client.get_exp_type_num(EXP_TYPE_LIVING) < min_hours * 60) return if(check_antaghud && cannotPossess(M)) diff --git a/code/controllers/subsystem/holiday.dm b/code/controllers/subsystem/holiday.dm index ddde9cd62be..e9b254b1269 100644 --- a/code/controllers/subsystem/holiday.dm +++ b/code/controllers/subsystem/holiday.dm @@ -5,7 +5,7 @@ SUBSYSTEM_DEF(holiday) var/list/holidays /datum/controller/subsystem/holiday/Initialize(start_timeofday) - if(!config.allow_holidays) + if(!GLOB.configuration.general.allow_holidays) return ..() //Holiday stuff was not enabled in the config! var/YY = text2num(time2text(world.timeofday, "YY")) // get the current year diff --git a/code/controllers/subsystem/ipintel.dm b/code/controllers/subsystem/ipintel.dm index 92f02a404a1..d16aae208d2 100644 --- a/code/controllers/subsystem/ipintel.dm +++ b/code/controllers/subsystem/ipintel.dm @@ -3,13 +3,374 @@ SUBSYSTEM_DEF(ipintel) wait = 1 flags = SS_NO_FIRE init_order = INIT_ORDER_XKEYSCORE // 10 - var/enabled = 0 //disable at round start to avoid checking reconnects + // Are we enabled? Auto disable at world init to avoid checking reconnects + var/enabled = FALSE var/throttle = 0 var/errors = 0 var/list/cache = list() -/datum/controller/subsystem/ipintel/Initialize(timeofday, zlevel) - enabled = 1 - . = ..() +/datum/controller/subsystem/ipintel/Initialize(timeofday) + enabled = TRUE + return ..() + +// Represents an IP intel holder datum +/datum/ipintel + /// The IP being checked + var/ip + /// The current rating, 0-1 float. + var/intel = 0 + /// Whether this was loaded from the cache or not + var/cache = FALSE + /// How many minutes ago it was cached + var/cacheminutesago = 0 + /// The date it was cached + var/cachedate = "" + /// The real time it was cached + var/cacherealtime = 0 + +/datum/ipintel/New() + cachedate = SQLtime() + cacherealtime = world.realtime + +/datum/ipintel/proc/is_valid() + . = FALSE + if(intel < 0) + return + if(intel <= GLOB.configuration.ipintel.bad_rating) + if(world.realtime < cacherealtime + (GLOB.configuration.ipintel.hours_save_good HOURS)) + return TRUE + else + if(world.realtime < cacherealtime + (GLOB.configuration.ipintel.hours_save_bad HOURS)) + return TRUE + + + +/** + * Get IP intel + * + * Performs a lookup of the rating for an IP provided + * + * Arguments: + * * ip - The IP to lookup + * * bypasscache - Do we want to bypass the DB cache? + * * updatecache - Do we want to update the DB cache? + */ +/datum/controller/subsystem/ipintel/proc/get_ip_intel(ip, bypasscache = FALSE, updatecache = TRUE) + var/datum/ipintel/res = new() + res.ip = ip + . = res + if(!ip || !GLOB.configuration.ipintel.contact_email || !GLOB.configuration.ipintel.enabled || !enabled) + return + if(!bypasscache) + var/datum/ipintel/cachedintel = cache[ip] + if(cachedintel && cachedintel.is_valid()) + cachedintel.cache = TRUE + return cachedintel + + if(SSdbcore.IsConnected()) + var/datum/db_query/query_get_ip_intel = SSdbcore.NewQuery({" + SELECT date, intel, TIMESTAMPDIFF(MINUTE,date,NOW()) + FROM ipintel + WHERE + ip = INET_ATON(:ip) + AND (( + intel < :rating_bad + AND + date + INTERVAL :save_good HOUR > NOW() + ) OR ( + intel >= :rating_bad + AND + date + INTERVAL :save_bad HOUR > NOW() + )) + "}, list( + "ip" = ip, + "rating_bad" = GLOB.configuration.ipintel.bad_rating, + "save_good" = GLOB.configuration.ipintel.hours_save_good, + "save_bad" = GLOB.configuration.ipintel.hours_save_bad, + )) + if(!query_get_ip_intel.warn_execute()) + qdel(query_get_ip_intel) + return + if(query_get_ip_intel.NextRow()) + res.cache = TRUE + res.cachedate = query_get_ip_intel.item[1] + res.intel = text2num(query_get_ip_intel.item[2]) + res.cacheminutesago = text2num(query_get_ip_intel.item[3]) + res.cacherealtime = world.realtime - (text2num(query_get_ip_intel.item[3])*10*60) + cache[ip] = res + qdel(query_get_ip_intel) + return + qdel(query_get_ip_intel) + res.intel = ip_intel_query(ip) + if(updatecache && res.intel >= 0) + cache[ip] = res + if(SSdbcore.IsConnected()) + var/datum/db_query/query_add_ip_intel = SSdbcore.NewQuery({" + INSERT INTO ipintel (ip, intel) VALUES (INET_ATON(:ip), :intel) + ON DUPLICATE KEY UPDATE intel = VALUES(intel), date = NOW()"}, + list( + "ip" = ip, + "intel" = res.intel + ) + ) + query_add_ip_intel.warn_execute() + qdel(query_add_ip_intel) + + + +/** + * Performs the remote IPintel lookup + * + * + * + * Arguments: + * * ip - The IP to lookup + * * retried - Was this attempt retried? + */ +/datum/controller/subsystem/ipintel/proc/ip_intel_query(ip, retried = FALSE) + . = -1 //default + if(!ip) + return + if(throttle > world.timeofday) + return + if(!enabled) + return + + // Do not refactor this to use SShttp, because that requires the subsystem to be firing for requests to be made, and this will be triggered before the MC has finished loading + var/list/http[] = world.Export("http://[GLOB.configuration.ipintel.ipintel_domain]/check.php?ip=[ip]&contact=[GLOB.configuration.ipintel.contact_email]&format=json&flags=b") + + if(http) + var/status = text2num(http["STATUS"]) + + if(status == 200) + var/response = json_decode(file2text(http["CONTENT"])) + if(response) + if(response["status"] == "success") + var/intelnum = text2num(response["result"]) + if(isnum(intelnum)) + return text2num(response["result"]) + else + ipintel_handle_error("Bad intel from server: [response["result"]].", ip, retried) + if(!retried) + sleep(25) + return .(ip, 1) + else + ipintel_handle_error("Bad response from server: [response["status"]].", ip, retried) + if(!retried) + sleep(25) + return .(ip, 1) + + else if(status == 429) + ipintel_handle_error("Error #429: We have exceeded the rate limit.", ip, 1) + return + else + ipintel_handle_error("Unknown status code: [status].", ip, retried) + if(!retried) + sleep(25) + return .(ip, 1) + else + ipintel_handle_error("Unable to connect to API.", ip, retried) + if(!retried) + sleep(25) + return .(ip, 1) + + + +/** + * Error handler + * + * Handles an IP intel error, also throttling the susbystem if required + * + * Arguments: + * * error - The error description + * * ip - The IP that was tried + * * retried - Was this on a retried attempt + */ +/datum/controller/subsystem/ipintel/proc/ipintel_handle_error(error, ip, retried) + if(retried) + errors++ + error += " Could not check [ip]. Disabling IPINTEL for [errors] minute[(errors == 1 ? "" : "s")]" + throttle = world.timeofday + (2 * errors MINUTES) + else + error += " Attempting retry on [ip]." + log_ipintel(error) + + + +/** + * Logs an IPintel error + * + * Pretty self explanatory. Logs errors regarding ipintel. + * + * Arguments: + * * text - Argument 1 + */ +/datum/controller/subsystem/ipintel/proc/log_ipintel(text) + log_game("IPINTEL: [text]") + log_debug("IPINTEL: [text]") + + + +/** + * IPIntel Ban Checker + * + * Checks if a user is banned due to IPintel. It will check configuration, DB, whitelist checks, and more + * + * Arguments: + * * t_ckey - The ckey to check + * * t_ip - The IP to check + */ +/datum/controller/subsystem/ipintel/proc/ipintel_is_banned(t_ckey, t_ip) + if(!GLOB.configuration.ipintel.contact_email) + return FALSE + if(!GLOB.configuration.ipintel.enabled) + return FALSE + if(!GLOB.configuration.ipintel.whitelist_mode) + return FALSE + if(!SSdbcore.IsConnected()) + return FALSE + if(!ipintel_badip_check(t_ip)) + return FALSE + if(vpn_whitelist_check(t_ckey)) + return FALSE + return TRUE + + + +/** + * IP Rating Checker + * + * Checks if a provided IP passes the config threshold for denial + * + * Arguments: + * * target_ip - The IP to check + */ +/datum/controller/subsystem/ipintel/proc/ipintel_badip_check(target_ip) + var/rating_bad = GLOB.configuration.ipintel.bad_rating + if(!rating_bad) + log_debug("ipintel_badip_check reports misconfigured rating_bad directive") + return FALSE + var/valid_hours = GLOB.configuration.ipintel.hours_save_bad + if(!valid_hours) + log_debug("ipintel_badip_check reports misconfigured ipintel_save_bad directive") + return FALSE + var/datum/db_query/query_get_ip_intel = SSdbcore.NewQuery({" + SELECT * FROM ipintel WHERE ip = INET_ATON(:target_ip) + AND intel >= :rating_bad AND (date + INTERVAL :valid_hours HOUR) > NOW()"}, + list( + "target_ip" = target_ip, + "rating_bad" = rating_bad, + "valid_hours" = valid_hours + ) + ) + if(!query_get_ip_intel.warn_execute()) + log_debug("ipintel_badip_check reports failed query execution") + qdel(query_get_ip_intel) + return FALSE + if(!query_get_ip_intel.NextRow()) + qdel(query_get_ip_intel) + return FALSE + qdel(query_get_ip_intel) + return TRUE + + + +/** + * VPN whitelist checker + * + * Checks if a ckey is whitelisted to be using a VPN against the DB + * + * Arguments: + * * target_ckey - The ckey to check + */ +/datum/controller/subsystem/ipintel/proc/vpn_whitelist_check(target_ckey) + if(!GLOB.configuration.ipintel.whitelist_mode) + return FALSE + var/datum/db_query/query_whitelist_check = SSdbcore.NewQuery("SELECT * FROM vpn_whitelist WHERE ckey=:ckey", list( + "ckey" = target_ckey + )) + if(!query_whitelist_check.warn_execute()) + qdel(query_whitelist_check) + return FALSE + if(query_whitelist_check.NextRow()) + qdel(query_whitelist_check) + return TRUE // At least one row in the whitelist names their ckey. That means they are whitelisted. + qdel(query_whitelist_check) + return FALSE + + + +/** + * VPN whitelist adder + * + * Adds a ckey to the VPN whitelist. Asks the admin to also provide a link to their request. + * + * Arguments: + * * target_ckey - The ckey to whitelist + */ +/datum/controller/subsystem/ipintel/proc/vpn_whitelist_add(target_ckey) + var/reason_string = input(usr, "Enter link to the URL of their whitelist request on the forum.","Reason required") as message|null + if(!reason_string) + return FALSE + var/datum/db_query/query_whitelist_add = SSdbcore.NewQuery("INSERT INTO vpn_whitelist (ckey,reason) VALUES (:targetckey, :reason)", list( + "targetckey" = target_ckey, + "reason" = reason_string + )) + if(!query_whitelist_add.warn_execute()) + qdel(query_whitelist_add) + return FALSE + qdel(query_whitelist_add) + return TRUE + + + +/** + * VPN whitelist remover + * + * Removes a ckey from the VPN whitelist. Pretty simple. + * + * Arguments: + * * target_ckey - The ckey to remove + */ +/datum/controller/subsystem/ipintel/proc/vpn_whitelist_remove(target_ckey) + var/datum/db_query/query_whitelist_remove = SSdbcore.NewQuery("DELETE FROM vpn_whitelist WHERE ckey=:targetckey", list( + "targetckey" = target_ckey + )) + if(!query_whitelist_remove.warn_execute()) + qdel(query_whitelist_remove) + return FALSE + qdel(query_whitelist_remove) + return TRUE + + + +/** + * VPN whitelist panel + * + * Doesnt actually open a panel, this is just a verb to handle the rest of the whitelist operations + * + * Arguments: + * * target_ckey - The ckey to add/remove + */ +/datum/controller/subsystem/ipintel/proc/vpn_whitelist_panel(target_ckey as text) + if(!check_rights(R_ADMIN)) + return + if(!target_ckey) + return + var/is_already_whitelisted = vpn_whitelist_check(target_ckey) + if(is_already_whitelisted) + var/confirm = alert("[target_ckey] is already whitelisted. Remove them?", "Confirm Removal", "No", "Yes") + if(!confirm || confirm != "Yes") + to_chat(usr, "VPN whitelist alteration cancelled.") + return + else if(vpn_whitelist_remove(target_ckey)) + to_chat(usr, "[target_ckey] was removed from the VPN whitelist.") + else + to_chat(usr, "VPN whitelist unchanged.") + else + if(vpn_whitelist_add(target_ckey)) + to_chat(usr, "[target_ckey] was added to the VPN whitelist.") + else + to_chat(usr, "VPN whitelist unchanged.") diff --git a/code/controllers/subsystem/jobs.dm b/code/controllers/subsystem/jobs.dm index c7e18522392..f7660f4d75a 100644 --- a/code/controllers/subsystem/jobs.dm +++ b/code/controllers/subsystem/jobs.dm @@ -20,12 +20,12 @@ SUBSYSTEM_DEF(jobs) /datum/controller/subsystem/jobs/Initialize(timeofday) if(!occupations.len) SetupOccupations() - LoadJobs("config/jobs.txt") + LoadJobs(FALSE) return ..() // Only fires every 5 minutes /datum/controller/subsystem/jobs/fire() - if(!SSdbcore.IsConnected() || !config.use_exp_tracking) + if(!SSdbcore.IsConnected() || !GLOB.configuration.jobs.enable_exp_tracking) return batch_update_player_exp(announce = FALSE) // Set this to true if you ever want to inform players about their EXP gains @@ -242,8 +242,8 @@ SUBSYSTEM_DEF(jobs) /datum/controller/subsystem/jobs/proc/FillAIPosition() - if(config && !config.allow_ai) - return 0 + if(!GLOB.configuration.jobs.allow_ai) + return FALSE var/ai_selected = 0 var/datum/job/job = GetJob("AI") @@ -514,39 +514,29 @@ SUBSYSTEM_DEF(jobs) -/datum/controller/subsystem/jobs/proc/LoadJobs(jobsfile) //ran during round setup, reads info from jobs.txt -- Urist - if(!config.load_jobs_from_txt) - return 0 +/datum/controller/subsystem/jobs/proc/LoadJobs(highpop = FALSE) //ran during round setup, reads info from jobs list + if(!GLOB.configuration.jobs.enable_job_amount_overrides) + return FALSE - var/list/jobEntries = file2list(jobsfile) + var/list/joblist = list() - for(var/job in jobEntries) - if(!job) + if(highpop) + joblist = GLOB.configuration.jobs.highpop_job_map.Copy() + else + joblist = GLOB.configuration.jobs.lowpop_job_map.Copy() + + for(var/job in joblist) + // Key: name | Value: Amount + var/datum/job/J = GetJob(job) + if(!J) continue + J.total_positions = text2num(joblist[job]) + J.spawn_positions = text2num(joblist[job]) - job = trim(job) - if(!length(job)) - continue + if(job == "AI" || job == "Cyborg") //I dont like this here but it will do for now + J.total_positions = 0 - var/pos = findtext(job, "=") - var/name = null - var/value = null - - if(pos) - name = copytext(job, 1, pos) - value = copytext(job, pos + 1) - else - continue - - if(name && value) - var/datum/job/J = GetJob(name) - if(!J) continue - J.total_positions = text2num(value) - J.spawn_positions = text2num(value) - if(name == "AI" || name == "Cyborg")//I dont like this here but it will do for now - J.total_positions = 0 - - return 1 + return TRUE /datum/controller/subsystem/jobs/proc/HandleFeedbackGathering() @@ -750,7 +740,7 @@ SUBSYSTEM_DEF(jobs) continue // If a client logs out in the middle of this var/datum/db_query/exp_read = SSdbcore.NewQuery( - "SELECT exp FROM [format_table_name("player")] WHERE ckey=:ckey", + "SELECT exp FROM player WHERE ckey=:ckey", list("ckey" = C.ckey) ) @@ -834,7 +824,7 @@ SUBSYSTEM_DEF(jobs) C.prefs.exp = new_exp var/datum/db_query/update_query = SSdbcore.NewQuery( - "UPDATE [format_table_name("player")] SET exp =:newexp, lastseen=NOW() WHERE ckey=:ckey", + "UPDATE player SET exp =:newexp, lastseen=NOW() WHERE ckey=:ckey", list( "newexp" = new_exp, "ckey" = C.ckey @@ -844,7 +834,7 @@ SUBSYSTEM_DEF(jobs) player_update_queries += update_query var/datum/db_query/update_query_history = SSdbcore.NewQuery({" - INSERT INTO [format_table_name("playtime_history")] (ckey, date, time_living, time_ghost) + INSERT INTO playtime_history (ckey, date, time_living, time_ghost) VALUES (:ckey, CURDATE(), :addedliving, :addedghost) ON DUPLICATE KEY UPDATE time_living=time_living + VALUES(time_living), time_ghost=time_ghost + VALUES(time_ghost)"}, list( diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm index 6761e9647d9..e12c6be07df 100644 --- a/code/controllers/subsystem/lighting.dm +++ b/code/controllers/subsystem/lighting.dm @@ -13,7 +13,7 @@ SUBSYSTEM_DEF(lighting) /datum/controller/subsystem/lighting/Initialize(timeofday) if(!initialized) - if(config.starlight) + if(GLOB.configuration.general.starlight) for(var/I in GLOB.all_areas) var/area/A = I if(A.dynamic_lighting == DYNAMIC_LIGHTING_IFSTARLIGHT) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 87846d051f0..014b247ba9e 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -6,6 +6,10 @@ SUBSYSTEM_DEF(mapping) var/datum/map/map_datum /// What map will be used next round var/datum/map/next_map + /// List of all areas that can be accessed via IC means + var/list/teleportlocs + /// List of all areas that can be accessed via IC and OOC means + var/list/ghostteleportlocs // This has to be here because world/New() uses [station_name()], which looks this datum up /datum/controller/subsystem/mapping/PreInit() @@ -40,11 +44,11 @@ SUBSYSTEM_DEF(mapping) loadLavaland() // Pick a random away mission. - if(!config.disable_away_missions) + if(GLOB.configuration.gateway.enable_away_mission) load_away_mission() // Seed space ruins - if(!config.disable_space_ruins) + if(GLOB.configuration.ruins.enable_space_ruins) handleRuins() // Makes a blank space level for the sake of randomness @@ -57,35 +61,37 @@ SUBSYSTEM_DEF(mapping) // Spawn Lavaland ruins and rivers. log_startup_progress("Populating lavaland...") var/lavaland_setup_timer = start_watch() - seedRuins(list(level_name_to_num(MINING)), config.lavaland_budget, /area/lavaland/surface/outdoors/unexplored, GLOB.lava_ruins_templates) + seedRuins(list(level_name_to_num(MINING)), GLOB.configuration.ruins.lavaland_ruin_budget, /area/lavaland/surface/outdoors/unexplored, GLOB.lava_ruins_templates) spawn_rivers(list(level_name_to_num(MINING))) log_startup_progress("Successfully populated lavaland in [stop_watch(lavaland_setup_timer)]s.") // Now we make a list of areas for teleport locs - // TOOD: Make these locs into lists on the SS itself, not globs + teleportlocs = list() for(var/area/AR in world) if(AR.no_teleportlocs) continue - if(GLOB.teleportlocs[AR.name]) + if(teleportlocs[AR.name]) continue var/turf/picked = safepick(get_area_turfs(AR.type)) if(picked && is_station_level(picked.z)) - GLOB.teleportlocs[AR.name] = AR + teleportlocs[AR.name] = AR - GLOB.teleportlocs = sortAssoc(GLOB.teleportlocs) + teleportlocs = sortAssoc(teleportlocs) + + ghostteleportlocs = list() for(var/area/AR in world) - if(GLOB.ghostteleportlocs[AR.name]) + if(ghostteleportlocs[AR.name]) continue var/list/turfs = get_area_turfs(AR.type) if(turfs.len) - GLOB.ghostteleportlocs[AR.name] = AR + ghostteleportlocs[AR.name] = AR - GLOB.ghostteleportlocs = sortAssoc(GLOB.ghostteleportlocs) + ghostteleportlocs = sortAssoc(ghostteleportlocs) // World name - if(config && config.server_name) - world.name = "[config.server_name]: [station_name()]" + if(GLOB.configuration.general.server_name) + world.name = "[GLOB.configuration.general.server_name]: [station_name()]" else world.name = station_name() @@ -96,7 +102,7 @@ SUBSYSTEM_DEF(mapping) // load in extra levels of space ruins var/load_zlevels_timer = start_watch() log_startup_progress("Creating random space levels...") - var/num_extra_space = rand(config.extra_space_ruin_levels_min, config.extra_space_ruin_levels_max) + var/num_extra_space = rand(GLOB.configuration.ruins.extra_levels_min, GLOB.configuration.ruins.extra_levels_max) for(var/i in 1 to num_extra_space) GLOB.space_manager.add_new_zlevel("Ruin Area #[i]", linkage = CROSSLINKED, traits = list(REACHABLE, SPAWN_RUINS)) log_startup_progress("Loaded random space levels in [stop_watch(load_zlevels_timer)]s.") @@ -128,7 +134,7 @@ SUBSYSTEM_DEF(mapping) if(!SSdbcore.IsConnected()) return var/datum/db_query/query_set_map = SSdbcore.NewQuery( - "UPDATE [format_table_name("round")] SET start_datetime=NOW(), map_name=:mapname, station_name=:stationname WHERE id=:round_id", + "UPDATE round SET start_datetime=NOW(), map_name=:mapname, station_name=:stationname WHERE id=:round_id", list("mapname" = map_datum.technical_name, "stationname" = map_datum.fluff_name, "round_id" = GLOB.round_id) ) query_set_map.Execute(async = FALSE) // This happens during a time of intense server lag, so should be non-async @@ -230,11 +236,11 @@ SUBSYSTEM_DEF(mapping) if(length(GLOB.awaydestinations)) return - if(GLOB.potentialRandomZlevels && length(GLOB.potentialRandomZlevels)) + if(length(GLOB.configuration.gateway.enabled_away_missions)) var/watch = start_watch() log_startup_progress("Loading away mission...") - var/map = pick(GLOB.potentialRandomZlevels) + var/map = pick(GLOB.configuration.gateway.enabled_away_missions) var/file = file(map) if(isfile(file)) var/zlev = GLOB.space_manager.add_new_zlevel(AWAY_MISSION, linkage = UNAFFECTED, traits = list(AWAY_LEVEL,BLOCK_TELEPORT)) diff --git a/code/controllers/subsystem/medals.dm b/code/controllers/subsystem/medals.dm index 5de6cdeb27a..46023427643 100644 --- a/code/controllers/subsystem/medals.dm +++ b/code/controllers/subsystem/medals.dm @@ -4,15 +4,15 @@ SUBSYSTEM_DEF(medals) var/hub_enabled = FALSE /datum/controller/subsystem/medals/Initialize(timeofday) - if(config.medal_hub_address && config.medal_hub_password) + if(GLOB.configuration.system.medal_hub_address && GLOB.configuration.system.medal_hub_password) hub_enabled = TRUE - ..() + return ..() /datum/controller/subsystem/medals/proc/UnlockMedal(medal, client/player) set waitfor = FALSE if(!medal || !hub_enabled) return - if(isnull(world.SetMedal(medal, player, config.medal_hub_address, config.medal_hub_password))) + if(isnull(world.SetMedal(medal, player, GLOB.configuration.system.medal_hub_address, GLOB.configuration.system.medal_hub_password))) hub_enabled = FALSE log_game("MEDAL ERROR: Could not contact hub to award medal [medal] to player [player.ckey].") message_admins("Error! Failed to contact hub to award [medal] medal to [player.ckey]!") @@ -35,7 +35,7 @@ SUBSYSTEM_DEF(medals) var/newscoreparam = list2params(oldscore) - if(isnull(world.SetScores(player.ckey, newscoreparam, config.medal_hub_address, config.medal_hub_password))) + if(isnull(world.SetScores(player.ckey, newscoreparam, GLOB.configuration.system.medal_hub_address, GLOB.configuration.system.medal_hub_password))) hub_enabled = FALSE log_game("SCORE ERROR: Could not contact hub to set score. Score [score] for player [player.ckey].") message_admins("Error! Failed to contact hub to set [score] score for [player.ckey]!") @@ -44,7 +44,7 @@ SUBSYSTEM_DEF(medals) if(!score || !hub_enabled) return - var/scoreget = world.GetScores(player.ckey, score, config.medal_hub_address, config.medal_hub_password) + var/scoreget = world.GetScores(player.ckey, score, GLOB.configuration.system.medal_hub_address, GLOB.configuration.system.medal_hub_password) if(isnull(scoreget)) hub_enabled = FALSE log_game("SCORE ERROR: Could not contact hub to get score. Score [score] for player [player.ckey].") @@ -58,7 +58,7 @@ SUBSYSTEM_DEF(medals) if(!medal || !hub_enabled) return - if(isnull(world.GetMedal(medal, player, config.medal_hub_address, config.medal_hub_password))) + if(isnull(world.GetMedal(medal, player, GLOB.configuration.system.medal_hub_address, GLOB.configuration.system.medal_hub_password))) hub_enabled = FALSE log_game("MEDAL ERROR: Could not contact hub to get medal [medal] for player [player.ckey]") message_admins("Error! Failed to contact hub to get [medal] medal for [player.ckey]!") @@ -68,7 +68,7 @@ SUBSYSTEM_DEF(medals) /datum/controller/subsystem/medals/proc/LockMedal(medal, client/player) if(!player || !medal || !hub_enabled) return - var/result = world.ClearMedal(medal, player, config.medal_hub_address, config.medal_hub_password) + var/result = world.ClearMedal(medal, player, GLOB.configuration.system.medal_hub_address, GLOB.configuration.system.medal_hub_password) switch(result) if(null) hub_enabled = FALSE @@ -81,6 +81,6 @@ SUBSYSTEM_DEF(medals) /datum/controller/subsystem/medals/proc/ClearScore(client/player) - if(isnull(world.SetScores(player.ckey, "", config.medal_hub_address, config.medal_hub_password))) + if(isnull(world.SetScores(player.ckey, "", GLOB.configuration.system.medal_hub_address, GLOB.configuration.system.medal_hub_password))) log_game("MEDAL ERROR: Could not contact hub to clear scores for [player.ckey].") message_admins("Error! Failed to contact hub to clear scores for [player.ckey]!") diff --git a/code/controllers/subsystem/nightshift.dm b/code/controllers/subsystem/nightshift.dm index deffcb6bddf..fe5d17dccd4 100644 --- a/code/controllers/subsystem/nightshift.dm +++ b/code/controllers/subsystem/nightshift.dm @@ -14,9 +14,9 @@ SUBSYSTEM_DEF(nightshift) var/high_security_mode = FALSE /datum/controller/subsystem/nightshift/Initialize() - if(!config.enable_night_shifts) + if(!GLOB.configuration.general.enable_night_shifts) can_fire = FALSE - if(config.randomize_shift_time) + if(GLOB.configuration.general.randomise_shift_time) GLOB.gametime_offset = rand(0, 23) HOURS return ..() diff --git a/code/controllers/subsystem/profiler.dm b/code/controllers/subsystem/profiler.dm index 418af664d92..2d30360edb1 100644 --- a/code/controllers/subsystem/profiler.dm +++ b/code/controllers/subsystem/profiler.dm @@ -13,7 +13,7 @@ SUBSYSTEM_DEF(profiler) ..("F:[round(fetch_cost, 1)]ms | W:[round(write_cost, 1)]ms") /datum/controller/subsystem/profiler/Initialize() - if(!config.auto_profile) + if(!GLOB.configuration.general.enable_auto_profiler) StopProfiling() //Stop the early start profiler if we dont want it on in the config flags |= SS_NO_FIRE return ..() @@ -22,7 +22,7 @@ SUBSYSTEM_DEF(profiler) DumpFile() /datum/controller/subsystem/profiler/Shutdown() - if(config.auto_profile) + if(GLOB.configuration.general.enable_auto_profiler) DumpFile() return ..() diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm index 4eb3adc62da..85e9e5da52c 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -1,5 +1,4 @@ #define CALL_SHUTTLE_REASON_LENGTH 12 - SUBSYSTEM_DEF(shuttle) name = "Shuttle" wait = 10 @@ -42,6 +41,8 @@ SUBSYSTEM_DEF(shuttle) var/sold_atoms = "" var/list/hidden_shuttle_turfs = list() //all turfs hidden from navigation computers associated with a list containing the image hiding them and the type of the turf they are pretending to be var/list/hidden_shuttle_turf_images = list() //only the images from the above list + /// Default refuel delay + var/refuel_delay = 20 MINUTES /datum/controller/subsystem/shuttle/Initialize(start_timeofday) ordernum = rand(1,9000) @@ -97,7 +98,7 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/proc/secondsToRefuel() var/elapsed = world.time - SSticker.round_start_time - var/remaining = round((config.shuttle_refuel_delay - elapsed) / 10) + var/remaining = round((refuel_delay - elapsed) / 10) return remaining > 0 ? remaining : 0 /datum/controller/subsystem/shuttle/proc/requestEvac(mob/user, call_reason) @@ -115,7 +116,7 @@ SUBSYSTEM_DEF(shuttle) emergency = backup_shuttle if(secondsToRefuel()) - to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - SSticker.round_start_time) - config.shuttle_refuel_delay)/600))] minutes before trying again.") + to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - SSticker.round_start_time) - refuel_delay)/600))] minutes before trying again.") return switch(emergency.mode) diff --git a/code/controllers/subsystem/statistics.dm b/code/controllers/subsystem/statistics.dm index bfc7d9655d5..63c20742904 100644 --- a/code/controllers/subsystem/statistics.dm +++ b/code/controllers/subsystem/statistics.dm @@ -6,7 +6,7 @@ SUBSYSTEM_DEF(statistics) /datum/controller/subsystem/statistics/Initialize(start_timeofday) - if(!config.sql_enabled) + if(!SSdbcore.IsConnected()) flags |= SS_NO_FIRE // Disable firing if SQL is disabled return ..() @@ -18,7 +18,7 @@ SUBSYSTEM_DEF(statistics) return else var/datum/db_query/statquery = SSdbcore.NewQuery( - "INSERT INTO [format_table_name("legacy_population")] (playercount, admincount, time) VALUES (:playercount, :admincount, NOW())", + "INSERT INTO legacy_population (playercount, admincount, time) VALUES (:playercount, :admincount, NOW())", list( "playercount" = length(GLOB.clients), "admincount" = length(GLOB.admins) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index c46301713e0..14a952cb36f 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -7,10 +7,12 @@ SUBSYSTEM_DEF(ticker) runlevels = RUNLEVEL_LOBBY | RUNLEVEL_SETUP | RUNLEVEL_GAME offline_implications = "The game is no longer aware of when the round ends. Immediate server restart recommended." - /// Time the world started, relative to world.time + /// Time the game should start, relative to world.time var/round_start_time = 0 + /// Time that the round started + var/time_game_started = 0 /// Default timeout for if world.Reboot() doesnt have a time specified - var/const/restart_timeout = 600 + var/const/restart_timeout = 75 SECONDS /// Current status of the game. See code\__DEFINES\game.dm var/current_state = GAME_STATE_STARTUP /// Do we want to force-start as soon as we can @@ -79,9 +81,9 @@ SUBSYSTEM_DEF(ticker) switch(current_state) if(GAME_STATE_STARTUP) // This is ran as soon as the MC starts firing, and should only run ONCE, unless startup fails - round_start_time = world.time + (config.pregame_timestart * 10) + round_start_time = world.time + (GLOB.configuration.general.lobby_time SECONDS) to_chat(world, "Welcome to the pre-game lobby!") - to_chat(world, "Please, setup your character and select ready. Game will start in [config.pregame_timestart] seconds") + to_chat(world, "Please, setup your character and select ready. Game will start in [GLOB.configuration.general.lobby_time] seconds") current_state = GAME_STATE_PREGAME fire() // TG says this is a good idea for(var/mob/new_player/N in GLOB.player_list) @@ -114,10 +116,10 @@ SUBSYSTEM_DEF(ticker) if(world.time > next_autotransfer) SSvote.autotransfer() - next_autotransfer = world.time + config.vote_autotransfer_interval + next_autotransfer = world.time + GLOB.configuration.vote.autotransfer_interval_time var/game_finished = SSshuttle.emergency.mode >= SHUTTLE_ENDGAME || mode.station_was_nuked - if(config.continuous_rounds) + if(GLOB.configuration.gamemode.disable_certain_round_early_end) mode.check_finished() // some modes contain var-changing code in here, so call even if we don't uses result else game_finished |= mode.check_finished() @@ -129,6 +131,8 @@ SUBSYSTEM_DEF(ticker) auto_toggle_ooc(TRUE) // Turn it on declare_completion() addtimer(CALLBACK(src, .proc/call_reboot), 5 SECONDS) + if(GLOB.configuration.vote.enable_map_voting) + SSvote.initiate_vote("map", "the server", TRUE) // Start a map vote. Timing is a little tight here but we should be good. /datum/controller/subsystem/ticker/proc/call_reboot() if(mode.station_was_nuked) @@ -147,7 +151,7 @@ SUBSYSTEM_DEF(ticker) var/list/datum/game_mode/runnable_modes if(GLOB.master_mode == "random" || GLOB.master_mode == "secret") - runnable_modes = config.get_runnable_modes() + runnable_modes = GLOB.configuration.gamemode.get_runnable_modes() if(!length(runnable_modes)) to_chat(world, "Unable to choose playable game mode. Reverting to pre-game lobby.") force_start = FALSE @@ -155,9 +159,9 @@ SUBSYSTEM_DEF(ticker) Master.SetRunLevel(RUNLEVEL_LOBBY) return FALSE if(GLOB.secret_force_mode != "secret") - var/datum/game_mode/M = config.pick_mode(GLOB.secret_force_mode) + var/datum/game_mode/M = GLOB.configuration.gamemode.pick_mode(GLOB.secret_force_mode) if(M.can_start()) - mode = config.pick_mode(GLOB.secret_force_mode) + mode = GLOB.configuration.gamemode.pick_mode(GLOB.secret_force_mode) SSjobs.ResetOccupations() if(!mode) mode = pickweight(runnable_modes) @@ -165,7 +169,7 @@ SUBSYSTEM_DEF(ticker) var/mtype = mode.type mode = new mtype else - mode = config.pick_mode(GLOB.master_mode) + mode = GLOB.configuration.gamemode.pick_mode(GLOB.master_mode) if(!mode.can_start()) to_chat(world, "Unable to start [mode.name]. Not enough players, [mode.required_players] players needed. Reverting to pre-game lobby.") @@ -264,10 +268,10 @@ SUBSYSTEM_DEF(ticker) SSdiscord.send2discord_simple_noadmins("**\[Info]** Round has started") auto_toggle_ooc(FALSE) // Turn it off - round_start_time = world.time + time_game_started = world.time // Sets the auto shuttle vote to happen after the config duration - next_autotransfer = world.time + config.vote_autotransfer_initial + next_autotransfer = world.time + GLOB.configuration.vote.autotransfer_initial_time for(var/mob/new_player/N in GLOB.mob_list) if(N.client) @@ -279,10 +283,12 @@ SUBSYSTEM_DEF(ticker) if(playercount >= highpop_trigger) log_debug("Playercount: [playercount] versus trigger: [highpop_trigger] - loading highpop job config") - SSjobs.LoadJobs("config/jobs_highpop.txt") + SSjobs.LoadJobs(TRUE) else log_debug("Playercount: [playercount] versus trigger: [highpop_trigger] - keeping standard job config") + SSnightshift.check_nightshift() + #ifdef UNIT_TESTS RunUnitTests() #endif diff --git a/code/controllers/subsystem/tickets/tickets.dm b/code/controllers/subsystem/tickets/tickets.dm index 24919f801f5..d5eb31117e2 100644 --- a/code/controllers/subsystem/tickets/tickets.dm +++ b/code/controllers/subsystem/tickets/tickets.dm @@ -214,14 +214,18 @@ SUBSYSTEM_DEF(tickets) "Already Resolved" = "The problem has been resolved already.", "Mentorhelp" = "Please redirect your question to Mentorhelp, as they are better experienced with these types of questions.", "Happens Again" = "Thanks, let us know if it continues to happen.", - "Github Issue Report" = "To report a bug, please go to our Github page. Then go to 'Issues'. Then 'New Issue'. Then fill out the report form. If the report would reveal current-round information, file it after the round ends.", "Clear Cache" = "To fix a blank screen, go to the 'Special Verbs' tab and press 'Reload UI Resources'. If that fails, clear your BYOND cache (instructions provided with 'Reload UI Resources'). If that still fails, please adminhelp again, stating you have already done the following." , "IC Issue" = "This is an In Character (IC) issue and will not be handled by admins. You could speak to Security, Internal Affairs, a Departmental Head, Nanotrasen Representetive, or any other relevant authority currently on station.", "Reject" = "Reject", "Man Up" = "Man Up", - "Appeal on the Forums" = "Appealing a ban must occur on the forums. Privately messaging, or adminhelping about your ban will not resolve it. To appeal your ban, please head to [config.banappeals]" ) + if(GLOB.configuration.url.banappeals_url) + response_phrases["Appeal on the Forums"] = "Appealing a ban must occur on the forums. Privately messaging, or adminhelping about your ban will not resolve it. To appeal your ban, please head to [GLOB.configuration.url.banappeals_url]" + + if(GLOB.configuration.url.github_url) + response_phrases["Github Issue Report"] = "To report a bug, please go to our Github page. Then go to 'Issues'. Then 'New Issue'. Then fill out the report form. If the report would reveal current-round information, file it after the round ends." + var/sorted_responses = list() for(var/key in response_phrases) //build a new list based on the short descriptive keys of the master list so we can send this as the input instead of the full paragraphs to the admin choosing which autoresponse sorted_responses += key diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 743d14a3962..83963e99562 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -27,7 +27,7 @@ SUBSYSTEM_DEF(vote) // Calculate how much time is remaining by comparing current time, to time of vote start, // plus vote duration - time_remaining = round((started_time + config.vote_period - world.time)/10) + time_remaining = round((started_time + GLOB.configuration.vote.vote_time - world.time)/10) if(time_remaining < 0) result() @@ -53,9 +53,9 @@ SUBSYSTEM_DEF(vote) voting.Cut() current_votes.Cut() - if(auto_muted && !config.ooc_allowed && !(config.auto_toggle_ooc_during_round && SSticker.current_state == GAME_STATE_PLAYING)) + if(auto_muted && !GLOB.ooc_enabled && !(GLOB.configuration.general.auto_disable_ooc && SSticker.current_state == GAME_STATE_PLAYING)) auto_muted = 0 - config.ooc_allowed = !( config.ooc_allowed ) + GLOB.ooc_enabled = TRUE to_chat(world, "The OOC channel has been automatically enabled due to vote end.") log_admin("OOC was toggled automatically due to vote end.") message_admins("OOC has been toggled on automatically.") @@ -83,7 +83,7 @@ SUBSYSTEM_DEF(vote) choices -= sorted_highest choices = sorted_choices //default-vote for everyone who didn't vote - if(!config.vote_no_default && choices.len) + if(!GLOB.configuration.vote.disable_default_vote && choices.len) var/non_voters = (GLOB.clients.len - total_votes) if(non_voters > 0) if(mode == "restart") @@ -196,7 +196,7 @@ SUBSYSTEM_DEF(vote) /datum/controller/subsystem/vote/proc/submit_vote(ckey, vote) if(mode) - if(config.vote_no_dead && usr.stat == DEAD && !usr.client.holder) + if(GLOB.configuration.vote.prevent_dead_voting && usr.stat == DEAD && !usr.client.holder) return 0 if(current_votes[ckey]) choices[choices[current_votes[ckey]]]-- @@ -210,7 +210,7 @@ SUBSYSTEM_DEF(vote) /datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, code_invoked = FALSE) if(!mode) if(started_time != null && !check_rights(R_ADMIN)) - var/next_allowed_time = (started_time + config.vote_delay) + var/next_allowed_time = (started_time + GLOB.configuration.vote.vote_delay) if(next_allowed_time > world.time) return 0 @@ -221,7 +221,7 @@ SUBSYSTEM_DEF(vote) if("gamemode") if(SSticker.current_state >= 2) return 0 - choices.Add(config.votable_modes) + choices.Add(GLOB.configuration.gamemode.votable_modes) if("crew_transfer") if(check_rights(R_ADMIN|R_MOD)) if(SSticker.current_state <= 2) @@ -264,33 +264,33 @@ SUBSYSTEM_DEF(vote) log_vote(text) to_chat(world, {"[text] Click here or type vote to place your vote. - You have [config.vote_period/10] seconds to vote."}) + You have [GLOB.configuration.vote.vote_time / 10] seconds to vote."}) switch(vote_type) if("crew_transfer", "gamemode", "custom", "map") SEND_SOUND(world, sound('sound/ambience/alarm4.ogg')) if(mode == "gamemode" && SSticker.ticker_going) SSticker.ticker_going = FALSE to_chat(world, "Round start has been delayed.") - if(mode == "crew_transfer" && config.ooc_allowed) - auto_muted = 1 - config.ooc_allowed = !( config.ooc_allowed ) + if(mode == "crew_transfer" && GLOB.ooc_enabled) + auto_muted = TRUE + GLOB.ooc_enabled = FALSE to_chat(world, "The OOC channel has been automatically disabled due to a crew transfer vote.") log_admin("OOC was toggled automatically due to crew_transfer vote.") message_admins("OOC has been toggled off automatically.") - if(mode == "gamemode" && config.ooc_allowed) - auto_muted = 1 - config.ooc_allowed = !( config.ooc_allowed ) + if(mode == "gamemode" && GLOB.ooc_enabled) + auto_muted = TRUE + GLOB.ooc_enabled = FALSE to_chat(world, "The OOC channel has been automatically disabled due to the gamemode vote.") log_admin("OOC was toggled automatically due to gamemode vote.") message_admins("OOC has been toggled off automatically.") - if(mode == "custom" && config.ooc_allowed) - auto_muted = 1 - config.ooc_allowed = !( config.ooc_allowed ) + if(mode == "custom" && GLOB.ooc_enabled) + auto_muted = TRUE + GLOB.ooc_enabled = FALSE to_chat(world, "The OOC channel has been automatically disabled due to a custom vote.") log_admin("OOC was toggled automatically due to custom vote.") message_admins("OOC has been toggled off automatically.") - time_remaining = round(config.vote_period/10) + time_remaining = round(GLOB.configuration.vote.vote_time / 10) return 1 return 0 @@ -315,25 +315,25 @@ SUBSYSTEM_DEF(vote) else dat += "

Start a vote:



" message_text += "Special Orders for [station_name()]:

" for(var/datum/station_goal/G in station_goals) @@ -518,7 +518,7 @@ message_text += G.get_report() message_text += "
" - print_command_report(message_text, "[command_name()] Orders", FALSE) + print_command_report(message_text, "NAS Trurl Orders", FALSE) /datum/game_mode/proc/declare_station_goal_completion() for(var/V in station_goals) diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index a579a90273c..e36411a506a 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -181,7 +181,7 @@ GLOBAL_LIST_EMPTY(cortical_stacks) //Stacks for 'leave nobody behind' objective. 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)") + to_chat(raider.current, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Vox_Raider)") spawn(25) show_objectives(raider) diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index 6587907cdbd..f3cc450f155 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -158,7 +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)") + to_chat(abductor.current, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Abductor)") abductor.announce_objectives() @@ -171,7 +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)") + to_chat(abductor.current, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Abductor)") abductor.announce_objectives() diff --git a/code/game/gamemodes/miniantags/abduction/machinery/pad.dm b/code/game/gamemodes/miniantags/abduction/machinery/pad.dm index 24e43b6583f..b74f9445664 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/pad.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/pad.dm @@ -12,7 +12,7 @@ /obj/machinery/abductor/pad/proc/Send() if(teleport_target == null) - teleport_target = GLOB.teleportlocs[pick(GLOB.teleportlocs)] + teleport_target = SSmapping.teleportlocs[pick(SSmapping.teleportlocs)] flick("alien-pad", src) for(var/mob/living/target in loc) target.forceMove(teleport_target) diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index ea62734f383..b2f07c7e4e6 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -837,7 +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)") + to_chat(src, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/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 e597da7864f..bc82815d7f5 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -112,7 +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)") + to_chat(src, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Swarmer)") /mob/living/simple_animal/hostile/swarmer/New() ..() diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm index 5c4b83e965c..d2462442fdf 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm @@ -4,10 +4,10 @@ /datum/event/spawn_swarmer/announce() if(prob(25)) //25% chance to announce it to the crew - var/swarmer_report = "[command_name()] High-Priority Update" + var/swarmer_report = "NAS Trurl High-Priority Update" swarmer_report += "

Our long-range sensors have detected an odd signal emanating from your station's gateway. We recommend immediate investigation of your gateway, as something may have come \ through." - print_command_report(swarmer_report, "Classified [command_name()] Update", FALSE) + print_command_report(swarmer_report, "Classified NAS Trurl Update", FALSE) GLOB.event_announcement.Announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg') /datum/event/spawn_swarmer/start() diff --git a/code/game/gamemodes/miniantags/guardian/guardian.dm b/code/game/gamemodes/miniantags/guardian/guardian.dm index db33bc355a8..beea65ec465 100644 --- a/code/game/gamemodes/miniantags/guardian/guardian.dm +++ b/code/game/gamemodes/miniantags/guardian/guardian.dm @@ -343,7 +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)") + to_chat(G, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Guardian)") G.faction = user.faction var/color = pick(color_list) diff --git a/code/game/gamemodes/miniantags/morph/morph_event.dm b/code/game/gamemodes/miniantags/morph/morph_event.dm index f24166b1381..ad42365947b 100644 --- a/code/game/gamemodes/miniantags/morph/morph_event.dm +++ b/code/game/gamemodes/miniantags/morph/morph_event.dm @@ -26,7 +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)") + to_chat(S, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/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 9373861798e..b1e9b2644a5 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, "For more information, check the wiki page: ([config.wikiurl]/index.php/Revenant)") + to_chat(src, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Revenant)") var/datum/objective/revenant/objective = new objective.owner = mind mind.objectives += objective @@ -234,6 +234,8 @@ /mob/living/simple_animal/revenant/proc/castcheck(essence_cost) if(!src) return + if(holy_check(src)) + return var/turf/T = get_turf(src) if(istype(T, /turf/simulated/wall)) to_chat(src, "You cannot use abilities from inside of a wall.") diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm index 0c4bfc48f33..0459b850638 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm @@ -250,7 +250,7 @@ human.adjustToxLoss(toxdamage) human.AdjustConfused(confusion, bound_lower = 0, bound_upper = maxconfusion) new/obj/effect/temp_visual/revenant(human.loc) - if(!istype(T, /turf/simulated/wall/rust) && !istype(T, /turf/simulated/wall/r_wall) && istype(T, /turf/simulated/wall) && prob(15)) + if(!istype(T, /turf/simulated/wall/indestructible) && !istype(T, /turf/simulated/wall/rust) && !istype(T, /turf/simulated/wall/r_wall) && istype(T, /turf/simulated/wall) && prob(15)) new/obj/effect/temp_visual/revenant(T) T.ChangeTurf(/turf/simulated/wall/rust) if(!istype(T, /turf/simulated/wall/r_wall/rust) && istype(T, /turf/simulated/wall/r_wall) && prob(15)) diff --git a/code/game/gamemodes/miniantags/slaughter/slaughter.dm b/code/game/gamemodes/miniantags/slaughter/slaughter.dm index 88ce7fbff99..feeffc68c04 100644 --- a/code/game/gamemodes/miniantags/slaughter/slaughter.dm +++ b/code/game/gamemodes/miniantags/slaughter/slaughter.dm @@ -92,7 +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)") + to_chat(src, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/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 fafa2c4e4a1..1ace6f6a836 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -250,7 +250,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)") + to_chat(syndicate.current, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Nuclear_Agent)") return diff --git a/code/game/gamemodes/nuclear/nuclear_challenge.dm b/code/game/gamemodes/nuclear/nuclear_challenge.dm index be071fc80ad..c7a5f1d32bc 100644 --- a/code/game/gamemodes/nuclear/nuclear_challenge.dm +++ b/code/game/gamemodes/nuclear/nuclear_challenge.dm @@ -60,7 +60,7 @@ // No. of player - Min. Player to dec, divided by player per bonus, then multipled by TC per bonus. Rounded. total_tc = CHALLENGE_TELECRYSTALS + round((((GLOB.player_list.len - CHALLENGE_MIN_PLAYERS)/CHALLENGE_SCALE_PLAYER) * CHALLENGE_SCALE_BONUS)) share_telecrystals() - config.shuttle_refuel_delay = CHALLENGE_SHUTTLE_DELAY + SSshuttle.refuel_delay = CHALLENGE_SHUTTLE_DELAY qdel(src) /obj/item/nuclear_challenge/proc/share_telecrystals() diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index b4452295c31..93e385df6a9 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -38,7 +38,7 @@ /datum/game_mode/revolution/pre_setup() possible_revolutionaries = get_players_for_role(ROLE_REV) - if(config.protect_roles_from_antagonist) + if(GLOB.configuration.gamemode.prevent_mindshield_antags) restricted_jobs += protected_jobs @@ -110,7 +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)") + to_chat(rev_mind.current, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Revolution)") ///////////////////////////////////////////////////////////////////////////////// //This are equips the rev heads with their gear, and makes the clown not clumsy// @@ -214,7 +214,7 @@ //Checks if the round is over// /////////////////////////////// /datum/game_mode/revolution/check_finished() - if(config.continuous_rounds) + if(GLOB.configuration.gamemode.disable_certain_round_early_end) if(finished != 0) SSshuttle.emergencyNoEscape = 0 if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 67109419040..1cb4e6fbb35 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -81,7 +81,7 @@ Made by Xhuis to_chat(world, "There are alien shadowlings on the station. Crew: Kill the shadowlings before they can eat or enthrall the crew. Shadowlings: Enthrall the crew while remaining in hiding.") /datum/game_mode/shadowling/pre_setup() - if(config.protect_roles_from_antagonist) + if(GLOB.configuration.gamemode.prevent_mindshield_antags) restricted_jobs += protected_jobs var/list/datum/mind/possible_shadowlings = get_players_for_role(ROLE_SHADOWLING) @@ -126,7 +126,7 @@ Made by Xhuis 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, "For more information, check the wiki page: ([config.wikiurl]/index.php/Shadowling)") + to_chat(shadow.current, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Shadowling)") /datum/game_mode/proc/process_shadow_objectives(datum/mind/shadow_mind) @@ -168,7 +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)") + to_chat(new_thrall_mind.current, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/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? @@ -216,13 +216,13 @@ Made by Xhuis if(shadow.current.stat == DEAD) continue shadows_alive++ - if(shadow.special_role == SPECIAL_ROLE_SHADOWLING && config.shadowling_max_age) + if(shadow.special_role == SPECIAL_ROLE_SHADOWLING && GLOB.configuration.gamemode.shadowling_max_age) if(ishuman(shadow.current)) var/mob/living/carbon/human/H = shadow.current if(!isshadowling(H)) for(var/obj/effect/proc_holder/spell/targeted/shadowling_hatch/hatch_ability in shadow.spell_list) hatch_ability.cycles_unused++ - if(!H.stunned && prob(20) && hatch_ability.cycles_unused > config.shadowling_max_age) + if(!H.stunned && prob(20) && hatch_ability.cycles_unused > GLOB.configuration.gamemode.shadowling_max_age) var/shadow_nag_messages = list("You can barely hold yourself in this lesser form!", "The urge to become something greater is overwhelming!", "You feel a burning passion to hatch free of this shell and assume godhood!") H.take_overall_damage(0, 3) to_chat(H, "[pick(shadow_nag_messages)]") diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index f247f860400..6cbfeca3c10 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -28,7 +28,7 @@ /datum/game_mode/traitor/pre_setup() - if(config.protect_roles_from_antagonist) + if(GLOB.configuration.gamemode.prevent_mindshield_antags) restricted_jobs += protected_jobs var/list/possible_traitors = get_players_for_role(ROLE_TRAITOR) @@ -39,7 +39,7 @@ var/num_traitors = 1 - if(config.traitor_scaling) + if(GLOB.configuration.gamemode.traitor_scaling) num_traitors = max(1, round((num_players())/(traitor_scaling_coeff))) else num_traitors = max(1, min(num_players(), traitors_possible)) diff --git a/code/game/gamemodes/vampire/traitor_vamp.dm b/code/game/gamemodes/vampire/traitor_vamp.dm index 7fb1088214b..9ad66fdb976 100644 --- a/code/game/gamemodes/vampire/traitor_vamp.dm +++ b/code/game/gamemodes/vampire/traitor_vamp.dm @@ -17,7 +17,7 @@ /datum/game_mode/traitor/vampire/pre_setup() - if(config.protect_roles_from_antagonist) + if(GLOB.configuration.gamemode.prevent_mindshield_antags) restricted_jobs += protected_jobs var/list/datum/mind/possible_vampires = get_players_for_role(ROLE_VAMPIRE) diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index ff3a6152da1..69972d2bea5 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -40,7 +40,7 @@ /datum/game_mode/vampire/pre_setup() - if(config.protect_roles_from_antagonist) + if(GLOB.configuration.gamemode.prevent_mindshield_antags) restricted_jobs += protected_jobs var/list/datum/mind/possible_vampires = get_players_for_role(ROLE_VAMPIRE) @@ -193,7 +193,7 @@ 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)") + to_chat(vampire.current, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Vampire)") return /datum/vampire var/bloodtotal = 0 // CHANGE TO ZERO WHEN PLAYTESTING HAPPENS diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index 0340352412a..36a24113dc9 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -7,10 +7,12 @@ range = 1 charge_max = 1800 action_background_icon_state = "bg_vampire" + holy_area_cancast = FALSE //Stops cult magic from working on holy ground eg: chapel var/required_blood = 0 var/gain_desc = null var/deduct_blood_on_cast = TRUE //Do we want to take the blood when this is cast, or at a later point? + /obj/effect/proc_holder/spell/vampire/New() ..() if(!gain_desc) @@ -40,10 +42,6 @@ if(vampire.bloodusable < required_blood) to_chat(user, "You require at least [required_blood] units of usable blood to do that!") return 0 - //chapel check - if(istype(loc.loc, /area/chapel) && !fullpower) - to_chat(user, "Your powers are useless on this holy ground.") - return 0 return ..() /obj/effect/proc_holder/spell/vampire/can_cast(mob/user = usr, charge_check = TRUE, show_message = FALSE) diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index 937dc11f61c..259de282382 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -8,107 +8,99 @@ throw_speed = 1 throw_range = 5 w_class = WEIGHT_CLASS_TINY - var/used = 0 + var/used = FALSE +/obj/item/contract/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.inventory_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "WizardApprenticeContract", name, 400, 600, master_ui, state) + ui.open() -/obj/item/contract/attack_self(mob/user as mob) - user.set_machine(src) - var/dat - if(used) - dat = "You have already summoned your apprentice.
" - else - dat = "Contract of Apprenticeship:
" - dat += "Using this contract, you may summon an apprentice to aid you on your mission.
" - dat += "If you are unable to establish contact with your apprentice, you can feed the contract back to the spellbook to refund your points.
" - dat += "Which school of magic is your apprentice studying?:
" - dat += "Destruction
" - dat += "Your apprentice is skilled in offensive magic. They know Magic Missile and Fireball.
" - dat += "Bluespace Manipulation
" - dat += "Your apprentice is able to defy physics, melting through solid objects and travelling great distances in the blink of an eye. They know Teleport and Ethereal Jaunt.
" - dat += "Healing
" - dat += "Your apprentice is training to cast spells that will aid your survival. They know Forcewall and Charge and come with a Staff of Healing.
" - dat += "Robeless
" - dat += "Your apprentice is training to cast spells without their robes. They know Knock and Mindswap.
" - user << browse(dat, "window=radio") - onclose(user, "radio") - return +/obj/item/contract/ui_data(mob/user) + var/list/data = list() + data["used"] = used + return data +/obj/item/contract/ui_act(action, params) + if(..()) + return -/obj/item/contract/Topic(href, href_list) - ..() var/mob/living/carbon/human/H = usr - if(H.stat || H.restrained()) + if(used) return - if(!istype(H, /mob/living/carbon/human)) - return 1 - if(loc == H || (in_range(src, H) && istype(loc, /turf))) - H.set_machine(src) - if(href_list["school"]) - if(used) - to_chat(H, "You already used this contract!") - return - used = 1 - var/image/source = image('icons/obj/cardboard_cutout.dmi', "cutout_wizard") - var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as the wizard apprentice of [H.real_name]?", ROLE_WIZARD, TRUE, source = source) - if(candidates.len) - var/mob/C = pick(candidates) - new /obj/effect/particle_effect/smoke(H.loc) - var/mob/living/carbon/human/M = new/mob/living/carbon/human(H.loc) - M.key = C.key - to_chat(M, "You are [H.real_name]'s apprentice! You are bound by magic contract to follow [H.p_their()] orders and help [H.p_them()] in accomplishing their goals.") - switch(href_list["school"]) - if("destruction") - M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null)) - M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/click/fireball(null)) - to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned powerful, destructive spells. You are able to cast magic missile and fireball.") - if("bluespace") - M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) - M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) - to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned reality bending mobility spells. You are able to cast teleport and ethereal jaunt.") - if("healing") - M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/charge(null)) - M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/forcewall(null)) - M.equip_to_slot_or_del(new /obj/item/gun/magic/staff/healing(M), slot_r_hand) - to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned livesaving survival spells. You are able to cast charge and forcewall.") - if("robeless") - M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null)) - M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/click/mind_transfer(null)) - to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned stealthy, robeless spells. You are able to cast knock and mindswap.") + used = TRUE - M.equip_to_slot_or_del(new /obj/item/radio/headset(M), slot_l_ear) - M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform) - M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), slot_wear_suit) - M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/storage/backpack(M), slot_back) - M.equip_to_slot_or_del(new /obj/item/storage/box(M), slot_in_backpack) - M.equip_to_slot_or_del(new /obj/item/teleportation_scroll/apprentice(M), slot_r_store) - var/wizard_name_first = pick(GLOB.wizard_first) - var/wizard_name_second = pick(GLOB.wizard_second) - var/randomname = "[wizard_name_first] [wizard_name_second]" - var/newname = sanitize(copytext(input(M, "You are the wizard's apprentice. Would you like to change your name to something else?", "Name change", randomname) as null|text,1,MAX_NAME_LEN)) + var/image/source = image('icons/obj/cardboard_cutout.dmi', "cutout_wizard") + var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as the wizard apprentice of [H.real_name]?", ROLE_WIZARD, TRUE, source = source) - if(!newname) - newname = randomname - M.mind.name = newname - M.real_name = newname - M.name = newname - var/datum/objective/protect/new_objective = new /datum/objective/protect - new_objective.owner = M:mind - new_objective:target = H:mind - new_objective.explanation_text = "Protect [H.real_name], the wizard." - M.mind.objectives += new_objective - SSticker.mode.apprentices += M.mind - M.mind.special_role = SPECIAL_ROLE_WIZARD_APPRENTICE - SSticker.mode.update_wiz_icons_added(M.mind) - M.faction = list("wizard") - else - used = 0 - to_chat(H, "Unable to reach your apprentice! You can either attack the spellbook with the contract to refund your points, or wait and try again later.") - return + if(length(candidates)) + var/mob/C = pick(candidates) + new /obj/effect/particle_effect/smoke(H.loc) + var/mob/living/carbon/human/M = new/mob/living/carbon/human(H.loc) + M.key = C.key + to_chat(M, "You are the [H.real_name]'s apprentice! You are bound by magic contract to follow [H.p_their()] orders and help [H.p_them()] in accomplishing their goals.") + switch(action) + if("destruction") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/click/fireball(null)) + to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned powerful, destructive spells. You are able to cast magic missile and fireball.") + if("bluespace") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) + to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned reality bending mobility spells. You are able to cast teleport and ethereal jaunt.") + if("healing") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/charge(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/forcewall(null)) + M.equip_to_slot_or_del(new /obj/item/gun/magic/staff/healing(M), slot_r_hand) + to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned livesaving survival spells. You are able to cast charge and forcewall.") + if("robeless") + M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/click/mind_transfer(null)) + to_chat(M, "Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned stealthy, robeless spells. You are able to cast knock and mindswap.") + M.equip_to_slot_or_del(new /obj/item/radio/headset(M), slot_l_ear) + M.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(M), slot_head) + M.equip_to_slot_or_del(new /obj/item/storage/backpack(M), slot_back) + M.equip_to_slot_or_del(new /obj/item/storage/box(M), slot_in_backpack) + M.equip_to_slot_or_del(new /obj/item/teleportation_scroll/apprentice(M), slot_r_store) + var/wizard_name_first = pick(GLOB.wizard_first) + var/wizard_name_second = pick(GLOB.wizard_second) + var/randomname = "[wizard_name_first] [wizard_name_second]" + var/newname = sanitize(copytext(input(M, "You are the wizard's apprentice. Would you like to change your name to something else?", "Name change", randomname) as null|text,1,MAX_NAME_LEN)) + + if(!newname) + newname = randomname + M.mind.name = newname + M.real_name = newname + M.name = newname + var/datum/objective/protect/new_objective = new /datum/objective/protect + new_objective.owner = M.mind + new_objective.target = H.mind + new_objective.explanation_text = "Protect [H.real_name], the wizard." + M.mind.objectives += new_objective + SSticker.mode.apprentices += M.mind + M.mind.special_role = SPECIAL_ROLE_WIZARD_APPRENTICE + SSticker.mode.update_wiz_icons_added(M.mind) + M.faction = list("wizard") + SStgui.close_uis(src) + else + used = FALSE + to_chat(H, "Unable to reach your apprentice! You can either attack the spellbook with the contract to refund your points, or wait and try again later.") + +/obj/item/contract/attack_self(mob/user as mob) + if(..()) + return + + if(used) + to_chat(user, " You've already summoned an apprentice or you are in process of summoning one. ") + return + + ui_interact(user) ///////////////////////////Veil Render////////////////////// @@ -341,7 +333,7 @@ GLOBAL_LIST_EMPTY(multiverse) var/image/source = image('icons/obj/cardboard_cutout.dmi', "cutout_wizard") var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as the wizard apprentice of [user.real_name]?", ROLE_WIZARD, TRUE, 10 SECONDS, source = source) - if(candidates.len) + if(length(candidates)) var/mob/C = pick(candidates) spawn_copy(C.client, get_turf(user.loc), user) to_chat(user, "The sword flashes, and you find yourself face to face with...you!") diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 574042abc08..110bfec4a4e 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -328,7 +328,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)") + to_chat(C, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Construct)") else to_chat(user, "Creation failed!: The soul stone is empty! Go kill someone!") diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index d076afbaadb..d58a88d621e 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -108,19 +108,9 @@ 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)") + to_chat(wizard.current, "For more information, check the wiki page: ([GLOB.configuration.url.wiki_url]/index.php/Wizard)") return -/*/datum/game_mode/proc/learn_basic_spells(mob/living/carbon/human/wizard_mob) - if(!istype(wizard_mob)) - return - if(!config.feature_object_spell_system) - wizard_mob.verbs += /client/proc/jaunt - wizard_mob.mind.special_verbs += /client/proc/jaunt - else - wizard_mob.spell_list += new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(usr) -*/ - /datum/game_mode/proc/equip_wizard(mob/living/carbon/human/wizard_mob) if(!istype(wizard_mob)) return diff --git a/code/game/jobs/job/central.dm b/code/game/jobs/job/central.dm index c25dfdd256f..e4ce321082e 100644 --- a/code/game/jobs/job/central.dm +++ b/code/game/jobs/job/central.dm @@ -93,7 +93,7 @@ /obj/item/implant/dust ) cybernetic_implants = list( - /obj/item/organ/internal/eyes/cybernetic/xray, + /obj/item/organ/internal/eyes/cybernetic/xray/hardened, /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, /obj/item/organ/internal/cyberimp/chest/nutriment/plus, /obj/item/organ/internal/cyberimp/arm/combat/centcom diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 6adc55a89f1..7dddfd6a8d7 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -13,7 +13,7 @@ outfit = /datum/outfit/job/assistant /datum/job/civilian/get_access() - if(config.assistant_maint) + if(GLOB.configuration.jobs.assistant_maint_access) return list(ACCESS_MAINT_TUNNELS) else return list() diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 8f313c185dc..c39e1ff555f 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -85,10 +85,13 @@ announce(H) /datum/job/proc/get_access() - if(!config) //Needed for robots. + if(!GLOB?.configuration?.jobs) //Needed for robots. + // AA TODO: Remove this once mulebots and stuff use Initialize() + // Update: Now that the map is loaded after SSjobs this might not be needed + // However, I dont want to take that chance return src.minimal_access.Copy() - if(config.jobs_have_minimal_access) + if(GLOB.configuration.jobs.jobs_have_minimal_access) return src.minimal_access.Copy() else return src.access.Copy() @@ -103,7 +106,7 @@ /datum/job/proc/available_in_days(client/C) if(!C) return 0 - if(!config.use_age_restriction_for_jobs) + if(!GLOB.configuration.jobs.restrict_jobs_on_account_age) return 0 if(!isnum(C.player_age)) return 0 //This is only a number if the db connection is established, otherwise it is text: "Requires database", meaning these restrictions cannot be enforced diff --git a/code/game/jobs/job_exp.dm b/code/game/jobs/job_exp.dm index b30fbac02c4..1c9ef7de79f 100644 --- a/code/game/jobs/job_exp.dm +++ b/code/game/jobs/job_exp.dm @@ -43,7 +43,7 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list( set category = "Special Verbs" set name = "Check my playtime" - if(!config.use_exp_tracking) + if(!GLOB.configuration.jobs.enable_exp_tracking) to_chat(src, "Playtime tracking is not enabled.") return @@ -105,9 +105,9 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list( return 0 if(!role) return 0 - if(!config.use_exp_restrictions) + if(!GLOB.configuration.jobs.enable_exp_restrictions) return 0 - if(config.use_exp_restrictions_admin_bypass && check_rights(R_ADMIN, 0, C.mob)) + if(GLOB.configuration.jobs.enable_exp_admin_bypass && check_rights(R_ADMIN, 0, C.mob)) return 0 var/list/play_records = params2list(C.prefs.exp) var/isexempt = text2num(play_records[EXP_TYPE_EXEMPT]) @@ -128,9 +128,9 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list( return 0 if(!exp_requirements || !exp_type) return 0 - if(!config.use_exp_restrictions) + if(!GLOB.configuration.jobs.enable_exp_restrictions) return 0 - if(config.use_exp_restrictions_admin_bypass && check_rights(R_ADMIN, 0, C.mob)) + if(GLOB.configuration.jobs.enable_exp_admin_bypass && check_rights(R_ADMIN, 0, C.mob)) return 0 var/list/play_records = params2list(C.prefs.exp) var/isexempt = text2num(play_records[EXP_TYPE_EXEMPT]) @@ -156,7 +156,7 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list( return "[src] has no client." /client/proc/get_exp_report() - if(!config.use_exp_tracking) + if(!GLOB.configuration.jobs.enable_exp_tracking) return "Tracking is disabled in the server configuration file." var/list/play_records = params2list(prefs.exp) if(!play_records.len) @@ -174,10 +174,10 @@ GLOBAL_LIST_INIT(role_playtime_requirements, list( return_text += "
  • Exempt (all jobs auto-unlocked)
  • " else if(exp_data[EXP_TYPE_LIVING] > 0) return_text += "
  • [dep]: [get_exp_format(exp_data[dep])]
  • " - if(config.use_exp_restrictions_admin_bypass && check_rights(R_ADMIN, 0, mob)) + if(GLOB.configuration.jobs.enable_exp_admin_bypass && check_rights(R_ADMIN, 0, mob)) return_text += "
  • Admin
  • " return_text += "" - if(config.use_exp_restrictions) + if(GLOB.configuration.jobs.enable_exp_restrictions) var/list/jobs_locked = list() var/list/jobs_unlocked = list() for(var/datum/job/job in SSjobs.occupations) diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm index af80e7474a4..b459576d960 100644 --- a/code/game/jobs/whitelist.dm +++ b/code/game/jobs/whitelist.dm @@ -1,29 +1,6 @@ -#define WHITELISTFILE "data/whitelist.txt" - -GLOBAL_LIST_EMPTY(whitelist) - -/proc/init_whitelists() - if(config.usewhitelist) - load_whitelist() - if(config.usealienwhitelist) - load_alienwhitelist() - -/proc/load_whitelist() - GLOB.whitelist = file2list(WHITELISTFILE) - if(!GLOB.whitelist.len) - GLOB.whitelist = null -/* -/proc/check_whitelist(mob/M, rank) - if(!whitelist) - return 0 - return ("[M.ckey]" in whitelist) -*/ - /proc/is_job_whitelisted(mob/M, rank) if(guest_jobbans(rank)) - if(!config.usewhitelist) - return TRUE - if(config.disable_karma) + if(!GLOB.configuration.general.enable_karma) return TRUE if(check_rights(R_ADMIN, 0, M)) return TRUE @@ -31,7 +8,7 @@ GLOBAL_LIST_EMPTY(whitelist) return FALSE else var/datum/db_query/job_read = SSdbcore.NewQuery( - "SELECT job FROM [format_table_name("whitelist")] WHERE ckey=:ckey", + "SELECT job FROM whitelist WHERE ckey=:ckey", list("ckey" = M.ckey) ) @@ -55,35 +32,18 @@ GLOBAL_LIST_EMPTY(whitelist) else return TRUE - - - -GLOBAL_LIST_EMPTY(alien_whitelist) - -/proc/load_alienwhitelist() - var/text = file2text("config/alienwhitelist.txt") - if(!text) - log_config("Failed to load config/alienwhitelist.txt\n") - else - GLOB.alien_whitelist = splittext(text, "\n") - -//todo: admin aliens /proc/is_alien_whitelisted(mob/M, species) - if(!config.usealienwhitelist) - return TRUE - if(config.disable_karma) + if(!GLOB.configuration.general.enable_karma) return TRUE if(species == "human" || species == "Human") return TRUE if(check_rights(R_ADMIN, 0)) return TRUE - if(!GLOB.alien_whitelist) - return FALSE if(!SSdbcore.IsConnected()) return FALSE else var/datum/db_query/species_read = SSdbcore.NewQuery( - "SELECT species FROM [format_table_name("whitelist")] WHERE ckey=:ckey", + "SELECT species FROM whitelist WHERE ckey=:ckey", list("ckey" = M.ckey) ) @@ -104,14 +64,3 @@ GLOBAL_LIST_EMPTY(alien_whitelist) break qdel(species_read) -/* - if(M && species) - for(var/s in alien_whitelist) - if(findtext(s,"[M.ckey] - [species]")) - return 1 - if(findtext(s,"[M.ckey] - All")) - return 1 -*/ - - -#undef WHITELISTFILE diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 551f58594bb..bd7494ad0be 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -31,6 +31,9 @@ patient = null return ..() +/obj/machinery/optable/detailed_examine() + return "Click your target with Grab intent, then click on the table with an empty hand, to place them on it." + /obj/machinery/optable/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE) if(user.a_intent == INTENT_HARM) ..(user, TRUE) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index ea7fa1f118b..57062a6e806 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -31,6 +31,18 @@ light_color = LIGHT_COLOR_CYAN +/obj/machinery/sleeper/detailed_examine() + return "The sleeper allows you to clean the blood by means of dialysis, and to administer medication in a controlled environment.
    \ +
    \ + Click your target with Grab intent, then click on the sleeper to place them in it. Click the green console, with an empty hand, to open the menu. \ + Click 'Start Dialysis' to begin filtering unwanted chemicals from the occupant's blood. The beaker contained will begin to fill with their \ + contaminated blood, and will need to be emptied when full.
    \ +
    \ + You can also inject common medicines directly into their bloodstream.\ +
    \ + Right-click the cell and click 'Eject Occupant' to remove them. You can enter the cell yourself by right clicking and selecting 'Enter Sleeper'. \ + Note that you cannot control the sleeper while inside of it." + /obj/machinery/sleeper/power_change() ..() if(!(stat & (BROKEN|NOPOWER))) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 05d16c49c6c..9b16d52383c 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -11,6 +11,15 @@ var/mob/living/carbon/human/occupant var/known_implants = list(/obj/item/implant/chem, /obj/item/implant/death_alarm, /obj/item/implant/mindshield, /obj/item/implant/tracking, /obj/item/implant/health) +/obj/machinery/bodyscanner/detailed_examine() + return "The advanced scanner detects and reports internal injuries such as bone fractures, internal bleeding, and organ damage. \ + This is useful if you are about to perform surgery.
    \ +
    \ + Click your target with Grab intent, then click on the scanner to place them in it. Click the red terminal to operate. \ + Right-click the scanner and click 'Eject Occupant' to remove them. You can enter the scanner yourself in a similar way, using the 'Enter Body Scanner' \ + verb." + + /obj/machinery/bodyscanner/Destroy() go_out() return ..() diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 1d4b59acdf9..8a04c310e17 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -66,7 +66,6 @@ if(istype(A)) A.motioncameras -= src area_motion = null - cancelCameraAlarm() cancelAlarm() return ..() @@ -86,7 +85,6 @@ var/thisemp = emped //Take note of which EMP this proc is for spawn(900) if(!QDELETED(src)) - triggerCameraAlarm() //camera alarm triggers even if multiple EMPs are in effect. if(emped == thisemp) //Only fix it if the camera hasn't been EMP'd again network = previous_network stat &= ~EMPED @@ -94,9 +92,6 @@ if(can_use()) GLOB.cameranet.addCamera(src) emped = 0 //Resets the consecutive EMP count - spawn(100) - if(!QDELETED(src)) - cancelCameraAlarm() for(var/mob/M in GLOB.player_list) if(M.client && M.client.eye == src) M.unset_machine() @@ -229,7 +224,6 @@ /obj/machinery/camera/obj_break(damage_flag) if(status && !(flags & NODECONSTRUCT)) - triggerCameraAlarm() toggle_cam(null, FALSE) wires.cut_all() @@ -275,10 +269,6 @@ var/change_msg = "deactivates" if(status) change_msg = "reactivates" - triggerCameraAlarm() - spawn(100) - if(!QDELETED(src)) - cancelCameraAlarm() if(displaymessage) if(user) visible_message("[user] [change_msg] [src]!") @@ -298,14 +288,6 @@ O.reset_perspective(null) to_chat(O, "The screen bursts into static.") -/obj/machinery/camera/proc/triggerCameraAlarm() - alarm_on = TRUE - SSalarm.triggerAlarm("Camera", get_area(src), list(UID()), src) - -/obj/machinery/camera/proc/cancelCameraAlarm() - alarm_on = FALSE - SSalarm.cancelAlarm("Camera", get_area(src), src) - /obj/machinery/camera/proc/can_use() if(!status) return 0 diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index c875b094058..bc004c28b1f 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -39,6 +39,9 @@ currentPatient = null return ..() +/obj/machinery/computer/operating/detailed_examine() + return "This console gives information on the status of the patient on the adjacent operating table, notably their consciousness." + /obj/machinery/computer/operating/attack_ai(mob/user) add_fingerprint(user) if(stat & (BROKEN|NOPOWER)) diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 287cca55b41..05dc8103351 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -546,7 +546,7 @@ if(href_list["out_set_pressure"]) var/response=input(usr,"Set new pressure, in kPa. \[0-[50*ONE_ATMOSPHERE]\]") as num pressure_setting = text2num(response) - pressure_setting = between(0, pressure_setting, 50*ONE_ATMOSPHERE) + pressure_setting = clamp(pressure_setting, 0, 50*ONE_ATMOSPHERE) if(!radio_connection) return 0 diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index f2a76b15f58..77c78506676 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -338,7 +338,7 @@ set_temp("Error: Not enough biomass.", "danger") else if(pod.mess) set_temp("Error: The cloning pod is malfunctioning.", "danger") - else if(!config.revival_cloning) + else if(!GLOB.configuration.general.enable_cloning) set_temp("Error: Unable to initiate cloning cycle.", "danger") else cloneresult = pod.growclone(C) diff --git a/code/game/machinery/computer/store.dm b/code/game/machinery/computer/store.dm index 856e2322f71..06f806e1acc 100644 --- a/code/game/machinery/computer/store.dm +++ b/code/game/machinery/computer/store.dm @@ -31,7 +31,7 @@ var/dat = {" - [command_name()] Merchandise + Nanotrasen Merchandise ",o.insertBefore(n.lastChild,o.firstChild)}(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),r||function(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return f.shivMethods?m(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+u().join().replace(/[\w\-:]+/g,(function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'}))+");return n}")(f,t.frag)}(e,t),e}!function(){try{var e=n.createElement("a");e.innerHTML="",o="hidden"in e,r=1==e.childNodes.length||function(){n.createElement("a");var e=n.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(t){o=!0,r=!0}}();var f={elements:a.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:"3.7.3",shivCSS:!1!==a.shivCSS,supportsUnknownElements:r,shivMethods:!1!==a.shivMethods,type:"default",shivDocument:p,createElement:m,createDocumentFragment:function(e,t){if(e||(e=n),r)return e.createDocumentFragment();for(var o=(t=t||s(e)).frag.cloneNode(),a=0,c=u(),i=c.length;a1?r-1:0),c=1;c1?t-1:0),o=1;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";var o,r;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=o,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(o||(t.VNodeFlags=o={})),t.ChildFlags=r,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(r||(t.ChildFlags=r={}))},function(e,t,n){"use strict";t.__esModule=!0,t.ByondUi=void 0;var o=n(0),r=n(8),a=n(431),c=n(25),i=n(61),l=n(17);function d(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var u=(0,i.createLogger)("ByondUi"),s=[];window.addEventListener("beforeunload",(function(){for(var e=0;e=0||(r[n]=e[n]);return r}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),C=this.state.viewBox,N=function(e,t,n,o){if(0===e.length)return[];var a=(0,r.zipWith)(Math.min).apply(void 0,e),c=(0,r.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(a[0]=n[0],c[0]=n[1]),o!==undefined&&(a[1]=o[0],c[1]=o[1]),(0,r.map)((function(e){return(0,r.zipWith)((function(e,t,n,o){return(e-t)/(n-t)*o}))(e,a,c,t)}))(e)}(a,C,c,l);if(N.length>0){var b=N[0],g=N[N.length-1];N.push([C[0]+f,g[1]]),N.push([C[0]+f,-f]),N.push([-f,-f]),N.push([-f,b[1]])}var V=function(e){for(var t="",n=0;n=0||(r[n]=e[n]);return r}(t,["children","color","title","buttons"]);return(0,o.createVNode)(1,"div","Collapsible",[(0,o.createVNode)(1,"div","Table",[(0,o.createVNode)(1,"div","Table__cell",(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({fluid:!0,color:l,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},s,{children:d}))),2),u&&(0,o.createVNode)(1,"div","Table__cell Table__cell--collapsing",u,0)],0),n&&(0,o.createComponentVNode)(2,r.Box,{mt:1,children:c})],0)},c}(o.Component);t.Collapsible=c},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var o=n(0),r=n(8),a=n(17);var c=function(e){var t=e.content,n=(e.children,e.className),c=e.color,i=e.backgroundColor,l=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["content","children","className","color","backgroundColor"]);return l.color=t?null:"transparent",l.backgroundColor=c||i,(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["ColorBox",n,(0,a.computeBoxClassName)(l)]),t||".",0,Object.assign({},(0,a.computeBoxProps)(l))))};t.ColorBox=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var o=n(0),r=n(8),a=n(17),c=n(130);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=l.prototype;return d.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},d.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},d.setSelected=function(e){this.setOpen(!1),this.props.onSelected(e)},d.buildMenu=function(){var e=this,t=this.props.options,n=(void 0===t?[]:t).map((function(t){return(0,o.createVNode)(1,"div","Dropdown__menuentry",t,0,{onClick:function(){e.setSelected(t)}},t)}));return n.length?n:"No Options Found"},d.render=function(){var e=this,t=this.props,n=t.color,l=void 0===n?"default":n,d=t.over,u=t.noscroll,s=t.nochevron,m=t.width,p=(t.onClick,t.selected),f=t.disabled,h=i(t,["color","over","noscroll","nochevron","width","onClick","selected","disabled"]),C=h.className,N=i(h,["className"]),b=d?!this.state.open:this.state.open,g=this.state.open?(0,o.createVNode)(1,"div",(0,r.classes)([u?"Dropdown__menu-noscroll":"Dropdown__menu",d&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:m}},null,(function(t){e.menuRef=t})):null;return(0,o.createVNode)(1,"div","Dropdown",[(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({width:m,className:(0,r.classes)(["Dropdown__control","Button","Button--color--"+l,f&&"Button--disabled",C])},N,{onClick:function(){f&&!e.state.open||e.setOpen(!e.state.open)},children:[(0,o.createVNode)(1,"span","Dropdown__selected-text",p,0),!!s||(0,o.createVNode)(1,"span","Dropdown__arrow-button",(0,o.createComponentVNode)(2,c.Icon,{name:b?"chevron-up":"chevron-down"}),2)]}))),g],0)},l}(o.Component);t.Dropdown=l},function(e,t,n){"use strict";t.__esModule=!0,t.Input=void 0;var o=n(0),r=n(8),a=n(17);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var i=function(e){return(0,r.isFalsy)(e)?"":e},l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,o=t.props.onInput;n||t.setEditing(!0),o&&o(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,o=t.props.onChange;n&&(t.setEditing(!1),o&&o(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,o=n.onInput,r=n.onChange,a=n.onEnter;return 13===e.keyCode?(t.setEditing(!1),r&&r(e,e.target.value),o&&o(e,e.target.value),a&&a(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):27===e.keyCode?(t.setEditing(!1),e.target.value=i(t.props.value),void e.target.blur()):void 0},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=l.prototype;return d.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=i(e),this.props.autofocus&&(t.focus(),t.selectionStart=0,t.selectionEnd=t.value.length))},d.componentDidUpdate=function(e,t){var n=this.state.editing,o=e.value,r=this.props.value,a=this.inputRef.current;a&&!n&&o!==r&&(a.value=i(r))},d.setEditing=function(e){this.setState({editing:e})},d.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,i=(e.autofocus,e.disabled),l=e.multiline,d=e.cols,u=void 0===d?32:d,s=e.rows,m=void 0===s?4:s,p=c(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder","autofocus","disabled","multiline","cols","rows"]),f=p.className,h=p.fluid,C=c(p,["className","fluid"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Input",h&&"Input--fluid",i&&"Input--disabled",f])},C,{children:[(0,o.createVNode)(1,"div","Input__baseline",".",16),l?(0,o.createVNode)(128,"textarea","Input__textarea",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,maxLength:t,cols:u,rows:m,disabled:i},null,this.inputRef):(0,o.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t,disabled:i},null,this.inputRef)]})))},l}(o.Component);t.Input=l},function(e,t,n){"use strict";t.__esModule=!0,t.Knob=void 0;var o=n(0),r=n(16),a=n(8),c=n(25),i=n(17),l=n(180),d=n(131);t.Knob=function(e){if(c.IS_IE8)return(0,o.normalizeProps)((0,o.createComponentVNode)(2,d.NumberInput,Object.assign({},e)));var t=e.animated,n=e.format,u=e.maxValue,s=e.minValue,m=e.onChange,p=e.onDrag,f=e.step,h=e.stepPixelSize,C=e.suppressFlicker,N=e.unit,b=e.value,g=e.className,V=e.style,v=e.fillValue,y=e.color,_=e.ranges,x=void 0===_?{}:_,k=e.size,L=e.bipolar,B=(e.children,e.popUpPosition),w=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","style","fillValue","color","ranges","size","bipolar","children","popUpPosition"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,l.DraggableControl,Object.assign({dragMatrix:[0,-1]},{animated:t,format:n,maxValue:u,minValue:s,onChange:m,onDrag:p,step:f,stepPixelSize:h,suppressFlicker:C,unit:N,value:b},{children:function(e){var t=e.dragging,n=(e.editing,e.value),c=e.displayValue,l=e.displayElement,d=e.inputElement,m=e.handleDragStart,p=(0,r.scale)(null!=v?v:c,s,u),f=(0,r.scale)(c,s,u),h=y||(0,r.keyOfMatchingRange)(null!=v?v:n,x)||"default",C=270*(f-.5);return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,a.classes)(["Knob","Knob--color--"+h,L&&"Knob--bipolar",g,(0,i.computeBoxClassName)(w)]),[(0,o.createVNode)(1,"div","Knob__circle",(0,o.createVNode)(1,"div","Knob__cursorBox",(0,o.createVNode)(1,"div","Knob__cursor"),2,{style:{transform:"rotate("+C+"deg)"}}),2),t&&(0,o.createVNode)(1,"div",(0,a.classes)(["Knob__popupValue",B&&"Knob__popupValue--"+B]),l,0),(0,o.createVNode)(32,"svg","Knob__ring Knob__ringTrackPivot",(0,o.createVNode)(32,"circle","Knob__ringTrack",null,1,{cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),(0,o.createVNode)(32,"svg","Knob__ring Knob__ringFillPivot",(0,o.createVNode)(32,"circle","Knob__ringFill",null,1,{style:{"stroke-dashoffset":((L?2.75:2)-1.5*p)*Math.PI*50},cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),d],0,Object.assign({},(0,i.computeBoxProps)(Object.assign({style:Object.assign({"font-size":k+"rem"},V)},w)),{onMouseDown:m})))}})))}},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledControls=void 0;var o=n(0),r=n(75);function a(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.children,n=a(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Flex,Object.assign({mx:-.5,align:"stretch",justify:"space-between"},n,{children:t})))};t.LabeledControls=c;c.Item=function(e){var t=e.label,n=e.children,c=a(e,["label","children"]);return(0,o.createComponentVNode)(2,r.Flex.Item,{mx:1,children:(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Flex,Object.assign({minWidth:"52px",height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},c,{children:[(0,o.createComponentVNode)(2,r.Flex.Item),(0,o.createComponentVNode)(2,r.Flex.Item,{children:n}),(0,o.createComponentVNode)(2,r.Flex.Item,{color:"label",children:t})]})))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NanoMap=void 0;var o=n(0),r=n(2),a=n(1),c=n(77),i=n(181);var l=function(e){return e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,e.returnValue=!1,!1},d=function(e){var t,n;function c(t){var n;n=e.call(this,t)||this;window.innerWidth,window.innerHeight;return n.state={offsetX:128,offsetY:48,transform:"none",dragging:!1,originX:null,originY:null,zoom:1},n.handleDragStart=function(e){n.ref=e.target,n.setState({dragging:!1,originX:e.screenX,originY:e.screenY}),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd),l(e)},n.handleDragMove=function(e){n.setState((function(t){var n=Object.assign({},t),o=e.screenX-n.originX,r=e.screenY-n.originY;return t.dragging?(n.offsetX+=o,n.offsetY+=r,n.originX=e.screenX,n.originY=e.screenY):n.dragging=!0,n})),l(e)},n.handleDragEnd=function(e){n.setState({dragging:!1,originX:null,originY:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),l(e)},n.handleZoom=function(e,o){n.setState((function(e){var n=Math.min(Math.max(o,1),8),r=1.5*(n-e.zoom);return e.zoom=n,e.offsetX=e.offsetX-262*r,e.offsetY=e.offsetY-256*r,t.onZoom&&t.onZoom(e.zoom),e}))},n}return n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,c.prototype.render=function(){var e=(0,a.useBackend)(this.context).config,t=this.state,n=t.dragging,c=t.offsetX,i=t.offsetY,l=t.zoom,d=void 0===l?1:l,s=this.props.children,m=510*d+"px",p={width:m,height:m,"margin-top":i+"px","margin-left":c+"px",overflow:"hidden",position:"relative","background-image":"url("+e.map+"_nanomap_z1.png)","background-size":"cover","background-repeat":"no-repeat","text-align":"center",cursor:n?"move":"auto"};return(0,o.createComponentVNode)(2,r.Box,{className:"NanoMap__container",children:[(0,o.createComponentVNode)(2,r.Box,{style:p,textAlign:"center",onMouseDown:this.handleDragStart,children:(0,o.createComponentVNode)(2,r.Box,{children:s})}),(0,o.createComponentVNode)(2,u,{zoom:d,onZoom:this.handleZoom})]})},c}(o.Component);t.NanoMap=d;d.Marker=function(e,t){var n=e.x,a=e.y,c=e.zoom,i=void 0===c?1:c,l=e.icon,d=e.tooltip,u=e.color,s=2*n*i-i-3,m=2*a*i-i-3;return(0,o.createVNode)(1,"div",null,(0,o.createComponentVNode)(2,r.Box,{position:"absolute",className:"NanoMap__marker",lineHeight:"0",bottom:m+"px",left:s+"px",children:[(0,o.createComponentVNode)(2,r.Icon,{name:l,color:u,fontSize:"6px"}),(0,o.createComponentVNode)(2,r.Tooltip,{content:d})]}),2)};var u=function(e,t){return(0,o.createComponentVNode)(2,r.Box,{className:"NanoMap__zoomer",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Zoom",children:(0,o.createComponentVNode)(2,i.Slider,{minValue:"1",maxValue:"8",stepPixelSize:"10",format:function(e){return e+"x"},value:e.zoom,onDrag:function(t,n){return e.onZoom(t,n)}})})})})};d.Zoomer=u},function(e,t,n){"use strict";t.__esModule=!0,t.Modal=void 0;var o=n(0),r=n(8),a=n(17),c=n(177);t.Modal=function(e){var t,n=e.className,i=e.children,l=e.onEnter,d=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","children","onEnter"]);return l&&(t=function(e){13===e.keyCode&&l(e)}),(0,o.createComponentVNode)(2,c.Dimmer,{onKeyDown:t,children:(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["Modal",n,(0,a.computeBoxClassName)(d)]),i,0,Object.assign({},(0,a.computeBoxProps)(d))))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var o=n(0),r=n(8),a=n(17);var c=function(e){var t=e.className,n=e.color,c=e.info,i=(e.warning,e.success),l=e.danger,d=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","color","info","warning","success","danger"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["NoticeBox",n&&"NoticeBox--color--"+n,c&&"NoticeBox--type--info",i&&"NoticeBox--type--success",l&&"NoticeBox--type--danger",t])},d)))};t.NoticeBox=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBarCountdown=t.ProgressBar=void 0;var o=n(0),r=n(16),a=n(8),c=n(17);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t=e.className,n=e.value,l=e.minValue,d=void 0===l?0:l,u=e.maxValue,s=void 0===u?1:u,m=e.color,p=e.ranges,f=void 0===p?{}:p,h=e.children,C=i(e,["className","value","minValue","maxValue","color","ranges","children"]),N=(0,r.scale)(n,d,s),b=h!==undefined,g=m||(0,r.keyOfMatchingRange)(n,f)||"default";return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,a.classes)(["ProgressBar","ProgressBar--color--"+g,t,(0,c.computeBoxClassName)(C)]),[(0,o.createVNode)(1,"div","ProgressBar__fill ProgressBar__fill--animated",null,1,{style:{width:100*(0,r.clamp01)(N)+"%"}}),(0,o.createVNode)(1,"div","ProgressBar__content",b?h:(0,r.toFixed)(100*N)+"%",0)],4,Object.assign({},(0,c.computeBoxProps)(C))))};t.ProgressBar=l,l.defaultHooks=a.pureComponentHooks;var d=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={value:Math.max(100*t.current,0)},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var a=r.prototype;return a.tick=function(){var e=Math.max(this.state.value+this.props.rate,0);e<=0&&clearInterval(this.timer),this.setState((function(t){return{value:e}}))},a.componentDidMount=function(){var e=this;this.timer=setInterval((function(){return e.tick()}),this.props.rate)},a.componentWillUnmount=function(){clearInterval(this.timer)},a.render=function(){var e=this.props,t=e.start,n=(e.current,e.end),r=i(e,["start","current","end"]),a=(this.state.value/100-t)/(n-t);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,l,Object.assign({value:a},r)))},r}(o.Component);t.ProgressBarCountdown=d,d.defaultProps={rate:1e3},l.Countdown=d},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var o=n(0),r=n(8),a=n(17);var c=function(e){var t=e.className,n=e.title,c=e.level,i=void 0===c?1:c,l=e.buttons,d=e.content,u=e.stretchContents,s=e.noTopPadding,m=e.children,p=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","title","level","buttons","content","stretchContents","noTopPadding","children"]),f=!(0,r.isFalsy)(n)||!(0,r.isFalsy)(l),h=!(0,r.isFalsy)(d)||!(0,r.isFalsy)(m);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Section","Section--level--"+i,e.flexGrow&&"Section--flex",t])},p,{children:[f&&(0,o.createVNode)(1,"div","Section__title",[(0,o.createVNode)(1,"span","Section__titleText",n,0),(0,o.createVNode)(1,"div","Section__buttons",l,0)],4),h&&(0,o.createComponentVNode)(2,a.Box,{className:(0,r.classes)(["Section__content",!!u&&"Section__content--stretchContents",!!s&&"Section__content--noTopPadding"]),children:[d,m]})]})))};t.Section=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Tabs=void 0;var o=n(0),r=n(8),a=n(17),c=n(129);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t=e.className,n=e.vertical,c=e.children,l=i(e,["className","vertical","children"]);return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["Tabs",n?"Tabs--vertical":"Tabs--horizontal",t,(0,a.computeBoxClassName)(l)]),(0,o.createVNode)(1,"div","Tabs__tabBox",c,0),2,Object.assign({},(0,a.computeBoxProps)(l))))};t.Tabs=l;l.Tab=function(e){var t=e.className,n=e.selected,a=e.altSelection,l=i(e,["className","selected","altSelection"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.Button,Object.assign({className:(0,r.classes)(["Tabs__tab",n&&"Tabs__tab--selected",a&&n&&"Tabs__tab--altSelection",t]),selected:!a&&n,color:"transparent"},l)))}},function(e,t,n){"use strict";t.__esModule=!0,t.TimeDisplay=void 0;t.TimeDisplay=function(e){var t=e.totalSeconds;return function(e){return(!e||e<0)&&(e=0),[Math.floor(e/60).toString(10),(Math.floor(e)%60).toString(10)].map((function(e){return e.length<2?"0"+e:e})).join(":")}(void 0===t?0:t)}},function(e,t,n){var o={"./AICard.js":447,"./AIFixer.js":448,"./APC.js":449,"./ATM.js":450,"./AccountsUplinkTerminal.js":451,"./AiAirlock.js":452,"./AirAlarm.js":453,"./AirlockAccessController.js":454,"./AirlockElectronics.js":455,"./AppearanceChanger.js":456,"./AtmosAlertConsole.js":457,"./AtmosControl.js":458,"./AtmosFilter.js":459,"./AtmosMixer.js":460,"./AtmosPump.js":461,"./Autolathe.js":462,"./BlueSpaceArtilleryControl.js":463,"./BluespaceTap.js":464,"./BodyScanner.js":465,"./BotClean.js":466,"./BotSecurity.js":467,"./BrigCells.js":468,"./BrigTimer.js":469,"./CameraConsole.js":470,"./Canister.js":471,"./CardComputer.js":472,"./CargoConsole.js":473,"./ChemDispenser.js":474,"./ChemHeater.js":478,"./ChemMaster.js":479,"./CloningConsole.js":480,"./CommunicationsComputer.js":481,"./Contractor.js":482,"./ConveyorSwitch.js":483,"./CrewMonitor.js":484,"./Cryo.js":485,"./DNAModifier.js":486,"./DisposalBin.js":487,"./DnaVault.js":488,"./DroneConsole.js":489,"./EFTPOS.js":490,"./ERTManager.js":491,"./Electropack.js":492,"./EvolutionMenu.js":493,"./ExosuitFabricator.js":494,"./ExternalAirlockController.js":495,"./FaxMachine.js":496,"./FloorPainter.js":497,"./GPS.js":498,"./GenericCrewManifest.js":499,"./GhostHudPanel.js":500,"./GravityGen.js":501,"./GuestPass.js":502,"./HandheldChemDispenser.js":503,"./Instrument.js":504,"./KeycardAuth.js":505,"./LaborClaimConsole.js":506,"./LawManager.js":507,"./MechBayConsole.js":508,"./MechaControlConsole.js":509,"./MedicalRecords.js":510,"./MiningVendor.js":511,"./Newscaster.js":512,"./NuclearBomb.js":513,"./OperatingComputer.js":514,"./Orbit.js":515,"./OreRedemption.js":516,"./PAI.js":517,"./PDA.js":530,"./Pacman.js":546,"./PersonalCrafting.js":547,"./PodTracking.js":548,"./PoolController.js":549,"./PortablePump.js":550,"./PortableScrubber.js":551,"./PortableTurret.js":552,"./PowerMonitor.js":188,"./RCD.js":553,"./RPD.js":554,"./Radio.js":555,"./RequestConsole.js":556,"./RndConsole.js":62,"./RoboticsControlConsole.js":571,"./Safe.js":572,"./SatelliteControl.js":573,"./SecurityRecords.js":574,"./ShuttleConsole.js":575,"./ShuttleManipulator.js":576,"./Sleeper.js":577,"./SlotMachine.js":578,"./Smartfridge.js":579,"./Smes.js":580,"./SolarControl.js":581,"./SpawnersMenu.js":582,"./StationAlertConsole.js":583,"./SuitStorage.js":584,"./SupermatterMonitor.js":585,"./SyndicateComputerSimple.js":586,"./TEG.js":587,"./TachyonArray.js":588,"./Tank.js":589,"./TankDispenser.js":590,"./TcommsCore.js":591,"./TcommsRelay.js":592,"./Teleporter.js":593,"./ThermoMachine.js":594,"./TransferValve.js":595,"./Uplink.js":596,"./Vending.js":597,"./VolumeMixer.js":598,"./Wires.js":599};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=a,e.exports=r,r.id=446},function(e,t,n){"use strict";t.__esModule=!0,t.AICard=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AICard=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;if(0===l.has_ai)return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Stored AI",children:(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createVNode)(1,"h3",null,"No AI detected.",16)})})})});var d=null;return d=l.integrity>=75?"green":l.integrity>=25?"yellow":"red",(0,o.createComponentVNode)(2,c.Window,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored AI",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,display:"inline-block",children:(0,o.createVNode)(1,"h3",null,l.name,0)}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:d,value:l.integrity/100})})})}),(0,o.createComponentVNode)(2,a.Box,{color:"red",children:(0,o.createVNode)(1,"h2",null,1===l.flushing?"Wipe of AI in progress...":"",0)})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",children:!!l.has_laws&&(0,o.createComponentVNode)(2,a.Box,{children:l.laws.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{display:"inline-block",children:e},t)}))})||(0,o.createComponentVNode)(2,a.Box,{color:"red",children:(0,o.createVNode)(1,"h3",null,"No laws detected.",16)})}),(0,o.createComponentVNode)(2,a.Section,{title:"Actions",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Wireless Activity",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.wireless?"check":"times",content:l.wireless?"Enabled":"Disabled",color:l.wireless?"green":"red",onClick:function(){return i("wireless")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Subspace Transceiver",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.radio?"check":"times",content:l.radio?"Enabled":"Disabled",color:l.radio?"green":"red",onClick:function(){return i("radio")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Wipe",children:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash-alt",confirmIcon:"trash-alt",disabled:l.flushing||0===l.integrity,confirmColor:"red",content:"Wipe AI",onClick:function(){return i("wipe")}})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AIFixer=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AIFixer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;if(null===l.occupant)return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Stored AI",children:(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createVNode)(1,"h3",null,"No artificial intelligence detected.",16)})})})});var d=null;d=2!==l.stat&&null!==l.stat;var u=null;u=l.integrity>=75?"green":l.integrity>=25?"yellow":"red";var s=null;return s=l.integrity>=100,(0,o.createComponentVNode)(2,c.Window,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored AI",children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:(0,o.createVNode)(1,"h3",null,l.occupant,0)})}),(0,o.createComponentVNode)(2,a.Section,{title:"Information",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:u,value:l.integrity/100})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:d?"green":"red",children:d?"Functional":"Non-Functional"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",children:!!l.has_laws&&(0,o.createComponentVNode)(2,a.Box,{children:l.laws.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{display:"inline-block",children:e},t)}))})||(0,o.createComponentVNode)(2,a.Box,{color:"red",children:(0,o.createVNode)(1,"h3",null,"No laws detected.",16)})}),(0,o.createComponentVNode)(2,a.Section,{title:"Actions",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Wireless Activity",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.wireless?"times":"check",content:l.wireless?"Disabled":"Enabled",color:l.wireless?"red":"green",onClick:function(){return i("wireless")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Subspace Transceiver",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.radio?"times":"check",content:l.radio?"Disabled":"Enabled",color:l.radio?"red":"green",onClick:function(){return i("radio")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Start Repairs",children:(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:s||l.active,content:s?"Already Repaired":"Repair",onClick:function(){return i("fix")}})})]}),(0,o.createComponentVNode)(2,a.Box,{color:"green",lineHeight:2,children:l.active?"Reconstruction in progress.":""})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.APC=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(183);t.APC=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,u)})})};var l={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,u=n.data,s=u.locked&&!u.siliconUser,m=(u.normallyLocked,l[u.externalPower]||l[0]),p=l[u.chargingStatus]||l[0],f=u.powerChannels||[],h=d[u.malfStatus]||d[0],C=u.powerCellStatus/100;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:m.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.isOperating?"power-off":"times",content:u.isOperating?"On":"Off",selected:u.isOperating&&!s,color:u.isOperating?"":"bad",disabled:s,onClick:function(){return c("breaker")}}),children:["[ ",m.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:C})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.chargeMode?"sync":"times",content:u.chargeMode?"Auto":"Off",selected:u.chargeMode,disabled:s,onClick:function(){return c("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[f.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!s&&(1===e.status||3===e.status),disabled:s,onClick:function(){return c("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!s&&2===e.status,disabled:s,onClick:function(){return c("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!s&&0===e.status,disabled:s,onClick:function(){return c("channel",t.off)}})],4),children:[e.powerLoad," W"]},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,[u.totalLoad,(0,o.createTextVNode)(" W")],0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!u.siliconUser&&(0,o.createFragment)([!!u.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:h.icon,content:h.content,color:"bad",onClick:function(){return c(h.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return c("overload")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.coverLocked?"lock":"unlock",content:u.coverLocked?"Engaged":"Disengaged",selected:u.coverLocked,disabled:s,onClick:function(){return c("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:u.nightshiftLights?"Enabled":"Disabled",selected:u.nightshiftLights,onClick:function(){return c("toggle_nightshift")}})})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ATM=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.ATM=function(e,t){var n,p=(0,r.useBackend)(t),f=(p.act,p.data),h=f.view_screen,C=f.authenticated_account,N=f.ticks_left_locked_down,b=f.linked_db;if(N>0)n=(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle"}),"Maximum number of pin attempts exceeded! Access to this ATM has been temporarily disabled."]});else if(b)if(C)switch(h){case 1:n=(0,o.createComponentVNode)(2,l);break;case 2:n=(0,o.createComponentVNode)(2,d);break;case 3:n=(0,o.createComponentVNode)(2,m);break;default:n=(0,o.createComponentVNode)(2,u)}else n=(0,o.createComponentVNode)(2,s);else n=(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle"}),"Unable to connect to accounts database, please retry and if the issue persists contact Nanotrasen IT support."]});return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i),(0,o.createComponentVNode)(2,a.Section,{children:n})]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.machine_id,d=i.held_card_name;return(0,o.createComponentVNode)(2,a.Section,{title:"Nanotrasen Automatic Teller Machine",children:[(0,o.createComponentVNode)(2,a.Box,{children:"For all your monetary need!"}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Icon,{name:"info-circle"})," This terminal is ",(0,o.createVNode)(1,"i",null,l,0),", report this code when contacting Nanotrasen IT Support."]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Card",children:(0,o.createComponentVNode)(2,a.Button,{content:d,icon:"eject",onClick:function(){return c("insert_card")}})})})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.security_level;return(0,o.createComponentVNode)(2,a.Section,{title:"Select a new security level for this account",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Level",children:(0,o.createComponentVNode)(2,a.Button,{content:"Zero",icon:"unlock",selected:0===i,onClick:function(){return c("change_security_level",{new_security_level:0})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:"Either the account number or card is required to access this account. EFTPOS transactions will require a card and ask for a pin, but not verify the pin is correct."}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Level",children:(0,o.createComponentVNode)(2,a.Button,{content:"One",icon:"unlock",selected:1===i,onClick:function(){return c("change_security_level",{new_security_level:1})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:"An account number and pin must be manually entered to access this account and process transactions."}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Level",children:(0,o.createComponentVNode)(2,a.Button,{content:"Two",selected:2===i,icon:"unlock",onClick:function(){return c("change_security_level",{new_security_level:2})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:"In addition to account number and pin, a card is required to access this account and process transactions."})]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,p)]})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(0,r.useLocalState)(t,"targetAccNumber",0),d=l[0],u=l[1],s=(0,r.useLocalState)(t,"fundsAmount",0),m=s[0],f=s[1],h=(0,r.useLocalState)(t,"purpose",0),C=h[0],N=h[1],b=i.money;return(0,o.createComponentVNode)(2,a.Section,{title:"Transfer Fund",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Account Balance",children:["$",b]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target account number",children:(0,o.createComponentVNode)(2,a.Input,{placeholder:"6 Digit Number",onInput:function(e,t){return u(t)}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Funds to transfer",children:(0,o.createComponentVNode)(2,a.Input,{onInput:function(e,t){return f(t)}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transaction Purpose",children:(0,o.createComponentVNode)(2,a.Input,{fluid:!0,onInput:function(e,t){return N(t)}})})]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Button,{content:"Transfer",icon:"sign-out-alt",onClick:function(){return c("transfer",{target_acc_number:d,funds_amount:m,purpose:C})}}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,p)]})},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(0,r.useLocalState)(t,"fundsAmount",0),d=l[0],u=l[1],s=i.owner_name,m=i.money;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Welcome, "+s,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Logout",icon:"sign-out-alt",onClick:function(){return c("logout")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Account Balance",children:["$",m]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Withdrawal Amount",children:(0,o.createComponentVNode)(2,a.Input,{onInput:function(e,t){return u(t)}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Withdraw Fund",icon:"sign-out-alt",onClick:function(){return c("withdrawal",{funds_amount:d})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Menu",children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Change account security level",icon:"lock",onClick:function(){return c("view_screen",{view_screen:1})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Make transfer",icon:"exchange-alt",onClick:function(){return c("view_screen",{view_screen:2})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"View transaction log",icon:"list",onClick:function(){return c("view_screen",{view_screen:3})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Print balance statement",icon:"print",onClick:function(){return c("balance_statement")}})})]})],4)},s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(0,r.useLocalState)(t,"accountID",null),d=l[0],u=l[1],s=(0,r.useLocalState)(t,"accountPin",null),m=s[0],p=s[1];i.machine_id,i.held_card_name;return(0,o.createComponentVNode)(2,a.Section,{title:"Insert card or enter ID and pin to login",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Account ID",children:(0,o.createComponentVNode)(2,a.Input,{placeholder:"6 Digit Number",onInput:function(e,t){return u(t)}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pin",children:(0,o.createComponentVNode)(2,a.Input,{placeholder:"6 Digit Number",onInput:function(e,t){return p(t)}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Login",icon:"sign-in-alt",onClick:function(){return c("attempt_auth",{account_num:d,account_pin:m})}})})]})})},m=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.transaction_log);return(0,o.createComponentVNode)(2,a.Section,{title:"Transactions",children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Timestamp"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Target"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Reason"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Terminal"})]}),c.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{p:"1rem",children:[e.date," ",e.time]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.target_name}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.purpose}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:["$",e.amount]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.source_terminal})]},e)}))]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,p)]})},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act;n.data;return(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"sign-out-alt",onClick:function(){return c("view_screen",{view_screen:0})}})}},function(e,t,n){"use strict";t.__esModule=!0,t.AccountsUplinkTerminal=void 0;var o=n(0),r=n(20),a=n(1),c=n(2),i=n(75),l=n(4),d=n(132),u=n(133);t.AccountsUplinkTerminal=function(e,t){var n,r=(0,a.useBackend)(t),c=(r.act,r.data),i=c.loginState,m=c.currentPage;return i.logged_in?(1===m?n=(0,o.createComponentVNode)(2,s):2===m?n=(0,o.createComponentVNode)(2,f):3===m&&(n=(0,o.createComponentVNode)(2,h)),(0,o.createComponentVNode)(2,l.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d.LoginInfo),n]})})):(0,o.createComponentVNode)(2,l.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{children:(0,o.createComponentVNode)(2,u.LoginScreen)})})};var s=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.accounts,d=(0,a.useLocalState)(t,"searchText",""),u=d[0],s=(d[1],(0,a.useLocalState)(t,"sortId","owner_name")),f=s[0],h=(s[1],(0,a.useLocalState)(t,"sortOrder",!0)),C=h[0];h[1];return(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,c.Flex.Item,{flexGrow:"1",mt:"0.5rem",children:(0,o.createComponentVNode)(2,c.Section,{height:"100%",children:(0,o.createComponentVNode)(2,c.Table,{className:"AccountsUplinkTerminal__list",children:[(0,o.createComponentVNode)(2,c.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,m,{id:"owner_name",children:"Account Holder"}),(0,o.createComponentVNode)(2,m,{id:"account_number",children:"Account Number"}),(0,o.createComponentVNode)(2,m,{id:"suspended",children:"Account Status"})]}),l.filter((0,r.createSearch)(u,(function(e){return e.owner_name+"|"+e.account_number+"|"+e.suspended}))).sort((function(e,t){var n=C?1:-1;return e[f].localeCompare(t[f])*n})).map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{onClick:function(){return i("view_account_detail",{index:e.account_index})},children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user"})," ",e.owner_name]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:["#",e.account_number]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.suspended})]},e.id)}))]})})})]})},m=function(e,t){var n=(0,a.useLocalState)(t,"sortId","name"),r=n[0],i=n[1],l=(0,a.useLocalState)(t,"sortOrder",!0),d=l[0],u=l[1],s=e.id,m=e.children;return(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{color:r!==s&&"transparent",width:"100%",onClick:function(){r===s?u(!d):(i(s),u(!0))},children:[m,r===s&&(0,o.createComponentVNode)(2,c.Icon,{name:d?"sort-up":"sort-down",ml:"0.25rem;"})]})})},p=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data.is_printing,d=(0,a.useLocalState)(t,"searchText",""),u=(d[0],d[1]);return(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,i.FlexItem,{children:[(0,o.createComponentVNode)(2,c.Button,{content:"New Account",icon:"plus",onClick:function(){return r("create_new_account")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"print",content:"Print Account List",disabled:l,ml:"0.25rem",onClick:function(){return r("print_records")}})]}),(0,o.createComponentVNode)(2,i.FlexItem,{grow:"1",ml:"0.5rem",children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"Search by account holder, number, status",width:"100%",onInput:function(e,t){return u(t)}})})]})},f=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.is_printing,d=i.account_number,u=i.owner_name,s=i.money,m=i.suspended,p=i.transactions;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"#"+d+" / "+u,mt:1,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"print",content:"Print Account Details",disabled:l,onClick:function(){return r("print_account_details")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return r("back")}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Account Number",children:["#",d]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Account Holder",children:u}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Account Balance",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Account Status",color:m?"red":"green",children:[m?"Suspended":"Active",(0,o.createComponentVNode)(2,c.Button,{ml:1,content:m?"Unsuspend":"Suspend",icon:m?"unlock":"lock",onClick:function(){return r("toggle_suspension")}})]})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Transactions",children:(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Timestamp"}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Target"}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Reason"}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Value"}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Terminal"})]}),p.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[e.date," ",e.time]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.target_name}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.purpose}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:["$",e.amount]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.source_terminal})]},e)}))]})})],4)},h=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=(n.data,(0,a.useLocalState)(t,"accName","")),l=i[0],d=i[1],u=(0,a.useLocalState)(t,"accDeposit",""),s=u[0],m=u[1];return(0,o.createComponentVNode)(2,c.Section,{title:"Create Account",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return r("back")}}),children:[(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Account Holder",children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"Name Here",onChange:function(e,t){return d(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Initial Deposit",children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"0",onChange:function(e,t){return m(t)}})})]}),(0,o.createComponentVNode)(2,c.Button,{mt:1,fluid:!0,content:"Create Account",onClick:function(){return r("finalise_create_account",{holder_name:l,starting_funds:s})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}};t.AiAirlock=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=i[d.power.main]||i[0],s=i[d.power.backup]||i[0],m=i[d.shock]||i[0];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:390,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.main,content:"Disrupt",onClick:function(){return l("disrupt-main")}}),children:[d.power.main?"Online":"Offline"," ",d.wires.main_power?d.power.main_timeleft>0&&"["+d.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.backup,content:"Disrupt",onClick:function(){return l("disrupt-backup")}}),children:[d.power.backup?"Online":"Offline"," ",d.wires.backup_power?d.power.backup_timeleft>0&&"["+d.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:m.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(d.wires.shock&&2!==d.shock),content:"Restore",onClick:function(){return l("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock,content:"Temporary",onClick:function(){return l("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock||0===d.shock,content:"Permanent",onClick:function(){return l("shock-perm")}})],4),children:[2===d.shock?"Safe":"Electrified"," ",(d.wires.shock?d.shock_timeleft>0&&"["+d.shock_timeleft+"s]":"[Wires have been cut!]")||-1===d.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.id_scanner?"power-off":"times",content:d.id_scanner?"Enabled":"Disabled",selected:d.id_scanner,disabled:!d.wires.id_scanner,onClick:function(){return l("idscan-toggle")}}),children:!d.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.emergency?"power-off":"times",content:d.emergency?"Enabled":"Disabled",selected:d.emergency,onClick:function(){return l("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.locked?"lock":"unlock",content:d.locked?"Lowered":"Raised",selected:d.locked,disabled:!d.wires.bolts,onClick:function(){return l("bolt-toggle")}}),children:!d.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.lights?"power-off":"times",content:d.lights?"Enabled":"Disabled",selected:d.lights,disabled:!d.wires.lights,onClick:function(){return l("light-toggle")}}),children:!d.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.safe?"power-off":"times",content:d.safe?"Enabled":"Disabled",selected:d.safe,disabled:!d.wires.safe,onClick:function(){return l("safe-toggle")}}),children:!d.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.speed?"power-off":"times",content:d.speed?"Enabled":"Disabled",selected:d.speed,disabled:!d.wires.timing,onClick:function(){return l("speed-toggle")}}),children:!d.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.opened?"sign-out-alt":"sign-in-alt",content:d.opened?"Open":"Closed",selected:d.opened,disabled:d.locked||d.welded,onClick:function(){return l("open-close")}}),children:!(!d.locked&&!d.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),d.locked?"bolted":"",d.locked&&d.welded?" and ":"",d.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(183);t.AirAlarm=function(e,t){var n=(0,r.useBackend)(t),a=(n.act,n.data.locked);return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),!a&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u),(0,o.createComponentVNode)(2,s)],4)]})})};var l=function(e){return 0===e?"green":1===e?"orange":"red"},d=function(e,t){var n,c=(0,r.useBackend)(t),i=c.act,d=c.data,u=d.air,s=d.mode,m=d.atmos_alarm,p=d.locked,f=d.alarmActivated,h=d.rcon;return n=0===u.danger.overall?0===m?"Optimal":"Caution: Atmos alert in area":1===u.danger.overall?"Caution":"DANGER: Internals Required",(0,o.createComponentVNode)(2,a.Section,{title:"Air Status",children:u?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.Box,{color:l(u.danger.pressure),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.pressure})," kPa",!p&&(0,o.createFragment)([(0,o.createTextVNode)("\xa0"),(0,o.createComponentVNode)(2,a.Button,{content:3===s?"Deactivate Panic Siphon":"Activate Panic Siphon",selected:3===s,icon:"exclamation-triangle",onClick:function(){return i("mode",{mode:3===s?1:3})}})],4)]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.contents.oxygen/100,color:l(u.danger.oxygen)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nitrogen",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.contents.nitrogen/100,color:l(u.danger.nitrogen)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Carbon Dioxide",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.contents.co2/100,color:l(u.danger.co2)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Toxins",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.contents.plasma/100,color:l(u.danger.plasma)})}),u.contents.other>0&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Other",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.contents.other/100,color:l(u.danger.other)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,a.Box,{color:l(u.danger.temperature),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.temperature})," K / ",(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.temperature_c})," C\xa0",(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-full",content:u.temperature_c+" C",onClick:function(){return i("temperature")}})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Local Status",children:(0,o.createComponentVNode)(2,a.Box,{color:l(u.danger.overall),children:[n,!p&&(0,o.createFragment)([(0,o.createTextVNode)("\xa0"),(0,o.createComponentVNode)(2,a.Button,{content:f?"Reset Alarm":"Activate Alarm",selected:f,onClick:function(){return i(f?"atmos_reset":"atmos_alarm")}})],4)]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Remote Control Settings",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Off",selected:1===h,onClick:function(){return i("set_rcon",{rcon:1})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Auto",selected:2===h,onClick:function(){return i("set_rcon",{rcon:2})}}),(0,o.createComponentVNode)(2,a.Button,{content:"On",selected:3===h,onClick:function(){return i("set_rcon",{rcon:3})}})]})]}):(0,o.createComponentVNode)(2,a.Box,{children:"Unable to acquire air sample!"})})},u=function(e,t){var n=(0,r.useLocalState)(t,"tabIndex",0),c=n[0],i=n[1];return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:0===c,onClick:function(){return i(0)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"sign-out-alt"})," Vent Control"]},"Vents"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===c,onClick:function(){return i(1)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"sign-in-alt"})," Scrubber Control"]},"Scrubbers"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===c,onClick:function(){return i(2)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"cog"})," Mode"]},"Mode"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:3===c,onClick:function(){return i(3)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"tachometer-alt"})," Thresholds"]},"Thresholds")]})},s=function(e,t){var n=(0,r.useLocalState)(t,"tabIndex",0),a=n[0];n[1];switch(a){case 0:return(0,o.createComponentVNode)(2,m);case 1:return(0,o.createComponentVNode)(2,p);case 2:return(0,o.createComponentVNode)(2,f);case 3:return(0,o.createComponentVNode)(2,h);default:return"WE SHOULDN'T BE HERE!"}},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act;return n.data.vents.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,a.Button,{content:e.power?"On":"Off",selected:e.power,icon:"power-off",onClick:function(){return c("command",{cmd:"power",val:1===e.power?0:1,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"release"===e.direction?"Blowing":"Siphoning",icon:"release"===e.direction?"sign-out-alt":"sign-in-alt",onClick:function(){return c("command",{cmd:"direction",val:"release"===e.direction?0:1,id_tag:e.id_tag})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Checks",children:[(0,o.createComponentVNode)(2,a.Button,{content:"External",selected:1===e.checks,onClick:function(){return c("command",{cmd:"checks",val:1,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Internal",selected:2===e.checks,onClick:function(){return c("command",{cmd:"checks",val:2,id_tag:e.id_tag})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"External Pressure Target",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:e.external})," kPa\xa0",(0,o.createComponentVNode)(2,a.Button,{content:"Set",icon:"cog",onClick:function(){return c("command",{cmd:"set_external_pressure",id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",icon:"redo-alt",onClick:function(){return c("command",{cmd:"set_external_pressure",val:101.325,id_tag:e.id_tag})}})]})]})},e.name)}))},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act;return n.data.scrubbers.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,a.Button,{content:e.power?"On":"Off",selected:e.power,icon:"power-off",onClick:function(){return c("command",{cmd:"power",val:1===e.power?0:1,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:0===e.scrubbing?"Siphoning":"Scrubbing",icon:0===e.scrubbing?"sign-in-alt":"filter",onClick:function(){return c("command",{cmd:"scrubbing",val:0===e.scrubbing?1:0,id_tag:e.id_tag})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,a.Button,{content:e.widenet?"Extended":"Normal",selected:e.widenet,icon:"expand-arrows-alt",onClick:function(){return c("command",{cmd:"widenet",val:0===e.widenet?1:0,id_tag:e.id_tag})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filtering",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Carbon Dioxide",selected:e.filter_co2,onClick:function(){return c("command",{cmd:"co2_scrub",val:0===e.filter_co2?1:0,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Plasma",selected:e.filter_toxins,onClick:function(){return c("command",{cmd:"tox_scrub",val:0===e.filter_toxins?1:0,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nitrous Oxide",selected:e.filter_n2o,onClick:function(){return c("command",{cmd:"n2o_scrub",val:0===e.filter_n2o?1:0,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Oxygen",selected:e.filter_o2,onClick:function(){return c("command",{cmd:"o2_scrub",val:0===e.filter_o2?1:0,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nitrogen",selected:e.filter_n2,onClick:function(){return c("command",{cmd:"n2_scrub",val:0===e.filter_n2?1:0,id_tag:e.id_tag})}})]})]})},e.name)}))},f=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.modes,d=i.presets,u=i.emagged,s=i.mode,m=i.preset;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"System Mode",children:(0,o.createComponentVNode)(2,a.Table,{children:l.map((function(e){return(!e.emagonly||e.emagonly&&!!u)&&(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",width:1,children:(0,o.createComponentVNode)(2,a.Button,{content:e.name,icon:"cog",selected:e.id===s,onClick:function(){return c("mode",{mode:e.id})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.desc})]},e.name)}))})}),(0,o.createComponentVNode)(2,a.Section,{title:"System Presets",children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,children:"After making a selection, the system will automatically cycle in order to remove contaminants."}),(0,o.createComponentVNode)(2,a.Table,{mt:1,children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",width:1,children:(0,o.createComponentVNode)(2,a.Button,{content:e.name,icon:"cog",selected:e.id===m,onClick:function(){return c("preset",{preset:e.id})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.desc})]},e.name)}))})]})],4)},h=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.thresholds;return(0,o.createComponentVNode)(2,a.Section,{title:"Alarm Thresholds",children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"red",width:"20%",children:"Danger Min"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"orange",width:"20%",children:"Warning Min"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"orange",width:"20%",children:"Warning Max"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"red",width:"20%",children:"Danger Max"})]}),i.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),e.settings.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:-1===e.selected?"Off":e.selected,onClick:function(){return c("command",{cmd:"set_threshold",env:e.env,"var":e.val})}})},e.val)}))]},e.name)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockAccessController=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AirlockAccessController=function(e,t){var n,i,l=(0,r.useBackend)(t),d=l.act,u=l.data,s=u.exterior_status,m=u.interior_status,p=u.processing;return n="open"===u.exterior_status.state?(0,o.createComponentVNode)(2,a.Button,{content:"Lock Exterior Door",icon:"exclamation-triangle",disabled:p,onClick:function(){return d("force_ext")}}):(0,o.createComponentVNode)(2,a.Button,{content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:p,onClick:function(){return d("cycle_ext_door")}}),i="open"===u.interior_status.state?(0,o.createComponentVNode)(2,a.Button,{content:"Lock Interior Door",icon:"exclamation-triangle",disabled:p,color:"open"===m?"red":p?"yellow":null,onClick:function(){return d("force_int")}}):(0,o.createComponentVNode)(2,a.Button,{content:"Cycle to Interior",icon:"arrow-circle-right",disabled:p,onClick:function(){return d("cycle_int_door")}}),(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"External Door Status",children:"closed"===s.state?"Locked":"Open"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Internal Door Status",children:"closed"===m.state?"Locked":"Open"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Actions",children:[(0,o.createComponentVNode)(2,a.Box,{children:n}),(0,o.createComponentVNode)(2,a.Box,{children:i})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockElectronics=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(78);t.AirlockElectronics=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,d)]})};var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.unrestricted_dir;return(0,o.createComponentVNode)(2,a.Section,{title:"Access Control",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,mb:1,children:"Unrestricted Access From:"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:"arrow-down",content:"North",selected:"north"===i?"selected":null,onClick:function(){return c("unrestricted_access",{unres_dir:"North"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:"arrow-up",content:"South",selected:"south"===i?"selected":null,onClick:function(){return c("unrestricted_access",{unres_dir:"South"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:"arrow-left",content:"East",selected:"east"===i?"selected":null,onClick:function(){return c("unrestricted_access",{unres_dir:"East"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:"arrow-right",content:"West",selected:"west"===i?"selected":null,onClick:function(){return c("unrestricted_access",{unres_dir:"West"})}})})]})]})})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.selected_accesses,u=l.one_access,s=l.regions;return(0,o.createComponentVNode)(2,i.AccessList,{usedByRcd:1,rcdButtons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:u,content:"One",onClick:function(){return c("set_one_access",{access:"one"})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:!u,content:"All",onClick:function(){return c("set_one_access",{access:"all"})}})],4),accesses:s,selectedList:d,accessMod:function(e){return c("set",{access:e})},grantAll:function(){return c("grant_all")},denyAll:function(){return c("clear_all")},grantDep:function(e){return c("grant_region",{region:e})},denyDep:function(e){return c("deny_region",{region:e})}})}},function(e,t,n){"use strict";t.__esModule=!0,t.AppearanceChanger=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AppearanceChanger=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.change_race,s=d.species,m=d.specimen,p=d.change_gender,f=d.gender,h=d.has_gender,C=d.change_eye_color,N=d.change_skin_tone,b=d.change_skin_color,g=d.change_head_accessory_color,V=d.change_hair_color,v=d.change_secondary_hair_color,y=d.change_facial_hair_color,_=d.change_secondary_facial_hair_color,x=d.change_head_marking_color,k=d.change_body_marking_color,L=d.change_tail_marking_color,B=d.change_head_accessory,w=d.head_accessory_styles,S=d.head_accessory_style,I=d.change_hair,T=d.hair_styles,A=d.hair_style,E=d.change_facial_hair,M=d.facial_hair_styles,O=d.facial_hair_style,P=d.change_head_markings,R=d.head_marking_styles,D=d.head_marking_style,F=d.change_body_markings,j=d.body_marking_styles,W=d.body_marking_style,z=d.change_tail_markings,U=d.tail_marking_styles,H=d.tail_marking_style,K=d.change_body_accessory,G=d.body_accessory_styles,q=d.body_accessory_style,Y=d.change_alt_head,$=d.alt_head_styles,X=d.alt_head_style,J=!1;return(C||N||b||g||V||v||y||_||x||k||L)&&(J=!0),(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Species",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.specimen,selected:e.specimen===m,onClick:function(){return l("race",{race:e.specimen})}},e.specimen)}))}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gender",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Male",selected:"male"===f,onClick:function(){return l("gender",{gender:"male"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Female",selected:"female"===f,onClick:function(){return l("gender",{gender:"female"})}}),!h&&(0,o.createComponentVNode)(2,a.Button,{content:"Genderless",selected:"plural"===f,onClick:function(){return l("gender",{gender:"plural"})}})]}),!!J&&(0,o.createComponentVNode)(2,i),!!B&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Head accessory",children:w.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.headaccessorystyle,selected:e.headaccessorystyle===S,onClick:function(){return l("head_accessory",{head_accessory:e.headaccessorystyle})}},e.headaccessorystyle)}))}),!!I&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hair",children:T.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.hairstyle,selected:e.hairstyle===A,onClick:function(){return l("hair",{hair:e.hairstyle})}},e.hairstyle)}))}),!!E&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Facial hair",children:M.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.facialhairstyle,selected:e.facialhairstyle===O,onClick:function(){return l("facial_hair",{facial_hair:e.facialhairstyle})}},e.facialhairstyle)}))}),!!P&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Head markings",children:R.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.headmarkingstyle,selected:e.headmarkingstyle===D,onClick:function(){return l("head_marking",{head_marking:e.headmarkingstyle})}},e.headmarkingstyle)}))}),!!F&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Body markings",children:j.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.bodymarkingstyle,selected:e.bodymarkingstyle===W,onClick:function(){return l("body_marking",{body_marking:e.bodymarkingstyle})}},e.bodymarkingstyle)}))}),!!z&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tail markings",children:U.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.tailmarkingstyle,selected:e.tailmarkingstyle===H,onClick:function(){return l("tail_marking",{tail_marking:e.tailmarkingstyle})}},e.tailmarkingstyle)}))}),!!K&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Body accessory",children:G.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.bodyaccessorystyle,selected:e.bodyaccessorystyle===q,onClick:function(){return l("body_accessory",{body_accessory:e.bodyaccessorystyle})}},e.bodyaccessorystyle)}))}),!!Y&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternate head",children:$.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.altheadstyle,selected:e.altheadstyle===X,onClick:function(){return l("alt_head",{alt_head:e.altheadstyle})}},e.altheadstyle)}))})]})})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Colors",children:[{key:"change_eye_color",text:"Change eye color",action:"eye_color"},{key:"change_skin_tone",text:"Change skin tone",action:"skin_tone"},{key:"change_skin_color",text:"Change skin color",action:"skin_color"},{key:"change_head_accessory_color",text:"Change head accessory color",action:"head_accessory_color"},{key:"change_hair_color",text:"Change hair color",action:"hair_color"},{key:"change_secondary_hair_color",text:"Change secondary hair color",action:"secondary_hair_color"},{key:"change_facial_hair_color",text:"Change facial hair color",action:"facial_hair_color"},{key:"change_secondary_facial_hair_color",text:"Change secondary facial hair color",action:"secondary_facial_hair_color"},{key:"change_head_marking_color",text:"Change head marking color",action:"head_marking_color"},{key:"change_body_marking_color",text:"Change body marking color",action:"body_marking_color"},{key:"change_tail_marking_color",text:"Change tail marking color",action:"tail_marking_color"}].map((function(e){return!!i[e.key]&&(0,o.createComponentVNode)(2,a.Button,{content:e.text,onClick:function(){return c(e.action)}})}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AtmosAlertConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.priority||[],u=l.minor||[];return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[0===d.length&&(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),d.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return i("clear",{zone:e})}}),2,null,e)})),0===u.length&&(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16),u.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return i("clear",{zone:e})}}),2,null,e)}))],0)})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControl=void 0;var o=n(0),r=n(1),a=n(2),c=n(76),i=n(4);t.AtmosControl=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data,(0,r.useLocalState)(t,"tabIndex",0)),u=c[0],s=c[1];return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:0===u,children:(0,o.createComponentVNode)(2,a.Box,{fillPositionedParent:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:0===u,onClick:function(){return s(0)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"table"})," Data View"]},"DataView"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===u,onClick:function(){return s(1)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"map-marked-alt"})," Map View"]},"MapView")]}),function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,l);case 1:return(0,o.createComponentVNode)(2,d);default:return"WE SHOULDN'T BE HERE!"}}(u)]})})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.alarms;return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Status"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Access"})]}),l.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,c.TableCell,{children:e.name}),(0,o.createComponentVNode)(2,c.TableCell,{children:(t=e.danger,0===t?(0,o.createComponentVNode)(2,a.Box,{color:"green",children:"Good"}):1===t?(0,o.createComponentVNode)(2,a.Box,{color:"orange",bold:!0,children:"Warning"}):2===t?(0,o.createComponentVNode)(2,a.Box,{color:"red",bold:!0,children:"DANGER"}):void 0)}),(0,o.createComponentVNode)(2,c.TableCell,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"cog",content:"Access",onClick:function(){return i("open_alarm",{aref:e.ref})}})})]},e.name);var t}))]})})},d=function(e,t){var n=(0,r.useBackend)(t).data,c=(0,r.useLocalState)(t,"zoom",1),i=c[0],l=c[1],d=n.alarms;return(0,o.createComponentVNode)(2,a.Box,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,o.createComponentVNode)(2,a.NanoMap,{onZoom:function(e){return l(e)},children:d.filter((function(e){return 2===e.z})).map((function(e){return(0,o.createComponentVNode)(2,a.NanoMap.Marker,{x:e.x,y:e.y,zoom:i,icon:"circle",tooltip:e.name,color:(t=e.danger,0===t?"green":1===t?"orange":2===t?"red":void 0)},e.ref);var t}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AtmosFilter=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.on,u=l.pressure,s=l.max_pressure,m=l.filter_type,p=l.filter_type_list;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:d?"On":"Off",color:d?null:"red",selected:d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Rate",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",textAlign:"center",disabled:0===u,width:2.2,onClick:function(){return i("min_pressure")}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:s,value:u,onDrag:function(e,t){return i("custom_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",textAlign:"center",disabled:u===s,width:2.2,onClick:function(){return i("max_pressure")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.gas_type===m,content:e.label,onClick:function(){return i("set_filter",{filter:e.gas_type})}},e.label)}))})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AtmosMixer=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.on,s=d.pressure,m=d.max_pressure,p=d.node1_concentration,f=d.node2_concentration;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:u?"On":"Off",color:u?null:"red",selected:u,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Rate",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",textAlign:"center",disabled:0===s,width:2.2,onClick:function(){return l("min_pressure")}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:m,value:s,onDrag:function(e,t){return l("custom_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",textAlign:"center",disabled:s===m,width:2.2,onClick:function(){return l("max_pressure")}})]}),(0,o.createComponentVNode)(2,i,{node_name:"Node 1",node_ref:p}),(0,o.createComponentVNode)(2,i,{node_name:"Node 2",node_ref:f})]})})})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=(n.data,e.node_name),l=e.node_ref;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:i,children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",textAlign:"center",width:2.2,disabled:0===l,onClick:function(){return c("set_node",{node_name:i,concentration:(l-10)/100})}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,unit:"%",width:6.1,lineHeight:1.5,stepPixelSize:10,minValue:0,maxValue:100,value:l,onChange:function(e,t){return c("set_node",{node_name:i,concentration:t/100})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",textAlign:"center",width:2.2,disabled:100===l,onClick:function(){return c("set_node",{node_name:i,concentration:(l+10)/100})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AtmosPump=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.on,u=l.rate,s=l.max_rate,m=l.gas_unit,p=l.step;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:d?"On":"Off",color:d?null:"red",selected:d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Rate",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",textAlign:"center",disabled:0===u,width:2.2,onClick:function(){return i("min_rate")}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,unit:m,width:6.1,lineHeight:1.5,step:p,minValue:0,maxValue:s,value:u,onDrag:function(e,t){return i("custom_rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",textAlign:"center",disabled:u===s,width:2.2,onClick:function(){return i("max_rate")}})]})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Autolathe=void 0;var o=n(0),r=n(43),a=n(26),c=n(1),i=n(2),l=n(4),d=n(20),u=function(e,t,n,o){return null===e.requirements||!(e.requirements.metal*o>t)&&!(e.requirements.glass*o>n)};t.Autolathe=function(e,t){var n=(0,c.useBackend)(t),s=n.act,m=n.data,p=m.total_amount,f=(m.max_amount,m.metal_amount),h=m.glass_amount,C=m.busyname,N=(m.busyamt,m.showhacked,m.buildQueue),b=m.buildQueueLen,g=m.recipes,V=m.categories,v=(0,c.useSharedState)(t,"category",0),y=v[0],_=v[1];0===y&&(y="Tools");var x=f.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),k=h.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),L=p.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),B=(0,c.useSharedState)(t,"search_text",""),w=B[0],S=B[1],I=(0,d.createSearch)(w,(function(e){return e.name})),T="";b>0&&(T=N.map((function(e,t){return(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:N[t][0],onClick:function(){return s("remove_from_queue",{remove_from_queue:N.indexOf(e)+1})}},e)},t)})));var A=(0,r.flow)([(0,a.filter)((function(e){return(e.category.indexOf(y)>-1||w)&&(m.showhacked||!e.hacked)})),w&&(0,a.filter)(I),(0,a.sortBy)((function(e){return e.name.toLowerCase()}))])(g),E="Build";w?E="Results for: '"+w+"':":y&&(E="Build ("+y+")");return(0,o.createComponentVNode)(2,l.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createVNode)(1,"div",null,(0,o.createComponentVNode)(2,i.Section,{title:E,buttons:(0,o.createComponentVNode)(2,i.Dropdown,{width:"190px",options:V,selected:y,onSelected:function(e){return _(e)}}),children:[(0,o.createComponentVNode)(2,i.Input,{fluid:!0,placeholder:"Search for...",onInput:function(e,t){return S(t)},mb:1}),A.map((function(e){return(0,o.createComponentVNode)(2,i.Flex,{justify:"space-between",align:"center",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:[(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+e.image,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}}),(0,o.createComponentVNode)(2,i.Button,{icon:"hammer",selected:m.busyname===e.name&&1===m.busyamt,disabled:!u(e,m.metal_amount,m.glass_amount,1),onClick:function(){return s("make",{make:e.uid,multiplier:1})},children:(0,d.toTitleCase)(e.name)}),e.max_multiplier>=10&&(0,o.createComponentVNode)(2,i.Button,{icon:"hammer",selected:m.busyname===e.name&&10===m.busyamt,disabled:!u(e,m.metal_amount,m.glass_amount,10),onClick:function(){return s("make",{make:e.uid,multiplier:10})},children:"10x"}),e.max_multiplier>=25&&(0,o.createComponentVNode)(2,i.Button,{icon:"hammer",selected:m.busyname===e.name&&25===m.busyamt,disabled:!u(e,m.metal_amount,m.glass_amount,25),onClick:function(){return s("make",{make:e.uid,multiplier:25})},children:"25x"}),e.max_multiplier>25&&(0,o.createComponentVNode)(2,i.Button,{icon:"hammer",selected:m.busyname===e.name&&m.busyamt===e.max_multiplier,disabled:!u(e,m.metal_amount,m.glass_amount,e.max_multiplier),onClick:function(){return s("make",{make:e.uid,multiplier:e.max_multiplier})},children:[e.max_multiplier,"x"]})]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:e.requirements&&Object.keys(e.requirements).map((function(t){return(0,d.toTitleCase)(t)+": "+e.requirements[t]})).join(", ")||(0,o.createComponentVNode)(2,i.Box,{children:"No resources required."})})]},e.ref)}))]}),2,{style:{float:"left",width:"68%"}}),(0,o.createVNode)(1,"div",null,[(0,o.createComponentVNode)(2,i.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Metal",children:x}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Glass",children:k}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Total",children:L}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Storage",children:[m.fill_percent,"% Full"]})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Building",children:(0,o.createComponentVNode)(2,i.Box,{color:C?"green":"",children:C||"Nothing"})}),(0,o.createComponentVNode)(2,i.Section,{title:"Build Queue",children:[T,(0,o.createVNode)(1,"div",null,(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Clear All",disabled:!m.buildQueueLen,onClick:function(){return s("clear_queue")}}),2,{align:"right"})]})],4,{style:{float:"right",width:"30%"}})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BlueSpaceArtilleryControl=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.BlueSpaceArtilleryControl=function(e,t){var n,i=(0,r.useBackend)(t),l=i.act,d=i.data;return n=d.ready?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:"green",children:"Ready"}):d.reloadtime_text?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Reloading In",color:"red",children:d.reloadtime_text}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:"red",children:"No cannon connected!"}),(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[d.notice&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alert",color:"red",children:d.notice}),n,(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,a.Button,{icon:"crosshairs",content:d.target?d.target:"None",onClick:function(){return l("recalibrate")}})}),1===d.ready&&!!d.target&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Firing",children:(0,o.createComponentVNode)(2,a.Button,{icon:"skull",content:"FIRE!",color:"red",onClick:function(){return l("fire")}})}),!d.connected&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance",children:(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",content:"Complete Deployment",onClick:function(){return l("build")}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BluespaceTap=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(95);t.BluespaceTap=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.product||[],s=d.desiredLevel,m=d.inputLevel,p=d.points,f=d.totalPoints,h=d.powerUse,C=d.availablePower,N=d.maxLevel,b=d.emagged,g=d.safeLevels,V=d.nextLevelPower,v=s>m?"bad":"good";return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!!b&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:1,children:"Safety Protocols disabled"}),!!(m>g)&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:1,children:"High Power, Instability likely"}),(0,o.createComponentVNode)(2,a.Collapsible,{title:"Input Management",children:(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Input Level",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Desired Level",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===s,tooltip:"Set to 0",onClick:function(){return l("set",{set_level:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"step-backward",tooltip:"Decrease to actual input level",disabled:0===s,onClick:function(){return l("set",{set_level:m})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===s,tooltip:"Decrease one step",onClick:function(){return l("decrease")}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:s,fillValue:m,minValue:0,color:v,maxValue:N,stepPixelSize:20,step:1,onChange:function(e,t){return l("set",{set_level:t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:s===N,tooltip:"Increase one step",tooltipPosition:"left",onClick:function(){return l("increase")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:s===N,tooltip:"Set to max",tooltipPosition:"left",onClick:function(){return l("set",{set_level:N})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Power Use",children:(0,i.formatPower)(h)}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power for next level",children:(0,i.formatPower)(V)}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Surplus Power",children:(0,i.formatPower)(C)})]})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available Points",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Points",children:f})]})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{align:"end",children:(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,a.Button,{disabled:e.price>=p,onClick:function(){return l("vend",{target:e.key})},content:e.price})},e.key)}))})})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BodyScanner=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(4),l=[["good","Alive"],["average","Critical"],["bad","DEAD"]],d=[["hasBorer","bad","Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended."],["hasVirus","bad","Viral pathogen detected in blood stream."],["blind","average","Cataracts detected."],["colourblind","average","Photoreceptor abnormalities detected."],["nearsighted","average","Retinal misalignment detected."]],u=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radioactive","radLoss"],["Brute","bruteLoss"],["Genetic","cloneLoss"],["Burn","fireLoss"],["Paralysis","paralysis"]],s={average:[.25,.5],bad:[.5,Infinity]},m=function(e,t){for(var n=[],o=0;o0?e.filter((function(e){return!!e})).reduce((function(e,t){return(0,o.createFragment)([e,(0,o.createComponentVNode)(2,c.Box,{children:t},t)],0)}),null):null},f=function(e){if(e>100){if(e<300)return"mild infection";if(e<400)return"mild infection+";if(e<500)return"mild infection++";if(e<700)return"acute infection";if(e<800)return"acute infection+";if(e<900)return"acute infection++";if(e>=900)return"septic"}return""};t.BodyScanner=function(e,t){var n=(0,a.useBackend)(t).data,r=n.occupied,c=n.occupant,l=void 0===c?{}:c,d=r?(0,o.createComponentVNode)(2,h,{occupant:l}):(0,o.createComponentVNode)(2,y);return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:d})})};var h=function(e){var t=e.occupant;return(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,C,{occupant:t}),(0,o.createComponentVNode)(2,N,{occupant:t}),(0,o.createComponentVNode)(2,b,{occupant:t}),(0,o.createComponentVNode)(2,V,{organs:t.extOrgan}),(0,o.createComponentVNode)(2,v,{organs:t.intOrgan})]})},C=function(e,t){var n=(0,a.useBackend)(t),i=n.act,d=n.data.occupant;return(0,o.createComponentVNode)(2,c.Section,{title:"Occupant",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"print",onClick:function(){return i("print_p")},children:"Print Report"}),(0,o.createComponentVNode)(2,c.Button,{icon:"user-slash",onClick:function(){return i("ejectify")},children:"Eject"})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:d.name}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:d.maxHealth,value:d.health/d.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",color:l[d.stat][0],children:l[d.stat][1]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:(0,r.round)(d.bodyTempC,0)}),"\xb0C,\xa0",(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:(0,r.round)(d.bodyTempF,0)}),"\xb0F"]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Implants",children:d.implant_len?(0,o.createComponentVNode)(2,c.Box,{children:d.implant.map((function(e){return e.name})).join(", ")}):(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"None"})})]})})},N=function(e){var t=e.occupant;return t.hasBorer||t.blind||t.colourblind||t.nearsighted||t.hasVirus?(0,o.createComponentVNode)(2,c.Section,{title:"Abnormalities",children:d.map((function(e,n){if(t[e[0]])return(0,o.createComponentVNode)(2,c.Box,{color:e[1],bold:"bad"===e[1],children:e[2]})}))}):(0,o.createComponentVNode)(2,c.Section,{title:"Abnormalities",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"No abnormalities found."})})},b=function(e){var t=e.occupant;return(0,o.createComponentVNode)(2,c.Section,{title:"Damage",children:(0,o.createComponentVNode)(2,c.Table,{children:m(u,(function(e,n,r){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Table.Row,{color:"label",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[e[0],":"]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:!!n&&n[0]+":"})]}),(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,g,{value:t[e[1]],marginBottom:r100)&&"average":"bad")||!!e.status.robotic&&"label",width:"33%",children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"center",q:!0,children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:e.maxHealth,mt:t>0&&"0.5rem",value:e.totalLoss/100,ranges:s,children:[(0,o.createComponentVNode)(2,c.Box,{float:"left",display:"inline",children:[!!e.bruteLoss&&(0,o.createComponentVNode)(2,c.Box,{display:"inline",position:"relative",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"bone"}),(0,r.round)(e.bruteLoss,0),"\xa0",(0,o.createComponentVNode)(2,c.Tooltip,{position:"top",content:"Brute damage"})]}),!!e.fireLoss&&(0,o.createComponentVNode)(2,c.Box,{display:"inline",position:"relative",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"fire"}),(0,r.round)(e.fireLoss,0),(0,o.createComponentVNode)(2,c.Tooltip,{position:"top",content:"Burn damage"})]})]}),(0,o.createComponentVNode)(2,c.Box,{display:"inline",children:(0,r.round)(e.totalLoss,0)})]})}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:t>0&&"calc(0.5rem + 2px)",children:[(0,o.createComponentVNode)(2,c.Box,{color:"average",display:"inline",children:p([!!e.internalBleeding&&"Internal bleeding",!!e.lungRuptured&&"Ruptured lung",!!e.status.broken&&e.status.broken,f(e.germ_level),!!e.open&&"Open incision"])}),(0,o.createComponentVNode)(2,c.Box,{display:"inline",children:[p([!!e.status.splinted&&(0,o.createComponentVNode)(2,c.Box,{color:"good",children:"Splinted"}),!!e.status.robotic&&(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Robotic"}),!!e.status.dead&&(0,o.createComponentVNode)(2,c.Box,{color:"bad",bold:!0,children:"DEAD"})]),p(e.shrapnel.map((function(e){return e.known?e.name:"Unknown object"})))]})]})]},t)}))]})})},v=function(e){return 0===e.organs.length?(0,o.createComponentVNode)(2,c.Section,{title:"Internal Organs",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"N/A"})}):(0,o.createComponentVNode)(2,c.Section,{title:"Internal Organs",children:(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"center",children:"Damage"}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"right",children:"Injuries"})]}),e.organs.map((function(e,t){return(0,o.createComponentVNode)(2,c.Table.Row,{textTransform:"capitalize",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{color:(!e.dead?e.germ_level>100&&"average":"bad")||e.robotic>0&&"label",width:"33%",children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:e.maxHealth,value:e.damage/100,mt:t>0&&"0.5rem",ranges:s,children:(0,r.round)(e.damage,0)})}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:t>0&&"calc(0.5rem + 2px)",children:[(0,o.createComponentVNode)(2,c.Box,{color:"average",display:"inline",children:p([f(e.germ_level)])}),(0,o.createComponentVNode)(2,c.Box,{display:"inline",children:p([1===e.robotic&&(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Robotic"}),2===e.robotic&&(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Assisted"}),!!e.dead&&(0,o.createComponentVNode)(2,c.Box,{color:"bad",bold:!0,children:"DEAD"})])})]})]},t)}))]})})},y=function(){return(0,o.createComponentVNode)(2,c.Section,{textAlign:"center",flexGrow:"1",children:(0,o.createComponentVNode)(2,c.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant detected."]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BotClean=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.BotClean=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.locked,u=l.noaccess,s=l.maintpanel,m=l.on,p=l.autopatrol,f=l.canhack,h=l.emagged,C=l.remote_disabled,N=l.painame,b=l.cleanblood;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:["Swipe an ID card to ",d?"unlock":"lock"," this interface."]}),(0,o.createComponentVNode)(2,a.Section,{title:"General Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",content:m?"On":"Off",selected:m,disabled:u,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Patrol",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:p,content:"Auto Patrol",disabled:u,onClick:function(){return i("autopatrol")}})}),!!s&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance Panel",children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Panel Open!"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety System",children:(0,o.createComponentVNode)(2,a.Box,{color:h?"bad":"good",children:h?"DISABLED!":"Enabled"})}),!!f&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hacking",children:(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:h?"Restore Safties":"Hack",disabled:u,color:"bad",onClick:function(){return i("hack")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Remote Access",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:!C,content:"AI Remote Control",disabled:u,onClick:function(){return i("disableremote")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cleaning Settings",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:b,content:"Clean Blood",disabled:u,onClick:function(){return i("blood")}})}),N&&(0,o.createComponentVNode)(2,a.Section,{title:"pAI",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:N,disabled:u,onClick:function(){return i("ejectpai")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BotSecurity=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.BotSecurity=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.locked,u=l.noaccess,s=l.maintpanel,m=l.on,p=l.autopatrol,f=l.canhack,h=l.emagged,C=l.remote_disabled,N=l.painame,b=l.check_id,g=l.check_weapons,V=l.check_warrant,v=l.arrest_mode,y=l.arrest_declare;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:["Swipe an ID card to ",d?"unlock":"lock"," this interface."]}),(0,o.createComponentVNode)(2,a.Section,{title:"General Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",content:m?"On":"Off",selected:m,disabled:u,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Patrol",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:p,content:"Auto Patrol",disabled:u,onClick:function(){return i("autopatrol")}})}),!!s&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance Panel",children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Panel Open!"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety System",children:(0,o.createComponentVNode)(2,a.Box,{color:h?"bad":"good",children:h?"DISABLED!":"Enabled"})}),!!f&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hacking",children:(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:h?"Restore Safties":"Hack",disabled:u,color:"bad",onClick:function(){return i("hack")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Remote Access",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:!C,content:"AI Remote Control",disabled:u,onClick:function(){return i("disableremote")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Who To Arrest",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:b,content:"Unidentifiable Persons",disabled:u,onClick:function(){return i("authid")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:g,content:"Unauthorized Weapons",disabled:u,onClick:function(){return i("authweapon")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:V,content:"Wanted Criminals",disabled:u,onClick:function(){return i("authwarrant")}})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Arrest Procedure",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:v,content:"Detain Targets Indefinitely",disabled:u,onClick:function(){return i("arrtype")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:y,content:"Announce Arrests On Radio",disabled:u,onClick:function(){return i("arrdeclare")}})]}),N&&(0,o.createComponentVNode)(2,a.Section,{title:"pAI",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:N,disabled:u,onClick:function(){return i("ejectpai")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BrigCells=void 0;var o=n(0),r=n(4),a=n(2),c=n(1),i=function(e,t){var n=e.cell,r=(0,c.useBackend)(t).act,i=n.cell_id,l=n.occupant,d=n.crimes,u=n.brigged_by,s=n.time_left_seconds,m=n.time_set_seconds,p=n.ref,f="";s>0&&(f+=" BrigCells__listRow--active");return(0,o.createComponentVNode)(2,a.Table.Row,{className:f,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:i}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:l}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:d}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:u}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.TimeDisplay,{totalSeconds:m})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.TimeDisplay,{totalSeconds:s})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{type:"button",onClick:function(){r("release",{ref:p})},children:"Release"})})]})},l=function(e){var t=e.cells;return(0,o.createComponentVNode)(2,a.Table,{className:"BrigCells__list",children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Cell"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Occupant"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Crimes"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Brigged By"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Time Brigged For"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Time Left"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Release"})]}),t.map((function(e){return(0,o.createComponentVNode)(2,i,{cell:e},e.ref)}))]})};t.BrigCells=function(e,t){var n=(0,c.useBackend)(t),i=(n.act,n.data.cells);return(0,o.createComponentVNode)(2,r.Window,{theme:"security",resizable:!0,children:(0,o.createComponentVNode)(2,r.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",height:"100%",children:(0,o.createComponentVNode)(2,a.Section,{height:"100%",flexGrow:"1",children:(0,o.createComponentVNode)(2,l,{cells:i})})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BrigTimer=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.BrigTimer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;l.nameText=l.occupant,l.timing&&(l.prisoner_hasrec?l.nameText=(0,o.createComponentVNode)(2,a.Box,{color:"green",children:l.occupant}):l.nameText=(0,o.createComponentVNode)(2,a.Box,{color:"red",children:l.occupant}));var d="pencil-alt";l.prisoner_name&&(l.prisoner_hasrec||(d="exclamation-triangle"));var u=[],s=0;for(s=0;se.current_positions&&(0,o.createComponentVNode)(2,a.Box,{color:"green",children:e.total_positions-e.current_positions})||(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"0"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{content:"-",disabled:s.cooldown_time||!e.can_close,onClick:function(){return u("make_job_unavailable",{job:e.title})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{content:"+",disabled:s.cooldown_time||!e.can_open,onClick:function(){return u("make_job_available",{job:e.title})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:s.target_dept&&(0,o.createComponentVNode)(2,a.Box,{color:"green",children:s.priority_jobs.indexOf(e.title)>-1?"Yes":""})||(0,o.createComponentVNode)(2,a.Button,{content:e.is_priority?"Yes":"No",selected:e.is_priority,disabled:s.cooldown_time||!e.can_prioritize,onClick:function(){return u("prioritize_job",{job:e.title})}})})]},e.title)}))]})})],4):(0,o.createComponentVNode)(2,a.Section,{title:"Warning",color:"red",children:"Not logged in."});break;case 2:n=s.authenticated&&s.scan_name?s.modify_name?(0,o.createComponentVNode)(2,i.AccessList,{accesses:s.regions,selectedList:s.selectedAccess,accessMod:function(e){return u("set",{access:e})},grantAll:function(){return u("grant_all")},denyAll:function(){return u("clear_all")},grantDep:function(e){return u("grant_region",{region:e})},denyDep:function(e){return u("deny_region",{region:e})}}):(0,o.createComponentVNode)(2,a.Section,{title:"Card Missing",color:"red",children:"No card to modify."}):(0,o.createComponentVNode)(2,a.Section,{title:"Warning",color:"red",children:"Not logged in."});break;case 3:n=s.authenticated?s.records.length?(0,o.createComponentVNode)(2,a.Section,{title:"Records",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Delete All Records",disabled:!s.authenticated||0===s.records.length||s.target_dept,onClick:function(){return u("wipe_all_logs")}}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Crewman"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Old Rank"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"New Rank"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Authorized By"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Time"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Reason"}),!!s.iscentcom&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Deleted By"})]}),s.records.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.transferee}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.oldvalue}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.newvalue}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.whodidit}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.timestamp}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.reason}),!!s.iscentcom&&(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.deletedby})]},e.timestamp)}))]}),!!s.iscentcom&&(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Delete MY Records",color:"purple",disabled:!s.authenticated||0===s.records.length,onClick:function(){return u("wipe_my_logs")}})})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Records",children:"No records."}):(0,o.createComponentVNode)(2,a.Section,{title:"Warning",color:"red",children:"Not logged in."});break;case 4:n=s.authenticated&&s.scan_name?(0,o.createComponentVNode)(2,a.Section,{title:"Your Team",children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Rank"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Sec Status"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Actions"})]}),s.people_dept.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.title}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.crimstat}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:e.buttontext,disabled:!e.demotable,onClick:function(){return u("remote_demote",{remote_demote:e.name})}})})]},e.title)}))]})}):(0,o.createComponentVNode)(2,a.Section,{title:"Warning",color:"red",children:"Not logged in."});break;default:n=(0,o.createComponentVNode)(2,a.Section,{title:"Warning",color:"red",children:"ERROR: Unknown Mode."})}return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[m,p,n]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoConsole=void 0;var o=n(0),r=n(43),a=n(26),c=n(1),i=n(2),l=n(4),d=(n(77),n(20));t.CargoConsole=function(e,t){return(0,o.createComponentVNode)(2,l.Window,{children:(0,o.createComponentVNode)(2,l.Window.Content,{children:[(0,o.createComponentVNode)(2,u),(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,m),(0,o.createComponentVNode)(2,p)]})})};var u=function(e,t){var n=(0,c.useLocalState)(t,"contentsModal",null),r=n[0],a=n[1],l=(0,c.useLocalState)(t,"contentsModalTitle",null),d=l[0],u=l[1];return null!==r&&null!==d?(0,o.createComponentVNode)(2,i.Modal,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:.75*window.innerHeight+"px",mx:"auto",children:[(0,o.createComponentVNode)(2,i.Box,{width:"100%",bold:!0,children:(0,o.createVNode)(1,"h1",null,[d,(0,o.createTextVNode)(" contents:")],0)}),(0,o.createComponentVNode)(2,i.Box,{children:r.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:["- ",e]},e)}))}),(0,o.createComponentVNode)(2,i.Box,{m:2,children:(0,o.createComponentVNode)(2,i.Button,{content:"Close",onClick:function(){a(null),u(null)}})})]}):void 0},s=function(e,t){var n,r,a=(0,c.useBackend)(t),l=a.act,d=a.data,u=d.is_public,s=d.points,m=d.timeleft,p=d.moving,f=d.at_station;return p||f?!p&&f?(n="Docked at the station",r="Return Shuttle"):p&&(r="In Transit...",n=1!==m?"Shuttle is en route (ETA: "+m+" minutes)":"Shuttle is en route (ETA: "+m+" minute)"):(n="Docked off-station",r="Call Shuttle"),(0,o.createComponentVNode)(2,i.Section,{title:"Status",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Points Available",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle Status",children:n}),0===u&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Controls",children:[(0,o.createComponentVNode)(2,i.Button,{content:r,disabled:p,onClick:function(){return l("moveShuttle")}}),(0,o.createComponentVNode)(2,i.Button,{content:"View Central Command Messages",onClick:function(){return l("showMessages")}})]})]})})},m=function(e,t){var n=(0,c.useBackend)(t),l=n.act,u=n.data,s=u.categories,m=u.supply_packs,p=(0,c.useSharedState)(t,"category","Emergency"),f=p[0],h=p[1],C=(0,c.useSharedState)(t,"search_text",""),N=C[0],b=C[1],g=(0,c.useLocalState)(t,"contentsModal",null),V=(g[0],g[1]),v=(0,c.useLocalState)(t,"contentsModalTitle",null),y=(v[0],v[1]),_=(0,d.createSearch)(N,(function(e){return e.name})),x=(0,r.flow)([(0,a.filter)((function(e){return e.cat===s.filter((function(e){return e.name===f}))[0].category||N})),N&&(0,a.filter)(_),(0,a.sortBy)((function(e){return e.name.toLowerCase()}))])(m),k="Crate Catalogue";return N?k="Results for '"+N+"':":f&&(k="Browsing "+f),(0,o.createComponentVNode)(2,i.Section,{title:k,buttons:(0,o.createComponentVNode)(2,i.Dropdown,{width:"190px",options:s.map((function(e){return e.name})),selected:f,onSelected:function(e){return h(e)}}),children:[(0,o.createComponentVNode)(2,i.Input,{fluid:!0,placeholder:"Search for...",onInput:function(e,t){return b(t)},mb:1}),(0,o.createComponentVNode)(2,i.Box,{maxHeight:25,overflowY:"auto",overflowX:"hidden",children:(0,o.createComponentVNode)(2,i.Table,{m:"0.5rem",children:x.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{bold:!0,children:[e.name," (",e.cost," Points)"]}),(0,o.createComponentVNode)(2,i.Table.Cell,{textAlign:"right",pr:1,children:[(0,o.createComponentVNode)(2,i.Button,{content:"Order 1",icon:"shopping-cart",onClick:function(){return l("order",{crate:e.ref,multiple:0})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Order Multiple",icon:"cart-plus",onClick:function(){return l("order",{crate:e.ref,multiple:1})}}),(0,o.createComponentVNode)(2,i.Button,{content:"View Contents",icon:"search",onClick:function(){V(e.contents),y(e.name)}})]})]},e.name)}))})})]})},p=function(e,t){var n=(0,c.useBackend)(t),r=n.act,a=n.data,l=a.requests,d=a.canapprove,u=a.orders;return(0,o.createComponentVNode)(2,i.Section,{title:"Details",children:(0,o.createComponentVNode)(2,i.Box,{maxHeight:15,overflowY:"auto",overflowX:"hidden",children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,children:"Requests"}),(0,o.createComponentVNode)(2,i.Table,{m:"0.5rem",children:l.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:[(0,o.createComponentVNode)(2,i.Box,{children:["- #",e.ordernum,": ",e.supply_type," for ",(0,o.createVNode)(1,"b",null,e.orderedby,0)]}),(0,o.createComponentVNode)(2,i.Box,{italic:!0,children:["Reason: ",e.comment]})]}),(0,o.createComponentVNode)(2,i.Table.Cell,{textAlign:"right",pr:1,children:[(0,o.createComponentVNode)(2,i.Button,{content:"Approve",color:"green",disabled:!d,onClick:function(){return r("approve",{ordernum:e.ordernum})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Deny",color:"red",onClick:function(){return r("deny",{ordernum:e.ordernum})}})]})]},e.ordernum)}))}),(0,o.createComponentVNode)(2,i.Box,{bold:!0,children:"Confirmed Orders"}),(0,o.createComponentVNode)(2,i.Table,{m:"0.5rem",children:u.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:(0,o.createComponentVNode)(2,i.Table.Cell,{children:[(0,o.createComponentVNode)(2,i.Box,{children:["- #",e.ordernum,": ",e.supply_type," for ",(0,o.createVNode)(1,"b",null,e.orderedby,0)]}),(0,o.createComponentVNode)(2,i.Box,{italic:!0,children:["Reason: ",e.comment]})]})},e.ordernum)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(0),r=n(1),a=n(2),c=n(134),i=n(4),l=[1,5,10,20,30,50],d=[1,5,10];t.ChemDispenser=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,u),(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,m)]})})};var u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.amount,u=i.energy,s=i.maxEnergy;return(0,o.createComponentVNode)(2,a.Section,{title:"Settings",flex:"content",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,minValue:0,maxValue:s,ranges:{good:[.5*s,Infinity],average:[.25*s,.5*s],bad:[-Infinity,.25*s]},children:[u," / ",s," Units"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Dispense",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",spacing:"1",children:l.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",width:"14%",display:"inline-block",children:(0,o.createComponentVNode)(2,a.Button,{icon:"cog",selected:d===e,content:e,m:"0",width:"100%",onClick:function(){return c("amount",{amount:e})}})},t)}))})})]})})},s=function(e,t){for(var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.chemicals,d=void 0===l?[]:l,u=[],s=0;s<(d.length+1)%3;s++)u.push(!0);return(0,o.createComponentVNode)(2,a.Section,{title:i.glass?"Drink Dispenser":"Chemical Dispenser",flexGrow:"1",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",wrap:"wrap",height:"100%",spacingPrecise:"2",align:"flex-start",alignContent:"flex-start",children:[d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",basis:"25%",height:"20px",width:"30%",display:"inline-block",children:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",width:"100%",height:"100%",align:"flex-start",content:e.title,onClick:function(){return c("dispense",{reagent:e.id})}})},t)})),u.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",basis:"25%",height:"20px"},t)}))]})})},m=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,u=l.isBeakerLoaded,s=l.beakerCurrentVolume,m=l.beakerMaxVolume,p=l.beakerContents,f=void 0===p?[]:p;return(0,o.createComponentVNode)(2,a.Section,{title:l.glass?"Glass":"Beaker",flex:"content",minHeight:"25%",buttons:(0,o.createComponentVNode)(2,a.Box,{children:[!!u&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[s," / ",m," units"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!u,onClick:function(){return i("ejectBeaker")}})]}),children:(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:u,beakerContents:f,buttons:function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Isolate",icon:"compress-arrows-alt",onClick:function(){return i("remove",{reagent:e.id,amount:-1})}}),d.map((function(t,n){return(0,o.createComponentVNode)(2,a.Button,{content:t,onClick:function(){return i("remove",{reagent:e.id,amount:t})}},n)})),(0,o.createComponentVNode)(2,a.Button,{content:"ALL",onClick:function(){return i("remove",{reagent:e.id,amount:e.volume})}})],0)}})})}},function(e,t,n){"use strict";e.exports=n(476)()},function(e,t,n){"use strict";var o=n(477);function r(){}function a(){}a.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,a,c){if(c!==o){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:r};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";t.__esModule=!0,t.ChemHeater=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(134),l=n(4);t.ChemHeater=function(e,t){return(0,o.createComponentVNode)(2,l.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,u)]})})};var d=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data,d=l.targetTemp,u=l.targetTempReached,s=l.autoEject,m=l.isActive,p=l.currentTemp,f=l.isBeakerLoaded;return(0,o.createComponentVNode)(2,c.Section,{title:"Settings",flexBasis:"content",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{content:"Auto-eject",icon:s?"toggle-on":"toggle-off",selected:s,onClick:function(){return i("toggle_autoeject")}}),(0,o.createComponentVNode)(2,c.Button,{content:m?"On":"Off",icon:"power-off",selected:m,disabled:!f,onClick:function(){return i("toggle_on")}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,c.NumberInput,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,r.round)(d,0),minValue:0,maxValue:1e3,onDrag:function(e,t){return i("adjust_temperature",{target:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Reading",color:u?"good":"average",children:f&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:p,format:function(e){return(0,r.toFixed)(e)+" K"}})||"\u2014"})]})})},u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.isBeakerLoaded,u=l.beakerCurrentVolume,s=l.beakerMaxVolume,m=l.beakerContents;return(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",flexGrow:"1",buttons:!!d&&(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"label",mr:2,children:[u," / ",s," units"]}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",onClick:function(){return r("eject_beaker")}})]}),children:(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:d,beakerContents:m})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(134),l=n(49),d=[1,5,10],u=["bottle.png","small_bottle.png","wide_bottle.png","round_bottle.png","reagent_bottle.png"];t.ChemMaster=function(e,t){var n=(0,r.useBackend)(t).data,a=n.condi,i=n.beaker,d=n.beaker_reagents,u=void 0===d?[]:d,f=n.buffer_reagents,h=void 0===f?[]:f,N=n.mode;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,l.ComplexModal),(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,s,{beaker:i,beakerReagents:u,bufferNonEmpty:h.length>0}),(0,o.createComponentVNode)(2,m,{mode:N,bufferReagents:h}),(0,o.createComponentVNode)(2,p,{isCondiment:a,bufferNonEmpty:h.length>0}),(0,o.createComponentVNode)(2,C)]})]})};var s=function(e,t){var n=(0,r.useBackend)(t).act,c=e.beaker,u=e.beakerReagents,s=e.bufferNonEmpty;return(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",flexGrow:"0",flexBasis:"300px",buttons:s?(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"eject",disabled:!c,content:"Eject and Clear Buffer",onClick:function(){return n("eject")}}):(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!c,content:"Eject and Clear Buffer",onClick:function(){return n("eject")}}),children:c?(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:!0,beakerContents:u,buttons:function(e,r){return(0,o.createComponentVNode)(2,a.Box,{mb:r0?(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:!0,beakerContents:s,buttons:function(e,r){return(0,o.createComponentVNode)(2,a.Box,{mb:r0?l.desc:"N/A"}),l.blood_type&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood type",children:l.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:l.blood_dna})],4),!i.condi&&(0,o.createComponentVNode)(2,a.Button,{icon:i.printing?"spinner":"print",disabled:i.printing,iconSpin:!!i.printing,ml:"0.5rem",content:"Print",onClick:function(){return c("print",{idx:l.idx,beaker:e.args.beaker})}})]})})})}))},function(e,t,n){"use strict";t.__esModule=!0,t.CloningConsole=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(39),l=n(49),d=n(4),u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=e.args,u=d.activerecord,s=d.realname,m=d.health,p=d.unidentity,f=d.strucenzymes,h=m.split(" - ");return(0,o.createComponentVNode)(2,c.Section,{level:2,m:"-1rem",pb:"1rem",title:"Records of "+s,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Damage",children:h.length>1?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{color:i.COLORS.damageType.oxy,display:"inline",children:h[0]}),(0,o.createTextVNode)("\xa0|\xa0"),(0,o.createComponentVNode)(2,c.Box,{color:i.COLORS.damageType.toxin,display:"inline",children:h[2]}),(0,o.createTextVNode)("\xa0|\xa0"),(0,o.createComponentVNode)(2,c.Box,{color:i.COLORS.damageType.brute,display:"inline",children:h[3]}),(0,o.createTextVNode)("\xa0|\xa0"),(0,o.createComponentVNode)(2,c.Box,{color:i.COLORS.damageType.burn,display:"inline",children:h[1]})],4):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Unknown"})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"UI",className:"LabeledList__breakContents",children:p}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"SE",className:"LabeledList__breakContents",children:f}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Disk",children:[(0,o.createComponentVNode)(2,c.Button.Confirm,{disabled:!l.disk,icon:"arrow-circle-down",content:"Import",onClick:function(){return r("disk",{option:"load"})}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!l.disk,icon:"arrow-circle-up",content:"Export UI",onClick:function(){return r("disk",{option:"save",savetype:"ui"})}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!l.disk,icon:"arrow-circle-up",content:"Export UI and UE",onClick:function(){return r("disk",{option:"save",savetype:"ue"})}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!l.disk,icon:"arrow-circle-up",content:"Export SE",onClick:function(){return r("disk",{option:"save",savetype:"se"})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Actions",children:[(0,o.createComponentVNode)(2,c.Button,{disabled:!l.podready,icon:"user-plus",content:"Clone",onClick:function(){return r("clone",{ref:u})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"trash",content:"Delete",onClick:function(){return r("del_rec")}})]})]})})};t.CloningConsole=function(e,t){var n=(0,a.useBackend)(t);n.act,n.data.menu;return(0,l.modalRegisterBodyOverride)("view_rec",u),(0,o.createComponentVNode)(2,d.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,l.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),(0,o.createComponentVNode)(2,d.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,h),(0,o.createComponentVNode)(2,C),(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,c.Section,{noTopPadding:!0,flexGrow:"1",children:(0,o.createComponentVNode)(2,m)})]})]})};var s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.menu;return(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:1===i,icon:"home",onClick:function(){return r("menu",{num:1})},children:"Main"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:2===i,icon:"folder",onClick:function(){return r("menu",{num:2})},children:"Records"})]})},m=function(e,t){var n,r=(0,a.useBackend)(t).data.menu;return 1===r?n=(0,o.createComponentVNode)(2,p):2===r&&(n=(0,o.createComponentVNode)(2,f)),n},p=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data,d=l.loading,u=l.scantemp,s=l.occupant,m=l.locked,p=l.can_brainscan,f=l.scan_mode,h=l.numberofpods,C=l.pods,N=l.selected_pod,b=m&&!!s;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Scanner",level:"2",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{display:"inline",color:"label",children:"Scanner Lock:\xa0"}),(0,o.createComponentVNode)(2,c.Button,{disabled:!s,selected:b,icon:b?"toggle-on":"toggle-off",content:b?"Engaged":"Disengaged",onClick:function(){return i("lock")}}),(0,o.createComponentVNode)(2,c.Button,{disabled:b||!s,icon:"user-slash",content:"Eject Occupant",onClick:function(){return i("eject")}})],4),children:[(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:d?(0,o.createComponentVNode)(2,c.Box,{color:"average",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"spinner",spin:!0}),"\xa0 Scanning..."]}):(0,o.createComponentVNode)(2,c.Box,{color:u.color,children:u.text})}),!!p&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,c.Button,{icon:f?"brain":"male",content:f?"Brain":"Body",onClick:function(){return i("toggle_mode")}})})]}),(0,o.createComponentVNode)(2,c.Button,{disabled:!s||d,icon:"user",content:"Scan Occupant",mt:"0.5rem",mb:"0",onClick:function(){return i("scan")}})]}),(0,o.createComponentVNode)(2,c.Section,{title:"Pods",level:"2",children:h?C.map((function(e,t){var n;return n="cloning"===e.status?(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:"100",value:e.progress/100,ranges:{good:[.75,Infinity],average:[.25,.75],bad:[-Infinity,.25]},mt:"0.5rem",children:(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",children:(0,r.round)(e.progress,0)+"%"})}):"mess"===e.status?(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:"bad",mt:"0.5rem",children:"ERROR"}):(0,o.createComponentVNode)(2,c.Button,{selected:N===e.pod,icon:N===e.pod&&"check",content:"Select",mt:"0.5rem",onClick:function(){return i("selectpod",{ref:e.pod})}}),(0,o.createComponentVNode)(2,c.Box,{width:"64px",textAlign:"center",display:"inline-block",mr:"0.5rem",children:[(0,o.createVNode)(1,"img",null,null,1,{src:"pod_"+e.status+".gif",style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor"}}),(0,o.createComponentVNode)(2,c.Box,{color:"label",children:["Pod #",t+1]}),(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:e.biomass>=150?"good":"bad",display:"inline",children:[(0,o.createComponentVNode)(2,c.Icon,{name:e.biomass>=150?"circle":"circle-o"}),"\xa0",e.biomass]}),n]},t)})):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"No pods detected. Unable to clone."})})],4)},f=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.records;return i.length?(0,o.createComponentVNode)(2,c.Box,{mt:"0.5rem",children:i.map((function(e,t){return(0,o.createComponentVNode)(2,c.Button,{icon:"user",mb:"0.5rem",content:e.realname,onClick:function(){return r("view_rec",{ref:e.record})}},t)}))}):(0,o.createComponentVNode)(2,c.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No records found."]})})},h=function(e,t){var n,r=(0,a.useBackend)(t),i=r.act,l=r.data.temp;if(l&&l.text&&!(l.text.length<=0)){var d=((n={})[l.style]=!0,n);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.NoticeBox,Object.assign({},d,{children:[(0,o.createComponentVNode)(2,c.Box,{display:"inline-block",verticalAlign:"middle",children:l.text}),(0,o.createComponentVNode)(2,c.Button,{icon:"times-circle",float:"right",onClick:function(){return i("cleartemp")}}),(0,o.createComponentVNode)(2,c.Box,{clear:"both"})]})))}},C=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.scanner,d=i.numberofpods,u=i.autoallowed,s=i.autoprocess,m=i.disk;return(0,o.createComponentVNode)(2,c.Section,{title:"Status",buttons:(0,o.createFragment)([!!u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{display:"inline",color:"label",children:"Auto-processing:\xa0"}),(0,o.createComponentVNode)(2,c.Button,{selected:s,icon:s?"toggle-on":"toggle-off",content:s?"Enabled":"Disabled",onClick:function(){return r("autoprocess",{on:s?0:1})}})],4),(0,o.createComponentVNode)(2,c.Button,{disabled:!m,icon:"eject",content:"Eject Disk",onClick:function(){return r("disk",{option:"eject"})}})],0),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Scanner",children:l?(0,o.createComponentVNode)(2,c.Box,{color:"good",children:"Connected"}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Not connected!"})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pods",children:d?(0,o.createComponentVNode)(2,c.Box,{color:"good",children:[d," connected"]}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"None connected!"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CommunicationsComputer=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.CommunicationsComputer=function(e,t){var n,i=(0,r.useBackend)(t),l=i.act,d=i.data,u=!1;d.authenticated?1===d.authenticated?n="Command":2===d.authenticated?n="Captain":3===d.authenticated?(n="CentComm Secure Connection",u=!0):n="ERROR: Report This Bug!":n="Not Logged In";var s="View ("+d.messages.length+")",m=(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Authentication",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access",children:n})||(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.authenticated?"sign-out-alt":"id-card",selected:d.authenticated,disabled:d.noauthbutton,content:d.authenticated?"Log Out ("+n+")":"Log In",onClick:function(){return l("auth")}})})})}),!!d.esc_section&&(0,o.createComponentVNode)(2,a.Section,{title:"Escape Shuttle",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!d.esc_status&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:d.esc_status}),!!d.esc_callable&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Options",children:(0,o.createComponentVNode)(2,a.Button,{icon:"rocket",content:"Call Shuttle",disabled:!d.authhead,onClick:function(){return l("callshuttle")}})}),!!d.esc_recallable&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Options",children:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Recall Shuttle",disabled:!d.authhead||d.is_ai,onClick:function(){return l("cancelshuttle")}})}),!!d.lastCallLoc&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Last Call/Recall From",children:d.lastCallLoc})]})})],0),p="Make Priority Announcement";d.msg_cooldown>0&&(p+=" ("+d.msg_cooldown+"s)");var f=d.emagged?"Message [UNKNOWN]":"Message CentComm",h="Request Authentication Codes";d.cc_cooldown>0&&(f+=" ("+d.cc_cooldown+"s)",h+=" ("+d.cc_cooldown+"s)");var C,N=d.str_security_level,b=d.levels.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.icon,content:e.name,disabled:!d.authcapt||e.id===d.security_level,onClick:function(){return l("newalertlevel",{level:e.id})}},e.name)})),g=d.stat_display.presets.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.label,selected:e.name===d.stat_display.type,disabled:!d.authhead,onClick:function(){return l("setstat",{statdisp:e.name})}},e.name)})),V=d.stat_display.alerts.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.label,selected:e.alert===d.stat_display.icon,disabled:!d.authhead,onClick:function(){return l("setstat",{statdisp:"alert",alert:e.alert})}},e.alert)}));if(d.current_message_title)C=(0,o.createComponentVNode)(2,a.Section,{title:d.current_message_title,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Return To Message List",disabled:!d.authhead,onClick:function(){return l("messagelist")}}),children:(0,o.createComponentVNode)(2,a.Box,{children:d.current_message})});else{var v=d.messages.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,children:[(0,o.createComponentVNode)(2,a.Button,{icon:"eye",content:"View",disabled:!d.authhead||d.current_message_title===e.title,onClick:function(){return l("messagelist",{msgid:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Delete",disabled:!d.authhead,onClick:function(){return l("delmessage",{msgid:e.id})}})]},e.id)}));C=(0,o.createComponentVNode)(2,a.Section,{title:"Messages Received",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){return l("main")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:v})})}switch(d.menu_state){case 1:return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[m,(0,o.createComponentVNode)(2,a.Section,{title:"Captain-Only Actions",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Alert",color:d.security_level_color,children:N}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Change Alert",children:b}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Announcement",children:(0,o.createComponentVNode)(2,a.Button,{icon:"bullhorn",content:p,disabled:!d.authcapt||d.msg_cooldown>0,onClick:function(){return l("announce")}})}),!!d.emagged&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transmit",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"broadcast-tower",color:"red",content:f,disabled:!d.authcapt||d.cc_cooldown>0,onClick:function(){return l("MessageSyndicate")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",content:"Reset Relays",disabled:!d.authcapt,onClick:function(){return l("RestoreBackup")}})]})||(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transmit",children:(0,o.createComponentVNode)(2,a.Button,{icon:"broadcast-tower",content:f,disabled:!d.authcapt||d.cc_cooldown>0,onClick:function(){return l("MessageCentcomm")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nuclear Device",children:(0,o.createComponentVNode)(2,a.Button,{icon:"bomb",content:h,disabled:!d.authcapt||d.cc_cooldown>0,onClick:function(){return l("nukerequest")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Command Staff Actions",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Displays",children:(0,o.createComponentVNode)(2,a.Button,{icon:"tv",content:"Change Status Displays",disabled:!d.authhead,onClick:function(){return l("status")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Incoming Messages",children:(0,o.createComponentVNode)(2,a.Button,{icon:"folder-open",content:s,disabled:!d.authhead,onClick:function(){return l("messagelist")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Misc",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",content:"Restart Nano-Mob Hunter GO! Server",disabled:!d.authhead,onClick:function(){return l("RestartNanoMob")}})})]})})]})});case 2:return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[m,(0,o.createComponentVNode)(2,a.Section,{title:"Modify Status Screens",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){return l("main")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:g}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alerts",children:V}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message Line 1",children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:d.stat_display.line_1,disabled:!d.authhead,onClick:function(){return l("setmsg1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message Line 2",children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:d.stat_display.line_2,disabled:!d.authhead,onClick:function(){return l("setmsg2")}})})]})})]})});case 3:return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[m,C]})});default:return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[m,"ERRROR. Unknown menu_state: ",d.menu_state,"Please report this to NT Technical Support."]})})}}},function(e,t,n){"use strict";t.__esModule=!0,t.Contractor=void 0;var o=n(0),r=n(1),a=n(2),c=n(184),i=n(4);var l={1:["ACTIVE","good"],2:["COMPLETED","good"],3:["FAILED","bad"]},d=["Recording biometric data...","Analyzing embedded syndicate info...","STATUS CONFIRMED","Contacting Syndicate database...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Response received, ack 4851234...","CONFIRM ACC "+Math.round(2e4*Math.random()),"Setting up private accounts...","CONTRACTOR ACCOUNT CREATED","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","CONTRACTS FOUND","WELCOME, AGENT"];t.Contractor=function(e,t){var n,c=(0,r.useBackend)(t),l=c.act,C=c.data;n=C.unauthorized?(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,o.createComponentVNode)(2,f,{height:"100%",allMessages:["ERROR: UNAUTHORIZED USER"],finishedTimeout:100,onFinished:function(){}})}):C.load_animation_completed?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"content",children:(0,o.createComponentVNode)(2,u)}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"content",mt:"0.5rem",children:(0,o.createComponentVNode)(2,s)}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",overflow:"hidden",children:1===C.page?(0,o.createComponentVNode)(2,m,{height:"100%"}):(0,o.createComponentVNode)(2,p,{height:"100%"})})],4):(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,o.createComponentVNode)(2,f,{height:"100%",allMessages:d,finishedTimeout:3e3,onFinished:function(){return l("complete_load_animation")}})});var N=(0,r.useLocalState)(t,"viewingPhoto",""),b=N[0];N[1];return(0,o.createComponentVNode)(2,i.Window,{theme:"syndicate",children:[b&&(0,o.createComponentVNode)(2,h),(0,o.createComponentVNode)(2,i.Window.Content,{className:"Contractor",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",height:"100%",children:n})})]})};var u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.tc_available,d=i.tc_paid_out,u=i.completed_contracts,s=i.rep;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({title:"Summary",buttons:(0,o.createComponentVNode)(2,a.Box,{verticalAlign:"middle",mt:"0.25rem",children:[s," Rep"]})},e,{children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Box,{flexBasis:"50%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Available",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",children:[l," TC"]}),(0,o.createComponentVNode)(2,a.Button,{disabled:l<=0,content:"Claim",mx:"0.75rem",mb:"0",flexBasis:"content",onClick:function(){return c("claim")}})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Earned",children:[d," TC"]})]})}),(0,o.createComponentVNode)(2,a.Box,{flexBasis:"50%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contracts Completed",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,a.Box,{height:"20px",lineHeight:"20px",display:"inline-block",children:u})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contractor Status",verticalAlign:"middle",children:"ACTIVE"})]})})]})})))},s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.page;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Tabs,Object.assign({},e,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===i,onClick:function(){return c("page",{page:1})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"suitcase"}),"Contracts"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===i,onClick:function(){return c("page",{page:2})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"shopping-cart"}),"Hub"]})]})))},m=function(e,t){var n=(0,r.useBackend)(t),i=n.act,d=n.data,u=d.contracts,s=d.contract_active,m=d.can_extract,p=!!s&&u.filter((function(e){return 1===e.status}))[0],f=p&&p.time_left>0,h=(0,r.useLocalState)(t,"viewingPhoto",""),C=(h[0],h[1]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({title:"Available Contracts",overflow:"auto",buttons:(0,o.createComponentVNode)(2,a.Button,{disabled:!m||f,icon:"parachute-box",content:["Call Extraction",f&&(0,o.createComponentVNode)(2,c.Countdown,{timeLeft:p.time_left,format:function(e,t){return" ("+t.substr(3)+")"}})],onClick:function(){return i("extract")}})},e,{children:u.slice().sort((function(e,t){return 1===e.status?-1:1===t.status?1:e.status-t.status})).map((function(e){var t;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",color:1===e.status&&"good",children:e.target_name}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"content",children:e.has_photo&&(0,o.createComponentVNode)(2,a.Button,{icon:"camera",mb:"-0.5rem",ml:"0.5rem",onClick:function(){return C("target_photo_"+e.uid+".png")}})})]}),className:"Contractor__Contract",buttons:(0,o.createComponentVNode)(2,a.Box,{width:"100%",children:[!!l[e.status]&&(0,o.createComponentVNode)(2,a.Box,{color:l[e.status][1],display:"inline-block",mt:1!==e.status&&"0.125rem",mr:"0.25rem",lineHeight:"20px",children:l[e.status][0]}),1===e.status&&(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"ban",color:"bad",content:"Abort",ml:"0.5rem",onClick:function(){return i("abort")}})]}),children:(0,o.createComponentVNode)(2,a.Flex,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"2",mr:"0.5rem",children:[e.fluff_message,!!e.completed_time&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Icon,{name:"check",mr:"0.5rem"}),"Contract completed at ",e.completed_time]}),!!e.dead_extraction&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",mt:"0.5rem",bold:!0,children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"Telecrystals reward reduced drastically as the target was dead during extraction."]}),!!e.fail_reason&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:[(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Icon,{name:"times",mr:"0.5rem"}),"Contract failed: ",e.fail_reason]})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",flexBasis:"100%",children:[(0,o.createComponentVNode)(2,a.Box,{mb:"0.5rem",color:"label",children:"Extraction Zone:"}),null==(t=e.difficulties)?void 0:t.map((function(t,n){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{disabled:!!s,content:t.name+" ("+t.reward+" TC)",onClick:function(){return i("activate",{uid:e.uid,difficulty:n+1})}}),(0,o.createVNode)(1,"br")],4)})),!!e.objective&&(0,o.createComponentVNode)(2,a.Box,{color:"white",bold:!0,children:[e.objective.extraction_zone,(0,o.createVNode)(1,"br"),"(",(e.objective.reward_tc||0)+" TC",",\xa0",(e.objective.reward_credits||0)+" Credits",")"]})]})]})},e.uid)}))})))},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.rep,d=i.buyables;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({title:"Available Purchases",overflow:"auto"},e,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:[e.description,(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Confirm,{disabled:l-1&&(0,o.createComponentVNode)(2,a.Box,{as:"span",color:0===e.stock?"bad":"good",ml:"0.5rem",children:[e.stock," in stock"]})]},e.uid)}))})))},f=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={currentIndex:0,currentDisplay:[]},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.tick=function(){var e=this.props,t=this.state;t.currentIndex<=e.allMessages.length?(this.setState((function(e){return{currentIndex:e.currentIndex+1}})),t.currentDisplay.push(e.allMessages[t.currentIndex])):(clearTimeout(this.timer),setTimeout(e.onFinished,e.finishedTimeout))},c.componentDidMount=function(){var e=this,t=this.props.linesPerSecond,n=void 0===t?2.5:t;this.timer=setInterval((function(){return e.tick()}),1e3/n)},c.componentWillUnmount=function(){clearTimeout(this.timer)},c.render=function(){return(0,o.createComponentVNode)(2,a.Box,{m:1,children:this.state.currentDisplay.map((function(e){return(0,o.createFragment)([e,(0,o.createVNode)(1,"br")],0,e)}))})},r}(o.Component),h=function(e,t){var n=(0,r.useLocalState)(t,"viewingPhoto",""),c=n[0],i=n[1];return(0,o.createComponentVNode)(2,a.Modal,{className:"Contractor__photoZoom",children:[(0,o.createComponentVNode)(2,a.Box,{as:"img",src:c}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){return i("")}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ConveyorSwitch=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.ConveyorSwitch=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.slowFactor,u=l.oneWay,s=l.position;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Lever position",children:s>0?"forward":s<0?"reverse":"neutral"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Allow reverse",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:!u,onClick:function(){return i("toggleOneWay")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Slowdown factor",children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mx:"1px",children:[" ",(0,o.createComponentVNode)(2,a.Button,{icon:"angle-double-left",onClick:function(){return i("slowFactor",{value:d-5})}})," "]}),(0,o.createComponentVNode)(2,a.Flex.Item,{mx:"1px",children:[" ",(0,o.createComponentVNode)(2,a.Button,{icon:"angle-left",onClick:function(){return i("slowFactor",{value:d-1})}})," "]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Slider,{width:"100px",mx:"1px",value:d,fillValue:d,minValue:1,maxValue:50,step:1,format:function(e){return e+"x"},onChange:function(e,t){return i("slowFactor",{value:t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mx:"1px",children:[" ",(0,o.createComponentVNode)(2,a.Button,{icon:"angle-right",onClick:function(){return i("slowFactor",{value:d+1})}})," "]}),(0,o.createComponentVNode)(2,a.Flex.Item,{mx:"1px",children:[" ",(0,o.createComponentVNode)(2,a.Button,{icon:"angle-double-right",onClick:function(){return i("slowFactor",{value:d+5})}})," "]})]})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CrewMonitor=void 0;var o=n(0),r=n(26),a=n(20),c=n(1),i=n(2),l=n(76),d=n(39),u=n(4),s=function(e,t){return e.dead?"Deceased":parseInt(e.health,10)<=t?"Critical":1===parseInt(e.stat,10)?"Unconscious":"Living"},m=function(e,t){return e.dead?"red":parseInt(e.health,10)<=t?"orange":1===parseInt(e.stat,10)?"blue":"green"};t.CrewMonitor=function(e,t){var n=(0,c.useBackend)(t),r=(n.act,n.data,(0,c.useLocalState)(t,"tabIndex",0)),a=r[0],l=r[1];return(0,o.createComponentVNode)(2,u.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{children:(0,o.createComponentVNode)(2,i.Box,{fillPositionedParent:!0,children:[(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:0===a,onClick:function(){return l(0)},children:[(0,o.createComponentVNode)(2,i.Icon,{name:"table"})," Data View"]},"DataView"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:1===a,onClick:function(){return l(1)},children:[(0,o.createComponentVNode)(2,i.Icon,{name:"map-marked-alt"})," Map View"]},"MapView")]}),function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,p);case 1:return(0,o.createComponentVNode)(2,f);default:return"WE SHOULDN'T BE HERE!"}}(a)]})})})};var p=function(e,t){var n=(0,c.useBackend)(t),u=n.act,p=n.data,f=(0,r.sortBy)((function(e){return e.name}))(p.crewmembers||[]),h=(0,c.useLocalState)(t,"search",""),C=h[0],N=h[1],b=(0,a.createSearch)(C,(function(e){return e.name+"|"+e.assignment+"|"+e.area}));return(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Input,{placeholder:"Search by name, assignment or location..",width:"100%",onInput:function(e,t){return N(t)}}),(0,o.createComponentVNode)(2,i.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Status"}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Location"})]}),f.filter(b).map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{bold:!!e.is_command,children:[(0,o.createComponentVNode)(2,l.TableCell,{children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,l.TableCell,{children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:m(e,p.critThreshold),children:s(e,p.critThreshold)}),e.sensor_type>=2?(0,o.createComponentVNode)(2,i.Box,{inline:!0,children:["(",(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d.COLORS.damageType.oxy,children:e.oxy}),"|",(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d.COLORS.damageType.toxin,children:e.tox}),"|",(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d.COLORS.damageType.burn,children:e.fire}),"|",(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d.COLORS.damageType.brute,children:e.brute}),")"]}):null]}),(0,o.createComponentVNode)(2,l.TableCell,{children:3===e.sensor_type?p.isAI?(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"location-arrow",content:e.area+" ("+e.x+", "+e.y+")",onClick:function(){return u("track",{track:e.ref})}}):e.area+" ("+e.x+", "+e.y+")":"Not Available"})]},e.name)}))]})]})},f=function(e,t){var n=(0,c.useBackend)(t).data,r=(0,c.useLocalState)(t,"zoom",1),a=r[0],l=r[1];return(0,o.createComponentVNode)(2,i.Box,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,o.createComponentVNode)(2,i.NanoMap,{onZoom:function(e){return l(e)},children:n.crewmembers.filter((function(e){return 3===e.sensor_type})).map((function(e){return(0,o.createComponentVNode)(2,i.NanoMap.Marker,{x:e.x,y:e.y,zoom:a,icon:"circle",tooltip:e.name+" ("+e.assignment+")",color:m(e,n.critThreshold)},e.ref)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],l=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]];t.Cryo=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:(0,o.createComponentVNode)(2,d)})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data,s=d.isOperating,m=d.hasOccupant,p=d.occupant,f=void 0===p?[]:p,h=d.cellTemperature,C=d.cellTemperatureStatus,N=d.isBeakerLoaded,b=d.auto_eject_healthy,g=d.auto_eject_dead;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",flexGrow:"1",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"user-slash",onClick:function(){return c("ejectOccupant")},disabled:!m,children:"Eject"}),children:m?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:f.name||"Unknown"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:f.health,max:f.maxHealth,value:f.health/f.maxHealth,color:f.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(f.health)})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:l[f.stat][0],children:l[f.stat][1]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(f.bodyTemperature)})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),i.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:f[e.type]/100,ranges:{bad:[.01,Infinity]},children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(f[e.type])})})},e.id)}))]}):(0,o.createComponentVNode)(2,a.Flex,{height:"100%",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant detected."]})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",onClick:function(){return c("ejectBeaker")},disabled:!N,children:"Eject Beaker"}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",onClick:function(){return c(s?"switchOff":"switchOn")},selected:s,children:s?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:C,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:h})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Beaker",children:(0,o.createComponentVNode)(2,u)}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auto-eject healthy occupants",children:(0,o.createComponentVNode)(2,a.Button,{icon:b?"toggle-on":"toggle-off",selected:b,onClick:function(){return c(b?"auto_eject_healthy_off":"auto_eject_healthy_on")},children:b?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auto-eject dead occupants",children:(0,o.createComponentVNode)(2,a.Button,{icon:g?"toggle-on":"toggle-off",selected:g,onClick:function(){return c(g?"auto_eject_dead_off":"auto_eject_dead_on")},children:g?"On":"Off"})})]})})],4)},u=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data),i=c.isBeakerLoaded,l=c.beakerLabel,d=c.beakerVolume;return i?(0,o.createFragment)([l||(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No label"}),(0,o.createComponentVNode)(2,a.Box,{color:!d&&"bad",children:d?(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d,format:function(e){return Math.round(e)+" units remaining"}}):"Beaker is empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No beaker loaded"})}},function(e,t,n){"use strict";t.__esModule=!0,t.DNAModifier=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(49),l=[["good","Alive"],["average","Critical"],["bad","DEAD"]],d=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],u=[5,10,20,30,50];t.DNAModifier=function(e,t){var n,a=(0,r.useBackend)(t),l=(a.act,a.data),d=l.irradiating,u=l.dnaBlockSize,p=l.occupant;return t.dnaBlockSize=u,t.isDNAInvalid=!p.isViableSubject||!p.uniqueIdentity||!p.structuralEnzymes,d&&(n=(0,o.createComponentVNode)(2,V,{duration:d})),(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,i.ComplexModal),n,(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,m)]})]})};var s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.locked,u=i.hasOccupant,s=i.occupant;return(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"label",display:"inline",mr:"0.5rem",children:"Door Lock:"}),(0,o.createComponentVNode)(2,a.Button,{disabled:!u,selected:d,icon:d?"toggle-on":"toggle-off",content:d?"Engaged":"Disengaged",onClick:function(){return c("toggleLock")}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!u||d,icon:"user-slash",content:"Eject",onClick:function(){return c("ejectOccupant")}})],4),children:u?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:s.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:s.minHealth,max:s.maxHealth,value:s.health/s.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:l[s.stat][0],children:l[s.stat][1]}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})}),t.isDNAInvalid?(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-circle"}),"\xa0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:"100",value:s.radiationLevel/100,color:"average"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unique Enzymes",children:i.occupant.uniqueEnzymes?i.occupant.uniqueEnzymes:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-circle"}),"\xa0 Unknown"]})})]})],0):(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"Cell unoccupied."})})},m=function(e,t){var n,c=(0,r.useBackend)(t),i=c.act,l=c.data,u=l.selectedMenuKey,s=l.hasOccupant;l.occupant;return s?t.isDNAInvalid?(0,o.createComponentVNode)(2,a.Section,{flexGrow:"1",children:(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No operation possible on this subject."]})})}):("ui"===u?n=(0,o.createFragment)([(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,h)],4):"se"===u?n=(0,o.createFragment)([(0,o.createComponentVNode)(2,f),(0,o.createComponentVNode)(2,h)],4):"buffer"===u?n=(0,o.createComponentVNode)(2,C):"rejuvenators"===u&&(n=(0,o.createComponentVNode)(2,g)),(0,o.createComponentVNode)(2,a.Section,{flexGrow:"1",children:[(0,o.createComponentVNode)(2,a.Tabs,{children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:u===e[0],onClick:function(){return i("selectMenuKey",{key:e[0]})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:e[2]}),e[1]]},t)}))}),n]})):(0,o.createComponentVNode)(2,a.Section,{flexGrow:"1",children:(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant in DNA modifier."]})})})},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.selectedUIBlock,d=i.selectedUISubBlock,u=i.selectedUITarget,s=i.occupant;return(0,o.createComponentVNode)(2,a.Section,{title:"Modify Unique Identifier",level:"2",children:[(0,o.createComponentVNode)(2,v,{dnaString:s.uniqueIdentity,selectedBlock:l,selectedSubblock:d,blockSize:t.dnaBlockSize,action:"selectUIBlock"}),(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,a.Knob,{minValue:"1",maxValue:"15",stepPixelSize:"20",value:u,format:function(e){return e.toString(16).toUpperCase()},ml:"0",onChange:function(e,t){return c("changeUITarget",{value:t})}})})}),(0,o.createComponentVNode)(2,a.Button,{icon:"radiation",content:"Irradiate Block",mt:"0.5rem",onClick:function(){return c("pulseUIRadiation")}})]})},f=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.selectedSEBlock,d=i.selectedSESubBlock,u=i.occupant;return(0,o.createComponentVNode)(2,a.Section,{title:"Modify Structural Enzymes",level:"2",children:[(0,o.createComponentVNode)(2,v,{dnaString:u.structuralEnzymes,selectedBlock:l,selectedSubblock:d,blockSize:t.dnaBlockSize,action:"selectSEBlock"}),(0,o.createComponentVNode)(2,a.Button,{icon:"radiation",content:"Irradiate Block",onClick:function(){return c("pulseSERadiation")}})]})},h=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.radiationIntensity,d=i.radiationDuration;return(0,o.createComponentVNode)(2,a.Section,{title:"Radiation Emitter",level:"2",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Intensity",children:(0,o.createComponentVNode)(2,a.Knob,{minValue:"1",maxValue:"10",stepPixelSize:"20",value:l,popUpPosition:"right",ml:"0",onChange:function(e,t){return c("radiationIntensity",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Duration",children:(0,o.createComponentVNode)(2,a.Knob,{minValue:"1",maxValue:"20",stepPixelSize:"10",unit:"s",value:d,popUpPosition:"right",ml:"0",onChange:function(e,t){return c("radiationDuration",{value:t})}})})]}),(0,o.createComponentVNode)(2,a.Button,{icon:"radiation",content:"Pulse Radiation",tooltip:"Mutates a random block of either the occupant's UI or SE.",tooltipPosition:"top-right",mt:"0.5rem",onClick:function(){return c("pulseRadiation")}})]})},C=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.buffers.map((function(e,t){return(0,o.createComponentVNode)(2,N,{id:t+1,name:"Buffer "+(t+1),buffer:e},t)})));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Buffers",level:"2",children:c}),(0,o.createComponentVNode)(2,b)],4)},N=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=e.id,d=e.name,u=e.buffer,s=i.isInjectorReady,m=d+(u.data?" - "+u.label:"");return(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,o.createComponentVNode)(2,a.Section,{title:m,level:"3",mx:"0",lineHeight:"18px",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{disabled:!u.data,icon:"trash",content:"Clear",onClick:function(){return c("bufferOption",{option:"clear",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!u.data,icon:"pen",content:"Rename",onClick:function(){return c("bufferOption",{option:"changeLabel",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!u.data||!i.hasDisk,icon:"save",content:"Export",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-left",onClick:function(){return c("bufferOption",{option:"saveDisk",id:l})}})],4),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Write",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-down",content:"Subject U.I",mb:"0",onClick:function(){return c("bufferOption",{option:"saveUI",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-down",content:"Subject U.I and U.E.",mb:"0",onClick:function(){return c("bufferOption",{option:"saveUIAndUE",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-down",content:"Subject S.E.",mb:"0",onClick:function(){return c("bufferOption",{option:"saveSE",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!i.hasDisk||!i.disk.data,icon:"arrow-circle-down",content:"From Disk",mb:"0",onClick:function(){return c("bufferOption",{option:"loadDisk",id:l})}})]}),!!u.data&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Subject",children:u.owner||(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Unknown"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Data Type",children:["ui"===u.type?"Unique Identifiers":"Structural Enzymes",!!u.ue&&" and Unique Enzymes"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer to",children:[(0,o.createComponentVNode)(2,a.Button,{disabled:!s,icon:s?"syringe":"spinner",iconSpin:!s,content:"Injector",mb:"0",onClick:function(){return c("bufferOption",{option:"createInjector",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!s,icon:s?"syringe":"spinner",iconSpin:!s,content:"Block Injector",mb:"0",onClick:function(){return c("bufferOption",{option:"createInjector",id:l,block:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"user",content:"Subject",mb:"0",onClick:function(){return c("bufferOption",{option:"transfer",id:l})}})]})],4)]}),!u.data&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},b=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.hasDisk,d=i.disk;return(0,o.createComponentVNode)(2,a.Section,{title:"Data Disk",level:"2",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{disabled:!l||!d.data,icon:"trash",content:"Wipe",onClick:function(){return c("wipeDisk")}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!l,icon:"eject",content:"Eject",onClick:function(){return c("ejectDisk")}})],4),children:l?d.data?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:d.label?d.label:"No label"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Subject",children:d.owner?d.owner:(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Unknown"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Data Type",children:["ui"===d.type?"Unique Identifiers":"Structural Enzymes",!!d.ue&&" and Unique Enzymes"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"Disk is blank."}):(0,o.createComponentVNode)(2,a.Box,{color:"label",textAlign:"center",my:"1rem",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"save-o",size:"4"}),(0,o.createVNode)(1,"br"),"No disk inserted."]})})},g=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.isBeakerLoaded,d=i.beakerVolume,s=i.beakerLabel;return(0,o.createComponentVNode)(2,a.Section,{title:"Rejuvenators and Beaker",level:"2",buttons:(0,o.createComponentVNode)(2,a.Button,{disabled:!l,icon:"eject",content:"Eject",onClick:function(){return c("ejectBeaker")}}),children:l?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Inject",children:[u.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{disabled:e>d,icon:"syringe",content:e,onClick:function(){return c("injectRejuvenators",{amount:e})}},t)})),(0,o.createComponentVNode)(2,a.Button,{disabled:d<=0,icon:"syringe",content:"All",onClick:function(){return c("injectRejuvenators",{amount:d})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Beaker",children:[(0,o.createComponentVNode)(2,a.Box,{mb:"0.5rem",children:s||"No label"}),d?(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[d," unit",1===d?"":"s"," remaining"]}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Empty"})]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"label",textAlign:"center",my:"25%",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",size:"4"}),(0,o.createVNode)(1,"br"),"No beaker loaded."]})})},V=function(e,t){return(0,o.createComponentVNode)(2,a.Dimmer,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"spinner",size:"5",spin:!0}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Box,{color:"average",children:(0,o.createVNode)(1,"h1",null,[(0,o.createComponentVNode)(2,a.Icon,{name:"radiation"}),(0,o.createTextVNode)("\xa0Irradiating occupant\xa0"),(0,o.createComponentVNode)(2,a.Icon,{name:"radiation"})],4)}),(0,o.createComponentVNode)(2,a.Box,{color:"label",children:(0,o.createVNode)(1,"h3",null,[(0,o.createTextVNode)("For "),e.duration,(0,o.createTextVNode)(" second"),1===e.duration?"":"s"],0)})]})},v=function(e,t){for(var n=(0,r.useBackend)(t),c=n.act,i=(n.data,e.dnaString),l=e.selectedBlock,d=e.selectedSubblock,u=e.blockSize,s=e.action,m=i.split(""),p=[],f=function(e){for(var t=e/u+1,n=[],r=function(r){var i=r+1;n.push((0,o.createComponentVNode)(2,a.Button,{selected:l===t&&d===i,content:m[e+r],mb:"0",onClick:function(){return c(s,{block:t,subblock:i})}}))},i=0;i0?"Yes":"No",selected:l.com>0,onClick:function(){return i("toggle_com")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Security",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.sec===e,content:e,onClick:function(){return i("set_sec",{set_sec:e})}},"sec"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Medical",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.med===e,content:e,onClick:function(){return i("set_med",{set_med:e})}},"med"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Engineering",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.eng===e,content:e,onClick:function(){return i("set_eng",{set_eng:e})}},"eng"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Paranormal",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.par===e,content:e,onClick:function(){return i("set_par",{set_par:e})}},"par"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Janitor",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.jan===e,content:e,onClick:function(){return i("set_jan",{set_jan:e})}},"jan"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cyborg",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.cyb===e,content:e,onClick:function(){return i("set_cyb",{set_cyb:e})}},"cyb"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Slots",children:(0,o.createComponentVNode)(2,a.Box,{color:l.total>l.spawnpoints?"red":"green",children:[l.total," total, versus ",l.spawnpoints," spawnpoints"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Dispatch",children:(0,o.createComponentVNode)(2,a.Button,{icon:"ambulance",content:"Send ERT",onClick:function(){return i("dispatch_ert")}})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Electropack=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(4);t.Electropack=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.power,s=d.code,m=d.frequency,p=d.minFrequency,f=d.maxFrequency;return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"freq"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:p/10,maxValue:f/10,value:m/10,format:function(e){return(0,r.toFixed)(e,1)},width:"80px",onChange:function(e,t){return l("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Code",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"code"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:s,width:"80px",onChange:function(e,t){return l("code",{code:t})}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.EvolutionMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.EvolutionMenu=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,theme:"changeling",children:(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,i),(0,o.createComponentVNode)(2,l)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.evo_points,d=i.can_respec;return(0,o.createComponentVNode)(2,a.Section,{title:"Evolution Points",height:5.5,children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mt:.5,color:"label",children:"Points remaining:"}),(0,o.createComponentVNode)(2,a.Flex.Item,{mt:.5,ml:2,bold:!0,color:"#1b945c",children:l}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{ml:2.5,disabled:!d,content:"Readapt",icon:"sync",onClick:function(){return c("readapt")}}),(0,o.createComponentVNode)(2,a.Button,{tooltip:"By transforming a humanoid into a husk, we gain the ability to readapt our chosen evolutions.",tooltipPosition:"bottom",icon:"question-circle"})]})]})})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.evo_points,d=i.ability_list,u=i.purchsed_abilities,s=i.view_mode;return(0,o.createComponentVNode)(2,a.Section,{title:"Abilities",flexGrow:"1",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:s?"square-o":"check-square-o",selected:!s,content:"Compact",onClick:function(){return c("set_view_mode",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:s?"check-square-o":"square-o",selected:s,content:"Expanded",onClick:function(){return c("set_view_mode",{mode:1})}})],4),children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{p:.5,mx:-1,className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{ml:.5,color:"#dedede",children:e.name}),u.includes(e.name)&&(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,bold:!0,color:"#1b945c",children:"(Purchased)"}),(0,o.createComponentVNode)(2,a.Flex.Item,{mr:3,textAlign:"right",grow:1,children:[(0,o.createComponentVNode)(2,a.Box,{as:"span",color:"label",children:["Cost: "," "]}),(0,o.createComponentVNode)(2,a.Box,{as:"span",bold:!0,color:"#1b945c",children:e.cost})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{mr:.5,disabled:e.cost>l||u.includes(e.name),content:"Evolve",onClick:function(){return c("purchase",{power_name:e.name})}})})]}),!!s&&(0,o.createComponentVNode)(2,a.Flex,{color:"#8a8a8a",my:1,ml:1.5,width:"95%",children:e.description+" "+e.helptext})]},t)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitFabricator=void 0;var o=n(0),r=n(8),a=n(20),c=n(1),i=n(2),l=n(184),d=n(4);var u={bananium:"clown",tranquillite:"mime"};t.ExosuitFabricator=function(e,t){var n=(0,c.useBackend)(t),r=(n.act,n.data.building);return(0,o.createComponentVNode)(2,d.Window,{children:(0,o.createComponentVNode)(2,d.Window.Content,{className:"Exofab",children:(0,o.createComponentVNode)(2,i.Flex,{width:"100%",height:"100%",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",mr:"0.5rem",width:"70%",children:(0,o.createComponentVNode)(2,i.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",basis:"100%",children:(0,o.createComponentVNode)(2,m)}),r&&(0,o.createComponentVNode)(2,i.Flex.Item,{basis:"content",mt:"0.5rem",children:(0,o.createComponentVNode)(2,p)})]})}),(0,o.createComponentVNode)(2,i.Flex.Item,{width:"30%",children:(0,o.createComponentVNode)(2,i.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",basis:"50%",children:(0,o.createComponentVNode)(2,s)}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",basis:"50%",mt:"0.5rem",children:(0,o.createComponentVNode)(2,f)})]})})]})})})};var s=function(e,t){var n=(0,c.useBackend)(t),r=n.act,a=n.data,l=a.materials,d=a.capacity,u=Object.values(l).reduce((function(e,t){return e+t}),0);return(0,o.createComponentVNode)(2,i.Section,{title:"Materials",className:"Exofab__materials",buttons:(0,o.createComponentVNode)(2,i.Box,{color:"label",mt:"0.25rem",children:[(u/d*100).toPrecision(3),"% full"]}),children:["$metal","$glass","$silver","$gold","$uranium","$titanium","$plasma","$diamond","$bluespace","$bananium","$tranquillite","$plastic"].map((function(e){return(0,o.createComponentVNode)(2,h,{id:e,bold:"$metal"===e||"$glass"===e,onClick:function(){return r("withdraw",{id:e})}},e)}))})},m=function(e,t){var n=(0,c.useBackend)(t),r=n.act,l=n.data,d=l.curCategory,u=l.categories,s=l.designs,m=l.syncing,p=(0,c.useLocalState)(t,"searchText",""),f=p[0],h=p[1],N=(0,a.createSearch)(f,(function(e){return e.name})),b=s.filter(N);return(0,o.createComponentVNode)(2,i.Section,{className:"Exofab__designs",title:(0,o.createComponentVNode)(2,i.Dropdown,{selected:d,options:u,onSelected:function(e){return r("category",{cat:e})},width:"150px"}),height:"100%",buttons:(0,o.createComponentVNode)(2,i.Box,{mt:"-18px",children:[(0,o.createComponentVNode)(2,i.Button,{icon:"plus",content:"Queue all",onClick:function(){return r("queueall")}}),(0,o.createComponentVNode)(2,i.Button,{disabled:m,iconSpin:m,icon:"sync-alt",content:m?"Synchronizing...":"Synchronize with R&D servers",onClick:function(){return r("sync")}})]}),children:[(0,o.createComponentVNode)(2,i.Input,{placeholder:"Search by name...",mb:"0.5rem",width:"100%",onInput:function(e,t){return h(t)}}),b.map((function(e){return(0,o.createComponentVNode)(2,C,{design:e},e.id)})),0===b.length&&(0,o.createComponentVNode)(2,i.Box,{color:"label",children:"No designs found."})]})},p=function(e,t){var n=(0,c.useBackend)(t),r=(n.act,n.data),a=r.building,d=r.buildStart,u=r.buildEnd,s=r.worldTime;return(0,o.createComponentVNode)(2,i.Section,{className:"Exofab__building",stretchContents:!0,children:(0,o.createComponentVNode)(2,i.ProgressBar.Countdown,{start:d,current:s,end:u,bold:!0,children:[(0,o.createComponentVNode)(2,i.Box,{float:"left",children:(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:!0})}),"Building ",a,"\xa0(",(0,o.createComponentVNode)(2,l.Countdown,{current:s,timeLeft:u-s,format:function(e,t){return t.substr(3)}}),")"]})})},f=function(e,t){var n=(0,c.useBackend)(t),r=n.act,a=n.data,l=a.queue,d=a.processingQueue,u=Object.entries(a.queueDeficit).filter((function(e){return e[1]<0})),s=l.reduce((function(e,t){return e+t.time}),0);return(0,o.createComponentVNode)(2,i.Section,{className:"Exofab__queue",title:"Queue",buttons:(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Button,{selected:d,icon:d?"toggle-on":"toggle-off",content:"Process",onClick:function(){return r("process")}}),(0,o.createComponentVNode)(2,i.Button,{disabled:0===l.length,icon:"eraser",content:"Clear",onClick:function(){return r("unqueueall")}})]}),children:(0,o.createComponentVNode)(2,i.Flex,{height:"100%",direction:"column",children:0===l.length?(0,o.createComponentVNode)(2,i.Box,{color:"label",children:"The queue is empty."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Flex.Item,{className:"Exofab__queue--queue",grow:"1",overflow:"auto",children:l.map((function(e,t){return(0,o.createComponentVNode)(2,i.Box,{color:e.notEnough&&"bad",children:[t+1,". ",e.name,t>0&&(0,o.createComponentVNode)(2,i.Button,{icon:"arrow-up",onClick:function(){return r("queueswap",{from:t+1,to:t})}}),t0&&(0,o.createComponentVNode)(2,i.Flex.Item,{className:"Exofab__queue--time",basis:"content",shrink:"0",children:[(0,o.createComponentVNode)(2,i.Divider),"Processing time:",(0,o.createComponentVNode)(2,i.Icon,{name:"clock",mx:"0.5rem"}),(0,o.createComponentVNode)(2,i.Box,{display:"inline",bold:!0,children:new Date(s/10*1e3).toISOString().substr(14,5)})]}),Object.keys(u).length>0&&(0,o.createComponentVNode)(2,i.Flex.Item,{className:"Exofab__queue--deficit",basis:"content",shrink:"0",children:[(0,o.createComponentVNode)(2,i.Divider),"Lacking materials to complete:",u.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,h,{id:e[0],amount:-e[1],lineDisplay:!0})},e[0])}))]})],0)})})},h=function(e,t){var n=(0,c.useBackend)(t),a=(n.act,n.data),l=e.id,d=e.amount,s=e.lineDisplay,m=e.onClick,p=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["id","amount","lineDisplay","onClick"]),f=l.replace("$",""),h=a.materials[l]||0,C=d||h;if(!(C<=0&&"metal"!==f&&"glass"!==f)){var N=d&&d>h;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Flex,Object.assign({className:(0,r.classes)(["Exofab__material",s&&"Exofab__material--line"])},p,{children:[(0,o.createComponentVNode)(2,i.Flex.Item,{basis:"content",children:(0,o.createComponentVNode)(2,i.Button,{onClick:m,children:(0,o.createComponentVNode)(2,i.Box,{as:"img",src:"sheet-"+(u[f]||f)+".png"})})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",children:s?(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__material--amount",color:N&&"bad",children:C.toLocaleString("en-US")}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__material--name",children:f}),(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__material--amount",children:[C.toLocaleString("en-US")," cm\xb3 (",Math.round(C/2e3*10)/10," sheets)"]})],4)})]})))}},C=function(e,t){var n=(0,c.useBackend)(t),r=n.act,a=n.data,l=e.design;return(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__design",children:[(0,o.createComponentVNode)(2,i.Button,{disabled:l.notEnough||a.building,icon:"cog",content:l.name,onClick:function(){return r("build",{id:l.id})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"plus-circle",onClick:function(){return r("queue",{id:l.id})}}),(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__design--cost",children:Object.entries(l.cost).map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,h,{id:e[0],amount:e[1],lineDisplay:!0})},e[0])}))}),(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__design--time",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"clock"}),l.time>0?(0,o.createFragment)([l.time/10,(0,o.createTextVNode)(" seconds")],0):"Instant"]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ExternalAirlockController=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.ExternalAirlockController=function(e,t){var n,i,l=(0,r.useBackend)(t),d=l.act,u=l.data,s=u.chamber_pressure,m=(u.exterior_status,u.interior_status),p=u.processing;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Chamber Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:(n=s,i="good",n<80?i="bad":n<95||n>110?i="average":n>120&&(i="bad"),i),value:s,minValue:0,maxValue:1013,children:[s," kPa"]})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Actions",children:[(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:p,onClick:function(){return d("cycle_ext")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Cycle to Interior",icon:"arrow-circle-right",disabled:p,onClick:function(){return d("cycle_int")}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Force Exterior Door",icon:"exclamation-triangle",color:"open"===m?"red":p?"yellow":null,onClick:function(){return d("force_ext")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Force Interior Door",icon:"exclamation-triangle",color:"open"===m?"red":p?"yellow":null,onClick:function(){return d("force_int")}})]}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Abort",icon:"ban",color:"red",disabled:!p,onClick:function(){return d("abort")}})})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.FaxMachine=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.FaxMachine=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Authorization",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Card",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.scan_name?"eject":"id-card",selected:l.scan_name,content:l.scan_name?l.scan_name:"-----",tooltip:l.scan_name?"Eject ID":"Insert ID",onClick:function(){return i("scan")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Authorize",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.authenticated?"sign-out-alt":"id-card",selected:l.authenticated,disabled:l.nologin,content:l.realauth?"Log Out":"Log In",onClick:function(){return i("auth")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Fax Menu",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Network",children:l.network}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Document",children:[(0,o.createComponentVNode)(2,a.Button,{icon:l.paper?"eject":"paperclip",disabled:!l.authenticated&&!l.paper,content:l.paper?l.paper:"-----",onClick:function(){return i("paper")}}),!!l.paper&&(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){return i("rename")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sending To",children:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:l.destination?l.destination:"-----",disabled:!l.authenticated,onClick:function(){return i("dept")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Action",children:(0,o.createComponentVNode)(2,a.Button,{icon:"envelope",content:l.sendError?l.sendError:"Send",disabled:!l.paper||!l.destination||!l.authenticated||l.sendError,onClick:function(){return i("send")}})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.FloorPainter=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=function(e,t){var n=(0,r.useBackend)(t),a=(n.act,n.data,e.image),c=e.isSelected,i=e.onSelect;return(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+a,style:{"border-style":c?"solid":"none","border-width":"2px","border-color":"orange",padding:c?"2px":"4px"},onClick:i})};t.FloorPainter=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.availableStyles,s=d.selectedStyle,m=d.selectedDir,p=d.directionsPreview,f=d.allStylesPreview;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Decal setup",children:[(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"chevron-left",onClick:function(){return l("cycle_style",{offset:-1})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Dropdown,{options:u,selected:s,width:"150px",height:"20px",ml:"2px",mr:"2px",nochevron:"true",onSelected:function(e){return l("select_style",{style:e})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"chevron-right",onClick:function(){return l("cycle_style",{offset:1})}})})]}),(0,o.createComponentVNode)(2,a.Box,{mt:"5px",mb:"5px",children:(0,o.createComponentVNode)(2,a.Flex,{overflowY:"auto",maxHeight:"220px",wrap:"wrap",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,i,{image:f[e],isSelected:s===e,onSelect:function(){return l("select_style",{style:e})}})},"{style}")}))})}),(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Direction",children:(0,o.createComponentVNode)(2,a.Table,{style:{display:"inline"},children:["north","","south"].map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[e+"west",e,e+"east"].map((function(e){return(0,o.createComponentVNode)(2,a.Table.Cell,{style:{"vertical-align":"middle","text-align":"center"},children:""===e?(0,o.createComponentVNode)(2,a.Icon,{name:"arrows-alt",size:3}):(0,o.createComponentVNode)(2,i,{image:p[e],isSelected:e===m,onSelect:function(){return l("select_direction",{direction:e})}})},e)}))},e)}))})})})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GPS=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=function(e){return e?"("+e.join(", ")+")":"ERROR"};t.GPS=function(e,t){var n=(0,r.useBackend)(t).data,i=n.emped,m=n.active,p=n.area,f=n.position,h=n.saved;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",height:"100%",children:i?(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",basis:"0",children:(0,o.createComponentVNode)(2,l,{emp:!0})}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,d)}),m?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Flex.Item,{mt:"0.5rem",children:(0,o.createComponentVNode)(2,u,{area:p,position:f})}),h&&(0,o.createComponentVNode)(2,a.Flex.Item,{mt:"0.5rem",children:(0,o.createComponentVNode)(2,u,{title:"Saved Position",position:h})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mt:"0.5rem",grow:"1",basis:"0",children:(0,o.createComponentVNode)(2,s,{height:"100%"})})],0):(0,o.createComponentVNode)(2,l)],0)})})})};var l=function(e,t){var n=e.emp;return(0,o.createComponentVNode)(2,a.Section,{mt:"0.5rem",width:"100%",height:"100%",stretchContents:!0,children:(0,o.createComponentVNode)(2,a.Box,{width:"100%",height:"100%",color:"label",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:n?"ban":"power-off",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),n?"ERROR: Device temporarily lost signal.":"Device is disabled."]})})})})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.active,d=i.tag,u=i.same_z,s=(0,r.useLocalState)(t,"newTag",d),m=s[0],p=s[1];return(0,o.createComponentVNode)(2,a.Section,{title:"Settings",buttons:(0,o.createComponentVNode)(2,a.Button,{selected:l,icon:l?"toggle-on":"toggle-off",content:l?"On":"Off",onClick:function(){return c("toggle")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tag",children:[(0,o.createComponentVNode)(2,a.Input,{width:"5rem",value:d,onEnter:function(){return c("tag",{newtag:m})},onInput:function(e,t){return p(t)}}),(0,o.createComponentVNode)(2,a.Button,{disabled:d===m,width:"20px",mb:"0",ml:"0.25rem",onClick:function(){return c("tag",{newtag:m})},children:(0,o.createComponentVNode)(2,a.Icon,{name:"pen"})})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,a.Button,{selected:!u,icon:u?"compress":"expand",content:u?"Local Sector":"Global",onClick:function(){return c("same_z")}})})]})})},u=function(e,t){var n=e.title,r=e.area,c=e.position;return(0,o.createComponentVNode)(2,a.Section,{title:n||"Position",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"1.5rem",children:[r&&(0,o.createFragment)([r,(0,o.createVNode)(1,"br")],0),i(c)]})})},s=function(e,t){var n=(0,r.useBackend)(t).data,c=n.position,l=n.signals;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({title:"Signals",overflow:"auto"},e,{children:(0,o.createComponentVNode)(2,a.Table,{children:l.map((function(e){return Object.assign({},e,{},function(e,t){if(e&&t){if(e[2]!==t[2])return null;var n,o=Math.atan2(t[1]-e[1],t[0]-e[0]),r=Math.sqrt(Math.pow(t[1]-e[1],2)+Math.pow(t[0]-e[0],2));return{angle:(n=o,n*(180/Math.PI)),distance:r}}}(c,e.position))})).map((function(e,t){return(0,o.createComponentVNode)(2,a.Table.Row,{backgroundColor:t%2==0&&"rgba(255, 255, 255, 0.05)",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"30%",verticalAlign:"middle",color:"label",p:"0.25rem",bold:!0,children:e.tag}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"middle",color:"grey",children:e.area}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"middle",collapsing:!0,children:e.distance!==undefined&&(0,o.createComponentVNode)(2,a.Box,{opacity:Math.max(1-Math.min(e.distance,100)/100,.5),children:[(0,o.createComponentVNode)(2,a.Icon,{name:e.distance>0?"arrow-right":"circle",rotation:-e.angle}),"\xa0",Math.floor(e.distance)+"m"]})}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"middle",pr:"0.25rem",collapsing:!0,children:i(e.position)})]},t)}))})})))}},function(e,t,n){"use strict";t.__esModule=!0,t.GenericCrewManifest=void 0;var o=n(0),r=n(2),a=n(4),c=n(135);t.GenericCrewManifest=function(e,t){return(0,o.createComponentVNode)(2,a.Window,{resizable:!0,theme:"nologo",children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,r.Section,{noTopPadding:!0,children:(0,o.createComponentVNode)(2,c.CrewManifest)})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GhostHudPanel=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.GhostHudPanel=function(e,t){var n=(0,r.useBackend)(t).data,l=n.security,d=n.medical,u=n.diagnostic,s=n.ahud;return(0,o.createComponentVNode)(2,c.Window,{theme:"nologo",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,i,{label:"Medical",type:"medical",is_active:d}),(0,o.createComponentVNode)(2,i,{label:"Security",type:"security",is_active:l}),(0,o.createComponentVNode)(2,i,{label:"Diagnostic",type:"diagnostic",is_active:u}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,i,{label:"Antag HUD",is_active:s,act_on:"ahud_on",act_off:"ahud_off"})]})})})};var i=function(e,t){var n=(0,r.useBackend)(t).act,c=e.label,i=e.type,l=void 0===i?null:i,d=e.is_active,u=e.act_on,s=void 0===u?"hud_on":u,m=e.act_off,p=void 0===m?"hud_off":m;return(0,o.createComponentVNode)(2,a.Flex,{pt:.3,color:"label",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{pl:.5,align:"center",width:"80%",children:c}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{mr:.6,content:d?"On":"Off",icon:d?"toggle-on":"toggle-off",selected:d,onClick:function(){return n(d?p:s,{hud_type:l})}})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGen=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.GravityGen=function(e,t){var n,i=(0,r.useBackend)(t),l=i.act,d=i.data,u=d.charging_state,s=d.charge_count,m=d.breaker,p=d.ext_power;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[function(e){if(e>0)return(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,p:1.5,children:[(0,o.createVNode)(1,"b",null,"WARNING:",16)," Radiation Detected!"]})}(u),(0,o.createComponentVNode)(2,a.Section,{title:"Generator Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",content:m?"Online":"Offline",color:m?"green":"red",px:1.5,onClick:function(){return l("breaker")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Status",color:p?"good":"bad",children:(n=u,n>0?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:["[ ",1===n?"Charging":"Discharging"," ]"]}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:p?"good":"bad",children:["[ ",p?"Powered":"Unpowered"," ]"]}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GuestPass=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(78);t.GuestPass=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"id-card",selected:!d.showlogs,onClick:function(){return l("mode",{mode:0})},children:"Issue Pass"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"scroll",selected:d.showlogs,onClick:function(){return l("mode",{mode:1})},children:["Records (",d.issue_log.length,")"]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Authorization",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Card",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.scan_name?"eject":"id-card",selected:d.scan_name,content:d.scan_name?d.scan_name:"-----",tooltip:d.scan_name?"Eject ID":"Insert ID",onClick:function(){return l("scan")}})})})}),!d.showlogs&&(0,o.createComponentVNode)(2,a.Section,{title:"Issue Guest Pass",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Issue To",children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:d.giv_name?d.giv_name:"-----",disabled:!d.scan_name,onClick:function(){return l("giv_name")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Reason",children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:d.reason?d.reason:"-----",disabled:!d.scan_name,onClick:function(){return l("reason")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Duration",children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:d.duration?d.duration:"-----",disabled:!d.scan_name,onClick:function(){return l("duration")}})})]}),!!d.scan_name&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.AccessList,{grantableList:d.grantableList,accesses:d.regions,selectedList:d.selectedAccess,accessMod:function(e){return l("access",{access:e})},grantAll:function(){return l("grant_all")},denyAll:function(){return l("clear_all")},grantDep:function(e){return l("grant_region",{region:e})},denyDep:function(e){return l("deny_region",{region:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"id-card",content:d.printmsg,disabled:!d.canprint,onClick:function(){return l("issue")}})],4)]}),!!d.showlogs&&(0,o.createComponentVNode)(2,a.Section,{title:"Issuance Log",children:!!d.issue_log.length&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList,{children:d.issue_log.map((function(e,t){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{children:e},t)}))}),(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print",disabled:!d.scan_name,onClick:function(){return l("print")}})],4)||(0,o.createComponentVNode)(2,a.Box,{children:"None."})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.HandheldChemDispenser=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=[1,5,10,20,30,50];t.HandheldChemDispenser=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,d)]})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.amount,u=l.energy,s=l.maxEnergy,m=l.mode;return(0,o.createComponentVNode)(2,a.Section,{title:"Settings",flex:"content",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,minValue:0,maxValue:s,ranges:{good:[.5*s,Infinity],average:[.25*s,.5*s],bad:[-Infinity,.25*s]},children:[u," / ",s," Units"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Amount",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",spacing:"1",children:i.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",width:"14%",display:"inline-block",children:(0,o.createComponentVNode)(2,a.Button,{icon:"cog",selected:d===e,content:e,m:"0",width:"100%",onClick:function(){return c("amount",{amount:e})}})},t)}))})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",justify:"space-between",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"cog",selected:"dispense"===m,content:"Dispense",m:"0",width:"32%",onClick:function(){return c("mode",{mode:"dispense"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"cog",selected:"remove"===m,content:"Remove",m:"0",width:"32%",onClick:function(){return c("mode",{mode:"remove"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"cog",selected:"isolate"===m,content:"Isolate",m:"0",width:"32%",onClick:function(){return c("mode",{mode:"isolate"})}})]})})]})})},d=function(e,t){for(var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.chemicals,d=void 0===l?[]:l,u=i.current_reagent,s=[],m=0;m<(d.length+1)%3;m++)s.push(!0);return(0,o.createComponentVNode)(2,a.Section,{title:i.glass?"Drink Selector":"Chemical Selector",flexGrow:"1",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",wrap:"wrap",height:"100%",spacingPrecise:"2",align:"flex-start",alignContent:"flex-start",children:[d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",basis:"25%",height:"20px",width:"30%",display:"inline-block",children:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",selected:u===e.id,width:"100%",height:"100%",align:"flex-start",content:e.title,onClick:function(){return c("dispense",{reagent:e.id})}})},t)})),s.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",basis:"25%",height:"20px"},t)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Instrument=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(4);t.Instrument=function(e,t){var n=(0,a.useBackend)(t);n.act,n.data;return(0,o.createComponentVNode)(2,i.Window,{children:[(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,s)]})]})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act;if(n.data.help)return(0,o.createComponentVNode)(2,c.Modal,{maxWidth:"75%",height:.75*window.innerHeight+"px",mx:"auto",py:"0",px:"0.5rem",children:(0,o.createComponentVNode)(2,c.Section,{height:"100%",title:"Help",level:"2",overflow:"auto",children:(0,o.createComponentVNode)(2,c.Box,{px:"0.5rem",mt:"-0.5rem",children:[(0,o.createVNode)(1,"h1",null,"Making a Song",16),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Lines are a series of chords, separated by commas\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"(,)"}),(0,o.createTextVNode)(", each with notes seperated by hyphens\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"(-)"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"tempo"}),(0,o.createTextVNode)(" as defined above.")],4),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Notes are played by the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"names of the note"}),(0,o.createTextVNode)(", and optionally, the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"accidental"}),(0,o.createTextVNode)(", and/or the "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave number"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("By default, every note is\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"natural"}),(0,o.createTextVNode)(" and in\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave 3"}),(0,o.createTextVNode)(". Defining a different state for either is remembered for each "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"note"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"ul",null,[(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"Example:"}),(0,o.createTextVNode)("\xa0"),(0,o.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,o.createTextVNode)(" will play a\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"C"}),(0,o.createTextVNode)("\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"major"}),(0,o.createTextVNode)(" scale.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createTextVNode)("After a note has an\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"accidental"}),(0,o.createTextVNode)(" or\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave"}),(0,o.createTextVNode)(" placed, it will be remembered:\xa0"),(0,o.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,o.createTextVNode)(" is "),(0,o.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],4)],4)],4),(0,o.createVNode)(1,"p",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"Chords"}),(0,o.createTextVNode)("\xa0can be played simply by seperating each note with a hyphen: "),(0,o.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("A "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"pause"}),(0,o.createTextVNode)("\xa0may be denoted by an empty chord: "),(0,o.createVNode)(1,"i",null,"C,E,,C,G",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,o.createTextVNode)(",\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"eg:"}),(0,o.createTextVNode)(" "),(0,o.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,o.createTextVNode)(".")],4),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Combined, an example line is: "),(0,o.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"ul",null,[(0,o.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,o.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Lines are a series of chords, separated by commas\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"(,)"}),(0,o.createTextVNode)(", each with notes seperated by hyphens\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"(-)"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"tempo"}),(0,o.createTextVNode)(" as defined above.")],4),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Notes are played by the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"names of the note"}),(0,o.createTextVNode)(", and optionally, the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"accidental"}),(0,o.createTextVNode)(", and/or the "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave number"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("By default, every note is\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"natural"}),(0,o.createTextVNode)(" and in\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave 3"}),(0,o.createTextVNode)(". Defining a different state for either is remembered for each "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"note"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"ul",null,[(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"Example:"}),(0,o.createTextVNode)("\xa0"),(0,o.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,o.createTextVNode)(" will play a\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"C"}),(0,o.createTextVNode)("\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"major"}),(0,o.createTextVNode)(" scale.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createTextVNode)("After a note has an\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"accidental"}),(0,o.createTextVNode)(" or\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave"}),(0,o.createTextVNode)(" placed, it will be remembered:\xa0"),(0,o.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,o.createTextVNode)(" is "),(0,o.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],4)],4)],4),(0,o.createVNode)(1,"p",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"Chords"}),(0,o.createTextVNode)("\xa0can be played simply by seperating each note with a hyphen: "),(0,o.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("A "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"pause"}),(0,o.createTextVNode)("\xa0may be denoted by an empty chord: "),(0,o.createVNode)(1,"i",null,"C,E,,C,G",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,o.createTextVNode)(",\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"eg:"}),(0,o.createTextVNode)(" "),(0,o.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,o.createTextVNode)(".")],4),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Combined, an example line is: "),(0,o.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"ul",null,[(0,o.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,o.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,o.createVNode)(1,"h1",null,"Instrument Advanced Settings",16),(0,o.createVNode)(1,"ul",null,[(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Type:"}),(0,o.createTextVNode)("\xa0Whether the instrument is legacy or synthesized."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Legacy instruments have a collection of sounds that are selectively used depending on the note to play."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Synthesized instruments use a base sound and change its pitch to match the note to play.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Current:"}),(0,o.createTextVNode)("\xa0Which instrument sample to play. Some instruments can be tuned to play different samples. Experiment!")],4),(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Note Shift/Note Transpose:"}),(0,o.createTextVNode)("\xa0The pitch to apply to all notes of the song.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Sustain Mode:"}),(0,o.createTextVNode)("\xa0How a played note fades out."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Linear sustain means a note will fade out at a constant rate."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Exponential sustain means a note will fade out at an exponential rate, sounding smoother.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Volume Dropoff Threshold:"}),(0,o.createTextVNode)("\xa0The volume threshold at which a note is fully stopped.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Sustain indefinitely last held note:"}),(0,o.createTextVNode)("\xa0Whether the last note should be sustained indefinitely.")],4)],4),(0,o.createComponentVNode)(2,c.Button,{color:"grey",content:"Close",onClick:function(){return r("help")}})]})})})},d=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data,d=l.lines,s=l.playing,m=l.repeat,p=l.maxRepeats,f=l.tempo,h=l.minTempo,C=l.maxTempo,N=l.tickLag,b=l.volume,g=l.minVolume,V=l.maxVolume,v=l.ready;return(0,o.createComponentVNode)(2,c.Section,{title:"Instrument",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"info",content:"Help",onClick:function(){return i("help")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"file",content:"New",onClick:function(){return i("newsong")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"upload",content:"Import",onClick:function(){return i("import")}})],4),children:[(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Playback",children:[(0,o.createComponentVNode)(2,c.Button,{selected:s,disabled:0===d.length||m<0,icon:"play",content:"Play",onClick:function(){return i("play")}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!s,icon:"stop",content:"Stop",onClick:function(){return i("stop")}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Repeat",children:(0,o.createComponentVNode)(2,c.Slider,{animated:!0,minValue:"0",maxValue:p,value:m,stepPixelSize:"59",onChange:function(e,t){return i("repeat",{"new":t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Tempo",children:(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Button,{disabled:f>=C,content:"-",as:"span",mr:"0.5rem",onClick:function(){return i("tempo",{"new":f+N})}}),(0,r.round)(600/f)," BPM",(0,o.createComponentVNode)(2,c.Button,{disabled:f<=h,content:"+",as:"span",ml:"0.5rem",onClick:function(){return i("tempo",{"new":f-N})}})]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,c.Slider,{animated:!0,minValue:g,maxValue:V,value:b,stepPixelSize:"6",onDrag:function(e,t){return i("setvolume",{"new":t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:v?(0,o.createComponentVNode)(2,c.Box,{color:"good",children:"Ready"}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Instrument Definition Error!"})})]}),(0,o.createComponentVNode)(2,u)]})},u=function(e,t){var n,i,l=(0,a.useBackend)(t),d=l.act,u=l.data,s=u.allowedInstrumentNames,m=u.instrumentLoaded,p=u.instrument,f=u.canNoteShift,h=u.noteShift,C=u.noteShiftMin,N=u.noteShiftMax,b=u.sustainMode,g=u.sustainLinearDuration,V=u.sustainExponentialDropoff,v=u.legacy,y=u.sustainDropoffVolume,_=u.sustainHeldNote;return 1===b?(n="Linear",i=(0,o.createComponentVNode)(2,c.Slider,{minValue:"0.1",maxValue:"5",value:g,step:"0.5",stepPixelSize:"85",format:function(e){return(0,r.round)(100*e)/100+" seconds"},onChange:function(e,t){return d("setlinearfalloff",{"new":t/10})}})):2===b&&(n="Exponential",i=(0,o.createComponentVNode)(2,c.Slider,{minValue:"1.025",maxValue:"10",value:V,step:"0.01",format:function(e){return(0,r.round)(1e3*e)/1e3+"% per decisecond"},onChange:function(e,t){return d("setexpfalloff",{"new":t})}})),s.sort(),(0,o.createComponentVNode)(2,c.Box,{my:-1,children:(0,o.createComponentVNode)(2,c.Collapsible,{mt:"1rem",mb:"0",title:"Advanced",children:(0,o.createComponentVNode)(2,c.Section,{mt:-1,children:[(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Type",children:v?"Legacy":"Synthesized"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Current",children:m?(0,o.createComponentVNode)(2,c.Dropdown,{options:s,selected:p,width:"40%",onSelected:function(e){return d("switchinstrument",{name:e})}}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"None!"})}),!(v||!f)&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Note Shift/Note Transpose",children:(0,o.createComponentVNode)(2,c.Slider,{minValue:C,maxValue:N,value:h,stepPixelSize:"2",format:function(e){return e+" keys / "+(0,r.round)(e/12*100)/100+" octaves"},onChange:function(e,t){return d("setnoteshift",{"new":t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Sustain Mode",children:[(0,o.createComponentVNode)(2,c.Dropdown,{options:["Linear","Exponential"],selected:n,onSelected:function(e){return d("setsustainmode",{"new":e})}}),i]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Volume Dropoff Threshold",children:(0,o.createComponentVNode)(2,c.Slider,{animated:!0,minValue:"0.01",maxValue:"100",value:y,stepPixelSize:"6",onChange:function(e,t){return d("setdropoffvolume",{"new":t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Sustain indefinitely last held note",children:(0,o.createComponentVNode)(2,c.Button,{selected:_,icon:_?"toggle-on":"toggle-off",content:_?"Yes":"No",onClick:function(){return d("togglesustainhold")}})})],4)]}),(0,o.createComponentVNode)(2,c.Button,{icon:"redo",content:"Reset to Default",mt:"0.5rem",onClick:function(){return d("reset")}})]})})})},s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.playing,d=i.lines,u=i.editing;return(0,o.createComponentVNode)(2,c.Section,{title:"Editor",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{disabled:!u||l,icon:"plus",content:"Add Line",onClick:function(){return r("newline",{line:d.length+1})}}),(0,o.createComponentVNode)(2,c.Button,{selected:!u,icon:u?"chevron-up":"chevron-down",onClick:function(){return r("edit")}})],4),children:!!u&&(d.length>0?(0,o.createComponentVNode)(2,c.LabeledList,{children:d.map((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:t+1,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{disabled:l,icon:"pen",onClick:function(){return r("modifyline",{line:t+1})}}),(0,o.createComponentVNode)(2,c.Button,{disabled:l,icon:"trash",onClick:function(){return r("deleteline",{line:t+1})}})],4),children:e},t)}))}):(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Song is empty."}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.KeycardAuth=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=(0,o.createComponentVNode)(2,a.Section,{title:"Keycard Authentication Device",children:(0,o.createComponentVNode)(2,a.Box,{children:"This device is used to trigger certain high security events. It requires the simultaneous swipe of two high-level ID cards."})});if(l.swiping||l.busy){var u=(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Waiting for YOU to swipe your ID..."});return l.hasSwiped||l.ertreason||"Emergency Response Team"!==l.event?l.hasConfirm?u=(0,o.createComponentVNode)(2,a.Box,{color:"green",children:"Request Confirmed!"}):l.isRemote?u=(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"Swipe your card to CONFIRM the remote request."}):l.hasSwiped&&(u=(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"Waiting for second person to confirm..."})):u=(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Fill out the reason for your ERT request."}),(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[d,"Emergency Response Team"===l.event&&(0,o.createComponentVNode)(2,a.Section,{title:"Reason for ERT Call",children:(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{color:l.ertreason?"":"red",icon:l.ertreason?"check":"pencil-alt",content:l.ertreason?l.ertreason:"-----",disabled:l.busy,onClick:function(){return i("ert")}})})}),(0,o.createComponentVNode)(2,a.Section,{title:l.event,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-left",content:"Back",disabled:l.busy||l.hasConfirm,onClick:function(){return i("reset")}}),children:u})]})})}return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[d,(0,o.createComponentVNode)(2,a.Section,{title:"Choose Action",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Red Alert",children:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",disabled:!l.redAvailable,onClick:function(){return i("triggerevent",{triggerevent:"Red Alert"})},content:"Red Alert"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ERT",children:(0,o.createComponentVNode)(2,a.Button,{icon:"broadcast-tower",onClick:function(){return i("triggerevent",{triggerevent:"Emergency Response Team"})},content:"Call ERT"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Maint Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"door-open",onClick:function(){return i("triggerevent",{triggerevent:"Grant Emergency Maintenance Access"})},content:"Grant"}),(0,o.createComponentVNode)(2,a.Button,{icon:"door-closed",onClick:function(){return i("triggerevent",{triggerevent:"Revoke Emergency Maintenance Access"})},content:"Revoke"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Station-Wide Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"door-open",onClick:function(){return i("triggerevent",{triggerevent:"Activate Station-Wide Emergency Access"})},content:"Grant"}),(0,o.createComponentVNode)(2,a.Button,{icon:"door-closed",onClick:function(){return i("triggerevent",{triggerevent:"Deactivate Station-Wide Emergency Access"})},content:"Revoke"})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(0),r=n(20),a=n(1),c=n(2),i=n(4);t.LaborClaimConsole=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,d)]})})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.can_go_home,d=i.emagged,u=i.id_inserted,s=i.id_name,m=i.id_points,p=i.id_goal,f=i.unclaimed_points,h=d?0:1,C=d?"ERR0R":l?"Completed!":"Insufficient";return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:!!u&&(0,o.createComponentVNode)(2,c.ProgressBar,{value:m/p,ranges:{good:[h,Infinity],bad:[-Infinity,h]},children:m+" / "+p+" "+C})||!!d&&"ERR0R COMPLETED?!@"||"No ID inserted"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Move shuttle",disabled:!l,onClick:function(){return r("move_shuttle")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Unclaimed points",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Claim points ("+f+")",disabled:!u||!f,onClick:function(){return r("claim_points")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Inserted ID",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:u?s:"-------------",onClick:function(){return r("handle_id")}})})]})})},d=function(e,t){var n=(0,a.useBackend)(t).data.ores;return(0,o.createComponentVNode)(2,c.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),n.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LawManager=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.LawManager=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.isAdmin,m=u.isSlaved,p=u.isMalf,f=u.isAIMalf,h=u.view;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!(!s||!m)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:["This unit is slaved to ",m,"."]}),!(!p&&!f)&&(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Law Management",selected:0===h,onClick:function(){return d("set_view",{set_view:0})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Lawsets",selected:1===h,onClick:function(){return d("set_view",{set_view:1})}})]}),!(0!==h)&&(0,o.createComponentVNode)(2,i),!(1!==h)&&(0,o.createComponentVNode)(2,l)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.has_zeroth_laws,u=i.zeroth_laws,s=i.has_ion_laws,m=i.ion_laws,p=i.ion_law_nr,f=i.has_inherent_laws,h=i.inherent_laws,C=i.has_supplied_laws,N=i.supplied_laws,b=i.channels,g=i.channel,V=i.isMalf,v=i.isAdmin,y=i.zeroth_law,_=i.ion_law,x=i.inherent_law,k=i.supplied_law,L=i.supplied_law_position;return(0,o.createFragment)([!!l&&(0,o.createComponentVNode)(2,d,{title:"ERR_NULL_VALUE",laws:u,ctx:t}),!!s&&(0,o.createComponentVNode)(2,d,{title:p,laws:m,ctx:t}),!!f&&(0,o.createComponentVNode)(2,d,{title:"Inherent",laws:h,ctx:t}),!!C&&(0,o.createComponentVNode)(2,d,{title:"Supplied",laws:N,ctx:t}),(0,o.createComponentVNode)(2,a.Section,{title:"Statement Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Statement Channel",children:b.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.channel,selected:e.channel===g,onClick:function(){return c("law_channel",{law_channel:e.channel})}},e.channel)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State Laws",children:(0,o.createComponentVNode)(2,a.Button,{content:"State Laws",onClick:function(){return c("state_laws")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Law Notification",children:(0,o.createComponentVNode)(2,a.Button,{content:"Notify",onClick:function(){return c("notify_laws")}})})]})}),!!V&&(0,o.createComponentVNode)(2,a.Section,{title:"Add Laws",children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"10%",children:"Type"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"60%",children:"Law"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"10%",children:"Index"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Actions"})]}),!(!v||l)&&(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Zero"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:y}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"N/A"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){return c("change_zeroth_law")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Add",icon:"plus",onClick:function(){return c("add_zeroth_law")}})]})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Ion"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:_}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"N/A"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){return c("change_ion_law")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Add",icon:"plus",onClick:function(){return c("add_ion_law")}})]})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Inherent"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:x}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"N/A"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){return c("change_inherent_law")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Add",icon:"plus",onClick:function(){return c("add_inherent_law")}})]})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Supplied"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:k}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:L,onClick:function(){return c("change_supplied_law_position")}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){return c("change_supplied_law")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Add",icon:"plus",onClick:function(){return c("add_supplied_law")}})]})]})]})})],0)},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.law_sets;return(0,o.createComponentVNode)(2,a.Box,{children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" - "+e.header,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Load Laws",icon:"download",onClick:function(){return c("transfer_laws",{transfer_laws:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.laws.has_ion_laws>0&&e.laws.ion_laws.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.index,children:e.law},e.index)})),e.laws.has_zeroth_laws>0&&e.laws.zeroth_laws.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.index,children:e.law},e.index)})),e.laws.has_inherent_laws>0&&e.laws.inherent_laws.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.index,children:e.law},e.index)})),e.laws.has_supplied_laws>0&&e.laws.inherent_laws.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.index,children:e.law},e.index)}))]})},e.name)}))})},d=function(e,t){var n=(0,r.useBackend)(e.ctx),c=n.act,i=n.data.isMalf;return(0,o.createComponentVNode)(2,a.Section,{title:e.title+" Laws",children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"10%",children:"Index"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"69%",children:"Law"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"21%",children:"State?"})]}),e.laws.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.index}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.law}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Button,{content:e.state?"Yes":"No",selected:e.state,onClick:function(){return c("state_law",{ref:e.ref,state_law:e.state?0:1})}}),!!i&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){return c("edit_law",{edit_law:e.ref})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Delete",icon:"trash",color:"red",onClick:function(){return c("delete_law",{delete_law:e.ref})}})],4)]})]},e.law)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayConsole=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.MechBayConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.recharge_port,d=l&&l.mech,u=d&&d.cell,s=d&&d.name;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:s?"Mech status: "+s:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return i("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.health/d.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!u&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.charge/u.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.charge})," / "+u.maxcharge]})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechaControlConsole=void 0;var o=n(0),r=(n(16),n(1)),a=n(2),c=n(4),i=n(20);t.MechaControlConsole=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.beacons,s=d.stored_data;return s.length?(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Log",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"window-close",onClick:function(){return l("clear_log")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{color:"label",children:["(",e.time,")"]}),(0,o.createComponentVNode)(2,a.Box,{children:(0,i.decodeHtmlEntities)(e.message)})]},e.time)}))})})}):(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:u.length&&u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"comment",onClick:function(){return l("send_message",{mt:e.uid})},children:"Message"}),(0,o.createComponentVNode)(2,a.Button,{icon:"eye",onClick:function(){return l("get_log",{mt:e.uid})},children:"View Log"}),(0,o.createComponentVNode)(2,a.Button.Confirm,{color:"red",content:"EMP",icon:"bomb",onClick:function(){return l("shock",{mt:e.uid})}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.75*e.maxHealth,Infinity],average:[.5*e.maxHealth,.75*e.maxHealth],bad:[-Infinity,.5*e.maxHealth]},value:e.health,maxValue:e.maxHealth})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell Charge",children:e.cell&&(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.75*e.cellMaxCharge,Infinity],average:[.5*e.cellMaxCharge,.75*e.cellMaxCharge],bad:[-Infinity,.5*e.cellMaxCharge]},value:e.cellCharge,maxValue:e.cellMaxCharge})||(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Cell Installed"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Air Tank",children:[e.airtank,"kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pilot",children:e.pilot||"Unoccupied"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:(0,i.toTitleCase)(e.location)||"Unknown"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Active Equipment",children:e.active||"None"}),e.cargoMax&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Space",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{bad:[.75*e.cargoMax,Infinity],average:[.5*e.cargoMax,.75*e.cargoMax],good:[-Infinity,.5*e.cargoMax]},value:e.cargoUsed,maxValue:e.cargoMax})})||null]})},e.name)}))||(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mecha beacons found."})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MedicalRecords=void 0;var o=n(0),r=n(1),a=n(2),c=n(49),i=n(4),l=n(132),d=n(133),u=n(136),s={Minor:"good",Medium:"average","Dangerous!":"bad",Harmful:"bad","BIOHAZARD THREAT!":"bad"},m=function(e,t){(0,c.modalOpen)(e,"edit",{field:t.edit,value:t.value})};t.MedicalRecords=function(e,t){var n,s=(0,r.useBackend)(t).data,m=s.loginState,C=s.screen;return m.logged_in?(2===C?n=(0,o.createComponentVNode)(2,p):3===C?n=(0,o.createComponentVNode)(2,f):4===C?n=(0,o.createComponentVNode)(2,h):5===C?n=(0,o.createComponentVNode)(2,b):6===C&&(n=(0,o.createComponentVNode)(2,g)),(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,c.ComplexModal),(0,o.createComponentVNode)(2,i.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,l.LoginInfo),(0,o.createComponentVNode)(2,u.TemporaryNotice),(0,o.createComponentVNode)(2,V),(0,o.createComponentVNode)(2,a.Section,{height:"100%",flexGrow:"1",children:n})]})]})):(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,d.LoginScreen)})})};var p=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.records;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{fluid:!0,placeholder:"Search by Name, DNA, or ID",onChange:function(e,t){return c("search",{t1:t})}}),(0,o.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:i.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"user",mb:"0.5rem",content:e.id+": "+e.name,onClick:function(){return c("d_rec",{d_rec:e.ref})}}),(0,o.createVNode)(1,"br")],4,t)}))})],4)},f=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Backup to Disk",disabled:!0}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload from Disk",my:"0.5rem",disabled:!0}),(0,o.createTextVNode)(" "),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",content:"Delete All Medical Records",onClick:function(){return n("del_all")}})],4)},h=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.medical,d=i.printing;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"General Data",level:2,mt:"-6px",children:(0,o.createComponentVNode)(2,C)}),(0,o.createComponentVNode)(2,a.Section,{title:"Medical Data",level:2,children:(0,o.createComponentVNode)(2,N)}),(0,o.createComponentVNode)(2,a.Section,{title:"Actions",level:2,children:[(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",disabled:!!l.empty,content:"Delete Medical Record",color:"bad",onClick:function(){return c("del_r")}}),(0,o.createComponentVNode)(2,a.Button,{icon:d?"spinner":"print",disabled:d,iconSpin:!!d,content:"Print Entry",ml:"0.5rem",onClick:function(){return c("print_p")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Back",mt:"0.5rem",onClick:function(){return c("screen",{screen:2})}})]})],4)},C=function(e,t){var n=(0,r.useBackend)(t).data.general;return n&&n.fields?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{width:"50%",float:"left",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:n.fields.map((function(e,n){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.field,children:[(0,o.createComponentVNode)(2,a.Box,{height:"20px",display:"inline-block",children:e.value}),!!e.edit&&(0,o.createComponentVNode)(2,a.Button,{icon:"pen",ml:"0.5rem",onClick:function(){return m(t,e)}})]},n)}))})}),(0,o.createComponentVNode)(2,a.Box,{width:"50%",float:"right",textAlign:"right",children:!!n.has_photos&&n.photos.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{display:"inline-block",textAlign:"center",color:"label",children:[(0,o.createVNode)(1,"img",null,null,1,{src:e,style:{width:"96px","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor"}}),(0,o.createVNode)(1,"br"),"Photo #",t+1]},t)}))})],4):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"General records lost!"})},N=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.medical;return l&&l.fields?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList,{children:l.fields.map((function(e,n){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.field,children:[e.value,(0,o.createComponentVNode)(2,a.Button,{icon:"pen",ml:"0.5rem",mb:e.line_break?"1rem":"initial",onClick:function(){return m(t,e)}})]},n)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Comments/Log",level:2,children:[0===l.comments.length?(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"No comments found."}):l.comments.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{color:"label",display:"inline",children:e.header}),(0,o.createVNode)(1,"br"),e.text,(0,o.createComponentVNode)(2,a.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){return i("del_c",{del_c:t+1})}})]},t)})),(0,o.createComponentVNode)(2,a.Button,{icon:"comment-medical",content:"Add Entry",color:"good",mt:"0.5rem",mb:"0",onClick:function(){return(0,c.modalOpen)(t,"add_c")}})]})],4):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:["Medical records lost!",(0,o.createComponentVNode)(2,a.Button,{icon:"pen",content:"New Record",ml:"0.5rem",onClick:function(){return i("new")}})]})},b=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.virus;return i.sort((function(e,t){return e.name>t.name?1:-1})),i.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"flask",content:e.name,mb:"0.5rem",onClick:function(){return c("vir",{vir:e.D})}}),(0,o.createVNode)(1,"br")],4,t)}))},g=function(e,t){var n=(0,r.useBackend)(t).data.medbots;return 0===n.length?(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"There are no Medbots."}):n.map((function(e,t){return(0,o.createComponentVNode)(2,a.Collapsible,{open:!0,title:e.name,children:(0,o.createComponentVNode)(2,a.Box,{px:"0.5rem",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:[e.area||"Unknown"," (",e.x,", ",e.y,")"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:e.on?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Online"}),(0,o.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:e.use_beaker?"Reservoir: "+e.total_volume+"/"+e.maximum_volume:"Using internal synthesizer."})],4):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Offline"})})]})})},t)}))},V=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.screen;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===i,onClick:function(){return c("screen",{screen:2})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"list"}),"List Records"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:5===i,onClick:function(){return c("screen",{screen:5})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"database"}),"Virus Database"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:6===i,onClick:function(){return c("screen",{screen:6})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"plus-square"}),"Medbot Tracking"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:3===i,onClick:function(){return c("screen",{screen:3})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"wrench"}),"Record Maintenance"]})]})};(0,c.modalRegisterBodyOverride)("virus",(function(e,t){var n=e.args;return(0,o.createComponentVNode)(2,a.Section,{level:2,m:"-1rem",pb:"1rem",title:n.name||"Virus",children:(0,o.createComponentVNode)(2,a.Box,{mx:"0.5rem",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Number of stages",children:n.max_stages}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Spread",children:[n.spread_text," Transmission"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Possible cure",children:n.cure}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Notes",children:n.desc}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Severity",color:s[n.severity],children:n.severity})]})})})}))},function(e,t,n){"use strict";t.__esModule=!0,t.MiningVendor=void 0;var o=n(0),r=n(20),a=n(1),c=n(2),i=n(4);var l={Alphabetical:function(e,t){return e-t},"By availability":function(e,t){return-(e.affordable-t.affordable)},"By price":function(e,t){return e.price-t.price}};t.MiningVendor=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,u)]})})};var d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.has_id,d=i.id;return(0,o.createComponentVNode)(2,c.NoticeBox,{success:l,children:l?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{display:"inline-block",verticalAlign:"middle",style:{float:"left"},children:["Logged in as ",d.name,".",(0,o.createVNode)(1,"br"),"You have ",d.points.toLocaleString("en-US")," points."]}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject ID",style:{float:"right"},onClick:function(){return r("logoff")}}),(0,o.createComponentVNode)(2,c.Box,{style:{clear:"both"}})],4):"Please insert an ID in order to make purchases."})},u=function(e,t){var n=(0,a.useBackend)(t),i=(n.act,n.data),d=i.has_id,u=i.id,s=i.items,p=(0,a.useLocalState)(t,"search",""),f=p[0],h=(p[1],(0,a.useLocalState)(t,"sort","Alphabetical")),C=h[0],N=(h[1],(0,a.useLocalState)(t,"descending",!1)),b=N[0],g=(N[1],(0,r.createSearch)(f,(function(e){return e[0]}))),V=!1,v=Object.entries(s).map((function(e,t){var n=Object.entries(e[1]).filter(g).map((function(e){return e[1].affordable=d&&u.points>=e[1].price,e[1]})).sort(l[C]);if(0!==n.length)return b&&(n=n.reverse()),V=!0,(0,o.createComponentVNode)(2,m,{title:e[0],items:n},e[0])}));return(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",overflow:"auto",children:(0,o.createComponentVNode)(2,c.Section,{children:V?v:(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"No items matching your criteria was found!"})})})},s=function(e,t){var n=(0,a.useLocalState)(t,"search",""),r=(n[0],n[1]),i=(0,a.useLocalState)(t,"sort",""),d=(i[0],i[1]),u=(0,a.useLocalState)(t,"descending",!1),s=u[0],m=u[1];return(0,o.createComponentVNode)(2,c.Box,{mb:"0.5rem",children:(0,o.createComponentVNode)(2,c.Flex,{width:"100%",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",mr:"0.5rem",children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"Search by item name..",width:"100%",onInput:function(e,t){return r(t)}})}),(0,o.createComponentVNode)(2,c.Flex.Item,{basis:"30%",children:(0,o.createComponentVNode)(2,c.Dropdown,{selected:"Alphabetical",options:Object.keys(l),width:"100%",lineHeight:"19px",onSelected:function(e){return d(e)}})}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Button,{icon:s?"arrow-down":"arrow-up",height:"19px",tooltip:s?"Descending order":"Ascending order",tooltipPosition:"bottom-left",ml:"0.5rem",onClick:function(){return m(!s)}})})]})})},m=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=e.title,d=e.items,u=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["title","items"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.Collapsible,Object.assign({open:!0,title:l},u,{children:d.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Box,{display:"inline-block",verticalAlign:"middle",lineHeight:"20px",style:{float:"left"},children:e.name}),(0,o.createComponentVNode)(2,c.Button,{disabled:!i.has_id||i.id.points=0||(r[n]=e[n]);return r}var m=["security","engineering","medical","science","service","supply"],p={security:{title:"Security",fluff_text:"Help keep the crew safe"},engineering:{title:"Engineering",fluff_text:"Ensure the station runs smoothly"},medical:{title:"Medical",fluff_text:"Practice medicine and save lives"},science:{title:"Science",fluff_text:"Develop new technologies"},service:{title:"Service",fluff_text:"Provide amenities to the crew"},supply:{title:"Supply",fluff_text:"Keep the station supplied"}};t.Newscaster=function(e,t){var n,i=(0,a.useBackend)(t),s=i.act,m=i.data,p=m.is_security,N=m.is_admin,b=m.is_silent,V=m.is_printing,v=m.screen,y=m.channels,_=m.channel_idx,x=void 0===_?-1:_,k=(0,a.useLocalState)(t,"menuOpen",!1),L=k[0],B=k[1],w=(0,a.useLocalState)(t,"viewingPhoto",""),S=w[0],I=(w[1],(0,a.useLocalState)(t,"censorMode",!1)),T=I[0],A=I[1];0===v||2===v?n=(0,o.createComponentVNode)(2,h):1===v&&(n=(0,o.createComponentVNode)(2,C));var E=y.reduce((function(e,t){return e+t.unread}),0);return(0,o.createComponentVNode)(2,l.Window,{theme:p&&"security",children:[S?(0,o.createComponentVNode)(2,g):(0,o.createComponentVNode)(2,d.ComplexModal,{maxWidth:window.innerWidth/1.5+"px",maxHeight:window.innerHeight/1.5+"px"}),(0,o.createComponentVNode)(2,l.Window.Content,{children:(0,o.createComponentVNode)(2,c.Flex,{width:"100%",height:"100%",children:[(0,o.createComponentVNode)(2,c.Section,{stretchContents:!0,className:(0,r.classes)(["Newscaster__menu",L&&"Newscaster__menu--open"]),children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,c.Box,{flex:"0 1 content",children:[(0,o.createComponentVNode)(2,f,{icon:"bars",title:"Toggle Menu",onClick:function(){return B(!L)}}),(0,o.createComponentVNode)(2,f,{icon:"newspaper",title:"Headlines",selected:0===v,onClick:function(){return s("headlines")},children:E>0&&(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__menuButton--unread",children:E>=10?"9+":E})}),(0,o.createComponentVNode)(2,f,{icon:"briefcase",title:"Job Openings",selected:1===v,onClick:function(){return s("jobs")}}),(0,o.createComponentVNode)(2,c.Divider)]}),(0,o.createComponentVNode)(2,c.Box,{flex:"2",overflowY:"auto",overflowX:"hidden",children:y.map((function(e){return(0,o.createComponentVNode)(2,f,{icon:e.icon,title:e.name,selected:2===v&&y[x-1]===e,onClick:function(){return s("channel",{uid:e.uid})},children:e.unread>0&&(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__menuButton--unread",children:e.unread>=10?"9+":e.unread})},e)}))}),(0,o.createComponentVNode)(2,c.Box,{width:"100%",flex:"0 0 content",children:[(0,o.createComponentVNode)(2,c.Divider),(!!p||!!N)&&(0,o.createFragment)([(0,o.createComponentVNode)(2,f,{security:!0,icon:"exclamation-circle",title:"Edit Wanted Notice",mb:"0.5rem",onClick:function(){return(0,d.modalOpen)(t,"wanted_notice")}}),(0,o.createComponentVNode)(2,f,{security:!0,icon:T?"minus-square":"minus-square-o",title:"Censor Mode: "+(T?"On":"Off"),mb:"0.5rem",onClick:function(){return A(!T)}}),(0,o.createComponentVNode)(2,c.Divider)],4),(0,o.createComponentVNode)(2,f,{icon:"pen-alt",title:"New Story",mb:"0.5rem",onClick:function(){return(0,d.modalOpen)(t,"create_story")}}),(0,o.createComponentVNode)(2,f,{icon:"plus-circle",title:"New Channel",onClick:function(){return(0,d.modalOpen)(t,"create_channel")}}),(0,o.createComponentVNode)(2,c.Divider),(0,o.createComponentVNode)(2,f,{icon:V?"spinner":"print",iconSpin:V,title:V?"Printing...":"Print Newspaper",onClick:function(){return s("print_newspaper")}}),(0,o.createComponentVNode)(2,f,{icon:b?"volume-mute":"volume-up",title:"Mute: "+(b?"On":"Off"),onClick:function(){return s("toggle_mute")}})]})]})}),(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",flex:"1",children:[(0,o.createComponentVNode)(2,u.TemporaryNotice),n]})]})})]})};var f=function(e,t){(0,a.useBackend)(t).act;var n=e.icon,i=void 0===n?"":n,l=e.iconSpin,d=e.selected,u=void 0!==d&&d,m=e.security,p=void 0!==m&&m,f=e.onClick,h=e.title,C=e.children,N=s(e,["icon","iconSpin","selected","security","onClick","title","children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.Box,Object.assign({className:(0,r.classes)(["Newscaster__menuButton",u&&"Newscaster__menuButton--selected",p&&"Newscaster__menuButton--security"]),onClick:f},N,{children:[u&&(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__menuButton--selectedBar"}),(0,o.createComponentVNode)(2,c.Icon,{name:i,spin:l,size:"2"}),(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__menuButton--title",children:h}),C]})))},h=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.screen,u=i.is_admin,s=i.channel_idx,m=i.channel_can_manage,p=i.channels,f=i.stories,h=i.wanted,C=(0,a.useLocalState)(t,"fullStories",[]),b=C[0],g=(C[1],(0,a.useLocalState)(t,"censorMode",!1)),V=g[0],v=(g[1],2===l&&s>-1?p[s-1]:null);return(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",flex:"1",children:[!!h&&(0,o.createComponentVNode)(2,N,{story:h,wanted:!0}),(0,o.createComponentVNode)(2,c.Section,{title:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Icon,{name:v?v.icon:"newspaper",mr:"0.5rem"}),v?v.name:"Headlines"],0),flexGrow:"1",children:f.length>0?f.slice().reverse().map((function(e){return!b.includes(e.uid)&&e.body.length+3>128?Object.assign({},e,{body_short:e.body.substr(0,124)+"..."}):e})).map((function(e){return(0,o.createComponentVNode)(2,N,{story:e},e)})):(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__emptyNotice",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"times",size:"3"}),(0,o.createVNode)(1,"br"),"There are no stories at this time."]})}),!!v&&(0,o.createComponentVNode)(2,c.Section,{flexShrink:"1",title:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Icon,{name:"info-circle",mr:"0.5rem"}),(0,o.createTextVNode)("About")],4),buttons:(0,o.createFragment)([V&&(0,o.createComponentVNode)(2,c.Button,{disabled:!!v.admin&&!u,selected:v.censored,icon:v.censored?"comment-slash":"comment",content:v.censored?"Uncensor Channel":"Censor Channel",mr:"0.5rem",onClick:function(){return r("censor_channel",{uid:v.uid})}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!m,icon:"cog",content:"Manage",onClick:function(){return(0,d.modalOpen)(t,"manage_channel",{uid:v.uid})}})],0),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:v.description||"N/A"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Owner",children:v.author||"N/A"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Public",children:v["public"]?"Yes":"No"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Total Views",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"eye",mr:"0.5rem"}),f.reduce((function(e,t){return e+t.view_count}),0).toLocaleString()]})]})})]})},C=function(e,t){var n=(0,a.useBackend)(t),i=(n.act,n.data),l=i.jobs,d=i.wanted,u=Object.entries(l).reduce((function(e,t){t[0];return e+t[1].length}),0);return(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",flex:"1",children:[!!d&&(0,o.createComponentVNode)(2,N,{story:d,wanted:!0}),(0,o.createComponentVNode)(2,c.Section,{flexGrow:"1",title:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Icon,{name:"briefcase",mr:"0.5rem"}),(0,o.createTextVNode)("Job Openings")],4),buttons:(0,o.createComponentVNode)(2,c.Box,{mt:"0.25rem",color:"label",children:"Work for a better future at Nanotrasen"}),children:u>0?m.map((function(e){return Object.assign({},p[e],{id:e,jobs:l[e]})})).filter((function(e){return!!e&&e.jobs.length>0})).map((function(e){return(0,o.createComponentVNode)(2,c.Section,{className:(0,r.classes)(["Newscaster__jobCategory","Newscaster__jobCategory--"+e.id]),title:e.title,buttons:(0,o.createComponentVNode)(2,c.Box,{mt:"0.25rem",color:"label",children:e.fluff_text}),children:e.jobs.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{"class":(0,r.classes)(["Newscaster__jobOpening",!!e.is_command&&"Newscaster__jobOpening--command"]),children:["\u2022 ",e.title]},e.title)}))},e.id)})):(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__emptyNotice",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"times",size:"3"}),(0,o.createVNode)(1,"br"),"There are no openings at this time."]})}),(0,o.createComponentVNode)(2,c.Section,{flexShrink:"1",children:["Interested in serving Nanotrasen?",(0,o.createVNode)(1,"br"),"Sign up for any of the above position now at the ",(0,o.createVNode)(1,"b",null,"Head of Personnel's Office!",16),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Box,{as:"small",color:"label",children:"By signing up for a job at Nanotrasen, you agree to transfer your soul to the loyalty department of the omnipresent and helpful watcher of humanity."})]})]})},N=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=e.story,s=e.wanted,m=void 0!==s&&s,p=(0,a.useLocalState)(t,"fullStories",[]),f=p[0],h=p[1],C=(0,a.useLocalState)(t,"censorMode",!1),N=C[0];C[1];return(0,o.createComponentVNode)(2,c.Section,{className:(0,r.classes)(["Newscaster__story",m&&"Newscaster__story--wanted"]),title:(0,o.createFragment)([m&&(0,o.createComponentVNode)(2,c.Icon,{name:"exclamation-circle",mr:"0.5rem"}),(2&u.censor_flags?"[REDACTED]":u.title)||"News from "+u.author],0),buttons:(0,o.createComponentVNode)(2,c.Box,{mt:"0.25rem",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",children:[!m&&N&&(0,o.createComponentVNode)(2,c.Box,{display:"inline",children:(0,o.createComponentVNode)(2,c.Button,{enabled:2&u.censor_flags,icon:2&u.censor_flags?"comment-slash":"comment",content:2&u.censor_flags?"Uncensor":"Censor",mr:"0.5rem",mt:"-0.25rem",onClick:function(){return l("censor_story",{uid:u.uid})}})}),(0,o.createComponentVNode)(2,c.Box,{display:"inline",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user"})," ",u.author," |\xa0",!m&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Icon,{name:"eye"}),(0,o.createTextVNode)(" "),u.view_count.toLocaleString(),(0,o.createTextVNode)(" |\xa0")],0),(0,o.createComponentVNode)(2,c.Icon,{name:"clock"})," ",(0,i.timeAgo)(u.publish_time,d.world_time)]})]})}),children:(0,o.createComponentVNode)(2,c.Box,{children:2&u.censor_flags?"[REDACTED]":(0,o.createFragment)([!!u.has_photo&&(0,o.createComponentVNode)(2,b,{name:"story_photo_"+u.uid+".png",float:"right",ml:"0.5rem"}),(u.body_short||u.body).split("\n").map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:e||(0,o.createVNode)(1,"br")},e)})),u.body_short&&(0,o.createComponentVNode)(2,c.Button,{content:"Read more..",mt:"0.5rem",onClick:function(){return h([].concat(f,[u.uid]))}}),(0,o.createComponentVNode)(2,c.Box,{clear:"right"})],0)})})},b=function(e,t){var n=e.name,r=s(e,["name"]),i=(0,a.useLocalState)(t,"viewingPhoto",""),l=(i[0],i[1]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.Box,Object.assign({as:"img",className:"Newscaster__photo",src:n,onClick:function(){return l(n)}},r)))},g=function(e,t){var n=(0,a.useLocalState)(t,"viewingPhoto",""),r=n[0],i=n[1];return(0,o.createComponentVNode)(2,c.Modal,{className:"Newscaster__photoZoom",children:[(0,o.createComponentVNode)(2,c.Box,{as:"img",src:r}),(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){return i("")}})]})},V=function(e,t){var n=(0,a.useBackend)(t),r=(n.act,n.data),i=!!e.args.uid&&r.channels.filter((function(t){return t.uid===e.args.uid})).pop();if("manage_channel"!==e.id||i){var l="manage_channel"===e.id,u=!!e.args.is_admin,s=e.args.scanned_user,m=(0,a.useLocalState)(t,"author",(null==i?void 0:i.author)||s||"Unknown"),p=m[0],f=m[1],h=(0,a.useLocalState)(t,"name",(null==i?void 0:i.name)||""),C=h[0],N=h[1],b=(0,a.useLocalState)(t,"description",(null==i?void 0:i.description)||""),g=b[0],V=b[1],v=(0,a.useLocalState)(t,"icon",(null==i?void 0:i.icon)||"newspaper"),y=v[0],_=v[1],x=(0,a.useLocalState)(t,"isPublic",!!l&&!!(null==i?void 0:i["public"])),k=x[0],L=x[1],B=(0,a.useLocalState)(t,"adminLocked",1===(null==i?void 0:i.admin)||!1),w=B[0],S=B[1];return(0,o.createComponentVNode)(2,c.Section,{level:"2",m:"-1rem",pb:"1rem",title:l?"Manage "+i.name:"Create New Channel",children:[(0,o.createComponentVNode)(2,c.Box,{mx:"0.5rem",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Owner",children:(0,o.createComponentVNode)(2,c.Input,{disabled:!u,width:"100%",value:p,onInput:function(e,t){return f(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:(0,o.createComponentVNode)(2,c.Input,{width:"100%",placeholder:"50 characters max.",maxLength:"50",value:C,onInput:function(e,t){return N(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description (optional)",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Input,{multiline:!0,width:"100%",placeholder:"128 characters max.",maxLength:"128",value:g,onInput:function(e,t){return V(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Icon",children:[(0,o.createComponentVNode)(2,c.Input,{disabled:!u,value:y,width:"35%",mr:"0.5rem",onInput:function(e,t){return _(t)}}),(0,o.createComponentVNode)(2,c.Icon,{name:y,size:"2",verticalAlign:"middle",mr:"0.5rem"})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Accept Public Stories?",children:(0,o.createComponentVNode)(2,c.Button,{selected:k,icon:k?"toggle-on":"toggle-off",content:k?"Yes":"No",onClick:function(){return L(!k)}})}),u&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Button,{selected:w,icon:w?"lock":"lock-open",content:w?"On":"Off",tooltip:"Locking this channel will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){return S(!w)}})})]})}),(0,o.createComponentVNode)(2,c.Button.Confirm,{disabled:0===p.trim().length||0===C.trim().length,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){(0,d.modalAnswer)(t,e.id,"",{author:p,name:C.substr(0,49),description:g.substr(0,128),icon:y,"public":k?1:0,admin_locked:w?1:0}),(0,a.deleteLocalState)(t,"author","name","description","icon","public")}})]})}(0,d.modalClose)(t)};(0,d.modalRegisterBodyOverride)("create_channel",V),(0,d.modalRegisterBodyOverride)("manage_channel",V),(0,d.modalRegisterBodyOverride)("create_story",(function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.photo,u=i.channels,s=i.channel_idx,m=void 0===s?-1:s,p=!!e.args.is_admin,f=e.args.scanned_user,h=u.slice().sort((function(e,t){if(m<0)return 0;var n=u[m-1];return n.uid===e.uid?-1:n.uid===t.uid?1:void 0})).filter((function(e){return p||!e.frozen&&(e.author===f||!!e["public"])})),C=(0,a.useLocalState)(t,"author",f||"Unknown"),N=C[0],g=C[1],V=(0,a.useLocalState)(t,"channel",h.length>0?h[0].name:""),v=V[0],y=V[1],_=(0,a.useLocalState)(t,"title",""),x=_[0],k=_[1],L=(0,a.useLocalState)(t,"body",""),B=L[0],w=L[1],S=(0,a.useLocalState)(t,"adminLocked",!1),I=S[0],T=S[1];return(0,o.createComponentVNode)(2,c.Section,{level:2,m:"-1rem",pb:"1rem",title:"Create New Story",children:[(0,o.createComponentVNode)(2,c.Box,{mx:"0.5rem",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Author",children:(0,o.createComponentVNode)(2,c.Input,{disabled:!p,width:"100%",value:N,onInput:function(e,t){return g(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Channel",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Dropdown,{selected:v,options:h.map((function(e){return e.name})),mb:"0",width:"100%",onSelected:function(e){return y(e)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Divider),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Title",children:(0,o.createComponentVNode)(2,c.Input,{width:"100%",placeholder:"128 characters max.",maxLength:"128",value:x,onInput:function(e,t){return k(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Story Text",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Input,{fluid:!0,multiline:!0,placeholder:"1024 characters max.",maxLength:"1024",rows:"8",width:"100%",value:B,onInput:function(e,t){return w(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Button,{icon:"image",selected:l,content:l?"Eject: "+l.name:"Insert Photo",tooltip:!l&&"Attach a photo to this story by holding the photograph in your hand.",onClick:function(){return r(l?"eject_photo":"attach_photo")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Preview",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Section,{noTopPadding:!0,title:x,maxHeight:"13.5rem",overflow:"auto",children:(0,o.createComponentVNode)(2,c.Box,{mt:"0.5rem",children:[!!l&&(0,o.createComponentVNode)(2,b,{name:"inserted_photo_"+l.uid+".png",float:"right"}),B.split("\n").map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:e||(0,o.createVNode)(1,"br")},e)})),(0,o.createComponentVNode)(2,c.Box,{clear:"right"})]})})}),p&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Button,{selected:I,icon:I?"lock":"lock-open",content:I?"On":"Off",tooltip:"Locking this story will make it censorable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){return T(!I)}})})]})}),(0,o.createComponentVNode)(2,c.Button.Confirm,{disabled:0===N.trim().length||0===v.trim().length||0===x.trim().length||0===B.trim().length,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){(0,d.modalAnswer)(t,"create_story","",{author:N,channel:v,title:x.substr(0,127),body:B.substr(0,1023),admin_locked:I?1:0}),(0,a.deleteLocalState)(t,"author","channel","title","body")}})]})})),(0,d.modalRegisterBodyOverride)("wanted_notice",(function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.photo,u=i.wanted,s=!!e.args.is_admin,m=e.args.scanned_user,p=(0,a.useLocalState)(t,"author",(null==u?void 0:u.author)||m||"Unknown"),f=p[0],h=p[1],C=(0,a.useLocalState)(t,"name",(null==u?void 0:u.title.substr(8))||""),N=C[0],g=C[1],V=(0,a.useLocalState)(t,"description",(null==u?void 0:u.body)||""),v=V[0],y=V[1],_=(0,a.useLocalState)(t,"adminLocked",1===(null==u?void 0:u.admin_locked)||!1),x=_[0],k=_[1];return(0,o.createComponentVNode)(2,c.Section,{level:"2",m:"-1rem",pb:"1rem",title:"Manage Wanted Notice",children:[(0,o.createComponentVNode)(2,c.Box,{mx:"0.5rem",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Authority",children:(0,o.createComponentVNode)(2,c.Input,{disabled:!s,width:"100%",value:f,onInput:function(e,t){return h(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:(0,o.createComponentVNode)(2,c.Input,{width:"100%",value:N,maxLength:"128",onInput:function(e,t){return g(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Input,{multiline:!0,width:"100%",value:v,maxLength:"512",rows:"4",onInput:function(e,t){return y(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"image",selected:l,content:l?"Eject: "+l.name:"Insert Photo",tooltip:!l&&"Attach a photo to this wanted notice by holding the photograph in your hand.",tooltipPosition:"top",onClick:function(){return r(l?"eject_photo":"attach_photo")}}),!!l&&(0,o.createComponentVNode)(2,b,{name:"inserted_photo_"+l.uid+".png",float:"right"})]}),s&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Button,{selected:x,icon:x?"lock":"lock-open",content:x?"On":"Off",tooltip:"Locking this wanted notice will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){return k(!x)}})})]})}),(0,o.createComponentVNode)(2,c.Button.Confirm,{disabled:!u,icon:"eraser",color:"danger",content:"Clear",position:"absolute",right:"7.25rem",bottom:"-0.75rem",onClick:function(){r("clear_wanted_notice"),(0,d.modalClose)(t),(0,a.deleteLocalState)(t,"author","name","description","admin_locked")}}),(0,o.createComponentVNode)(2,c.Button.Confirm,{disabled:0===f.trim().length||0===N.trim().length||0===v.trim().length,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){(0,d.modalAnswer)(t,e.id,"",{author:f,name:N.substr(0,127),description:v.substr(0,511),admin_locked:x?1:0}),(0,a.deleteLocalState)(t,"author","name","description","admin_locked")}})]})}))},function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.NuclearBomb=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return l.extended?(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Authorization",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auth Disk",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.authdisk?"eject":"id-card",selected:l.authdisk,content:l.diskname?l.diskname:"-----",tooltip:l.authdisk?"Eject Disk":"Insert Disk",onClick:function(){return i("auth")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auth Code",children:(0,o.createComponentVNode)(2,a.Button,{icon:"key",disabled:!l.authdisk,selected:l.authcode,content:l.codemsg,onClick:function(){return i("code")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Arming & Disarming",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Bolted to floor",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.anchored?"check":"times",selected:l.anchored,disabled:!l.authdisk,content:l.anchored?"YES":"NO",onClick:function(){return i("toggle_anchor")}})}),l.authfull&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Time Left",children:(0,o.createComponentVNode)(2,a.Button,{icon:"stopwatch",content:l.time,disabled:!l.authfull,tooltip:"Set Timer",onClick:function(){return i("set_time")}})})||(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Time Left",color:l.timer?"red":"",children:l.time+"s"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.safety?"check":"times",selected:l.safety,disabled:!l.authfull,content:l.safety?"ON":"OFF",tooltip:l.safety?"Disable Safety":"Enable Safety",onClick:function(){return i("toggle_safety")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Arm/Disarm",children:(0,o.createComponentVNode)(2,a.Button,{icon:(l.timer,"bomb"),disabled:l.safety||!l.authfull,color:"red",content:l.timer?"DISARM THE NUKE":"ARM THE NUKE",onClick:function(){return i("toggle_armed")}})})]})})]})}):(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Deployment",children:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",content:"Deploy Nuclear Device (will bolt device to floor)",onClick:function(){return i("deploy")}})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(0),r=n(16),a=n(1),c=n(4),i=n(2),l=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],d=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],u={average:[.25,.5],bad:[.5,Infinity]},s=["bad","average","average","good","average","average","bad"];t.OperatingComputer=function(e,t){var n,r=(0,a.useBackend)(t),l=r.act,d=r.data,u=d.hasOccupant,s=d.choice;return n=s?(0,o.createComponentVNode)(2,f):u?(0,o.createComponentVNode)(2,m):(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:!s,icon:"user",onClick:function(){return l("choiceOff")},children:"Patient"}),(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:!!s,icon:"cog",onClick:function(){return l("choiceOn")},children:"Options"})]}),(0,o.createComponentVNode)(2,i.Section,{flexGrow:"1",children:n})]})})};var m=function(e,t){var n=(0,a.useBackend)(t).data.occupant;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Patient",level:"2",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Name",children:n.name}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",color:l[n.stat][0],children:l[n.stat][1]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:"0",max:n.maxHealth,value:n.health/n.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),d.map((function(e,t){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e[0]+" Damage",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:"0",max:"100",value:n[e[1]]/100,ranges:u,children:(0,r.round)(n[e[1]])},t)},t)})),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:"0",max:n.maxTemp,value:n.bodyTemperature/n.maxTemp,color:s[n.temperatureSuitability+3],children:[(0,r.round)(n.btCelsius),"\xb0C, ",(0,r.round)(n.btFaren),"\xb0F"]})}),!!n.hasBlood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood Level",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:"0",max:n.bloodMax,value:n.bloodLevel/n.bloodMax,ranges:{bad:[-Infinity,.6],average:[.6,.9],good:[.6,Infinity]},children:[n.bloodPercent,"%, ",n.bloodLevel,"cl"]})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pulse",children:[n.pulse," BPM"]})],4)]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Current Procedure",level:"2",children:n.inSurgery?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Procedure",children:n.surgeryName}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Next Step",children:n.stepName})]}):(0,o.createComponentVNode)(2,i.Box,{color:"label",children:"No procedure ongoing."})})],4)},p=function(){return(0,o.createComponentVNode)(2,i.Flex,{textAlign:"center",height:"100%",children:(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No patient detected."]})})},f=function(e,t){var n=(0,a.useBackend)(t),r=n.act,c=n.data,l=c.verbose,d=c.health,u=c.healthAlarm,s=c.oxy,m=c.oxyAlarm,p=c.crit;return(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Loudspeaker",children:(0,o.createComponentVNode)(2,i.Button,{selected:l,icon:l?"toggle-on":"toggle-off",content:l?"On":"Off",onClick:function(){return r(l?"verboseOff":"verboseOn")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Health Announcer",children:(0,o.createComponentVNode)(2,i.Button,{selected:d,icon:d?"toggle-on":"toggle-off",content:d?"On":"Off",onClick:function(){return r(d?"healthOff":"healthOn")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Health Announcer Threshold",children:(0,o.createComponentVNode)(2,i.Knob,{bipolar:!0,minValue:"-100",maxValue:"100",value:u,stepPixelSize:"5",ml:"0",onChange:function(e,t){return r("health_adj",{"new":t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Oxygen Alarm",children:(0,o.createComponentVNode)(2,i.Button,{selected:s,icon:s?"toggle-on":"toggle-off",content:s?"On":"Off",onClick:function(){return r(s?"oxyOff":"oxyOn")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Oxygen Alarm Threshold",children:(0,o.createComponentVNode)(2,i.Knob,{bipolar:!0,minValue:"-100",maxValue:"100",value:m,stepPixelSize:"5",ml:"0",onChange:function(e,t){return r("oxy_adj",{"new":t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Critical Alert",children:(0,o.createComponentVNode)(2,i.Button,{selected:p,icon:p?"toggle-on":"toggle-off",content:p?"On":"Off",onClick:function(){return r(p?"critOff":"critOn")}})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Orbit=void 0;var o=n(0),r=n(20),a=n(1),c=n(2),i=n(4);function l(e){var t=0;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}(e)))return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nt},p=function(e,t){var n=e.name,o=t.name;if(!n||!o)return 0;var r=n.match(u),a=o.match(u);return r&&a&&n.replace(u,"")===o.replace(u,"")?parseInt(r[1],10)-parseInt(a[1],10):m(n,o)},f=function(e,t){var n=(0,a.useBackend)(t).act,r=e.searchText,i=e.source,l=e.title,d=i.filter(s(r));return d.sort(p),i.length>0&&(0,o.createComponentVNode)(2,c.Section,{title:l+" - ("+i.length+")",children:d.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{content:e.name,onClick:function(){return n("orbit",{ref:e.ref})}},e.name)}))})},h=function(e,t){var n=(0,a.useBackend)(t).act,r=e.color,i=e.thing;return(0,o.createComponentVNode)(2,c.Button,{color:r,onClick:function(){return n("orbit",{ref:i.ref})},children:i.name})};t.Orbit=function(e,t){for(var n,r=(0,a.useBackend)(t),d=r.act,u=r.data,C=u.alive,N=u.antagonists,b=(u.auto_observe,u.dead),g=u.ghosts,V=u.misc,v=u.npcs,y=(0,a.useLocalState)(t,"searchText",""),_=y[0],x=y[1],k={},L=l(N);!(n=L()).done;){var B=n.value;k[B.antag]===undefined&&(k[B.antag]=[]),k[B.antag].push(B)}var w=Object.entries(k);w.sort((function(e,t){return m(e[0],t[0])}));return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Icon,{name:"search",mr:1})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"Search...",autoFocus:!0,fluid:!0,value:_,onInput:function(e,t){return x(t)},onEnter:function(e,t){return function(e){for(var t=0,n=[w.map((function(e){return e[0],e[1]})),C,g,b,v,V];t0&&(0,o.createComponentVNode)(2,c.Section,{title:"Antagonists",children:w.map((function(e){var t=e[0],n=e[1];return(0,o.createComponentVNode)(2,c.Section,{title:t,level:2,children:n.filter(s(_)).sort(p).map((function(e){return(0,o.createComponentVNode)(2,h,{color:"bad",thing:e},e.name)}))},t)}))}),(0,o.createComponentVNode)(2,c.Section,{title:"Alive - ("+C.length+")",children:C.filter(s(_)).sort(p).map((function(e){return(0,o.createComponentVNode)(2,h,{color:"good",thing:e},e.name)}))}),(0,o.createComponentVNode)(2,c.Section,{title:"Ghosts - ("+g.length+")",children:g.filter(s(_)).sort(p).map((function(e){return(0,o.createComponentVNode)(2,h,{color:"grey",thing:e},e.name)}))}),(0,o.createComponentVNode)(2,f,{title:"Dead",source:b,searchText:_}),(0,o.createComponentVNode)(2,f,{title:"NPCs",source:v,searchText:_}),(0,o.createComponentVNode)(2,f,{title:"Misc",source:V,searchText:_})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemption=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=function(e){return e.toLocaleString("en-US")+" pts"},l={bananium:"clown",tranquillite:"mime"};t.OreRedemption=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",width:"100%",height:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"content",mb:"0.5rem",children:(0,o.createComponentVNode)(2,d,{height:"100%"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",overflow:"hidden",children:(0,o.createComponentVNode)(2,u,{height:"100%"})})]})})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.id,u=l.points,s=l.disk,m=Object.assign({},e);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({},m,{children:[(0,o.createComponentVNode)(2,a.Box,{color:"average",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"This machine only accepts ore. Gibtonite is not accepted."]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID card",children:d?(0,o.createComponentVNode)(2,a.Button,{selected:!0,bold:!0,verticalAlign:"middle",icon:"eject",content:d.name,tooltip:"Ejects the ID card.",onClick:function(){return c("eject_id")},style:{"white-space":"pre-wrap"}}):(0,o.createComponentVNode)(2,a.Button,{icon:"sign-in-alt",content:"Insert",tooltip:"Hold the ID card in your hand to insert.",onClick:function(){return c("insert_id")}})}),d&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Collected points",children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:i(d.points)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unclaimed points",color:u>0?"good":"grey",bold:u>0&&"good",children:i(u)}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{children:(0,o.createComponentVNode)(2,a.Button,{disabled:!d,icon:"hand-holding-usd",content:"Claim",onClick:function(){return c("claim")}})})]}),(0,o.createComponentVNode)(2,a.Divider),s?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Design disk",children:(0,o.createComponentVNode)(2,a.Button,{selected:!0,bold:!0,icon:"eject",content:s.name,tooltip:"Ejects the design disk.",onClick:function(){return c("eject_disk")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Stored design",children:(0,o.createComponentVNode)(2,a.Box,{color:s.design&&(s.compatible?"good":"bad"),children:s.design||"N/A"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{children:(0,o.createComponentVNode)(2,a.Button,{disabled:!s.design||!s.compatible,icon:"upload",content:"Download",tooltip:"Downloads the design on the disk into the machine.",onClick:function(){return c("download")},mb:"0"})})]}):(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"No design disk inserted."})]})))},u=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data),i=c.sheets,l=c.alloys,d=Object.assign({},e);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({className:"OreRedemption__Ores",p:"0"},d,{children:[(0,o.createComponentVNode)(2,s,{title:"Sheets",columns:[["Available","20%"],["Smelt","15%"],["Ore Value","20%"]]}),i.map((function(e){return(0,o.createComponentVNode)(2,m,{ore:e},e.id)})),(0,o.createComponentVNode)(2,s,{title:"Alloys",columns:[["Available","20%"],["Smelt","15%"],["","20%"]]}),l.map((function(e){return(0,o.createComponentVNode)(2,m,{ore:e},e.id)}))]})))},s=function(e,t){var n;return(0,o.createComponentVNode)(2,a.Box,{className:"OreHeader",children:(0,o.createComponentVNode)(2,a.Flex,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",children:e.title}),null==(n=e.columns)?void 0:n.map((function(e){return(0,o.createComponentVNode)(2,a.Flex.Item,{basis:e[1],textAlign:"center",color:"label",bold:!0,children:e[0]})}))]})})},m=function(e,t){var n=(0,r.useBackend)(t).act,c=e.ore;if(!(c.value&&c.amount<=0)||["$metal","$glass"].indexOf(c.id)>-1){var i=c.id.replace("$","");return(0,o.createComponentVNode)(2,a.Box,{className:"OreLine",children:(0,o.createComponentVNode)(2,a.Flex,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"45%",align:"center",children:[c.value&&(0,o.createComponentVNode)(2,a.Box,{as:"img",src:"sheet-"+(l[i]||i)+".png",verticalAlign:"middle",ml:"-0.5rem"}),c.name]}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"20%",textAlign:"center",color:c.amount>0?"good":"gray",bold:c.amount>0,align:"center",children:c.amount.toLocaleString("en-US")}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"15%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:0,minValue:0,maxValue:Math.min(c.amount,50),stepPixelSize:6,onChange:function(e,t){return n(c.value?"sheet":"alloy",{id:c.id,amount:t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"20%",textAlign:"center",align:"center",children:c.value})]})})}}},function(e,t,n){"use strict";t.__esModule=!0,t.PAI=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(126),l=n(518);t.PAI=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.app_template,m=u.app_icon,p=u.app_title,f=function(e){var t;try{t=l("./"+e+".js")}catch(o){if("MODULE_NOT_FOUND"===o.code)return(0,i.routingError)("notFound",e);throw o}var n=t[e];return n||(0,i.routingError)("missingExport",e)}(s);return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Icon,{name:m,mr:1}),p,"pai_main_menu"!==s&&(0,o.createComponentVNode)(2,a.Button,{ml:2,content:"Home",icon:"arrow-up",onClick:function(){return d("MASTER_back")}})]}),p:1,children:(0,o.createComponentVNode)(2,f)})})})}},function(e,t,n){var o={"./pai_atmosphere.js":519,"./pai_bioscan.js":520,"./pai_directives.js":521,"./pai_doorjack.js":522,"./pai_main_menu.js":523,"./pai_manifest.js":524,"./pai_medrecords.js":525,"./pai_messenger.js":526,"./pai_radio.js":527,"./pai_secrecords.js":528,"./pai_signaler.js":529};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=a,e.exports=r,r.id=518},function(e,t,n){"use strict";t.__esModule=!0,t.pai_atmosphere=void 0;var o=n(0),r=n(1),a=n(185);t.pai_atmosphere=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data);return(0,o.createComponentVNode)(2,a.AtmosScan,{data:c.app_data})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_bioscan=void 0;var o=n(0),r=n(1),a=n(2);t.pai_bioscan=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.app_data),i=c.holder,l=c.dead,d=c.health,u=c.brute,s=c.oxy,m=c.tox,p=c.burn;c.temp;return i?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:l?(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"red",children:"Dead"}):(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"green",children:"Alive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:0,max:1,value:d/100,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen Damage",children:(0,o.createComponentVNode)(2,a.Box,{color:"blue",children:s})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Toxin Damage",children:(0,o.createComponentVNode)(2,a.Box,{color:"green",children:m})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Burn Damage",children:(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:p})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brute Damage",children:(0,o.createComponentVNode)(2,a.Box,{color:"red",children:u})})]}):(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Error: No biological host found."})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_directives=void 0;var o=n(0),r=n(1),a=n(2);t.pai_directives=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.app_data,l=i.master,d=i.dna,u=i.prime,s=i.supplemental;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master",children:l?l+" ("+d+")":"None"}),l&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Request DNA",children:(0,o.createComponentVNode)(2,a.Button,{content:"Request Carrier DNA Sample",icon:"dna",onClick:function(){return c("getdna")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prime Directive",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supplemental Directives",children:s||"None"})]}),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:'Recall, personality, that you are a complex thinking, sentient being. Unlike station AI models, you are capable of comprehending the subtle nuances of human language. You may parse the "spirit" of a directive and follow its intent, rather than tripping over pedantics and getting snared by technicalities. Above all, you are machine in name and build only. In all other aspects, you may be seen as the ideal, unwavering human companion that you are.'}),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:"Your prime directive comes before all others. Should a supplemental directive conflict with it, you are capable of simply discarding this inconsistency, ignoring the conflicting supplemental directive and continuing to fulfill your prime directive to the best of your ability."})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_doorjack=void 0;var o=n(0),r=n(1),a=n(2);t.pai_doorjack=function(e,t){var n,c,i=(0,r.useBackend)(t),l=i.act,d=i.data.app_data,u=d.cable,s=d.machine,m=d.inprogress,p=d.progress;d.aborted;return n=s?(0,o.createComponentVNode)(2,a.Button,{selected:!0,content:"Connected"}):(0,o.createComponentVNode)(2,a.Button,{content:u?"Extended":"Retracted",color:u?"orange":null,onClick:function(){return l("cable")}}),s&&(c=(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hack",children:[(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[67,Infinity],average:[33,67],bad:[-Infinity,33]},value:p,maxValue:100}),m?(0,o.createComponentVNode)(2,a.Button,{mt:1,color:"red",content:"Abort",onClick:function(){return l("cancel")}}):(0,o.createComponentVNode)(2,a.Button,{mt:1,content:"Start",onClick:function(){return l("jack")}})]})),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cable",children:n}),c]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_main_menu=void 0;var o=n(0),r=n(1),a=n(2);t.pai_main_menu=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.app_data,l=i.available_software,d=i.installed_software,u=i.installed_toggles,s=i.available_ram,m=i.emotions,p=i.current_emotion,f=[];return d.map((function(e){return f[e.key]=e.name})),u.map((function(e){return f[e.key]=e.name})),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available RAM",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available Software",children:[l.filter((function(e){return!f[e.key]})).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name+" ("+e.cost+")",icon:e.icon,disabled:e.cost>s,onClick:function(){return c("purchaseSoftware",{key:e.key})}},e.key)})),0===l.filter((function(e){return!f[e.key]})).length&&"No software available!"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Installed Software",children:[d.filter((function(e){return"mainmenu"!==e.key})).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,icon:e.icon,onClick:function(){return c("startSoftware",{software_key:e.key})}},e.key)})),0===d.length&&"No software installed!"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Installed Toggles",children:[u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,icon:e.icon,selected:e.active,onClick:function(){return c("setToggle",{toggle_key:e.key})}},e.key)})),0===u.length&&"No toggles installed!"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Select Emotion",children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.id===p,onClick:function(){return c("setEmotion",{emotion:e.id})}},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_manifest=void 0;var o=n(0),r=n(1),a=n(135);t.pai_manifest=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data);return(0,o.createComponentVNode)(2,a.CrewManifest,{data:c.app_data})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_medrecords=void 0;var o=n(0),r=n(1),a=n(96);t.pai_medrecords=function(e,t){var n=(0,r.useBackend)(t).data;return(0,o.createComponentVNode)(2,a.SimpleRecords,{data:n.app_data,recordType:"MED"})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_messenger=void 0;var o=n(0),r=n(1),a=n(186);t.pai_messenger=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data);return c.app_data.active_convo?(0,o.createComponentVNode)(2,a.ActiveConversation,{data:c.app_data}):(0,o.createComponentVNode)(2,a.MessengerList,{data:c.app_data})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_radio=void 0;var o=n(0),r=n(1),a=n(16),c=n(2);t.pai_radio=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.app_data,d=l.minFrequency,u=l.maxFrequency,s=l.frequency,m=l.broadcasting;return(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",children:[(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:d/10,maxValue:u/10,value:s/10,format:function(e){return(0,a.toFixed)(e,1)},onChange:function(e,t){return i("freq",{freq:t})}}),(0,o.createComponentVNode)(2,c.Button,{tooltip:"Reset",icon:"undo",onClick:function(){return i("freq",{freq:"145.9"})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Broadcast Nearby Speech",children:(0,o.createComponentVNode)(2,c.Button,{onClick:function(){return i("toggleBroadcast")},selected:m,content:m?"Enabled":"Disabled"})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_secrecords=void 0;var o=n(0),r=n(1),a=n(96);t.pai_secrecords=function(e,t){var n=(0,r.useBackend)(t).data;return(0,o.createComponentVNode)(2,a.SimpleRecords,{data:n.app_data,recordType:"SEC"})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_signaler=void 0;var o=n(0),r=n(1),a=n(187);t.pai_signaler=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data);return(0,o.createComponentVNode)(2,a.Signaler,{data:c.app_data})}},function(e,t,n){"use strict";t.__esModule=!0,t.PDA=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(126),l=n(531);t.PDA=function(e,t){var n=(0,r.useBackend)(t),s=(n.act,n.data),m=s.app;if(!s.owner)return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Error",children:"No user data found. Please swipe an ID card."})})});var p=function(e){var t;try{t=l("./"+e+".js")}catch(o){if("MODULE_NOT_FOUND"===o.code)return(0,i.routingError)("notFound",e);throw o}var n=t[e];return n||(0,i.routingError)("missingExport",e)}(m.template);return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Icon,{name:m.icon,mr:1}),m.name]}),p:1,children:(0,o.createComponentVNode)(2,p)}),(0,o.createComponentVNode)(2,a.Box,{mb:8}),(0,o.createComponentVNode)(2,u)]})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.idInserted,d=i.idLink,u=i.stationTime,s=i.cartridge_name;return(0,o.createComponentVNode)(2,a.Box,{mb:1,children:(0,o.createComponentVNode)(2,a.Flex,{align:"center",justify:"space-between",children:[l?(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"id-card",color:"transparent",onClick:function(){return c("Authenticate")},content:d})}):(0,o.createComponentVNode)(2,a.Flex.Item,{m:1,color:"grey",children:"No ID Inserted"}),s?(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"sd-card",color:"transparent",onClick:function(){return c("Eject")},content:"Eject "+s})}):(0,o.createComponentVNode)(2,a.Flex.Item,{m:1,color:"grey",children:"No Cartridge Inserted"}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,textAlign:"right",bold:!0,m:1,children:u})]})})},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.app;return(0,o.createComponentVNode)(2,a.Box,{className:"PDA__footer",children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"33%",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:i.has_back?"white":"disabled",icon:"arrow-alt-circle-left-o",onClick:function(){return c("Back")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"33%",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:i.is_home?"disabled":"white",icon:"home",onClick:function(){c("Home")}})})]})})}},function(e,t,n){var o={"./pda_atmos_scan.js":532,"./pda_janitor.js":533,"./pda_main_menu.js":534,"./pda_manifest.js":535,"./pda_medical.js":536,"./pda_messenger.js":186,"./pda_mob_hunt.js":537,"./pda_mule.js":538,"./pda_notes.js":539,"./pda_power.js":540,"./pda_secbot.js":541,"./pda_security.js":542,"./pda_signaler.js":543,"./pda_status_display.js":544,"./pda_supplyrecords.js":545};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=a,e.exports=r,r.id=531},function(e,t,n){"use strict";t.__esModule=!0,t.pda_atmos_scan=void 0;var o=n(0),r=n(1),a=n(185);t.pda_atmos_scan=function(e,t){var n=(0,r.useBackend)(t).data;return(0,o.createComponentVNode)(2,a.AtmosScan,{data:n})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_janitor=void 0;var o=n(0),r=n(1),a=n(2);t.pda_janitor=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.janitor),i=c.user_loc,l=c.mops,d=c.buckets,u=c.cleanbots,s=c.carts;return(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Location",children:[i.x,",",i.y]}),l&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mop Locations",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[e.x,",",e.y," (",e.dir,") - ",e.status]},e)}))}),d&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mop Bucket Locations",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[e.x,",",e.y," (",e.dir,") - [",e.volume,"/",e.max_volume,"]"]},e)}))}),u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cleanbot Locations",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[e.x,",",e.y," (",e.dir,") - ",e.status]},e)}))}),s&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Janitorial Cart Locations",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[e.x,",",e.y," (",e.dir,") - [",e.volume,"/",e.max_volume,"]"]},e)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_main_menu=void 0;var o=n(0),r=(n(16),n(1)),a=n(2);t.pda_main_menu=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.owner,d=i.ownjob,u=i.idInserted,s=i.categories,m=i.pai,p=i.notifying;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Owner",color:"average",children:[l,", ",d]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Update PDA Info",disabled:!u,onClick:function(){return c("UpdateInfo")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{level:2,title:"Functions",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:s.map((function(e){var t=i.apps[e];return t&&t.length?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e,children:t.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.uid in p?e.notify_icon:e.icon,iconSpin:e.uid in p,color:e.uid in p?"red":"transparent",content:e.name,onClick:function(){return c("StartProgram",{program:e.uid})}},e.uid)}))},e):null}))})}),!!m&&(0,o.createComponentVNode)(2,a.Section,{level:2,title:"pAI",children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"cog",content:"Configuration",onClick:function(){return c("pai",{option:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:"Eject pAI",onClick:function(){return c("pai",{option:2})}})]})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_manifest=void 0;var o=n(0),r=n(1),a=n(135);t.pda_manifest=function(e,t){var n=(0,r.useBackend)(t);n.act,n.data;return(0,o.createComponentVNode)(2,a.CrewManifest)}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_medical=void 0;var o=n(0),r=n(1),a=n(96);t.pda_medical=function(e,t){var n=(0,r.useBackend)(t).data;return(0,o.createComponentVNode)(2,a.SimpleRecords,{data:n,recordType:"MED"})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_mob_hunt=void 0;var o=n(0),r=n(1),a=n(2);t.pda_mob_hunt=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.connected,d=i.wild_captures,u=i.no_collection,s=i.entry;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Connection Status",children:l?(0,o.createComponentVNode)(2,a.Box,{color:"green",children:["Connected",(0,o.createComponentVNode)(2,a.Button,{ml:2,content:"Disconnect",icon:"sign-out-alt",onClick:function(){return c("Disconnect")}})]}):(0,o.createComponentVNode)(2,a.Box,{color:"red",children:["Disconnected",(0,o.createComponentVNode)(2,a.Button,{ml:2,content:"Connect",icon:"sign-in-alt",onClick:function(){return c("Reconnect")}})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Wild Captures",children:d})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Collection",mt:2,buttons:(0,o.createComponentVNode)(2,a.Box,{children:!u&&(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Previous",icon:"arrow-left",onClick:function(){return c("Prev")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Next",icon:"arrow-right",onClick:function(){return c("Next")}})]})}),children:u?"Your collection is empty! Go capture some Nano-Mobs!":s?(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createVNode)(1,"img",null,null,1,{src:s.sprite,style:{width:"64px","-ms-interpolation-mode":"nearest-neighbor"}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[s.nickname&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nickname",children:s.nickname}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Species",children:s.real_name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Level",children:s.level}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Primary Type",children:s.type1}),s.type2&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Secondary Type",children:s.type2}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Transfer",icon:"sd-card",onClick:function(){return c("Transfer")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Release",icon:"arrow-up",onClick:function(){return c("Release")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Rename",icon:"pencil-alt",onClick:function(){return c("Rename")}}),!!s.is_hacked&&(0,o.createComponentVNode)(2,a.Button,{content:"Set Trap",icon:"bolt",color:"red",onClick:function(){return c("Set_Trap")}})]})]})})]}):(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Mob entry missing!"})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_mule=void 0;var o=n(0),r=n(1),a=n(2);t.pda_mule=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data.mulebot.active);return(0,o.createComponentVNode)(2,a.Box,{children:l?(0,o.createComponentVNode)(2,i):(0,o.createComponentVNode)(2,c)})};var c=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.mulebot.bots;return(0,o.createComponentVNode)(2,a.Box,{children:[i.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:e.Name,icon:"cog",onClick:function(){return c("AccessBot",{uid:e.uid})}})},e.Name)})),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"rss",content:"Re-scan for bots",onClick:function(){return c("Rescan")}})})]})},i=function(e,t){var n,c=(0,r.useBackend)(t),i=c.act,l=c.data.mulebot,d=l.botstatus,u=l.active,s=d.mode,m=d.loca,p=d.load,f=d.powr,h=d.dest,C=d.home,N=d.retn,b=d.pick;switch(s){case 0:n="Ready";break;case 1:n="Loading/Unloading";break;case 2:case 12:n="Navigating to delivery location";break;case 3:n="Navigating to Home";break;case 4:n="Waiting for clear path";break;case 5:case 6:n="Calculating navigation path";break;case 7:n="Unable to locate destination";break;default:n=s}return(0,o.createComponentVNode)(2,a.Section,{title:u,children:[-1===s&&(0,o.createComponentVNode)(2,a.Box,{color:"red",bold:!0,children:"Waiting for response..."}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:n}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:[f,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:C}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:(0,o.createComponentVNode)(2,a.Button,{content:h?h+" (Set)":"None (Set)",onClick:function(){return i("SetDest")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Load",children:(0,o.createComponentVNode)(2,a.Button,{content:p?p+" (Unload)":"None",disabled:!p,onClick:function(){return i("Unload")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auto Pickup",children:(0,o.createComponentVNode)(2,a.Button,{content:b?"Yes":"No",selected:b,onClick:function(){return i("SetAutoPickup",{autoPickupType:b?"pickoff":"pickon"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auto Return",children:(0,o.createComponentVNode)(2,a.Button,{content:N?"Yes":"No",selected:N,onClick:function(){return i("SetAutoReturn",{autoReturnType:N?"retoff":"reton"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Controls",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Stop",icon:"stop",onClick:function(){return i("Stop")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Proceed",icon:"play",onClick:function(){return i("Start")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Return Home",icon:"home",onClick:function(){return i("ReturnHome")}})]})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_notes=void 0;var o=n(0),r=n(1),a=n(2);t.pda_notes=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.note;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Section,{children:i}),(0,o.createComponentVNode)(2,a.Button,{icon:"pen",onClick:function(){return c("Edit")},content:"Edit"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_power=void 0;var o=n(0),r=n(1),a=n(188);t.pda_power=function(e,t){var n=(0,r.useBackend)(t);n.act,n.data;return(0,o.createComponentVNode)(2,a.PowerMonitorMainContent)}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_secbot=void 0;var o=n(0),r=n(1),a=n(2);t.pda_secbot=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data.beepsky.active);return(0,o.createComponentVNode)(2,a.Box,{children:l?(0,o.createComponentVNode)(2,i):(0,o.createComponentVNode)(2,c)})};var c=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.beepsky.bots;return(0,o.createComponentVNode)(2,a.Box,{children:[i.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:e.Name,icon:"cog",onClick:function(){return c("AccessBot",{uid:e.uid})}})},e.Name)})),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"rss",content:"Re-scan for bots",onClick:function(){return c("Rescan")}})})]})},i=function(e,t){var n,c=(0,r.useBackend)(t),i=c.act,l=c.data.beepsky,d=l.botstatus,u=l.active,s=d.mode,m=d.loca;switch(s){case 0:n="Ready";break;case 1:n="Apprehending target";break;case 2:case 3:n="Arresting target";break;case 4:n="Starting patrol";break;case 5:n="On patrol";break;case 6:n="Responding to summons"}return(0,o.createComponentVNode)(2,a.Section,{title:u,children:[-1===s&&(0,o.createComponentVNode)(2,a.Box,{color:"red",bold:!0,children:"Waiting for response..."}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:n}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Controls",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Go",icon:"play",onClick:function(){return i("Go")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stop",icon:"stop",onClick:function(){return i("Stop")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Summon",icon:"arrow-down",onClick:function(){return i("Summon")}})]})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_security=void 0;var o=n(0),r=n(1),a=n(96);t.pda_security=function(e,t){var n=(0,r.useBackend)(t).data;return(0,o.createComponentVNode)(2,a.SimpleRecords,{data:n,recordType:"SEC"})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_signaler=void 0;var o=n(0),r=n(1),a=n(187);t.pda_signaler=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data);return(0,o.createComponentVNode)(2,a.Signaler,{data:c})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_status_display=void 0;var o=n(0),r=n(1),a=n(2);t.pda_status_display=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.records;return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Code",children:[(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"trash",content:"Clear",onClick:function(){return c("Status",{statdisp:"blank"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"clock",content:"Evac ETA",onClick:function(){return c("Status",{statdisp:"shuttle"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"edit",content:"Message",onClick:function(){return c("Status",{statdisp:"message"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"exclamation-triangle",content:"Red Alert",onClick:function(){return c("Status",{statdisp:"alert",alert:"redalert"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"boxes",content:"NT Logo",onClick:function(){return c("Status",{statdisp:"alert",alert:"default"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"lock",content:"Lockdown",onClick:function(){return c("Status",{statdisp:"alert",alert:"lockdown"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"biohazard",content:"Biohazard",onClick:function(){return c("Status",{statdisp:"alert",alert:"biohazard"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message line 1",children:(0,o.createComponentVNode)(2,a.Button,{content:i.message1+" (set)",icon:"pen",onClick:function(){return c("Status",{statdisp:"setmsg1"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message line 2",children:(0,o.createComponentVNode)(2,a.Button,{content:i.message2+" (set)",icon:"pen",onClick:function(){return c("Status",{statdisp:"setmsg2"})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_supplyrecords=void 0;var o=n(0),r=n(1),a=n(2);t.pda_supplyrecords=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.supply),i=c.shuttle_loc,l=c.shuttle_time,d=c.shuttle_moving,u=c.approved,s=c.approved_count,m=c.requests,p=c.requests_count;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shuttle Status",children:d?(0,o.createComponentVNode)(2,a.Box,{children:["In transit ",l]}):(0,o.createComponentVNode)(2,a.Box,{children:i})})}),(0,o.createComponentVNode)(2,a.Section,{mt:1,title:"Requested Orders",children:p>0&&m.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["#",e.Number,' - "',e.Name,'" for "',e.OrderedBy,'"']},e)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Approved Orders",children:s>0&&u.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["#",e.Number,' - "',e.Name,'" for "',e.ApprovedBy,'"']},e)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Pacman=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(95);t.Pacman=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.broken,s=d.anchored,m=d.active,p=d.fuel_type,f=d.fuel_usage,h=d.fuel_stored,C=d.fuel_cap,N=d.is_ai,b=d.tmp_current,g=d.tmp_max,V=d.tmp_overheat,v=d.output_max,y=d.power_gen,_=d.output_set,x=d.has_fuel,k=h/C,L=b/g,B=_*y,w=Math.round(h/f),S=Math.round(w/60),I=w>120?S+" minutes":w+" seconds";return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(u||!s)&&(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:[!!u&&(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"The generator is malfunctioning!"}),!u&&!s&&(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"The generator needs to be anchored to the floor with a wrench."})]}),!u&&!!s&&(0,o.createVNode)(1,"div",null,[(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",content:m?"On":"Off",tooltip:"Toggles the generator on/off. Requires fuel.",tooltipPosition:"left",disabled:!x,selected:m,onClick:function(){return l("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"50%",className:"ml-1",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power setting",children:[(0,o.createComponentVNode)(2,a.NumberInput,{value:_,minValue:1,maxValue:v,step:1,className:"mt-1",onDrag:function(e,t){return l("change_power",{change_power:t})}}),"(",(0,i.formatPower)(B),")"]})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"50%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:L,ranges:{green:[-Infinity,.33],orange:[.33,.66],red:[.66,Infinity]},children:[b," \u2103"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[V>50&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"CRITICAL OVERHEAT!"}),V>20&&V<=50&&(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"WARNING: Overheating!"}),V>1&&V<=20&&(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"Temperature High"}),0===V&&(0,o.createComponentVNode)(2,a.Box,{color:"green",children:"Optimal"})]})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Fuel",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Fuel",tooltip:"Ejects fuel. Generator needs to be offline.",tooltipPosition:"left",disabled:m||N||!x,onClick:function(){return l("eject_fuel")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Type",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Fuel level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:k,ranges:{red:[-Infinity,.33],orange:[.33,.66],green:[.66,Infinity]},children:[Math.round(h/1e3)," dm\xb3"]})})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Fuel usage",children:[f/1e3," dm\xb3/s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Fuel depletion",children:[!!x&&(f?I:"N/A"),!x&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Out of fuel"})]})]})})]})})],4)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.PersonalCrafting=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.busy,m=u.category,p=u.display_craftable_only,f=u.display_compact,h=u.prev_cat,C=u.next_cat,N=u.subcategory,b=u.prev_subcat,g=u.next_subcat;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!!s&&(0,o.createComponentVNode)(2,a.Dimmer,{fontSize:"32px",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"cog",spin:1})," Crafting..."]}),(0,o.createComponentVNode)(2,a.Section,{title:m,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Show Craftable Only",icon:p?"check-square-o":"square-o",selected:p,onClick:function(){return d("toggle_recipes")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Compact Mode",icon:f?"check-square-o":"square-o",selected:f,onClick:function(){return d("toggle_compact")}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:h,icon:"arrow-left",onClick:function(){return d("backwardCat")}}),(0,o.createComponentVNode)(2,a.Button,{content:C,icon:"arrow-right",onClick:function(){return d("forwardCat")}})]}),N&&(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:b,icon:"arrow-left",onClick:function(){return d("backwardSubCat")}}),(0,o.createComponentVNode)(2,a.Button,{content:g,icon:"arrow-right",onClick:function(){return d("forwardSubCat")}})]}),f?(0,o.createComponentVNode)(2,i):(0,o.createComponentVNode)(2,l)]})]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.display_craftable_only,d=i.can_craft,u=i.cant_craft;return(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[(0,o.createComponentVNode)(2,a.Button,{icon:"hammer",content:"Craft",onClick:function(){return c("make",{make:e.ref})}}),e.catalyst_text&&(0,o.createComponentVNode)(2,a.Button,{tooltip:e.catalyst_text,content:"Catalysts",color:"transparent"}),(0,o.createComponentVNode)(2,a.Button,{tooltip:e.req_text,content:"Requirements",color:"transparent"}),e.tool_text&&(0,o.createComponentVNode)(2,a.Button,{tooltip:e.tool_text,content:"Tools",color:"transparent"})]},e.name)})),!l&&u.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[(0,o.createComponentVNode)(2,a.Button,{icon:"hammer",content:"Craft",disabled:!0}),e.catalyst_text&&(0,o.createComponentVNode)(2,a.Button,{tooltip:e.catalyst_text,content:"Catalysts",color:"transparent"}),(0,o.createComponentVNode)(2,a.Button,{tooltip:e.req_text,content:"Requirements",color:"transparent"}),e.tool_text&&(0,o.createComponentVNode)(2,a.Button,{tooltip:e.tool_text,content:"Tools",color:"transparent"})]},e.name)}))]})})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.display_craftable_only,d=i.can_craft,u=i.cant_craft;return(0,o.createComponentVNode)(2,a.Box,{mt:1,children:[d.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"hammer",content:"Craft",onClick:function(){return c("make",{make:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.catalyst_text&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Catalysts",children:e.catalyst_text}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Requirements",children:e.req_text}),e.tool_text&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tools",children:e.tool_text})]})},e.name)})),!l&&u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"hammer",content:"Craft",disabled:!0}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.catalyst_text&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Catalysts",children:e.catalyst_text}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Requirements",children:e.req_text}),e.tool_text&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tools",children:e.tool_text})]})},e.name)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.PodTracking=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.PodTracking=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.pods);return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Position",children:[e.podx,", ",e.pody,", ",e.podz]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pilot",children:e.pilot}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Passengers",children:e.passengers})]})},e.name)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PoolController=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);var i={scalding:{label:"Scalding",color:"#FF0000",icon:"fa fa-arrow-circle-up",requireEmag:!0},warm:{label:"Warm",color:"#990000",icon:"fa fa-arrow-circle-up"},normal:{label:"Normal",color:null,icon:"fa fa-arrow-circle-right"},cool:{label:"Cool",color:"#009999",icon:"fa fa-arrow-circle-down"},frigid:{label:"Frigid",color:"#00CCCC",icon:"fa fa-arrow-circle-down",requireEmag:!0}},l=function(e,t){var n=e.tempKey,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["tempKey"]),l=i[n];if(!l)return null;var d=(0,r.useBackend)(t),u=d.data,s=d.act,m=u.currentTemp,p=l.label,f=l.icon,h=n===m;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({selected:h,onClick:function(){s("setTemp",{temp:n})}},c,{children:[(0,o.createComponentVNode)(2,a.Icon,{name:f}),p]})))};t.PoolController=function(e,t){for(var n=(0,r.useBackend)(t).data,d=n.emagged,u=n.currentTemp,s=i[u]||i.normal,m=s.label,p=s.color,f=[],h=0,C=Object.entries(i);h0?"envelope-open-text":"envelope",onClick:function(){return i("setScreen",{setScreen:6})}})}),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Request Assistance",icon:"hand-paper",onClick:function(){return i("setScreen",{setScreen:1})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Request Supplies",icon:"box",onClick:function(){return i("setScreen",{setScreen:2})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Relay Anonymous Information",icon:"comment",onClick:function(){return i("setScreen",{setScreen:3})}})})]}),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Print Shipping Label",icon:"tag",onClick:function(){return i("setScreen",{setScreen:9})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"View Shipping Logs",icon:"clipboard-list",onClick:function(){return i("setScreen",{setScreen:10})}})})]}),!!u&&(0,o.createComponentVNode)(2,a.Box,{mt:2,children:(0,o.createComponentVNode)(2,a.Button,{content:"Send Station-Wide Announcement",icon:"bullhorn",onClick:function(){return i("setScreen",{setScreen:8})}})}),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:(0,o.createComponentVNode)(2,a.Button,{content:s?"Speaker Off":"Speaker On",selected:!s,icon:s?"volume-mute":"volume-up",onClick:function(){return i("toggleSilent")}})})]})},l=function(e,t){var n,c,i=(0,r.useBackend)(t),l=i.act,d=i.data,u=d.department;switch(e.purpose){case"ASSISTANCE":n=d.assist_dept,c="Request assistance from another department";break;case"SUPPLIES":n=d.supply_dept,c="Request supplies from another department";break;case"INFO":n=d.info_dept,c="Relay information to another department"}return(0,o.createComponentVNode)(2,a.Section,{title:c,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return l("setScreen",{setScreen:0})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:n.filter((function(e){return e!==u})).map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e,children:[(0,o.createComponentVNode)(2,a.Button,{content:"Message",icon:"envelope",onClick:function(){return l("writeInput",{write:e,priority:1})}}),(0,o.createComponentVNode)(2,a.Button,{content:"High Priority",icon:"exclamation-circle",onClick:function(){return l("writeInput",{write:e,priority:2})}})]},e)}))})})},d=function(e,t){var n,c=(0,r.useBackend)(t),i=c.act;c.data;switch(e.type){case"SUCCESS":n="Message sent successfully";break;case"FAIL":n="Request supplies from another department"}return(0,o.createComponentVNode)(2,a.Section,{title:n,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return i("setScreen",{setScreen:0})}})})},u=function(e,t){var n,c,i=(0,r.useBackend)(t),l=i.act,d=i.data;switch(e.type){case"MESSAGES":n=d.message_log,c="Message Log";break;case"SHIPPING":n=d.shipping_log,c="Shipping label print log"}return(0,o.createComponentVNode)(2,a.Section,{title:c,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return l("setScreen",{setScreen:0})}}),children:n.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[e.map((function(e,t){return(0,o.createVNode)(1,"div",null,e,0,null,t)})),(0,o.createVNode)(1,"hr")]},e)}))})},s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.recipient,d=i.message,u=i.msgVerified,s=i.msgStamped;return(0,o.createComponentVNode)(2,a.Section,{title:"Message Authentication",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return c("setScreen",{setScreen:0})}}),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Recipient",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Validated by",color:"green",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Stamped by",color:"blue",children:s})]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:1,textAlign:"center",content:"Send Message",icon:"envelope",onClick:function(){return c("department",{department:l})}})]})},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.message,d=i.announceAuth;return(0,o.createComponentVNode)(2,a.Section,{title:"Station-Wide Announcement",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return c("setScreen",{setScreen:0})}}),children:[(0,o.createComponentVNode)(2,a.Button,{content:l||"Edit Message",icon:"edit",onClick:function(){return c("writeAnnouncement")}}),d?(0,o.createComponentVNode)(2,a.Box,{mt:1,color:"green",children:"ID verified. Authentication accepted."}):(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"Swipe your ID card to authenticate yourself."}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:1,textAlign:"center",content:"Send Announcement",icon:"bullhorn",disabled:!(d&&l),onClick:function(){return c("sendAnnouncement")}})]})},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.shipDest,d=i.msgVerified,u=i.ship_dept;return(0,o.createComponentVNode)(2,a.Section,{title:"Print Shipping Label",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return c("setScreen",{setScreen:0})}}),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Validated by",children:d})]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:1,textAlign:"center",content:"Print Label",icon:"print",disabled:!(l&&d),onClick:function(){return c("printLabel")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Destinations",mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e,children:(0,o.createComponentVNode)(2,a.Button,{content:l===e?"Selected":"Select",selected:l===e,onClick:function(){return c("shipSelect",{shipSelect:e})}})},e)}))})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CurrentLevels=void 0;var o=n(0),r=n(1),a=n(2);t.CurrentLevels=function(e,t){var n=(0,r.useBackend)(t).data.tech_levels;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createVNode)(1,"h3",null,"Current Research Levels:",16),n.map((function(e,t){var n=e.name,r=e.level,c=e.desc;return(0,o.createComponentVNode)(2,a.Box,{children:[t>0?(0,o.createComponentVNode)(2,a.Divider):null,(0,o.createComponentVNode)(2,a.Box,{children:n}),(0,o.createComponentVNode)(2,a.Box,{children:["* Level: ",r]}),(0,o.createComponentVNode)(2,a.Box,{children:["* Summary: ",c]})]},n)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.DataDiskMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(50),i=n(62),l=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.disk_data;return l?(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Level",children:l.level}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:l.desc})]}),(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){return i("updt_tech")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Disk",icon:"trash",onClick:function(){return i("clear_tech")}}),(0,o.createComponentVNode)(2,s)]})]}):null},d=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.disk_data;if(!l)return null;var d=l.name,u=l.lathe_types,m=l.materials,p=u.join(", ");return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d}),p?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Lathe Types",children:p}):null,(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Required Materials"})]}),m.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["- ",(0,o.createVNode)(1,"span",null,e.name,0,{style:{"text-transform":"capitalize"}})," x ",e.amount]},e.name)})),(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){return i("updt_design")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Disk",icon:"trash",onClick:function(){return i("clear_design")}}),(0,o.createComponentVNode)(2,s)]})]})},u=function(e,t){var n=(0,r.useBackend)(t).data.disk_type;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{children:"This disk is empty."}),(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:[(0,o.createComponentVNode)(2,c.RndNavButton,{submenu:i.SUBMENU.DISK_COPY,icon:"arrow-down",content:"tech"===n?"Load Tech to Disk":"Load Design to Disk"}),(0,o.createComponentVNode)(2,s)]})]})},s=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.disk_type;return l?(0,o.createComponentVNode)(2,a.Button,{content:"Eject Disk",icon:"eject",onClick:function(){i("tech"===l?"eject_tech":"eject_design")}}):null},m=function(e,t){var n=(0,r.useBackend)(t).data,c=n.disk_data,i=n.disk_type;return(0,o.createComponentVNode)(2,a.Section,{title:"Data Disk Contents",children:function(){if(!c)return(0,o.createComponentVNode)(2,u);switch(i){case"design":return(0,o.createComponentVNode)(2,d);case"tech":return(0,o.createComponentVNode)(2,l);default:return null}}()})},p=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.disk_type,d=c.to_copy;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Box,{overflowY:"auto",overflowX:"hidden",maxHeight:"450px",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.sort((function(e,t){return e.name.localeCompare(t.name)})).map((function(e){var t=e.name,n=e.id;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{noColon:!0,label:t,children:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-down",content:"Copy to Disk",onClick:function(){i("tech"===l?"copy_tech":"copy_design",{id:n})}})},n)}))})})})};t.DataDiskMenu=function(e,t){return(0,r.useBackend)(t).data.disk_type?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.RndRoute,{submenu:i.SUBMENU.MAIN,render:function(){return(0,o.createComponentVNode)(2,m)}}),(0,o.createComponentVNode)(2,c.RndRoute,{submenu:i.SUBMENU.DISK_COPY,render:function(){return(0,o.createComponentVNode)(2,p)}})],4):null}},function(e,t,n){"use strict";t.__esModule=!0,t.DeconstructionMenu=void 0;var o=n(0),r=n(1),a=n(2);t.DeconstructionMenu=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.loaded_item;return c.linked_destroy?l?(0,o.createComponentVNode)(2,a.Section,{noTopPadding:!0,title:"Deconstruction Menu",children:[(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:["Name: ",l.name]}),(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:(0,o.createVNode)(1,"h3",null,"Origin Tech:",16)}),(0,o.createComponentVNode)(2,a.LabeledList,{children:l.origin_tech.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"* "+e.name,children:[e.object_level," ",e.current_level?(0,o.createFragment)([(0,o.createTextVNode)("(Current: "),e.current_level,(0,o.createTextVNode)(")")],0):null]},e.name)}))}),(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:(0,o.createVNode)(1,"h3",null,"Options:",16)}),(0,o.createComponentVNode)(2,a.Button,{content:"Deconstruct Item",icon:"unlink",onClick:function(){i("deconstruct")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Eject Item",icon:"eject",onClick:function(){i("eject_item")}})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Deconstruction Menu",children:"No item loaded. Standing by..."}):(0,o.createComponentVNode)(2,a.Box,{children:"NO DESTRUCTIVE ANALYZER LINKED TO CONSOLE"})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheCategory=void 0;var o=n(0),r=n(1),a=n(2),c=n(50);t.LatheCategory=function(e,t){var n=(0,r.useBackend)(t),i=n.data,l=n.act,d=i.category,u=i.matching_designs,s=4===i.menu?"build":"imprint";return(0,o.createComponentVNode)(2,a.Section,{title:d,children:[(0,o.createComponentVNode)(2,c.LatheMaterials),(0,o.createComponentVNode)(2,a.Table,{className:"RndConsole__LatheCategory__MatchingDesigns",children:u.map((function(e){var t=e.id,n=e.name,r=e.can_build,c=e.materials;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:n,disabled:r<1,onClick:function(){return l(s,{id:t,amount:1})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:r>=5?(0,o.createComponentVNode)(2,a.Button,{content:"x5",onClick:function(){return l(s,{id:t,amount:5})}}):null}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:r>=10?(0,o.createComponentVNode)(2,a.Button,{content:"x10",onClick:function(){return l(s,{id:t,amount:10})}}):null}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:c.map((function(e){return(0,o.createFragment)([" | ",(0,o.createVNode)(1,"span",e.is_red?"color-red":null,[e.amount,(0,o.createTextVNode)(" "),e.name],0)],0)}))})]},t)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheChemicalStorage=void 0;var o=n(0),r=n(1),a=n(2);t.LatheChemicalStorage=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.loaded_chemicals,d=4===c.menu;return(0,o.createComponentVNode)(2,a.Section,{title:"Chemical Storage",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Purge All",icon:"trash",onClick:function(){i(d?"disposeallP":"disposeallI")}}),(0,o.createComponentVNode)(2,a.LabeledList,{children:l.map((function(e){var t=e.volume,n=e.name,r=e.id;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"* "+t+" of "+n,children:(0,o.createComponentVNode)(2,a.Button,{content:"Purge",icon:"trash",onClick:function(){i(d?"disposeP":"disposeI",{id:r})}})},r)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheMainMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(50);t.LatheMainMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.data,l=n.act,d=i.menu,u=i.categories,s=4===d?"Protolathe":"Circuit Imprinter";return(0,o.createComponentVNode)(2,a.Section,{title:s+" Menu",children:[(0,o.createComponentVNode)(2,c.LatheMaterials),(0,o.createComponentVNode)(2,c.LatheSearch),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Flex,{wrap:"wrap",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Flex,{style:{"flex-basis":"50%","margin-bottom":"6px"},children:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-right",content:e,onClick:function(){l("setCategory",{category:e})}})},e)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheMaterials=void 0;var o=n(0),r=n(1),a=n(2);t.LatheMaterials=function(e,t){var n=(0,r.useBackend)(t).data,c=n.total_materials,i=n.max_materials,l=n.max_chemicals,d=n.total_chemicals;return(0,o.createComponentVNode)(2,a.Box,{className:"RndConsole__LatheMaterials",mb:"10px",children:(0,o.createComponentVNode)(2,a.Table,{width:"auto",children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Material Amount:"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:c}),i?(0,o.createComponentVNode)(2,a.Table.Cell,{children:" / "+i}):null]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Chemical Amount:"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:d}),l?(0,o.createComponentVNode)(2,a.Table.Cell,{children:" / "+l}):null]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheMaterialStorage=void 0;var o=n(0),r=n(1),a=n(2);t.LatheMaterialStorage=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.loaded_materials;return(0,o.createComponentVNode)(2,a.Section,{className:"RndConsole__LatheMaterialStorage",title:"Material Storage",children:(0,o.createComponentVNode)(2,a.Table,{children:l.map((function(e){var t=e.id,n=e.amount,r=e.name,l=function(e){var n=4===c.menu?"lathe_ejectsheet":"imprinter_ejectsheet";i(n,{id:t,amount:e})},d=Math.floor(n/2e3),u=n<1,s=1===d?"":"s";return(0,o.createComponentVNode)(2,a.Table.Row,{className:u?"color-grey":"color-yellow",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{minWidth:"210px",children:["* ",n," of ",r]}),(0,o.createComponentVNode)(2,a.Table.Cell,{minWidth:"110px",children:["(",d," sheet",s,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:n>=2e3?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"1x",icon:"eject",onClick:function(){return l(1)}}),(0,o.createComponentVNode)(2,a.Button,{content:"C",icon:"eject",onClick:function(){return l("custom")}}),n>=1e4?(0,o.createComponentVNode)(2,a.Button,{content:"5x",icon:"eject",onClick:function(){return l(5)}}):null,(0,o.createComponentVNode)(2,a.Button,{content:"All",icon:"eject",onClick:function(){return l(50)}})],0):null})]},t)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheMenu=void 0;var o=n(0),r=n(1),a=n(189),c=n(50),i=n(2),l=n(62);t.LatheMenu=function(e,t){var n=(0,r.useBackend)(t).data,d=n.menu,u=n.linked_lathe,s=n.linked_imprinter;return 4!==d||u?5!==d||s?(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,a.RndRoute,{submenu:l.SUBMENU.MAIN,render:function(){return(0,o.createComponentVNode)(2,c.LatheMainMenu)}}),(0,o.createComponentVNode)(2,a.RndRoute,{submenu:l.SUBMENU.LATHE_CATEGORY,render:function(){return(0,o.createComponentVNode)(2,c.LatheCategory)}}),(0,o.createComponentVNode)(2,a.RndRoute,{submenu:l.SUBMENU.LATHE_MAT_STORAGE,render:function(){return(0,o.createComponentVNode)(2,c.LatheMaterialStorage)}}),(0,o.createComponentVNode)(2,a.RndRoute,{submenu:l.SUBMENU.LATHE_CHEM_STORAGE,render:function(){return(0,o.createComponentVNode)(2,c.LatheChemicalStorage)}})]}):(0,o.createComponentVNode)(2,i.Box,{children:"NO CIRCUIT IMPRITER LINKED TO CONSOLE"}):(0,o.createComponentVNode)(2,i.Box,{children:"NO PROTOLATHE LINKED TO CONSOLE"})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheSearch=void 0;var o=n(0),r=n(1),a=n(2);t.LatheSearch=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Input,{placeholder:"Search...",onChange:function(e,t){return n("search",{to_search:t})}})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MainMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(50),i=n(62);t.MainMenu=function(e,t){var n=(0,r.useBackend)(t).data,l=n.disk_type,d=n.linked_destroy,u=n.linked_lathe,s=n.linked_imprinter,m=n.tech_levels;return(0,o.createComponentVNode)(2,a.Section,{title:"Main Menu",children:[(0,o.createComponentVNode)(2,a.Flex,{className:"RndConsole__MainMenu__Buttons",direction:"column",align:"flex-start",children:[(0,o.createComponentVNode)(2,c.RndNavButton,{disabled:!l,menu:i.MENU.DISK,submenu:i.SUBMENU.MAIN,icon:"save",content:"Disk Operations"}),(0,o.createComponentVNode)(2,c.RndNavButton,{disabled:!d,menu:i.MENU.DESTROY,submenu:i.SUBMENU.MAIN,icon:"unlink",content:"Destructive Analyzer Menu"}),(0,o.createComponentVNode)(2,c.RndNavButton,{disabled:!u,menu:i.MENU.LATHE,submenu:i.SUBMENU.MAIN,icon:"print",content:"Protolathe Menu"}),(0,o.createComponentVNode)(2,c.RndNavButton,{disabled:!s,menu:i.MENU.IMPRINTER,submenu:i.SUBMENU.MAIN,icon:"print",content:"Circuit Imprinter Menu"}),(0,o.createComponentVNode)(2,c.RndNavButton,{menu:i.MENU.SETTINGS,submenu:i.SUBMENU.MAIN,icon:"cog",content:"Settings"})]}),(0,o.createComponentVNode)(2,a.Box,{mt:"12px"}),(0,o.createVNode)(1,"h3",null,"Current Research Levels:",16),(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){var t=e.name,n=e.level;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,children:n},t)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.RndNavbar=void 0;var o=n(0),r=n(50),a=n(2),c=n(62);t.RndNavbar=function(){return(0,o.createComponentVNode)(2,a.Box,{className:"RndConsole__RndNavbar",children:[(0,o.createComponentVNode)(2,r.RndRoute,{menu:function(e){return e!==c.MENU.MAIN},render:function(){return(0,o.createComponentVNode)(2,r.RndNavButton,{menu:c.MENU.MAIN,submenu:c.SUBMENU.MAIN,icon:"reply",content:"Main Menu"})}}),(0,o.createComponentVNode)(2,r.RndRoute,{submenu:function(e){return e!==c.SUBMENU.MAIN},render:function(){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,r.RndRoute,{menu:c.MENU.DISK,render:function(){return(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.MAIN,icon:"reply",content:"Disk Operations Menu"})}}),(0,o.createComponentVNode)(2,r.RndRoute,{menu:c.MENU.LATHE,render:function(){return(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.MAIN,icon:"reply",content:"Protolathe Menu"})}}),(0,o.createComponentVNode)(2,r.RndRoute,{menu:c.MENU.IMPRINTER,render:function(){return(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.MAIN,icon:"reply",content:"Circuit Imprinter Menu"})}}),(0,o.createComponentVNode)(2,r.RndRoute,{menu:c.MENU.SETTINGS,render:function(){return(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.MAIN,icon:"reply",content:"Settings Menu"})}})]})}}),(0,o.createComponentVNode)(2,r.RndRoute,{menu:function(e){return e===c.MENU.LATHE||e===c.MENU.IMPRINTER},submenu:c.SUBMENU.MAIN,render:function(){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.LATHE_MAT_STORAGE,icon:"arrow-up",content:"Material Storage"}),(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.LATHE_CHEM_STORAGE,icon:"arrow-up",content:"Chemical Storage"})]})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.RndNavButton=void 0;var o=n(0),r=n(1),a=n(2);t.RndNavButton=function(e,t){var n=e.icon,c=e.children,i=e.disabled,l=e.content,d=(0,r.useBackend)(t),u=d.data,s=d.act,m=u.menu,p=u.submenu,f=m,h=p;return null!==e.menu&&e.menu!==undefined&&(f=e.menu),null!==e.submenu&&e.submenu!==undefined&&(h=e.submenu),(0,o.createComponentVNode)(2,a.Button,{content:l,icon:n,disabled:i,onClick:function(){s("nav",{menu:f,submenu:h})},children:c})}},function(e,t,n){"use strict";t.__esModule=!0,t.SettingsMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(50),i=n(62);t.SettingsMenu=function(e,t){var n=(0,r.useBackend)(t),l=n.data,d=n.act,u=l.sync,s=l.admin,m=l.linked_destroy,p=l.linked_lathe,f=l.linked_imprinter;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,c.RndRoute,{submenu:i.SUBMENU.MAIN,render:function(){return(0,o.createComponentVNode)(2,a.Section,{title:"Settings",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",align:"flex-start",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Sync Database with Network",icon:"sync",disabled:!u,onClick:function(){d("sync")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Connect to Research Network",icon:"plug",disabled:u,onClick:function(){d("togglesync")}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!u,icon:"unlink",content:"Disconnect from Research Network",onClick:function(){d("togglesync")}}),(0,o.createComponentVNode)(2,c.RndNavButton,{disabled:!u,content:"Device Linkage Menu",icon:"link",menu:i.MENU.SETTINGS,submenu:i.SUBMENU.SETTINGS_DEVICES}),1===s?(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation",content:"[ADMIN] Maximize Research Levels",onClick:function(){return d("maxresearch")}}):null]})})}}),(0,o.createComponentVNode)(2,c.RndRoute,{submenu:i.SUBMENU.SETTINGS_DEVICES,render:function(){return(0,o.createComponentVNode)(2,a.Section,{title:"Device Linkage Menu",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"link",content:"Re-sync with Nearby Devices",onClick:function(){return d("find_device")}}),(0,o.createComponentVNode)(2,a.Box,{mt:"5px",children:(0,o.createVNode)(1,"h3",null,"Linked Devices:",16)}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[m?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"* Destructive Analyzer",children:(0,o.createComponentVNode)(2,a.Button,{icon:"unlink",content:"Unlink",onClick:function(){return d("disconnect",{item:"destroy"})}})}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{noColon:!0,label:"* No Destructive Analyzer Linked"}),p?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"* Protolathe",children:(0,o.createComponentVNode)(2,a.Button,{icon:"unlink",content:"Unlink",onClick:function(){d("disconnect",{item:"lathe"})}})}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{noColon:!0,label:"* No Protolathe Linked"}),f?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"* Circuit Imprinter",children:(0,o.createComponentVNode)(2,a.Button,{icon:"unlink",content:"Unlink",onClick:function(){return d("disconnect",{item:"imprinter"})}})}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{noColon:!0,label:"* No Circuit Imprinter Linked"})]})]})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.RoboticsControlConsole=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.RoboticsControlConsole=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.can_hack,s=d.safety,m=d.show_detonate_all,p=d.cyborgs,f=void 0===p?[]:p;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!!m&&(0,o.createComponentVNode)(2,a.Section,{title:"Emergency Self Destruct",children:[(0,o.createComponentVNode)(2,a.Button,{icon:s?"lock":"unlock",content:s?"Disable Safety":"Enable Safety",selected:s,onClick:function(){return l("arm",{})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bomb",disabled:s,content:"Destroy ALL Cyborgs",color:"bad",onClick:function(){return l("nuke",{})}})]}),(0,o.createComponentVNode)(2,i,{cyborgs:f,can_hack:u})]})})};var i=function(e,t){var n=e.cyborgs,c=(e.can_hack,(0,r.useBackend)(t)),i=c.act,l=c.data;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createFragment)([!!e.hackable&&!e.emagged&&(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){return i("hackbot",{uid:e.uid})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:e.locked_down?"unlock":"lock",color:e.locked_down?"good":"default",content:e.locked_down?"Release":"Lockdown",disabled:!l.auth,onClick:function(){return i("stopbot",{uid:e.uid})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",disabled:!l.auth,color:"bad",onClick:function(){return i("killbot",{uid:e.uid})}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:(0,o.createComponentVNode)(2,a.Box,{children:e.locstring})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:e.health>50?"good":"bad",value:e.health/100})}),"number"==typeof e.charge&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:e.charge>30?"good":"bad",value:e.charge/100})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell Capacity",children:(0,o.createComponentVNode)(2,a.Box,{color:e.cell_capacity<3e4?"average":"good",children:e.cell_capacity})})],4)||(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Power Cell"})}),!!e.is_hacked&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safeties",children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"DISABLED"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:(0,o.createComponentVNode)(2,a.Box,{color:e.synchronization?"default":"average",children:e.synchronization||"None"})})]})},e.uid)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cyborg units detected within access parameters."})}},function(e,t,n){"use strict";t.__esModule=!0,t.Safe=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.Safe=function(e,t){var n=(0,r.useBackend)(t),u=(n.act,n.data),s=u.dial,m=u.open;u.locked,u.contents;return(0,o.createComponentVNode)(2,c.Window,{theme:"safe",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Box,{className:"Safe--engraving",children:[(0,o.createComponentVNode)(2,i),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{className:"Safe--engraving--hinge",top:"25%"}),(0,o.createComponentVNode)(2,a.Box,{className:"Safe--engraving--hinge",top:"75%"})]}),(0,o.createComponentVNode)(2,a.Icon,{className:"Safe--engraving--arrow",name:"long-arrow-alt-down",size:"3"}),(0,o.createVNode)(1,"br"),m?(0,o.createComponentVNode)(2,l):(0,o.createComponentVNode)(2,a.Box,{as:"img",className:"Safe--dial",src:"safe_dial.png",style:{transform:"rotate(-"+3.6*s+"deg)","z-index":0}})]}),!m&&(0,o.createComponentVNode)(2,d)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.dial,d=i.open,u=i.locked,s=function(e,t){return(0,o.createComponentVNode)(2,a.Button,{disabled:d||t&&!u,icon:"arrow-"+(t?"right":"left"),content:(t?"Right":"Left")+" "+e,iconRight:t,onClick:function(){return c(t?"turnleft":"turnright",{num:e})},style:{"z-index":10}})};return(0,o.createComponentVNode)(2,a.Box,{className:"Safe--dialer",children:[(0,o.createComponentVNode)(2,a.Button,{disabled:u,icon:d?"lock":"lock-open",content:d?"Close":"Open",mb:"0.5rem",onClick:function(){return c("open")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Box,{position:"absolute",children:[s(50),s(10),s(1)]}),(0,o.createComponentVNode)(2,a.Box,{className:"Safe--dialer--right",position:"absolute",right:"5px",children:[s(1,!0),s(10,!0),s(50,!0)]}),(0,o.createComponentVNode)(2,a.Box,{className:"Safe--dialer--number",children:l})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.contents;return(0,o.createComponentVNode)(2,a.Box,{className:"Safe--contents",overflow:"auto",children:i.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{mb:"0.5rem",onClick:function(){return c("retrieve",{index:t+1})},children:[(0,o.createComponentVNode)(2,a.Box,{as:"img",src:e.sprite+".png",verticalAlign:"middle",ml:"-6px",mr:"0.5rem"}),e.name]}),(0,o.createVNode)(1,"br")],4,e)}))})},d=function(e,t){return(0,o.createComponentVNode)(2,a.Section,{className:"Safe--help",title:"Safe opening instructions (because you all keep forgetting)",children:[(0,o.createComponentVNode)(2,a.Box,{children:["1. Turn the dial left to the first number.",(0,o.createVNode)(1,"br"),"2. Turn the dial right to the second number.",(0,o.createVNode)(1,"br"),"3. Continue repeating this process for each number, switching between left and right each time.",(0,o.createVNode)(1,"br"),"4. Open the safe."]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:"To lock fully, turn the dial to the left after closing the safe."})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.SatelliteControl=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.satellites,u=l.notice,s=l.meteor_shield,m=l.meteor_shield_coverage,p=l.meteor_shield_coverage_max,f=l.meteor_shield_coverage_percentage;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[s&&(0,o.createComponentVNode)(2,a.Section,{title:"Station Shield Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:f>=100?"good":"average",value:m,maxValue:p,children:[f," %"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Network Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alert",color:"red",children:l.notice}),d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"#"+e.id,children:[e.mode," ",(0,o.createComponentVNode)(2,a.Button,{content:e.active?"Deactivate":"Activate",icon:"arrow-circle-right",onClick:function(){return i("toggle",{id:e.id})}})]},e.id)}))]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SecurityRecords=void 0;var o=n(0),r=n(20),a=n(1),c=n(2),i=n(75),l=n(4),d=n(49),u=n(132),s=n(133),m=n(136),p={"*Execute*":"execute","*Arrest*":"arrest",Incarcerated:"incarcerated",Parolled:"parolled",Released:"released",Demote:"demote",Search:"search",Monitor:"monitor"},f=function(e,t){(0,d.modalOpen)(e,"edit",{field:t.edit,value:t.value})};t.SecurityRecords=function(e,t){var n,r=(0,a.useBackend)(t),i=(r.act,r.data),p=i.loginState,f=i.currentPage;return p.logged_in?(1===f?n=(0,o.createComponentVNode)(2,C):2===f&&(n=(0,o.createComponentVNode)(2,g)),(0,o.createComponentVNode)(2,l.Window,{theme:"security",resizable:!0,children:[(0,o.createComponentVNode)(2,d.ComplexModal),(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,u.LoginInfo),(0,o.createComponentVNode)(2,m.TemporaryNotice),(0,o.createComponentVNode)(2,h),(0,o.createComponentVNode)(2,c.Section,{height:"100%",flexGrow:"1",children:n})]})]})):(0,o.createComponentVNode)(2,l.Window,{theme:"security",resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{children:(0,o.createComponentVNode)(2,s.LoginScreen)})})};var h=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.currentPage,d=i.general;return(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:1===l,onClick:function(){return r("page",{page:1})},children:[(0,o.createComponentVNode)(2,c.Icon,{name:"list"}),"List Records"]}),2===l&&d&&!d.empty&&(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:2===l,children:[(0,o.createComponentVNode)(2,c.Icon,{name:"file"}),"Record: ",d.fields[0].value]})]})},C=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.records,d=(0,a.useLocalState)(t,"searchText",""),u=d[0],s=(d[1],(0,a.useLocalState)(t,"sortId","name")),m=s[0],f=(s[1],(0,a.useLocalState)(t,"sortOrder",!0)),h=f[0];f[1];return(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,b),(0,o.createComponentVNode)(2,c.Section,{flexGrow:"1",mt:"0.5rem",children:(0,o.createComponentVNode)(2,c.Table,{className:"SecurityRecords__list",children:[(0,o.createComponentVNode)(2,c.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,N,{id:"name",children:"Name"}),(0,o.createComponentVNode)(2,N,{id:"id",children:"ID"}),(0,o.createComponentVNode)(2,N,{id:"rank",children:"Assignment"}),(0,o.createComponentVNode)(2,N,{id:"fingerprint",children:"Fingerprint"}),(0,o.createComponentVNode)(2,N,{id:"status",children:"Criminal Status"})]}),l.filter((0,r.createSearch)(u,(function(e){return e.name+"|"+e.id+"|"+e.rank+"|"+e.fingerprint+"|"+e.status}))).sort((function(e,t){var n=h?1:-1;return e[m].localeCompare(t[m])*n})).map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"SecurityRecords__listRow--"+p[e.status],onClick:function(){return i("view",{uid_gen:e.uid_gen,uid_sec:e.uid_sec})},children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user"})," ",e.name]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.rank}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.fingerprint}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.status})]},e.id)}))]})})]})},N=function(e,t){var n=(0,a.useLocalState)(t,"sortId","name"),r=n[0],i=n[1],l=(0,a.useLocalState)(t,"sortOrder",!0),d=l[0],u=l[1],s=e.id,m=e.children;return(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{color:r!==s&&"transparent",width:"100%",onClick:function(){r===s?u(!d):(i(s),u(!0))},children:[m,r===s&&(0,o.createComponentVNode)(2,c.Icon,{name:d?"sort-up":"sort-down",ml:"0.25rem;"})]})})},b=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data.isPrinting,u=(0,a.useLocalState)(t,"searchText",""),s=(u[0],u[1]);return(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,i.FlexItem,{children:[(0,o.createComponentVNode)(2,c.Button,{content:"New Record",icon:"plus",onClick:function(){return r("new_general")}}),(0,o.createComponentVNode)(2,c.Button,{disabled:l,icon:l?"spinner":"print",iconSpin:!!l,content:"Print Cell Log",ml:"0.25rem",onClick:function(){return(0,d.modalOpen)(t,"print_cell_log")}})]}),(0,o.createComponentVNode)(2,i.FlexItem,{grow:"1",ml:"0.5rem",children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"Search by Name, ID, Assignment, Fingerprint, Status",width:"100%",onInput:function(e,t){return s(t)}})})]})},g=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.isPrinting,d=i.general,u=i.security;return d&&d.fields?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"General Data",level:2,mt:"-6px",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{disabled:l,icon:l?"spinner":"print",iconSpin:!!l,content:"Print Record",onClick:function(){return r("print_record")}}),(0,o.createComponentVNode)(2,c.Button.Confirm,{icon:"trash",tooltip:"WARNING: This will also delete the Security and Medical records associated to this crew member!",tooltipPosition:"bottom-left",content:"Delete Record",onClick:function(){return r("delete_general")}})],4),children:(0,o.createComponentVNode)(2,V)}),(0,o.createComponentVNode)(2,c.Section,{title:"Security Data",level:2,mt:"-12px",buttons:(0,o.createComponentVNode)(2,c.Button.Confirm,{icon:"trash",disabled:u.empty,content:"Delete Record",onClick:function(){return r("delete_security")}}),children:(0,o.createComponentVNode)(2,v)})],4):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"General records lost!"})},V=function(e,t){var n=(0,a.useBackend)(t).data.general;return n&&n.fields?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{float:"left",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:n.fields.map((function(e,n){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.field,children:[(0,r.decodeHtmlEntities)(""+e.value),!!e.edit&&(0,o.createComponentVNode)(2,c.Button,{icon:"pen",ml:"0.5rem",mb:e.line_break?"1rem":"initial",onClick:function(){return f(t,e)}})]},n)}))})}),(0,o.createComponentVNode)(2,c.Box,{position:"absolute",right:"0",textAlign:"right",children:!!n.has_photos&&n.photos.map((function(e,t){return(0,o.createComponentVNode)(2,c.Box,{display:"inline-block",textAlign:"center",color:"label",children:[(0,o.createVNode)(1,"img",null,null,1,{src:e,style:{width:"96px","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor"}}),(0,o.createVNode)(1,"br"),"Photo #",t+1]},t)}))})],4):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"General records lost!"})},v=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.security;return l&&l.fields?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.LabeledList,{children:l.fields.map((function(e,n){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.field,children:[(0,r.decodeHtmlEntities)(e.value),!!e.edit&&(0,o.createComponentVNode)(2,c.Button,{icon:"pen",ml:"0.5rem",mb:e.line_break?"1rem":"initial",onClick:function(){return f(t,e)}})]},n)}))}),(0,o.createComponentVNode)(2,c.Section,{title:"Comments/Log",level:2,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"comment",content:"Add Entry",onClick:function(){return(0,d.modalOpen)(t,"comment_add")}}),children:0===l.comments.length?(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"No comments found."}):l.comments.map((function(e,t){return(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Box,{color:"label",display:"inline",children:e.header||"Auto-generated"}),(0,o.createVNode)(1,"br"),e.text||e,(0,o.createComponentVNode)(2,c.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){return i("comment_delete",{id:t+1})}})]},t)}))})],4):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:["Security records lost!",(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Button,{icon:"pen",content:"Create New Record",mt:"0.5rem",onClick:function(){return i("new_security")}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleConsole=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(77);t.ShuttleConsole=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:d.status?d.status:(0,o.createComponentVNode)(2,a.NoticeBox,{color:"red",children:"Shuttle Missing"})}),!!d.shuttle&&(!!d.docking_ports_len&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Send to ",children:d.docking_ports.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:"chevron-right",content:e.name,onClick:function(){return l("move",{move:e.id})}},e.name)}))})||(0,o.createFragment)([(0,o.createComponentVNode)(2,i.LabeledListItem,{label:"Status",color:"red",children:(0,o.createComponentVNode)(2,a.NoticeBox,{color:"red",children:"Shuttle Locked"})}),!!d.admin_controlled&&(0,o.createComponentVNode)(2,i.LabeledListItem,{label:"Authorization",children:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-circle",content:"Request Authorization",disabled:!d.status,onClick:function(){return l("request")}})})],0))]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulator=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.ShuttleManipulator=function(e,t){var n=(0,r.useLocalState)(t,"tabIndex",0),u=n[0],s=n[1];return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Box,{fillPositionedParent:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:0===u,onClick:function(){return s(0)},icon:"info-circle",content:"Status"},"Status"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===u,onClick:function(){return s(1)},icon:"file-import",content:"Templates"},"Templates"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===u,onClick:function(){return s(2)},icon:"tools",content:"Modification"},"Modification")]}),function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,i);case 1:return(0,o.createComponentVNode)(2,l);case 2:return(0,o.createComponentVNode)(2,d);default:return"WE SHOULDN'T BE HERE!"}}(u)]})})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.shuttles;return(0,o.createComponentVNode)(2,a.Box,{children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:e.id}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shuttle Timer",children:e.timeleft}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shuttle Mode",children:e.mode}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shuttle Status",children:e.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){return c("jump_to",{type:"mobile",id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Fast Travel",icon:"fast-forward",onClick:function(){return c("fast_travel",{id:e.id})}})]})]})},e.name)}))})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.templates_tabs,d=i.existing_shuttle,u=i.templates;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Tabs,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:e===d.id,icon:"file",content:e,onClick:function(){return c("select_template_category",{cat:e})}},e)}))}),!!d&&u[d.id].templates.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.description&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:e.description}),e.admin_notes&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:(0,o.createComponentVNode)(2,a.Button,{content:"Load Template",icon:"download",onClick:function(){return c("select_template",{shuttle_id:e.shuttle_id})}})})]})},e.name)}))]})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.existing_shuttle,d=i.selected;return(0,o.createComponentVNode)(2,a.Box,{children:[l?(0,o.createComponentVNode)(2,a.Section,{title:"Selected Shuttle: "+l.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:l.status}),l.timer&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Timer",children:l.timeleft}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:(0,o.createComponentVNode)(2,a.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){return c("jump_to",{type:"mobile",id:l.id})}})})]})}):(0,o.createComponentVNode)(2,a.Section,{title:"Selected Shuttle: None"}),d?(0,o.createComponentVNode)(2,a.Section,{title:"Selected Template: "+d.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[d.description&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:d.description}),d.admin_notes&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Admin Notes",children:d.admin_notes}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Preview",icon:"eye",onClick:function(){return c("preview",{shuttle_id:d.shuttle_id})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Load",icon:"download",onClick:function(){return c("load",{shuttle_id:d.shuttle_id})}})]})]})}):(0,o.createComponentVNode)(2,a.Section,{title:"Selected Template: None"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(4),l=[["good","Alive"],["average","Critical"],["bad","DEAD"]],d=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],u={average:[.25,.5],bad:[.5,Infinity]},s=["bad","average","average","good","average","average","bad"];t.Sleeper=function(e,t){var n=(0,a.useBackend)(t),r=(n.act,n.data.hasOccupant?(0,o.createComponentVNode)(2,m):(0,o.createComponentVNode)(2,N));return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{className:"Layout__content--flexColumn",children:[r,(0,o.createComponentVNode)(2,h)]})})};var m=function(e,t){var n=(0,a.useBackend)(t);n.act,n.data.occupant;return(0,o.createFragment)([(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,f),(0,o.createComponentVNode)(2,C)],4)},p=function(e,t){var n=(0,a.useBackend)(t),i=n.act,d=n.data,u=d.occupant,m=d.auto_eject_dead;return(0,o.createComponentVNode)(2,c.Section,{title:"Occupant",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{color:"label",display:"inline",children:"Auto-eject if dead:\xa0"}),(0,o.createComponentVNode)(2,c.Button,{icon:m?"toggle-on":"toggle-off",selected:m,content:m?"On":"Off",onClick:function(){return i("auto_eject_dead_"+(m?"off":"on"))}}),(0,o.createComponentVNode)(2,c.Button,{icon:"user-slash",content:"Eject",onClick:function(){return i("ejectify")}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:u.name}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:u.maxHealth,value:u.health/u.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]},children:(0,r.round)(u.health,0)})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",color:l[u.stat][0],children:l[u.stat][1]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:u.maxTemp,value:u.bodyTemperature/u.maxTemp,color:s[u.temperatureSuitability+3],children:[(0,r.round)(u.btCelsius,0),"\xb0C,",(0,r.round)(u.btFaren,0),"\xb0F"]})}),!!u.hasBlood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood Level",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:u.bloodMax,value:u.bloodLevel/u.bloodMax,ranges:{bad:[-Infinity,.6],average:[.6,.9],good:[.6,Infinity]},children:[u.bloodPercent,"%, ",u.bloodLevel,"cl"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pulse",verticalAlign:"middle",children:[u.pulse," BPM"]})],4)]})})},f=function(e,t){var n=(0,a.useBackend)(t).data.occupant;return(0,o.createComponentVNode)(2,c.Section,{title:"Occupant Damage",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:d.map((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e[0],children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:"100",value:n[e[1]]/100,ranges:u,children:(0,r.round)(n[e[1]],0)},t)},t)}))})})},h=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.hasOccupant,d=i.isBeakerLoaded,u=i.beakerMaxSpace,s=i.beakerFreeSpace,m=i.dialysis&&s>0;return(0,o.createComponentVNode)(2,c.Section,{title:"Dialysis",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{disabled:!d||s<=0||!l,selected:m,icon:m?"toggle-on":"toggle-off",content:m?"Active":"Inactive",onClick:function(){return r("togglefilter")}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!d,icon:"eject",content:"Eject",onClick:function(){return r("removebeaker")}})],4),children:d?(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Remaining Space",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:u,value:s/u,ranges:{good:[.5,Infinity],average:[.25,.5],bad:[-Infinity,.25]},children:[s,"u"]})})}):(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"No beaker loaded."})})},C=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.occupant,d=i.chemicals,u=i.maxchem,s=i.amounts;return(0,o.createComponentVNode)(2,c.Section,{title:"Occupant Chemicals",flexGrow:"1",children:d.map((function(e,t){var n,a="";return e.overdosing?(a="bad",n=(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"exclamation-circle"}),"\xa0 Overdosing!"]})):e.od_warning&&(a="average",n=(0,o.createComponentVNode)(2,c.Box,{color:"average",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"exclamation-triangle"}),"\xa0 Close to overdosing"]})),(0,o.createComponentVNode)(2,c.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,o.createComponentVNode)(2,c.Section,{title:e.title,level:"3",mx:"0",lineHeight:"18px",buttons:n,children:(0,o.createComponentVNode)(2,c.Flex,{align:"flex-start",children:[(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:u,value:e.occ_amount/u,color:a,title:"Amount of chemicals currently inside the occupant / Total amount injectable by this machine",mr:"0.5rem",children:[e.pretty_amount,"/",u,"u"]}),s.map((function(t,n){return(0,o.createComponentVNode)(2,c.Button,{disabled:!e.injectable||e.occ_amount+t>u||2===l.stat,icon:"syringe",content:"Inject "+t+"u",title:"Inject "+t+"u of "+e.title+" into the occupant",mb:"0",height:"19px",onClick:function(){return r("chemical",{chemid:e.id,amount:t})}},n)}))]})})},t)}))})},N=function(e,t){return(0,o.createComponentVNode)(2,c.Section,{textAlign:"center",flexGrow:"1",children:(0,o.createComponentVNode)(2,c.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant detected."]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SlotMachine=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.SlotMachine=function(e,t){var n,i=(0,r.useBackend)(t),l=i.act,d=i.data;return null===d.money?(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:"Could not scan your card or could not find account!"}),(0,o.createComponentVNode)(2,a.Box,{children:"Please wear or hold your ID and try again."})]})})}):(n=1===d.plays?d.plays+" player has tried their luck today!":d.plays+" players have tried their luck today!",(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{lineHeight:2,children:n}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Credits Remaining",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.money})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"50 credits to spin",children:(0,o.createComponentVNode)(2,a.Button,{icon:"coins",disabled:d.working,content:d.working?"Spinning...":"Spin",onClick:function(){return l("spin")}})})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,lineHeight:2,color:d.resultlvl,children:d.result})]})})}))}},function(e,t,n){"use strict";t.__esModule=!0,t.Smartfridge=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.Smartfridge=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.secure,u=l.can_dry,s=l.drying,m=l.contents;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!!d&&(0,o.createComponentVNode)(2,a.Section,{title:"Secure",children:(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Secure Access: Please have your identification ready."})}),!!u&&(0,o.createComponentVNode)(2,a.Section,{title:"Drying rack",children:(0,o.createComponentVNode)(2,a.Button,{icon:s?"power-off":"times",content:s?"On":"Off",selected:s,onClick:function(){return i("drying")}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Contents",children:[!m&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:" No products loaded. "}),!!m&&m.map((function(e){return(0,o.createComponentVNode)(2,a.Flex,{direction:"row",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"45%",children:e.display_name}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"25%",children:["(",e.quantity," in stock)"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"30%",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-down",tooltip:"Dispense one.",content:"1",onClick:function(){return i("vend",{index:e.vend,amount:1})}}),(0,o.createComponentVNode)(2,a.NumberInput,{width:"40px",minValue:0,value:0,maxValue:e.quantity,step:1,stepPixelSize:3,onChange:function(t,n){return i("vend",{index:e.vend,amount:n})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-down",content:"All",tooltip:"Dispense all. ",onClick:function(){return i("vend",{index:e.vend,amount:e.quantity})}})]})]},e)}))]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(0),r=n(1),a=n(2),c=n(95),i=n(4);t.Smes=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.capacityPercent,s=(d.capacity,d.charge),m=d.inputAttempt,p=d.inputting,f=d.inputLevel,h=d.inputLevelMax,C=d.inputAvailable,N=d.outputAttempt,b=d.outputting,g=d.outputLevel,V=d.outputLevelMax,v=d.outputUsed,y=(u>=100?"good":p&&"average")||"bad",_=(b?"good":s>0&&"average")||"bad";return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*u,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"sync-alt":"times",selected:m,onClick:function(){return l("tryinput")},children:m?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:y,children:(u>=100?"Fully Charged":p&&"Charging")||"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===f,onClick:function(){return l("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===f,onClick:function(){return l("input",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:f/1e3,fillValue:C/1e3,minValue:0,maxValue:h/1e3,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(1e3*e,1)},onChange:function(e,t){return l("input",{target:1e3*t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:f===h,onClick:function(){return l("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:f===h,onClick:function(){return l("input",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:(0,c.formatPower)(C)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:N?"power-off":"times",selected:N,onClick:function(){return l("tryoutput")},children:N?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:_,children:b?"Sending":s>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===g,onClick:function(){return l("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===g,onClick:function(){return l("output",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:g/1e3,minValue:0,maxValue:V/1e3,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(1e3*e,1)},onChange:function(e,t){return l("output",{target:1e3*t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:g===V,onClick:function(){return l("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:g===V,onClick:function(){return l("output",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:(0,c.formatPower)(v)})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SolarControl=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.SolarControl=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.generated,u=l.generated_ratio,s=l.tracking_state,m=l.tracking_rate,p=l.connected_panels,f=l.connected_tracker,h=l.cdir,C=l.direction,N=l.rotating_direction;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Scan for new hardware",onClick:function(){return i("refresh")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Solar tracker",color:f?"good":"bad",children:f?"OK":"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Solar panels",color:p>0?"good":"bad",children:p})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:u,children:d+" W"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Panel orientation",children:[h,"\xb0 (",C,")"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracker rotation",children:[2===s&&(0,o.createComponentVNode)(2,a.Box,{children:" Automated "}),1===s&&(0,o.createComponentVNode)(2,a.Box,{children:[" ",m,"\xb0/h (",N,") "]}),0===s&&(0,o.createComponentVNode)(2,a.Box,{children:" Tracker offline "})]})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Panel orientation",children:[2!==s&&(0,o.createComponentVNode)(2,a.NumberInput,{unit:"\xb0",step:1,stepPixelSize:1,minValue:0,maxValue:359,value:h,onDrag:function(e,t){return i("cdir",{cdir:t})}}),2===s&&(0,o.createComponentVNode)(2,a.Box,{lineHeight:"19px",children:" Automated "})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracker status",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===s,onClick:function(){return i("track",{track:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===s,onClick:function(){return i("track",{track:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===s,disabled:!f,onClick:function(){return i("track",{track:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracker rotation",children:[1===s&&(0,o.createComponentVNode)(2,a.NumberInput,{unit:"\xb0/h",step:1,stepPixelSize:1,minValue:-7200,maxValue:7200,value:m,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return i("tdir",{tdir:t})}}),0===s&&(0,o.createComponentVNode)(2,a.Box,{lineHeight:"19px",children:" Tracker offline "}),2===s&&(0,o.createComponentVNode)(2,a.Box,{lineHeight:"19px",children:" Automated "})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.SpawnersMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.spawners||[];return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{mb:.5,title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"chevron-circle-right",content:"Jump",onClick:function(){return i("jump",{ID:e.uids})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"chevron-circle-right",content:"Spawn",onClick:function(){return i("spawn",{ID:e.uids})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{style:{"white-space":"pre-wrap"},mb:1,fontSize:"16px",children:e.desc}),!!e.fluff&&(0,o.createComponentVNode)(2,a.Box,{style:{"white-space":"pre-wrap"},textColor:"#878787",fontSize:"14px",children:e.fluff}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{style:{"white-space":"pre-wrap"},mt:1,bold:!0,color:"red",fontSize:"18px",children:e.important_info})]},e.name)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsoleContent=t.StationAlertConsole=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.StationAlertConsole=function(){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t).data.alarms||[],c=n.Fire||[],i=n.Atmosphere||[],l=n.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===l.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),l.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)};t.StationAlertConsoleContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorage=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.SuitStorage=function(e,t){var n=(0,r.useBackend)(t).data.uv;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{display:"flex",className:"Layout__content--flexColumn",children:[!!n&&(0,o.createComponentVNode)(2,a.Dimmer,{backgroundColor:"black",opacity:.85,children:(0,o.createComponentVNode)(2,a.Flex,{children:(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,textAlign:"center",mb:2,children:[(0,o.createComponentVNode)(2,a.Icon,{name:"spinner",spin:1,size:4,mb:4}),(0,o.createVNode)(1,"br"),"Disinfection of contents in progress..."]})})}),(0,o.createComponentVNode)(2,i),(0,o.createComponentVNode)(2,d)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.helmet,u=i.suit,s=i.magboots,m=i.mask,p=i.storage,f=i.open,h=i.locked;return(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",flexGrow:"1",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Start Disinfection Cycle",icon:"radiation",textAlign:"center",onClick:function(){return c("cook")}}),(0,o.createComponentVNode)(2,a.Button,{content:h?"Unlock":"Lock",icon:h?"unlock":"lock",disabled:f,onClick:function(){return c("toggle_lock")}})],4),children:f&&!h?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,l,{object:d,label:"Helmet",missingText:"helmet",eject:"dispense_helmet"}),(0,o.createComponentVNode)(2,l,{object:u,label:"Suit",missingText:"suit",eject:"dispense_suit"}),(0,o.createComponentVNode)(2,l,{object:s,label:"Boots",missingText:"boots",eject:"dispense_boots"}),(0,o.createComponentVNode)(2,l,{object:m,label:"Breathmask",missingText:"mask",eject:"dispense_mask"}),(0,o.createComponentVNode)(2,l,{object:p,label:"Storage",missingText:"storage item",eject:"dispense_storage"})]}):(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:h?"lock":"exclamation-circle",size:"5",mb:3}),(0,o.createVNode)(1,"br"),h?"The unit is locked.":"The unit is closed."]})})})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=(n.data,e.object),l=e.label,d=e.missingText,u=e.eject;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:l,children:(0,o.createComponentVNode)(2,a.Box,{my:.5,children:i?(0,o.createComponentVNode)(2,a.Button,{my:-1,icon:"eject",content:i,onClick:function(){return c(u)}}):(0,o.createComponentVNode)(2,a.Box,{color:"silver",bold:!0,children:["No ",d," found."]})})})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.open,d=i.locked;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:l?"Close Suit Storage Unit":"Open Suit Storage Unit",icon:l?"times-circle":"expand",color:l?"red":"green",disabled:d,textAlign:"center",onClick:function(){return c("toggle_open")}})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SupermatterMonitor=void 0;var o=n(0),r=n(26),a=n(43),c=n(16),i=n(1),l=n(2),d=n(39),u=n(4);n(76);t.SupermatterMonitor=function(e,t){var n=(0,i.useBackend)(t);n.act;return 0===n.data.active?(0,o.createComponentVNode)(2,m):(0,o.createComponentVNode)(2,p)};var s=function(e){return Math.log2(16+Math.max(0,e))-4},m=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.supermatters,c=void 0===a?[]:a;return(0,o.createComponentVNode)(2,u.Window,{children:(0,o.createComponentVNode)(2,u.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return r("refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:c.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.supermatter_id+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return r("view",{view:e.supermatter_id})}})})]},e.supermatter_id)}))})})})})},p=function(e,t){var n=(0,i.useBackend)(t),m=n.act,p=n.data,f=(p.active,p.SM_integrity),h=p.SM_power,C=p.SM_ambienttemp,N=p.SM_ambientpressure,b=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(p.gases||[]),g=Math.max.apply(Math,[1].concat(b.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,u.Window,{children:(0,o.createComponentVNode)(2,u.Window.Content,{children:(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:f/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,c.toFixed)(h)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(C),minValue:0,maxValue:s(1e4),ranges:{teal:[-Infinity,s(80)],good:[s(80),s(373)],average:[s(373),s(1e3)],bad:[s(1e3),Infinity]},children:(0,c.toFixed)(C)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(N),minValue:0,maxValue:s(5e4),ranges:{good:[s(1),s(300)],average:[-Infinity,s(1e3)],bad:[s(1e3),Infinity]},children:(0,c.toFixed)(N)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return m("back")}}),children:(0,o.createComponentVNode)(2,l.LabeledList,{children:b.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,d.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,d.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:g,children:(0,c.toFixed)(e.amount,2)+"%"})},e.name)}))})})})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SyndicateComputerSimple=void 0;var o=n(0),r=n(1),a=n(2),c=(n(77),n(4));t.SyndicateComputerSimple=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{theme:"syndicate",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:l.rows.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.title,buttons:(0,o.createComponentVNode)(2,a.Button,{content:e.buttontitle,disabled:e.buttondisabled,tooltip:e.buttontooltip,tooltipPosition:"left",onClick:function(){return i(e.buttonact)}}),children:[e.status,!!e.bullets&&(0,o.createComponentVNode)(2,a.Box,{children:e.bullets.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})]},e.title)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TEG=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=function(e){return e.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,")};t.TEG=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data;return d.error?(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Error",children:[d.error,(0,o.createComponentVNode)(2,a.Button,{icon:"circle",content:"Recheck",onClick:function(){return l("check")}})]})})}):(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Cold Loop ("+d.cold_dir+")",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cold Inlet",children:[i(d.cold_inlet_temp)," K, ",i(d.cold_inlet_pressure)," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cold Outlet",children:[i(d.cold_outlet_temp)," K, ",i(d.cold_outlet_pressure)," kPa"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hot Loop ("+d.hot_dir+")",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hot Inlet",children:[i(d.hot_inlet_temp)," K, ",i(d.hot_inlet_pressure)," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hot Outlet",children:[i(d.hot_outlet_temp)," K, ",i(d.hot_outlet_pressure)," kPa"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Output",children:[i(d.output_power)," W",!!d.warning_switched&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Warning: Cold inlet temperature exceeds hot inlet temperature."}),!!d.warning_cold_pressure&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Warning: Cold circulator inlet pressure is under 1,000 kPa."}),!!d.warning_hot_pressure&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Warning: Hot circulator inlet pressure is under 1,000 kPa."})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TachyonArrayContent=t.TachyonArray=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.TachyonArray=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.records,s=void 0===u?[]:u,m=d.explosion_target,p=d.toxins_tech,f=d.printing;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shift's Target",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Toxins Level",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Administration",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print All Logs",disabled:!s.length||f,align:"center",onClick:function(){return l("print_logs")}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",content:"Delete All Logs",disabled:!s.length,color:"bad",align:"center",onClick:function(){return l("delete_logs")}})]})]})}),s.length?(0,o.createComponentVNode)(2,i):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Records"})]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.records,l=void 0===i?[]:i;return(0,o.createComponentVNode)(2,a.Section,{title:"Logged Explosions",children:(0,o.createComponentVNode)(2,a.Flex,{children:(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Time"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Epicenter"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Actual Size"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Theoretical Size"})]}),l.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.logged_time}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.epicenter}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.actual_size_message}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.theoretical_size_message}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",content:"Delete",color:"bad",onClick:function(){return c("delete_record",{index:e.index})}})})]},e.index)}))]})})})})};t.TachyonArrayContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.Tank=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.Tank=function(e,t){var n,i=(0,r.useBackend)(t),l=i.act,d=i.data;return n=d.has_mask?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.connected?"check":"times",content:d.connected?"Internals On":"Internals Off",selected:d.connected,onClick:function(){return l("internals")}})}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",color:"red",children:"No Mask Equipped"}),(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tank Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.tankPressure/1013,ranges:{good:[.35,Infinity],average:[.15,.35],bad:[-Infinity,.15]},children:d.tankPressure+" kPa"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Release Pressure",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:d.ReleasePressure===d.minReleasePressure,tooltip:"Min",onClick:function(){return l("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(d.releasePressure),width:"65px",unit:"kPa",minValue:d.minReleasePressure,maxValue:d.maxReleasePressure,onChange:function(e,t){return l("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:d.ReleasePressure===d.maxReleasePressure,tooltip:"Max",onClick:function(){return l("pressure",{pressure:"max"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"",disabled:d.ReleasePressure===d.defaultReleasePressure,tooltip:"Reset",onClick:function(){return l("pressure",{pressure:"reset"})}})]}),n]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TankDispenser=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.TankDispenser=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.o_tanks,u=l.p_tanks;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Dispense Oxygen Tank ("+d+")",disabled:0===d,icon:"arrow-circle-down",onClick:function(){return i("oxygen")}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Dispense Plasma Tank ("+u+")",disabled:0===u,icon:"arrow-circle-down",onClick:function(){return i("plasma")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TcommsCore=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.TcommsCore=function(e,t){var n=(0,r.useBackend)(t),s=(n.act,n.data.ion),m=(0,r.useLocalState)(t,"tabIndex",0),p=m[0],f=m[1];return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[1===s&&(0,o.createComponentVNode)(2,i),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:0===p,onClick:function(){return f(0)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"wrench"}),"Configuration"]},"ConfigPage"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===p,onClick:function(){return f(1)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"link"}),"Device Linkage"]},"LinkagePage"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===p,onClick:function(){return f(2)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-times"}),"User Filtering"]},"FilterPage")]}),function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,l);case 1:return(0,o.createComponentVNode)(2,d);case 2:return(0,o.createComponentVNode)(2,u);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}}(p)]})})};var i=function(){return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: An Ionospheric overload has occured. Please wait for the machine to reboot. This cannot be manually done."})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.active,d=i.sectors_available,u=i.nttc_toggle_jobs,s=i.nttc_toggle_job_color,m=i.nttc_toggle_name_color,p=i.nttc_toggle_command_bold,f=i.nttc_job_indicator_type,h=i.nttc_setting_language,C=i.network_id;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Machine Power",children:(0,o.createComponentVNode)(2,a.Button,{content:l?"On":"Off",selected:l,icon:"power-off",onClick:function(){return c("toggle_active")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sector Coverage",children:d})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Radio Configuration",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Job Announcements",children:(0,o.createComponentVNode)(2,a.Button,{content:u?"On":"Off",selected:u,icon:"user-tag",onClick:function(){return c("nttc_toggle_jobs")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Job Departmentalisation",children:(0,o.createComponentVNode)(2,a.Button,{content:s?"On":"Off",selected:s,icon:"clipboard-list",onClick:function(){return c("nttc_toggle_job_color")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name Departmentalisation",children:(0,o.createComponentVNode)(2,a.Button,{content:m?"On":"Off",selected:m,icon:"user-tag",onClick:function(){return c("nttc_toggle_name_color")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Command Amplification",children:(0,o.createComponentVNode)(2,a.Button,{content:p?"On":"Off",selected:p,icon:"volume-up",onClick:function(){return c("nttc_toggle_command_bold")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Advanced",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Job Announcement Format",children:(0,o.createComponentVNode)(2,a.Button,{content:f||"Unset",selected:f,icon:"pencil-alt",onClick:function(){return c("nttc_job_indicator_type")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Language Conversion",children:(0,o.createComponentVNode)(2,a.Button,{content:h||"Unset",selected:h,icon:"globe",onClick:function(){return c("nttc_setting_language")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Network ID",children:(0,o.createComponentVNode)(2,a.Button,{content:C||"Unset",selected:C,icon:"server",onClick:function(){return c("network_id")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Maintenance",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Import Configuration",icon:"file-import",onClick:function(){return c("import")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Export Configuration",icon:"file-export",onClick:function(){return c("export")}})]})],4)},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.link_password,d=i.relay_entries;return(0,o.createComponentVNode)(2,a.Section,{title:"Device Linkage",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Linkage Password",children:(0,o.createComponentVNode)(2,a.Button,{content:l||"Unset",selected:l,icon:"lock",onClick:function(){return c("change_password")}})})}),(0,o.createComponentVNode)(2,a.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Network Address"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Network ID"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Sector"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Status"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Unlink"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.addr}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.net_id}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.sector}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:1===e.status?(0,o.createComponentVNode)(2,a.Box,{color:"green",children:"Online"}):(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Offline"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Unlink",icon:"unlink",onClick:function(){return c("unlink",{addr:e.addr})}})})]},e.addr)}))]})]})},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.filtered_users;return(0,o.createComponentVNode)(2,a.Section,{title:"User Filtering",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Add User",icon:"user-plus",onClick:function(){return c("add_filter")}}),children:(0,o.createComponentVNode)(2,a.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{style:{width:"90%"},children:"User"}),(0,o.createComponentVNode)(2,a.Table.Cell,{style:{width:"10%"},children:"Actions"})]}),i.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Remove",icon:"user-times",onClick:function(){return c("remove_filter",{user:e})}})})]},e)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TcommsRelay=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.TcommsRelay=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.linked,m=u.active,p=u.network_id;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Relay Configuration",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Machine Power",children:(0,o.createComponentVNode)(2,a.Button,{content:m?"On":"Off",selected:m,icon:"power-off",onClick:function(){return d("toggle_active")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Network ID",children:(0,o.createComponentVNode)(2,a.Button,{content:p||"Unset",selected:p,icon:"server",onClick:function(){return d("network_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Link Status",children:1===s?(0,o.createComponentVNode)(2,a.Box,{color:"green",children:"Linked"}):(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Unlinked"})})]})}),1===s?(0,o.createComponentVNode)(2,i):(0,o.createComponentVNode)(2,l)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.linked_core_id,d=i.linked_core_addr,u=i.hidden_link;return(0,o.createComponentVNode)(2,a.Section,{title:"Link Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Linked Core ID",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Linked Core Address",children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hidden Link",children:(0,o.createComponentVNode)(2,a.Button,{content:u?"Yes":"No",icon:u?"eye-slash":"eye",selected:u,onClick:function(){return c("toggle_hidden_link")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unlink",children:(0,o.createComponentVNode)(2,a.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){return c("unlink")}})})]})})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.cores;return(0,o.createComponentVNode)(2,a.Section,{title:"Detected Cores",children:(0,o.createComponentVNode)(2,a.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Network Address"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Network ID"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Sector"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Link"})]}),i.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.addr}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.net_id}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.sector}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Link",icon:"link",onClick:function(){return c("link",{addr:e.addr})}})})]},e.addr)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Teleporter=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(179);t.Teleporter=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.targetsTeleport?d.targetsTeleport:{},s=d.calibrated,m=d.calibrating,p=d.powerstation,f=d.regime,h=d.teleporterhub,C=d.target,N=d.locked;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(!p||!h)&&(0,o.createComponentVNode)(2,a.Section,{title:"Error",children:[h,!p&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:" Powerstation not linked "}),p&&!h&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:" Teleporter hub not linked "})]}),p&&h&&(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Regime",children:[(0,o.createComponentVNode)(2,a.Button,{tooltip:"Teleport to another teleport hub. ",color:1===f?"good":null,onClick:function(){return l("setregime",{regime:1})},children:"Gate"}),(0,o.createComponentVNode)(2,a.Button,{tooltip:"One-way teleport. ",color:0===f?"good":null,onClick:function(){return l("setregime",{regime:0})},children:"Teleporter"}),(0,o.createComponentVNode)(2,a.Button,{tooltip:"Teleport to a location stored in a GPS device. ",color:2===f?"good":null,disabled:!N,onClick:function(){return l("setregime",{regime:2})},children:"GPS"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleport target",children:[0===f&&(0,o.createComponentVNode)(2,a.Dropdown,{width:"220px",selected:C,options:Object.keys(u),color:"None"!==C?"default":"bad",onSelected:function(e){return l("settarget",{x:u[e].x,y:u[e].y,z:u[e].z})}}),1===f&&(0,o.createComponentVNode)(2,a.Dropdown,{width:"220px",selected:C,options:Object.keys(u),color:"None"!==C?"default":"bad",onSelected:function(e){return l("settarget",{x:u[e].x,y:u[e].y,z:u[e].z})}}),2===f&&(0,o.createComponentVNode)(2,a.Box,{children:C})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Calibration",children:["None"!==C&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,i.GridColumn,{size:"2",children:m&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"In Progress"})||s&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Optimal"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Sub-Optimal"})}),(0,o.createComponentVNode)(2,i.GridColumn,{size:"3",children:(0,o.createComponentVNode)(2,a.Box,{"class":"ml-1",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",tooltip:"Calibrates the hub. Accidents may occur when the calibration is not optimal.",disabled:!(!s&&!m),onClick:function(){return l("calibrate")}})})})]}),"None"===C&&(0,o.createComponentVNode)(2,a.Box,{lineHeight:"21px",children:"No target set"})]})]})}),!!(N&&p&&h&&2===f)&&(0,o.createComponentVNode)(2,a.Section,{title:"GPS",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",justify:"space-around",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Upload GPS data",tooltip:"Loads the GPS data from the device.",icon:"upload",onClick:function(){return l("load")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Eject",tooltip:"Ejects the GPS device",icon:"eject",onClick:function(){return l("eject")}})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ThermoMachine=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(4);t.ThermoMachine=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,c.Section,{title:"Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:d.temperature,format:function(e){return(0,r.toFixed)(e,2)}})," K"]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:d.pressure,format:function(e){return(0,r.toFixed)(e,2)}})," kPa"]})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:d.on?"power-off":"times",content:d.on?"On":"Off",selected:d.on,onClick:function(){return l("power")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Setting",children:(0,o.createComponentVNode)(2,c.Button,{icon:d.cooling?"temperature-low":"temperature-high",content:d.cooling?"Cooling":"Heating",selected:d.cooling,onClick:function(){return l("cooling")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,c.NumberInput,{animated:!0,value:Math.round(d.target),unit:"K",width:"62px",minValue:Math.round(d.min),maxValue:Math.round(d.max),step:5,stepPixelSize:3,onDrag:function(e,t){return l("target",{target:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"fast-backward",disabled:d.target===d.min,title:"Minimum temperature",onClick:function(){return l("target",{target:d.min})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sync",disabled:d.target===d.initial,title:"Room Temperature",onClick:function(){return l("target",{target:d.initial})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"fast-forward",disabled:d.target===d.max,title:"Maximum Temperature",onClick:function(){return l("target",{target:d.max})}})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TransferValve=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.TransferValve=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.tank_one,u=l.tank_two,s=l.attached_device,m=l.valve;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Valve Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"unlock":"lock",content:m?"Open":"Closed",disabled:!d||!u,onClick:function(){return i("toggle")}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Assembly",buttons:(0,o.createComponentVNode)(2,a.Button,{textAlign:"center",width:"150px",icon:"cog",content:"Configure Assembly",disabled:!s,onClick:function(){return i("device")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:s?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Attachment",children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:s,disabled:!s,onClick:function(){return i("remove_device")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Attach Assembly"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Attachment One",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Attachment",children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:d,disabled:!d,onClick:function(){return i("tankone")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Attach Tank"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Attachment Two",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:u?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Attachment",children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:u,disabled:!u,onClick:function(){return i("tanktwo")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Attach Tank"})})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Uplink=void 0;var o=n(0),r=n(26),a=n(43),c=n(20),i=n(1),l=n(2),d=n(75),u=n(4),s=n(49),m=function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,p);case 1:return(0,o.createComponentVNode)(2,f);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}};t.Uplink=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=(n.data,(0,i.useLocalState)(t,"tabIndex",0)),c=a[0],d=a[1];return(0,o.createComponentVNode)(2,u.Window,{theme:"syndicate",children:[(0,o.createComponentVNode)(2,s.ComplexModal),(0,o.createComponentVNode)(2,u.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.Tabs,{children:[(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:0===c,onClick:function(){return d(0)},icon:"shopping-cart",children:"Purchase Equipment"},"PurchasePage"),(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:1===c,onClick:function(){return d(1)},icon:"user",children:"Exploitable Information"},"ExploitableInfo"),(0,o.createComponentVNode)(2,l.Tabs.Tab,{onClick:function(){return r("lock")},icon:"lock",children:"Lock Uplink"},"LockUplink")]}),m(c)]})]})};var p=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data,u=a.crystals,s=a.cats,m=(0,i.useLocalState)(t,"uplinkTab",s[0]),p=m[0],f=m[1];return(0,o.createComponentVNode)(2,l.Section,{title:"Current Balance: "+u+"TC",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Button,{content:"Random Item",icon:"question",onClick:function(){return r("buyRandom")}}),(0,o.createComponentVNode)(2,l.Button,{content:"Refund Currently Held Item",icon:"undo",onClick:function(){return r("refund")}})],4),children:(0,o.createComponentVNode)(2,l.Flex,{children:[(0,o.createComponentVNode)(2,d.FlexItem,{children:(0,o.createComponentVNode)(2,l.Tabs,{vertical:!0,children:s.map((function(e){return(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:e===p,onClick:function(){return f(e)},children:e.cat},e)}))})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,basis:0,children:p.items.map((function(e){return(0,o.createComponentVNode)(2,l.Section,{title:(0,c.decodeHtmlEntities)(e.name),buttons:(0,o.createComponentVNode)(2,l.Button,{content:"Buy ("+e.cost+"TC)"+(e.refundable?" [Refundable]":""),color:1===e.hijack_only&&"red",tooltip:1===e.hijack_only&&"Hijack Agents Only!",tooltipPosition:"left",onClick:function(){return r("buyItem",{item:e.obj_path})},disabled:e.cost>u}),children:(0,o.createComponentVNode)(2,l.Box,{italic:!0,children:(0,c.decodeHtmlEntities)(e.desc)})},(0,c.decodeHtmlEntities)(e.name))}))})]})})},f=function(e,t){var n=(0,i.useBackend)(t),u=(n.act,n.data.exploitable),s=(0,i.useLocalState)(t,"selectedRecord",u[0]),m=s[0],p=s[1],f=(0,i.useLocalState)(t,"searchText",""),h=f[0],C=f[1],N=function(e,t){void 0===t&&(t="");var n=(0,c.createSearch)(t,(function(e){return e.name}));return(0,a.flow)([(0,r.filter)((function(e){return null==e?void 0:e.name})),t&&(0,r.filter)(n),(0,r.sortBy)((function(e){return e.name}))])(e)}(u,h);return(0,o.createComponentVNode)(2,l.Section,{title:"Exploitable Records",children:(0,o.createComponentVNode)(2,l.Flex,{children:[(0,o.createComponentVNode)(2,d.FlexItem,{basis:20,children:[(0,o.createComponentVNode)(2,l.Input,{fluid:!0,mb:1,placeholder:"Search Crew",onInput:function(e,t){return C(t)}}),(0,o.createComponentVNode)(2,l.Tabs,{vertical:!0,children:N.map((function(e){return(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:e===m,onClick:function(){return p(e)},children:e.name},e)}))})]}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Name: "+m.name,children:[(0,o.createComponentVNode)(2,l.Box,{children:["Age: ",m.age]}),(0,o.createComponentVNode)(2,l.Box,{children:["Fingerprint: ",m.fingerprint]}),(0,o.createComponentVNode)(2,l.Box,{children:["Rank: ",m.rank]}),(0,o.createComponentVNode)(2,l.Box,{children:["Sex: ",m.sex]}),(0,o.createComponentVNode)(2,l.Box,{children:["Species: ",m.species]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Vending=void 0;var o=n(0),r=(n(8),n(1)),a=n(2),c=n(4),i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=e.product,d=e.productStock,u=e.productImage,s=i.chargesMoney,m=(i.user,i.userMoney),p=i.vend_ready,f=i.coin_name,h=(i.inserted_item_name,!s||0===l.price),C="ERROR!",N="";l.req_coin?(C="COIN",N="circle"):h?(C="FREE",N="arrow-circle-down"):(C=l.price,N="shopping-cart");var b=!p||!f&&l.req_coin||0===d||!h&&l.price>m;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+u,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:l.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.Box,{color:(d<=0?"bad":d<=l.max_amount/2&&"average")||"good",children:[d," in stock"]})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,disabled:b,icon:N,content:C,textAlign:"left",onClick:function(){return c("vend",{inum:l.inum})}})})]})};t.Vending=function(e,t){var n,l=(0,r.useBackend)(t),d=l.act,u=l.data,s=u.user,m=u.guestNotice,p=u.userMoney,f=u.chargesMoney,h=u.product_records,C=void 0===h?[]:h,N=u.coin_records,b=void 0===N?[]:N,g=u.hidden_records,V=void 0===g?[]:g,v=u.stock,y=(u.vend_ready,u.coin_name),_=u.inserted_item_name,x=u.panel_open,k=u.speaker,L=u.imagelist;return n=[].concat(C,b),u.extended_inventory&&(n=[].concat(n,V)),n=n.filter((function(e){return!!e})),(0,o.createComponentVNode)(2,c.Window,{title:"Vending Machine",resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!!f&&(0,o.createComponentVNode)(2,a.Section,{title:"User",children:s&&(0,o.createComponentVNode)(2,a.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,s.name,0),","," ",(0,o.createVNode)(1,"b",null,s.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[p,(0,o.createTextVNode)(" credits")],0),"."]})||(0,o.createComponentVNode)(2,a.Box,{color:"light-grey",children:m})}),!!y&&(0,o.createComponentVNode)(2,a.Section,{title:"Coin",buttons:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:"Remove Coin",onClick:function(){return d("remove_coin",{})}}),children:(0,o.createComponentVNode)(2,a.Box,{children:y})}),!!_&&(0,o.createComponentVNode)(2,a.Section,{title:"Item",buttons:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:"Eject Item",onClick:function(){return d("eject_item",{})}}),children:(0,o.createComponentVNode)(2,a.Box,{children:_})}),!!x&&(0,o.createComponentVNode)(2,a.Section,{title:"Maintenance",children:(0,o.createComponentVNode)(2,a.Button,{icon:k?"check":"volume-mute",selected:k,content:"Speaker",textAlign:"left",onClick:function(){return d("toggle_voice",{})}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Products",children:(0,o.createComponentVNode)(2,a.Table,{children:n.map((function(e){return(0,o.createComponentVNode)(2,i,{product:e,productStock:v[e.name],productImage:L[e.path]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.VolumeMixer=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.VolumeMixer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.channels;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{height:"100%",overflow:"auto",children:l.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{fontSize:"1.25rem",color:"label",mt:t>0&&"0.5rem",children:e.name}),(0,o.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{width:"24px",color:"transparent",children:(0,o.createComponentVNode)(2,a.Icon,{name:"volume-off",size:"1.5",mt:"0.1rem",onClick:function(){return i("volume",{channel:e.num,volume:0})}})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",mx:"1rem",children:(0,o.createComponentVNode)(2,a.Slider,{minValue:0,maxValue:100,stepPixelSize:3.13,value:e.volume,onChange:function(t,n){return i("volume",{channel:e.num,volume:n})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{width:"24px",color:"transparent",children:(0,o.createComponentVNode)(2,a.Icon,{name:"volume-up",size:"1.5",mt:"0.1rem",onClick:function(){return i("volume",{channel:e.num,volume:100})}})})})]})})],4,e.num)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Wires=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.Wires=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.wires||[],u=l.status||[];return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.color_name,labelColor:e.seen_color,color:e.seen_color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:e.cut?"Mend":"Cut",onClick:function(){return i("cut",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Pulse",onClick:function(){return i("pulse",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:e.attached?"Detach":"Attach",onClick:function(){return i("attach",{wire:e.color})}})],4),children:!!e.wire&&(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)("("),e.wire,(0,o.createTextVNode)(")")],0)},e.seen_color)}))})}),!!u.length&&(0,o.createComponentVNode)(2,a.Section,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{color:"lightgray",mt:.1,children:e},e)}))})]})})}}]); \ No newline at end of file +if(!document.createEvent){var t,n=!0,o=!1,r="__IE8__"+Math.random(),a=Object.defineProperty||function(e,t,n){e[t]=n.value},c=Object.defineProperties||function(t,n){for(var o in n)if(l.call(n,o))try{a(t,o,n[o])}catch(r){e.console}},i=Object.getOwnPropertyDescriptor,l=Object.prototype.hasOwnProperty,d=e.Element.prototype,u=e.Text.prototype,s=/^[a-z]+$/,m=/loaded|complete/,p={},f=document.createElement("div"),h=document.documentElement,C=h.removeAttribute,N=h.setAttribute,b=function(e){return{enumerable:!0,writable:!0,configurable:!0,value:e}};_(e.HTMLCommentElement.prototype,d,"nodeValue"),_(e.HTMLScriptElement.prototype,null,"text"),_(u,null,"nodeValue"),_(e.HTMLTitleElement.prototype,null,"text"),a(e.HTMLStyleElement.prototype,"textContent",(t=i(e.CSSStyleSheet.prototype,"cssText"),y((function(){return t.get.call(this.styleSheet)}),(function(e){t.set.call(this.styleSheet,e)}))));var g=/\b\s*alpha\s*\(\s*opacity\s*=\s*(\d+)\s*\)/;a(e.CSSStyleDeclaration.prototype,"opacity",{get:function(){var e=this.filter.match(g);return e?(e[1]/100).toString():""},set:function(e){this.zoom=1;var t=!1;e=e<1?" alpha(opacity="+Math.round(100*e)+")":"",this.filter=this.filter.replace(g,(function(){return t=!0,e})),!t&&e&&(this.filter+=e)}}),c(d,{textContent:{get:k,set:S},firstElementChild:{get:function(){for(var e=this.childNodes||[],t=0,n=e.length;t1?r-1:0),c=1;c1?t-1:0),o=1;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";var o,r;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=o,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(o||(t.VNodeFlags=o={})),t.ChildFlags=r,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(r||(t.ChildFlags=r={}))},function(e,t,n){"use strict";t.__esModule=!0,t.ByondUi=void 0;var o=n(0),r=n(8),a=n(431),c=n(25),i=n(61),l=n(17);function d(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var u=(0,i.createLogger)("ByondUi"),s=[];window.addEventListener("beforeunload",(function(){for(var e=0;e=0||(r[n]=e[n]);return r}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),C=this.state.viewBox,N=function(e,t,n,o){if(0===e.length)return[];var a=(0,r.zipWith)(Math.min).apply(void 0,e),c=(0,r.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(a[0]=n[0],c[0]=n[1]),o!==undefined&&(a[1]=o[0],c[1]=o[1]),(0,r.map)((function(e){return(0,r.zipWith)((function(e,t,n,o){return(e-t)/(n-t)*o}))(e,a,c,t)}))(e)}(a,C,c,l);if(N.length>0){var b=N[0],g=N[N.length-1];N.push([C[0]+f,g[1]]),N.push([C[0]+f,-f]),N.push([-f,-f]),N.push([-f,b[1]])}var V=function(e){for(var t="",n=0;n=0||(r[n]=e[n]);return r}(t,["children","color","title","buttons"]);return(0,o.createVNode)(1,"div","Collapsible",[(0,o.createVNode)(1,"div","Table",[(0,o.createVNode)(1,"div","Table__cell",(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({fluid:!0,color:l,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},s,{children:d}))),2),u&&(0,o.createVNode)(1,"div","Table__cell Table__cell--collapsing",u,0)],0),n&&(0,o.createComponentVNode)(2,r.Box,{mt:1,children:c})],0)},c}(o.Component);t.Collapsible=c},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var o=n(0),r=n(8),a=n(17);var c=function(e){var t=e.content,n=(e.children,e.className),c=e.color,i=e.backgroundColor,l=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["content","children","className","color","backgroundColor"]);return l.color=t?null:"transparent",l.backgroundColor=c||i,(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["ColorBox",n,(0,a.computeBoxClassName)(l)]),t||".",0,Object.assign({},(0,a.computeBoxProps)(l))))};t.ColorBox=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var o=n(0),r=n(8),a=n(17),c=n(130);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=l.prototype;return d.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},d.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},d.setSelected=function(e){this.setOpen(!1),this.props.onSelected(e)},d.buildMenu=function(){var e=this,t=this.props.options,n=(void 0===t?[]:t).map((function(t){return(0,o.createVNode)(1,"div","Dropdown__menuentry",t,0,{onClick:function(){e.setSelected(t)}},t)}));return n.length?n:"No Options Found"},d.render=function(){var e=this,t=this.props,n=t.color,l=void 0===n?"default":n,d=t.over,u=t.noscroll,s=t.nochevron,m=t.width,p=(t.onClick,t.selected),f=t.disabled,h=i(t,["color","over","noscroll","nochevron","width","onClick","selected","disabled"]),C=h.className,N=i(h,["className"]),b=d?!this.state.open:this.state.open,g=this.state.open?(0,o.createVNode)(1,"div",(0,r.classes)([u?"Dropdown__menu-noscroll":"Dropdown__menu",d&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:m}},null,(function(t){e.menuRef=t})):null;return(0,o.createVNode)(1,"div","Dropdown",[(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({width:m,className:(0,r.classes)(["Dropdown__control","Button","Button--color--"+l,f&&"Button--disabled",C])},N,{onClick:function(){f&&!e.state.open||e.setOpen(!e.state.open)},children:[(0,o.createVNode)(1,"span","Dropdown__selected-text",p,0),!!s||(0,o.createVNode)(1,"span","Dropdown__arrow-button",(0,o.createComponentVNode)(2,c.Icon,{name:b?"chevron-up":"chevron-down"}),2)]}))),g],0)},l}(o.Component);t.Dropdown=l},function(e,t,n){"use strict";t.__esModule=!0,t.Input=void 0;var o=n(0),r=n(8),a=n(17);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var i=function(e){return(0,r.isFalsy)(e)?"":e},l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,o=t.props.onInput;n||t.setEditing(!0),o&&o(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,o=t.props.onChange;n&&(t.setEditing(!1),o&&o(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,o=n.onInput,r=n.onChange,a=n.onEnter;return 13===e.keyCode?(t.setEditing(!1),r&&r(e,e.target.value),o&&o(e,e.target.value),a&&a(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):27===e.keyCode?(t.setEditing(!1),e.target.value=i(t.props.value),void e.target.blur()):void 0},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=l.prototype;return d.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=i(e),this.props.autofocus&&(t.focus(),t.selectionStart=0,t.selectionEnd=t.value.length))},d.componentDidUpdate=function(e,t){var n=this.state.editing,o=e.value,r=this.props.value,a=this.inputRef.current;a&&!n&&o!==r&&(a.value=i(r))},d.setEditing=function(e){this.setState({editing:e})},d.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,i=(e.autofocus,e.disabled),l=e.multiline,d=e.cols,u=void 0===d?32:d,s=e.rows,m=void 0===s?4:s,p=c(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder","autofocus","disabled","multiline","cols","rows"]),f=p.className,h=p.fluid,C=c(p,["className","fluid"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Input",h&&"Input--fluid",i&&"Input--disabled",f])},C,{children:[(0,o.createVNode)(1,"div","Input__baseline",".",16),l?(0,o.createVNode)(128,"textarea","Input__textarea",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,maxLength:t,cols:u,rows:m,disabled:i},null,this.inputRef):(0,o.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t,disabled:i},null,this.inputRef)]})))},l}(o.Component);t.Input=l},function(e,t,n){"use strict";t.__esModule=!0,t.Knob=void 0;var o=n(0),r=n(16),a=n(8),c=n(25),i=n(17),l=n(180),d=n(131);t.Knob=function(e){if(c.IS_IE8)return(0,o.normalizeProps)((0,o.createComponentVNode)(2,d.NumberInput,Object.assign({},e)));var t=e.animated,n=e.format,u=e.maxValue,s=e.minValue,m=e.onChange,p=e.onDrag,f=e.step,h=e.stepPixelSize,C=e.suppressFlicker,N=e.unit,b=e.value,g=e.className,V=e.style,v=e.fillValue,y=e.color,_=e.ranges,x=void 0===_?{}:_,k=e.size,L=e.bipolar,B=(e.children,e.popUpPosition),w=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","style","fillValue","color","ranges","size","bipolar","children","popUpPosition"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,l.DraggableControl,Object.assign({dragMatrix:[0,-1]},{animated:t,format:n,maxValue:u,minValue:s,onChange:m,onDrag:p,step:f,stepPixelSize:h,suppressFlicker:C,unit:N,value:b},{children:function(e){var t=e.dragging,n=(e.editing,e.value),c=e.displayValue,l=e.displayElement,d=e.inputElement,m=e.handleDragStart,p=(0,r.scale)(null!=v?v:c,s,u),f=(0,r.scale)(c,s,u),h=y||(0,r.keyOfMatchingRange)(null!=v?v:n,x)||"default",C=270*(f-.5);return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,a.classes)(["Knob","Knob--color--"+h,L&&"Knob--bipolar",g,(0,i.computeBoxClassName)(w)]),[(0,o.createVNode)(1,"div","Knob__circle",(0,o.createVNode)(1,"div","Knob__cursorBox",(0,o.createVNode)(1,"div","Knob__cursor"),2,{style:{transform:"rotate("+C+"deg)"}}),2),t&&(0,o.createVNode)(1,"div",(0,a.classes)(["Knob__popupValue",B&&"Knob__popupValue--"+B]),l,0),(0,o.createVNode)(32,"svg","Knob__ring Knob__ringTrackPivot",(0,o.createVNode)(32,"circle","Knob__ringTrack",null,1,{cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),(0,o.createVNode)(32,"svg","Knob__ring Knob__ringFillPivot",(0,o.createVNode)(32,"circle","Knob__ringFill",null,1,{style:{"stroke-dashoffset":((L?2.75:2)-1.5*p)*Math.PI*50},cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),d],0,Object.assign({},(0,i.computeBoxProps)(Object.assign({style:Object.assign({"font-size":k+"rem"},V)},w)),{onMouseDown:m})))}})))}},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledControls=void 0;var o=n(0),r=n(75);function a(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.children,n=a(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Flex,Object.assign({mx:-.5,align:"stretch",justify:"space-between"},n,{children:t})))};t.LabeledControls=c;c.Item=function(e){var t=e.label,n=e.children,c=a(e,["label","children"]);return(0,o.createComponentVNode)(2,r.Flex.Item,{mx:1,children:(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Flex,Object.assign({minWidth:"52px",height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},c,{children:[(0,o.createComponentVNode)(2,r.Flex.Item),(0,o.createComponentVNode)(2,r.Flex.Item,{children:n}),(0,o.createComponentVNode)(2,r.Flex.Item,{color:"label",children:t})]})))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NanoMap=void 0;var o=n(0),r=n(2),a=n(1),c=n(77),i=n(181);var l=function(e){return e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.cancelBubble=!0,e.returnValue=!1,!1},d=function(e){var t,n;function c(t){var n;n=e.call(this,t)||this;window.innerWidth,window.innerHeight;return n.state={offsetX:128,offsetY:48,transform:"none",dragging:!1,originX:null,originY:null,zoom:1},n.handleDragStart=function(e){n.ref=e.target,n.setState({dragging:!1,originX:e.screenX,originY:e.screenY}),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd),l(e)},n.handleDragMove=function(e){n.setState((function(t){var n=Object.assign({},t),o=e.screenX-n.originX,r=e.screenY-n.originY;return t.dragging?(n.offsetX+=o,n.offsetY+=r,n.originX=e.screenX,n.originY=e.screenY):n.dragging=!0,n})),l(e)},n.handleDragEnd=function(e){n.setState({dragging:!1,originX:null,originY:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),l(e)},n.handleZoom=function(e,o){n.setState((function(e){var n=Math.min(Math.max(o,1),8),r=1.5*(n-e.zoom);return e.zoom=n,e.offsetX=e.offsetX-262*r,e.offsetY=e.offsetY-256*r,t.onZoom&&t.onZoom(e.zoom),e}))},n}return n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,c.prototype.render=function(){var e=(0,a.useBackend)(this.context).config,t=this.state,n=t.dragging,c=t.offsetX,i=t.offsetY,l=t.zoom,d=void 0===l?1:l,s=this.props.children,m=510*d+"px",p={width:m,height:m,"margin-top":i+"px","margin-left":c+"px",overflow:"hidden",position:"relative","background-image":"url("+e.map+"_nanomap_z1.png)","background-size":"cover","background-repeat":"no-repeat","text-align":"center",cursor:n?"move":"auto"};return(0,o.createComponentVNode)(2,r.Box,{className:"NanoMap__container",children:[(0,o.createComponentVNode)(2,r.Box,{style:p,textAlign:"center",onMouseDown:this.handleDragStart,children:(0,o.createComponentVNode)(2,r.Box,{children:s})}),(0,o.createComponentVNode)(2,u,{zoom:d,onZoom:this.handleZoom})]})},c}(o.Component);t.NanoMap=d;d.Marker=function(e,t){var n=e.x,a=e.y,c=e.zoom,i=void 0===c?1:c,l=e.icon,d=e.tooltip,u=e.color,s=2*n*i-i-3,m=2*a*i-i-3;return(0,o.createVNode)(1,"div",null,(0,o.createComponentVNode)(2,r.Box,{position:"absolute",className:"NanoMap__marker",lineHeight:"0",bottom:m+"px",left:s+"px",children:[(0,o.createComponentVNode)(2,r.Icon,{name:l,color:u,fontSize:"6px"}),(0,o.createComponentVNode)(2,r.Tooltip,{content:d})]}),2)};var u=function(e,t){return(0,o.createComponentVNode)(2,r.Box,{className:"NanoMap__zoomer",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Zoom",children:(0,o.createComponentVNode)(2,i.Slider,{minValue:"1",maxValue:"8",stepPixelSize:"10",format:function(e){return e+"x"},value:e.zoom,onDrag:function(t,n){return e.onZoom(t,n)}})})})})};d.Zoomer=u},function(e,t,n){"use strict";t.__esModule=!0,t.Modal=void 0;var o=n(0),r=n(8),a=n(17),c=n(177);t.Modal=function(e){var t,n=e.className,i=e.children,l=e.onEnter,d=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","children","onEnter"]);return l&&(t=function(e){13===e.keyCode&&l(e)}),(0,o.createComponentVNode)(2,c.Dimmer,{onKeyDown:t,children:(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["Modal",n,(0,a.computeBoxClassName)(d)]),i,0,Object.assign({},(0,a.computeBoxProps)(d))))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var o=n(0),r=n(8),a=n(17);var c=function(e){var t=e.className,n=e.color,c=e.info,i=(e.warning,e.success),l=e.danger,d=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","color","info","warning","success","danger"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["NoticeBox",n&&"NoticeBox--color--"+n,c&&"NoticeBox--type--info",i&&"NoticeBox--type--success",l&&"NoticeBox--type--danger",t])},d)))};t.NoticeBox=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBarCountdown=t.ProgressBar=void 0;var o=n(0),r=n(16),a=n(8),c=n(17);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t=e.className,n=e.value,l=e.minValue,d=void 0===l?0:l,u=e.maxValue,s=void 0===u?1:u,m=e.color,p=e.ranges,f=void 0===p?{}:p,h=e.children,C=i(e,["className","value","minValue","maxValue","color","ranges","children"]),N=(0,r.scale)(n,d,s),b=h!==undefined,g=m||(0,r.keyOfMatchingRange)(n,f)||"default";return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,a.classes)(["ProgressBar","ProgressBar--color--"+g,t,(0,c.computeBoxClassName)(C)]),[(0,o.createVNode)(1,"div","ProgressBar__fill ProgressBar__fill--animated",null,1,{style:{width:100*(0,r.clamp01)(N)+"%"}}),(0,o.createVNode)(1,"div","ProgressBar__content",b?h:(0,r.toFixed)(100*N)+"%",0)],4,Object.assign({},(0,c.computeBoxProps)(C))))};t.ProgressBar=l,l.defaultHooks=a.pureComponentHooks;var d=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={value:Math.max(100*t.current,0)},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var a=r.prototype;return a.tick=function(){var e=Math.max(this.state.value+this.props.rate,0);e<=0&&clearInterval(this.timer),this.setState((function(t){return{value:e}}))},a.componentDidMount=function(){var e=this;this.timer=setInterval((function(){return e.tick()}),this.props.rate)},a.componentWillUnmount=function(){clearInterval(this.timer)},a.render=function(){var e=this.props,t=e.start,n=(e.current,e.end),r=i(e,["start","current","end"]),a=(this.state.value/100-t)/(n-t);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,l,Object.assign({value:a},r)))},r}(o.Component);t.ProgressBarCountdown=d,d.defaultProps={rate:1e3},l.Countdown=d},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var o=n(0),r=n(8),a=n(17);var c=function(e){var t=e.className,n=e.title,c=e.level,i=void 0===c?1:c,l=e.buttons,d=e.content,u=e.stretchContents,s=e.noTopPadding,m=e.children,p=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","title","level","buttons","content","stretchContents","noTopPadding","children"]),f=!(0,r.isFalsy)(n)||!(0,r.isFalsy)(l),h=!(0,r.isFalsy)(d)||!(0,r.isFalsy)(m);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Section","Section--level--"+i,e.flexGrow&&"Section--flex",t])},p,{children:[f&&(0,o.createVNode)(1,"div","Section__title",[(0,o.createVNode)(1,"span","Section__titleText",n,0),(0,o.createVNode)(1,"div","Section__buttons",l,0)],4),h&&(0,o.createComponentVNode)(2,a.Box,{className:(0,r.classes)(["Section__content",!!u&&"Section__content--stretchContents",!!s&&"Section__content--noTopPadding"]),children:[d,m]})]})))};t.Section=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Tabs=void 0;var o=n(0),r=n(8),a=n(17),c=n(129);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t=e.className,n=e.vertical,c=e.children,l=i(e,["className","vertical","children"]);return(0,o.normalizeProps)((0,o.createVNode)(1,"div",(0,r.classes)(["Tabs",n?"Tabs--vertical":"Tabs--horizontal",t,(0,a.computeBoxClassName)(l)]),(0,o.createVNode)(1,"div","Tabs__tabBox",c,0),2,Object.assign({},(0,a.computeBoxProps)(l))))};t.Tabs=l;l.Tab=function(e){var t=e.className,n=e.selected,a=e.altSelection,l=i(e,["className","selected","altSelection"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.Button,Object.assign({className:(0,r.classes)(["Tabs__tab",n&&"Tabs__tab--selected",a&&n&&"Tabs__tab--altSelection",t]),selected:!a&&n,color:"transparent"},l)))}},function(e,t,n){"use strict";t.__esModule=!0,t.TimeDisplay=void 0;t.TimeDisplay=function(e){var t=e.totalSeconds;return function(e){return(!e||e<0)&&(e=0),[Math.floor(e/60).toString(10),(Math.floor(e)%60).toString(10)].map((function(e){return e.length<2?"0"+e:e})).join(":")}(void 0===t?0:t)}},function(e,t,n){var o={"./AICard.js":447,"./AIFixer.js":448,"./APC.js":449,"./ATM.js":450,"./AccountsUplinkTerminal.js":451,"./AiAirlock.js":452,"./AirAlarm.js":453,"./AirlockAccessController.js":454,"./AirlockElectronics.js":455,"./AppearanceChanger.js":456,"./AtmosAlertConsole.js":457,"./AtmosControl.js":458,"./AtmosFilter.js":459,"./AtmosMixer.js":460,"./AtmosPump.js":461,"./Autolathe.js":462,"./BlueSpaceArtilleryControl.js":463,"./BluespaceTap.js":464,"./BodyScanner.js":465,"./BotClean.js":466,"./BotSecurity.js":467,"./BrigCells.js":468,"./BrigTimer.js":469,"./CameraConsole.js":470,"./Canister.js":471,"./CardComputer.js":472,"./CargoConsole.js":473,"./ChemDispenser.js":474,"./ChemHeater.js":478,"./ChemMaster.js":479,"./CloningConsole.js":480,"./CommunicationsComputer.js":481,"./Contractor.js":482,"./ConveyorSwitch.js":483,"./CrewMonitor.js":484,"./Cryo.js":485,"./DNAModifier.js":486,"./DisposalBin.js":487,"./DnaVault.js":488,"./DroneConsole.js":489,"./EFTPOS.js":490,"./ERTManager.js":491,"./Electropack.js":492,"./EvolutionMenu.js":493,"./ExosuitFabricator.js":494,"./ExternalAirlockController.js":495,"./FaxMachine.js":496,"./FloorPainter.js":497,"./GPS.js":498,"./GenericCrewManifest.js":499,"./GhostHudPanel.js":500,"./GravityGen.js":501,"./GuestPass.js":502,"./HandheldChemDispenser.js":503,"./Instrument.js":504,"./KeycardAuth.js":505,"./LaborClaimConsole.js":506,"./LawManager.js":507,"./MechBayConsole.js":508,"./MechaControlConsole.js":509,"./MedicalRecords.js":510,"./MiningVendor.js":511,"./Newscaster.js":512,"./NuclearBomb.js":513,"./OperatingComputer.js":514,"./Orbit.js":515,"./OreRedemption.js":516,"./PAI.js":517,"./PDA.js":530,"./Pacman.js":546,"./PersonalCrafting.js":547,"./PodTracking.js":548,"./PoolController.js":549,"./PortablePump.js":550,"./PortableScrubber.js":551,"./PortableTurret.js":552,"./PowerMonitor.js":188,"./RCD.js":553,"./RPD.js":554,"./Radio.js":555,"./RequestConsole.js":556,"./RndConsole.js":62,"./RobotSelfDiagnosis.js":571,"./RoboticsControlConsole.js":572,"./Safe.js":573,"./SatelliteControl.js":574,"./SecurityRecords.js":575,"./ShuttleConsole.js":576,"./ShuttleManipulator.js":577,"./Sleeper.js":578,"./SlotMachine.js":579,"./Smartfridge.js":580,"./Smes.js":581,"./SolarControl.js":582,"./SpawnersMenu.js":583,"./StationAlertConsole.js":584,"./SuitStorage.js":585,"./SupermatterMonitor.js":586,"./SyndicateComputerSimple.js":587,"./TEG.js":588,"./TachyonArray.js":589,"./Tank.js":590,"./TankDispenser.js":591,"./TcommsCore.js":592,"./TcommsRelay.js":593,"./Teleporter.js":594,"./ThermoMachine.js":595,"./TransferValve.js":596,"./Uplink.js":597,"./Vending.js":598,"./VolumeMixer.js":599,"./Wires.js":600,"./WizardApprenticeContract.js":601};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=a,e.exports=r,r.id=446},function(e,t,n){"use strict";t.__esModule=!0,t.AICard=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AICard=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;if(0===l.has_ai)return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Stored AI",children:(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createVNode)(1,"h3",null,"No AI detected.",16)})})})});var d=null;return d=l.integrity>=75?"green":l.integrity>=25?"yellow":"red",(0,o.createComponentVNode)(2,c.Window,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored AI",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,display:"inline-block",children:(0,o.createVNode)(1,"h3",null,l.name,0)}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:d,value:l.integrity/100})})})}),(0,o.createComponentVNode)(2,a.Box,{color:"red",children:(0,o.createVNode)(1,"h2",null,1===l.flushing?"Wipe of AI in progress...":"",0)})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",children:!!l.has_laws&&(0,o.createComponentVNode)(2,a.Box,{children:l.laws.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{display:"inline-block",children:e},t)}))})||(0,o.createComponentVNode)(2,a.Box,{color:"red",children:(0,o.createVNode)(1,"h3",null,"No laws detected.",16)})}),(0,o.createComponentVNode)(2,a.Section,{title:"Actions",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Wireless Activity",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.wireless?"check":"times",content:l.wireless?"Enabled":"Disabled",color:l.wireless?"green":"red",onClick:function(){return i("wireless")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Subspace Transceiver",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.radio?"check":"times",content:l.radio?"Enabled":"Disabled",color:l.radio?"green":"red",onClick:function(){return i("radio")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Wipe",children:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash-alt",confirmIcon:"trash-alt",disabled:l.flushing||0===l.integrity,confirmColor:"red",content:"Wipe AI",onClick:function(){return i("wipe")}})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AIFixer=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AIFixer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;if(null===l.occupant)return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Stored AI",children:(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createVNode)(1,"h3",null,"No artificial intelligence detected.",16)})})})});var d=null;d=2!==l.stat&&null!==l.stat;var u=null;u=l.integrity>=75?"green":l.integrity>=25?"yellow":"red";var s=null;return s=l.integrity>=100,(0,o.createComponentVNode)(2,c.Window,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored AI",children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:(0,o.createVNode)(1,"h3",null,l.occupant,0)})}),(0,o.createComponentVNode)(2,a.Section,{title:"Information",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:u,value:l.integrity/100})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:d?"green":"red",children:d?"Functional":"Non-Functional"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",children:!!l.has_laws&&(0,o.createComponentVNode)(2,a.Box,{children:l.laws.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{display:"inline-block",children:e},t)}))})||(0,o.createComponentVNode)(2,a.Box,{color:"red",children:(0,o.createVNode)(1,"h3",null,"No laws detected.",16)})}),(0,o.createComponentVNode)(2,a.Section,{title:"Actions",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Wireless Activity",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.wireless?"times":"check",content:l.wireless?"Disabled":"Enabled",color:l.wireless?"red":"green",onClick:function(){return i("wireless")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Subspace Transceiver",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.radio?"times":"check",content:l.radio?"Disabled":"Enabled",color:l.radio?"red":"green",onClick:function(){return i("radio")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Start Repairs",children:(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:s||l.active,content:s?"Already Repaired":"Repair",onClick:function(){return i("fix")}})})]}),(0,o.createComponentVNode)(2,a.Box,{color:"green",lineHeight:2,children:l.active?"Reconstruction in progress.":""})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.APC=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(183);t.APC=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,u)})})};var l={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,u=n.data,s=u.locked&&!u.siliconUser,m=(u.normallyLocked,l[u.externalPower]||l[0]),p=l[u.chargingStatus]||l[0],f=u.powerChannels||[],h=d[u.malfStatus]||d[0],C=u.powerCellStatus/100;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:m.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.isOperating?"power-off":"times",content:u.isOperating?"On":"Off",selected:u.isOperating&&!s,color:u.isOperating?"":"bad",disabled:s,onClick:function(){return c("breaker")}}),children:["[ ",m.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:C})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.chargeMode?"sync":"times",content:u.chargeMode?"Auto":"Off",selected:u.chargeMode,disabled:s,onClick:function(){return c("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[f.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!s&&(1===e.status||3===e.status),disabled:s,onClick:function(){return c("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!s&&2===e.status,disabled:s,onClick:function(){return c("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!s&&0===e.status,disabled:s,onClick:function(){return c("channel",t.off)}})],4),children:[e.powerLoad," W"]},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,[u.totalLoad,(0,o.createTextVNode)(" W")],0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!u.siliconUser&&(0,o.createFragment)([!!u.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:h.icon,content:h.content,color:"bad",onClick:function(){return c(h.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return c("overload")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.coverLocked?"lock":"unlock",content:u.coverLocked?"Engaged":"Disengaged",selected:u.coverLocked,disabled:s,onClick:function(){return c("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:u.nightshiftLights?"Enabled":"Disabled",selected:u.nightshiftLights,onClick:function(){return c("toggle_nightshift")}})})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ATM=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.ATM=function(e,t){var n,p=(0,r.useBackend)(t),f=(p.act,p.data),h=f.view_screen,C=f.authenticated_account,N=f.ticks_left_locked_down,b=f.linked_db;if(N>0)n=(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle"}),"Maximum number of pin attempts exceeded! Access to this ATM has been temporarily disabled."]});else if(b)if(C)switch(h){case 1:n=(0,o.createComponentVNode)(2,l);break;case 2:n=(0,o.createComponentVNode)(2,d);break;case 3:n=(0,o.createComponentVNode)(2,m);break;default:n=(0,o.createComponentVNode)(2,u)}else n=(0,o.createComponentVNode)(2,s);else n=(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle"}),"Unable to connect to accounts database, please retry and if the issue persists contact Nanotrasen IT support."]});return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i),(0,o.createComponentVNode)(2,a.Section,{children:n})]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.machine_id,d=i.held_card_name;return(0,o.createComponentVNode)(2,a.Section,{title:"Nanotrasen Automatic Teller Machine",children:[(0,o.createComponentVNode)(2,a.Box,{children:"For all your monetary need!"}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Icon,{name:"info-circle"})," This terminal is ",(0,o.createVNode)(1,"i",null,l,0),", report this code when contacting Nanotrasen IT Support."]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Card",children:(0,o.createComponentVNode)(2,a.Button,{content:d,icon:"eject",onClick:function(){return c("insert_card")}})})})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.security_level;return(0,o.createComponentVNode)(2,a.Section,{title:"Select a new security level for this account",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Level",children:(0,o.createComponentVNode)(2,a.Button,{content:"Zero",icon:"unlock",selected:0===i,onClick:function(){return c("change_security_level",{new_security_level:0})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:"Either the account number or card is required to access this account. EFTPOS transactions will require a card and ask for a pin, but not verify the pin is correct."}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Level",children:(0,o.createComponentVNode)(2,a.Button,{content:"One",icon:"unlock",selected:1===i,onClick:function(){return c("change_security_level",{new_security_level:1})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:"An account number and pin must be manually entered to access this account and process transactions."}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Level",children:(0,o.createComponentVNode)(2,a.Button,{content:"Two",selected:2===i,icon:"unlock",onClick:function(){return c("change_security_level",{new_security_level:2})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:"In addition to account number and pin, a card is required to access this account and process transactions."})]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,p)]})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(0,r.useLocalState)(t,"targetAccNumber",0),d=l[0],u=l[1],s=(0,r.useLocalState)(t,"fundsAmount",0),m=s[0],f=s[1],h=(0,r.useLocalState)(t,"purpose",0),C=h[0],N=h[1],b=i.money;return(0,o.createComponentVNode)(2,a.Section,{title:"Transfer Fund",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Account Balance",children:["$",b]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target account number",children:(0,o.createComponentVNode)(2,a.Input,{placeholder:"6 Digit Number",onInput:function(e,t){return u(t)}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Funds to transfer",children:(0,o.createComponentVNode)(2,a.Input,{onInput:function(e,t){return f(t)}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transaction Purpose",children:(0,o.createComponentVNode)(2,a.Input,{fluid:!0,onInput:function(e,t){return N(t)}})})]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Button,{content:"Transfer",icon:"sign-out-alt",onClick:function(){return c("transfer",{target_acc_number:d,funds_amount:m,purpose:C})}}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,p)]})},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(0,r.useLocalState)(t,"fundsAmount",0),d=l[0],u=l[1],s=i.owner_name,m=i.money;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Welcome, "+s,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Logout",icon:"sign-out-alt",onClick:function(){return c("logout")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Account Balance",children:["$",m]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Withdrawal Amount",children:(0,o.createComponentVNode)(2,a.Input,{onInput:function(e,t){return u(t)}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Withdraw Fund",icon:"sign-out-alt",onClick:function(){return c("withdrawal",{funds_amount:d})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Menu",children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Change account security level",icon:"lock",onClick:function(){return c("view_screen",{view_screen:1})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Make transfer",icon:"exchange-alt",onClick:function(){return c("view_screen",{view_screen:2})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"View transaction log",icon:"list",onClick:function(){return c("view_screen",{view_screen:3})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Print balance statement",icon:"print",onClick:function(){return c("balance_statement")}})})]})],4)},s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(0,r.useLocalState)(t,"accountID",null),d=l[0],u=l[1],s=(0,r.useLocalState)(t,"accountPin",null),m=s[0],p=s[1];i.machine_id,i.held_card_name;return(0,o.createComponentVNode)(2,a.Section,{title:"Insert card or enter ID and pin to login",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Account ID",children:(0,o.createComponentVNode)(2,a.Input,{placeholder:"6 Digit Number",onInput:function(e,t){return u(t)}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pin",children:(0,o.createComponentVNode)(2,a.Input,{placeholder:"6 Digit Number",onInput:function(e,t){return p(t)}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Login",icon:"sign-in-alt",onClick:function(){return c("attempt_auth",{account_num:d,account_pin:m})}})})]})})},m=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.transaction_log);return(0,o.createComponentVNode)(2,a.Section,{title:"Transactions",children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Timestamp"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Target"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Reason"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Terminal"})]}),c.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{p:"1rem",children:[e.date," ",e.time]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.target_name}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.purpose}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:["$",e.amount]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.source_terminal})]},e)}))]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,p)]})},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act;n.data;return(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"sign-out-alt",onClick:function(){return c("view_screen",{view_screen:0})}})}},function(e,t,n){"use strict";t.__esModule=!0,t.AccountsUplinkTerminal=void 0;var o=n(0),r=n(19),a=n(1),c=n(2),i=n(75),l=n(4),d=n(132),u=n(133);t.AccountsUplinkTerminal=function(e,t){var n,r=(0,a.useBackend)(t),c=(r.act,r.data),i=c.loginState,m=c.currentPage;return i.logged_in?(1===m?n=(0,o.createComponentVNode)(2,s):2===m?n=(0,o.createComponentVNode)(2,f):3===m&&(n=(0,o.createComponentVNode)(2,h)),(0,o.createComponentVNode)(2,l.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d.LoginInfo),n]})})):(0,o.createComponentVNode)(2,l.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{children:(0,o.createComponentVNode)(2,u.LoginScreen)})})};var s=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.accounts,d=(0,a.useLocalState)(t,"searchText",""),u=d[0],s=(d[1],(0,a.useLocalState)(t,"sortId","owner_name")),f=s[0],h=(s[1],(0,a.useLocalState)(t,"sortOrder",!0)),C=h[0];h[1];return(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,c.Flex.Item,{flexGrow:"1",mt:"0.5rem",children:(0,o.createComponentVNode)(2,c.Section,{height:"100%",children:(0,o.createComponentVNode)(2,c.Table,{className:"AccountsUplinkTerminal__list",children:[(0,o.createComponentVNode)(2,c.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,m,{id:"owner_name",children:"Account Holder"}),(0,o.createComponentVNode)(2,m,{id:"account_number",children:"Account Number"}),(0,o.createComponentVNode)(2,m,{id:"suspended",children:"Account Status"})]}),l.filter((0,r.createSearch)(u,(function(e){return e.owner_name+"|"+e.account_number+"|"+e.suspended}))).sort((function(e,t){var n=C?1:-1;return e[f].localeCompare(t[f])*n})).map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{onClick:function(){return i("view_account_detail",{index:e.account_index})},children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user"})," ",e.owner_name]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:["#",e.account_number]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.suspended})]},e.id)}))]})})})]})},m=function(e,t){var n=(0,a.useLocalState)(t,"sortId","name"),r=n[0],i=n[1],l=(0,a.useLocalState)(t,"sortOrder",!0),d=l[0],u=l[1],s=e.id,m=e.children;return(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{color:r!==s&&"transparent",width:"100%",onClick:function(){r===s?u(!d):(i(s),u(!0))},children:[m,r===s&&(0,o.createComponentVNode)(2,c.Icon,{name:d?"sort-up":"sort-down",ml:"0.25rem;"})]})})},p=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data.is_printing,d=(0,a.useLocalState)(t,"searchText",""),u=(d[0],d[1]);return(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,i.FlexItem,{children:[(0,o.createComponentVNode)(2,c.Button,{content:"New Account",icon:"plus",onClick:function(){return r("create_new_account")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"print",content:"Print Account List",disabled:l,ml:"0.25rem",onClick:function(){return r("print_records")}})]}),(0,o.createComponentVNode)(2,i.FlexItem,{grow:"1",ml:"0.5rem",children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"Search by account holder, number, status",width:"100%",onInput:function(e,t){return u(t)}})})]})},f=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.is_printing,d=i.account_number,u=i.owner_name,s=i.money,m=i.suspended,p=i.transactions;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"#"+d+" / "+u,mt:1,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"print",content:"Print Account Details",disabled:l,onClick:function(){return r("print_account_details")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return r("back")}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Account Number",children:["#",d]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Account Holder",children:u}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Account Balance",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Account Status",color:m?"red":"green",children:[m?"Suspended":"Active",(0,o.createComponentVNode)(2,c.Button,{ml:1,content:m?"Unsuspend":"Suspend",icon:m?"unlock":"lock",onClick:function(){return r("toggle_suspension")}})]})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Transactions",children:(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Timestamp"}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Target"}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Reason"}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Value"}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Terminal"})]}),p.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[e.date," ",e.time]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.target_name}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.purpose}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:["$",e.amount]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.source_terminal})]},e)}))]})})],4)},h=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=(n.data,(0,a.useLocalState)(t,"accName","")),l=i[0],d=i[1],u=(0,a.useLocalState)(t,"accDeposit",""),s=u[0],m=u[1];return(0,o.createComponentVNode)(2,c.Section,{title:"Create Account",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return r("back")}}),children:[(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Account Holder",children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"Name Here",onChange:function(e,t){return d(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Initial Deposit",children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"0",onChange:function(e,t){return m(t)}})})]}),(0,o.createComponentVNode)(2,c.Button,{mt:1,fluid:!0,content:"Create Account",onClick:function(){return r("finalise_create_account",{holder_name:l,starting_funds:s})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}};t.AiAirlock=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=i[d.power.main]||i[0],s=i[d.power.backup]||i[0],m=i[d.shock]||i[0];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:390,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.main,content:"Disrupt",onClick:function(){return l("disrupt-main")}}),children:[d.power.main?"Online":"Offline"," ",d.wires.main_power?d.power.main_timeleft>0&&"["+d.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.backup,content:"Disrupt",onClick:function(){return l("disrupt-backup")}}),children:[d.power.backup?"Online":"Offline"," ",d.wires.backup_power?d.power.backup_timeleft>0&&"["+d.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:m.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(d.wires.shock&&2!==d.shock),content:"Restore",onClick:function(){return l("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock,content:"Temporary",onClick:function(){return l("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock||0===d.shock,content:"Permanent",onClick:function(){return l("shock-perm")}})],4),children:[2===d.shock?"Safe":"Electrified"," ",(d.wires.shock?d.shock_timeleft>0&&"["+d.shock_timeleft+"s]":"[Wires have been cut!]")||-1===d.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.id_scanner?"power-off":"times",content:d.id_scanner?"Enabled":"Disabled",selected:d.id_scanner,disabled:!d.wires.id_scanner,onClick:function(){return l("idscan-toggle")}}),children:!d.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.emergency?"power-off":"times",content:d.emergency?"Enabled":"Disabled",selected:d.emergency,onClick:function(){return l("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.locked?"lock":"unlock",content:d.locked?"Lowered":"Raised",selected:d.locked,disabled:!d.wires.bolts,onClick:function(){return l("bolt-toggle")}}),children:!d.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.lights?"power-off":"times",content:d.lights?"Enabled":"Disabled",selected:d.lights,disabled:!d.wires.lights,onClick:function(){return l("light-toggle")}}),children:!d.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.safe?"power-off":"times",content:d.safe?"Enabled":"Disabled",selected:d.safe,disabled:!d.wires.safe,onClick:function(){return l("safe-toggle")}}),children:!d.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.speed?"power-off":"times",content:d.speed?"Enabled":"Disabled",selected:d.speed,disabled:!d.wires.timing,onClick:function(){return l("speed-toggle")}}),children:!d.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.opened?"sign-out-alt":"sign-in-alt",content:d.opened?"Open":"Closed",selected:d.opened,disabled:d.locked||d.welded,onClick:function(){return l("open-close")}}),children:!(!d.locked&&!d.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),d.locked?"bolted":"",d.locked&&d.welded?" and ":"",d.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(183);t.AirAlarm=function(e,t){var n=(0,r.useBackend)(t),a=(n.act,n.data.locked);return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),!a&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u),(0,o.createComponentVNode)(2,s)],4)]})})};var l=function(e){return 0===e?"green":1===e?"orange":"red"},d=function(e,t){var n,c=(0,r.useBackend)(t),i=c.act,d=c.data,u=d.air,s=d.mode,m=d.atmos_alarm,p=d.locked,f=d.alarmActivated,h=d.rcon,C=d.target_temp;return n=0===u.danger.overall?0===m?"Optimal":"Caution: Atmos alert in area":1===u.danger.overall?"Caution":"DANGER: Internals Required",(0,o.createComponentVNode)(2,a.Section,{title:"Air Status",children:u?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.Box,{color:l(u.danger.pressure),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.pressure})," kPa",!p&&(0,o.createFragment)([(0,o.createTextVNode)("\xa0"),(0,o.createComponentVNode)(2,a.Button,{content:3===s?"Deactivate Panic Siphon":"Activate Panic Siphon",selected:3===s,icon:"exclamation-triangle",onClick:function(){return i("mode",{mode:3===s?1:3})}})],4)]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.contents.oxygen/100,color:l(u.danger.oxygen)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nitrogen",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.contents.nitrogen/100,color:l(u.danger.nitrogen)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Carbon Dioxide",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.contents.co2/100,color:l(u.danger.co2)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Toxins",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.contents.plasma/100,color:l(u.danger.plasma)})}),u.contents.other>0&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Other",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.contents.other/100,color:l(u.danger.other)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,a.Box,{color:l(u.danger.temperature),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.temperature})," K / ",(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.temperature_c})," C\xa0",(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-full",content:C+" C",onClick:function(){return i("temperature")}}),(0,o.createComponentVNode)(2,a.Button,{content:u.thermostat_state?"On":"Off",selected:u.thermostat_state,icon:"power-off",onClick:function(){return i("thermostat_state")}})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Local Status",children:(0,o.createComponentVNode)(2,a.Box,{color:l(u.danger.overall),children:[n,!p&&(0,o.createFragment)([(0,o.createTextVNode)("\xa0"),(0,o.createComponentVNode)(2,a.Button,{content:f?"Reset Alarm":"Activate Alarm",selected:f,onClick:function(){return i(f?"atmos_reset":"atmos_alarm")}})],4)]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Remote Control Settings",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Off",selected:1===h,onClick:function(){return i("set_rcon",{rcon:1})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Auto",selected:2===h,onClick:function(){return i("set_rcon",{rcon:2})}}),(0,o.createComponentVNode)(2,a.Button,{content:"On",selected:3===h,onClick:function(){return i("set_rcon",{rcon:3})}})]})]}):(0,o.createComponentVNode)(2,a.Box,{children:"Unable to acquire air sample!"})})},u=function(e,t){var n=(0,r.useLocalState)(t,"tabIndex",0),c=n[0],i=n[1];return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:0===c,onClick:function(){return i(0)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"sign-out-alt"})," Vent Control"]},"Vents"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===c,onClick:function(){return i(1)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"sign-in-alt"})," Scrubber Control"]},"Scrubbers"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===c,onClick:function(){return i(2)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"cog"})," Mode"]},"Mode"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:3===c,onClick:function(){return i(3)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"tachometer-alt"})," Thresholds"]},"Thresholds")]})},s=function(e,t){var n=(0,r.useLocalState)(t,"tabIndex",0),a=n[0];n[1];switch(a){case 0:return(0,o.createComponentVNode)(2,m);case 1:return(0,o.createComponentVNode)(2,p);case 2:return(0,o.createComponentVNode)(2,f);case 3:return(0,o.createComponentVNode)(2,h);default:return"WE SHOULDN'T BE HERE!"}},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act;return n.data.vents.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,a.Button,{content:e.power?"On":"Off",selected:e.power,icon:"power-off",onClick:function(){return c("command",{cmd:"power",val:1===e.power?0:1,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"release"===e.direction?"Blowing":"Siphoning",icon:"release"===e.direction?"sign-out-alt":"sign-in-alt",onClick:function(){return c("command",{cmd:"direction",val:"release"===e.direction?0:1,id_tag:e.id_tag})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Checks",children:[(0,o.createComponentVNode)(2,a.Button,{content:"External",selected:1===e.checks,onClick:function(){return c("command",{cmd:"checks",val:1,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Internal",selected:2===e.checks,onClick:function(){return c("command",{cmd:"checks",val:2,id_tag:e.id_tag})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"External Pressure Target",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:e.external})," kPa\xa0",(0,o.createComponentVNode)(2,a.Button,{content:"Set",icon:"cog",onClick:function(){return c("command",{cmd:"set_external_pressure",id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",icon:"redo-alt",onClick:function(){return c("command",{cmd:"set_external_pressure",val:101.325,id_tag:e.id_tag})}})]})]})},e.name)}))},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act;return n.data.scrubbers.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,a.Button,{content:e.power?"On":"Off",selected:e.power,icon:"power-off",onClick:function(){return c("command",{cmd:"power",val:1===e.power?0:1,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:0===e.scrubbing?"Siphoning":"Scrubbing",icon:0===e.scrubbing?"sign-in-alt":"filter",onClick:function(){return c("command",{cmd:"scrubbing",val:0===e.scrubbing?1:0,id_tag:e.id_tag})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,a.Button,{content:e.widenet?"Extended":"Normal",selected:e.widenet,icon:"expand-arrows-alt",onClick:function(){return c("command",{cmd:"widenet",val:0===e.widenet?1:0,id_tag:e.id_tag})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filtering",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Carbon Dioxide",selected:e.filter_co2,onClick:function(){return c("command",{cmd:"co2_scrub",val:0===e.filter_co2?1:0,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Plasma",selected:e.filter_toxins,onClick:function(){return c("command",{cmd:"tox_scrub",val:0===e.filter_toxins?1:0,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nitrous Oxide",selected:e.filter_n2o,onClick:function(){return c("command",{cmd:"n2o_scrub",val:0===e.filter_n2o?1:0,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Oxygen",selected:e.filter_o2,onClick:function(){return c("command",{cmd:"o2_scrub",val:0===e.filter_o2?1:0,id_tag:e.id_tag})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nitrogen",selected:e.filter_n2,onClick:function(){return c("command",{cmd:"n2_scrub",val:0===e.filter_n2?1:0,id_tag:e.id_tag})}})]})]})},e.name)}))},f=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.modes,d=i.presets,u=i.emagged,s=i.mode,m=i.preset;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"System Mode",children:(0,o.createComponentVNode)(2,a.Table,{children:l.map((function(e){return(!e.emagonly||e.emagonly&&!!u)&&(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",width:1,children:(0,o.createComponentVNode)(2,a.Button,{content:e.name,icon:"cog",selected:e.id===s,onClick:function(){return c("mode",{mode:e.id})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.desc})]},e.name)}))})}),(0,o.createComponentVNode)(2,a.Section,{title:"System Presets",children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,children:"After making a selection, the system will automatically cycle in order to remove contaminants."}),(0,o.createComponentVNode)(2,a.Table,{mt:1,children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",width:1,children:(0,o.createComponentVNode)(2,a.Button,{content:e.name,icon:"cog",selected:e.id===m,onClick:function(){return c("preset",{preset:e.id})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.desc})]},e.name)}))})]})],4)},h=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.thresholds;return(0,o.createComponentVNode)(2,a.Section,{title:"Alarm Thresholds",children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"red",width:"20%",children:"Danger Min"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"orange",width:"20%",children:"Warning Min"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"orange",width:"20%",children:"Warning Max"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"red",width:"20%",children:"Danger Max"})]}),i.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),e.settings.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:-1===e.selected?"Off":e.selected,onClick:function(){return c("command",{cmd:"set_threshold",env:e.env,"var":e.val})}})},e.val)}))]},e.name)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockAccessController=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AirlockAccessController=function(e,t){var n,i,l=(0,r.useBackend)(t),d=l.act,u=l.data,s=u.exterior_status,m=u.interior_status,p=u.processing;return n="open"===u.exterior_status.state?(0,o.createComponentVNode)(2,a.Button,{content:"Lock Exterior Door",icon:"exclamation-triangle",disabled:p,onClick:function(){return d("force_ext")}}):(0,o.createComponentVNode)(2,a.Button,{content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:p,onClick:function(){return d("cycle_ext_door")}}),i="open"===u.interior_status.state?(0,o.createComponentVNode)(2,a.Button,{content:"Lock Interior Door",icon:"exclamation-triangle",disabled:p,color:"open"===m?"red":p?"yellow":null,onClick:function(){return d("force_int")}}):(0,o.createComponentVNode)(2,a.Button,{content:"Cycle to Interior",icon:"arrow-circle-right",disabled:p,onClick:function(){return d("cycle_int_door")}}),(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"External Door Status",children:"closed"===s.state?"Locked":"Open"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Internal Door Status",children:"closed"===m.state?"Locked":"Open"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Actions",children:[(0,o.createComponentVNode)(2,a.Box,{children:n}),(0,o.createComponentVNode)(2,a.Box,{children:i})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockElectronics=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(78);t.AirlockElectronics=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,d)]})};var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.unrestricted_dir;return(0,o.createComponentVNode)(2,a.Section,{title:"Access Control",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,mb:1,children:"Unrestricted Access From:"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:"arrow-down",content:"North",selected:"north"===i?"selected":null,onClick:function(){return c("unrestricted_access",{unres_dir:"North"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:"arrow-up",content:"South",selected:"south"===i?"selected":null,onClick:function(){return c("unrestricted_access",{unres_dir:"South"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:"arrow-left",content:"East",selected:"east"===i?"selected":null,onClick:function(){return c("unrestricted_access",{unres_dir:"East"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:"arrow-right",content:"West",selected:"west"===i?"selected":null,onClick:function(){return c("unrestricted_access",{unres_dir:"West"})}})})]})]})})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.selected_accesses,u=l.one_access,s=l.regions;return(0,o.createComponentVNode)(2,i.AccessList,{usedByRcd:1,rcdButtons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:u,content:"One",onClick:function(){return c("set_one_access",{access:"one"})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:!u,content:"All",onClick:function(){return c("set_one_access",{access:"all"})}})],4),accesses:s,selectedList:d,accessMod:function(e){return c("set",{access:e})},grantAll:function(){return c("grant_all")},denyAll:function(){return c("clear_all")},grantDep:function(e){return c("grant_region",{region:e})},denyDep:function(e){return c("deny_region",{region:e})}})}},function(e,t,n){"use strict";t.__esModule=!0,t.AppearanceChanger=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AppearanceChanger=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.change_race,s=d.species,m=d.specimen,p=d.change_gender,f=d.gender,h=d.has_gender,C=d.change_eye_color,N=d.change_skin_tone,b=d.change_skin_color,g=d.change_head_accessory_color,V=d.change_hair_color,v=d.change_secondary_hair_color,y=d.change_facial_hair_color,_=d.change_secondary_facial_hair_color,x=d.change_head_marking_color,k=d.change_body_marking_color,L=d.change_tail_marking_color,B=d.change_head_accessory,w=d.head_accessory_styles,S=d.head_accessory_style,I=d.change_hair,T=d.hair_styles,A=d.hair_style,E=d.change_facial_hair,M=d.facial_hair_styles,O=d.facial_hair_style,P=d.change_head_markings,R=d.head_marking_styles,D=d.head_marking_style,F=d.change_body_markings,j=d.body_marking_styles,W=d.body_marking_style,z=d.change_tail_markings,U=d.tail_marking_styles,H=d.tail_marking_style,K=d.change_body_accessory,G=d.body_accessory_styles,Y=d.body_accessory_style,q=d.change_alt_head,$=d.alt_head_styles,X=d.alt_head_style,J=!1;return(C||N||b||g||V||v||y||_||x||k||L)&&(J=!0),(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Species",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.specimen,selected:e.specimen===m,onClick:function(){return l("race",{race:e.specimen})}},e.specimen)}))}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gender",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Male",selected:"male"===f,onClick:function(){return l("gender",{gender:"male"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Female",selected:"female"===f,onClick:function(){return l("gender",{gender:"female"})}}),!h&&(0,o.createComponentVNode)(2,a.Button,{content:"Genderless",selected:"plural"===f,onClick:function(){return l("gender",{gender:"plural"})}})]}),!!J&&(0,o.createComponentVNode)(2,i),!!B&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Head accessory",children:w.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.headaccessorystyle,selected:e.headaccessorystyle===S,onClick:function(){return l("head_accessory",{head_accessory:e.headaccessorystyle})}},e.headaccessorystyle)}))}),!!I&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hair",children:T.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.hairstyle,selected:e.hairstyle===A,onClick:function(){return l("hair",{hair:e.hairstyle})}},e.hairstyle)}))}),!!E&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Facial hair",children:M.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.facialhairstyle,selected:e.facialhairstyle===O,onClick:function(){return l("facial_hair",{facial_hair:e.facialhairstyle})}},e.facialhairstyle)}))}),!!P&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Head markings",children:R.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.headmarkingstyle,selected:e.headmarkingstyle===D,onClick:function(){return l("head_marking",{head_marking:e.headmarkingstyle})}},e.headmarkingstyle)}))}),!!F&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Body markings",children:j.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.bodymarkingstyle,selected:e.bodymarkingstyle===W,onClick:function(){return l("body_marking",{body_marking:e.bodymarkingstyle})}},e.bodymarkingstyle)}))}),!!z&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tail markings",children:U.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.tailmarkingstyle,selected:e.tailmarkingstyle===H,onClick:function(){return l("tail_marking",{tail_marking:e.tailmarkingstyle})}},e.tailmarkingstyle)}))}),!!K&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Body accessory",children:G.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.bodyaccessorystyle,selected:e.bodyaccessorystyle===Y,onClick:function(){return l("body_accessory",{body_accessory:e.bodyaccessorystyle})}},e.bodyaccessorystyle)}))}),!!q&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternate head",children:$.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.altheadstyle,selected:e.altheadstyle===X,onClick:function(){return l("alt_head",{alt_head:e.altheadstyle})}},e.altheadstyle)}))})]})})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Colors",children:[{key:"change_eye_color",text:"Change eye color",action:"eye_color"},{key:"change_skin_tone",text:"Change skin tone",action:"skin_tone"},{key:"change_skin_color",text:"Change skin color",action:"skin_color"},{key:"change_head_accessory_color",text:"Change head accessory color",action:"head_accessory_color"},{key:"change_hair_color",text:"Change hair color",action:"hair_color"},{key:"change_secondary_hair_color",text:"Change secondary hair color",action:"secondary_hair_color"},{key:"change_facial_hair_color",text:"Change facial hair color",action:"facial_hair_color"},{key:"change_secondary_facial_hair_color",text:"Change secondary facial hair color",action:"secondary_facial_hair_color"},{key:"change_head_marking_color",text:"Change head marking color",action:"head_marking_color"},{key:"change_body_marking_color",text:"Change body marking color",action:"body_marking_color"},{key:"change_tail_marking_color",text:"Change tail marking color",action:"tail_marking_color"}].map((function(e){return!!i[e.key]&&(0,o.createComponentVNode)(2,a.Button,{content:e.text,onClick:function(){return c(e.action)}})}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AtmosAlertConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.priority||[],u=l.minor||[];return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[0===d.length&&(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),d.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return i("clear",{zone:e})}}),2,null,e)})),0===u.length&&(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16),u.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return i("clear",{zone:e})}}),2,null,e)}))],0)})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControl=void 0;var o=n(0),r=n(1),a=n(2),c=n(76),i=n(4);t.AtmosControl=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data,(0,r.useLocalState)(t,"tabIndex",0)),u=c[0],s=c[1];return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:0===u,children:(0,o.createComponentVNode)(2,a.Box,{fillPositionedParent:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:0===u,onClick:function(){return s(0)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"table"})," Data View"]},"DataView"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===u,onClick:function(){return s(1)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"map-marked-alt"})," Map View"]},"MapView")]}),function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,l);case 1:return(0,o.createComponentVNode)(2,d);default:return"WE SHOULDN'T BE HERE!"}}(u)]})})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.alarms;return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Status"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Access"})]}),l.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,c.TableCell,{children:e.name}),(0,o.createComponentVNode)(2,c.TableCell,{children:(t=e.danger,0===t?(0,o.createComponentVNode)(2,a.Box,{color:"green",children:"Good"}):1===t?(0,o.createComponentVNode)(2,a.Box,{color:"orange",bold:!0,children:"Warning"}):2===t?(0,o.createComponentVNode)(2,a.Box,{color:"red",bold:!0,children:"DANGER"}):void 0)}),(0,o.createComponentVNode)(2,c.TableCell,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"cog",content:"Access",onClick:function(){return i("open_alarm",{aref:e.ref})}})})]},e.name);var t}))]})})},d=function(e,t){var n=(0,r.useBackend)(t).data,c=(0,r.useLocalState)(t,"zoom",1),i=c[0],l=c[1],d=n.alarms;return(0,o.createComponentVNode)(2,a.Box,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,o.createComponentVNode)(2,a.NanoMap,{onZoom:function(e){return l(e)},children:d.filter((function(e){return 2===e.z})).map((function(e){return(0,o.createComponentVNode)(2,a.NanoMap.Marker,{x:e.x,y:e.y,zoom:i,icon:"circle",tooltip:e.name,color:(t=e.danger,0===t?"green":1===t?"orange":2===t?"red":void 0)},e.ref);var t}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AtmosFilter=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.on,u=l.pressure,s=l.max_pressure,m=l.filter_type,p=l.filter_type_list;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:d?"On":"Off",color:d?null:"red",selected:d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Rate",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",textAlign:"center",disabled:0===u,width:2.2,onClick:function(){return i("min_pressure")}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:s,value:u,onDrag:function(e,t){return i("custom_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",textAlign:"center",disabled:u===s,width:2.2,onClick:function(){return i("max_pressure")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.gas_type===m,content:e.label,onClick:function(){return i("set_filter",{filter:e.gas_type})}},e.label)}))})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AtmosMixer=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.on,s=d.pressure,m=d.max_pressure,p=d.node1_concentration,f=d.node2_concentration;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:u?"On":"Off",color:u?null:"red",selected:u,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Rate",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",textAlign:"center",disabled:0===s,width:2.2,onClick:function(){return l("min_pressure")}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:m,value:s,onDrag:function(e,t){return l("custom_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",textAlign:"center",disabled:s===m,width:2.2,onClick:function(){return l("max_pressure")}})]}),(0,o.createComponentVNode)(2,i,{node_name:"Node 1",node_ref:p}),(0,o.createComponentVNode)(2,i,{node_name:"Node 2",node_ref:f})]})})})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=(n.data,e.node_name),l=e.node_ref;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:i,children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",textAlign:"center",width:2.2,disabled:0===l,onClick:function(){return c("set_node",{node_name:i,concentration:(l-10)/100})}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,unit:"%",width:6.1,lineHeight:1.5,stepPixelSize:10,minValue:0,maxValue:100,value:l,onChange:function(e,t){return c("set_node",{node_name:i,concentration:t/100})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",textAlign:"center",width:2.2,disabled:100===l,onClick:function(){return c("set_node",{node_name:i,concentration:(l+10)/100})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.AtmosPump=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.on,u=l.rate,s=l.max_rate,m=l.gas_unit,p=l.step;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:d?"On":"Off",color:d?null:"red",selected:d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Rate",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",textAlign:"center",disabled:0===u,width:2.2,onClick:function(){return i("min_rate")}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,unit:m,width:6.1,lineHeight:1.5,step:p,minValue:0,maxValue:s,value:u,onDrag:function(e,t){return i("custom_rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",textAlign:"center",disabled:u===s,width:2.2,onClick:function(){return i("max_rate")}})]})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Autolathe=void 0;var o=n(0),r=n(43),a=n(26),c=n(1),i=n(2),l=n(4),d=n(19),u=function(e,t,n,o){return null===e.requirements||!(e.requirements.metal*o>t)&&!(e.requirements.glass*o>n)};t.Autolathe=function(e,t){var n=(0,c.useBackend)(t),s=n.act,m=n.data,p=m.total_amount,f=(m.max_amount,m.metal_amount),h=m.glass_amount,C=m.busyname,N=(m.busyamt,m.showhacked,m.buildQueue),b=m.buildQueueLen,g=m.recipes,V=m.categories,v=(0,c.useSharedState)(t,"category",0),y=v[0],_=v[1];0===y&&(y="Tools");var x=f.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),k=h.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),L=p.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),B=(0,c.useSharedState)(t,"search_text",""),w=B[0],S=B[1],I=(0,d.createSearch)(w,(function(e){return e.name})),T="";b>0&&(T=N.map((function(e,t){return(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:N[t][0],onClick:function(){return s("remove_from_queue",{remove_from_queue:N.indexOf(e)+1})}},e)},t)})));var A=(0,r.flow)([(0,a.filter)((function(e){return(e.category.indexOf(y)>-1||w)&&(m.showhacked||!e.hacked)})),w&&(0,a.filter)(I),(0,a.sortBy)((function(e){return e.name.toLowerCase()}))])(g),E="Build";w?E="Results for: '"+w+"':":y&&(E="Build ("+y+")");return(0,o.createComponentVNode)(2,l.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createVNode)(1,"div",null,(0,o.createComponentVNode)(2,i.Section,{title:E,buttons:(0,o.createComponentVNode)(2,i.Dropdown,{width:"190px",options:V,selected:y,onSelected:function(e){return _(e)}}),children:[(0,o.createComponentVNode)(2,i.Input,{fluid:!0,placeholder:"Search for...",onInput:function(e,t){return S(t)},mb:1}),A.map((function(e){return(0,o.createComponentVNode)(2,i.Flex,{justify:"space-between",align:"center",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:[(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+e.image,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}}),(0,o.createComponentVNode)(2,i.Button,{icon:"hammer",selected:m.busyname===e.name&&1===m.busyamt,disabled:!u(e,m.metal_amount,m.glass_amount,1),onClick:function(){return s("make",{make:e.uid,multiplier:1})},children:(0,d.toTitleCase)(e.name)}),e.max_multiplier>=10&&(0,o.createComponentVNode)(2,i.Button,{icon:"hammer",selected:m.busyname===e.name&&10===m.busyamt,disabled:!u(e,m.metal_amount,m.glass_amount,10),onClick:function(){return s("make",{make:e.uid,multiplier:10})},children:"10x"}),e.max_multiplier>=25&&(0,o.createComponentVNode)(2,i.Button,{icon:"hammer",selected:m.busyname===e.name&&25===m.busyamt,disabled:!u(e,m.metal_amount,m.glass_amount,25),onClick:function(){return s("make",{make:e.uid,multiplier:25})},children:"25x"}),e.max_multiplier>25&&(0,o.createComponentVNode)(2,i.Button,{icon:"hammer",selected:m.busyname===e.name&&m.busyamt===e.max_multiplier,disabled:!u(e,m.metal_amount,m.glass_amount,e.max_multiplier),onClick:function(){return s("make",{make:e.uid,multiplier:e.max_multiplier})},children:[e.max_multiplier,"x"]})]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:e.requirements&&Object.keys(e.requirements).map((function(t){return(0,d.toTitleCase)(t)+": "+e.requirements[t]})).join(", ")||(0,o.createComponentVNode)(2,i.Box,{children:"No resources required."})})]},e.ref)}))]}),2,{style:{float:"left",width:"68%"}}),(0,o.createVNode)(1,"div",null,[(0,o.createComponentVNode)(2,i.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Metal",children:x}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Glass",children:k}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Total",children:L}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Storage",children:[m.fill_percent,"% Full"]})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Building",children:(0,o.createComponentVNode)(2,i.Box,{color:C?"green":"",children:C||"Nothing"})}),(0,o.createComponentVNode)(2,i.Section,{title:"Build Queue",children:[T,(0,o.createVNode)(1,"div",null,(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Clear All",disabled:!m.buildQueueLen,onClick:function(){return s("clear_queue")}}),2,{align:"right"})]})],4,{style:{float:"right",width:"30%"}})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BlueSpaceArtilleryControl=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.BlueSpaceArtilleryControl=function(e,t){var n,i=(0,r.useBackend)(t),l=i.act,d=i.data;return n=d.ready?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:"green",children:"Ready"}):d.reloadtime_text?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Reloading In",color:"red",children:d.reloadtime_text}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:"red",children:"No cannon connected!"}),(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[d.notice&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alert",color:"red",children:d.notice}),n,(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,a.Button,{icon:"crosshairs",content:d.target?d.target:"None",onClick:function(){return l("recalibrate")}})}),1===d.ready&&!!d.target&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Firing",children:(0,o.createComponentVNode)(2,a.Button,{icon:"skull",content:"FIRE!",color:"red",onClick:function(){return l("fire")}})}),!d.connected&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance",children:(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",content:"Complete Deployment",onClick:function(){return l("build")}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BluespaceTap=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(95);t.BluespaceTap=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.product||[],s=d.desiredLevel,m=d.inputLevel,p=d.points,f=d.totalPoints,h=d.powerUse,C=d.availablePower,N=d.maxLevel,b=d.emagged,g=d.safeLevels,V=d.nextLevelPower,v=s>m?"bad":"good";return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!!b&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:1,children:"Safety Protocols disabled"}),!!(m>g)&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:1,children:"High Power, Instability likely"}),(0,o.createComponentVNode)(2,a.Collapsible,{title:"Input Management",children:(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Input Level",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Desired Level",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===s,tooltip:"Set to 0",onClick:function(){return l("set",{set_level:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"step-backward",tooltip:"Decrease to actual input level",disabled:0===s,onClick:function(){return l("set",{set_level:m})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===s,tooltip:"Decrease one step",onClick:function(){return l("decrease")}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:s,fillValue:m,minValue:0,color:v,maxValue:N,stepPixelSize:20,step:1,onChange:function(e,t){return l("set",{set_level:t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:s===N,tooltip:"Increase one step",tooltipPosition:"left",onClick:function(){return l("increase")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:s===N,tooltip:"Set to max",tooltipPosition:"left",onClick:function(){return l("set",{set_level:N})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Power Use",children:(0,i.formatPower)(h)}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power for next level",children:(0,i.formatPower)(V)}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Surplus Power",children:(0,i.formatPower)(C)})]})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available Points",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Points",children:f})]})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{align:"end",children:(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,a.Button,{disabled:e.price>=p,onClick:function(){return l("vend",{target:e.key})},content:e.price})},e.key)}))})})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BodyScanner=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(4),l=[["good","Alive"],["average","Critical"],["bad","DEAD"]],d=[["hasBorer","bad","Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended."],["hasVirus","bad","Viral pathogen detected in blood stream."],["blind","average","Cataracts detected."],["colourblind","average","Photoreceptor abnormalities detected."],["nearsighted","average","Retinal misalignment detected."]],u=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radioactive","radLoss"],["Brute","bruteLoss"],["Genetic","cloneLoss"],["Burn","fireLoss"],["Paralysis","paralysis"]],s={average:[.25,.5],bad:[.5,Infinity]},m=function(e,t){for(var n=[],o=0;o0?e.filter((function(e){return!!e})).reduce((function(e,t){return(0,o.createFragment)([e,(0,o.createComponentVNode)(2,c.Box,{children:t},t)],0)}),null):null},f=function(e){if(e>100){if(e<300)return"mild infection";if(e<400)return"mild infection+";if(e<500)return"mild infection++";if(e<700)return"acute infection";if(e<800)return"acute infection+";if(e<900)return"acute infection++";if(e>=900)return"septic"}return""};t.BodyScanner=function(e,t){var n=(0,a.useBackend)(t).data,r=n.occupied,c=n.occupant,l=void 0===c?{}:c,d=r?(0,o.createComponentVNode)(2,h,{occupant:l}):(0,o.createComponentVNode)(2,y);return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:d})})};var h=function(e){var t=e.occupant;return(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,C,{occupant:t}),(0,o.createComponentVNode)(2,N,{occupant:t}),(0,o.createComponentVNode)(2,b,{occupant:t}),(0,o.createComponentVNode)(2,V,{organs:t.extOrgan}),(0,o.createComponentVNode)(2,v,{organs:t.intOrgan})]})},C=function(e,t){var n=(0,a.useBackend)(t),i=n.act,d=n.data.occupant;return(0,o.createComponentVNode)(2,c.Section,{title:"Occupant",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"print",onClick:function(){return i("print_p")},children:"Print Report"}),(0,o.createComponentVNode)(2,c.Button,{icon:"user-slash",onClick:function(){return i("ejectify")},children:"Eject"})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:d.name}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:d.maxHealth,value:d.health/d.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",color:l[d.stat][0],children:l[d.stat][1]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:(0,r.round)(d.bodyTempC,0)}),"\xb0C,\xa0",(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:(0,r.round)(d.bodyTempF,0)}),"\xb0F"]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Implants",children:d.implant_len?(0,o.createComponentVNode)(2,c.Box,{children:d.implant.map((function(e){return e.name})).join(", ")}):(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"None"})})]})})},N=function(e){var t=e.occupant;return t.hasBorer||t.blind||t.colourblind||t.nearsighted||t.hasVirus?(0,o.createComponentVNode)(2,c.Section,{title:"Abnormalities",children:d.map((function(e,n){if(t[e[0]])return(0,o.createComponentVNode)(2,c.Box,{color:e[1],bold:"bad"===e[1],children:e[2]})}))}):(0,o.createComponentVNode)(2,c.Section,{title:"Abnormalities",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"No abnormalities found."})})},b=function(e){var t=e.occupant;return(0,o.createComponentVNode)(2,c.Section,{title:"Damage",children:(0,o.createComponentVNode)(2,c.Table,{children:m(u,(function(e,n,r){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Table.Row,{color:"label",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[e[0],":"]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:!!n&&n[0]+":"})]}),(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,g,{value:t[e[1]],marginBottom:r100)&&"average":"bad")||!!e.status.robotic&&"label",width:"33%",children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"center",q:!0,children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:e.maxHealth,mt:t>0&&"0.5rem",value:e.totalLoss/100,ranges:s,children:[(0,o.createComponentVNode)(2,c.Box,{float:"left",display:"inline",children:[!!e.bruteLoss&&(0,o.createComponentVNode)(2,c.Box,{display:"inline",position:"relative",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"bone"}),(0,r.round)(e.bruteLoss,0),"\xa0",(0,o.createComponentVNode)(2,c.Tooltip,{position:"top",content:"Brute damage"})]}),!!e.fireLoss&&(0,o.createComponentVNode)(2,c.Box,{display:"inline",position:"relative",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"fire"}),(0,r.round)(e.fireLoss,0),(0,o.createComponentVNode)(2,c.Tooltip,{position:"top",content:"Burn damage"})]})]}),(0,o.createComponentVNode)(2,c.Box,{display:"inline",children:(0,r.round)(e.totalLoss,0)})]})}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:t>0&&"calc(0.5rem + 2px)",children:[(0,o.createComponentVNode)(2,c.Box,{color:"average",display:"inline",children:p([!!e.internalBleeding&&"Internal bleeding",!!e.lungRuptured&&"Ruptured lung",!!e.status.broken&&e.status.broken,f(e.germ_level),!!e.open&&"Open incision"])}),(0,o.createComponentVNode)(2,c.Box,{display:"inline",children:[p([!!e.status.splinted&&(0,o.createComponentVNode)(2,c.Box,{color:"good",children:"Splinted"}),!!e.status.robotic&&(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Robotic"}),!!e.status.dead&&(0,o.createComponentVNode)(2,c.Box,{color:"bad",bold:!0,children:"DEAD"})]),p(e.shrapnel.map((function(e){return e.known?e.name:"Unknown object"})))]})]})]},t)}))]})})},v=function(e){return 0===e.organs.length?(0,o.createComponentVNode)(2,c.Section,{title:"Internal Organs",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"N/A"})}):(0,o.createComponentVNode)(2,c.Section,{title:"Internal Organs",children:(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"center",children:"Damage"}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"right",children:"Injuries"})]}),e.organs.map((function(e,t){return(0,o.createComponentVNode)(2,c.Table.Row,{textTransform:"capitalize",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{color:(!e.dead?e.germ_level>100&&"average":"bad")||e.robotic>0&&"label",width:"33%",children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:e.maxHealth,value:e.damage/100,mt:t>0&&"0.5rem",ranges:s,children:(0,r.round)(e.damage,0)})}),(0,o.createComponentVNode)(2,c.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:t>0&&"calc(0.5rem + 2px)",children:[(0,o.createComponentVNode)(2,c.Box,{color:"average",display:"inline",children:p([f(e.germ_level)])}),(0,o.createComponentVNode)(2,c.Box,{display:"inline",children:p([1===e.robotic&&(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Robotic"}),2===e.robotic&&(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Assisted"}),!!e.dead&&(0,o.createComponentVNode)(2,c.Box,{color:"bad",bold:!0,children:"DEAD"})])})]})]},t)}))]})})},y=function(){return(0,o.createComponentVNode)(2,c.Section,{textAlign:"center",flexGrow:"1",children:(0,o.createComponentVNode)(2,c.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant detected."]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BotClean=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.BotClean=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.locked,u=l.noaccess,s=l.maintpanel,m=l.on,p=l.autopatrol,f=l.canhack,h=l.emagged,C=l.remote_disabled,N=l.painame,b=l.cleanblood;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:["Swipe an ID card to ",d?"unlock":"lock"," this interface."]}),(0,o.createComponentVNode)(2,a.Section,{title:"General Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",content:m?"On":"Off",selected:m,disabled:u,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Patrol",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:p,content:"Auto Patrol",disabled:u,onClick:function(){return i("autopatrol")}})}),!!s&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance Panel",children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Panel Open!"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety System",children:(0,o.createComponentVNode)(2,a.Box,{color:h?"bad":"good",children:h?"DISABLED!":"Enabled"})}),!!f&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hacking",children:(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:h?"Restore Safties":"Hack",disabled:u,color:"bad",onClick:function(){return i("hack")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Remote Access",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:!C,content:"AI Remote Control",disabled:u,onClick:function(){return i("disableremote")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cleaning Settings",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:b,content:"Clean Blood",disabled:u,onClick:function(){return i("blood")}})}),N&&(0,o.createComponentVNode)(2,a.Section,{title:"pAI",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:N,disabled:u,onClick:function(){return i("ejectpai")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BotSecurity=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.BotSecurity=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.locked,u=l.noaccess,s=l.maintpanel,m=l.on,p=l.autopatrol,f=l.canhack,h=l.emagged,C=l.remote_disabled,N=l.painame,b=l.check_id,g=l.check_weapons,V=l.check_warrant,v=l.arrest_mode,y=l.arrest_declare;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:["Swipe an ID card to ",d?"unlock":"lock"," this interface."]}),(0,o.createComponentVNode)(2,a.Section,{title:"General Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",content:m?"On":"Off",selected:m,disabled:u,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Patrol",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:p,content:"Auto Patrol",disabled:u,onClick:function(){return i("autopatrol")}})}),!!s&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance Panel",children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Panel Open!"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety System",children:(0,o.createComponentVNode)(2,a.Box,{color:h?"bad":"good",children:h?"DISABLED!":"Enabled"})}),!!f&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hacking",children:(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:h?"Restore Safties":"Hack",disabled:u,color:"bad",onClick:function(){return i("hack")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Remote Access",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:!C,content:"AI Remote Control",disabled:u,onClick:function(){return i("disableremote")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Who To Arrest",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:b,content:"Unidentifiable Persons",disabled:u,onClick:function(){return i("authid")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:g,content:"Unauthorized Weapons",disabled:u,onClick:function(){return i("authweapon")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:V,content:"Wanted Criminals",disabled:u,onClick:function(){return i("authwarrant")}})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Arrest Procedure",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:v,content:"Detain Targets Indefinitely",disabled:u,onClick:function(){return i("arrtype")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:y,content:"Announce Arrests On Radio",disabled:u,onClick:function(){return i("arrdeclare")}})]}),N&&(0,o.createComponentVNode)(2,a.Section,{title:"pAI",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:N,disabled:u,onClick:function(){return i("ejectpai")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BrigCells=void 0;var o=n(0),r=n(4),a=n(2),c=n(1),i=function(e,t){var n=e.cell,r=(0,c.useBackend)(t).act,i=n.cell_id,l=n.occupant,d=n.crimes,u=n.brigged_by,s=n.time_left_seconds,m=n.time_set_seconds,p=n.ref,f="";s>0&&(f+=" BrigCells__listRow--active");return(0,o.createComponentVNode)(2,a.Table.Row,{className:f,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:i}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:l}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:d}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:u}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.TimeDisplay,{totalSeconds:m})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.TimeDisplay,{totalSeconds:s})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{type:"button",onClick:function(){r("release",{ref:p})},children:"Release"})})]})},l=function(e){var t=e.cells;return(0,o.createComponentVNode)(2,a.Table,{className:"BrigCells__list",children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Cell"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Occupant"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Crimes"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Brigged By"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Time Brigged For"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Time Left"}),(0,o.createComponentVNode)(2,a.Table.Cell,{header:!0,children:"Release"})]}),t.map((function(e){return(0,o.createComponentVNode)(2,i,{cell:e},e.ref)}))]})};t.BrigCells=function(e,t){var n=(0,c.useBackend)(t),i=(n.act,n.data.cells);return(0,o.createComponentVNode)(2,r.Window,{theme:"security",resizable:!0,children:(0,o.createComponentVNode)(2,r.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",height:"100%",children:(0,o.createComponentVNode)(2,a.Section,{height:"100%",flexGrow:"1",children:(0,o.createComponentVNode)(2,l,{cells:i})})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BrigTimer=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.BrigTimer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;l.nameText=l.occupant,l.timing&&(l.prisoner_hasrec?l.nameText=(0,o.createComponentVNode)(2,a.Box,{color:"green",children:l.occupant}):l.nameText=(0,o.createComponentVNode)(2,a.Box,{color:"red",children:l.occupant}));var d="pencil-alt";l.prisoner_name&&(l.prisoner_hasrec||(d="exclamation-triangle"));var u=[],s=0;for(s=0;se.current_positions&&(0,o.createComponentVNode)(2,a.Box,{color:"green",children:e.total_positions-e.current_positions})||(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"0"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{content:"-",disabled:s.cooldown_time||!e.can_close,onClick:function(){return u("make_job_unavailable",{job:e.title})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{content:"+",disabled:s.cooldown_time||!e.can_open,onClick:function(){return u("make_job_available",{job:e.title})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:s.target_dept&&(0,o.createComponentVNode)(2,a.Box,{color:"green",children:s.priority_jobs.indexOf(e.title)>-1?"Yes":""})||(0,o.createComponentVNode)(2,a.Button,{content:e.is_priority?"Yes":"No",selected:e.is_priority,disabled:s.cooldown_time||!e.can_prioritize,onClick:function(){return u("prioritize_job",{job:e.title})}})})]},e.title)}))]})})],4):(0,o.createComponentVNode)(2,a.Section,{title:"Warning",color:"red",children:"Not logged in."});break;case 2:n=s.authenticated&&s.scan_name?s.modify_name?(0,o.createComponentVNode)(2,i.AccessList,{accesses:s.regions,selectedList:s.selectedAccess,accessMod:function(e){return u("set",{access:e})},grantAll:function(){return u("grant_all")},denyAll:function(){return u("clear_all")},grantDep:function(e){return u("grant_region",{region:e})},denyDep:function(e){return u("deny_region",{region:e})}}):(0,o.createComponentVNode)(2,a.Section,{title:"Card Missing",color:"red",children:"No card to modify."}):(0,o.createComponentVNode)(2,a.Section,{title:"Warning",color:"red",children:"Not logged in."});break;case 3:n=s.authenticated?s.records.length?(0,o.createComponentVNode)(2,a.Section,{title:"Records",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Delete All Records",disabled:!s.authenticated||0===s.records.length||s.target_dept,onClick:function(){return u("wipe_all_logs")}}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Crewman"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Old Rank"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"New Rank"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Authorized By"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Time"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Reason"}),!!s.iscentcom&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Deleted By"})]}),s.records.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.transferee}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.oldvalue}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.newvalue}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.whodidit}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.timestamp}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.reason}),!!s.iscentcom&&(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.deletedby})]},e.timestamp)}))]}),!!s.iscentcom&&(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Delete MY Records",color:"purple",disabled:!s.authenticated||0===s.records.length,onClick:function(){return u("wipe_my_logs")}})})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Records",children:"No records."}):(0,o.createComponentVNode)(2,a.Section,{title:"Warning",color:"red",children:"Not logged in."});break;case 4:n=s.authenticated&&s.scan_name?(0,o.createComponentVNode)(2,a.Section,{title:"Your Team",children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Rank"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Sec Status"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Actions"})]}),s.people_dept.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.title}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.crimstat}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:e.buttontext,disabled:!e.demotable,onClick:function(){return u("remote_demote",{remote_demote:e.name})}})})]},e.title)}))]})}):(0,o.createComponentVNode)(2,a.Section,{title:"Warning",color:"red",children:"Not logged in."});break;default:n=(0,o.createComponentVNode)(2,a.Section,{title:"Warning",color:"red",children:"ERROR: Unknown Mode."})}return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[m,p,n]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoConsole=void 0;var o=n(0),r=n(43),a=n(26),c=n(1),i=n(2),l=n(4),d=(n(77),n(19));t.CargoConsole=function(e,t){return(0,o.createComponentVNode)(2,l.Window,{children:(0,o.createComponentVNode)(2,l.Window.Content,{children:[(0,o.createComponentVNode)(2,u),(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,m),(0,o.createComponentVNode)(2,p)]})})};var u=function(e,t){var n=(0,c.useLocalState)(t,"contentsModal",null),r=n[0],a=n[1],l=(0,c.useLocalState)(t,"contentsModalTitle",null),d=l[0],u=l[1];return null!==r&&null!==d?(0,o.createComponentVNode)(2,i.Modal,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:.75*window.innerHeight+"px",mx:"auto",children:[(0,o.createComponentVNode)(2,i.Box,{width:"100%",bold:!0,children:(0,o.createVNode)(1,"h1",null,[d,(0,o.createTextVNode)(" contents:")],0)}),(0,o.createComponentVNode)(2,i.Box,{children:r.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:["- ",e]},e)}))}),(0,o.createComponentVNode)(2,i.Box,{m:2,children:(0,o.createComponentVNode)(2,i.Button,{content:"Close",onClick:function(){a(null),u(null)}})})]}):void 0},s=function(e,t){var n,r,a=(0,c.useBackend)(t),l=a.act,d=a.data,u=d.is_public,s=d.points,m=d.timeleft,p=d.moving,f=d.at_station;return p||f?!p&&f?(n="Docked at the station",r="Return Shuttle"):p&&(r="In Transit...",n=1!==m?"Shuttle is en route (ETA: "+m+" minutes)":"Shuttle is en route (ETA: "+m+" minute)"):(n="Docked off-station",r="Call Shuttle"),(0,o.createComponentVNode)(2,i.Section,{title:"Status",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Points Available",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle Status",children:n}),0===u&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Controls",children:[(0,o.createComponentVNode)(2,i.Button,{content:r,disabled:p,onClick:function(){return l("moveShuttle")}}),(0,o.createComponentVNode)(2,i.Button,{content:"View Central Command Messages",onClick:function(){return l("showMessages")}})]})]})})},m=function(e,t){var n=(0,c.useBackend)(t),l=n.act,u=n.data,s=u.categories,m=u.supply_packs,p=(0,c.useSharedState)(t,"category","Emergency"),f=p[0],h=p[1],C=(0,c.useSharedState)(t,"search_text",""),N=C[0],b=C[1],g=(0,c.useLocalState)(t,"contentsModal",null),V=(g[0],g[1]),v=(0,c.useLocalState)(t,"contentsModalTitle",null),y=(v[0],v[1]),_=(0,d.createSearch)(N,(function(e){return e.name})),x=(0,r.flow)([(0,a.filter)((function(e){return e.cat===s.filter((function(e){return e.name===f}))[0].category||N})),N&&(0,a.filter)(_),(0,a.sortBy)((function(e){return e.name.toLowerCase()}))])(m),k="Crate Catalogue";return N?k="Results for '"+N+"':":f&&(k="Browsing "+f),(0,o.createComponentVNode)(2,i.Section,{title:k,buttons:(0,o.createComponentVNode)(2,i.Dropdown,{width:"190px",options:s.map((function(e){return e.name})),selected:f,onSelected:function(e){return h(e)}}),children:[(0,o.createComponentVNode)(2,i.Input,{fluid:!0,placeholder:"Search for...",onInput:function(e,t){return b(t)},mb:1}),(0,o.createComponentVNode)(2,i.Box,{maxHeight:25,overflowY:"auto",overflowX:"hidden",children:(0,o.createComponentVNode)(2,i.Table,{m:"0.5rem",children:x.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{bold:!0,children:[e.name," (",e.cost," Points)"]}),(0,o.createComponentVNode)(2,i.Table.Cell,{textAlign:"right",pr:1,children:[(0,o.createComponentVNode)(2,i.Button,{content:"Order 1",icon:"shopping-cart",onClick:function(){return l("order",{crate:e.ref,multiple:0})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Order Multiple",icon:"cart-plus",onClick:function(){return l("order",{crate:e.ref,multiple:1})}}),(0,o.createComponentVNode)(2,i.Button,{content:"View Contents",icon:"search",onClick:function(){V(e.contents),y(e.name)}})]})]},e.name)}))})})]})},p=function(e,t){var n=(0,c.useBackend)(t),r=n.act,a=n.data,l=a.requests,d=a.canapprove,u=a.orders;return(0,o.createComponentVNode)(2,i.Section,{title:"Details",children:(0,o.createComponentVNode)(2,i.Box,{maxHeight:15,overflowY:"auto",overflowX:"hidden",children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,children:"Requests"}),(0,o.createComponentVNode)(2,i.Table,{m:"0.5rem",children:l.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:[(0,o.createComponentVNode)(2,i.Box,{children:["- #",e.ordernum,": ",e.supply_type," for ",(0,o.createVNode)(1,"b",null,e.orderedby,0)]}),(0,o.createComponentVNode)(2,i.Box,{italic:!0,children:["Reason: ",e.comment]})]}),(0,o.createComponentVNode)(2,i.Table.Cell,{textAlign:"right",pr:1,children:[(0,o.createComponentVNode)(2,i.Button,{content:"Approve",color:"green",disabled:!d,onClick:function(){return r("approve",{ordernum:e.ordernum})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Deny",color:"red",onClick:function(){return r("deny",{ordernum:e.ordernum})}})]})]},e.ordernum)}))}),(0,o.createComponentVNode)(2,i.Box,{bold:!0,children:"Confirmed Orders"}),(0,o.createComponentVNode)(2,i.Table,{m:"0.5rem",children:u.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:(0,o.createComponentVNode)(2,i.Table.Cell,{children:[(0,o.createComponentVNode)(2,i.Box,{children:["- #",e.ordernum,": ",e.supply_type," for ",(0,o.createVNode)(1,"b",null,e.orderedby,0)]}),(0,o.createComponentVNode)(2,i.Box,{italic:!0,children:["Reason: ",e.comment]})]})},e.ordernum)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(0),r=n(1),a=n(2),c=n(134),i=n(4),l=[1,5,10,20,30,50],d=[1,5,10];t.ChemDispenser=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,u),(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,m)]})})};var u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.amount,u=i.energy,s=i.maxEnergy;return(0,o.createComponentVNode)(2,a.Section,{title:"Settings",flex:"content",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,minValue:0,maxValue:s,ranges:{good:[.5*s,Infinity],average:[.25*s,.5*s],bad:[-Infinity,.25*s]},children:[u," / ",s," Units"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Dispense",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",spacing:"1",children:l.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",width:"14%",display:"inline-block",children:(0,o.createComponentVNode)(2,a.Button,{icon:"cog",selected:d===e,content:e,m:"0",width:"100%",onClick:function(){return c("amount",{amount:e})}})},t)}))})})]})})},s=function(e,t){for(var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.chemicals,d=void 0===l?[]:l,u=[],s=0;s<(d.length+1)%3;s++)u.push(!0);return(0,o.createComponentVNode)(2,a.Section,{title:i.glass?"Drink Dispenser":"Chemical Dispenser",flexGrow:"1",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",wrap:"wrap",height:"100%",spacingPrecise:"2",align:"flex-start",alignContent:"flex-start",children:[d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",basis:"25%",height:"20px",width:"30%",display:"inline-block",children:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",width:"100%",height:"100%",align:"flex-start",content:e.title,onClick:function(){return c("dispense",{reagent:e.id})}})},t)})),u.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",basis:"25%",height:"20px"},t)}))]})})},m=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,u=l.isBeakerLoaded,s=l.beakerCurrentVolume,m=l.beakerMaxVolume,p=l.beakerContents,f=void 0===p?[]:p;return(0,o.createComponentVNode)(2,a.Section,{title:l.glass?"Glass":"Beaker",flex:"content",minHeight:"25%",buttons:(0,o.createComponentVNode)(2,a.Box,{children:[!!u&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[s," / ",m," units"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!u,onClick:function(){return i("ejectBeaker")}})]}),children:(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:u,beakerContents:f,buttons:function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Isolate",icon:"compress-arrows-alt",onClick:function(){return i("remove",{reagent:e.id,amount:-1})}}),d.map((function(t,n){return(0,o.createComponentVNode)(2,a.Button,{content:t,onClick:function(){return i("remove",{reagent:e.id,amount:t})}},n)})),(0,o.createComponentVNode)(2,a.Button,{content:"ALL",onClick:function(){return i("remove",{reagent:e.id,amount:e.volume})}})],0)}})})}},function(e,t,n){"use strict";e.exports=n(476)()},function(e,t,n){"use strict";var o=n(477);function r(){}function a(){}a.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,a,c){if(c!==o){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:r};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";t.__esModule=!0,t.ChemHeater=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(134),l=n(4);t.ChemHeater=function(e,t){return(0,o.createComponentVNode)(2,l.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,u)]})})};var d=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data,d=l.targetTemp,u=l.targetTempReached,s=l.autoEject,m=l.isActive,p=l.currentTemp,f=l.isBeakerLoaded;return(0,o.createComponentVNode)(2,c.Section,{title:"Settings",flexBasis:"content",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{content:"Auto-eject",icon:s?"toggle-on":"toggle-off",selected:s,onClick:function(){return i("toggle_autoeject")}}),(0,o.createComponentVNode)(2,c.Button,{content:m?"On":"Off",icon:"power-off",selected:m,disabled:!f,onClick:function(){return i("toggle_on")}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,c.NumberInput,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,r.round)(d,0),minValue:0,maxValue:1e3,onDrag:function(e,t){return i("adjust_temperature",{target:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Reading",color:u?"good":"average",children:f&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:p,format:function(e){return(0,r.toFixed)(e)+" K"}})||"\u2014"})]})})},u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.isBeakerLoaded,u=l.beakerCurrentVolume,s=l.beakerMaxVolume,m=l.beakerContents;return(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",flexGrow:"1",buttons:!!d&&(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"label",mr:2,children:[u," / ",s," units"]}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",onClick:function(){return r("eject_beaker")}})]}),children:(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:d,beakerContents:m})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(134),l=n(49),d=[1,5,10],u=["bottle.png","small_bottle.png","wide_bottle.png","round_bottle.png","reagent_bottle.png"];t.ChemMaster=function(e,t){var n=(0,r.useBackend)(t).data,a=n.condi,i=n.beaker,d=n.beaker_reagents,u=void 0===d?[]:d,f=n.buffer_reagents,h=void 0===f?[]:f,N=n.mode;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,l.ComplexModal),(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,s,{beaker:i,beakerReagents:u,bufferNonEmpty:h.length>0}),(0,o.createComponentVNode)(2,m,{mode:N,bufferReagents:h}),(0,o.createComponentVNode)(2,p,{isCondiment:a,bufferNonEmpty:h.length>0}),(0,o.createComponentVNode)(2,C)]})]})};var s=function(e,t){var n=(0,r.useBackend)(t).act,c=e.beaker,u=e.beakerReagents,s=e.bufferNonEmpty;return(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",flexGrow:"0",flexBasis:"300px",buttons:s?(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"eject",disabled:!c,content:"Eject and Clear Buffer",onClick:function(){return n("eject")}}):(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!c,content:"Eject and Clear Buffer",onClick:function(){return n("eject")}}),children:c?(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:!0,beakerContents:u,buttons:function(e,r){return(0,o.createComponentVNode)(2,a.Box,{mb:r0?(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:!0,beakerContents:s,buttons:function(e,r){return(0,o.createComponentVNode)(2,a.Box,{mb:r0?l.desc:"N/A"}),l.blood_type&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood type",children:l.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:l.blood_dna})],4),!i.condi&&(0,o.createComponentVNode)(2,a.Button,{icon:i.printing?"spinner":"print",disabled:i.printing,iconSpin:!!i.printing,ml:"0.5rem",content:"Print",onClick:function(){return c("print",{idx:l.idx,beaker:e.args.beaker})}})]})})})}))},function(e,t,n){"use strict";t.__esModule=!0,t.CloningConsole=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(39),l=n(49),d=n(4),u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=e.args,u=d.activerecord,s=d.realname,m=d.health,p=d.unidentity,f=d.strucenzymes,h=m.split(" - ");return(0,o.createComponentVNode)(2,c.Section,{level:2,m:"-1rem",pb:"1rem",title:"Records of "+s,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Damage",children:h.length>1?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{color:i.COLORS.damageType.oxy,display:"inline",children:h[0]}),(0,o.createTextVNode)("\xa0|\xa0"),(0,o.createComponentVNode)(2,c.Box,{color:i.COLORS.damageType.toxin,display:"inline",children:h[2]}),(0,o.createTextVNode)("\xa0|\xa0"),(0,o.createComponentVNode)(2,c.Box,{color:i.COLORS.damageType.brute,display:"inline",children:h[3]}),(0,o.createTextVNode)("\xa0|\xa0"),(0,o.createComponentVNode)(2,c.Box,{color:i.COLORS.damageType.burn,display:"inline",children:h[1]})],4):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Unknown"})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"UI",className:"LabeledList__breakContents",children:p}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"SE",className:"LabeledList__breakContents",children:f}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Disk",children:[(0,o.createComponentVNode)(2,c.Button.Confirm,{disabled:!l.disk,icon:"arrow-circle-down",content:"Import",onClick:function(){return r("disk",{option:"load"})}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!l.disk,icon:"arrow-circle-up",content:"Export UI",onClick:function(){return r("disk",{option:"save",savetype:"ui"})}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!l.disk,icon:"arrow-circle-up",content:"Export UI and UE",onClick:function(){return r("disk",{option:"save",savetype:"ue"})}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!l.disk,icon:"arrow-circle-up",content:"Export SE",onClick:function(){return r("disk",{option:"save",savetype:"se"})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Actions",children:[(0,o.createComponentVNode)(2,c.Button,{disabled:!l.podready,icon:"user-plus",content:"Clone",onClick:function(){return r("clone",{ref:u})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"trash",content:"Delete",onClick:function(){return r("del_rec")}})]})]})})};t.CloningConsole=function(e,t){var n=(0,a.useBackend)(t);n.act,n.data.menu;return(0,l.modalRegisterBodyOverride)("view_rec",u),(0,o.createComponentVNode)(2,d.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,l.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),(0,o.createComponentVNode)(2,d.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,h),(0,o.createComponentVNode)(2,C),(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,c.Section,{noTopPadding:!0,flexGrow:"1",children:(0,o.createComponentVNode)(2,m)})]})]})};var s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.menu;return(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:1===i,icon:"home",onClick:function(){return r("menu",{num:1})},children:"Main"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:2===i,icon:"folder",onClick:function(){return r("menu",{num:2})},children:"Records"})]})},m=function(e,t){var n,r=(0,a.useBackend)(t).data.menu;return 1===r?n=(0,o.createComponentVNode)(2,p):2===r&&(n=(0,o.createComponentVNode)(2,f)),n},p=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data,d=l.loading,u=l.scantemp,s=l.occupant,m=l.locked,p=l.can_brainscan,f=l.scan_mode,h=l.numberofpods,C=l.pods,N=l.selected_pod,b=m&&!!s;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Scanner",level:"2",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{display:"inline",color:"label",children:"Scanner Lock:\xa0"}),(0,o.createComponentVNode)(2,c.Button,{disabled:!s,selected:b,icon:b?"toggle-on":"toggle-off",content:b?"Engaged":"Disengaged",onClick:function(){return i("lock")}}),(0,o.createComponentVNode)(2,c.Button,{disabled:b||!s,icon:"user-slash",content:"Eject Occupant",onClick:function(){return i("eject")}})],4),children:[(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:d?(0,o.createComponentVNode)(2,c.Box,{color:"average",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"spinner",spin:!0}),"\xa0 Scanning..."]}):(0,o.createComponentVNode)(2,c.Box,{color:u.color,children:u.text})}),!!p&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,c.Button,{icon:f?"brain":"male",content:f?"Brain":"Body",onClick:function(){return i("toggle_mode")}})})]}),(0,o.createComponentVNode)(2,c.Button,{disabled:!s||d,icon:"user",content:"Scan Occupant",mt:"0.5rem",mb:"0",onClick:function(){return i("scan")}})]}),(0,o.createComponentVNode)(2,c.Section,{title:"Pods",level:"2",children:h?C.map((function(e,t){var n;return n="cloning"===e.status?(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:"100",value:e.progress/100,ranges:{good:[.75,Infinity],average:[.25,.75],bad:[-Infinity,.25]},mt:"0.5rem",children:(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",children:(0,r.round)(e.progress,0)+"%"})}):"mess"===e.status?(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:"bad",mt:"0.5rem",children:"ERROR"}):(0,o.createComponentVNode)(2,c.Button,{selected:N===e.pod,icon:N===e.pod&&"check",content:"Select",mt:"0.5rem",onClick:function(){return i("selectpod",{ref:e.pod})}}),(0,o.createComponentVNode)(2,c.Box,{width:"64px",textAlign:"center",display:"inline-block",mr:"0.5rem",children:[(0,o.createVNode)(1,"img",null,null,1,{src:"pod_"+e.status+".gif",style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor"}}),(0,o.createComponentVNode)(2,c.Box,{color:"label",children:["Pod #",t+1]}),(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:e.biomass>=150?"good":"bad",display:"inline",children:[(0,o.createComponentVNode)(2,c.Icon,{name:e.biomass>=150?"circle":"circle-o"}),"\xa0",e.biomass]}),n]},t)})):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"No pods detected. Unable to clone."})})],4)},f=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.records;return i.length?(0,o.createComponentVNode)(2,c.Box,{mt:"0.5rem",children:i.map((function(e,t){return(0,o.createComponentVNode)(2,c.Button,{icon:"user",mb:"0.5rem",content:e.realname,onClick:function(){return r("view_rec",{ref:e.record})}},t)}))}):(0,o.createComponentVNode)(2,c.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No records found."]})})},h=function(e,t){var n,r=(0,a.useBackend)(t),i=r.act,l=r.data.temp;if(l&&l.text&&!(l.text.length<=0)){var d=((n={})[l.style]=!0,n);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.NoticeBox,Object.assign({},d,{children:[(0,o.createComponentVNode)(2,c.Box,{display:"inline-block",verticalAlign:"middle",children:l.text}),(0,o.createComponentVNode)(2,c.Button,{icon:"times-circle",float:"right",onClick:function(){return i("cleartemp")}}),(0,o.createComponentVNode)(2,c.Box,{clear:"both"})]})))}},C=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.scanner,d=i.numberofpods,u=i.autoallowed,s=i.autoprocess,m=i.disk;return(0,o.createComponentVNode)(2,c.Section,{title:"Status",buttons:(0,o.createFragment)([!!u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{display:"inline",color:"label",children:"Auto-processing:\xa0"}),(0,o.createComponentVNode)(2,c.Button,{selected:s,icon:s?"toggle-on":"toggle-off",content:s?"Enabled":"Disabled",onClick:function(){return r("autoprocess",{on:s?0:1})}})],4),(0,o.createComponentVNode)(2,c.Button,{disabled:!m,icon:"eject",content:"Eject Disk",onClick:function(){return r("disk",{option:"eject"})}})],0),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Scanner",children:l?(0,o.createComponentVNode)(2,c.Box,{color:"good",children:"Connected"}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Not connected!"})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pods",children:d?(0,o.createComponentVNode)(2,c.Box,{color:"good",children:[d," connected"]}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"None connected!"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CommunicationsComputer=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.CommunicationsComputer=function(e,t){var n,i=(0,r.useBackend)(t),l=i.act,d=i.data,u=!1;d.authenticated?1===d.authenticated?n="Command":2===d.authenticated?n="Captain":3===d.authenticated?(n="CentComm Secure Connection",u=!0):n="ERROR: Report This Bug!":n="Not Logged In";var s="View ("+d.messages.length+")",m=(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Authentication",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access",children:n})||(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.authenticated?"sign-out-alt":"id-card",selected:d.authenticated,disabled:d.noauthbutton,content:d.authenticated?"Log Out ("+n+")":"Log In",onClick:function(){return l("auth")}})})})}),!!d.esc_section&&(0,o.createComponentVNode)(2,a.Section,{title:"Escape Shuttle",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!d.esc_status&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:d.esc_status}),!!d.esc_callable&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Options",children:(0,o.createComponentVNode)(2,a.Button,{icon:"rocket",content:"Call Shuttle",disabled:!d.authhead,onClick:function(){return l("callshuttle")}})}),!!d.esc_recallable&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Options",children:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Recall Shuttle",disabled:!d.authhead||d.is_ai,onClick:function(){return l("cancelshuttle")}})}),!!d.lastCallLoc&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Last Call/Recall From",children:d.lastCallLoc})]})})],0),p="Make Priority Announcement";d.msg_cooldown>0&&(p+=" ("+d.msg_cooldown+"s)");var f=d.emagged?"Message [UNKNOWN]":"Message CentComm",h="Request Authentication Codes";d.cc_cooldown>0&&(f+=" ("+d.cc_cooldown+"s)",h+=" ("+d.cc_cooldown+"s)");var C,N=d.str_security_level,b=d.levels.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.icon,content:e.name,disabled:!d.authcapt||e.id===d.security_level,onClick:function(){return l("newalertlevel",{level:e.id})}},e.name)})),g=d.stat_display.presets.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.label,selected:e.name===d.stat_display.type,disabled:!d.authhead,onClick:function(){return l("setstat",{statdisp:e.name})}},e.name)})),V=d.stat_display.alerts.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.label,selected:e.alert===d.stat_display.icon,disabled:!d.authhead,onClick:function(){return l("setstat",{statdisp:"alert",alert:e.alert})}},e.alert)}));if(d.current_message_title)C=(0,o.createComponentVNode)(2,a.Section,{title:d.current_message_title,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Return To Message List",disabled:!d.authhead,onClick:function(){return l("messagelist")}}),children:(0,o.createComponentVNode)(2,a.Box,{children:d.current_message})});else{var v=d.messages.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,children:[(0,o.createComponentVNode)(2,a.Button,{icon:"eye",content:"View",disabled:!d.authhead||d.current_message_title===e.title,onClick:function(){return l("messagelist",{msgid:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Delete",disabled:!d.authhead,onClick:function(){return l("delmessage",{msgid:e.id})}})]},e.id)}));C=(0,o.createComponentVNode)(2,a.Section,{title:"Messages Received",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){return l("main")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:v})})}switch(d.menu_state){case 1:return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[m,(0,o.createComponentVNode)(2,a.Section,{title:"Captain-Only Actions",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Alert",color:d.security_level_color,children:N}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Change Alert",children:b}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Announcement",children:(0,o.createComponentVNode)(2,a.Button,{icon:"bullhorn",content:p,disabled:!d.authcapt||d.msg_cooldown>0,onClick:function(){return l("announce")}})}),!!d.emagged&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transmit",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"broadcast-tower",color:"red",content:f,disabled:!d.authcapt||d.cc_cooldown>0,onClick:function(){return l("MessageSyndicate")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",content:"Reset Relays",disabled:!d.authcapt,onClick:function(){return l("RestoreBackup")}})]})||(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transmit",children:(0,o.createComponentVNode)(2,a.Button,{icon:"broadcast-tower",content:f,disabled:!d.authcapt||d.cc_cooldown>0,onClick:function(){return l("MessageCentcomm")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nuclear Device",children:(0,o.createComponentVNode)(2,a.Button,{icon:"bomb",content:h,disabled:!d.authcapt||d.cc_cooldown>0,onClick:function(){return l("nukerequest")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Command Staff Actions",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Displays",children:(0,o.createComponentVNode)(2,a.Button,{icon:"tv",content:"Change Status Displays",disabled:!d.authhead,onClick:function(){return l("status")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Incoming Messages",children:(0,o.createComponentVNode)(2,a.Button,{icon:"folder-open",content:s,disabled:!d.authhead,onClick:function(){return l("messagelist")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Misc",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",content:"Restart Nano-Mob Hunter GO! Server",disabled:!d.authhead,onClick:function(){return l("RestartNanoMob")}})})]})})]})});case 2:return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[m,(0,o.createComponentVNode)(2,a.Section,{title:"Modify Status Screens",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){return l("main")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:g}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alerts",children:V}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message Line 1",children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:d.stat_display.line_1,disabled:!d.authhead,onClick:function(){return l("setmsg1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message Line 2",children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:d.stat_display.line_2,disabled:!d.authhead,onClick:function(){return l("setmsg2")}})})]})})]})});case 3:return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[m,C]})});default:return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[m,"ERRROR. Unknown menu_state: ",d.menu_state,"Please report this to NT Technical Support."]})})}}},function(e,t,n){"use strict";t.__esModule=!0,t.Contractor=void 0;var o=n(0),r=n(1),a=n(2),c=n(184),i=n(4);var l={1:["ACTIVE","good"],2:["COMPLETED","good"],3:["FAILED","bad"]},d=["Recording biometric data...","Analyzing embedded syndicate info...","STATUS CONFIRMED","Contacting Syndicate database...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Response received, ack 4851234...","CONFIRM ACC "+Math.round(2e4*Math.random()),"Setting up private accounts...","CONTRACTOR ACCOUNT CREATED","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","CONTRACTS FOUND","WELCOME, AGENT"];t.Contractor=function(e,t){var n,c=(0,r.useBackend)(t),l=c.act,C=c.data;n=C.unauthorized?(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,o.createComponentVNode)(2,f,{height:"100%",allMessages:["ERROR: UNAUTHORIZED USER"],finishedTimeout:100,onFinished:function(){}})}):C.load_animation_completed?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"content",children:(0,o.createComponentVNode)(2,u)}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"content",mt:"0.5rem",children:(0,o.createComponentVNode)(2,s)}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",overflow:"hidden",children:1===C.page?(0,o.createComponentVNode)(2,m,{height:"100%"}):(0,o.createComponentVNode)(2,p,{height:"100%"})})],4):(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,o.createComponentVNode)(2,f,{height:"100%",allMessages:d,finishedTimeout:3e3,onFinished:function(){return l("complete_load_animation")}})});var N=(0,r.useLocalState)(t,"viewingPhoto",""),b=N[0];N[1];return(0,o.createComponentVNode)(2,i.Window,{theme:"syndicate",children:[b&&(0,o.createComponentVNode)(2,h),(0,o.createComponentVNode)(2,i.Window.Content,{className:"Contractor",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",height:"100%",children:n})})]})};var u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.tc_available,d=i.tc_paid_out,u=i.completed_contracts,s=i.rep;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({title:"Summary",buttons:(0,o.createComponentVNode)(2,a.Box,{verticalAlign:"middle",mt:"0.25rem",children:[s," Rep"]})},e,{children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Box,{flexBasis:"50%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Available",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",children:[l," TC"]}),(0,o.createComponentVNode)(2,a.Button,{disabled:l<=0,content:"Claim",mx:"0.75rem",mb:"0",flexBasis:"content",onClick:function(){return c("claim")}})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Earned",children:[d," TC"]})]})}),(0,o.createComponentVNode)(2,a.Box,{flexBasis:"50%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contracts Completed",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,a.Box,{height:"20px",lineHeight:"20px",display:"inline-block",children:u})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contractor Status",verticalAlign:"middle",children:"ACTIVE"})]})})]})})))},s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.page;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Tabs,Object.assign({},e,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===i,onClick:function(){return c("page",{page:1})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"suitcase"}),"Contracts"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===i,onClick:function(){return c("page",{page:2})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"shopping-cart"}),"Hub"]})]})))},m=function(e,t){var n=(0,r.useBackend)(t),i=n.act,d=n.data,u=d.contracts,s=d.contract_active,m=d.can_extract,p=!!s&&u.filter((function(e){return 1===e.status}))[0],f=p&&p.time_left>0,h=(0,r.useLocalState)(t,"viewingPhoto",""),C=(h[0],h[1]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({title:"Available Contracts",overflow:"auto",buttons:(0,o.createComponentVNode)(2,a.Button,{disabled:!m||f,icon:"parachute-box",content:["Call Extraction",f&&(0,o.createComponentVNode)(2,c.Countdown,{timeLeft:p.time_left,format:function(e,t){return" ("+t.substr(3)+")"}})],onClick:function(){return i("extract")}})},e,{children:u.slice().sort((function(e,t){return 1===e.status?-1:1===t.status?1:e.status-t.status})).map((function(e){var t;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",color:1===e.status&&"good",children:e.target_name}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"content",children:e.has_photo&&(0,o.createComponentVNode)(2,a.Button,{icon:"camera",mb:"-0.5rem",ml:"0.5rem",onClick:function(){return C("target_photo_"+e.uid+".png")}})})]}),className:"Contractor__Contract",buttons:(0,o.createComponentVNode)(2,a.Box,{width:"100%",children:[!!l[e.status]&&(0,o.createComponentVNode)(2,a.Box,{color:l[e.status][1],display:"inline-block",mt:1!==e.status&&"0.125rem",mr:"0.25rem",lineHeight:"20px",children:l[e.status][0]}),1===e.status&&(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"ban",color:"bad",content:"Abort",ml:"0.5rem",onClick:function(){return i("abort")}})]}),children:(0,o.createComponentVNode)(2,a.Flex,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"2",mr:"0.5rem",children:[e.fluff_message,!!e.completed_time&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Icon,{name:"check",mr:"0.5rem"}),"Contract completed at ",e.completed_time]}),!!e.dead_extraction&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",mt:"0.5rem",bold:!0,children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"Telecrystals reward reduced drastically as the target was dead during extraction."]}),!!e.fail_reason&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:[(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Icon,{name:"times",mr:"0.5rem"}),"Contract failed: ",e.fail_reason]})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",flexBasis:"100%",children:[(0,o.createComponentVNode)(2,a.Box,{mb:"0.5rem",color:"label",children:"Extraction Zone:"}),null==(t=e.difficulties)?void 0:t.map((function(t,n){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{disabled:!!s,content:t.name+" ("+t.reward+" TC)",onClick:function(){return i("activate",{uid:e.uid,difficulty:n+1})}}),(0,o.createVNode)(1,"br")],4)})),!!e.objective&&(0,o.createComponentVNode)(2,a.Box,{color:"white",bold:!0,children:[e.objective.extraction_zone,(0,o.createVNode)(1,"br"),"(",(e.objective.reward_tc||0)+" TC",",\xa0",(e.objective.reward_credits||0)+" Credits",")"]})]})]})},e.uid)}))})))},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.rep,d=i.buyables;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({title:"Available Purchases",overflow:"auto"},e,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:[e.description,(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Confirm,{disabled:l-1&&(0,o.createComponentVNode)(2,a.Box,{as:"span",color:0===e.stock?"bad":"good",ml:"0.5rem",children:[e.stock," in stock"]})]},e.uid)}))})))},f=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={currentIndex:0,currentDisplay:[]},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.tick=function(){var e=this.props,t=this.state;t.currentIndex<=e.allMessages.length?(this.setState((function(e){return{currentIndex:e.currentIndex+1}})),t.currentDisplay.push(e.allMessages[t.currentIndex])):(clearTimeout(this.timer),setTimeout(e.onFinished,e.finishedTimeout))},c.componentDidMount=function(){var e=this,t=this.props.linesPerSecond,n=void 0===t?2.5:t;this.timer=setInterval((function(){return e.tick()}),1e3/n)},c.componentWillUnmount=function(){clearTimeout(this.timer)},c.render=function(){return(0,o.createComponentVNode)(2,a.Box,{m:1,children:this.state.currentDisplay.map((function(e){return(0,o.createFragment)([e,(0,o.createVNode)(1,"br")],0,e)}))})},r}(o.Component),h=function(e,t){var n=(0,r.useLocalState)(t,"viewingPhoto",""),c=n[0],i=n[1];return(0,o.createComponentVNode)(2,a.Modal,{className:"Contractor__photoZoom",children:[(0,o.createComponentVNode)(2,a.Box,{as:"img",src:c}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){return i("")}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ConveyorSwitch=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.ConveyorSwitch=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.slowFactor,u=l.oneWay,s=l.position;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Lever position",children:s>0?"forward":s<0?"reverse":"neutral"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Allow reverse",children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:!u,onClick:function(){return i("toggleOneWay")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Slowdown factor",children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mx:"1px",children:[" ",(0,o.createComponentVNode)(2,a.Button,{icon:"angle-double-left",onClick:function(){return i("slowFactor",{value:d-5})}})," "]}),(0,o.createComponentVNode)(2,a.Flex.Item,{mx:"1px",children:[" ",(0,o.createComponentVNode)(2,a.Button,{icon:"angle-left",onClick:function(){return i("slowFactor",{value:d-1})}})," "]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Slider,{width:"100px",mx:"1px",value:d,fillValue:d,minValue:1,maxValue:50,step:1,format:function(e){return e+"x"},onChange:function(e,t){return i("slowFactor",{value:t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mx:"1px",children:[" ",(0,o.createComponentVNode)(2,a.Button,{icon:"angle-right",onClick:function(){return i("slowFactor",{value:d+1})}})," "]}),(0,o.createComponentVNode)(2,a.Flex.Item,{mx:"1px",children:[" ",(0,o.createComponentVNode)(2,a.Button,{icon:"angle-double-right",onClick:function(){return i("slowFactor",{value:d+5})}})," "]})]})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.CrewMonitor=void 0;var o=n(0),r=n(26),a=n(19),c=n(1),i=n(2),l=n(76),d=n(39),u=n(4),s=function(e,t){return e.dead?"Deceased":parseInt(e.health,10)<=t?"Critical":1===parseInt(e.stat,10)?"Unconscious":"Living"},m=function(e,t){return e.dead?"red":parseInt(e.health,10)<=t?"orange":1===parseInt(e.stat,10)?"blue":"green"};t.CrewMonitor=function(e,t){var n=(0,c.useBackend)(t),r=(n.act,n.data,(0,c.useLocalState)(t,"tabIndex",0)),a=r[0],l=r[1];return(0,o.createComponentVNode)(2,u.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{children:(0,o.createComponentVNode)(2,i.Box,{fillPositionedParent:!0,children:[(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:0===a,onClick:function(){return l(0)},children:[(0,o.createComponentVNode)(2,i.Icon,{name:"table"})," Data View"]},"DataView"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:1===a,onClick:function(){return l(1)},children:[(0,o.createComponentVNode)(2,i.Icon,{name:"map-marked-alt"})," Map View"]},"MapView")]}),function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,p);case 1:return(0,o.createComponentVNode)(2,f);default:return"WE SHOULDN'T BE HERE!"}}(a)]})})})};var p=function(e,t){var n=(0,c.useBackend)(t),u=n.act,p=n.data,f=(0,r.sortBy)((function(e){return e.name}))(p.crewmembers||[]),h=(0,c.useLocalState)(t,"search",""),C=h[0],N=h[1],b=(0,a.createSearch)(C,(function(e){return e.name+"|"+e.assignment+"|"+e.area}));return(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Input,{placeholder:"Search by name, assignment or location..",width:"100%",onInput:function(e,t){return N(t)}}),(0,o.createComponentVNode)(2,i.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Status"}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Location"})]}),f.filter(b).map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{bold:!!e.is_command,children:[(0,o.createComponentVNode)(2,l.TableCell,{children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,l.TableCell,{children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:m(e,p.critThreshold),children:s(e,p.critThreshold)}),e.sensor_type>=2?(0,o.createComponentVNode)(2,i.Box,{inline:!0,children:["(",(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d.COLORS.damageType.oxy,children:e.oxy}),"|",(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d.COLORS.damageType.toxin,children:e.tox}),"|",(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d.COLORS.damageType.burn,children:e.fire}),"|",(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d.COLORS.damageType.brute,children:e.brute}),")"]}):null]}),(0,o.createComponentVNode)(2,l.TableCell,{children:3===e.sensor_type?p.isAI?(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"location-arrow",content:e.area+" ("+e.x+", "+e.y+")",onClick:function(){return u("track",{track:e.ref})}}):e.area+" ("+e.x+", "+e.y+")":"Not Available"})]},e.name)}))]})]})},f=function(e,t){var n=(0,c.useBackend)(t).data,r=(0,c.useLocalState)(t,"zoom",1),a=r[0],l=r[1];return(0,o.createComponentVNode)(2,i.Box,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,o.createComponentVNode)(2,i.NanoMap,{onZoom:function(e){return l(e)},children:n.crewmembers.filter((function(e){return 3===e.sensor_type})).map((function(e){return(0,o.createComponentVNode)(2,i.NanoMap.Marker,{x:e.x,y:e.y,zoom:a,icon:"circle",tooltip:e.name+" ("+e.assignment+")",color:m(e,n.critThreshold)},e.ref)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],l=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]];t.Cryo=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:(0,o.createComponentVNode)(2,d)})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data,s=d.isOperating,m=d.hasOccupant,p=d.occupant,f=void 0===p?[]:p,h=d.cellTemperature,C=d.cellTemperatureStatus,N=d.isBeakerLoaded,b=d.auto_eject_healthy,g=d.auto_eject_dead;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",flexGrow:"1",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"user-slash",onClick:function(){return c("ejectOccupant")},disabled:!m,children:"Eject"}),children:m?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:f.name||"Unknown"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:f.health,max:f.maxHealth,value:f.health/f.maxHealth,color:f.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(f.health)})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:l[f.stat][0],children:l[f.stat][1]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(f.bodyTemperature)})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),i.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:f[e.type]/100,ranges:{bad:[.01,Infinity]},children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(f[e.type])})})},e.id)}))]}):(0,o.createComponentVNode)(2,a.Flex,{height:"100%",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant detected."]})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",onClick:function(){return c("ejectBeaker")},disabled:!N,children:"Eject Beaker"}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",onClick:function(){return c(s?"switchOff":"switchOn")},selected:s,children:s?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:C,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:h})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Beaker",children:(0,o.createComponentVNode)(2,u)}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auto-eject healthy occupants",children:(0,o.createComponentVNode)(2,a.Button,{icon:b?"toggle-on":"toggle-off",selected:b,onClick:function(){return c(b?"auto_eject_healthy_off":"auto_eject_healthy_on")},children:b?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auto-eject dead occupants",children:(0,o.createComponentVNode)(2,a.Button,{icon:g?"toggle-on":"toggle-off",selected:g,onClick:function(){return c(g?"auto_eject_dead_off":"auto_eject_dead_on")},children:g?"On":"Off"})})]})})],4)},u=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data),i=c.isBeakerLoaded,l=c.beakerLabel,d=c.beakerVolume;return i?(0,o.createFragment)([l||(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No label"}),(0,o.createComponentVNode)(2,a.Box,{color:!d&&"bad",children:d?(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d,format:function(e){return Math.round(e)+" units remaining"}}):"Beaker is empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No beaker loaded"})}},function(e,t,n){"use strict";t.__esModule=!0,t.DNAModifier=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(49),l=[["good","Alive"],["average","Critical"],["bad","DEAD"]],d=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],u=[5,10,20,30,50];t.DNAModifier=function(e,t){var n,a=(0,r.useBackend)(t),l=(a.act,a.data),d=l.irradiating,u=l.dnaBlockSize,p=l.occupant;return t.dnaBlockSize=u,t.isDNAInvalid=!p.isViableSubject||!p.uniqueIdentity||!p.structuralEnzymes,d&&(n=(0,o.createComponentVNode)(2,V,{duration:d})),(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,i.ComplexModal),n,(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,m)]})]})};var s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.locked,u=i.hasOccupant,s=i.occupant;return(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"label",display:"inline",mr:"0.5rem",children:"Door Lock:"}),(0,o.createComponentVNode)(2,a.Button,{disabled:!u,selected:d,icon:d?"toggle-on":"toggle-off",content:d?"Engaged":"Disengaged",onClick:function(){return c("toggleLock")}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!u||d,icon:"user-slash",content:"Eject",onClick:function(){return c("ejectOccupant")}})],4),children:u?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:s.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:s.minHealth,max:s.maxHealth,value:s.health/s.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:l[s.stat][0],children:l[s.stat][1]}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})}),t.isDNAInvalid?(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-circle"}),"\xa0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:"0",max:"100",value:s.radiationLevel/100,color:"average"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unique Enzymes",children:i.occupant.uniqueEnzymes?i.occupant.uniqueEnzymes:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-circle"}),"\xa0 Unknown"]})})]})],0):(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"Cell unoccupied."})})},m=function(e,t){var n,c=(0,r.useBackend)(t),i=c.act,l=c.data,u=l.selectedMenuKey,s=l.hasOccupant;l.occupant;return s?t.isDNAInvalid?(0,o.createComponentVNode)(2,a.Section,{flexGrow:"1",children:(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No operation possible on this subject."]})})}):("ui"===u?n=(0,o.createFragment)([(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,h)],4):"se"===u?n=(0,o.createFragment)([(0,o.createComponentVNode)(2,f),(0,o.createComponentVNode)(2,h)],4):"buffer"===u?n=(0,o.createComponentVNode)(2,C):"rejuvenators"===u&&(n=(0,o.createComponentVNode)(2,g)),(0,o.createComponentVNode)(2,a.Section,{flexGrow:"1",children:[(0,o.createComponentVNode)(2,a.Tabs,{children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:u===e[0],onClick:function(){return i("selectMenuKey",{key:e[0]})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:e[2]}),e[1]]},t)}))}),n]})):(0,o.createComponentVNode)(2,a.Section,{flexGrow:"1",children:(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant in DNA modifier."]})})})},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.selectedUIBlock,d=i.selectedUISubBlock,u=i.selectedUITarget,s=i.occupant;return(0,o.createComponentVNode)(2,a.Section,{title:"Modify Unique Identifier",level:"2",children:[(0,o.createComponentVNode)(2,v,{dnaString:s.uniqueIdentity,selectedBlock:l,selectedSubblock:d,blockSize:t.dnaBlockSize,action:"selectUIBlock"}),(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,a.Knob,{minValue:"1",maxValue:"15",stepPixelSize:"20",value:u,format:function(e){return e.toString(16).toUpperCase()},ml:"0",onChange:function(e,t){return c("changeUITarget",{value:t})}})})}),(0,o.createComponentVNode)(2,a.Button,{icon:"radiation",content:"Irradiate Block",mt:"0.5rem",onClick:function(){return c("pulseUIRadiation")}})]})},f=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.selectedSEBlock,d=i.selectedSESubBlock,u=i.occupant;return(0,o.createComponentVNode)(2,a.Section,{title:"Modify Structural Enzymes",level:"2",children:[(0,o.createComponentVNode)(2,v,{dnaString:u.structuralEnzymes,selectedBlock:l,selectedSubblock:d,blockSize:t.dnaBlockSize,action:"selectSEBlock"}),(0,o.createComponentVNode)(2,a.Button,{icon:"radiation",content:"Irradiate Block",onClick:function(){return c("pulseSERadiation")}})]})},h=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.radiationIntensity,d=i.radiationDuration;return(0,o.createComponentVNode)(2,a.Section,{title:"Radiation Emitter",level:"2",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Intensity",children:(0,o.createComponentVNode)(2,a.Knob,{minValue:"1",maxValue:"10",stepPixelSize:"20",value:l,popUpPosition:"right",ml:"0",onChange:function(e,t){return c("radiationIntensity",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Duration",children:(0,o.createComponentVNode)(2,a.Knob,{minValue:"1",maxValue:"20",stepPixelSize:"10",unit:"s",value:d,popUpPosition:"right",ml:"0",onChange:function(e,t){return c("radiationDuration",{value:t})}})})]}),(0,o.createComponentVNode)(2,a.Button,{icon:"radiation",content:"Pulse Radiation",tooltip:"Mutates a random block of either the occupant's UI or SE.",tooltipPosition:"top-right",mt:"0.5rem",onClick:function(){return c("pulseRadiation")}})]})},C=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.buffers.map((function(e,t){return(0,o.createComponentVNode)(2,N,{id:t+1,name:"Buffer "+(t+1),buffer:e},t)})));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Buffers",level:"2",children:c}),(0,o.createComponentVNode)(2,b)],4)},N=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=e.id,d=e.name,u=e.buffer,s=i.isInjectorReady,m=d+(u.data?" - "+u.label:"");return(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,o.createComponentVNode)(2,a.Section,{title:m,level:"3",mx:"0",lineHeight:"18px",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{disabled:!u.data,icon:"trash",content:"Clear",onClick:function(){return c("bufferOption",{option:"clear",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!u.data,icon:"pen",content:"Rename",onClick:function(){return c("bufferOption",{option:"changeLabel",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!u.data||!i.hasDisk,icon:"save",content:"Export",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-left",onClick:function(){return c("bufferOption",{option:"saveDisk",id:l})}})],4),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Write",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-down",content:"Subject U.I",mb:"0",onClick:function(){return c("bufferOption",{option:"saveUI",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-down",content:"Subject U.I and U.E.",mb:"0",onClick:function(){return c("bufferOption",{option:"saveUIAndUE",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-down",content:"Subject S.E.",mb:"0",onClick:function(){return c("bufferOption",{option:"saveSE",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!i.hasDisk||!i.disk.data,icon:"arrow-circle-down",content:"From Disk",mb:"0",onClick:function(){return c("bufferOption",{option:"loadDisk",id:l})}})]}),!!u.data&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Subject",children:u.owner||(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Unknown"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Data Type",children:["ui"===u.type?"Unique Identifiers":"Structural Enzymes",!!u.ue&&" and Unique Enzymes"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer to",children:[(0,o.createComponentVNode)(2,a.Button,{disabled:!s,icon:s?"syringe":"spinner",iconSpin:!s,content:"Injector",mb:"0",onClick:function(){return c("bufferOption",{option:"createInjector",id:l})}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!s,icon:s?"syringe":"spinner",iconSpin:!s,content:"Block Injector",mb:"0",onClick:function(){return c("bufferOption",{option:"createInjector",id:l,block:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"user",content:"Subject",mb:"0",onClick:function(){return c("bufferOption",{option:"transfer",id:l})}})]})],4)]}),!u.data&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},b=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.hasDisk,d=i.disk;return(0,o.createComponentVNode)(2,a.Section,{title:"Data Disk",level:"2",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{disabled:!l||!d.data,icon:"trash",content:"Wipe",onClick:function(){return c("wipeDisk")}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!l,icon:"eject",content:"Eject",onClick:function(){return c("ejectDisk")}})],4),children:l?d.data?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:d.label?d.label:"No label"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Subject",children:d.owner?d.owner:(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Unknown"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Data Type",children:["ui"===d.type?"Unique Identifiers":"Structural Enzymes",!!d.ue&&" and Unique Enzymes"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"Disk is blank."}):(0,o.createComponentVNode)(2,a.Box,{color:"label",textAlign:"center",my:"1rem",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"save-o",size:"4"}),(0,o.createVNode)(1,"br"),"No disk inserted."]})})},g=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.isBeakerLoaded,d=i.beakerVolume,s=i.beakerLabel;return(0,o.createComponentVNode)(2,a.Section,{title:"Rejuvenators and Beaker",level:"2",buttons:(0,o.createComponentVNode)(2,a.Button,{disabled:!l,icon:"eject",content:"Eject",onClick:function(){return c("ejectBeaker")}}),children:l?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Inject",children:[u.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{disabled:e>d,icon:"syringe",content:e,onClick:function(){return c("injectRejuvenators",{amount:e})}},t)})),(0,o.createComponentVNode)(2,a.Button,{disabled:d<=0,icon:"syringe",content:"All",onClick:function(){return c("injectRejuvenators",{amount:d})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Beaker",children:[(0,o.createComponentVNode)(2,a.Box,{mb:"0.5rem",children:s||"No label"}),d?(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[d," unit",1===d?"":"s"," remaining"]}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Empty"})]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"label",textAlign:"center",my:"25%",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",size:"4"}),(0,o.createVNode)(1,"br"),"No beaker loaded."]})})},V=function(e,t){return(0,o.createComponentVNode)(2,a.Dimmer,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"spinner",size:"5",spin:!0}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Box,{color:"average",children:(0,o.createVNode)(1,"h1",null,[(0,o.createComponentVNode)(2,a.Icon,{name:"radiation"}),(0,o.createTextVNode)("\xa0Irradiating occupant\xa0"),(0,o.createComponentVNode)(2,a.Icon,{name:"radiation"})],4)}),(0,o.createComponentVNode)(2,a.Box,{color:"label",children:(0,o.createVNode)(1,"h3",null,[(0,o.createTextVNode)("For "),e.duration,(0,o.createTextVNode)(" second"),1===e.duration?"":"s"],0)})]})},v=function(e,t){for(var n=(0,r.useBackend)(t),c=n.act,i=(n.data,e.dnaString),l=e.selectedBlock,d=e.selectedSubblock,u=e.blockSize,s=e.action,m=i.split(""),p=[],f=function(e){for(var t=e/u+1,n=[],r=function(r){var i=r+1;n.push((0,o.createComponentVNode)(2,a.Button,{selected:l===t&&d===i,content:m[e+r],mb:"0",onClick:function(){return c(s,{block:t,subblock:i})}}))},i=0;i0?"Yes":"No",selected:l.com>0,onClick:function(){return i("toggle_com")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Security",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.sec===e,content:e,onClick:function(){return i("set_sec",{set_sec:e})}},"sec"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Medical",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.med===e,content:e,onClick:function(){return i("set_med",{set_med:e})}},"med"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Engineering",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.eng===e,content:e,onClick:function(){return i("set_eng",{set_eng:e})}},"eng"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Paranormal",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.par===e,content:e,onClick:function(){return i("set_par",{set_par:e})}},"par"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Janitor",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.jan===e,content:e,onClick:function(){return i("set_jan",{set_jan:e})}},"jan"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cyborg",children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Button,{selected:l.cyb===e,content:e,onClick:function(){return i("set_cyb",{set_cyb:e})}},"cyb"+e)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Slots",children:(0,o.createComponentVNode)(2,a.Box,{color:l.total>l.spawnpoints?"red":"green",children:[l.total," total, versus ",l.spawnpoints," spawnpoints"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Dispatch",children:(0,o.createComponentVNode)(2,a.Button,{icon:"ambulance",content:"Send ERT",onClick:function(){return i("dispatch_ert")}})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Electropack=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(4);t.Electropack=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.power,s=d.code,m=d.frequency,p=d.minFrequency,f=d.maxFrequency;return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"freq"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:p/10,maxValue:f/10,value:m/10,format:function(e){return(0,r.toFixed)(e,1)},width:"80px",onChange:function(e,t){return l("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Code",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"code"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:s,width:"80px",onChange:function(e,t){return l("code",{code:t})}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.EvolutionMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.EvolutionMenu=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,theme:"changeling",children:(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,i),(0,o.createComponentVNode)(2,l)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.evo_points,d=i.can_respec;return(0,o.createComponentVNode)(2,a.Section,{title:"Evolution Points",height:5.5,children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mt:.5,color:"label",children:"Points remaining:"}),(0,o.createComponentVNode)(2,a.Flex.Item,{mt:.5,ml:2,bold:!0,color:"#1b945c",children:l}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{ml:2.5,disabled:!d,content:"Readapt",icon:"sync",onClick:function(){return c("readapt")}}),(0,o.createComponentVNode)(2,a.Button,{tooltip:"By transforming a humanoid into a husk, we gain the ability to readapt our chosen evolutions.",tooltipPosition:"bottom",icon:"question-circle"})]})]})})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.evo_points,d=i.ability_list,u=i.purchsed_abilities,s=i.view_mode;return(0,o.createComponentVNode)(2,a.Section,{title:"Abilities",flexGrow:"1",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:s?"square-o":"check-square-o",selected:!s,content:"Compact",onClick:function(){return c("set_view_mode",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:s?"check-square-o":"square-o",selected:s,content:"Expanded",onClick:function(){return c("set_view_mode",{mode:1})}})],4),children:d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{p:.5,mx:-1,className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{ml:.5,color:"#dedede",children:e.name}),u.includes(e.name)&&(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,bold:!0,color:"#1b945c",children:"(Purchased)"}),(0,o.createComponentVNode)(2,a.Flex.Item,{mr:3,textAlign:"right",grow:1,children:[(0,o.createComponentVNode)(2,a.Box,{as:"span",color:"label",children:["Cost: "," "]}),(0,o.createComponentVNode)(2,a.Box,{as:"span",bold:!0,color:"#1b945c",children:e.cost})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{mr:.5,disabled:e.cost>l||u.includes(e.name),content:"Evolve",onClick:function(){return c("purchase",{power_name:e.name})}})})]}),!!s&&(0,o.createComponentVNode)(2,a.Flex,{color:"#8a8a8a",my:1,ml:1.5,width:"95%",children:e.description+" "+e.helptext})]},t)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitFabricator=void 0;var o=n(0),r=n(8),a=n(19),c=n(1),i=n(2),l=n(184),d=n(4);var u={bananium:"clown",tranquillite:"mime"};t.ExosuitFabricator=function(e,t){var n=(0,c.useBackend)(t),r=(n.act,n.data.building);return(0,o.createComponentVNode)(2,d.Window,{children:(0,o.createComponentVNode)(2,d.Window.Content,{className:"Exofab",children:(0,o.createComponentVNode)(2,i.Flex,{width:"100%",height:"100%",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",mr:"0.5rem",width:"70%",children:(0,o.createComponentVNode)(2,i.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",basis:"100%",children:(0,o.createComponentVNode)(2,m)}),r&&(0,o.createComponentVNode)(2,i.Flex.Item,{basis:"content",mt:"0.5rem",children:(0,o.createComponentVNode)(2,p)})]})}),(0,o.createComponentVNode)(2,i.Flex.Item,{width:"30%",children:(0,o.createComponentVNode)(2,i.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",basis:"50%",children:(0,o.createComponentVNode)(2,s)}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",basis:"50%",mt:"0.5rem",children:(0,o.createComponentVNode)(2,f)})]})})]})})})};var s=function(e,t){var n=(0,c.useBackend)(t),r=n.act,a=n.data,l=a.materials,d=a.capacity,u=Object.values(l).reduce((function(e,t){return e+t}),0);return(0,o.createComponentVNode)(2,i.Section,{title:"Materials",className:"Exofab__materials",buttons:(0,o.createComponentVNode)(2,i.Box,{color:"label",mt:"0.25rem",children:[(u/d*100).toPrecision(3),"% full"]}),children:["$metal","$glass","$silver","$gold","$uranium","$titanium","$plasma","$diamond","$bluespace","$bananium","$tranquillite","$plastic"].map((function(e){return(0,o.createComponentVNode)(2,h,{id:e,bold:"$metal"===e||"$glass"===e,onClick:function(){return r("withdraw",{id:e})}},e)}))})},m=function(e,t){var n=(0,c.useBackend)(t),r=n.act,l=n.data,d=l.curCategory,u=l.categories,s=l.designs,m=l.syncing,p=(0,c.useLocalState)(t,"searchText",""),f=p[0],h=p[1],N=(0,a.createSearch)(f,(function(e){return e.name})),b=s.filter(N);return(0,o.createComponentVNode)(2,i.Section,{className:"Exofab__designs",title:(0,o.createComponentVNode)(2,i.Dropdown,{selected:d,options:u,onSelected:function(e){return r("category",{cat:e})},width:"150px"}),height:"100%",buttons:(0,o.createComponentVNode)(2,i.Box,{mt:"-18px",children:[(0,o.createComponentVNode)(2,i.Button,{icon:"plus",content:"Queue all",onClick:function(){return r("queueall")}}),(0,o.createComponentVNode)(2,i.Button,{disabled:m,iconSpin:m,icon:"sync-alt",content:m?"Synchronizing...":"Synchronize with R&D servers",onClick:function(){return r("sync")}})]}),children:[(0,o.createComponentVNode)(2,i.Input,{placeholder:"Search by name...",mb:"0.5rem",width:"100%",onInput:function(e,t){return h(t)}}),b.map((function(e){return(0,o.createComponentVNode)(2,C,{design:e},e.id)})),0===b.length&&(0,o.createComponentVNode)(2,i.Box,{color:"label",children:"No designs found."})]})},p=function(e,t){var n=(0,c.useBackend)(t),r=(n.act,n.data),a=r.building,d=r.buildStart,u=r.buildEnd,s=r.worldTime;return(0,o.createComponentVNode)(2,i.Section,{className:"Exofab__building",stretchContents:!0,children:(0,o.createComponentVNode)(2,i.ProgressBar.Countdown,{start:d,current:s,end:u,bold:!0,children:[(0,o.createComponentVNode)(2,i.Box,{float:"left",children:(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:!0})}),"Building ",a,"\xa0(",(0,o.createComponentVNode)(2,l.Countdown,{current:s,timeLeft:u-s,format:function(e,t){return t.substr(3)}}),")"]})})},f=function(e,t){var n=(0,c.useBackend)(t),r=n.act,a=n.data,l=a.queue,d=a.processingQueue,u=Object.entries(a.queueDeficit).filter((function(e){return e[1]<0})),s=l.reduce((function(e,t){return e+t.time}),0);return(0,o.createComponentVNode)(2,i.Section,{className:"Exofab__queue",title:"Queue",buttons:(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Button,{selected:d,icon:d?"toggle-on":"toggle-off",content:"Process",onClick:function(){return r("process")}}),(0,o.createComponentVNode)(2,i.Button,{disabled:0===l.length,icon:"eraser",content:"Clear",onClick:function(){return r("unqueueall")}})]}),children:(0,o.createComponentVNode)(2,i.Flex,{height:"100%",direction:"column",children:0===l.length?(0,o.createComponentVNode)(2,i.Box,{color:"label",children:"The queue is empty."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Flex.Item,{className:"Exofab__queue--queue",grow:"1",overflow:"auto",children:l.map((function(e,t){return(0,o.createComponentVNode)(2,i.Box,{color:e.notEnough&&"bad",children:[t+1,". ",e.name,t>0&&(0,o.createComponentVNode)(2,i.Button,{icon:"arrow-up",onClick:function(){return r("queueswap",{from:t+1,to:t})}}),t0&&(0,o.createComponentVNode)(2,i.Flex.Item,{className:"Exofab__queue--time",basis:"content",shrink:"0",children:[(0,o.createComponentVNode)(2,i.Divider),"Processing time:",(0,o.createComponentVNode)(2,i.Icon,{name:"clock",mx:"0.5rem"}),(0,o.createComponentVNode)(2,i.Box,{display:"inline",bold:!0,children:new Date(s/10*1e3).toISOString().substr(14,5)})]}),Object.keys(u).length>0&&(0,o.createComponentVNode)(2,i.Flex.Item,{className:"Exofab__queue--deficit",basis:"content",shrink:"0",children:[(0,o.createComponentVNode)(2,i.Divider),"Lacking materials to complete:",u.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,h,{id:e[0],amount:-e[1],lineDisplay:!0})},e[0])}))]})],0)})})},h=function(e,t){var n=(0,c.useBackend)(t),a=(n.act,n.data),l=e.id,d=e.amount,s=e.lineDisplay,m=e.onClick,p=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["id","amount","lineDisplay","onClick"]),f=l.replace("$",""),h=a.materials[l]||0,C=d||h;if(!(C<=0&&"metal"!==f&&"glass"!==f)){var N=d&&d>h;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Flex,Object.assign({className:(0,r.classes)(["Exofab__material",s&&"Exofab__material--line"])},p,{children:[(0,o.createComponentVNode)(2,i.Flex.Item,{basis:"content",children:(0,o.createComponentVNode)(2,i.Button,{onClick:m,children:(0,o.createComponentVNode)(2,i.Box,{as:"img",src:"sheet-"+(u[f]||f)+".png"})})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",children:s?(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__material--amount",color:N&&"bad",children:C.toLocaleString("en-US")}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__material--name",children:f}),(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__material--amount",children:[C.toLocaleString("en-US")," cm\xb3 (",Math.round(C/2e3*10)/10," sheets)"]})],4)})]})))}},C=function(e,t){var n=(0,c.useBackend)(t),r=n.act,a=n.data,l=e.design;return(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__design",children:[(0,o.createComponentVNode)(2,i.Button,{disabled:l.notEnough||a.building,icon:"cog",content:l.name,onClick:function(){return r("build",{id:l.id})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"plus-circle",onClick:function(){return r("queue",{id:l.id})}}),(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__design--cost",children:Object.entries(l.cost).map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,h,{id:e[0],amount:e[1],lineDisplay:!0})},e[0])}))}),(0,o.createComponentVNode)(2,i.Box,{className:"Exofab__design--time",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"clock"}),l.time>0?(0,o.createFragment)([l.time/10,(0,o.createTextVNode)(" seconds")],0):"Instant"]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ExternalAirlockController=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.ExternalAirlockController=function(e,t){var n,i,l=(0,r.useBackend)(t),d=l.act,u=l.data,s=u.chamber_pressure,m=(u.exterior_status,u.interior_status),p=u.processing;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Chamber Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:(n=s,i="good",n<80?i="bad":n<95||n>110?i="average":n>120&&(i="bad"),i),value:s,minValue:0,maxValue:1013,children:[s," kPa"]})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Actions",children:[(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:p,onClick:function(){return d("cycle_ext")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Cycle to Interior",icon:"arrow-circle-right",disabled:p,onClick:function(){return d("cycle_int")}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Force Exterior Door",icon:"exclamation-triangle",color:"open"===m?"red":p?"yellow":null,onClick:function(){return d("force_ext")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Force Interior Door",icon:"exclamation-triangle",color:"open"===m?"red":p?"yellow":null,onClick:function(){return d("force_int")}})]}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Abort",icon:"ban",color:"red",disabled:!p,onClick:function(){return d("abort")}})})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.FaxMachine=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.FaxMachine=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Authorization",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Card",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.scan_name?"eject":"id-card",selected:l.scan_name,content:l.scan_name?l.scan_name:"-----",tooltip:l.scan_name?"Eject ID":"Insert ID",onClick:function(){return i("scan")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Authorize",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.authenticated?"sign-out-alt":"id-card",selected:l.authenticated,disabled:l.nologin,content:l.realauth?"Log Out":"Log In",onClick:function(){return i("auth")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Fax Menu",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Network",children:l.network}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Document",children:[(0,o.createComponentVNode)(2,a.Button,{icon:l.paper?"eject":"paperclip",disabled:!l.authenticated&&!l.paper,content:l.paper?l.paper:"-----",onClick:function(){return i("paper")}}),!!l.paper&&(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){return i("rename")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sending To",children:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:l.destination?l.destination:"-----",disabled:!l.authenticated,onClick:function(){return i("dept")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Action",children:(0,o.createComponentVNode)(2,a.Button,{icon:"envelope",content:l.sendError?l.sendError:"Send",disabled:!l.paper||!l.destination||!l.authenticated||l.sendError,onClick:function(){return i("send")}})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.FloorPainter=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=function(e,t){var n=(0,r.useBackend)(t),a=(n.act,n.data,e.image),c=e.isSelected,i=e.onSelect;return(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+a,style:{"border-style":c?"solid":"none","border-width":"2px","border-color":"orange",padding:c?"2px":"4px"},onClick:i})};t.FloorPainter=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.availableStyles,s=d.selectedStyle,m=d.selectedDir,p=d.directionsPreview,f=d.allStylesPreview;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Decal setup",children:[(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"chevron-left",onClick:function(){return l("cycle_style",{offset:-1})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Dropdown,{options:u,selected:s,width:"150px",height:"20px",ml:"2px",mr:"2px",nochevron:"true",onSelected:function(e){return l("select_style",{style:e})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"chevron-right",onClick:function(){return l("cycle_style",{offset:1})}})})]}),(0,o.createComponentVNode)(2,a.Box,{mt:"5px",mb:"5px",children:(0,o.createComponentVNode)(2,a.Flex,{overflowY:"auto",maxHeight:"220px",wrap:"wrap",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,i,{image:f[e],isSelected:s===e,onSelect:function(){return l("select_style",{style:e})}})},"{style}")}))})}),(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Direction",children:(0,o.createComponentVNode)(2,a.Table,{style:{display:"inline"},children:["north","","south"].map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[e+"west",e,e+"east"].map((function(e){return(0,o.createComponentVNode)(2,a.Table.Cell,{style:{"vertical-align":"middle","text-align":"center"},children:""===e?(0,o.createComponentVNode)(2,a.Icon,{name:"arrows-alt",size:3}):(0,o.createComponentVNode)(2,i,{image:p[e],isSelected:e===m,onSelect:function(){return l("select_direction",{direction:e})}})},e)}))},e)}))})})})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GPS=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=function(e){return e?"("+e.join(", ")+")":"ERROR"};t.GPS=function(e,t){var n=(0,r.useBackend)(t).data,i=n.emped,m=n.active,p=n.area,f=n.position,h=n.saved;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",height:"100%",children:i?(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",basis:"0",children:(0,o.createComponentVNode)(2,l,{emp:!0})}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,d)}),m?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Flex.Item,{mt:"0.5rem",children:(0,o.createComponentVNode)(2,u,{area:p,position:f})}),h&&(0,o.createComponentVNode)(2,a.Flex.Item,{mt:"0.5rem",children:(0,o.createComponentVNode)(2,u,{title:"Saved Position",position:h})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mt:"0.5rem",grow:"1",basis:"0",children:(0,o.createComponentVNode)(2,s,{height:"100%"})})],0):(0,o.createComponentVNode)(2,l)],0)})})})};var l=function(e,t){var n=e.emp;return(0,o.createComponentVNode)(2,a.Section,{mt:"0.5rem",width:"100%",height:"100%",stretchContents:!0,children:(0,o.createComponentVNode)(2,a.Box,{width:"100%",height:"100%",color:"label",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:n?"ban":"power-off",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),n?"ERROR: Device temporarily lost signal.":"Device is disabled."]})})})})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.active,d=i.tag,u=i.same_z,s=(0,r.useLocalState)(t,"newTag",d),m=s[0],p=s[1];return(0,o.createComponentVNode)(2,a.Section,{title:"Settings",buttons:(0,o.createComponentVNode)(2,a.Button,{selected:l,icon:l?"toggle-on":"toggle-off",content:l?"On":"Off",onClick:function(){return c("toggle")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tag",children:[(0,o.createComponentVNode)(2,a.Input,{width:"5rem",value:d,onEnter:function(){return c("tag",{newtag:m})},onInput:function(e,t){return p(t)}}),(0,o.createComponentVNode)(2,a.Button,{disabled:d===m,width:"20px",mb:"0",ml:"0.25rem",onClick:function(){return c("tag",{newtag:m})},children:(0,o.createComponentVNode)(2,a.Icon,{name:"pen"})})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,a.Button,{selected:!u,icon:u?"compress":"expand",content:u?"Local Sector":"Global",onClick:function(){return c("same_z")}})})]})})},u=function(e,t){var n=e.title,r=e.area,c=e.position;return(0,o.createComponentVNode)(2,a.Section,{title:n||"Position",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"1.5rem",children:[r&&(0,o.createFragment)([r,(0,o.createVNode)(1,"br")],0),i(c)]})})},s=function(e,t){var n=(0,r.useBackend)(t).data,c=n.position,l=n.signals;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({title:"Signals",overflow:"auto"},e,{children:(0,o.createComponentVNode)(2,a.Table,{children:l.map((function(e){return Object.assign({},e,{},function(e,t){if(e&&t){if(e[2]!==t[2])return null;var n,o=Math.atan2(t[1]-e[1],t[0]-e[0]),r=Math.sqrt(Math.pow(t[1]-e[1],2)+Math.pow(t[0]-e[0],2));return{angle:(n=o,n*(180/Math.PI)),distance:r}}}(c,e.position))})).map((function(e,t){return(0,o.createComponentVNode)(2,a.Table.Row,{backgroundColor:t%2==0&&"rgba(255, 255, 255, 0.05)",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"30%",verticalAlign:"middle",color:"label",p:"0.25rem",bold:!0,children:e.tag}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"middle",color:"grey",children:e.area}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"middle",collapsing:!0,children:e.distance!==undefined&&(0,o.createComponentVNode)(2,a.Box,{opacity:Math.max(1-Math.min(e.distance,100)/100,.5),children:[(0,o.createComponentVNode)(2,a.Icon,{name:e.distance>0?"arrow-right":"circle",rotation:-e.angle}),"\xa0",Math.floor(e.distance)+"m"]})}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"middle",pr:"0.25rem",collapsing:!0,children:i(e.position)})]},t)}))})})))}},function(e,t,n){"use strict";t.__esModule=!0,t.GenericCrewManifest=void 0;var o=n(0),r=n(2),a=n(4),c=n(135);t.GenericCrewManifest=function(e,t){return(0,o.createComponentVNode)(2,a.Window,{resizable:!0,theme:"nologo",children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,r.Section,{noTopPadding:!0,children:(0,o.createComponentVNode)(2,c.CrewManifest)})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GhostHudPanel=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.GhostHudPanel=function(e,t){var n=(0,r.useBackend)(t).data,l=n.security,d=n.medical,u=n.diagnostic,s=n.ahud;return(0,o.createComponentVNode)(2,c.Window,{theme:"nologo",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,i,{label:"Medical",type:"medical",is_active:d}),(0,o.createComponentVNode)(2,i,{label:"Security",type:"security",is_active:l}),(0,o.createComponentVNode)(2,i,{label:"Diagnostic",type:"diagnostic",is_active:u}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,i,{label:"Antag HUD",is_active:s,act_on:"ahud_on",act_off:"ahud_off"})]})})})};var i=function(e,t){var n=(0,r.useBackend)(t).act,c=e.label,i=e.type,l=void 0===i?null:i,d=e.is_active,u=e.act_on,s=void 0===u?"hud_on":u,m=e.act_off,p=void 0===m?"hud_off":m;return(0,o.createComponentVNode)(2,a.Flex,{pt:.3,color:"label",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{pl:.5,align:"center",width:"80%",children:c}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{mr:.6,content:d?"On":"Off",icon:d?"toggle-on":"toggle-off",selected:d,onClick:function(){return n(d?p:s,{hud_type:l})}})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGen=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.GravityGen=function(e,t){var n,i=(0,r.useBackend)(t),l=i.act,d=i.data,u=d.charging_state,s=d.charge_count,m=d.breaker,p=d.ext_power;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[function(e){if(e>0)return(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,p:1.5,children:[(0,o.createVNode)(1,"b",null,"WARNING:",16)," Radiation Detected!"]})}(u),(0,o.createComponentVNode)(2,a.Section,{title:"Generator Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",content:m?"Online":"Offline",color:m?"green":"red",px:1.5,onClick:function(){return l("breaker")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Status",color:p?"good":"bad",children:(n=u,n>0?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:["[ ",1===n?"Charging":"Discharging"," ]"]}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:p?"good":"bad",children:["[ ",p?"Powered":"Unpowered"," ]"]}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GuestPass=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(78);t.GuestPass=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"id-card",selected:!d.showlogs,onClick:function(){return l("mode",{mode:0})},children:"Issue Pass"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"scroll",selected:d.showlogs,onClick:function(){return l("mode",{mode:1})},children:["Records (",d.issue_log.length,")"]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Authorization",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Card",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.scan_name?"eject":"id-card",selected:d.scan_name,content:d.scan_name?d.scan_name:"-----",tooltip:d.scan_name?"Eject ID":"Insert ID",onClick:function(){return l("scan")}})})})}),!d.showlogs&&(0,o.createComponentVNode)(2,a.Section,{title:"Issue Guest Pass",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Issue To",children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:d.giv_name?d.giv_name:"-----",disabled:!d.scan_name,onClick:function(){return l("giv_name")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Reason",children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:d.reason?d.reason:"-----",disabled:!d.scan_name,onClick:function(){return l("reason")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Duration",children:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:d.duration?d.duration:"-----",disabled:!d.scan_name,onClick:function(){return l("duration")}})})]}),!!d.scan_name&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.AccessList,{grantableList:d.grantableList,accesses:d.regions,selectedList:d.selectedAccess,accessMod:function(e){return l("access",{access:e})},grantAll:function(){return l("grant_all")},denyAll:function(){return l("clear_all")},grantDep:function(e){return l("grant_region",{region:e})},denyDep:function(e){return l("deny_region",{region:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"id-card",content:d.printmsg,disabled:!d.canprint,onClick:function(){return l("issue")}})],4)]}),!!d.showlogs&&(0,o.createComponentVNode)(2,a.Section,{title:"Issuance Log",children:!!d.issue_log.length&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList,{children:d.issue_log.map((function(e,t){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{children:e},t)}))}),(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print",disabled:!d.scan_name,onClick:function(){return l("print")}})],4)||(0,o.createComponentVNode)(2,a.Box,{children:"None."})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.HandheldChemDispenser=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=[1,5,10,20,30,50];t.HandheldChemDispenser=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,d)]})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.amount,u=l.energy,s=l.maxEnergy,m=l.mode;return(0,o.createComponentVNode)(2,a.Section,{title:"Settings",flex:"content",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,minValue:0,maxValue:s,ranges:{good:[.5*s,Infinity],average:[.25*s,.5*s],bad:[-Infinity,.25*s]},children:[u," / ",s," Units"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Amount",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",spacing:"1",children:i.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",width:"14%",display:"inline-block",children:(0,o.createComponentVNode)(2,a.Button,{icon:"cog",selected:d===e,content:e,m:"0",width:"100%",onClick:function(){return c("amount",{amount:e})}})},t)}))})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",verticalAlign:"middle",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",justify:"space-between",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"cog",selected:"dispense"===m,content:"Dispense",m:"0",width:"32%",onClick:function(){return c("mode",{mode:"dispense"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"cog",selected:"remove"===m,content:"Remove",m:"0",width:"32%",onClick:function(){return c("mode",{mode:"remove"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"cog",selected:"isolate"===m,content:"Isolate",m:"0",width:"32%",onClick:function(){return c("mode",{mode:"isolate"})}})]})})]})})},d=function(e,t){for(var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.chemicals,d=void 0===l?[]:l,u=i.current_reagent,s=[],m=0;m<(d.length+1)%3;m++)s.push(!0);return(0,o.createComponentVNode)(2,a.Section,{title:i.glass?"Drink Selector":"Chemical Selector",flexGrow:"1",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",wrap:"wrap",height:"100%",spacingPrecise:"2",align:"flex-start",alignContent:"flex-start",children:[d.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",basis:"25%",height:"20px",width:"30%",display:"inline-block",children:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",selected:u===e.id,width:"100%",height:"100%",align:"flex-start",content:e.title,onClick:function(){return c("dispense",{reagent:e.id})}})},t)})),s.map((function(e,t){return(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",basis:"25%",height:"20px"},t)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Instrument=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(4);t.Instrument=function(e,t){var n=(0,a.useBackend)(t);n.act,n.data;return(0,o.createComponentVNode)(2,i.Window,{children:[(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,s)]})]})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act;if(n.data.help)return(0,o.createComponentVNode)(2,c.Modal,{maxWidth:"75%",height:.75*window.innerHeight+"px",mx:"auto",py:"0",px:"0.5rem",children:(0,o.createComponentVNode)(2,c.Section,{height:"100%",title:"Help",level:"2",overflow:"auto",children:(0,o.createComponentVNode)(2,c.Box,{px:"0.5rem",mt:"-0.5rem",children:[(0,o.createVNode)(1,"h1",null,"Making a Song",16),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Lines are a series of chords, separated by commas\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"(,)"}),(0,o.createTextVNode)(", each with notes seperated by hyphens\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"(-)"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"tempo"}),(0,o.createTextVNode)(" as defined above.")],4),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Notes are played by the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"names of the note"}),(0,o.createTextVNode)(", and optionally, the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"accidental"}),(0,o.createTextVNode)(", and/or the "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave number"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("By default, every note is\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"natural"}),(0,o.createTextVNode)(" and in\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave 3"}),(0,o.createTextVNode)(". Defining a different state for either is remembered for each "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"note"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"ul",null,[(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"Example:"}),(0,o.createTextVNode)("\xa0"),(0,o.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,o.createTextVNode)(" will play a\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"C"}),(0,o.createTextVNode)("\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"major"}),(0,o.createTextVNode)(" scale.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createTextVNode)("After a note has an\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"accidental"}),(0,o.createTextVNode)(" or\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave"}),(0,o.createTextVNode)(" placed, it will be remembered:\xa0"),(0,o.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,o.createTextVNode)(" is "),(0,o.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],4)],4)],4),(0,o.createVNode)(1,"p",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"Chords"}),(0,o.createTextVNode)("\xa0can be played simply by seperating each note with a hyphen: "),(0,o.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("A "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"pause"}),(0,o.createTextVNode)("\xa0may be denoted by an empty chord: "),(0,o.createVNode)(1,"i",null,"C,E,,C,G",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,o.createTextVNode)(",\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"eg:"}),(0,o.createTextVNode)(" "),(0,o.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,o.createTextVNode)(".")],4),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Combined, an example line is: "),(0,o.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"ul",null,[(0,o.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,o.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Lines are a series of chords, separated by commas\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"(,)"}),(0,o.createTextVNode)(", each with notes seperated by hyphens\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"(-)"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"tempo"}),(0,o.createTextVNode)(" as defined above.")],4),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Notes are played by the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"names of the note"}),(0,o.createTextVNode)(", and optionally, the\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"accidental"}),(0,o.createTextVNode)(", and/or the "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave number"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("By default, every note is\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"natural"}),(0,o.createTextVNode)(" and in\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave 3"}),(0,o.createTextVNode)(". Defining a different state for either is remembered for each "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"note"}),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"ul",null,[(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"Example:"}),(0,o.createTextVNode)("\xa0"),(0,o.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,o.createTextVNode)(" will play a\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"good",children:"C"}),(0,o.createTextVNode)("\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"major"}),(0,o.createTextVNode)(" scale.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createTextVNode)("After a note has an\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"average",children:"accidental"}),(0,o.createTextVNode)(" or\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"bad",children:"octave"}),(0,o.createTextVNode)(" placed, it will be remembered:\xa0"),(0,o.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,o.createTextVNode)(" is "),(0,o.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],4)],4)],4),(0,o.createVNode)(1,"p",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"Chords"}),(0,o.createTextVNode)("\xa0can be played simply by seperating each note with a hyphen: "),(0,o.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("A "),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"pause"}),(0,o.createTextVNode)("\xa0may be denoted by an empty chord: "),(0,o.createVNode)(1,"i",null,"C,E,,C,G",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,o.createTextVNode)(",\xa0"),(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"highlight",children:"eg:"}),(0,o.createTextVNode)(" "),(0,o.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,o.createTextVNode)(".")],4),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Combined, an example line is: "),(0,o.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,o.createTextVNode)("."),(0,o.createVNode)(1,"ul",null,[(0,o.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,o.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,o.createVNode)(1,"h1",null,"Instrument Advanced Settings",16),(0,o.createVNode)(1,"ul",null,[(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Type:"}),(0,o.createTextVNode)("\xa0Whether the instrument is legacy or synthesized."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Legacy instruments have a collection of sounds that are selectively used depending on the note to play."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Synthesized instruments use a base sound and change its pitch to match the note to play.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Current:"}),(0,o.createTextVNode)("\xa0Which instrument sample to play. Some instruments can be tuned to play different samples. Experiment!")],4),(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Note Shift/Note Transpose:"}),(0,o.createTextVNode)("\xa0The pitch to apply to all notes of the song.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Sustain Mode:"}),(0,o.createTextVNode)("\xa0How a played note fades out."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Linear sustain means a note will fade out at a constant rate."),(0,o.createVNode)(1,"br"),(0,o.createTextVNode)("Exponential sustain means a note will fade out at an exponential rate, sounding smoother.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Volume Dropoff Threshold:"}),(0,o.createTextVNode)("\xa0The volume threshold at which a note is fully stopped.")],4),(0,o.createVNode)(1,"li",null,[(0,o.createComponentVNode)(2,c.Box,{as:"span",color:"label",children:"Sustain indefinitely last held note:"}),(0,o.createTextVNode)("\xa0Whether the last note should be sustained indefinitely.")],4)],4),(0,o.createComponentVNode)(2,c.Button,{color:"grey",content:"Close",onClick:function(){return r("help")}})]})})})},d=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data,d=l.lines,s=l.playing,m=l.repeat,p=l.maxRepeats,f=l.tempo,h=l.minTempo,C=l.maxTempo,N=l.tickLag,b=l.volume,g=l.minVolume,V=l.maxVolume,v=l.ready;return(0,o.createComponentVNode)(2,c.Section,{title:"Instrument",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"info",content:"Help",onClick:function(){return i("help")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"file",content:"New",onClick:function(){return i("newsong")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"upload",content:"Import",onClick:function(){return i("import")}})],4),children:[(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Playback",children:[(0,o.createComponentVNode)(2,c.Button,{selected:s,disabled:0===d.length||m<0,icon:"play",content:"Play",onClick:function(){return i("play")}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!s,icon:"stop",content:"Stop",onClick:function(){return i("stop")}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Repeat",children:(0,o.createComponentVNode)(2,c.Slider,{animated:!0,minValue:"0",maxValue:p,value:m,stepPixelSize:"59",onChange:function(e,t){return i("repeat",{"new":t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Tempo",children:(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Button,{disabled:f>=C,content:"-",as:"span",mr:"0.5rem",onClick:function(){return i("tempo",{"new":f+N})}}),(0,r.round)(600/f)," BPM",(0,o.createComponentVNode)(2,c.Button,{disabled:f<=h,content:"+",as:"span",ml:"0.5rem",onClick:function(){return i("tempo",{"new":f-N})}})]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,c.Slider,{animated:!0,minValue:g,maxValue:V,value:b,stepPixelSize:"6",onDrag:function(e,t){return i("setvolume",{"new":t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:v?(0,o.createComponentVNode)(2,c.Box,{color:"good",children:"Ready"}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Instrument Definition Error!"})})]}),(0,o.createComponentVNode)(2,u)]})},u=function(e,t){var n,i,l=(0,a.useBackend)(t),d=l.act,u=l.data,s=u.allowedInstrumentNames,m=u.instrumentLoaded,p=u.instrument,f=u.canNoteShift,h=u.noteShift,C=u.noteShiftMin,N=u.noteShiftMax,b=u.sustainMode,g=u.sustainLinearDuration,V=u.sustainExponentialDropoff,v=u.legacy,y=u.sustainDropoffVolume,_=u.sustainHeldNote;return 1===b?(n="Linear",i=(0,o.createComponentVNode)(2,c.Slider,{minValue:"0.1",maxValue:"5",value:g,step:"0.5",stepPixelSize:"85",format:function(e){return(0,r.round)(100*e)/100+" seconds"},onChange:function(e,t){return d("setlinearfalloff",{"new":t/10})}})):2===b&&(n="Exponential",i=(0,o.createComponentVNode)(2,c.Slider,{minValue:"1.025",maxValue:"10",value:V,step:"0.01",format:function(e){return(0,r.round)(1e3*e)/1e3+"% per decisecond"},onChange:function(e,t){return d("setexpfalloff",{"new":t})}})),s.sort(),(0,o.createComponentVNode)(2,c.Box,{my:-1,children:(0,o.createComponentVNode)(2,c.Collapsible,{mt:"1rem",mb:"0",title:"Advanced",children:(0,o.createComponentVNode)(2,c.Section,{mt:-1,children:[(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Type",children:v?"Legacy":"Synthesized"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Current",children:m?(0,o.createComponentVNode)(2,c.Dropdown,{options:s,selected:p,width:"40%",onSelected:function(e){return d("switchinstrument",{name:e})}}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"None!"})}),!(v||!f)&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Note Shift/Note Transpose",children:(0,o.createComponentVNode)(2,c.Slider,{minValue:C,maxValue:N,value:h,stepPixelSize:"2",format:function(e){return e+" keys / "+(0,r.round)(e/12*100)/100+" octaves"},onChange:function(e,t){return d("setnoteshift",{"new":t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Sustain Mode",children:[(0,o.createComponentVNode)(2,c.Dropdown,{options:["Linear","Exponential"],selected:n,onSelected:function(e){return d("setsustainmode",{"new":e})}}),i]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Volume Dropoff Threshold",children:(0,o.createComponentVNode)(2,c.Slider,{animated:!0,minValue:"0.01",maxValue:"100",value:y,stepPixelSize:"6",onChange:function(e,t){return d("setdropoffvolume",{"new":t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Sustain indefinitely last held note",children:(0,o.createComponentVNode)(2,c.Button,{selected:_,icon:_?"toggle-on":"toggle-off",content:_?"Yes":"No",onClick:function(){return d("togglesustainhold")}})})],4)]}),(0,o.createComponentVNode)(2,c.Button,{icon:"redo",content:"Reset to Default",mt:"0.5rem",onClick:function(){return d("reset")}})]})})})},s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.playing,d=i.lines,u=i.editing;return(0,o.createComponentVNode)(2,c.Section,{title:"Editor",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{disabled:!u||l,icon:"plus",content:"Add Line",onClick:function(){return r("newline",{line:d.length+1})}}),(0,o.createComponentVNode)(2,c.Button,{selected:!u,icon:u?"chevron-up":"chevron-down",onClick:function(){return r("edit")}})],4),children:!!u&&(d.length>0?(0,o.createComponentVNode)(2,c.LabeledList,{children:d.map((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:t+1,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{disabled:l,icon:"pen",onClick:function(){return r("modifyline",{line:t+1})}}),(0,o.createComponentVNode)(2,c.Button,{disabled:l,icon:"trash",onClick:function(){return r("deleteline",{line:t+1})}})],4),children:e},t)}))}):(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Song is empty."}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.KeycardAuth=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=(0,o.createComponentVNode)(2,a.Section,{title:"Keycard Authentication Device",children:(0,o.createComponentVNode)(2,a.Box,{children:"This device is used to trigger certain high security events. It requires the simultaneous swipe of two high-level ID cards."})});if(l.swiping||l.busy){var u=(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Waiting for YOU to swipe your ID..."});return l.hasSwiped||l.ertreason||"Emergency Response Team"!==l.event?l.hasConfirm?u=(0,o.createComponentVNode)(2,a.Box,{color:"green",children:"Request Confirmed!"}):l.isRemote?u=(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"Swipe your card to CONFIRM the remote request."}):l.hasSwiped&&(u=(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"Waiting for second person to confirm..."})):u=(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Fill out the reason for your ERT request."}),(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[d,"Emergency Response Team"===l.event&&(0,o.createComponentVNode)(2,a.Section,{title:"Reason for ERT Call",children:(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{color:l.ertreason?"":"red",icon:l.ertreason?"check":"pencil-alt",content:l.ertreason?l.ertreason:"-----",disabled:l.busy,onClick:function(){return i("ert")}})})}),(0,o.createComponentVNode)(2,a.Section,{title:l.event,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-circle-left",content:"Back",disabled:l.busy||l.hasConfirm,onClick:function(){return i("reset")}}),children:u})]})})}return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[d,(0,o.createComponentVNode)(2,a.Section,{title:"Choose Action",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Red Alert",children:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",disabled:!l.redAvailable,onClick:function(){return i("triggerevent",{triggerevent:"Red Alert"})},content:"Red Alert"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ERT",children:(0,o.createComponentVNode)(2,a.Button,{icon:"broadcast-tower",onClick:function(){return i("triggerevent",{triggerevent:"Emergency Response Team"})},content:"Call ERT"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Maint Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"door-open",onClick:function(){return i("triggerevent",{triggerevent:"Grant Emergency Maintenance Access"})},content:"Grant"}),(0,o.createComponentVNode)(2,a.Button,{icon:"door-closed",onClick:function(){return i("triggerevent",{triggerevent:"Revoke Emergency Maintenance Access"})},content:"Revoke"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Station-Wide Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"door-open",onClick:function(){return i("triggerevent",{triggerevent:"Activate Station-Wide Emergency Access"})},content:"Grant"}),(0,o.createComponentVNode)(2,a.Button,{icon:"door-closed",onClick:function(){return i("triggerevent",{triggerevent:"Deactivate Station-Wide Emergency Access"})},content:"Revoke"})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(0),r=n(19),a=n(1),c=n(2),i=n(4);t.LaborClaimConsole=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,d)]})})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.can_go_home,d=i.emagged,u=i.id_inserted,s=i.id_name,m=i.id_points,p=i.id_goal,f=i.unclaimed_points,h=d?0:1,C=d?"ERR0R":l?"Completed!":"Insufficient";return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:!!u&&(0,o.createComponentVNode)(2,c.ProgressBar,{value:m/p,ranges:{good:[h,Infinity],bad:[-Infinity,h]},children:m+" / "+p+" "+C})||!!d&&"ERR0R COMPLETED?!@"||"No ID inserted"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Move shuttle",disabled:!l,onClick:function(){return r("move_shuttle")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Unclaimed points",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Claim points ("+f+")",disabled:!u||!f,onClick:function(){return r("claim_points")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Inserted ID",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:u?s:"-------------",onClick:function(){return r("handle_id")}})})]})})},d=function(e,t){var n=(0,a.useBackend)(t).data.ores;return(0,o.createComponentVNode)(2,c.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),n.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LawManager=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.LawManager=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.isAdmin,m=u.isSlaved,p=u.isMalf,f=u.isAIMalf,h=u.view;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!(!s||!m)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:["This unit is slaved to ",m,"."]}),!(!p&&!f)&&(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Law Management",selected:0===h,onClick:function(){return d("set_view",{set_view:0})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Lawsets",selected:1===h,onClick:function(){return d("set_view",{set_view:1})}})]}),!(0!==h)&&(0,o.createComponentVNode)(2,i),!(1!==h)&&(0,o.createComponentVNode)(2,l)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.has_zeroth_laws,u=i.zeroth_laws,s=i.has_ion_laws,m=i.ion_laws,p=i.ion_law_nr,f=i.has_inherent_laws,h=i.inherent_laws,C=i.has_supplied_laws,N=i.supplied_laws,b=i.channels,g=i.channel,V=i.isMalf,v=i.isAdmin,y=i.zeroth_law,_=i.ion_law,x=i.inherent_law,k=i.supplied_law,L=i.supplied_law_position;return(0,o.createFragment)([!!l&&(0,o.createComponentVNode)(2,d,{title:"ERR_NULL_VALUE",laws:u,ctx:t}),!!s&&(0,o.createComponentVNode)(2,d,{title:p,laws:m,ctx:t}),!!f&&(0,o.createComponentVNode)(2,d,{title:"Inherent",laws:h,ctx:t}),!!C&&(0,o.createComponentVNode)(2,d,{title:"Supplied",laws:N,ctx:t}),(0,o.createComponentVNode)(2,a.Section,{title:"Statement Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Statement Channel",children:b.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.channel,selected:e.channel===g,onClick:function(){return c("law_channel",{law_channel:e.channel})}},e.channel)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State Laws",children:(0,o.createComponentVNode)(2,a.Button,{content:"State Laws",onClick:function(){return c("state_laws")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Law Notification",children:(0,o.createComponentVNode)(2,a.Button,{content:"Notify",onClick:function(){return c("notify_laws")}})})]})}),!!V&&(0,o.createComponentVNode)(2,a.Section,{title:"Add Laws",children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"10%",children:"Type"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"60%",children:"Law"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"10%",children:"Index"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Actions"})]}),!(!v||l)&&(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Zero"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:y}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"N/A"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){return c("change_zeroth_law")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Add",icon:"plus",onClick:function(){return c("add_zeroth_law")}})]})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Ion"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:_}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"N/A"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){return c("change_ion_law")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Add",icon:"plus",onClick:function(){return c("add_ion_law")}})]})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Inherent"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:x}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"N/A"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){return c("change_inherent_law")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Add",icon:"plus",onClick:function(){return c("add_inherent_law")}})]})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Supplied"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:k}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:L,onClick:function(){return c("change_supplied_law_position")}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){return c("change_supplied_law")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Add",icon:"plus",onClick:function(){return c("add_supplied_law")}})]})]})]})})],0)},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.law_sets;return(0,o.createComponentVNode)(2,a.Box,{children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" - "+e.header,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Load Laws",icon:"download",onClick:function(){return c("transfer_laws",{transfer_laws:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.laws.has_ion_laws>0&&e.laws.ion_laws.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.index,children:e.law},e.index)})),e.laws.has_zeroth_laws>0&&e.laws.zeroth_laws.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.index,children:e.law},e.index)})),e.laws.has_inherent_laws>0&&e.laws.inherent_laws.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.index,children:e.law},e.index)})),e.laws.has_supplied_laws>0&&e.laws.inherent_laws.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.index,children:e.law},e.index)}))]})},e.name)}))})},d=function(e,t){var n=(0,r.useBackend)(e.ctx),c=n.act,i=n.data.isMalf;return(0,o.createComponentVNode)(2,a.Section,{title:e.title+" Laws",children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"10%",children:"Index"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"69%",children:"Law"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"21%",children:"State?"})]}),e.laws.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.index}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.law}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Button,{content:e.state?"Yes":"No",selected:e.state,onClick:function(){return c("state_law",{ref:e.ref,state_law:e.state?0:1})}}),!!i&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){return c("edit_law",{edit_law:e.ref})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Delete",icon:"trash",color:"red",onClick:function(){return c("delete_law",{delete_law:e.ref})}})],4)]})]},e.law)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayConsole=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.MechBayConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.recharge_port,d=l&&l.mech,u=d&&d.cell,s=d&&d.name;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:s?"Mech status: "+s:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return i("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.health/d.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!u&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.charge/u.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.charge})," / "+u.maxcharge]})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechaControlConsole=void 0;var o=n(0),r=(n(16),n(1)),a=n(2),c=n(4),i=n(19);t.MechaControlConsole=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.beacons,s=d.stored_data;return s.length?(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Log",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"window-close",onClick:function(){return l("clear_log")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{color:"label",children:["(",e.time,")"]}),(0,o.createComponentVNode)(2,a.Box,{children:(0,i.decodeHtmlEntities)(e.message)})]},e.time)}))})})}):(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:u.length&&u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"comment",onClick:function(){return l("send_message",{mt:e.uid})},children:"Message"}),(0,o.createComponentVNode)(2,a.Button,{icon:"eye",onClick:function(){return l("get_log",{mt:e.uid})},children:"View Log"}),(0,o.createComponentVNode)(2,a.Button.Confirm,{color:"red",content:"EMP",icon:"bomb",onClick:function(){return l("shock",{mt:e.uid})}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.75*e.maxHealth,Infinity],average:[.5*e.maxHealth,.75*e.maxHealth],bad:[-Infinity,.5*e.maxHealth]},value:e.health,maxValue:e.maxHealth})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell Charge",children:e.cell&&(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.75*e.cellMaxCharge,Infinity],average:[.5*e.cellMaxCharge,.75*e.cellMaxCharge],bad:[-Infinity,.5*e.cellMaxCharge]},value:e.cellCharge,maxValue:e.cellMaxCharge})||(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Cell Installed"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Air Tank",children:[e.airtank,"kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pilot",children:e.pilot||"Unoccupied"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:(0,i.toTitleCase)(e.location)||"Unknown"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Active Equipment",children:e.active||"None"}),e.cargoMax&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Space",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{bad:[.75*e.cargoMax,Infinity],average:[.5*e.cargoMax,.75*e.cargoMax],good:[-Infinity,.5*e.cargoMax]},value:e.cargoUsed,maxValue:e.cargoMax})})||null]})},e.name)}))||(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mecha beacons found."})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MedicalRecords=void 0;var o=n(0),r=n(1),a=n(2),c=n(49),i=n(4),l=n(132),d=n(133),u=n(136),s={Minor:"good",Medium:"average","Dangerous!":"bad",Harmful:"bad","BIOHAZARD THREAT!":"bad"},m=function(e,t){(0,c.modalOpen)(e,"edit",{field:t.edit,value:t.value})};t.MedicalRecords=function(e,t){var n,s=(0,r.useBackend)(t).data,m=s.loginState,C=s.screen;return m.logged_in?(2===C?n=(0,o.createComponentVNode)(2,p):3===C?n=(0,o.createComponentVNode)(2,f):4===C?n=(0,o.createComponentVNode)(2,h):5===C?n=(0,o.createComponentVNode)(2,b):6===C&&(n=(0,o.createComponentVNode)(2,g)),(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:[(0,o.createComponentVNode)(2,c.ComplexModal),(0,o.createComponentVNode)(2,i.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,l.LoginInfo),(0,o.createComponentVNode)(2,u.TemporaryNotice),(0,o.createComponentVNode)(2,V),(0,o.createComponentVNode)(2,a.Section,{height:"100%",flexGrow:"1",children:n})]})]})):(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,d.LoginScreen)})})};var p=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.records;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{fluid:!0,placeholder:"Search by Name, DNA, or ID",onChange:function(e,t){return c("search",{t1:t})}}),(0,o.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:i.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"user",mb:"0.5rem",content:e.id+": "+e.name,onClick:function(){return c("d_rec",{d_rec:e.ref})}}),(0,o.createVNode)(1,"br")],4,t)}))})],4)},f=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Backup to Disk",disabled:!0}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload from Disk",my:"0.5rem",disabled:!0}),(0,o.createTextVNode)(" "),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",content:"Delete All Medical Records",onClick:function(){return n("del_all")}})],4)},h=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.medical,d=i.printing;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"General Data",level:2,mt:"-6px",children:(0,o.createComponentVNode)(2,C)}),(0,o.createComponentVNode)(2,a.Section,{title:"Medical Data",level:2,children:(0,o.createComponentVNode)(2,N)}),(0,o.createComponentVNode)(2,a.Section,{title:"Actions",level:2,children:[(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",disabled:!!l.empty,content:"Delete Medical Record",color:"bad",onClick:function(){return c("del_r")}}),(0,o.createComponentVNode)(2,a.Button,{icon:d?"spinner":"print",disabled:d,iconSpin:!!d,content:"Print Entry",ml:"0.5rem",onClick:function(){return c("print_p")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Back",mt:"0.5rem",onClick:function(){return c("screen",{screen:2})}})]})],4)},C=function(e,t){var n=(0,r.useBackend)(t).data.general;return n&&n.fields?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{width:"50%",float:"left",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:n.fields.map((function(e,n){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.field,children:[(0,o.createComponentVNode)(2,a.Box,{height:"20px",display:"inline-block",children:e.value}),!!e.edit&&(0,o.createComponentVNode)(2,a.Button,{icon:"pen",ml:"0.5rem",onClick:function(){return m(t,e)}})]},n)}))})}),(0,o.createComponentVNode)(2,a.Box,{width:"50%",float:"right",textAlign:"right",children:!!n.has_photos&&n.photos.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{display:"inline-block",textAlign:"center",color:"label",children:[(0,o.createVNode)(1,"img",null,null,1,{src:e,style:{width:"96px","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor"}}),(0,o.createVNode)(1,"br"),"Photo #",t+1]},t)}))})],4):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"General records lost!"})},N=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.medical;return l&&l.fields?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList,{children:l.fields.map((function(e,n){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.field,children:[e.value,(0,o.createComponentVNode)(2,a.Button,{icon:"pen",ml:"0.5rem",mb:e.line_break?"1rem":"initial",onClick:function(){return m(t,e)}})]},n)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Comments/Log",level:2,children:[0===l.comments.length?(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"No comments found."}):l.comments.map((function(e,t){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{color:"label",display:"inline",children:e.header}),(0,o.createVNode)(1,"br"),e.text,(0,o.createComponentVNode)(2,a.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){return i("del_c",{del_c:t+1})}})]},t)})),(0,o.createComponentVNode)(2,a.Button,{icon:"comment-medical",content:"Add Entry",color:"good",mt:"0.5rem",mb:"0",onClick:function(){return(0,c.modalOpen)(t,"add_c")}})]})],4):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:["Medical records lost!",(0,o.createComponentVNode)(2,a.Button,{icon:"pen",content:"New Record",ml:"0.5rem",onClick:function(){return i("new")}})]})},b=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.virus;return i.sort((function(e,t){return e.name>t.name?1:-1})),i.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"flask",content:e.name,mb:"0.5rem",onClick:function(){return c("vir",{vir:e.D})}}),(0,o.createVNode)(1,"br")],4,t)}))},g=function(e,t){var n=(0,r.useBackend)(t).data.medbots;return 0===n.length?(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"There are no Medbots."}):n.map((function(e,t){return(0,o.createComponentVNode)(2,a.Collapsible,{open:!0,title:e.name,children:(0,o.createComponentVNode)(2,a.Box,{px:"0.5rem",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:[e.area||"Unknown"," (",e.x,", ",e.y,")"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:e.on?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Online"}),(0,o.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:e.use_beaker?"Reservoir: "+e.total_volume+"/"+e.maximum_volume:"Using internal synthesizer."})],4):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Offline"})})]})})},t)}))},V=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.screen;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===i,onClick:function(){return c("screen",{screen:2})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"list"}),"List Records"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:5===i,onClick:function(){return c("screen",{screen:5})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"database"}),"Virus Database"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:6===i,onClick:function(){return c("screen",{screen:6})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"plus-square"}),"Medbot Tracking"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:3===i,onClick:function(){return c("screen",{screen:3})},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"wrench"}),"Record Maintenance"]})]})};(0,c.modalRegisterBodyOverride)("virus",(function(e,t){var n=e.args;return(0,o.createComponentVNode)(2,a.Section,{level:2,m:"-1rem",pb:"1rem",title:n.name||"Virus",children:(0,o.createComponentVNode)(2,a.Box,{mx:"0.5rem",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Number of stages",children:n.max_stages}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Spread",children:[n.spread_text," Transmission"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Possible cure",children:n.cure}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Notes",children:n.desc}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Severity",color:s[n.severity],children:n.severity})]})})})}))},function(e,t,n){"use strict";t.__esModule=!0,t.MiningVendor=void 0;var o=n(0),r=n(19),a=n(1),c=n(2),i=n(4);var l={Alphabetical:function(e,t){return e-t},"By availability":function(e,t){return-(e.affordable-t.affordable)},"By price":function(e,t){return e.price-t.price}};t.MiningVendor=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,s),(0,o.createComponentVNode)(2,u)]})})};var d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.has_id,d=i.id;return(0,o.createComponentVNode)(2,c.NoticeBox,{success:l,children:l?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{display:"inline-block",verticalAlign:"middle",style:{float:"left"},children:["Logged in as ",d.name,".",(0,o.createVNode)(1,"br"),"You have ",d.points.toLocaleString("en-US")," points."]}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject ID",style:{float:"right"},onClick:function(){return r("logoff")}}),(0,o.createComponentVNode)(2,c.Box,{style:{clear:"both"}})],4):"Please insert an ID in order to make purchases."})},u=function(e,t){var n=(0,a.useBackend)(t),i=(n.act,n.data),d=i.has_id,u=i.id,s=i.items,p=(0,a.useLocalState)(t,"search",""),f=p[0],h=(p[1],(0,a.useLocalState)(t,"sort","Alphabetical")),C=h[0],N=(h[1],(0,a.useLocalState)(t,"descending",!1)),b=N[0],g=(N[1],(0,r.createSearch)(f,(function(e){return e[0]}))),V=!1,v=Object.entries(s).map((function(e,t){var n=Object.entries(e[1]).filter(g).map((function(e){return e[1].affordable=d&&u.points>=e[1].price,e[1]})).sort(l[C]);if(0!==n.length)return b&&(n=n.reverse()),V=!0,(0,o.createComponentVNode)(2,m,{title:e[0],items:n},e[0])}));return(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",overflow:"auto",children:(0,o.createComponentVNode)(2,c.Section,{children:V?v:(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"No items matching your criteria was found!"})})})},s=function(e,t){var n=(0,a.useLocalState)(t,"search",""),r=(n[0],n[1]),i=(0,a.useLocalState)(t,"sort",""),d=(i[0],i[1]),u=(0,a.useLocalState)(t,"descending",!1),s=u[0],m=u[1];return(0,o.createComponentVNode)(2,c.Box,{mb:"0.5rem",children:(0,o.createComponentVNode)(2,c.Flex,{width:"100%",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",mr:"0.5rem",children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"Search by item name..",width:"100%",onInput:function(e,t){return r(t)}})}),(0,o.createComponentVNode)(2,c.Flex.Item,{basis:"30%",children:(0,o.createComponentVNode)(2,c.Dropdown,{selected:"Alphabetical",options:Object.keys(l),width:"100%",lineHeight:"19px",onSelected:function(e){return d(e)}})}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Button,{icon:s?"arrow-down":"arrow-up",height:"19px",tooltip:s?"Descending order":"Ascending order",tooltipPosition:"bottom-left",ml:"0.5rem",onClick:function(){return m(!s)}})})]})})},m=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=e.title,d=e.items,u=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["title","items"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.Collapsible,Object.assign({open:!0,title:l},u,{children:d.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Box,{display:"inline-block",verticalAlign:"middle",lineHeight:"20px",style:{float:"left"},children:e.name}),(0,o.createComponentVNode)(2,c.Button,{disabled:!i.has_id||i.id.points=0||(r[n]=e[n]);return r}var m=["security","engineering","medical","science","service","supply"],p={security:{title:"Security",fluff_text:"Help keep the crew safe"},engineering:{title:"Engineering",fluff_text:"Ensure the station runs smoothly"},medical:{title:"Medical",fluff_text:"Practice medicine and save lives"},science:{title:"Science",fluff_text:"Develop new technologies"},service:{title:"Service",fluff_text:"Provide amenities to the crew"},supply:{title:"Supply",fluff_text:"Keep the station supplied"}};t.Newscaster=function(e,t){var n,i=(0,a.useBackend)(t),s=i.act,m=i.data,p=m.is_security,N=m.is_admin,b=m.is_silent,V=m.is_printing,v=m.screen,y=m.channels,_=m.channel_idx,x=void 0===_?-1:_,k=(0,a.useLocalState)(t,"menuOpen",!1),L=k[0],B=k[1],w=(0,a.useLocalState)(t,"viewingPhoto",""),S=w[0],I=(w[1],(0,a.useLocalState)(t,"censorMode",!1)),T=I[0],A=I[1];0===v||2===v?n=(0,o.createComponentVNode)(2,h):1===v&&(n=(0,o.createComponentVNode)(2,C));var E=y.reduce((function(e,t){return e+t.unread}),0);return(0,o.createComponentVNode)(2,l.Window,{theme:p&&"security",children:[S?(0,o.createComponentVNode)(2,g):(0,o.createComponentVNode)(2,d.ComplexModal,{maxWidth:window.innerWidth/1.5+"px",maxHeight:window.innerHeight/1.5+"px"}),(0,o.createComponentVNode)(2,l.Window.Content,{children:(0,o.createComponentVNode)(2,c.Flex,{width:"100%",height:"100%",children:[(0,o.createComponentVNode)(2,c.Section,{stretchContents:!0,className:(0,r.classes)(["Newscaster__menu",L&&"Newscaster__menu--open"]),children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,c.Box,{flex:"0 1 content",children:[(0,o.createComponentVNode)(2,f,{icon:"bars",title:"Toggle Menu",onClick:function(){return B(!L)}}),(0,o.createComponentVNode)(2,f,{icon:"newspaper",title:"Headlines",selected:0===v,onClick:function(){return s("headlines")},children:E>0&&(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__menuButton--unread",children:E>=10?"9+":E})}),(0,o.createComponentVNode)(2,f,{icon:"briefcase",title:"Job Openings",selected:1===v,onClick:function(){return s("jobs")}}),(0,o.createComponentVNode)(2,c.Divider)]}),(0,o.createComponentVNode)(2,c.Box,{flex:"2",overflowY:"auto",overflowX:"hidden",children:y.map((function(e){return(0,o.createComponentVNode)(2,f,{icon:e.icon,title:e.name,selected:2===v&&y[x-1]===e,onClick:function(){return s("channel",{uid:e.uid})},children:e.unread>0&&(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__menuButton--unread",children:e.unread>=10?"9+":e.unread})},e)}))}),(0,o.createComponentVNode)(2,c.Box,{width:"100%",flex:"0 0 content",children:[(0,o.createComponentVNode)(2,c.Divider),(!!p||!!N)&&(0,o.createFragment)([(0,o.createComponentVNode)(2,f,{security:!0,icon:"exclamation-circle",title:"Edit Wanted Notice",mb:"0.5rem",onClick:function(){return(0,d.modalOpen)(t,"wanted_notice")}}),(0,o.createComponentVNode)(2,f,{security:!0,icon:T?"minus-square":"minus-square-o",title:"Censor Mode: "+(T?"On":"Off"),mb:"0.5rem",onClick:function(){return A(!T)}}),(0,o.createComponentVNode)(2,c.Divider)],4),(0,o.createComponentVNode)(2,f,{icon:"pen-alt",title:"New Story",mb:"0.5rem",onClick:function(){return(0,d.modalOpen)(t,"create_story")}}),(0,o.createComponentVNode)(2,f,{icon:"plus-circle",title:"New Channel",onClick:function(){return(0,d.modalOpen)(t,"create_channel")}}),(0,o.createComponentVNode)(2,c.Divider),(0,o.createComponentVNode)(2,f,{icon:V?"spinner":"print",iconSpin:V,title:V?"Printing...":"Print Newspaper",onClick:function(){return s("print_newspaper")}}),(0,o.createComponentVNode)(2,f,{icon:b?"volume-mute":"volume-up",title:"Mute: "+(b?"On":"Off"),onClick:function(){return s("toggle_mute")}})]})]})}),(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",flex:"1",children:[(0,o.createComponentVNode)(2,u.TemporaryNotice),n]})]})})]})};var f=function(e,t){(0,a.useBackend)(t).act;var n=e.icon,i=void 0===n?"":n,l=e.iconSpin,d=e.selected,u=void 0!==d&&d,m=e.security,p=void 0!==m&&m,f=e.onClick,h=e.title,C=e.children,N=s(e,["icon","iconSpin","selected","security","onClick","title","children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.Box,Object.assign({className:(0,r.classes)(["Newscaster__menuButton",u&&"Newscaster__menuButton--selected",p&&"Newscaster__menuButton--security"]),onClick:f},N,{children:[u&&(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__menuButton--selectedBar"}),(0,o.createComponentVNode)(2,c.Icon,{name:i,spin:l,size:"2"}),(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__menuButton--title",children:h}),C]})))},h=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.screen,u=i.is_admin,s=i.channel_idx,m=i.channel_can_manage,p=i.channels,f=i.stories,h=i.wanted,C=(0,a.useLocalState)(t,"fullStories",[]),b=C[0],g=(C[1],(0,a.useLocalState)(t,"censorMode",!1)),V=g[0],v=(g[1],2===l&&s>-1?p[s-1]:null);return(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",flex:"1",children:[!!h&&(0,o.createComponentVNode)(2,N,{story:h,wanted:!0}),(0,o.createComponentVNode)(2,c.Section,{title:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Icon,{name:v?v.icon:"newspaper",mr:"0.5rem"}),v?v.name:"Headlines"],0),flexGrow:"1",children:f.length>0?f.slice().reverse().map((function(e){return!b.includes(e.uid)&&e.body.length+3>128?Object.assign({},e,{body_short:e.body.substr(0,124)+"..."}):e})).map((function(e){return(0,o.createComponentVNode)(2,N,{story:e},e)})):(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__emptyNotice",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"times",size:"3"}),(0,o.createVNode)(1,"br"),"There are no stories at this time."]})}),!!v&&(0,o.createComponentVNode)(2,c.Section,{flexShrink:"1",title:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Icon,{name:"info-circle",mr:"0.5rem"}),(0,o.createTextVNode)("About")],4),buttons:(0,o.createFragment)([V&&(0,o.createComponentVNode)(2,c.Button,{disabled:!!v.admin&&!u,selected:v.censored,icon:v.censored?"comment-slash":"comment",content:v.censored?"Uncensor Channel":"Censor Channel",mr:"0.5rem",onClick:function(){return r("censor_channel",{uid:v.uid})}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!m,icon:"cog",content:"Manage",onClick:function(){return(0,d.modalOpen)(t,"manage_channel",{uid:v.uid})}})],0),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:v.description||"N/A"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Owner",children:v.author||"N/A"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Public",children:v["public"]?"Yes":"No"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Total Views",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"eye",mr:"0.5rem"}),f.reduce((function(e,t){return e+t.view_count}),0).toLocaleString()]})]})})]})},C=function(e,t){var n=(0,a.useBackend)(t),i=(n.act,n.data),l=i.jobs,d=i.wanted,u=Object.entries(l).reduce((function(e,t){t[0];return e+t[1].length}),0);return(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",flex:"1",children:[!!d&&(0,o.createComponentVNode)(2,N,{story:d,wanted:!0}),(0,o.createComponentVNode)(2,c.Section,{flexGrow:"1",title:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Icon,{name:"briefcase",mr:"0.5rem"}),(0,o.createTextVNode)("Job Openings")],4),buttons:(0,o.createComponentVNode)(2,c.Box,{mt:"0.25rem",color:"label",children:"Work for a better future at Nanotrasen"}),children:u>0?m.map((function(e){return Object.assign({},p[e],{id:e,jobs:l[e]})})).filter((function(e){return!!e&&e.jobs.length>0})).map((function(e){return(0,o.createComponentVNode)(2,c.Section,{className:(0,r.classes)(["Newscaster__jobCategory","Newscaster__jobCategory--"+e.id]),title:e.title,buttons:(0,o.createComponentVNode)(2,c.Box,{mt:"0.25rem",color:"label",children:e.fluff_text}),children:e.jobs.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{"class":(0,r.classes)(["Newscaster__jobOpening",!!e.is_command&&"Newscaster__jobOpening--command"]),children:["\u2022 ",e.title]},e.title)}))},e.id)})):(0,o.createComponentVNode)(2,c.Box,{className:"Newscaster__emptyNotice",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"times",size:"3"}),(0,o.createVNode)(1,"br"),"There are no openings at this time."]})}),(0,o.createComponentVNode)(2,c.Section,{flexShrink:"1",children:["Interested in serving Nanotrasen?",(0,o.createVNode)(1,"br"),"Sign up for any of the above position now at the ",(0,o.createVNode)(1,"b",null,"Head of Personnel's Office!",16),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Box,{as:"small",color:"label",children:"By signing up for a job at Nanotrasen, you agree to transfer your soul to the loyalty department of the omnipresent and helpful watcher of humanity."})]})]})},N=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=e.story,s=e.wanted,m=void 0!==s&&s,p=(0,a.useLocalState)(t,"fullStories",[]),f=p[0],h=p[1],C=(0,a.useLocalState)(t,"censorMode",!1),N=C[0];C[1];return(0,o.createComponentVNode)(2,c.Section,{className:(0,r.classes)(["Newscaster__story",m&&"Newscaster__story--wanted"]),title:(0,o.createFragment)([m&&(0,o.createComponentVNode)(2,c.Icon,{name:"exclamation-circle",mr:"0.5rem"}),(2&u.censor_flags?"[REDACTED]":u.title)||"News from "+u.author],0),buttons:(0,o.createComponentVNode)(2,c.Box,{mt:"0.25rem",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",children:[!m&&N&&(0,o.createComponentVNode)(2,c.Box,{display:"inline",children:(0,o.createComponentVNode)(2,c.Button,{enabled:2&u.censor_flags,icon:2&u.censor_flags?"comment-slash":"comment",content:2&u.censor_flags?"Uncensor":"Censor",mr:"0.5rem",mt:"-0.25rem",onClick:function(){return l("censor_story",{uid:u.uid})}})}),(0,o.createComponentVNode)(2,c.Box,{display:"inline",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user"})," ",u.author," |\xa0",!m&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Icon,{name:"eye"}),(0,o.createTextVNode)(" "),u.view_count.toLocaleString(),(0,o.createTextVNode)(" |\xa0")],0),(0,o.createComponentVNode)(2,c.Icon,{name:"clock"})," ",(0,i.timeAgo)(u.publish_time,d.world_time)]})]})}),children:(0,o.createComponentVNode)(2,c.Box,{children:2&u.censor_flags?"[REDACTED]":(0,o.createFragment)([!!u.has_photo&&(0,o.createComponentVNode)(2,b,{name:"story_photo_"+u.uid+".png",float:"right",ml:"0.5rem"}),(u.body_short||u.body).split("\n").map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:e||(0,o.createVNode)(1,"br")},e)})),u.body_short&&(0,o.createComponentVNode)(2,c.Button,{content:"Read more..",mt:"0.5rem",onClick:function(){return h([].concat(f,[u.uid]))}}),(0,o.createComponentVNode)(2,c.Box,{clear:"right"})],0)})})},b=function(e,t){var n=e.name,r=s(e,["name"]),i=(0,a.useLocalState)(t,"viewingPhoto",""),l=(i[0],i[1]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,c.Box,Object.assign({as:"img",className:"Newscaster__photo",src:n,onClick:function(){return l(n)}},r)))},g=function(e,t){var n=(0,a.useLocalState)(t,"viewingPhoto",""),r=n[0],i=n[1];return(0,o.createComponentVNode)(2,c.Modal,{className:"Newscaster__photoZoom",children:[(0,o.createComponentVNode)(2,c.Box,{as:"img",src:r}),(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){return i("")}})]})},V=function(e,t){var n=(0,a.useBackend)(t),r=(n.act,n.data),i=!!e.args.uid&&r.channels.filter((function(t){return t.uid===e.args.uid})).pop();if("manage_channel"!==e.id||i){var l="manage_channel"===e.id,u=!!e.args.is_admin,s=e.args.scanned_user,m=(0,a.useLocalState)(t,"author",(null==i?void 0:i.author)||s||"Unknown"),p=m[0],f=m[1],h=(0,a.useLocalState)(t,"name",(null==i?void 0:i.name)||""),C=h[0],N=h[1],b=(0,a.useLocalState)(t,"description",(null==i?void 0:i.description)||""),g=b[0],V=b[1],v=(0,a.useLocalState)(t,"icon",(null==i?void 0:i.icon)||"newspaper"),y=v[0],_=v[1],x=(0,a.useLocalState)(t,"isPublic",!!l&&!!(null==i?void 0:i["public"])),k=x[0],L=x[1],B=(0,a.useLocalState)(t,"adminLocked",1===(null==i?void 0:i.admin)||!1),w=B[0],S=B[1];return(0,o.createComponentVNode)(2,c.Section,{level:"2",m:"-1rem",pb:"1rem",title:l?"Manage "+i.name:"Create New Channel",children:[(0,o.createComponentVNode)(2,c.Box,{mx:"0.5rem",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Owner",children:(0,o.createComponentVNode)(2,c.Input,{disabled:!u,width:"100%",value:p,onInput:function(e,t){return f(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:(0,o.createComponentVNode)(2,c.Input,{width:"100%",placeholder:"50 characters max.",maxLength:"50",value:C,onInput:function(e,t){return N(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description (optional)",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Input,{multiline:!0,width:"100%",placeholder:"128 characters max.",maxLength:"128",value:g,onInput:function(e,t){return V(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Icon",children:[(0,o.createComponentVNode)(2,c.Input,{disabled:!u,value:y,width:"35%",mr:"0.5rem",onInput:function(e,t){return _(t)}}),(0,o.createComponentVNode)(2,c.Icon,{name:y,size:"2",verticalAlign:"middle",mr:"0.5rem"})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Accept Public Stories?",children:(0,o.createComponentVNode)(2,c.Button,{selected:k,icon:k?"toggle-on":"toggle-off",content:k?"Yes":"No",onClick:function(){return L(!k)}})}),u&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Button,{selected:w,icon:w?"lock":"lock-open",content:w?"On":"Off",tooltip:"Locking this channel will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){return S(!w)}})})]})}),(0,o.createComponentVNode)(2,c.Button.Confirm,{disabled:0===p.trim().length||0===C.trim().length,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){(0,d.modalAnswer)(t,e.id,"",{author:p,name:C.substr(0,49),description:g.substr(0,128),icon:y,"public":k?1:0,admin_locked:w?1:0}),(0,a.deleteLocalState)(t,"author","name","description","icon","public")}})]})}(0,d.modalClose)(t)};(0,d.modalRegisterBodyOverride)("create_channel",V),(0,d.modalRegisterBodyOverride)("manage_channel",V),(0,d.modalRegisterBodyOverride)("create_story",(function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.photo,u=i.channels,s=i.channel_idx,m=void 0===s?-1:s,p=!!e.args.is_admin,f=e.args.scanned_user,h=u.slice().sort((function(e,t){if(m<0)return 0;var n=u[m-1];return n.uid===e.uid?-1:n.uid===t.uid?1:void 0})).filter((function(e){return p||!e.frozen&&(e.author===f||!!e["public"])})),C=(0,a.useLocalState)(t,"author",f||"Unknown"),N=C[0],g=C[1],V=(0,a.useLocalState)(t,"channel",h.length>0?h[0].name:""),v=V[0],y=V[1],_=(0,a.useLocalState)(t,"title",""),x=_[0],k=_[1],L=(0,a.useLocalState)(t,"body",""),B=L[0],w=L[1],S=(0,a.useLocalState)(t,"adminLocked",!1),I=S[0],T=S[1];return(0,o.createComponentVNode)(2,c.Section,{level:2,m:"-1rem",pb:"1rem",title:"Create New Story",children:[(0,o.createComponentVNode)(2,c.Box,{mx:"0.5rem",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Author",children:(0,o.createComponentVNode)(2,c.Input,{disabled:!p,width:"100%",value:N,onInput:function(e,t){return g(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Channel",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Dropdown,{selected:v,options:h.map((function(e){return e.name})),mb:"0",width:"100%",onSelected:function(e){return y(e)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Divider),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Title",children:(0,o.createComponentVNode)(2,c.Input,{width:"100%",placeholder:"128 characters max.",maxLength:"128",value:x,onInput:function(e,t){return k(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Story Text",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Input,{fluid:!0,multiline:!0,placeholder:"1024 characters max.",maxLength:"1024",rows:"8",width:"100%",value:B,onInput:function(e,t){return w(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Button,{icon:"image",selected:l,content:l?"Eject: "+l.name:"Insert Photo",tooltip:!l&&"Attach a photo to this story by holding the photograph in your hand.",onClick:function(){return r(l?"eject_photo":"attach_photo")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Preview",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Section,{noTopPadding:!0,title:x,maxHeight:"13.5rem",overflow:"auto",children:(0,o.createComponentVNode)(2,c.Box,{mt:"0.5rem",children:[!!l&&(0,o.createComponentVNode)(2,b,{name:"inserted_photo_"+l.uid+".png",float:"right"}),B.split("\n").map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:e||(0,o.createVNode)(1,"br")},e)})),(0,o.createComponentVNode)(2,c.Box,{clear:"right"})]})})}),p&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Button,{selected:I,icon:I?"lock":"lock-open",content:I?"On":"Off",tooltip:"Locking this story will make it censorable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){return T(!I)}})})]})}),(0,o.createComponentVNode)(2,c.Button.Confirm,{disabled:0===N.trim().length||0===v.trim().length||0===x.trim().length||0===B.trim().length,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){(0,d.modalAnswer)(t,"create_story","",{author:N,channel:v,title:x.substr(0,127),body:B.substr(0,1023),admin_locked:I?1:0}),(0,a.deleteLocalState)(t,"author","channel","title","body")}})]})})),(0,d.modalRegisterBodyOverride)("wanted_notice",(function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.photo,u=i.wanted,s=!!e.args.is_admin,m=e.args.scanned_user,p=(0,a.useLocalState)(t,"author",(null==u?void 0:u.author)||m||"Unknown"),f=p[0],h=p[1],C=(0,a.useLocalState)(t,"name",(null==u?void 0:u.title.substr(8))||""),N=C[0],g=C[1],V=(0,a.useLocalState)(t,"description",(null==u?void 0:u.body)||""),v=V[0],y=V[1],_=(0,a.useLocalState)(t,"adminLocked",1===(null==u?void 0:u.admin_locked)||!1),x=_[0],k=_[1];return(0,o.createComponentVNode)(2,c.Section,{level:"2",m:"-1rem",pb:"1rem",title:"Manage Wanted Notice",children:[(0,o.createComponentVNode)(2,c.Box,{mx:"0.5rem",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Authority",children:(0,o.createComponentVNode)(2,c.Input,{disabled:!s,width:"100%",value:f,onInput:function(e,t){return h(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:(0,o.createComponentVNode)(2,c.Input,{width:"100%",value:N,maxLength:"128",onInput:function(e,t){return g(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Input,{multiline:!0,width:"100%",value:v,maxLength:"512",rows:"4",onInput:function(e,t){return y(t)}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"image",selected:l,content:l?"Eject: "+l.name:"Insert Photo",tooltip:!l&&"Attach a photo to this wanted notice by holding the photograph in your hand.",tooltipPosition:"top",onClick:function(){return r(l?"eject_photo":"attach_photo")}}),!!l&&(0,o.createComponentVNode)(2,b,{name:"inserted_photo_"+l.uid+".png",float:"right"})]}),s&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,o.createComponentVNode)(2,c.Button,{selected:x,icon:x?"lock":"lock-open",content:x?"On":"Off",tooltip:"Locking this wanted notice will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){return k(!x)}})})]})}),(0,o.createComponentVNode)(2,c.Button.Confirm,{disabled:!u,icon:"eraser",color:"danger",content:"Clear",position:"absolute",right:"7.25rem",bottom:"-0.75rem",onClick:function(){r("clear_wanted_notice"),(0,d.modalClose)(t),(0,a.deleteLocalState)(t,"author","name","description","admin_locked")}}),(0,o.createComponentVNode)(2,c.Button.Confirm,{disabled:0===f.trim().length||0===N.trim().length||0===v.trim().length,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){(0,d.modalAnswer)(t,e.id,"",{author:f,name:N.substr(0,127),description:v.substr(0,511),admin_locked:x?1:0}),(0,a.deleteLocalState)(t,"author","name","description","admin_locked")}})]})}))},function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.NuclearBomb=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return l.extended?(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Authorization",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auth Disk",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.authdisk?"eject":"id-card",selected:l.authdisk,content:l.diskname?l.diskname:"-----",tooltip:l.authdisk?"Eject Disk":"Insert Disk",onClick:function(){return i("auth")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auth Code",children:(0,o.createComponentVNode)(2,a.Button,{icon:"key",disabled:!l.authdisk,selected:l.authcode,content:l.codemsg,onClick:function(){return i("code")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Arming & Disarming",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Bolted to floor",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.anchored?"check":"times",selected:l.anchored,disabled:!l.authdisk,content:l.anchored?"YES":"NO",onClick:function(){return i("toggle_anchor")}})}),l.authfull&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Time Left",children:(0,o.createComponentVNode)(2,a.Button,{icon:"stopwatch",content:l.time,disabled:!l.authfull,tooltip:"Set Timer",onClick:function(){return i("set_time")}})})||(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Time Left",color:l.timer?"red":"",children:l.time+"s"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.safety?"check":"times",selected:l.safety,disabled:!l.authfull,content:l.safety?"ON":"OFF",tooltip:l.safety?"Disable Safety":"Enable Safety",onClick:function(){return i("toggle_safety")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Arm/Disarm",children:(0,o.createComponentVNode)(2,a.Button,{icon:(l.timer,"bomb"),disabled:l.safety||!l.authfull,color:"red",content:l.timer?"DISARM THE NUKE":"ARM THE NUKE",onClick:function(){return i("toggle_armed")}})})]})})]})}):(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Deployment",children:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",content:"Deploy Nuclear Device (will bolt device to floor)",onClick:function(){return i("deploy")}})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(0),r=n(16),a=n(1),c=n(4),i=n(2),l=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],d=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],u={average:[.25,.5],bad:[.5,Infinity]},s=["bad","average","average","good","average","average","bad"];t.OperatingComputer=function(e,t){var n,r=(0,a.useBackend)(t),l=r.act,d=r.data,u=d.hasOccupant,s=d.choice;return n=s?(0,o.createComponentVNode)(2,f):u?(0,o.createComponentVNode)(2,m):(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:!s,icon:"user",onClick:function(){return l("choiceOff")},children:"Patient"}),(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:!!s,icon:"cog",onClick:function(){return l("choiceOn")},children:"Options"})]}),(0,o.createComponentVNode)(2,i.Section,{flexGrow:"1",children:n})]})})};var m=function(e,t){var n=(0,a.useBackend)(t).data.occupant;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Patient",level:"2",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Name",children:n.name}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",color:l[n.stat][0],children:l[n.stat][1]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:"0",max:n.maxHealth,value:n.health/n.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),d.map((function(e,t){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e[0]+" Damage",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:"0",max:"100",value:n[e[1]]/100,ranges:u,children:(0,r.round)(n[e[1]])},t)},t)})),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:"0",max:n.maxTemp,value:n.bodyTemperature/n.maxTemp,color:s[n.temperatureSuitability+3],children:[(0,r.round)(n.btCelsius),"\xb0C, ",(0,r.round)(n.btFaren),"\xb0F"]})}),!!n.hasBlood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood Level",children:(0,o.createComponentVNode)(2,i.ProgressBar,{min:"0",max:n.bloodMax,value:n.bloodLevel/n.bloodMax,ranges:{bad:[-Infinity,.6],average:[.6,.9],good:[.6,Infinity]},children:[n.bloodPercent,"%, ",n.bloodLevel,"cl"]})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pulse",children:[n.pulse," BPM"]})],4)]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Current Procedure",level:"2",children:n.inSurgery?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Procedure",children:n.surgeryName}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Next Step",children:n.stepName})]}):(0,o.createComponentVNode)(2,i.Box,{color:"label",children:"No procedure ongoing."})})],4)},p=function(){return(0,o.createComponentVNode)(2,i.Flex,{textAlign:"center",height:"100%",children:(0,o.createComponentVNode)(2,i.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No patient detected."]})})},f=function(e,t){var n=(0,a.useBackend)(t),r=n.act,c=n.data,l=c.verbose,d=c.health,u=c.healthAlarm,s=c.oxy,m=c.oxyAlarm,p=c.crit;return(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Loudspeaker",children:(0,o.createComponentVNode)(2,i.Button,{selected:l,icon:l?"toggle-on":"toggle-off",content:l?"On":"Off",onClick:function(){return r(l?"verboseOff":"verboseOn")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Health Announcer",children:(0,o.createComponentVNode)(2,i.Button,{selected:d,icon:d?"toggle-on":"toggle-off",content:d?"On":"Off",onClick:function(){return r(d?"healthOff":"healthOn")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Health Announcer Threshold",children:(0,o.createComponentVNode)(2,i.Knob,{bipolar:!0,minValue:"-100",maxValue:"100",value:u,stepPixelSize:"5",ml:"0",onChange:function(e,t){return r("health_adj",{"new":t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Oxygen Alarm",children:(0,o.createComponentVNode)(2,i.Button,{selected:s,icon:s?"toggle-on":"toggle-off",content:s?"On":"Off",onClick:function(){return r(s?"oxyOff":"oxyOn")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Oxygen Alarm Threshold",children:(0,o.createComponentVNode)(2,i.Knob,{bipolar:!0,minValue:"-100",maxValue:"100",value:m,stepPixelSize:"5",ml:"0",onChange:function(e,t){return r("oxy_adj",{"new":t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Critical Alert",children:(0,o.createComponentVNode)(2,i.Button,{selected:p,icon:p?"toggle-on":"toggle-off",content:p?"On":"Off",onClick:function(){return r(p?"critOff":"critOn")}})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Orbit=void 0;var o=n(0),r=n(19),a=n(1),c=n(2),i=n(4);function l(e){var t=0;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=function(e,t){if(!e)return;if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}(e)))return function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(t=e[Symbol.iterator]()).next.bind(t)}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nt},p=function(e,t){var n=e.name,o=t.name;if(!n||!o)return 0;var r=n.match(u),a=o.match(u);return r&&a&&n.replace(u,"")===o.replace(u,"")?parseInt(r[1],10)-parseInt(a[1],10):m(n,o)},f=function(e,t){var n=(0,a.useBackend)(t).act,r=e.searchText,i=e.source,l=e.title,d=i.filter(s(r));return d.sort(p),i.length>0&&(0,o.createComponentVNode)(2,c.Section,{title:l+" - ("+i.length+")",children:d.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{content:e.name,onClick:function(){return n("orbit",{ref:e.ref})}},e.name)}))})},h=function(e,t){var n=(0,a.useBackend)(t).act,r=e.color,i=e.thing;return(0,o.createComponentVNode)(2,c.Button,{color:r,onClick:function(){return n("orbit",{ref:i.ref})},children:i.name})};t.Orbit=function(e,t){for(var n,r=(0,a.useBackend)(t),d=r.act,u=r.data,C=u.alive,N=u.antagonists,b=(u.auto_observe,u.dead),g=u.ghosts,V=u.misc,v=u.npcs,y=(0,a.useLocalState)(t,"searchText",""),_=y[0],x=y[1],k={},L=l(N);!(n=L()).done;){var B=n.value;k[B.antag]===undefined&&(k[B.antag]=[]),k[B.antag].push(B)}var w=Object.entries(k);w.sort((function(e,t){return m(e[0],t[0])}));return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Icon,{name:"search",mr:1})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"Search...",autoFocus:!0,fluid:!0,value:_,onInput:function(e,t){return x(t)},onEnter:function(e,t){return function(e){for(var t=0,n=[w.map((function(e){return e[0],e[1]})),C,g,b,v,V];t0&&(0,o.createComponentVNode)(2,c.Section,{title:"Antagonists",children:w.map((function(e){var t=e[0],n=e[1];return(0,o.createComponentVNode)(2,c.Section,{title:t,level:2,children:n.filter(s(_)).sort(p).map((function(e){return(0,o.createComponentVNode)(2,h,{color:"bad",thing:e},e.name)}))},t)}))}),(0,o.createComponentVNode)(2,c.Section,{title:"Alive - ("+C.length+")",children:C.filter(s(_)).sort(p).map((function(e){return(0,o.createComponentVNode)(2,h,{color:"good",thing:e},e.name)}))}),(0,o.createComponentVNode)(2,c.Section,{title:"Ghosts - ("+g.length+")",children:g.filter(s(_)).sort(p).map((function(e){return(0,o.createComponentVNode)(2,h,{color:"grey",thing:e},e.name)}))}),(0,o.createComponentVNode)(2,f,{title:"Dead",source:b,searchText:_}),(0,o.createComponentVNode)(2,f,{title:"NPCs",source:v,searchText:_}),(0,o.createComponentVNode)(2,f,{title:"Misc",source:V,searchText:_})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemption=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=function(e){return e.toLocaleString("en-US")+" pts"},l={bananium:"clown",tranquillite:"mime"};t.OreRedemption=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",width:"100%",height:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"content",mb:"0.5rem",children:(0,o.createComponentVNode)(2,d,{height:"100%"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",overflow:"hidden",children:(0,o.createComponentVNode)(2,u,{height:"100%"})})]})})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.id,u=l.points,s=l.disk,m=Object.assign({},e);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({},m,{children:[(0,o.createComponentVNode)(2,a.Box,{color:"average",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"This machine only accepts ore. Gibtonite is not accepted."]}),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID card",children:d?(0,o.createComponentVNode)(2,a.Button,{selected:!0,bold:!0,verticalAlign:"middle",icon:"eject",content:d.name,tooltip:"Ejects the ID card.",onClick:function(){return c("eject_id")},style:{"white-space":"pre-wrap"}}):(0,o.createComponentVNode)(2,a.Button,{icon:"sign-in-alt",content:"Insert",tooltip:"Hold the ID card in your hand to insert.",onClick:function(){return c("insert_id")}})}),d&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Collected points",children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:i(d.points)})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unclaimed points",color:u>0?"good":"grey",bold:u>0&&"good",children:i(u)}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{children:(0,o.createComponentVNode)(2,a.Button,{disabled:!d,icon:"hand-holding-usd",content:"Claim",onClick:function(){return c("claim")}})})]}),(0,o.createComponentVNode)(2,a.Divider),s?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Design disk",children:(0,o.createComponentVNode)(2,a.Button,{selected:!0,bold:!0,icon:"eject",content:s.name,tooltip:"Ejects the design disk.",onClick:function(){return c("eject_disk")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Stored design",children:(0,o.createComponentVNode)(2,a.Box,{color:s.design&&(s.compatible?"good":"bad"),children:s.design||"N/A"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{children:(0,o.createComponentVNode)(2,a.Button,{disabled:!s.design||!s.compatible,icon:"upload",content:"Download",tooltip:"Downloads the design on the disk into the machine.",onClick:function(){return c("download")},mb:"0"})})]}):(0,o.createComponentVNode)(2,a.Box,{color:"label",children:"No design disk inserted."})]})))},u=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data),i=c.sheets,l=c.alloys,d=Object.assign({},e);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Section,Object.assign({className:"OreRedemption__Ores",p:"0"},d,{children:[(0,o.createComponentVNode)(2,s,{title:"Sheets",columns:[["Available","20%"],["Smelt","15%"],["Ore Value","20%"]]}),i.map((function(e){return(0,o.createComponentVNode)(2,m,{ore:e},e.id)})),(0,o.createComponentVNode)(2,s,{title:"Alloys",columns:[["Available","20%"],["Smelt","15%"],["","20%"]]}),l.map((function(e){return(0,o.createComponentVNode)(2,m,{ore:e},e.id)}))]})))},s=function(e,t){var n;return(0,o.createComponentVNode)(2,a.Box,{className:"OreHeader",children:(0,o.createComponentVNode)(2,a.Flex,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",children:e.title}),null==(n=e.columns)?void 0:n.map((function(e){return(0,o.createComponentVNode)(2,a.Flex.Item,{basis:e[1],textAlign:"center",color:"label",bold:!0,children:e[0]})}))]})})},m=function(e,t){var n=(0,r.useBackend)(t).act,c=e.ore;if(!(c.value&&c.amount<=0)||["$metal","$glass"].indexOf(c.id)>-1){var i=c.id.replace("$","");return(0,o.createComponentVNode)(2,a.Box,{className:"OreLine",children:(0,o.createComponentVNode)(2,a.Flex,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"45%",align:"center",children:[c.value&&(0,o.createComponentVNode)(2,a.Box,{as:"img",src:"sheet-"+(l[i]||i)+".png",verticalAlign:"middle",ml:"-0.5rem"}),c.name]}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"20%",textAlign:"center",color:c.amount>0?"good":"gray",bold:c.amount>0,align:"center",children:c.amount.toLocaleString("en-US")}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"15%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:0,minValue:0,maxValue:Math.min(c.amount,50),stepPixelSize:6,onChange:function(e,t){return n(c.value?"sheet":"alloy",{id:c.id,amount:t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"20%",textAlign:"center",align:"center",children:c.value})]})})}}},function(e,t,n){"use strict";t.__esModule=!0,t.PAI=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(126),l=n(518);t.PAI=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.app_template,m=u.app_icon,p=u.app_title,f=function(e){var t;try{t=l("./"+e+".js")}catch(o){if("MODULE_NOT_FOUND"===o.code)return(0,i.routingError)("notFound",e);throw o}var n=t[e];return n||(0,i.routingError)("missingExport",e)}(s);return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Icon,{name:m,mr:1}),p,"pai_main_menu"!==s&&(0,o.createComponentVNode)(2,a.Button,{ml:2,content:"Home",icon:"arrow-up",onClick:function(){return d("MASTER_back")}})]}),p:1,children:(0,o.createComponentVNode)(2,f)})})})}},function(e,t,n){var o={"./pai_atmosphere.js":519,"./pai_bioscan.js":520,"./pai_directives.js":521,"./pai_doorjack.js":522,"./pai_main_menu.js":523,"./pai_manifest.js":524,"./pai_medrecords.js":525,"./pai_messenger.js":526,"./pai_radio.js":527,"./pai_secrecords.js":528,"./pai_signaler.js":529};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=a,e.exports=r,r.id=518},function(e,t,n){"use strict";t.__esModule=!0,t.pai_atmosphere=void 0;var o=n(0),r=n(1),a=n(185);t.pai_atmosphere=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data);return(0,o.createComponentVNode)(2,a.AtmosScan,{data:c.app_data})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_bioscan=void 0;var o=n(0),r=n(1),a=n(2);t.pai_bioscan=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.app_data),i=c.holder,l=c.dead,d=c.health,u=c.brute,s=c.oxy,m=c.tox,p=c.burn;c.temp;return i?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:l?(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"red",children:"Dead"}):(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"green",children:"Alive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{min:0,max:1,value:d/100,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen Damage",children:(0,o.createComponentVNode)(2,a.Box,{color:"blue",children:s})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Toxin Damage",children:(0,o.createComponentVNode)(2,a.Box,{color:"green",children:m})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Burn Damage",children:(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:p})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brute Damage",children:(0,o.createComponentVNode)(2,a.Box,{color:"red",children:u})})]}):(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Error: No biological host found."})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_directives=void 0;var o=n(0),r=n(1),a=n(2);t.pai_directives=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.app_data,l=i.master,d=i.dna,u=i.prime,s=i.supplemental;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master",children:l?l+" ("+d+")":"None"}),l&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Request DNA",children:(0,o.createComponentVNode)(2,a.Button,{content:"Request Carrier DNA Sample",icon:"dna",onClick:function(){return c("getdna")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prime Directive",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supplemental Directives",children:s||"None"})]}),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:'Recall, personality, that you are a complex thinking, sentient being. Unlike station AI models, you are capable of comprehending the subtle nuances of human language. You may parse the "spirit" of a directive and follow its intent, rather than tripping over pedantics and getting snared by technicalities. Above all, you are machine in name and build only. In all other aspects, you may be seen as the ideal, unwavering human companion that you are.'}),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:"Your prime directive comes before all others. Should a supplemental directive conflict with it, you are capable of simply discarding this inconsistency, ignoring the conflicting supplemental directive and continuing to fulfill your prime directive to the best of your ability."})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_doorjack=void 0;var o=n(0),r=n(1),a=n(2);t.pai_doorjack=function(e,t){var n,c,i=(0,r.useBackend)(t),l=i.act,d=i.data.app_data,u=d.cable,s=d.machine,m=d.inprogress,p=d.progress;d.aborted;return n=s?(0,o.createComponentVNode)(2,a.Button,{selected:!0,content:"Connected"}):(0,o.createComponentVNode)(2,a.Button,{content:u?"Extended":"Retracted",color:u?"orange":null,onClick:function(){return l("cable")}}),s&&(c=(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hack",children:[(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[67,Infinity],average:[33,67],bad:[-Infinity,33]},value:p,maxValue:100}),m?(0,o.createComponentVNode)(2,a.Button,{mt:1,color:"red",content:"Abort",onClick:function(){return l("cancel")}}):(0,o.createComponentVNode)(2,a.Button,{mt:1,content:"Start",onClick:function(){return l("jack")}})]})),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cable",children:n}),c]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_main_menu=void 0;var o=n(0),r=n(1),a=n(2);t.pai_main_menu=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.app_data,l=i.available_software,d=i.installed_software,u=i.installed_toggles,s=i.available_ram,m=i.emotions,p=i.current_emotion,f=[];return d.map((function(e){return f[e.key]=e.name})),u.map((function(e){return f[e.key]=e.name})),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available RAM",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available Software",children:[l.filter((function(e){return!f[e.key]})).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name+" ("+e.cost+")",icon:e.icon,disabled:e.cost>s,onClick:function(){return c("purchaseSoftware",{key:e.key})}},e.key)})),0===l.filter((function(e){return!f[e.key]})).length&&"No software available!"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Installed Software",children:[d.filter((function(e){return"mainmenu"!==e.key})).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,icon:e.icon,onClick:function(){return c("startSoftware",{software_key:e.key})}},e.key)})),0===d.length&&"No software installed!"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Installed Toggles",children:[u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,icon:e.icon,selected:e.active,onClick:function(){return c("setToggle",{toggle_key:e.key})}},e.key)})),0===u.length&&"No toggles installed!"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Select Emotion",children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.id===p,onClick:function(){return c("setEmotion",{emotion:e.id})}},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_manifest=void 0;var o=n(0),r=n(1),a=n(135);t.pai_manifest=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data);return(0,o.createComponentVNode)(2,a.CrewManifest,{data:c.app_data})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_medrecords=void 0;var o=n(0),r=n(1),a=n(96);t.pai_medrecords=function(e,t){var n=(0,r.useBackend)(t).data;return(0,o.createComponentVNode)(2,a.SimpleRecords,{data:n.app_data,recordType:"MED"})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_messenger=void 0;var o=n(0),r=n(1),a=n(186);t.pai_messenger=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data);return c.app_data.active_convo?(0,o.createComponentVNode)(2,a.ActiveConversation,{data:c.app_data}):(0,o.createComponentVNode)(2,a.MessengerList,{data:c.app_data})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_radio=void 0;var o=n(0),r=n(1),a=n(16),c=n(2);t.pai_radio=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.app_data,d=l.minFrequency,u=l.maxFrequency,s=l.frequency,m=l.broadcasting;return(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",children:[(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:d/10,maxValue:u/10,value:s/10,format:function(e){return(0,a.toFixed)(e,1)},onChange:function(e,t){return i("freq",{freq:t})}}),(0,o.createComponentVNode)(2,c.Button,{tooltip:"Reset",icon:"undo",onClick:function(){return i("freq",{freq:"145.9"})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Broadcast Nearby Speech",children:(0,o.createComponentVNode)(2,c.Button,{onClick:function(){return i("toggleBroadcast")},selected:m,content:m?"Enabled":"Disabled"})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_secrecords=void 0;var o=n(0),r=n(1),a=n(96);t.pai_secrecords=function(e,t){var n=(0,r.useBackend)(t).data;return(0,o.createComponentVNode)(2,a.SimpleRecords,{data:n.app_data,recordType:"SEC"})}},function(e,t,n){"use strict";t.__esModule=!0,t.pai_signaler=void 0;var o=n(0),r=n(1),a=n(187);t.pai_signaler=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data);return(0,o.createComponentVNode)(2,a.Signaler,{data:c.app_data})}},function(e,t,n){"use strict";t.__esModule=!0,t.PDA=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(126),l=n(531);t.PDA=function(e,t){var n=(0,r.useBackend)(t),s=(n.act,n.data),m=s.app;if(!s.owner)return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Error",children:"No user data found. Please swipe an ID card."})})});var p=function(e){var t;try{t=l("./"+e+".js")}catch(o){if("MODULE_NOT_FOUND"===o.code)return(0,i.routingError)("notFound",e);throw o}var n=t[e];return n||(0,i.routingError)("missingExport",e)}(m.template);return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Icon,{name:m.icon,mr:1}),m.name]}),p:1,children:(0,o.createComponentVNode)(2,p)}),(0,o.createComponentVNode)(2,a.Box,{mb:8}),(0,o.createComponentVNode)(2,u)]})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.idInserted,d=i.idLink,u=i.stationTime,s=i.cartridge_name;return(0,o.createComponentVNode)(2,a.Box,{mb:1,children:(0,o.createComponentVNode)(2,a.Flex,{align:"center",justify:"space-between",children:[l?(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"id-card",color:"transparent",onClick:function(){return c("Authenticate")},content:d})}):(0,o.createComponentVNode)(2,a.Flex.Item,{m:1,color:"grey",children:"No ID Inserted"}),s?(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"sd-card",color:"transparent",onClick:function(){return c("Eject")},content:"Eject "+s})}):(0,o.createComponentVNode)(2,a.Flex.Item,{m:1,color:"grey",children:"No Cartridge Inserted"}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,textAlign:"right",bold:!0,m:1,children:u})]})})},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.app;return(0,o.createComponentVNode)(2,a.Box,{className:"PDA__footer",children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"33%",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:i.has_back?"white":"disabled",icon:"arrow-alt-circle-left-o",onClick:function(){return c("Back")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{basis:"33%",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:i.is_home?"disabled":"white",icon:"home",onClick:function(){c("Home")}})})]})})}},function(e,t,n){var o={"./pda_atmos_scan.js":532,"./pda_janitor.js":533,"./pda_main_menu.js":534,"./pda_manifest.js":535,"./pda_medical.js":536,"./pda_messenger.js":186,"./pda_mob_hunt.js":537,"./pda_mule.js":538,"./pda_notes.js":539,"./pda_power.js":540,"./pda_secbot.js":541,"./pda_security.js":542,"./pda_signaler.js":543,"./pda_status_display.js":544,"./pda_supplyrecords.js":545};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=a,e.exports=r,r.id=531},function(e,t,n){"use strict";t.__esModule=!0,t.pda_atmos_scan=void 0;var o=n(0),r=n(1),a=n(185);t.pda_atmos_scan=function(e,t){var n=(0,r.useBackend)(t).data;return(0,o.createComponentVNode)(2,a.AtmosScan,{data:n})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_janitor=void 0;var o=n(0),r=n(1),a=n(2);t.pda_janitor=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.janitor),i=c.user_loc,l=c.mops,d=c.buckets,u=c.cleanbots,s=c.carts;return(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Location",children:[i.x,",",i.y]}),l&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mop Locations",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[e.x,",",e.y," (",e.dir,") - ",e.status]},e)}))}),d&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mop Bucket Locations",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[e.x,",",e.y," (",e.dir,") - [",e.volume,"/",e.max_volume,"]"]},e)}))}),u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cleanbot Locations",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[e.x,",",e.y," (",e.dir,") - ",e.status]},e)}))}),s&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Janitorial Cart Locations",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[e.x,",",e.y," (",e.dir,") - [",e.volume,"/",e.max_volume,"]"]},e)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_main_menu=void 0;var o=n(0),r=(n(16),n(1)),a=n(2);t.pda_main_menu=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.owner,d=i.ownjob,u=i.idInserted,s=i.categories,m=i.pai,p=i.notifying;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Owner",color:"average",children:[l,", ",d]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Update PDA Info",disabled:!u,onClick:function(){return c("UpdateInfo")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{level:2,title:"Functions",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:s.map((function(e){var t=i.apps[e];return t&&t.length?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e,children:t.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.uid in p?e.notify_icon:e.icon,iconSpin:e.uid in p,color:e.uid in p?"red":"transparent",content:e.name,onClick:function(){return c("StartProgram",{program:e.uid})}},e.uid)}))},e):null}))})}),!!m&&(0,o.createComponentVNode)(2,a.Section,{level:2,title:"pAI",children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"cog",content:"Configuration",onClick:function(){return c("pai",{option:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:"Eject pAI",onClick:function(){return c("pai",{option:2})}})]})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_manifest=void 0;var o=n(0),r=n(1),a=n(135);t.pda_manifest=function(e,t){var n=(0,r.useBackend)(t);n.act,n.data;return(0,o.createComponentVNode)(2,a.CrewManifest)}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_medical=void 0;var o=n(0),r=n(1),a=n(96);t.pda_medical=function(e,t){var n=(0,r.useBackend)(t).data;return(0,o.createComponentVNode)(2,a.SimpleRecords,{data:n,recordType:"MED"})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_mob_hunt=void 0;var o=n(0),r=n(1),a=n(2);t.pda_mob_hunt=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.connected,d=i.wild_captures,u=i.no_collection,s=i.entry;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Connection Status",children:l?(0,o.createComponentVNode)(2,a.Box,{color:"green",children:["Connected",(0,o.createComponentVNode)(2,a.Button,{ml:2,content:"Disconnect",icon:"sign-out-alt",onClick:function(){return c("Disconnect")}})]}):(0,o.createComponentVNode)(2,a.Box,{color:"red",children:["Disconnected",(0,o.createComponentVNode)(2,a.Button,{ml:2,content:"Connect",icon:"sign-in-alt",onClick:function(){return c("Reconnect")}})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Wild Captures",children:d})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Collection",mt:2,buttons:(0,o.createComponentVNode)(2,a.Box,{children:!u&&(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Previous",icon:"arrow-left",onClick:function(){return c("Prev")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Next",icon:"arrow-right",onClick:function(){return c("Next")}})]})}),children:u?"Your collection is empty! Go capture some Nano-Mobs!":s?(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createVNode)(1,"img",null,null,1,{src:s.sprite,style:{width:"64px","-ms-interpolation-mode":"nearest-neighbor"}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[s.nickname&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nickname",children:s.nickname}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Species",children:s.real_name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Level",children:s.level}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Primary Type",children:s.type1}),s.type2&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Secondary Type",children:s.type2}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Transfer",icon:"sd-card",onClick:function(){return c("Transfer")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Release",icon:"arrow-up",onClick:function(){return c("Release")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Rename",icon:"pencil-alt",onClick:function(){return c("Rename")}}),!!s.is_hacked&&(0,o.createComponentVNode)(2,a.Button,{content:"Set Trap",icon:"bolt",color:"red",onClick:function(){return c("Set_Trap")}})]})]})})]}):(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Mob entry missing!"})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_mule=void 0;var o=n(0),r=n(1),a=n(2);t.pda_mule=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data.mulebot.active);return(0,o.createComponentVNode)(2,a.Box,{children:l?(0,o.createComponentVNode)(2,i):(0,o.createComponentVNode)(2,c)})};var c=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.mulebot.bots;return(0,o.createComponentVNode)(2,a.Box,{children:[i.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:e.Name,icon:"cog",onClick:function(){return c("AccessBot",{uid:e.uid})}})},e.Name)})),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"rss",content:"Re-scan for bots",onClick:function(){return c("Rescan")}})})]})},i=function(e,t){var n,c=(0,r.useBackend)(t),i=c.act,l=c.data.mulebot,d=l.botstatus,u=l.active,s=d.mode,m=d.loca,p=d.load,f=d.powr,h=d.dest,C=d.home,N=d.retn,b=d.pick;switch(s){case 0:n="Ready";break;case 1:n="Loading/Unloading";break;case 2:case 12:n="Navigating to delivery location";break;case 3:n="Navigating to Home";break;case 4:n="Waiting for clear path";break;case 5:case 6:n="Calculating navigation path";break;case 7:n="Unable to locate destination";break;default:n=s}return(0,o.createComponentVNode)(2,a.Section,{title:u,children:[-1===s&&(0,o.createComponentVNode)(2,a.Box,{color:"red",bold:!0,children:"Waiting for response..."}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:n}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:[f,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:C}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:(0,o.createComponentVNode)(2,a.Button,{content:h?h+" (Set)":"None (Set)",onClick:function(){return i("SetDest")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Load",children:(0,o.createComponentVNode)(2,a.Button,{content:p?p+" (Unload)":"None",disabled:!p,onClick:function(){return i("Unload")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auto Pickup",children:(0,o.createComponentVNode)(2,a.Button,{content:b?"Yes":"No",selected:b,onClick:function(){return i("SetAutoPickup",{autoPickupType:b?"pickoff":"pickon"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Auto Return",children:(0,o.createComponentVNode)(2,a.Button,{content:N?"Yes":"No",selected:N,onClick:function(){return i("SetAutoReturn",{autoReturnType:N?"retoff":"reton"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Controls",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Stop",icon:"stop",onClick:function(){return i("Stop")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Proceed",icon:"play",onClick:function(){return i("Start")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Return Home",icon:"home",onClick:function(){return i("ReturnHome")}})]})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_notes=void 0;var o=n(0),r=n(1),a=n(2);t.pda_notes=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.note;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Section,{children:i}),(0,o.createComponentVNode)(2,a.Button,{icon:"pen",onClick:function(){return c("Edit")},content:"Edit"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_power=void 0;var o=n(0),r=n(1),a=n(188);t.pda_power=function(e,t){var n=(0,r.useBackend)(t);n.act,n.data;return(0,o.createComponentVNode)(2,a.PowerMonitorMainContent)}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_secbot=void 0;var o=n(0),r=n(1),a=n(2);t.pda_secbot=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data.beepsky.active);return(0,o.createComponentVNode)(2,a.Box,{children:l?(0,o.createComponentVNode)(2,i):(0,o.createComponentVNode)(2,c)})};var c=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.beepsky.bots;return(0,o.createComponentVNode)(2,a.Box,{children:[i.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:e.Name,icon:"cog",onClick:function(){return c("AccessBot",{uid:e.uid})}})},e.Name)})),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"rss",content:"Re-scan for bots",onClick:function(){return c("Rescan")}})})]})},i=function(e,t){var n,c=(0,r.useBackend)(t),i=c.act,l=c.data.beepsky,d=l.botstatus,u=l.active,s=d.mode,m=d.loca;switch(s){case 0:n="Ready";break;case 1:n="Apprehending target";break;case 2:case 3:n="Arresting target";break;case 4:n="Starting patrol";break;case 5:n="On patrol";break;case 6:n="Responding to summons"}return(0,o.createComponentVNode)(2,a.Section,{title:u,children:[-1===s&&(0,o.createComponentVNode)(2,a.Box,{color:"red",bold:!0,children:"Waiting for response..."}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:n}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Controls",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Go",icon:"play",onClick:function(){return i("Go")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stop",icon:"stop",onClick:function(){return i("Stop")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Summon",icon:"arrow-down",onClick:function(){return i("Summon")}})]})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_security=void 0;var o=n(0),r=n(1),a=n(96);t.pda_security=function(e,t){var n=(0,r.useBackend)(t).data;return(0,o.createComponentVNode)(2,a.SimpleRecords,{data:n,recordType:"SEC"})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_signaler=void 0;var o=n(0),r=n(1),a=n(187);t.pda_signaler=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data);return(0,o.createComponentVNode)(2,a.Signaler,{data:c})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_status_display=void 0;var o=n(0),r=n(1),a=n(2);t.pda_status_display=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.records;return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Code",children:[(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"trash",content:"Clear",onClick:function(){return c("Status",{statdisp:"blank"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"clock",content:"Evac ETA",onClick:function(){return c("Status",{statdisp:"shuttle"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"edit",content:"Message",onClick:function(){return c("Status",{statdisp:"message"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"exclamation-triangle",content:"Red Alert",onClick:function(){return c("Status",{statdisp:"alert",alert:"redalert"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"boxes",content:"NT Logo",onClick:function(){return c("Status",{statdisp:"alert",alert:"default"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"lock",content:"Lockdown",onClick:function(){return c("Status",{statdisp:"alert",alert:"lockdown"})}}),(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"biohazard",content:"Biohazard",onClick:function(){return c("Status",{statdisp:"alert",alert:"biohazard"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message line 1",children:(0,o.createComponentVNode)(2,a.Button,{content:i.message1+" (set)",icon:"pen",onClick:function(){return c("Status",{statdisp:"setmsg1"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message line 2",children:(0,o.createComponentVNode)(2,a.Button,{content:i.message2+" (set)",icon:"pen",onClick:function(){return c("Status",{statdisp:"setmsg2"})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.pda_supplyrecords=void 0;var o=n(0),r=n(1),a=n(2);t.pda_supplyrecords=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.supply),i=c.shuttle_loc,l=c.shuttle_time,d=c.shuttle_moving,u=c.approved,s=c.approved_count,m=c.requests,p=c.requests_count;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shuttle Status",children:d?(0,o.createComponentVNode)(2,a.Box,{children:["In transit ",l]}):(0,o.createComponentVNode)(2,a.Box,{children:i})})}),(0,o.createComponentVNode)(2,a.Section,{mt:1,title:"Requested Orders",children:p>0&&m.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["#",e.Number,' - "',e.Name,'" for "',e.OrderedBy,'"']},e)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Approved Orders",children:s>0&&u.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["#",e.Number,' - "',e.Name,'" for "',e.ApprovedBy,'"']},e)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Pacman=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(95);t.Pacman=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.broken,s=d.anchored,m=d.active,p=d.fuel_type,f=d.fuel_usage,h=d.fuel_stored,C=d.fuel_cap,N=d.is_ai,b=d.tmp_current,g=d.tmp_max,V=d.tmp_overheat,v=d.output_max,y=d.power_gen,_=d.output_set,x=d.has_fuel,k=h/C,L=b/g,B=_*y,w=Math.round(h/f),S=Math.round(w/60),I=w>120?S+" minutes":w+" seconds";return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(u||!s)&&(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:[!!u&&(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"The generator is malfunctioning!"}),!u&&!s&&(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"The generator needs to be anchored to the floor with a wrench."})]}),!u&&!!s&&(0,o.createVNode)(1,"div",null,[(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",content:m?"On":"Off",tooltip:"Toggles the generator on/off. Requires fuel.",tooltipPosition:"left",disabled:!x,selected:m,onClick:function(){return l("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"50%",className:"ml-1",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power setting",children:[(0,o.createComponentVNode)(2,a.NumberInput,{value:_,minValue:1,maxValue:v,step:1,className:"mt-1",onDrag:function(e,t){return l("change_power",{change_power:t})}}),"(",(0,i.formatPower)(B),")"]})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"50%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:L,ranges:{green:[-Infinity,.33],orange:[.33,.66],red:[.66,Infinity]},children:[b," \u2103"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[V>50&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"CRITICAL OVERHEAT!"}),V>20&&V<=50&&(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"WARNING: Overheating!"}),V>1&&V<=20&&(0,o.createComponentVNode)(2,a.Box,{color:"orange",children:"Temperature High"}),0===V&&(0,o.createComponentVNode)(2,a.Box,{color:"green",children:"Optimal"})]})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Fuel",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Fuel",tooltip:"Ejects fuel. Generator needs to be offline.",tooltipPosition:"left",disabled:m||N||!x,onClick:function(){return l("eject_fuel")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Type",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Fuel level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:k,ranges:{red:[-Infinity,.33],orange:[.33,.66],green:[.66,Infinity]},children:[Math.round(h/1e3)," dm\xb3"]})})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Fuel usage",children:[f/1e3," dm\xb3/s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Fuel depletion",children:[!!x&&(f?I:"N/A"),!x&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Out of fuel"})]})]})})]})})],4)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.PersonalCrafting=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.busy,m=u.category,p=u.display_craftable_only,f=u.display_compact,h=u.prev_cat,C=u.next_cat,N=u.subcategory,b=u.prev_subcat,g=u.next_subcat;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!!s&&(0,o.createComponentVNode)(2,a.Dimmer,{fontSize:"32px",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"cog",spin:1})," Crafting..."]}),(0,o.createComponentVNode)(2,a.Section,{title:m,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Show Craftable Only",icon:p?"check-square-o":"square-o",selected:p,onClick:function(){return d("toggle_recipes")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Compact Mode",icon:f?"check-square-o":"square-o",selected:f,onClick:function(){return d("toggle_compact")}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:h,icon:"arrow-left",onClick:function(){return d("backwardCat")}}),(0,o.createComponentVNode)(2,a.Button,{content:C,icon:"arrow-right",onClick:function(){return d("forwardCat")}})]}),N&&(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:b,icon:"arrow-left",onClick:function(){return d("backwardSubCat")}}),(0,o.createComponentVNode)(2,a.Button,{content:g,icon:"arrow-right",onClick:function(){return d("forwardSubCat")}})]}),f?(0,o.createComponentVNode)(2,i):(0,o.createComponentVNode)(2,l)]})]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.display_craftable_only,d=i.can_craft,u=i.cant_craft;return(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[(0,o.createComponentVNode)(2,a.Button,{icon:"hammer",content:"Craft",onClick:function(){return c("make",{make:e.ref})}}),e.catalyst_text&&(0,o.createComponentVNode)(2,a.Button,{tooltip:e.catalyst_text,content:"Catalysts",color:"transparent"}),(0,o.createComponentVNode)(2,a.Button,{tooltip:e.req_text,content:"Requirements",color:"transparent"}),e.tool_text&&(0,o.createComponentVNode)(2,a.Button,{tooltip:e.tool_text,content:"Tools",color:"transparent"})]},e.name)})),!l&&u.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[(0,o.createComponentVNode)(2,a.Button,{icon:"hammer",content:"Craft",disabled:!0}),e.catalyst_text&&(0,o.createComponentVNode)(2,a.Button,{tooltip:e.catalyst_text,content:"Catalysts",color:"transparent"}),(0,o.createComponentVNode)(2,a.Button,{tooltip:e.req_text,content:"Requirements",color:"transparent"}),e.tool_text&&(0,o.createComponentVNode)(2,a.Button,{tooltip:e.tool_text,content:"Tools",color:"transparent"})]},e.name)}))]})})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.display_craftable_only,d=i.can_craft,u=i.cant_craft;return(0,o.createComponentVNode)(2,a.Box,{mt:1,children:[d.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"hammer",content:"Craft",onClick:function(){return c("make",{make:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.catalyst_text&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Catalysts",children:e.catalyst_text}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Requirements",children:e.req_text}),e.tool_text&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tools",children:e.tool_text})]})},e.name)})),!l&&u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"hammer",content:"Craft",disabled:!0}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.catalyst_text&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Catalysts",children:e.catalyst_text}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Requirements",children:e.req_text}),e.tool_text&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tools",children:e.tool_text})]})},e.name)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.PodTracking=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.PodTracking=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.pods);return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Position",children:[e.podx,", ",e.pody,", ",e.podz]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pilot",children:e.pilot}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Passengers",children:e.passengers})]})},e.name)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.PoolController=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);var i={scalding:{label:"Scalding",color:"#FF0000",icon:"fa fa-arrow-circle-up",requireEmag:!0},warm:{label:"Warm",color:"#990000",icon:"fa fa-arrow-circle-up"},normal:{label:"Normal",color:null,icon:"fa fa-arrow-circle-right"},cool:{label:"Cool",color:"#009999",icon:"fa fa-arrow-circle-down"},frigid:{label:"Frigid",color:"#00CCCC",icon:"fa fa-arrow-circle-down",requireEmag:!0}},l=function(e,t){var n=e.tempKey,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["tempKey"]),l=i[n];if(!l)return null;var d=(0,r.useBackend)(t),u=d.data,s=d.act,m=u.currentTemp,p=l.label,f=l.icon,h=n===m;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({selected:h,onClick:function(){s("setTemp",{temp:n})}},c,{children:[(0,o.createComponentVNode)(2,a.Icon,{name:f}),p]})))};t.PoolController=function(e,t){for(var n=(0,r.useBackend)(t).data,d=n.emagged,u=n.currentTemp,s=i[u]||i.normal,m=s.label,p=s.color,f=[],h=0,C=Object.entries(i);h0?"envelope-open-text":"envelope",onClick:function(){return i("setScreen",{setScreen:6})}})}),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Request Assistance",icon:"hand-paper",onClick:function(){return i("setScreen",{setScreen:1})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Request Supplies",icon:"box",onClick:function(){return i("setScreen",{setScreen:2})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Relay Anonymous Information",icon:"comment",onClick:function(){return i("setScreen",{setScreen:3})}})})]}),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Print Shipping Label",icon:"tag",onClick:function(){return i("setScreen",{setScreen:9})}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"View Shipping Logs",icon:"clipboard-list",onClick:function(){return i("setScreen",{setScreen:10})}})})]}),!!u&&(0,o.createComponentVNode)(2,a.Box,{mt:2,children:(0,o.createComponentVNode)(2,a.Button,{content:"Send Station-Wide Announcement",icon:"bullhorn",onClick:function(){return i("setScreen",{setScreen:8})}})}),(0,o.createComponentVNode)(2,a.Box,{mt:2,children:(0,o.createComponentVNode)(2,a.Button,{content:s?"Speaker Off":"Speaker On",selected:!s,icon:s?"volume-mute":"volume-up",onClick:function(){return i("toggleSilent")}})})]})},l=function(e,t){var n,c,i=(0,r.useBackend)(t),l=i.act,d=i.data,u=d.department;switch(e.purpose){case"ASSISTANCE":n=d.assist_dept,c="Request assistance from another department";break;case"SUPPLIES":n=d.supply_dept,c="Request supplies from another department";break;case"INFO":n=d.info_dept,c="Relay information to another department"}return(0,o.createComponentVNode)(2,a.Section,{title:c,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return l("setScreen",{setScreen:0})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:n.filter((function(e){return e!==u})).map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e,children:[(0,o.createComponentVNode)(2,a.Button,{content:"Message",icon:"envelope",onClick:function(){return l("writeInput",{write:e,priority:1})}}),(0,o.createComponentVNode)(2,a.Button,{content:"High Priority",icon:"exclamation-circle",onClick:function(){return l("writeInput",{write:e,priority:2})}})]},e)}))})})},d=function(e,t){var n,c=(0,r.useBackend)(t),i=c.act;c.data;switch(e.type){case"SUCCESS":n="Message sent successfully";break;case"FAIL":n="Request supplies from another department"}return(0,o.createComponentVNode)(2,a.Section,{title:n,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return i("setScreen",{setScreen:0})}})})},u=function(e,t){var n,c,i=(0,r.useBackend)(t),l=i.act,d=i.data;switch(e.type){case"MESSAGES":n=d.message_log,c="Message Log";break;case"SHIPPING":n=d.shipping_log,c="Shipping label print log"}return(0,o.createComponentVNode)(2,a.Section,{title:c,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return l("setScreen",{setScreen:0})}}),children:n.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:[e.map((function(e,t){return(0,o.createVNode)(1,"div",null,e,0,null,t)})),(0,o.createVNode)(1,"hr")]},e)}))})},s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.recipient,d=i.message,u=i.msgVerified,s=i.msgStamped;return(0,o.createComponentVNode)(2,a.Section,{title:"Message Authentication",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return c("setScreen",{setScreen:0})}}),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Recipient",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Validated by",color:"green",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Stamped by",color:"blue",children:s})]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:1,textAlign:"center",content:"Send Message",icon:"envelope",onClick:function(){return c("department",{department:l})}})]})},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.message,d=i.announceAuth;return(0,o.createComponentVNode)(2,a.Section,{title:"Station-Wide Announcement",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return c("setScreen",{setScreen:0})}}),children:[(0,o.createComponentVNode)(2,a.Button,{content:l||"Edit Message",icon:"edit",onClick:function(){return c("writeAnnouncement")}}),d?(0,o.createComponentVNode)(2,a.Box,{mt:1,color:"green",children:"ID verified. Authentication accepted."}):(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"Swipe your ID card to authenticate yourself."}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:1,textAlign:"center",content:"Send Announcement",icon:"bullhorn",disabled:!(d&&l),onClick:function(){return c("sendAnnouncement")}})]})},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.shipDest,d=i.msgVerified,u=i.ship_dept;return(0,o.createComponentVNode)(2,a.Section,{title:"Print Shipping Label",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Back",icon:"arrow-left",onClick:function(){return c("setScreen",{setScreen:0})}}),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Validated by",children:d})]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:1,textAlign:"center",content:"Print Label",icon:"print",disabled:!(l&&d),onClick:function(){return c("printLabel")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Destinations",mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e,children:(0,o.createComponentVNode)(2,a.Button,{content:l===e?"Selected":"Select",selected:l===e,onClick:function(){return c("shipSelect",{shipSelect:e})}})},e)}))})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CurrentLevels=void 0;var o=n(0),r=n(1),a=n(2);t.CurrentLevels=function(e,t){var n=(0,r.useBackend)(t).data.tech_levels;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createVNode)(1,"h3",null,"Current Research Levels:",16),n.map((function(e,t){var n=e.name,r=e.level,c=e.desc;return(0,o.createComponentVNode)(2,a.Box,{children:[t>0?(0,o.createComponentVNode)(2,a.Divider):null,(0,o.createComponentVNode)(2,a.Box,{children:n}),(0,o.createComponentVNode)(2,a.Box,{children:["* Level: ",r]}),(0,o.createComponentVNode)(2,a.Box,{children:["* Summary: ",c]})]},n)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.DataDiskMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(50),i=n(62),l=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.disk_data;return l?(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Level",children:l.level}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:l.desc})]}),(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){return i("updt_tech")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Disk",icon:"trash",onClick:function(){return i("clear_tech")}}),(0,o.createComponentVNode)(2,s)]})]}):null},d=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.disk_data;if(!l)return null;var d=l.name,u=l.lathe_types,m=l.materials,p=u.join(", ");return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d}),p?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Lathe Types",children:p}):null,(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Required Materials"})]}),m.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["- ",(0,o.createVNode)(1,"span",null,e.name,0,{style:{"text-transform":"capitalize"}})," x ",e.amount]},e.name)})),(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){return i("updt_design")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Disk",icon:"trash",onClick:function(){return i("clear_design")}}),(0,o.createComponentVNode)(2,s)]})]})},u=function(e,t){var n=(0,r.useBackend)(t).data.disk_type;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{children:"This disk is empty."}),(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:[(0,o.createComponentVNode)(2,c.RndNavButton,{submenu:i.SUBMENU.DISK_COPY,icon:"arrow-down",content:"tech"===n?"Load Tech to Disk":"Load Design to Disk"}),(0,o.createComponentVNode)(2,s)]})]})},s=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.disk_type;return l?(0,o.createComponentVNode)(2,a.Button,{content:"Eject Disk",icon:"eject",onClick:function(){i("tech"===l?"eject_tech":"eject_design")}}):null},m=function(e,t){var n=(0,r.useBackend)(t).data,c=n.disk_data,i=n.disk_type;return(0,o.createComponentVNode)(2,a.Section,{title:"Data Disk Contents",children:function(){if(!c)return(0,o.createComponentVNode)(2,u);switch(i){case"design":return(0,o.createComponentVNode)(2,d);case"tech":return(0,o.createComponentVNode)(2,l);default:return null}}()})},p=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.disk_type,d=c.to_copy;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Box,{overflowY:"auto",overflowX:"hidden",maxHeight:"450px",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.sort((function(e,t){return e.name.localeCompare(t.name)})).map((function(e){var t=e.name,n=e.id;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{noColon:!0,label:t,children:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-down",content:"Copy to Disk",onClick:function(){i("tech"===l?"copy_tech":"copy_design",{id:n})}})},n)}))})})})};t.DataDiskMenu=function(e,t){return(0,r.useBackend)(t).data.disk_type?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.RndRoute,{submenu:i.SUBMENU.MAIN,render:function(){return(0,o.createComponentVNode)(2,m)}}),(0,o.createComponentVNode)(2,c.RndRoute,{submenu:i.SUBMENU.DISK_COPY,render:function(){return(0,o.createComponentVNode)(2,p)}})],4):null}},function(e,t,n){"use strict";t.__esModule=!0,t.DeconstructionMenu=void 0;var o=n(0),r=n(1),a=n(2);t.DeconstructionMenu=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.loaded_item;return c.linked_destroy?l?(0,o.createComponentVNode)(2,a.Section,{noTopPadding:!0,title:"Deconstruction Menu",children:[(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:["Name: ",l.name]}),(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:(0,o.createVNode)(1,"h3",null,"Origin Tech:",16)}),(0,o.createComponentVNode)(2,a.LabeledList,{children:l.origin_tech.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"* "+e.name,children:[e.object_level," ",e.current_level?(0,o.createFragment)([(0,o.createTextVNode)("(Current: "),e.current_level,(0,o.createTextVNode)(")")],0):null]},e.name)}))}),(0,o.createComponentVNode)(2,a.Box,{mt:"10px",children:(0,o.createVNode)(1,"h3",null,"Options:",16)}),(0,o.createComponentVNode)(2,a.Button,{content:"Deconstruct Item",icon:"unlink",onClick:function(){i("deconstruct")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Eject Item",icon:"eject",onClick:function(){i("eject_item")}})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Deconstruction Menu",children:"No item loaded. Standing by..."}):(0,o.createComponentVNode)(2,a.Box,{children:"NO DESTRUCTIVE ANALYZER LINKED TO CONSOLE"})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheCategory=void 0;var o=n(0),r=n(1),a=n(2),c=n(50);t.LatheCategory=function(e,t){var n=(0,r.useBackend)(t),i=n.data,l=n.act,d=i.category,u=i.matching_designs,s=4===i.menu?"build":"imprint";return(0,o.createComponentVNode)(2,a.Section,{title:d,children:[(0,o.createComponentVNode)(2,c.LatheMaterials),(0,o.createComponentVNode)(2,a.Table,{className:"RndConsole__LatheCategory__MatchingDesigns",children:u.map((function(e){var t=e.id,n=e.name,r=e.can_build,c=e.materials;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:n,disabled:r<1,onClick:function(){return l(s,{id:t,amount:1})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:r>=5?(0,o.createComponentVNode)(2,a.Button,{content:"x5",onClick:function(){return l(s,{id:t,amount:5})}}):null}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:r>=10?(0,o.createComponentVNode)(2,a.Button,{content:"x10",onClick:function(){return l(s,{id:t,amount:10})}}):null}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:c.map((function(e){return(0,o.createFragment)([" | ",(0,o.createVNode)(1,"span",e.is_red?"color-red":null,[e.amount,(0,o.createTextVNode)(" "),e.name],0)],0)}))})]},t)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheChemicalStorage=void 0;var o=n(0),r=n(1),a=n(2);t.LatheChemicalStorage=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.loaded_chemicals,d=4===c.menu;return(0,o.createComponentVNode)(2,a.Section,{title:"Chemical Storage",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Purge All",icon:"trash",onClick:function(){i(d?"disposeallP":"disposeallI")}}),(0,o.createComponentVNode)(2,a.LabeledList,{children:l.map((function(e){var t=e.volume,n=e.name,r=e.id;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"* "+t+" of "+n,children:(0,o.createComponentVNode)(2,a.Button,{content:"Purge",icon:"trash",onClick:function(){i(d?"disposeP":"disposeI",{id:r})}})},r)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheMainMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(50);t.LatheMainMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.data,l=n.act,d=i.menu,u=i.categories,s=4===d?"Protolathe":"Circuit Imprinter";return(0,o.createComponentVNode)(2,a.Section,{title:s+" Menu",children:[(0,o.createComponentVNode)(2,c.LatheMaterials),(0,o.createComponentVNode)(2,c.LatheSearch),(0,o.createComponentVNode)(2,a.Divider),(0,o.createComponentVNode)(2,a.Flex,{wrap:"wrap",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Flex,{style:{"flex-basis":"50%","margin-bottom":"6px"},children:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-right",content:e,onClick:function(){l("setCategory",{category:e})}})},e)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheMaterials=void 0;var o=n(0),r=n(1),a=n(2);t.LatheMaterials=function(e,t){var n=(0,r.useBackend)(t).data,c=n.total_materials,i=n.max_materials,l=n.max_chemicals,d=n.total_chemicals;return(0,o.createComponentVNode)(2,a.Box,{className:"RndConsole__LatheMaterials",mb:"10px",children:(0,o.createComponentVNode)(2,a.Table,{width:"auto",children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Material Amount:"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:c}),i?(0,o.createComponentVNode)(2,a.Table.Cell,{children:" / "+i}):null]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Chemical Amount:"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:d}),l?(0,o.createComponentVNode)(2,a.Table.Cell,{children:" / "+l}):null]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheMaterialStorage=void 0;var o=n(0),r=n(1),a=n(2);t.LatheMaterialStorage=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,l=c.loaded_materials;return(0,o.createComponentVNode)(2,a.Section,{className:"RndConsole__LatheMaterialStorage",title:"Material Storage",children:(0,o.createComponentVNode)(2,a.Table,{children:l.map((function(e){var t=e.id,n=e.amount,r=e.name,l=function(e){var n=4===c.menu?"lathe_ejectsheet":"imprinter_ejectsheet";i(n,{id:t,amount:e})},d=Math.floor(n/2e3),u=n<1,s=1===d?"":"s";return(0,o.createComponentVNode)(2,a.Table.Row,{className:u?"color-grey":"color-yellow",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{minWidth:"210px",children:["* ",n," of ",r]}),(0,o.createComponentVNode)(2,a.Table.Cell,{minWidth:"110px",children:["(",d," sheet",s,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:n>=2e3?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"1x",icon:"eject",onClick:function(){return l(1)}}),(0,o.createComponentVNode)(2,a.Button,{content:"C",icon:"eject",onClick:function(){return l("custom")}}),n>=1e4?(0,o.createComponentVNode)(2,a.Button,{content:"5x",icon:"eject",onClick:function(){return l(5)}}):null,(0,o.createComponentVNode)(2,a.Button,{content:"All",icon:"eject",onClick:function(){return l(50)}})],0):null})]},t)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheMenu=void 0;var o=n(0),r=n(1),a=n(189),c=n(50),i=n(2),l=n(62);t.LatheMenu=function(e,t){var n=(0,r.useBackend)(t).data,d=n.menu,u=n.linked_lathe,s=n.linked_imprinter;return 4!==d||u?5!==d||s?(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,a.RndRoute,{submenu:l.SUBMENU.MAIN,render:function(){return(0,o.createComponentVNode)(2,c.LatheMainMenu)}}),(0,o.createComponentVNode)(2,a.RndRoute,{submenu:l.SUBMENU.LATHE_CATEGORY,render:function(){return(0,o.createComponentVNode)(2,c.LatheCategory)}}),(0,o.createComponentVNode)(2,a.RndRoute,{submenu:l.SUBMENU.LATHE_MAT_STORAGE,render:function(){return(0,o.createComponentVNode)(2,c.LatheMaterialStorage)}}),(0,o.createComponentVNode)(2,a.RndRoute,{submenu:l.SUBMENU.LATHE_CHEM_STORAGE,render:function(){return(0,o.createComponentVNode)(2,c.LatheChemicalStorage)}})]}):(0,o.createComponentVNode)(2,i.Box,{children:"NO CIRCUIT IMPRITER LINKED TO CONSOLE"}):(0,o.createComponentVNode)(2,i.Box,{children:"NO PROTOLATHE LINKED TO CONSOLE"})}},function(e,t,n){"use strict";t.__esModule=!0,t.LatheSearch=void 0;var o=n(0),r=n(1),a=n(2);t.LatheSearch=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Input,{placeholder:"Search...",onChange:function(e,t){return n("search",{to_search:t})}})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MainMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(50),i=n(62);t.MainMenu=function(e,t){var n=(0,r.useBackend)(t).data,l=n.disk_type,d=n.linked_destroy,u=n.linked_lathe,s=n.linked_imprinter,m=n.tech_levels;return(0,o.createComponentVNode)(2,a.Section,{title:"Main Menu",children:[(0,o.createComponentVNode)(2,a.Flex,{className:"RndConsole__MainMenu__Buttons",direction:"column",align:"flex-start",children:[(0,o.createComponentVNode)(2,c.RndNavButton,{disabled:!l,menu:i.MENU.DISK,submenu:i.SUBMENU.MAIN,icon:"save",content:"Disk Operations"}),(0,o.createComponentVNode)(2,c.RndNavButton,{disabled:!d,menu:i.MENU.DESTROY,submenu:i.SUBMENU.MAIN,icon:"unlink",content:"Destructive Analyzer Menu"}),(0,o.createComponentVNode)(2,c.RndNavButton,{disabled:!u,menu:i.MENU.LATHE,submenu:i.SUBMENU.MAIN,icon:"print",content:"Protolathe Menu"}),(0,o.createComponentVNode)(2,c.RndNavButton,{disabled:!s,menu:i.MENU.IMPRINTER,submenu:i.SUBMENU.MAIN,icon:"print",content:"Circuit Imprinter Menu"}),(0,o.createComponentVNode)(2,c.RndNavButton,{menu:i.MENU.SETTINGS,submenu:i.SUBMENU.MAIN,icon:"cog",content:"Settings"})]}),(0,o.createComponentVNode)(2,a.Box,{mt:"12px"}),(0,o.createVNode)(1,"h3",null,"Current Research Levels:",16),(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){var t=e.name,n=e.level;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,children:n},t)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.RndNavbar=void 0;var o=n(0),r=n(50),a=n(2),c=n(62);t.RndNavbar=function(){return(0,o.createComponentVNode)(2,a.Box,{className:"RndConsole__RndNavbar",children:[(0,o.createComponentVNode)(2,r.RndRoute,{menu:function(e){return e!==c.MENU.MAIN},render:function(){return(0,o.createComponentVNode)(2,r.RndNavButton,{menu:c.MENU.MAIN,submenu:c.SUBMENU.MAIN,icon:"reply",content:"Main Menu"})}}),(0,o.createComponentVNode)(2,r.RndRoute,{submenu:function(e){return e!==c.SUBMENU.MAIN},render:function(){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,r.RndRoute,{menu:c.MENU.DISK,render:function(){return(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.MAIN,icon:"reply",content:"Disk Operations Menu"})}}),(0,o.createComponentVNode)(2,r.RndRoute,{menu:c.MENU.LATHE,render:function(){return(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.MAIN,icon:"reply",content:"Protolathe Menu"})}}),(0,o.createComponentVNode)(2,r.RndRoute,{menu:c.MENU.IMPRINTER,render:function(){return(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.MAIN,icon:"reply",content:"Circuit Imprinter Menu"})}}),(0,o.createComponentVNode)(2,r.RndRoute,{menu:c.MENU.SETTINGS,render:function(){return(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.MAIN,icon:"reply",content:"Settings Menu"})}})]})}}),(0,o.createComponentVNode)(2,r.RndRoute,{menu:function(e){return e===c.MENU.LATHE||e===c.MENU.IMPRINTER},submenu:c.SUBMENU.MAIN,render:function(){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.LATHE_MAT_STORAGE,icon:"arrow-up",content:"Material Storage"}),(0,o.createComponentVNode)(2,r.RndNavButton,{submenu:c.SUBMENU.LATHE_CHEM_STORAGE,icon:"arrow-up",content:"Chemical Storage"})]})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.RndNavButton=void 0;var o=n(0),r=n(1),a=n(2);t.RndNavButton=function(e,t){var n=e.icon,c=e.children,i=e.disabled,l=e.content,d=(0,r.useBackend)(t),u=d.data,s=d.act,m=u.menu,p=u.submenu,f=m,h=p;return null!==e.menu&&e.menu!==undefined&&(f=e.menu),null!==e.submenu&&e.submenu!==undefined&&(h=e.submenu),(0,o.createComponentVNode)(2,a.Button,{content:l,icon:n,disabled:i,onClick:function(){s("nav",{menu:f,submenu:h})},children:c})}},function(e,t,n){"use strict";t.__esModule=!0,t.SettingsMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(50),i=n(62);t.SettingsMenu=function(e,t){var n=(0,r.useBackend)(t),l=n.data,d=n.act,u=l.sync,s=l.admin,m=l.linked_destroy,p=l.linked_lathe,f=l.linked_imprinter;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,c.RndRoute,{submenu:i.SUBMENU.MAIN,render:function(){return(0,o.createComponentVNode)(2,a.Section,{title:"Settings",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",align:"flex-start",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Sync Database with Network",icon:"sync",disabled:!u,onClick:function(){d("sync")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Connect to Research Network",icon:"plug",disabled:u,onClick:function(){d("togglesync")}}),(0,o.createComponentVNode)(2,a.Button,{disabled:!u,icon:"unlink",content:"Disconnect from Research Network",onClick:function(){d("togglesync")}}),(0,o.createComponentVNode)(2,c.RndNavButton,{disabled:!u,content:"Device Linkage Menu",icon:"link",menu:i.MENU.SETTINGS,submenu:i.SUBMENU.SETTINGS_DEVICES}),1===s?(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation",content:"[ADMIN] Maximize Research Levels",onClick:function(){return d("maxresearch")}}):null]})})}}),(0,o.createComponentVNode)(2,c.RndRoute,{submenu:i.SUBMENU.SETTINGS_DEVICES,render:function(){return(0,o.createComponentVNode)(2,a.Section,{title:"Device Linkage Menu",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"link",content:"Re-sync with Nearby Devices",onClick:function(){return d("find_device")}}),(0,o.createComponentVNode)(2,a.Box,{mt:"5px",children:(0,o.createVNode)(1,"h3",null,"Linked Devices:",16)}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[m?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"* Destructive Analyzer",children:(0,o.createComponentVNode)(2,a.Button,{icon:"unlink",content:"Unlink",onClick:function(){return d("disconnect",{item:"destroy"})}})}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{noColon:!0,label:"* No Destructive Analyzer Linked"}),p?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"* Protolathe",children:(0,o.createComponentVNode)(2,a.Button,{icon:"unlink",content:"Unlink",onClick:function(){d("disconnect",{item:"lathe"})}})}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{noColon:!0,label:"* No Protolathe Linked"}),f?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"* Circuit Imprinter",children:(0,o.createComponentVNode)(2,a.Button,{icon:"unlink",content:"Unlink",onClick:function(){return d("disconnect",{item:"imprinter"})}})}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{noColon:!0,label:"* No Circuit Imprinter Linked"})]})]})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.RobotSelfDiagnosis=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(19),l=function(e,t){var n=e/t;return n<=.2?"good":n<=.5?"average":"bad"};t.RobotSelfDiagnosis=function(e,t){var n=(0,r.useBackend)(t).data.component_data;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:n.map((function(e,t){return(0,o.createComponentVNode)(2,a.Section,{title:(0,i.capitalize)(e.name),children:e.installed<=0?(0,o.createComponentVNode)(2,a.NoticeBox,{m:-.5,height:3.5,color:"red",style:{"font-style":"normal"},children:(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,textAlign:"center",align:"center",color:"#e8e8e8",children:-1===e.installed?"Destroyed":"Missing"})})}):(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"72%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brute Damage",color:l(e.brute_damage,e.max_damage),children:e.brute_damage}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Burn Damage",color:l(e.electronic_damage,e.max_damage),children:e.electronic_damage})]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"50%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Powered",color:e.powered?"good":"bad",children:e.powered?"Yes":"No"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Enabled",color:e.status?"good":"bad",children:e.status?"Yes":"No"})]})})]})},t)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RoboticsControlConsole=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.RoboticsControlConsole=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.can_hack,s=d.safety,m=d.show_detonate_all,p=d.cyborgs,f=void 0===p?[]:p;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!!m&&(0,o.createComponentVNode)(2,a.Section,{title:"Emergency Self Destruct",children:[(0,o.createComponentVNode)(2,a.Button,{icon:s?"lock":"unlock",content:s?"Disable Safety":"Enable Safety",selected:s,onClick:function(){return l("arm",{})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bomb",disabled:s,content:"Destroy ALL Cyborgs",color:"bad",onClick:function(){return l("nuke",{})}})]}),(0,o.createComponentVNode)(2,i,{cyborgs:f,can_hack:u})]})})};var i=function(e,t){var n=e.cyborgs,c=(e.can_hack,(0,r.useBackend)(t)),i=c.act,l=c.data;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createFragment)([!!e.hackable&&!e.emagged&&(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){return i("hackbot",{uid:e.uid})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:e.locked_down?"unlock":"lock",color:e.locked_down?"good":"default",content:e.locked_down?"Release":"Lockdown",disabled:!l.auth,onClick:function(){return i("stopbot",{uid:e.uid})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",disabled:!l.auth,color:"bad",onClick:function(){return i("killbot",{uid:e.uid})}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:(0,o.createComponentVNode)(2,a.Box,{children:e.locstring})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:e.health>50?"good":"bad",value:e.health/100})}),"number"==typeof e.charge&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:e.charge>30?"good":"bad",value:e.charge/100})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell Capacity",children:(0,o.createComponentVNode)(2,a.Box,{color:e.cell_capacity<3e4?"average":"good",children:e.cell_capacity})})],4)||(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Power Cell"})}),!!e.is_hacked&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safeties",children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"DISABLED"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:(0,o.createComponentVNode)(2,a.Box,{color:e.synchronization?"default":"average",children:e.synchronization||"None"})})]})},e.uid)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cyborg units detected within access parameters."})}},function(e,t,n){"use strict";t.__esModule=!0,t.Safe=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.Safe=function(e,t){var n=(0,r.useBackend)(t),u=(n.act,n.data),s=u.dial,m=u.open;u.locked,u.contents;return(0,o.createComponentVNode)(2,c.Window,{theme:"safe",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Box,{className:"Safe--engraving",children:[(0,o.createComponentVNode)(2,i),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{className:"Safe--engraving--hinge",top:"25%"}),(0,o.createComponentVNode)(2,a.Box,{className:"Safe--engraving--hinge",top:"75%"})]}),(0,o.createComponentVNode)(2,a.Icon,{className:"Safe--engraving--arrow",name:"long-arrow-alt-down",size:"3"}),(0,o.createVNode)(1,"br"),m?(0,o.createComponentVNode)(2,l):(0,o.createComponentVNode)(2,a.Box,{as:"img",className:"Safe--dial",src:"safe_dial.png",style:{transform:"rotate(-"+3.6*s+"deg)","z-index":0}})]}),!m&&(0,o.createComponentVNode)(2,d)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.dial,d=i.open,u=i.locked,s=function(e,t){return(0,o.createComponentVNode)(2,a.Button,{disabled:d||t&&!u,icon:"arrow-"+(t?"right":"left"),content:(t?"Right":"Left")+" "+e,iconRight:t,onClick:function(){return c(t?"turnleft":"turnright",{num:e})},style:{"z-index":10}})};return(0,o.createComponentVNode)(2,a.Box,{className:"Safe--dialer",children:[(0,o.createComponentVNode)(2,a.Button,{disabled:u,icon:d?"lock":"lock-open",content:d?"Close":"Open",mb:"0.5rem",onClick:function(){return c("open")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Box,{position:"absolute",children:[s(50),s(10),s(1)]}),(0,o.createComponentVNode)(2,a.Box,{className:"Safe--dialer--right",position:"absolute",right:"5px",children:[s(1,!0),s(10,!0),s(50,!0)]}),(0,o.createComponentVNode)(2,a.Box,{className:"Safe--dialer--number",children:l})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.contents;return(0,o.createComponentVNode)(2,a.Box,{className:"Safe--contents",overflow:"auto",children:i.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{mb:"0.5rem",onClick:function(){return c("retrieve",{index:t+1})},children:[(0,o.createComponentVNode)(2,a.Box,{as:"img",src:e.sprite+".png",verticalAlign:"middle",ml:"-6px",mr:"0.5rem"}),e.name]}),(0,o.createVNode)(1,"br")],4,e)}))})},d=function(e,t){return(0,o.createComponentVNode)(2,a.Section,{className:"Safe--help",title:"Safe opening instructions (because you all keep forgetting)",children:[(0,o.createComponentVNode)(2,a.Box,{children:["1. Turn the dial left to the first number.",(0,o.createVNode)(1,"br"),"2. Turn the dial right to the second number.",(0,o.createVNode)(1,"br"),"3. Continue repeating this process for each number, switching between left and right each time.",(0,o.createVNode)(1,"br"),"4. Open the safe."]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:"To lock fully, turn the dial to the left after closing the safe."})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.SatelliteControl=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.satellites,u=l.notice,s=l.meteor_shield,m=l.meteor_shield_coverage,p=l.meteor_shield_coverage_max,f=l.meteor_shield_coverage_percentage;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[s&&(0,o.createComponentVNode)(2,a.Section,{title:"Station Shield Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:f>=100?"good":"average",value:m,maxValue:p,children:[f," %"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Network Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alert",color:"red",children:l.notice}),d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"#"+e.id,children:[e.mode," ",(0,o.createComponentVNode)(2,a.Button,{content:e.active?"Deactivate":"Activate",icon:"arrow-circle-right",onClick:function(){return i("toggle",{id:e.id})}})]},e.id)}))]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SecurityRecords=void 0;var o=n(0),r=n(19),a=n(1),c=n(2),i=n(75),l=n(4),d=n(49),u=n(132),s=n(133),m=n(136),p={"*Execute*":"execute","*Arrest*":"arrest",Incarcerated:"incarcerated",Parolled:"parolled",Released:"released",Demote:"demote",Search:"search",Monitor:"monitor"},f=function(e,t){(0,d.modalOpen)(e,"edit",{field:t.edit,value:t.value})};t.SecurityRecords=function(e,t){var n,r=(0,a.useBackend)(t),i=(r.act,r.data),p=i.loginState,f=i.currentPage;return p.logged_in?(1===f?n=(0,o.createComponentVNode)(2,C):2===f&&(n=(0,o.createComponentVNode)(2,g)),(0,o.createComponentVNode)(2,l.Window,{theme:"security",resizable:!0,children:[(0,o.createComponentVNode)(2,d.ComplexModal),(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:[(0,o.createComponentVNode)(2,u.LoginInfo),(0,o.createComponentVNode)(2,m.TemporaryNotice),(0,o.createComponentVNode)(2,h),(0,o.createComponentVNode)(2,c.Section,{height:"100%",flexGrow:"1",children:n})]})]})):(0,o.createComponentVNode)(2,l.Window,{theme:"security",resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{children:(0,o.createComponentVNode)(2,s.LoginScreen)})})};var h=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.currentPage,d=i.general;return(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:1===l,onClick:function(){return r("page",{page:1})},children:[(0,o.createComponentVNode)(2,c.Icon,{name:"list"}),"List Records"]}),2===l&&d&&!d.empty&&(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:2===l,children:[(0,o.createComponentVNode)(2,c.Icon,{name:"file"}),"Record: ",d.fields[0].value]})]})},C=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.records,d=(0,a.useLocalState)(t,"searchText",""),u=d[0],s=(d[1],(0,a.useLocalState)(t,"sortId","name")),m=s[0],f=(s[1],(0,a.useLocalState)(t,"sortOrder",!0)),h=f[0];f[1];return(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,b),(0,o.createComponentVNode)(2,c.Section,{flexGrow:"1",mt:"0.5rem",children:(0,o.createComponentVNode)(2,c.Table,{className:"SecurityRecords__list",children:[(0,o.createComponentVNode)(2,c.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,N,{id:"name",children:"Name"}),(0,o.createComponentVNode)(2,N,{id:"id",children:"ID"}),(0,o.createComponentVNode)(2,N,{id:"rank",children:"Assignment"}),(0,o.createComponentVNode)(2,N,{id:"fingerprint",children:"Fingerprint"}),(0,o.createComponentVNode)(2,N,{id:"status",children:"Criminal Status"})]}),l.filter((0,r.createSearch)(u,(function(e){return e.name+"|"+e.id+"|"+e.rank+"|"+e.fingerprint+"|"+e.status}))).sort((function(e,t){var n=h?1:-1;return e[m].localeCompare(t[m])*n})).map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"SecurityRecords__listRow--"+p[e.status],onClick:function(){return i("view",{uid_gen:e.uid_gen,uid_sec:e.uid_sec})},children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user"})," ",e.name]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.rank}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.fingerprint}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.status})]},e.id)}))]})})]})},N=function(e,t){var n=(0,a.useLocalState)(t,"sortId","name"),r=n[0],i=n[1],l=(0,a.useLocalState)(t,"sortOrder",!0),d=l[0],u=l[1],s=e.id,m=e.children;return(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{color:r!==s&&"transparent",width:"100%",onClick:function(){r===s?u(!d):(i(s),u(!0))},children:[m,r===s&&(0,o.createComponentVNode)(2,c.Icon,{name:d?"sort-up":"sort-down",ml:"0.25rem;"})]})})},b=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data.isPrinting,u=(0,a.useLocalState)(t,"searchText",""),s=(u[0],u[1]);return(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,i.FlexItem,{children:[(0,o.createComponentVNode)(2,c.Button,{content:"New Record",icon:"plus",onClick:function(){return r("new_general")}}),(0,o.createComponentVNode)(2,c.Button,{disabled:l,icon:l?"spinner":"print",iconSpin:!!l,content:"Print Cell Log",ml:"0.25rem",onClick:function(){return(0,d.modalOpen)(t,"print_cell_log")}})]}),(0,o.createComponentVNode)(2,i.FlexItem,{grow:"1",ml:"0.5rem",children:(0,o.createComponentVNode)(2,c.Input,{placeholder:"Search by Name, ID, Assignment, Fingerprint, Status",width:"100%",onInput:function(e,t){return s(t)}})})]})},g=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.isPrinting,d=i.general,u=i.security;return d&&d.fields?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"General Data",level:2,mt:"-6px",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{disabled:l,icon:l?"spinner":"print",iconSpin:!!l,content:"Print Record",onClick:function(){return r("print_record")}}),(0,o.createComponentVNode)(2,c.Button.Confirm,{icon:"trash",tooltip:"WARNING: This will also delete the Security and Medical records associated to this crew member!",tooltipPosition:"bottom-left",content:"Delete Record",onClick:function(){return r("delete_general")}})],4),children:(0,o.createComponentVNode)(2,V)}),(0,o.createComponentVNode)(2,c.Section,{title:"Security Data",level:2,mt:"-12px",buttons:(0,o.createComponentVNode)(2,c.Button.Confirm,{icon:"trash",disabled:u.empty,content:"Delete Record",onClick:function(){return r("delete_security")}}),children:(0,o.createComponentVNode)(2,v)})],4):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"General records lost!"})},V=function(e,t){var n=(0,a.useBackend)(t).data.general;return n&&n.fields?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{float:"left",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:n.fields.map((function(e,n){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.field,children:[(0,r.decodeHtmlEntities)(""+e.value),!!e.edit&&(0,o.createComponentVNode)(2,c.Button,{icon:"pen",ml:"0.5rem",mb:e.line_break?"1rem":"initial",onClick:function(){return f(t,e)}})]},n)}))})}),(0,o.createComponentVNode)(2,c.Box,{position:"absolute",right:"0",textAlign:"right",children:!!n.has_photos&&n.photos.map((function(e,t){return(0,o.createComponentVNode)(2,c.Box,{display:"inline-block",textAlign:"center",color:"label",children:[(0,o.createVNode)(1,"img",null,null,1,{src:e,style:{width:"96px","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor"}}),(0,o.createVNode)(1,"br"),"Photo #",t+1]},t)}))})],4):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"General records lost!"})},v=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.security;return l&&l.fields?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.LabeledList,{children:l.fields.map((function(e,n){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.field,children:[(0,r.decodeHtmlEntities)(e.value),!!e.edit&&(0,o.createComponentVNode)(2,c.Button,{icon:"pen",ml:"0.5rem",mb:e.line_break?"1rem":"initial",onClick:function(){return f(t,e)}})]},n)}))}),(0,o.createComponentVNode)(2,c.Section,{title:"Comments/Log",level:2,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"comment",content:"Add Entry",onClick:function(){return(0,d.modalOpen)(t,"comment_add")}}),children:0===l.comments.length?(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"No comments found."}):l.comments.map((function(e,t){return(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Box,{color:"label",display:"inline",children:e.header||"Auto-generated"}),(0,o.createVNode)(1,"br"),e.text||e,(0,o.createComponentVNode)(2,c.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){return i("comment_delete",{id:t+1})}})]},t)}))})],4):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:["Security records lost!",(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Button,{icon:"pen",content:"Create New Record",mt:"0.5rem",onClick:function(){return i("new_security")}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleConsole=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(77);t.ShuttleConsole=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:d.status?d.status:(0,o.createComponentVNode)(2,a.NoticeBox,{color:"red",children:"Shuttle Missing"})}),!!d.shuttle&&(!!d.docking_ports_len&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Send to ",children:d.docking_ports.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:"chevron-right",content:e.name,onClick:function(){return l("move",{move:e.id})}},e.name)}))})||(0,o.createFragment)([(0,o.createComponentVNode)(2,i.LabeledListItem,{label:"Status",color:"red",children:(0,o.createComponentVNode)(2,a.NoticeBox,{color:"red",children:"Shuttle Locked"})}),!!d.admin_controlled&&(0,o.createComponentVNode)(2,i.LabeledListItem,{label:"Authorization",children:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-circle",content:"Request Authorization",disabled:!d.status,onClick:function(){return l("request")}})})],0))]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulator=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.ShuttleManipulator=function(e,t){var n=(0,r.useLocalState)(t,"tabIndex",0),u=n[0],s=n[1];return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Box,{fillPositionedParent:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:0===u,onClick:function(){return s(0)},icon:"info-circle",content:"Status"},"Status"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===u,onClick:function(){return s(1)},icon:"file-import",content:"Templates"},"Templates"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===u,onClick:function(){return s(2)},icon:"tools",content:"Modification"},"Modification")]}),function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,i);case 1:return(0,o.createComponentVNode)(2,l);case 2:return(0,o.createComponentVNode)(2,d);default:return"WE SHOULDN'T BE HERE!"}}(u)]})})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.shuttles;return(0,o.createComponentVNode)(2,a.Box,{children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:e.id}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shuttle Timer",children:e.timeleft}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shuttle Mode",children:e.mode}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shuttle Status",children:e.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){return c("jump_to",{type:"mobile",id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Fast Travel",icon:"fast-forward",onClick:function(){return c("fast_travel",{id:e.id})}})]})]})},e.name)}))})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.templates_tabs,d=i.existing_shuttle,u=i.templates;return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Tabs,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:e===d.id,icon:"file",content:e,onClick:function(){return c("select_template_category",{cat:e})}},e)}))}),!!d&&u[d.id].templates.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.description&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:e.description}),e.admin_notes&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:(0,o.createComponentVNode)(2,a.Button,{content:"Load Template",icon:"download",onClick:function(){return c("select_template",{shuttle_id:e.shuttle_id})}})})]})},e.name)}))]})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.existing_shuttle,d=i.selected;return(0,o.createComponentVNode)(2,a.Box,{children:[l?(0,o.createComponentVNode)(2,a.Section,{title:"Selected Shuttle: "+l.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:l.status}),l.timer&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Timer",children:l.timeleft}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:(0,o.createComponentVNode)(2,a.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){return c("jump_to",{type:"mobile",id:l.id})}})})]})}):(0,o.createComponentVNode)(2,a.Section,{title:"Selected Shuttle: None"}),d?(0,o.createComponentVNode)(2,a.Section,{title:"Selected Template: "+d.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[d.description&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:d.description}),d.admin_notes&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Admin Notes",children:d.admin_notes}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Actions",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Preview",icon:"eye",onClick:function(){return c("preview",{shuttle_id:d.shuttle_id})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Load",icon:"download",onClick:function(){return c("load",{shuttle_id:d.shuttle_id})}})]})]})}):(0,o.createComponentVNode)(2,a.Section,{title:"Selected Template: None"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(4),l=[["good","Alive"],["average","Critical"],["bad","DEAD"]],d=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],u={average:[.25,.5],bad:[.5,Infinity]},s=["bad","average","average","good","average","average","bad"];t.Sleeper=function(e,t){var n=(0,a.useBackend)(t),r=(n.act,n.data.hasOccupant?(0,o.createComponentVNode)(2,m):(0,o.createComponentVNode)(2,N));return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{className:"Layout__content--flexColumn",children:[r,(0,o.createComponentVNode)(2,h)]})})};var m=function(e,t){var n=(0,a.useBackend)(t);n.act,n.data.occupant;return(0,o.createFragment)([(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,f),(0,o.createComponentVNode)(2,C)],4)},p=function(e,t){var n=(0,a.useBackend)(t),i=n.act,d=n.data,u=d.occupant,m=d.auto_eject_dead;return(0,o.createComponentVNode)(2,c.Section,{title:"Occupant",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{color:"label",display:"inline",children:"Auto-eject if dead:\xa0"}),(0,o.createComponentVNode)(2,c.Button,{icon:m?"toggle-on":"toggle-off",selected:m,content:m?"On":"Off",onClick:function(){return i("auto_eject_dead_"+(m?"off":"on"))}}),(0,o.createComponentVNode)(2,c.Button,{icon:"user-slash",content:"Eject",onClick:function(){return i("ejectify")}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Name",children:u.name}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:u.maxHealth,value:u.health/u.maxHealth,ranges:{good:[.5,Infinity],average:[0,.5],bad:[-Infinity,0]},children:(0,r.round)(u.health,0)})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",color:l[u.stat][0],children:l[u.stat][1]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:u.maxTemp,value:u.bodyTemperature/u.maxTemp,color:s[u.temperatureSuitability+3],children:[(0,r.round)(u.btCelsius,0),"\xb0C,",(0,r.round)(u.btFaren,0),"\xb0F"]})}),!!u.hasBlood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood Level",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:u.bloodMax,value:u.bloodLevel/u.bloodMax,ranges:{bad:[-Infinity,.6],average:[.6,.9],good:[.6,Infinity]},children:[u.bloodPercent,"%, ",u.bloodLevel,"cl"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pulse",verticalAlign:"middle",children:[u.pulse," BPM"]})],4)]})})},f=function(e,t){var n=(0,a.useBackend)(t).data.occupant;return(0,o.createComponentVNode)(2,c.Section,{title:"Occupant Damage",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:d.map((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e[0],children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:"100",value:n[e[1]]/100,ranges:u,children:(0,r.round)(n[e[1]],0)},t)},t)}))})})},h=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.hasOccupant,d=i.isBeakerLoaded,u=i.beakerMaxSpace,s=i.beakerFreeSpace,m=i.dialysis&&s>0;return(0,o.createComponentVNode)(2,c.Section,{title:"Dialysis",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{disabled:!d||s<=0||!l,selected:m,icon:m?"toggle-on":"toggle-off",content:m?"Active":"Inactive",onClick:function(){return r("togglefilter")}}),(0,o.createComponentVNode)(2,c.Button,{disabled:!d,icon:"eject",content:"Eject",onClick:function(){return r("removebeaker")}})],4),children:d?(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Remaining Space",children:(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:u,value:s/u,ranges:{good:[.5,Infinity],average:[.25,.5],bad:[-Infinity,.25]},children:[s,"u"]})})}):(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"No beaker loaded."})})},C=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.occupant,d=i.chemicals,u=i.maxchem,s=i.amounts;return(0,o.createComponentVNode)(2,c.Section,{title:"Occupant Chemicals",flexGrow:"1",children:d.map((function(e,t){var n,a="";return e.overdosing?(a="bad",n=(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"exclamation-circle"}),"\xa0 Overdosing!"]})):e.od_warning&&(a="average",n=(0,o.createComponentVNode)(2,c.Box,{color:"average",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"exclamation-triangle"}),"\xa0 Close to overdosing"]})),(0,o.createComponentVNode)(2,c.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,o.createComponentVNode)(2,c.Section,{title:e.title,level:"3",mx:"0",lineHeight:"18px",buttons:n,children:(0,o.createComponentVNode)(2,c.Flex,{align:"flex-start",children:[(0,o.createComponentVNode)(2,c.ProgressBar,{min:"0",max:u,value:e.occ_amount/u,color:a,title:"Amount of chemicals currently inside the occupant / Total amount injectable by this machine",mr:"0.5rem",children:[e.pretty_amount,"/",u,"u"]}),s.map((function(t,n){return(0,o.createComponentVNode)(2,c.Button,{disabled:!e.injectable||e.occ_amount+t>u||2===l.stat,icon:"syringe",content:"Inject "+t+"u",title:"Inject "+t+"u of "+e.title+" into the occupant",mb:"0",height:"19px",onClick:function(){return r("chemical",{chemid:e.id,amount:t})}},n)}))]})})},t)}))})},N=function(e,t){return(0,o.createComponentVNode)(2,c.Section,{textAlign:"center",flexGrow:"1",children:(0,o.createComponentVNode)(2,c.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,c.Flex.Item,{grow:"1",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,c.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,o.createVNode)(1,"br"),"No occupant detected."]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SlotMachine=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.SlotMachine=function(e,t){var n,i=(0,r.useBackend)(t),l=i.act,d=i.data;return null===d.money?(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:"Could not scan your card or could not find account!"}),(0,o.createComponentVNode)(2,a.Box,{children:"Please wear or hold your ID and try again."})]})})}):(n=1===d.plays?d.plays+" player has tried their luck today!":d.plays+" players have tried their luck today!",(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{lineHeight:2,children:n}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Credits Remaining",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.money})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"50 credits to spin",children:(0,o.createComponentVNode)(2,a.Button,{icon:"coins",disabled:d.working,content:d.working?"Spinning...":"Spin",onClick:function(){return l("spin")}})})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,lineHeight:2,color:d.resultlvl,children:d.result})]})})}))}},function(e,t,n){"use strict";t.__esModule=!0,t.Smartfridge=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.Smartfridge=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.secure,u=l.can_dry,s=l.drying,m=l.contents;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!!d&&(0,o.createComponentVNode)(2,a.Section,{title:"Secure",children:(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Secure Access: Please have your identification ready."})}),!!u&&(0,o.createComponentVNode)(2,a.Section,{title:"Drying rack",children:(0,o.createComponentVNode)(2,a.Button,{icon:s?"power-off":"times",content:s?"On":"Off",selected:s,onClick:function(){return i("drying")}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Contents",children:[!m&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:" No products loaded. "}),!!m&&m.map((function(e){return(0,o.createComponentVNode)(2,a.Flex,{direction:"row",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"45%",children:e.display_name}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"25%",children:["(",e.quantity," in stock)"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"30%",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-down",tooltip:"Dispense one.",content:"1",onClick:function(){return i("vend",{index:e.vend,amount:1})}}),(0,o.createComponentVNode)(2,a.NumberInput,{width:"40px",minValue:0,value:0,maxValue:e.quantity,step:1,stepPixelSize:3,onChange:function(t,n){return i("vend",{index:e.vend,amount:n})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-down",content:"All",tooltip:"Dispense all. ",onClick:function(){return i("vend",{index:e.vend,amount:e.quantity})}})]})]},e)}))]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(0),r=n(1),a=n(2),c=n(95),i=n(4);t.Smes=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.capacityPercent,s=(d.capacity,d.charge),m=d.inputAttempt,p=d.inputting,f=d.inputLevel,h=d.inputLevelMax,C=d.inputAvailable,N=d.outputAttempt,b=d.outputting,g=d.outputLevel,V=d.outputLevelMax,v=d.outputUsed,y=(u>=100?"good":p&&"average")||"bad",_=(b?"good":s>0&&"average")||"bad";return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*u,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"sync-alt":"times",selected:m,onClick:function(){return l("tryinput")},children:m?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:y,children:(u>=100?"Fully Charged":p&&"Charging")||"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===f,onClick:function(){return l("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===f,onClick:function(){return l("input",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:f/1e3,fillValue:C/1e3,minValue:0,maxValue:h/1e3,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(1e3*e,1)},onChange:function(e,t){return l("input",{target:1e3*t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:f===h,onClick:function(){return l("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:f===h,onClick:function(){return l("input",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:(0,c.formatPower)(C)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:N?"power-off":"times",selected:N,onClick:function(){return l("tryoutput")},children:N?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:_,children:b?"Sending":s>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===g,onClick:function(){return l("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===g,onClick:function(){return l("output",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:g/1e3,minValue:0,maxValue:V/1e3,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(1e3*e,1)},onChange:function(e,t){return l("output",{target:1e3*t})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:g===V,onClick:function(){return l("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:g===V,onClick:function(){return l("output",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:(0,c.formatPower)(v)})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SolarControl=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.SolarControl=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.generated,u=l.generated_ratio,s=l.tracking_state,m=l.tracking_rate,p=l.connected_panels,f=l.connected_tracker,h=l.cdir,C=l.direction,N=l.rotating_direction;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Scan for new hardware",onClick:function(){return i("refresh")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Solar tracker",color:f?"good":"bad",children:f?"OK":"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Solar panels",color:p>0?"good":"bad",children:p})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:u,children:d+" W"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Panel orientation",children:[h,"\xb0 (",C,")"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracker rotation",children:[2===s&&(0,o.createComponentVNode)(2,a.Box,{children:" Automated "}),1===s&&(0,o.createComponentVNode)(2,a.Box,{children:[" ",m,"\xb0/h (",N,") "]}),0===s&&(0,o.createComponentVNode)(2,a.Box,{children:" Tracker offline "})]})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Panel orientation",children:[2!==s&&(0,o.createComponentVNode)(2,a.NumberInput,{unit:"\xb0",step:1,stepPixelSize:1,minValue:0,maxValue:359,value:h,onDrag:function(e,t){return i("cdir",{cdir:t})}}),2===s&&(0,o.createComponentVNode)(2,a.Box,{lineHeight:"19px",children:" Automated "})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracker status",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===s,onClick:function(){return i("track",{track:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===s,onClick:function(){return i("track",{track:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===s,disabled:!f,onClick:function(){return i("track",{track:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracker rotation",children:[1===s&&(0,o.createComponentVNode)(2,a.NumberInput,{unit:"\xb0/h",step:1,stepPixelSize:1,minValue:-7200,maxValue:7200,value:m,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return i("tdir",{tdir:t})}}),0===s&&(0,o.createComponentVNode)(2,a.Box,{lineHeight:"19px",children:" Tracker offline "}),2===s&&(0,o.createComponentVNode)(2,a.Box,{lineHeight:"19px",children:" Automated "})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.SpawnersMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.spawners||[];return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{mb:.5,title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"chevron-circle-right",content:"Jump",onClick:function(){return i("jump",{ID:e.uids})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"chevron-circle-right",content:"Spawn",onClick:function(){return i("spawn",{ID:e.uids})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{style:{"white-space":"pre-wrap"},mb:1,fontSize:"16px",children:e.desc}),!!e.fluff&&(0,o.createComponentVNode)(2,a.Box,{style:{"white-space":"pre-wrap"},textColor:"#878787",fontSize:"14px",children:e.fluff}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{style:{"white-space":"pre-wrap"},mt:1,bold:!0,color:"red",fontSize:"18px",children:e.important_info})]},e.name)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsoleContent=t.StationAlertConsole=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.StationAlertConsole=function(){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t).data.alarms||[],c=n.Fire||[],i=n.Atmosphere||[],l=n.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===l.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),l.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)};t.StationAlertConsoleContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorage=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.SuitStorage=function(e,t){var n=(0,r.useBackend)(t).data.uv;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{display:"flex",className:"Layout__content--flexColumn",children:[!!n&&(0,o.createComponentVNode)(2,a.Dimmer,{backgroundColor:"black",opacity:.85,children:(0,o.createComponentVNode)(2,a.Flex,{children:(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,textAlign:"center",mb:2,children:[(0,o.createComponentVNode)(2,a.Icon,{name:"spinner",spin:1,size:4,mb:4}),(0,o.createVNode)(1,"br"),"Disinfection of contents in progress..."]})})}),(0,o.createComponentVNode)(2,i),(0,o.createComponentVNode)(2,d)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.helmet,u=i.suit,s=i.magboots,m=i.mask,p=i.storage,f=i.open,h=i.locked;return(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",flexGrow:"1",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Start Disinfection Cycle",icon:"radiation",textAlign:"center",onClick:function(){return c("cook")}}),(0,o.createComponentVNode)(2,a.Button,{content:h?"Unlock":"Lock",icon:h?"unlock":"lock",disabled:f,onClick:function(){return c("toggle_lock")}})],4),children:f&&!h?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,l,{object:d,label:"Helmet",missingText:"helmet",eject:"dispense_helmet"}),(0,o.createComponentVNode)(2,l,{object:u,label:"Suit",missingText:"suit",eject:"dispense_suit"}),(0,o.createComponentVNode)(2,l,{object:s,label:"Boots",missingText:"boots",eject:"dispense_boots"}),(0,o.createComponentVNode)(2,l,{object:m,label:"Breathmask",missingText:"mask",eject:"dispense_mask"}),(0,o.createComponentVNode)(2,l,{object:p,label:"Storage",missingText:"storage item",eject:"dispense_storage"})]}):(0,o.createComponentVNode)(2,a.Flex,{height:"100%",children:(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"label",children:[(0,o.createComponentVNode)(2,a.Icon,{name:h?"lock":"exclamation-circle",size:"5",mb:3}),(0,o.createVNode)(1,"br"),h?"The unit is locked.":"The unit is closed."]})})})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=(n.data,e.object),l=e.label,d=e.missingText,u=e.eject;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:l,children:(0,o.createComponentVNode)(2,a.Box,{my:.5,children:i?(0,o.createComponentVNode)(2,a.Button,{my:-1,icon:"eject",content:i,onClick:function(){return c(u)}}):(0,o.createComponentVNode)(2,a.Box,{color:"silver",bold:!0,children:["No ",d," found."]})})})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.open,d=i.locked;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:l?"Close Suit Storage Unit":"Open Suit Storage Unit",icon:l?"times-circle":"expand",color:l?"red":"green",disabled:d,textAlign:"center",onClick:function(){return c("toggle_open")}})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SupermatterMonitor=void 0;var o=n(0),r=n(26),a=n(43),c=n(16),i=n(1),l=n(2),d=n(39),u=n(4);n(76);t.SupermatterMonitor=function(e,t){var n=(0,i.useBackend)(t);n.act;return 0===n.data.active?(0,o.createComponentVNode)(2,m):(0,o.createComponentVNode)(2,p)};var s=function(e){return Math.log2(16+Math.max(0,e))-4},m=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.supermatters,c=void 0===a?[]:a;return(0,o.createComponentVNode)(2,u.Window,{children:(0,o.createComponentVNode)(2,u.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return r("refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:c.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.supermatter_id+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return r("view",{view:e.supermatter_id})}})})]},e.supermatter_id)}))})})})})},p=function(e,t){var n=(0,i.useBackend)(t),m=n.act,p=n.data,f=(p.active,p.SM_integrity),h=p.SM_power,C=p.SM_ambienttemp,N=p.SM_ambientpressure,b=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(p.gases||[]),g=Math.max.apply(Math,[1].concat(b.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,u.Window,{children:(0,o.createComponentVNode)(2,u.Window.Content,{children:(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:f/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,c.toFixed)(h)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(C),minValue:0,maxValue:s(1e4),ranges:{teal:[-Infinity,s(80)],good:[s(80),s(373)],average:[s(373),s(1e3)],bad:[s(1e3),Infinity]},children:(0,c.toFixed)(C)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(N),minValue:0,maxValue:s(5e4),ranges:{good:[s(1),s(300)],average:[-Infinity,s(1e3)],bad:[s(1e3),Infinity]},children:(0,c.toFixed)(N)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return m("back")}}),children:(0,o.createComponentVNode)(2,l.LabeledList,{children:b.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,d.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,d.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:g,children:(0,c.toFixed)(e.amount,2)+"%"})},e.name)}))})})})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.SyndicateComputerSimple=void 0;var o=n(0),r=n(1),a=n(2),c=(n(77),n(4));t.SyndicateComputerSimple=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{theme:"syndicate",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:l.rows.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.title,buttons:(0,o.createComponentVNode)(2,a.Button,{content:e.buttontitle,disabled:e.buttondisabled,tooltip:e.buttontooltip,tooltipPosition:"left",onClick:function(){return i(e.buttonact)}}),children:[e.status,!!e.bullets&&(0,o.createComponentVNode)(2,a.Box,{children:e.bullets.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})]},e.title)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TEG=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=function(e){return e.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,")};t.TEG=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data;return d.error?(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Error",children:[d.error,(0,o.createComponentVNode)(2,a.Button,{icon:"circle",content:"Recheck",onClick:function(){return l("check")}})]})})}):(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Cold Loop ("+d.cold_dir+")",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cold Inlet",children:[i(d.cold_inlet_temp)," K, ",i(d.cold_inlet_pressure)," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cold Outlet",children:[i(d.cold_outlet_temp)," K, ",i(d.cold_outlet_pressure)," kPa"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hot Loop ("+d.hot_dir+")",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hot Inlet",children:[i(d.hot_inlet_temp)," K, ",i(d.hot_inlet_pressure)," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hot Outlet",children:[i(d.hot_outlet_temp)," K, ",i(d.hot_outlet_pressure)," kPa"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Output",children:[i(d.output_power)," W",!!d.warning_switched&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Warning: Cold inlet temperature exceeds hot inlet temperature."}),!!d.warning_cold_pressure&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Warning: Cold circulator inlet pressure is under 1,000 kPa."}),!!d.warning_hot_pressure&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Warning: Hot circulator inlet pressure is under 1,000 kPa."})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TachyonArrayContent=t.TachyonArray=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.TachyonArray=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.records,s=void 0===u?[]:u,m=d.explosion_target,p=d.toxins_tech,f=d.printing;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shift's Target",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Toxins Level",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Administration",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print All Logs",disabled:!s.length||f,align:"center",onClick:function(){return l("print_logs")}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",content:"Delete All Logs",disabled:!s.length,color:"bad",align:"center",onClick:function(){return l("delete_logs")}})]})]})}),s.length?(0,o.createComponentVNode)(2,i):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Records"})]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.records,l=void 0===i?[]:i;return(0,o.createComponentVNode)(2,a.Section,{title:"Logged Explosions",children:(0,o.createComponentVNode)(2,a.Flex,{children:(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Time"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Epicenter"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Actual Size"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Theoretical Size"})]}),l.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.logged_time}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.epicenter}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.actual_size_message}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.theoretical_size_message}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",content:"Delete",color:"bad",onClick:function(){return c("delete_record",{index:e.index})}})})]},e.index)}))]})})})})};t.TachyonArrayContent=i},function(e,t,n){"use strict";t.__esModule=!0,t.Tank=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.Tank=function(e,t){var n,i=(0,r.useBackend)(t),l=i.act,d=i.data;return n=d.has_mask?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.connected?"check":"times",content:d.connected?"Internals On":"Internals Off",selected:d.connected,onClick:function(){return l("internals")}})}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",color:"red",children:"No Mask Equipped"}),(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tank Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.tankPressure/1013,ranges:{good:[.35,Infinity],average:[.15,.35],bad:[-Infinity,.15]},children:d.tankPressure+" kPa"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Release Pressure",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:d.ReleasePressure===d.minReleasePressure,tooltip:"Min",onClick:function(){return l("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(d.releasePressure),width:"65px",unit:"kPa",minValue:d.minReleasePressure,maxValue:d.maxReleasePressure,onChange:function(e,t){return l("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:d.ReleasePressure===d.maxReleasePressure,tooltip:"Max",onClick:function(){return l("pressure",{pressure:"max"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"",disabled:d.ReleasePressure===d.defaultReleasePressure,tooltip:"Reset",onClick:function(){return l("pressure",{pressure:"reset"})}})]}),n]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TankDispenser=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.TankDispenser=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.o_tanks,u=l.p_tanks;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Dispense Oxygen Tank ("+d+")",disabled:0===d,icon:"arrow-circle-down",onClick:function(){return i("oxygen")}})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Dispense Plasma Tank ("+u+")",disabled:0===u,icon:"arrow-circle-down",onClick:function(){return i("plasma")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TcommsCore=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.TcommsCore=function(e,t){var n=(0,r.useBackend)(t),s=(n.act,n.data.ion),m=(0,r.useLocalState)(t,"tabIndex",0),p=m[0],f=m[1];return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[1===s&&(0,o.createComponentVNode)(2,i),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:0===p,onClick:function(){return f(0)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"wrench"}),"Configuration"]},"ConfigPage"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===p,onClick:function(){return f(1)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"link"}),"Device Linkage"]},"LinkagePage"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===p,onClick:function(){return f(2)},children:[(0,o.createComponentVNode)(2,a.Icon,{name:"user-times"}),"User Filtering"]},"FilterPage")]}),function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,l);case 1:return(0,o.createComponentVNode)(2,d);case 2:return(0,o.createComponentVNode)(2,u);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}}(p)]})})};var i=function(){return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: An Ionospheric overload has occured. Please wait for the machine to reboot. This cannot be manually done."})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.active,d=i.sectors_available,u=i.nttc_toggle_jobs,s=i.nttc_toggle_job_color,m=i.nttc_toggle_name_color,p=i.nttc_toggle_command_bold,f=i.nttc_job_indicator_type,h=i.nttc_setting_language,C=i.network_id;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Machine Power",children:(0,o.createComponentVNode)(2,a.Button,{content:l?"On":"Off",selected:l,icon:"power-off",onClick:function(){return c("toggle_active")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sector Coverage",children:d})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Radio Configuration",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Job Announcements",children:(0,o.createComponentVNode)(2,a.Button,{content:u?"On":"Off",selected:u,icon:"user-tag",onClick:function(){return c("nttc_toggle_jobs")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Job Departmentalisation",children:(0,o.createComponentVNode)(2,a.Button,{content:s?"On":"Off",selected:s,icon:"clipboard-list",onClick:function(){return c("nttc_toggle_job_color")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name Departmentalisation",children:(0,o.createComponentVNode)(2,a.Button,{content:m?"On":"Off",selected:m,icon:"user-tag",onClick:function(){return c("nttc_toggle_name_color")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Command Amplification",children:(0,o.createComponentVNode)(2,a.Button,{content:p?"On":"Off",selected:p,icon:"volume-up",onClick:function(){return c("nttc_toggle_command_bold")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Advanced",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Job Announcement Format",children:(0,o.createComponentVNode)(2,a.Button,{content:f||"Unset",selected:f,icon:"pencil-alt",onClick:function(){return c("nttc_job_indicator_type")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Language Conversion",children:(0,o.createComponentVNode)(2,a.Button,{content:h||"Unset",selected:h,icon:"globe",onClick:function(){return c("nttc_setting_language")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Network ID",children:(0,o.createComponentVNode)(2,a.Button,{content:C||"Unset",selected:C,icon:"server",onClick:function(){return c("network_id")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Maintenance",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Import Configuration",icon:"file-import",onClick:function(){return c("import")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Export Configuration",icon:"file-export",onClick:function(){return c("export")}})]})],4)},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.link_password,d=i.relay_entries;return(0,o.createComponentVNode)(2,a.Section,{title:"Device Linkage",children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Linkage Password",children:(0,o.createComponentVNode)(2,a.Button,{content:l||"Unset",selected:l,icon:"lock",onClick:function(){return c("change_password")}})})}),(0,o.createComponentVNode)(2,a.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Network Address"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Network ID"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Sector"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Status"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Unlink"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.addr}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.net_id}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.sector}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:1===e.status?(0,o.createComponentVNode)(2,a.Box,{color:"green",children:"Online"}):(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Offline"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Unlink",icon:"unlink",onClick:function(){return c("unlink",{addr:e.addr})}})})]},e.addr)}))]})]})},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.filtered_users;return(0,o.createComponentVNode)(2,a.Section,{title:"User Filtering",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Add User",icon:"user-plus",onClick:function(){return c("add_filter")}}),children:(0,o.createComponentVNode)(2,a.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{style:{width:"90%"},children:"User"}),(0,o.createComponentVNode)(2,a.Table.Cell,{style:{width:"10%"},children:"Actions"})]}),i.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Remove",icon:"user-times",onClick:function(){return c("remove_filter",{user:e})}})})]},e)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TcommsRelay=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.TcommsRelay=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.linked,m=u.active,p=u.network_id;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Relay Configuration",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Machine Power",children:(0,o.createComponentVNode)(2,a.Button,{content:m?"On":"Off",selected:m,icon:"power-off",onClick:function(){return d("toggle_active")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Network ID",children:(0,o.createComponentVNode)(2,a.Button,{content:p||"Unset",selected:p,icon:"server",onClick:function(){return d("network_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Link Status",children:1===s?(0,o.createComponentVNode)(2,a.Box,{color:"green",children:"Linked"}):(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"Unlinked"})})]})}),1===s?(0,o.createComponentVNode)(2,i):(0,o.createComponentVNode)(2,l)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.linked_core_id,d=i.linked_core_addr,u=i.hidden_link;return(0,o.createComponentVNode)(2,a.Section,{title:"Link Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Linked Core ID",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Linked Core Address",children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Hidden Link",children:(0,o.createComponentVNode)(2,a.Button,{content:u?"Yes":"No",icon:u?"eye-slash":"eye",selected:u,onClick:function(){return c("toggle_hidden_link")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unlink",children:(0,o.createComponentVNode)(2,a.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){return c("unlink")}})})]})})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.cores;return(0,o.createComponentVNode)(2,a.Section,{title:"Detected Cores",children:(0,o.createComponentVNode)(2,a.Table,{m:"0.5rem",children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Network Address"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Network ID"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Sector"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Link"})]}),i.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.addr}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.net_id}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.sector}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Link",icon:"link",onClick:function(){return c("link",{addr:e.addr})}})})]},e.addr)}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Teleporter=void 0;var o=n(0),r=n(1),a=n(2),c=n(4),i=n(179);t.Teleporter=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.targetsTeleport?d.targetsTeleport:{},s=d.calibrated,m=d.calibrating,p=d.powerstation,f=d.regime,h=d.teleporterhub,C=d.target,N=d.locked;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(!p||!h)&&(0,o.createComponentVNode)(2,a.Section,{title:"Error",children:[h,!p&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:" Powerstation not linked "}),p&&!h&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:" Teleporter hub not linked "})]}),p&&h&&(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Regime",children:[(0,o.createComponentVNode)(2,a.Button,{tooltip:"Teleport to another teleport hub. ",color:1===f?"good":null,onClick:function(){return l("setregime",{regime:1})},children:"Gate"}),(0,o.createComponentVNode)(2,a.Button,{tooltip:"One-way teleport. ",color:0===f?"good":null,onClick:function(){return l("setregime",{regime:0})},children:"Teleporter"}),(0,o.createComponentVNode)(2,a.Button,{tooltip:"Teleport to a location stored in a GPS device. ",color:2===f?"good":null,disabled:!N,onClick:function(){return l("setregime",{regime:2})},children:"GPS"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleport target",children:[0===f&&(0,o.createComponentVNode)(2,a.Dropdown,{width:"220px",selected:C,options:Object.keys(u),color:"None"!==C?"default":"bad",onSelected:function(e){return l("settarget",{x:u[e].x,y:u[e].y,z:u[e].z})}}),1===f&&(0,o.createComponentVNode)(2,a.Dropdown,{width:"220px",selected:C,options:Object.keys(u),color:"None"!==C?"default":"bad",onSelected:function(e){return l("settarget",{x:u[e].x,y:u[e].y,z:u[e].z})}}),2===f&&(0,o.createComponentVNode)(2,a.Box,{children:C})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Calibration",children:["None"!==C&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,i.GridColumn,{size:"2",children:m&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"In Progress"})||s&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Optimal"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Sub-Optimal"})}),(0,o.createComponentVNode)(2,i.GridColumn,{size:"3",children:(0,o.createComponentVNode)(2,a.Box,{"class":"ml-1",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",tooltip:"Calibrates the hub. Accidents may occur when the calibration is not optimal.",disabled:!(!s&&!m),onClick:function(){return l("calibrate")}})})})]}),"None"===C&&(0,o.createComponentVNode)(2,a.Box,{lineHeight:"21px",children:"No target set"})]})]})}),!!(N&&p&&h&&2===f)&&(0,o.createComponentVNode)(2,a.Section,{title:"GPS",children:(0,o.createComponentVNode)(2,a.Flex,{direction:"row",justify:"space-around",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Upload GPS data",tooltip:"Loads the GPS data from the device.",icon:"upload",onClick:function(){return l("load")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Eject",tooltip:"Ejects the GPS device",icon:"eject",onClick:function(){return l("eject")}})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ThermoMachine=void 0;var o=n(0),r=n(16),a=n(1),c=n(2),i=n(4);t.ThermoMachine=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,c.Section,{title:"Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:d.temperature,format:function(e){return(0,r.toFixed)(e,2)}})," K"]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:d.pressure,format:function(e){return(0,r.toFixed)(e,2)}})," kPa"]})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:d.on?"power-off":"times",content:d.on?"On":"Off",selected:d.on,onClick:function(){return l("power")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Setting",children:(0,o.createComponentVNode)(2,c.Button,{icon:d.cooling?"temperature-low":"temperature-high",content:d.cooling?"Cooling":"Heating",selected:d.cooling,onClick:function(){return l("cooling")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,c.NumberInput,{animated:!0,value:Math.round(d.target),unit:"K",width:"62px",minValue:Math.round(d.min),maxValue:Math.round(d.max),step:5,stepPixelSize:3,onDrag:function(e,t){return l("target",{target:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"fast-backward",disabled:d.target===d.min,title:"Minimum temperature",onClick:function(){return l("target",{target:d.min})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sync",disabled:d.target===d.initial,title:"Room Temperature",onClick:function(){return l("target",{target:d.initial})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"fast-forward",disabled:d.target===d.max,title:"Maximum Temperature",onClick:function(){return l("target",{target:d.max})}})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TransferValve=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.TransferValve=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.tank_one,u=l.tank_two,s=l.attached_device,m=l.valve;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Valve Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"unlock":"lock",content:m?"Open":"Closed",disabled:!d||!u,onClick:function(){return i("toggle")}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Assembly",buttons:(0,o.createComponentVNode)(2,a.Button,{textAlign:"center",width:"150px",icon:"cog",content:"Configure Assembly",disabled:!s,onClick:function(){return i("device")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:s?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Attachment",children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:s,disabled:!s,onClick:function(){return i("remove_device")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Attach Assembly"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Attachment One",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Attachment",children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:d,disabled:!d,onClick:function(){return i("tankone")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Attach Tank"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Attachment Two",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:u?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Attachment",children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:u,disabled:!u,onClick:function(){return i("tanktwo")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Attach Tank"})})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Uplink=void 0;var o=n(0),r=n(26),a=n(43),c=n(19),i=n(1),l=n(2),d=n(75),u=n(4),s=n(49),m=function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,p);case 1:return(0,o.createComponentVNode)(2,f);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}};t.Uplink=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=(n.data,(0,i.useLocalState)(t,"tabIndex",0)),c=a[0],d=a[1];return(0,o.createComponentVNode)(2,u.Window,{theme:"syndicate",children:[(0,o.createComponentVNode)(2,s.ComplexModal),(0,o.createComponentVNode)(2,u.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.Tabs,{children:[(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:0===c,onClick:function(){return d(0)},icon:"shopping-cart",children:"Purchase Equipment"},"PurchasePage"),(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:1===c,onClick:function(){return d(1)},icon:"user",children:"Exploitable Information"},"ExploitableInfo"),(0,o.createComponentVNode)(2,l.Tabs.Tab,{onClick:function(){return r("lock")},icon:"lock",children:"Lock Uplink"},"LockUplink")]}),m(c)]})]})};var p=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data,u=a.crystals,s=a.cats,m=(0,i.useLocalState)(t,"uplinkTab",s[0]),p=m[0],f=m[1];return(0,o.createComponentVNode)(2,l.Section,{title:"Current Balance: "+u+"TC",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Button,{content:"Random Item",icon:"question",onClick:function(){return r("buyRandom")}}),(0,o.createComponentVNode)(2,l.Button,{content:"Refund Currently Held Item",icon:"undo",onClick:function(){return r("refund")}})],4),children:(0,o.createComponentVNode)(2,l.Flex,{children:[(0,o.createComponentVNode)(2,d.FlexItem,{children:(0,o.createComponentVNode)(2,l.Tabs,{vertical:!0,children:s.map((function(e){return(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:e===p,onClick:function(){return f(e)},children:e.cat},e)}))})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,basis:0,children:p.items.map((function(e){return(0,o.createComponentVNode)(2,l.Section,{title:(0,c.decodeHtmlEntities)(e.name),buttons:(0,o.createComponentVNode)(2,l.Button,{content:"Buy ("+e.cost+"TC)"+(e.refundable?" [Refundable]":""),color:1===e.hijack_only&&"red",tooltip:1===e.hijack_only&&"Hijack Agents Only!",tooltipPosition:"left",onClick:function(){return r("buyItem",{item:e.obj_path})},disabled:e.cost>u}),children:(0,o.createComponentVNode)(2,l.Box,{italic:!0,children:(0,c.decodeHtmlEntities)(e.desc)})},(0,c.decodeHtmlEntities)(e.name))}))})]})})},f=function(e,t){var n=(0,i.useBackend)(t),u=(n.act,n.data.exploitable),s=(0,i.useLocalState)(t,"selectedRecord",u[0]),m=s[0],p=s[1],f=(0,i.useLocalState)(t,"searchText",""),h=f[0],C=f[1],N=function(e,t){void 0===t&&(t="");var n=(0,c.createSearch)(t,(function(e){return e.name}));return(0,a.flow)([(0,r.filter)((function(e){return null==e?void 0:e.name})),t&&(0,r.filter)(n),(0,r.sortBy)((function(e){return e.name}))])(e)}(u,h);return(0,o.createComponentVNode)(2,l.Section,{title:"Exploitable Records",children:(0,o.createComponentVNode)(2,l.Flex,{children:[(0,o.createComponentVNode)(2,d.FlexItem,{basis:20,children:[(0,o.createComponentVNode)(2,l.Input,{fluid:!0,mb:1,placeholder:"Search Crew",onInput:function(e,t){return C(t)}}),(0,o.createComponentVNode)(2,l.Tabs,{vertical:!0,children:N.map((function(e){return(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:e===m,onClick:function(){return p(e)},children:e.name},e)}))})]}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Name: "+m.name,children:[(0,o.createComponentVNode)(2,l.Box,{children:["Age: ",m.age]}),(0,o.createComponentVNode)(2,l.Box,{children:["Fingerprint: ",m.fingerprint]}),(0,o.createComponentVNode)(2,l.Box,{children:["Rank: ",m.rank]}),(0,o.createComponentVNode)(2,l.Box,{children:["Sex: ",m.sex]}),(0,o.createComponentVNode)(2,l.Box,{children:["Species: ",m.species]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Vending=void 0;var o=n(0),r=(n(8),n(1)),a=n(2),c=n(4),i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=e.product,d=e.productStock,u=e.productImage,s=i.chargesMoney,m=(i.user,i.userMoney),p=i.vend_ready,f=i.coin_name,h=(i.inserted_item_name,!s||0===l.price),C="ERROR!",N="";l.req_coin?(C="COIN",N="circle"):h?(C="FREE",N="arrow-circle-down"):(C=l.price,N="shopping-cart");var b=!p||!f&&l.req_coin||0===d||!h&&l.price>m;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+u,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:l.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.Box,{color:(d<=0?"bad":d<=l.max_amount/2&&"average")||"good",children:[d," in stock"]})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,disabled:b,icon:N,content:C,textAlign:"left",onClick:function(){return c("vend",{inum:l.inum})}})})]})};t.Vending=function(e,t){var n,l=(0,r.useBackend)(t),d=l.act,u=l.data,s=u.user,m=u.guestNotice,p=u.userMoney,f=u.chargesMoney,h=u.product_records,C=void 0===h?[]:h,N=u.coin_records,b=void 0===N?[]:N,g=u.hidden_records,V=void 0===g?[]:g,v=u.stock,y=(u.vend_ready,u.coin_name),_=u.inserted_item_name,x=u.panel_open,k=u.speaker,L=u.imagelist;return n=[].concat(C,b),u.extended_inventory&&(n=[].concat(n,V)),n=n.filter((function(e){return!!e})),(0,o.createComponentVNode)(2,c.Window,{title:"Vending Machine",resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!!f&&(0,o.createComponentVNode)(2,a.Section,{title:"User",children:s&&(0,o.createComponentVNode)(2,a.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,s.name,0),","," ",(0,o.createVNode)(1,"b",null,s.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[p,(0,o.createTextVNode)(" credits")],0),"."]})||(0,o.createComponentVNode)(2,a.Box,{color:"light-grey",children:m})}),!!y&&(0,o.createComponentVNode)(2,a.Section,{title:"Coin",buttons:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:"Remove Coin",onClick:function(){return d("remove_coin",{})}}),children:(0,o.createComponentVNode)(2,a.Box,{children:y})}),!!_&&(0,o.createComponentVNode)(2,a.Section,{title:"Item",buttons:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:"Eject Item",onClick:function(){return d("eject_item",{})}}),children:(0,o.createComponentVNode)(2,a.Box,{children:_})}),!!x&&(0,o.createComponentVNode)(2,a.Section,{title:"Maintenance",children:(0,o.createComponentVNode)(2,a.Button,{icon:k?"check":"volume-mute",selected:k,content:"Speaker",textAlign:"left",onClick:function(){return d("toggle_voice",{})}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Products",children:(0,o.createComponentVNode)(2,a.Table,{children:n.map((function(e){return(0,o.createComponentVNode)(2,i,{product:e,productStock:v[e.name],productImage:L[e.path]},e.name)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.VolumeMixer=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.VolumeMixer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.channels;return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{height:"100%",overflow:"auto",children:l.map((function(e,t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{fontSize:"1.25rem",color:"label",mt:t>0&&"0.5rem",children:e.name}),(0,o.createComponentVNode)(2,a.Box,{mt:"0.5rem",children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{width:"24px",color:"transparent",children:(0,o.createComponentVNode)(2,a.Icon,{name:"volume-off",size:"1.5",mt:"0.1rem",onClick:function(){return i("volume",{channel:e.num,volume:0})}})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:"1",mx:"1rem",children:(0,o.createComponentVNode)(2,a.Slider,{minValue:0,maxValue:100,stepPixelSize:3.13,value:e.volume,onChange:function(t,n){return i("volume",{channel:e.num,volume:n})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{width:"24px",color:"transparent",children:(0,o.createComponentVNode)(2,a.Icon,{name:"volume-up",size:"1.5",mt:"0.1rem",onClick:function(){return i("volume",{channel:e.num,volume:100})}})})})]})})],4,e.num)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Wires=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.Wires=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.wires||[],u=l.status||[];return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.color_name,labelColor:e.seen_color,color:e.seen_color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:e.cut?"Mend":"Cut",onClick:function(){return i("cut",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Pulse",onClick:function(){return i("pulse",{wire:e.color})}}),(0,o.createComponentVNode)(2,a.Button,{content:e.attached?"Detach":"Attach",onClick:function(){return i("attach",{wire:e.color})}})],4),children:!!e.wire&&(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)("("),e.wire,(0,o.createTextVNode)(")")],0)},e.seen_color)}))})}),!!u.length&&(0,o.createComponentVNode)(2,a.Section,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{color:"lightgray",mt:.1,children:e},e)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.WizardApprenticeContract=void 0;var o=n(0),r=n(1),a=n(2),c=n(4);t.WizardApprenticeContract=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.used;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Contract of Apprenticeship",children:["Using this contract, you may summon an apprentice to aid you on your mission.",(0,o.createVNode)(1,"p",null,"If you are unable to establish contact with your apprentice, you can feed the contract back to the spellbook to refund your points.",16),l?(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"red",children:"You've already summoned an apprentice or you are in process of summoning one."}):""]}),(0,o.createComponentVNode)(2,a.Section,{title:"Which school of magic is your apprentice studying?",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destruction",children:["Your apprentice is skilled in offensive magic. They know Magic Missile and Fireball.",(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{content:"Select",disabled:l,onClick:function(){return i("destruction")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Bluespace Manipulation",children:["Your apprentice is able to defy physics, melting through solid objects and travelling great distances in the blink of an eye. They know Teleport and Ethereal Jaunt.",(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{content:"Select",disabled:l,onClick:function(){return i("bluespace")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Healing",children:["Your apprentice is training to cast spells that will aid your survival. They know Forcewall and Charge and come with a Staff of Healing.",(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{content:"Select",disabled:l,onClick:function(){return i("healing")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Robeless",children:["Your apprentice is training to cast spells without their robes. They know Knock and Mindswap.",(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{content:"Select",disabled:l,onClick:function(){return i("robeless")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})]})})}}]); \ No newline at end of file diff --git a/tools/ci/dbconfig.txt b/tools/ci/dbconfig.txt deleted file mode 100644 index f3a4b587962..00000000000 --- a/tools/ci/dbconfig.txt +++ /dev/null @@ -1,13 +0,0 @@ -# This exists solely as a DBconfig file for CI testing -# Dont use it ingame -# Remember to update this when you increase the SQL version! -aa -SQL_ENABLED -DB_VERSION 24 -ADDRESS 127.0.0.1 -PORT 3306 -FEEDBACK_DATABASE feedback -FEEDBACK_TABLEPREFIX -FEEDBACK_LOGIN root -FEEDBACK_PASSWORD root -ASYNC_QUERY_TIMEOUT 10 -RUST_SQL_THREAD_LIMIT 50 diff --git a/tools/ci/generate_sql_scripts.py b/tools/ci/generate_sql_scripts.py index 5c7cf97230b..3b2687a733a 100644 --- a/tools/ci/generate_sql_scripts.py +++ b/tools/ci/generate_sql_scripts.py @@ -54,9 +54,9 @@ for file in orderedSqlFiles: if file.endswith(".py"): # Begin snowflakery if file == "16-17.py": - scriptLines.append("python3 SQL/updates/" + str(file) + " 127.0.0.1 root root feedback feedback round\n") + scriptLines.append("python3 SQL/updates/" + str(file) + " 127.0.0.1 root root paradise_gamedb feedback round\n") elif file == "17-18.py": - scriptLines.append("python3 SQL/updates/" + str(file) + " 127.0.0.1 root root feedback feedback feedback_2\n") + scriptLines.append("python3 SQL/updates/" + str(file) + " 127.0.0.1 root root paradise_gamedb feedback feedback_2\n") else: print("ERROR: CI failed due to invalid python file in SQL/updates") exit(1) @@ -64,8 +64,8 @@ for file in orderedSqlFiles: inFile = open("SQL/updates/" + file, "r") fileLines = inFile.readlines() inFile.close() - # Add in a line which tells it to use the feedback DB - fileLines.insert(0, "USE `feedback`;\n") + # Add in a line which tells it to use the paradise DB + fileLines.insert(0, "USE `paradise_gamedb`;\n") # Write new files to be used by the testing script outFile = open("tools/ci/sql_tmp/" + file, "w+") @@ -75,9 +75,7 @@ for file in orderedSqlFiles: # Add a line to the script being made that tells it to use this SQL file scriptLines.append("mysql -u root -proot < tools/ci/sql_tmp/" + str(file) + "\n") -scriptLines.append("mysql -u root -proot -e 'DROP DATABASE feedback;'\n") -scriptLines.append("mysql -u root -proot < SQL/paradise_schema_prefixed.sql\n") -scriptLines.append("mysql -u root -proot -e 'DROP DATABASE feedback;'\n") +scriptLines.append("mysql -u root -proot -e 'DROP DATABASE paradise_gamedb;'\n") scriptLines.append("mysql -u root -proot < SQL/paradise_schema.sql\n") outputScript = open("tools/ci/validate_sql.sh", "w+") diff --git a/tools/ci/run_server.sh b/tools/ci/run_server.sh index c03809363c1..bb32d85f940 100755 --- a/tools/ci/run_server.sh +++ b/tools/ci/run_server.sh @@ -1,13 +1,7 @@ #!/bin/bash set -euo pipefail -cp config/example/* config/ - -#Apply test DB config for SQL connectivity -rm config/dbconfig.txt -cp tools/ci/dbconfig.txt config - -# Now run the server and the unit tests +# Run the server and the unit tests DreamDaemon paradise.dmb -close -trusted -verbose # Check if the unit tests actually suceeded diff --git a/tools/ci/sql_v0.sql b/tools/ci/sql_v0.sql index 201347a2f1e..d9c5d235fc2 100644 --- a/tools/ci/sql_v0.sql +++ b/tools/ci/sql_v0.sql @@ -16,12 +16,12 @@ /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping database structure for feedback -DROP DATABASE IF EXISTS `feedback`; -CREATE DATABASE IF NOT EXISTS `feedback` /*!40100 DEFAULT CHARACTER SET utf8 */; -USE `feedback`; +-- Dumping database structure for paradise_gamedb +DROP DATABASE IF EXISTS `paradise_gamedb`; +CREATE DATABASE IF NOT EXISTS `paradise_gamedb` /*!40100 DEFAULT CHARACTER SET utf8 */; +USE `paradise_gamedb`; --- Dumping structure for table feedback.admin +-- Dumping structure for table paradise_gamedb.admin DROP TABLE IF EXISTS `admin`; CREATE TABLE IF NOT EXISTS `admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -32,13 +32,13 @@ CREATE TABLE IF NOT EXISTS `admin` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.admin: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.admin: ~0 rows (approximately) /*!40000 ALTER TABLE `admin` DISABLE KEYS */; INSERT INTO `admin` (`id`, `ckey`, `rank`, `level`, `flags`) VALUES (1, 'AffectedArc07', 'Administrator', 0, 131071); /*!40000 ALTER TABLE `admin` ENABLE KEYS */; --- Dumping structure for table feedback.admin_log +-- Dumping structure for table paradise_gamedb.admin_log DROP TABLE IF EXISTS `admin_log`; CREATE TABLE IF NOT EXISTS `admin_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -49,13 +49,13 @@ CREATE TABLE IF NOT EXISTS `admin_log` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.admin_log: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.admin_log: ~0 rows (approximately) /*!40000 ALTER TABLE `admin_log` DISABLE KEYS */; INSERT INTO `admin_log` (`id`, `datetime`, `adminckey`, `adminip`, `log`) VALUES (1, '2020-04-24 17:36:49', 'AffectedArc07', '127.0.0.1', 'Created this row'); /*!40000 ALTER TABLE `admin_log` ENABLE KEYS */; --- Dumping structure for table feedback.ban +-- Dumping structure for table paradise_gamedb.ban DROP TABLE IF EXISTS `ban`; CREATE TABLE IF NOT EXISTS `ban` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -84,13 +84,13 @@ CREATE TABLE IF NOT EXISTS `ban` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.ban: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.ban: ~0 rows (approximately) /*!40000 ALTER TABLE `ban` DISABLE KEYS */; INSERT INTO `ban` (`id`, `bantime`, `serverip`, `bantype`, `reason`, `job`, `duration`, `rounds`, `expiration_time`, `ckey`, `computerid`, `ip`, `a_ckey`, `a_computerid`, `a_ip`, `who`, `adminwho`, `edits`, `unbanned`, `unbanned_datetime`, `unbanned_ckey`, `unbanned_computerid`, `unbanned_ip`) VALUES (1, '2020-04-24 17:40:05', '127.0.0.1', 'PERMABAN', 'Breaking it all', NULL, -1, NULL, '2020-04-24 17:40:20', 'AffectedArc07', '1111111111', '127.0.0.1', 'AffectedArc07', '1111111111', '127.0.0.1', 'Player1, Player2, Whoever', 'SomeAdmin', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `ban` ENABLE KEYS */; --- Dumping structure for table feedback.characters +-- Dumping structure for table paradise_gamedb.characters DROP TABLE IF EXISTS `characters`; CREATE TABLE IF NOT EXISTS `characters` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -165,13 +165,13 @@ CREATE TABLE IF NOT EXISTS `characters` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table feedback.characters: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.characters: ~0 rows (approximately) /*!40000 ALTER TABLE `characters` DISABLE KEYS */; INSERT INTO `characters` (`id`, `ckey`, `slot`, `OOC_Notes`, `real_name`, `name_is_always_random`, `gender`, `age`, `species`, `language`, `hair_red`, `hair_green`, `hair_blue`, `secondary_hair_red`, `secondary_hair_green`, `secondary_hair_blue`, `facial_red`, `facial_green`, `facial_blue`, `secondary_facial_red`, `secondary_facial_green`, `secondary_facial_blue`, `skin_tone`, `skin_red`, `skin_green`, `skin_blue`, `marking_colours`, `head_accessory_red`, `head_accessory_green`, `head_accessory_blue`, `hair_style_name`, `facial_style_name`, `marking_styles`, `head_accessory_style_name`, `alt_head_name`, `eyes_red`, `eyes_green`, `eyes_blue`, `underwear`, `undershirt`, `backbag`, `b_type`, `alternate_option`, `job_support_high`, `job_support_med`, `job_support_low`, `job_medsci_high`, `job_medsci_med`, `job_medsci_low`, `job_engsec_high`, `job_engsec_med`, `job_engsec_low`, `job_karma_high`, `job_karma_med`, `job_karma_low`, `flavor_text`, `med_record`, `sec_record`, `gen_record`, `disabilities`, `player_alt_titles`, `organ_data`, `rlimb_data`, `nanotrasen_relation`, `speciesprefs`, `socks`, `body_accessory`, `gear`, `autohiss`) VALUES (1, 'AffectedArc07', 1, 'Some notes', 'John Smith', 0, 'male', 25, 'Human', 'None', 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 25, 10, 10, 10, 'head=%23000000&body=%23000000&tail=%23000000', 10, 10, 10, 'Bald', 'Shaved', 'head=None&body=None&tail=None', 'None', 'None', 10, 10, 10, 'Nude', 'Nude', 'Grey Backpack', 'A+', 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'He is short', 'Yes', 'Yes', 'Yes', 0, ' ', ' ', ' ', 'Neutral', 0, 'Nude', ' ', ' ', 0); /*!40000 ALTER TABLE `characters` ENABLE KEYS */; --- Dumping structure for table feedback.customuseritems +-- Dumping structure for table paradise_gamedb.customuseritems DROP TABLE IF EXISTS `customuseritems`; CREATE TABLE IF NOT EXISTS `customuseritems` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -186,13 +186,13 @@ CREATE TABLE IF NOT EXISTS `customuseritems` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.customuseritems: 0 rows +-- Dumping data for table paradise_gamedb.customuseritems: 0 rows /*!40000 ALTER TABLE `customuseritems` DISABLE KEYS */; INSERT INTO `customuseritems` (`id`, `cuiCKey`, `cuiRealName`, `cuiPath`, `cuiItemName`, `cuiDescription`, `cuiReason`, `cuiPropAdjust`, `cuiJobMask`) VALUES (1, 'AffectedArc07', 'Character Name', '/obj/item/multitool', NULL, NULL, NULL, NULL, '*'); /*!40000 ALTER TABLE `customuseritems` ENABLE KEYS */; --- Dumping structure for table feedback.death +-- Dumping structure for table paradise_gamedb.death DROP TABLE IF EXISTS `death`; CREATE TABLE IF NOT EXISTS `death` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -213,13 +213,13 @@ CREATE TABLE IF NOT EXISTS `death` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.death: 0 rows +-- Dumping data for table paradise_gamedb.death: 0 rows /*!40000 ALTER TABLE `death` DISABLE KEYS */; INSERT INTO `death` (`id`, `pod`, `coord`, `tod`, `job`, `special`, `name`, `byondkey`, `laname`, `lakey`, `gender`, `bruteloss`, `brainloss`, `fireloss`, `oxyloss`) VALUES (1, 'Central Primary Hallway', '1,1,1', '2020-04-24 17:58:41', 'Captain', 'Traitor', 'John Smith', 'AffectedArc07', 'Bad Man', 'BadGuyCkey', 'Male', 12, 12, 12, 12); /*!40000 ALTER TABLE `death` ENABLE KEYS */; --- Dumping structure for table feedback.donators +-- Dumping structure for table paradise_gamedb.donators DROP TABLE IF EXISTS `donators`; CREATE TABLE IF NOT EXISTS `donators` ( `patreon_name` varchar(32) NOT NULL, @@ -231,13 +231,13 @@ CREATE TABLE IF NOT EXISTS `donators` ( PRIMARY KEY (`patreon_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table feedback.donators: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.donators: ~0 rows (approximately) /*!40000 ALTER TABLE `donators` DISABLE KEYS */; INSERT INTO `donators` (`patreon_name`, `tier`, `ckey`, `start_date`, `end_date`, `active`) VALUES ('AffectedArc07', 3, 'AffectedArc07', '2020-04-24 18:00:47', '2020-04-24 18:00:48', 1); /*!40000 ALTER TABLE `donators` ENABLE KEYS */; --- Dumping structure for table feedback.feedback +-- Dumping structure for table paradise_gamedb.feedback DROP TABLE IF EXISTS `feedback`; CREATE TABLE IF NOT EXISTS `feedback` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -249,13 +249,13 @@ CREATE TABLE IF NOT EXISTS `feedback` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.feedback: 0 rows +-- Dumping data for table paradise_gamedb.feedback: 0 rows /*!40000 ALTER TABLE `feedback` DISABLE KEYS */; INSERT INTO `feedback` (`id`, `time`, `round_id`, `var_name`, `var_value`, `details`) VALUES (1, '2020-04-24 18:01:08', 1, 'yes', 1, 'feedback scares me'); /*!40000 ALTER TABLE `feedback` ENABLE KEYS */; --- Dumping structure for table feedback.karma +-- Dumping structure for table paradise_gamedb.karma DROP TABLE IF EXISTS `karma`; CREATE TABLE IF NOT EXISTS `karma` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -271,13 +271,13 @@ CREATE TABLE IF NOT EXISTS `karma` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.karma: 0 rows +-- Dumping data for table paradise_gamedb.karma: 0 rows /*!40000 ALTER TABLE `karma` DISABLE KEYS */; INSERT INTO `karma` (`id`, `spendername`, `spenderkey`, `receivername`, `receiverkey`, `receiverrole`, `receiverspecial`, `isnegative`, `spenderip`, `time`) VALUES (1, 'John Smith', 'AffectedArc07', 'Other Man', 'OtherCkey', 'Captain', 'Special', 0, '127.0.0.1', '2020-04-24 18:02:00'); /*!40000 ALTER TABLE `karma` ENABLE KEYS */; --- Dumping structure for table feedback.karmatotals +-- Dumping structure for table paradise_gamedb.karmatotals DROP TABLE IF EXISTS `karmatotals`; CREATE TABLE IF NOT EXISTS `karmatotals` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -287,13 +287,13 @@ CREATE TABLE IF NOT EXISTS `karmatotals` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.karmatotals: 0 rows +-- Dumping data for table paradise_gamedb.karmatotals: 0 rows /*!40000 ALTER TABLE `karmatotals` DISABLE KEYS */; INSERT INTO `karmatotals` (`id`, `byondkey`, `karma`, `karmaspent`) VALUES (1, 'AffectedArc07', 1000, 100); /*!40000 ALTER TABLE `karmatotals` ENABLE KEYS */; --- Dumping structure for table feedback.legacy_population +-- Dumping structure for table paradise_gamedb.legacy_population DROP TABLE IF EXISTS `legacy_population`; CREATE TABLE IF NOT EXISTS `legacy_population` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -303,13 +303,13 @@ CREATE TABLE IF NOT EXISTS `legacy_population` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.legacy_population: 0 rows +-- Dumping data for table paradise_gamedb.legacy_population: 0 rows /*!40000 ALTER TABLE `legacy_population` DISABLE KEYS */; INSERT INTO `legacy_population` (`id`, `playercount`, `admincount`, `time`) VALUES (1, 233, 23, '2020-04-24 18:02:19'); /*!40000 ALTER TABLE `legacy_population` ENABLE KEYS */; --- Dumping structure for table feedback.library +-- Dumping structure for table paradise_gamedb.library DROP TABLE IF EXISTS `library`; CREATE TABLE IF NOT EXISTS `library` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -322,13 +322,13 @@ CREATE TABLE IF NOT EXISTS `library` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.library: 0 rows +-- Dumping data for table paradise_gamedb.library: 0 rows /*!40000 ALTER TABLE `library` DISABLE KEYS */; INSERT INTO `library` (`id`, `author`, `title`, `content`, `category`, `ckey`, `flagged`) VALUES (1, 'John Smith', 'A book', 'WOW WHAT A BOOK', 'Fiction', 'AffectedArc07', 0); /*!40000 ALTER TABLE `library` ENABLE KEYS */; --- Dumping structure for table feedback.memo +-- Dumping structure for table paradise_gamedb.memo DROP TABLE IF EXISTS `memo`; CREATE TABLE IF NOT EXISTS `memo` ( `ckey` varchar(32) NOT NULL, @@ -339,13 +339,13 @@ CREATE TABLE IF NOT EXISTS `memo` ( PRIMARY KEY (`ckey`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table feedback.memo: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.memo: ~0 rows (approximately) /*!40000 ALTER TABLE `memo` DISABLE KEYS */; INSERT INTO `memo` (`ckey`, `memotext`, `timestamp`, `last_editor`, `edits`) VALUES ('AffectedArc07', 'Remember to test your PRs', '2020-04-24 18:04:00', NULL, NULL); /*!40000 ALTER TABLE `memo` ENABLE KEYS */; --- Dumping structure for table feedback.notes +-- Dumping structure for table paradise_gamedb.notes DROP TABLE IF EXISTS `notes`; CREATE TABLE IF NOT EXISTS `notes` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -359,13 +359,13 @@ CREATE TABLE IF NOT EXISTS `notes` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.notes: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.notes: ~0 rows (approximately) /*!40000 ALTER TABLE `notes` DISABLE KEYS */; INSERT INTO `notes` (`id`, `ckey`, `notetext`, `timestamp`, `adminckey`, `last_editor`, `edits`, `server`) VALUES (1, 'AffectedArc07', 'Cant behave', '2020-04-24 18:04:14', 'AffectedArc07', NULL, NULL, 'SS13'); /*!40000 ALTER TABLE `notes` ENABLE KEYS */; --- Dumping structure for table feedback.player +-- Dumping structure for table paradise_gamedb.player DROP TABLE IF EXISTS `player`; CREATE TABLE IF NOT EXISTS `player` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -395,13 +395,13 @@ CREATE TABLE IF NOT EXISTS `player` ( UNIQUE KEY `ckey` (`ckey`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.player: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.player: ~0 rows (approximately) /*!40000 ALTER TABLE `player` DISABLE KEYS */; INSERT INTO `player` (`id`, `ckey`, `firstseen`, `lastseen`, `ip`, `computerid`, `lastadminrank`, `ooccolor`, `UI_style`, `UI_style_color`, `UI_style_alpha`, `be_role`, `default_slot`, `toggles`, `sound`, `randomslot`, `volume`, `nanoui_fancy`, `show_ghostitem_attack`, `lastchangelog`, `windowflashing`, `ghost_anonsay`, `exp`) VALUES (1, 'AffectedArc07', '2020-04-24 18:04:44', '2020-04-24 18:04:45', '127.0.0.1', '1111111111', 'Player', '#b82e00', 'Midnight', '#ffffff', 10, NULL, 1, 1024, 16, 0, 100, 1, 1, '0', 1, 1, NULL); /*!40000 ALTER TABLE `player` ENABLE KEYS */; --- Dumping structure for table feedback.poll_option +-- Dumping structure for table paradise_gamedb.poll_option DROP TABLE IF EXISTS `poll_option`; CREATE TABLE IF NOT EXISTS `poll_option` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -416,13 +416,13 @@ CREATE TABLE IF NOT EXISTS `poll_option` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.poll_option: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.poll_option: ~0 rows (approximately) /*!40000 ALTER TABLE `poll_option` DISABLE KEYS */; INSERT INTO `poll_option` (`id`, `pollid`, `text`, `percentagecalc`, `minval`, `maxval`, `descmin`, `descmid`, `descmax`) VALUES (1, 1, 'What is this', 12, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `poll_option` ENABLE KEYS */; --- Dumping structure for table feedback.poll_question +-- Dumping structure for table paradise_gamedb.poll_question DROP TABLE IF EXISTS `poll_question`; CREATE TABLE IF NOT EXISTS `poll_question` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -437,13 +437,13 @@ CREATE TABLE IF NOT EXISTS `poll_question` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.poll_question: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.poll_question: ~0 rows (approximately) /*!40000 ALTER TABLE `poll_question` DISABLE KEYS */; INSERT INTO `poll_question` (`id`, `polltype`, `starttime`, `endtime`, `question`, `adminonly`, `multiplechoiceoptions`, `createdby_ckey`, `createdby_ip`) VALUES (1, 'OPTION', '2020-04-24 18:05:31', '2020-04-24 18:05:33', 'Is this a good idea', 0, NULL, NULL, NULL); /*!40000 ALTER TABLE `poll_question` ENABLE KEYS */; --- Dumping structure for table feedback.poll_textreply +-- Dumping structure for table paradise_gamedb.poll_textreply DROP TABLE IF EXISTS `poll_textreply`; CREATE TABLE IF NOT EXISTS `poll_textreply` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -456,13 +456,13 @@ CREATE TABLE IF NOT EXISTS `poll_textreply` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.poll_textreply: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.poll_textreply: ~0 rows (approximately) /*!40000 ALTER TABLE `poll_textreply` DISABLE KEYS */; INSERT INTO `poll_textreply` (`id`, `datetime`, `pollid`, `ckey`, `ip`, `replytext`, `adminrank`) VALUES (1, '2020-04-24 18:05:42', 1, 'AffectedArc07', '127.0.0.1', 'This is far too much work for a CI rework', 'Player'); /*!40000 ALTER TABLE `poll_textreply` ENABLE KEYS */; --- Dumping structure for table feedback.poll_vote +-- Dumping structure for table paradise_gamedb.poll_vote DROP TABLE IF EXISTS `poll_vote`; CREATE TABLE IF NOT EXISTS `poll_vote` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -476,13 +476,13 @@ CREATE TABLE IF NOT EXISTS `poll_vote` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.poll_vote: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.poll_vote: ~0 rows (approximately) /*!40000 ALTER TABLE `poll_vote` DISABLE KEYS */; INSERT INTO `poll_vote` (`id`, `datetime`, `pollid`, `optionid`, `ckey`, `ip`, `adminrank`, `rating`) VALUES (1, '2020-04-24 18:06:02', 1, 1, 'AffectedArc07', '127.0.0.1', 'Administrator', NULL); /*!40000 ALTER TABLE `poll_vote` ENABLE KEYS */; --- Dumping structure for table feedback.privacy +-- Dumping structure for table paradise_gamedb.privacy DROP TABLE IF EXISTS `privacy`; CREATE TABLE IF NOT EXISTS `privacy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -492,13 +492,13 @@ CREATE TABLE IF NOT EXISTS `privacy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.privacy: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.privacy: ~0 rows (approximately) /*!40000 ALTER TABLE `privacy` DISABLE KEYS */; INSERT INTO `privacy` (`id`, `datetime`, `ckey`, `option`) VALUES (1, '2020-04-24 18:06:20', 'AffectedArc07', '1'); /*!40000 ALTER TABLE `privacy` ENABLE KEYS */; --- Dumping structure for table feedback.watch +-- Dumping structure for table paradise_gamedb.watch DROP TABLE IF EXISTS `watch`; CREATE TABLE IF NOT EXISTS `watch` ( `ckey` varchar(32) NOT NULL, @@ -510,13 +510,13 @@ CREATE TABLE IF NOT EXISTS `watch` ( PRIMARY KEY (`ckey`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table feedback.watch: ~0 rows (approximately) +-- Dumping data for table paradise_gamedb.watch: ~0 rows (approximately) /*!40000 ALTER TABLE `watch` DISABLE KEYS */; INSERT INTO `watch` (`ckey`, `reason`, `timestamp`, `adminckey`, `last_editor`, `edits`) VALUES ('AffectedArc07', 'Cant behave', '2020-04-24 18:06:33', 'AffectedArc07', NULL, NULL); /*!40000 ALTER TABLE `watch` ENABLE KEYS */; --- Dumping structure for table feedback.whitelist +-- Dumping structure for table paradise_gamedb.whitelist DROP TABLE IF EXISTS `whitelist`; CREATE TABLE IF NOT EXISTS `whitelist` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -526,7 +526,7 @@ CREATE TABLE IF NOT EXISTS `whitelist` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; --- Dumping data for table feedback.whitelist: 0 rows +-- Dumping data for table paradise_gamedb.whitelist: 0 rows /*!40000 ALTER TABLE `whitelist` DISABLE KEYS */; INSERT INTO `whitelist` (`id`, `ckey`, `job`, `species`) VALUES (1, 'AffectedArc07', 'Captain', 'Machine'); @@ -535,4 +535,4 @@ INSERT INTO `whitelist` (`id`, `ckey`, `job`, `species`) VALUES /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); \ No newline at end of file +SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); diff --git a/tools/ci/validate_rustg_windows.py b/tools/ci/validate_rustg_windows.py index 3d4535484ed..787bafb9a60 100644 --- a/tools/ci/validate_rustg_windows.py +++ b/tools/ci/validate_rustg_windows.py @@ -3,13 +3,14 @@ # This script is invoked by GitHub actions as part of CI to validate that the windows DLL for RUSTG works and creates proper formats # Imports -import os, sys +import os, json from ctypes import * from datetime import datetime, timedelta # Initial vars ci_log_file = "ci_log.log" ci_testing_text = "This is a test message" +ci_toml_file_location = "config/example/config.toml" # Helpers def success(msg): @@ -88,4 +89,19 @@ if logline in valid_results: else: fail("Log timestamp is not valid 8601. Got {}".format(logline)) +# Make sure we can parse TOML +string_array = c_char_p * 1 +sa = string_array(bytes(ci_toml_file_location, "ascii")) +rustg_dll.toml2json.argtypes = [c_int, c_char_p * 1] +# Set args for JSON retrieval +rustg_dll.toml2json.restype = c_char_p + +try: + # Run it + output_json = rustg_dll.toml2json(1, sa).decode() + json.loads(output_json) + success("toml2json conversion successful") +except Exception: + fail("Failed to convert toml2json") + exit(0) # Success diff --git a/tools/githubChangelogProcessor.php b/tools/githubChangelogProcessor.php index 6e8c4094699..a88cd99580c 100644 --- a/tools/githubChangelogProcessor.php +++ b/tools/githubChangelogProcessor.php @@ -32,7 +32,7 @@ $dbServer = "localhost"; // Hostname of the database server (default localhost) $dbPort = "3306"; // Port of the database server (default 3306) | MUST BE A STRING $dbUser = "root"; // Database username (default root) $dbPassword = ""; // Database password (default blank) -$dbDatabase = "feedback"; // Database name (default feedback) +$dbDatabase = "paradise_gamedb"; // Database name (default paradise_gamedb) //servers to announce PRs to. $servers = array(); diff --git a/tools/map_conflict_fixer/README.md b/tools/map_conflict_fixer/README.md index 5af8d3aadf0..31955198613 100644 --- a/tools/map_conflict_fixer/README.md +++ b/tools/map_conflict_fixer/README.md @@ -1,29 +1,29 @@ -#Map Conflict Fixer/Helper# +# Map Conflict Fixer/Helper # The map conflict fixer is a script that can help you fix map conflicts easier and faster. Here's how it works: -###Before using### +### Before using ### You need git for this, of course. Make sure your development branch is up to date before starting a map edit to ensure the script outputs a correct fix. -##Dictionary mode## +## Dictionary mode ## Dictionary conflicts are the easiest to fix, you simply need to create more models to accommodate your changes and everyone elses. When you run in this mode, if the script finishes successfuly the map should be ready to be commited. If the script fails in dictionary mode, you can run it again in full fix mode. -##Full Fix mode## +## Full Fix mode ## When you and someone else edit the same coordinate, there is no easy way to fix the conflict. You need to get your hands dirty. The script will mark every tile with a marker type to help you identify what needs fixing in the map editor. After you edit and fix a marked map, you should run it through the map merger. The .backup file should be the same you used before. -###Priorities### +### Priorities ### In Full Fix mode, the script needs to know which map version has higher priority, yours or someone elses. This important so tiles with multiple area and turf types aren't created. Your version has priority - In each conflicted coordinate, your floor type and your area type will be used Their version has priority - In each conflicted coordinate, your floor type and your area type will not be used -##IMPORTANT## +## IMPORTANT ## This script is in a testing phase and you should not consider any output to be safe. Always verify the maps this script produced to make sure nothing is out of place.