diff --git a/_maps/map_files/shuttles/emergency_shadow.dmm b/_maps/map_files/shuttles/emergency_shadow.dmm index a7d91591e32..f5aa7fa5d8f 100644 --- a/_maps/map_files/shuttles/emergency_shadow.dmm +++ b/_maps/map_files/shuttles/emergency_shadow.dmm @@ -154,7 +154,8 @@ /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 5 }, -/turf/simulated/floor/engine/plasma, +/obj/structure/plasmafire_generator/shadow, +/turf/simulated/floor/engine/airless, /area/shuttle/escape) "ge" = ( /obj/structure/table/glass/reinforced/plastitanium, @@ -230,9 +231,6 @@ }, /turf/simulated/floor/catwalk, /area/shuttle/escape) -"jR" = ( -/turf/simulated/floor/engine/o2, -/area/shuttle/escape) "kx" = ( /obj/structure/chair/comfy/shuttle, /turf/simulated/floor/mineral/plastitanium/red/brig, @@ -354,7 +352,8 @@ /obj/machinery/atmospherics/pipe/manifold/hidden{ dir = 4 }, -/turf/simulated/floor/engine/plasma, +/obj/structure/plasmafire_generator/shadow, +/turf/simulated/floor/engine/airless, /area/shuttle/escape) "pi" = ( /obj/effect/turf_decal/stripes/white/line{ @@ -565,7 +564,8 @@ }, /area/shuttle/escape) "zj" = ( -/turf/simulated/floor/engine/plasma, +/obj/structure/plasmafire_generator/shadow, +/turf/simulated/floor/engine/airless, /area/shuttle/escape) "zs" = ( /obj/structure/reagent_dispensers/fueltank, @@ -639,7 +639,8 @@ /area/template_noop) "CD" = ( /obj/machinery/igniter/shadow, -/turf/simulated/floor/engine/plasma, +/obj/structure/plasmafire_generator/shadow, +/turf/simulated/floor/engine/airless, /area/shuttle/escape) "CK" = ( /obj/structure/shuttle/engine/propulsion/burst{ @@ -680,7 +681,8 @@ /area/shuttle/escape) "DY" = ( /obj/machinery/atmospherics/pipe/simple/hidden/universal, -/turf/simulated/floor/engine/plasma, +/obj/structure/plasmafire_generator/shadow, +/turf/simulated/floor/engine/airless, /area/shuttle/escape) "DZ" = ( /obj/effect/turf_decal/stripes/red/corner{ @@ -739,7 +741,8 @@ dir = 4; invisibility = 99 }, -/turf/simulated/floor/engine/plasma, +/obj/structure/plasmafire_generator/shadow, +/turf/simulated/floor/engine/airless, /area/shuttle/escape) "Gx" = ( /obj/structure/extinguisher_cabinet{ @@ -1151,7 +1154,8 @@ dir = 9 }, /obj/machinery/atmospherics/meter, -/turf/simulated/floor/engine/plasma, +/obj/structure/plasmafire_generator/shadow, +/turf/simulated/floor/engine/airless, /area/shuttle/escape) "Xp" = ( /obj/structure/marker_beacon/dock_marker/collision, @@ -1357,9 +1361,9 @@ Lv OL Bu tb -jR +zj CD -jR +zj cX wF cH diff --git a/code/__DEFINES/atmospherics_defines.dm b/code/__DEFINES/atmospherics_defines.dm index a27e1894d03..ae6031aea77 100644 --- a/code/__DEFINES/atmospherics_defines.dm +++ b/code/__DEFINES/atmospherics_defines.dm @@ -170,6 +170,12 @@ /// Cold environment: Normal atmosphere, -93 C. #define ENVIRONMENT_COLD "cold" +/// How far away should we load the pressure HUD data from MILLA? +#define PRESSURE_HUD_LOAD_RADIUS 15 + +/// How far away should we send the pressure HUD to the player? +#define PRESSURE_HUD_RADIUS 12 + // Vent pump modes /// Don't go over the external pressure #define ONLY_CHECK_EXT_PRESSURE 1 diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index a24fcae6c56..59ab3c75e31 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -27,6 +27,7 @@ #define DIAG_AIRLOCK_HUD "22" // Airlock shock overlay #define GLAND_HUD "23"//Gland indicators for abductors #define JANI_HUD "24" // Sign overlay over cleanable decals +#define PRESSURE_HUD "25" // Pressure coloring for tiles //by default everything in the hud_list of an atom is an image //a value in hud_list with one of these will change that behavior @@ -42,22 +43,23 @@ #define DATA_HUD_DIAGNOSTIC_ADVANCED 6 #define DATA_HUD_HYDROPONIC 7 #define DATA_HUD_JANITOR 8 +#define DATA_HUD_PRESSURE 9 //antag HUD defines -#define ANTAG_HUD_CULT 9 -#define ANTAG_HUD_REV 10 -#define ANTAG_HUD_OPS 11 -#define ANTAG_HUD_WIZ 12 -#define ANTAG_HUD_SHADOW 13 -#define ANTAG_HUD_TRAITOR 14 -#define ANTAG_HUD_NINJA 15 -#define ANTAG_HUD_CHANGELING 16 -#define ANTAG_HUD_VAMPIRE 17 -#define ANTAG_HUD_ABDUCTOR 18 -#define DATA_HUD_ABDUCTOR 19 -#define ANTAG_HUD_EVENTMISC 20 -#define ANTAG_HUD_BLOB 21 -#define ANTAG_HUD_ZOMBIE 22 -#define ANTAG_HUD_MIND_FLAYER 23 +#define ANTAG_HUD_CULT 10 +#define ANTAG_HUD_REV 11 +#define ANTAG_HUD_OPS 12 +#define ANTAG_HUD_WIZ 13 +#define ANTAG_HUD_SHADOW 14 +#define ANTAG_HUD_TRAITOR 15 +#define ANTAG_HUD_NINJA 16 +#define ANTAG_HUD_CHANGELING 17 +#define ANTAG_HUD_VAMPIRE 18 +#define ANTAG_HUD_ABDUCTOR 19 +#define DATA_HUD_ABDUCTOR 20 +#define ANTAG_HUD_EVENTMISC 21 +#define ANTAG_HUD_BLOB 22 +#define ANTAG_HUD_ZOMBIE 23 +#define ANTAG_HUD_MIND_FLAYER 24 // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index 60638b439f8..0dbc154ec0b 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -84,15 +84,16 @@ /** * Air alarm modes */ -#define AALARM_MODE_SCRUBBING 1 -#define AALARM_MODE_VENTING 2 //makes draught +#define AALARM_MODE_FILTERING 1 +#define AALARM_MODE_DRAUGHT 2 //makes draught #define AALARM_MODE_PANIC 3 //like siphon, but stronger (enables widenet) -#define AALARM_MODE_REPLACEMENT 4 //sucks off all air, then refill and swithes to scrubbing +#define AALARM_MODE_CYCLE 4 //sucks off all air, then refill and swithes to scrubbing #define AALARM_MODE_SIPHON 5 //Scrubbers suck air #define AALARM_MODE_CONTAMINATED 6 //Turns on all filtering and widenet scrubbing. -#define AALARM_MODE_REFILL 7 //just like normal, but with triple the air output +#define AALARM_MODE_REFILL 7 //just like normal, but disables low pressure check until normalized, then switches to normal #define AALARM_MODE_OFF 8 #define AALARM_MODE_FLOOD 9 //Emagged mode; turns off scrubbers and pressure checks on vents +#define AALARM_MODE_CUSTOM 10 #define NUKE_STATUS_INTACT 0 #define NUKE_CORE_MISSING 1 diff --git a/code/__DEFINES/rust.dm b/code/__DEFINES/rust.dm index 0c337d93554..935f540bafd 100644 --- a/code/__DEFINES/rust.dm +++ b/code/__DEFINES/rust.dm @@ -53,14 +53,15 @@ // This needs to go BELOW the above define, otherwise the BYOND compiler can make the above immediate call disappear #undef RUSTLIBS_SUFFIX +/// Exists by default in 516, but needs to be defined for 515 or byondapi-rs doesn't like it. +/proc/byondapi_stack_trace(err) + CRASH(err) + /proc/milla_init_z(z) return RUSTLIB_CALL(milla_initialize, z) -/proc/is_milla_synchronous(tick) - return RUSTLIB_CALL(milla_is_synchronous, tick) - -/proc/set_tile_atmos(turf/T, airtight_north, airtight_east, airtight_south, airtight_west, atmos_mode, environment_id, oxygen, carbon_dioxide, nitrogen, toxins, sleeping_agent, agent_b, temperature, innate_heat_capacity) - return RUSTLIB_CALL(milla_set_tile, T, airtight_north, airtight_east, airtight_south, airtight_west, atmos_mode, environment_id, oxygen, carbon_dioxide, nitrogen, toxins, sleeping_agent, agent_b, temperature, innate_heat_capacity) +/proc/set_tile_atmos(turf/T, airtight_north, airtight_east, airtight_south, airtight_west, atmos_mode, environment_id, oxygen, carbon_dioxide, nitrogen, toxins, sleeping_agent, agent_b, temperature, innate_heat_capacity, hotspot_temperature, hotspot_volume) + return RUSTLIB_CALL(milla_set_tile, T, airtight_north, airtight_east, airtight_south, airtight_west, atmos_mode, environment_id, oxygen, carbon_dioxide, nitrogen, toxins, sleeping_agent, agent_b, temperature, innate_heat_capacity, hotspot_temperature, hotspot_volume) /proc/get_tile_atmos(turf/T, list/L) return RUSTLIB_CALL(milla_get_tile, T, L) @@ -74,6 +75,9 @@ /proc/get_interesting_atmos_tiles() return RUSTLIB_CALL(milla_get_interesting_tiles) +/proc/get_tracked_pressure_tiles() + return RUSTLIB_CALL(milla_get_tracked_pressure_tiles) + /proc/reduce_superconductivity(turf/T, list/superconductivity) var/north = superconductivity[1] var/east = superconductivity[2] @@ -93,6 +97,14 @@ return RUSTLIB_CALL(milla_set_tile_airtight, T, north, east, south, west) +/proc/create_hotspot(turf/T, hotspot_temperature, hotspot_volume) + return RUSTLIB_CALL(milla_create_hotspot, T, hotspot_temperature, hotspot_volume) + +/proc/track_pressure_tiles(atom/A, radius) + var/turf/T = get_turf(A) + if(istype(T)) + return RUSTLIB_CALL(milla_track_pressure_tiles, T, radius) + /proc/get_random_interesting_tile() return RUSTLIB_CALL(milla_get_random_interesting_tile) @@ -122,15 +134,20 @@ #define MILLA_INDEX_SUPERCONDUCTIVITY_WEST 13 #define MILLA_INDEX_INNATE_HEAT_CAPACITY 14 #define MILLA_INDEX_TEMPERATURE 15 +#define MILLA_INDEX_HOTSPOT_TEMPERATURE 16 +#define MILLA_INDEX_HOTSPOT_VOLUME 17 +#define MILLA_INDEX_WIND_X 18 +#define MILLA_INDEX_WIND_Y 19 +#define MILLA_INDEX_FUEL_BURNT 20 /// The number of values per tile. -#define MILLA_TILE_SIZE MILLA_INDEX_TEMPERATURE +#define MILLA_TILE_SIZE MILLA_INDEX_FUEL_BURNT // These are only for InterestingTiles. -#define MILLA_INDEX_TURF 16 -#define MILLA_INDEX_INTERESTING_REASONS 17 -#define MILLA_INDEX_AIRFLOW_X 18 -#define MILLA_INDEX_AIRFLOW_Y 19 +#define MILLA_INDEX_TURF 21 +#define MILLA_INDEX_INTERESTING_REASONS 22 +#define MILLA_INDEX_AIRFLOW_X 23 +#define MILLA_INDEX_AIRFLOW_Y 24 /// The number of values per interesting tile. #define MILLA_INTERESTING_TILE_SIZE MILLA_INDEX_AIRFLOW_Y diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 465d730a97d..78f6aa827f0 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -136,6 +136,8 @@ #define STATUS_EFFECT_REVERSED_HIGH_PRIESTESS /datum/status_effect/reversed_high_priestess //Bubblegum will chase the person hit by the effect, grabbing people at random. This can and WILL include the caster. +#define STATUS_EFFECT_UNBALANCED /datum/status_effect/unbalanced // Prevents you from automatically grabbing walls to stop moving in space. + #define STATUS_EFFECT_C_FOAMED /datum/status_effect/c_foamed #define STATUS_EFFECT_TEMPORAL_SLASH /datum/status_effect/temporal_slash @@ -165,6 +167,7 @@ #define STATUS_EFFECT_IMMOBILIZED /datum/status_effect/incapacitating/immobilized #define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping #define STATUS_EFFECT_SLOWED /datum/status_effect/incapacitating/slowed +#define STATUS_EFFECT_DIRECTIONAL_SLOW /datum/status_effect/incapacitating/directional_slow #define STATUS_EFFECT_PARALYZED /datum/status_effect/incapacitating/paralyzed #define STATUS_EFFECT_FLOORED /datum/status_effect/incapacitating/floored #define STATUS_EFFECT_ARMBAR /datum/status_effect/judo_armbar diff --git a/code/__DEFINES/wires_defines.dm b/code/__DEFINES/wires_defines.dm index c1d1160bbb0..7d267d96e95 100644 --- a/code/__DEFINES/wires_defines.dm +++ b/code/__DEFINES/wires_defines.dm @@ -23,7 +23,7 @@ #define WIRE_BOLT_LIGHT "Bolt Lights" // Air alarm -#define WIRE_SYPHON "Siphon" +#define WIRE_SIPHON "Siphon" #define WIRE_AALARM "Atmospherics Alarm" // Camera diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm index 9fdd40cef4f..245fcc291bb 100644 --- a/code/__HELPERS/trait_helpers.dm +++ b/code/__HELPERS/trait_helpers.dm @@ -180,6 +180,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_DWARF "dwarf" #define TRAIT_SILENT_FOOTSTEPS "silent_footsteps" //makes your footsteps completely silent #define TRAIT_MESON_VISION "meson_vision" +#define TRAIT_PRESSURE_VISION "pressure_vision" #define TRAIT_FLASH_PROTECTION "flash_protection" #define TRAIT_NIGHT_VISION "night_vision" #define TRAIT_EMOTE_MUTE "emote_mute" diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index c77e07a5548..19511211895 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -249,7 +249,7 @@ /proc/heat2color_g(temp) temp /= 100 if(temp <= 66) - . = max(0, min(255, 99.4708025861 * log(temp) - 161.1195681661)) + . = max(0, min(255, 99.4708025861 * log(max(temp, 1)) - 161.1195681661)) else . = max(0, min(255, 288.1221695283 * ((temp - 60) ** -0.0755148492))) @@ -261,7 +261,7 @@ if(temp <= 16) . = 0 else - . = max(0, min(255, 138.5177312231 * log(temp - 10) - 305.0447927307)) + . = max(0, min(255, 138.5177312231 * log(max(temp - 10, 1)) - 305.0447927307)) //Argument: Give this a space-separated string consisting of 6 numbers. Returns null if you don't /proc/text2matrix(matrixtext) diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 0e94506a74d..525e2cddb76 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -49,6 +49,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS, "TRAIT_ALCOHOL_TOLERANCE" = TRAIT_ALCOHOL_TOLERANCE, "TRAIT_MESON_VISION" = TRAIT_MESON_VISION, + "TRAIT_PRESSURE_VISION" = TRAIT_PRESSURE_VISION, "TRAIT_FLASH_PROTECTION" = TRAIT_FLASH_PROTECTION, "TRAIT_NIGHT_VISION" = TRAIT_NIGHT_VISION, "TRAIT_DRASK_SUPERCOOL" = TRAIT_DRASK_SUPERCOOL, diff --git a/code/_onclick/click_override.dm b/code/_onclick/click_override.dm index c59506c654e..5fc15d8e800 100644 --- a/code/_onclick/click_override.dm +++ b/code/_onclick/click_override.dm @@ -65,7 +65,7 @@ if(get_dist(T, target_turf) > P.shock_range) to_chat(user, "The target is too far away.") return FALSE - target_turf.hotspot_expose(2000, 400) + target_turf.hotspot_expose(2000, 1) playsound(user.loc, 'sound/effects/eleczap.ogg', 40, 1) var/atom/beam_from = user diff --git a/code/controllers/subsystem/SSair.dm b/code/controllers/subsystem/SSair.dm index 6da9b4916c1..270dbed5312 100644 --- a/code/controllers/subsystem/SSair.dm +++ b/code/controllers/subsystem/SSair.dm @@ -3,14 +3,16 @@ #define SSAIR_ATMOSMACHINERY 3 #define SSAIR_INTERESTING_TILES 4 #define SSAIR_HOTSPOTS 5 -#define SSAIR_BOUND_MIXTURES 6 -#define SSAIR_MILLA_TICK 7 +#define SSAIR_WINDY_TILES 6 +#define SSAIR_BOUND_MIXTURES 7 +#define SSAIR_PRESSURE_OVERLAY 8 +#define SSAIR_MILLA_TICK 9 SUBSYSTEM_DEF(air) name = "Atmospherics" init_order = INIT_ORDER_AIR priority = FIRE_PRIORITY_AIR - wait = 5 + wait = 2 flags = SS_BACKGROUND runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME offline_implications = "Turfs will no longer process atmos, and all atmospheric machines (including cryotubes) will no longer function. Shuttle call recommended." @@ -28,12 +30,16 @@ SUBSYSTEM_DEF(air) var/datum/resumable_cost_counter/cost_interesting_tiles = new() /// The cost of a pass through hotspots, shown in SS Info's C block as HS. var/datum/resumable_cost_counter/cost_hotspots = new() + /// The cost of a pass through windy tiles, shown in SS Info's C block as WT. + var/datum/resumable_cost_counter/cost_windy_tiles = new() /// The cost of a pass through pipenets, shown in SS Info's C block as PN. var/datum/resumable_cost_counter/cost_pipenets = new() /// The cost of a pass through building pipenets, shown in SS Info's C block as DPN. var/datum/resumable_cost_counter/cost_pipenets_to_build = new() /// The cost of a pass through atmos machinery, shown in SS Info's C block as AM. var/datum/resumable_cost_counter/cost_atmos_machinery = new() + /// The cost of a pass through loading pressure tiles, shown in SS Info's C block as PT. + var/datum/resumable_cost_counter/cost_pressure_tiles = new() /// The set of current bound mixtures. Shown in SS Info as BM:x+y, where x is the length at the start of the most recent processing, and y is the number of mixtures that have been added during processing. var/list/bound_mixtures = list() @@ -45,14 +51,24 @@ SUBSYSTEM_DEF(air) var/added_bound_mixtures = 0 /// The length of the most recent interesting tiles list, shown in SS Info as IT. var/interesting_tile_count = 0 - /// The set of current active hotspots. Length shown in SS Info as HS. - var/list/hotspots = list() + /// The length of the most recent hotspot list, shown in SS Info as HS. + var/hotspot_count = 0 + /// The length of the most recent windy tiles list, shown in SS Info as WT. + var/windy_tile_count = 0 /// The set of pipenets that need to be built. Length shown in SS Info as PTB. var/list/pipenets_to_build = list() /// The set of active pipenets. Length shown in SS Info as PN. var/list/pipenets = list() /// The set of active atmos machinery. Length shown in SS Info as AM. var/list/atmos_machinery = list() + /// The set of tiles that are currently on fire. + var/list/hotspots + /// The set of tiles that are still on fire after this tick. + var/list/new_hotspots + /// The set of tiles that are currently experiencing wind. + var/list/windy_tiles + /// The set of tiles that are still experiencing wind after this tick. + var/list/new_windy_tiles /// A list of atmos machinery to set up in Initialize. var/list/machinery_to_construct = list() @@ -69,18 +85,20 @@ SUBSYSTEM_DEF(air) /// Are we currently running in a MILLA-safe context, i.e. is is_synchronous *guaranteed* to be TRUE. Nothing outside of this file should change this. VAR_PRIVATE/in_milla_safe_code = FALSE - /// When did we start the last MILLA tick? - var/milla_tick_start = null - - /// Is MILLA (and hence SSair) reliably healthy? - var/healthy = TRUE - - /// When was MILLA last seen unhealthy? - var/last_unhealthy = 0 - /// A list of callbacks waiting for MILLA to finish its tick and enter synchronous mode. var/list/waiting_for_sync = list() + /// The coordinates of the pressure image we're currently loading. + var/pressure_x = 0 + var/pressure_y = 0 + var/pressure_z = 0 + + /// The people who were using the pressure HUD last tick. + var/list/pressure_hud_users = list() + + /// What alpha to use for the pressure overlay. Applies to everyone using the overlay. + var/pressure_overlay_alpha = 50 + /// A cost counter for resumable, repeating processes. /datum/resumable_cost_counter var/last_complete_ms = 0 @@ -112,13 +130,16 @@ SUBSYSTEM_DEF(air) msg += "MT:[round(cost_milla_tick,1)]|" msg += "IT:[cost_interesting_tiles.to_string()]|" msg += "HS:[cost_hotspots.to_string()]|" + msg += "WT:[cost_windy_tiles.to_string()]|" msg += "PN:[cost_pipenets.to_string()]|" msg += "PTB:[cost_pipenets_to_build.to_string()]|" - msg += "AM:[cost_atmos_machinery.to_string()]" + msg += "AM:[cost_atmos_machinery.to_string()]|" + msg += "PT:[cost_pressure_tiles.to_string()]" msg += "} " msg += "BM:[original_bound_mixtures]+[added_bound_mixtures]|" msg += "IT:[interesting_tile_count]|" - msg += "HS:[length(hotspots)]|" + msg += "HS:[hotspot_count]|" + msg += "WT:[windy_tile_count]|" msg += "PN:[length(pipenets)]|" msg += "AM:[length(atmos_machinery)]|" return msg.Join("") @@ -126,8 +147,9 @@ SUBSYSTEM_DEF(air) /datum/controller/subsystem/air/get_metrics() . = ..() var/list/cust = list() - cust["hotspots"] = length(hotspots) cust["interesting turfs"] = interesting_tile_count + cust["hotspots"] = hotspot_count + cust["windy turfs"] = windy_tile_count .["cost"] = cost_full.last_complete_ms .["custom"] = cust @@ -145,7 +167,6 @@ SUBSYSTEM_DEF(air) in_milla_safe_code = FALSE /datum/controller/subsystem/air/Recover() - hotspots = SSair.hotspots pipenets_to_build = SSair.pipenets_to_build pipenets = SSair.pipenets atmos_machinery = SSair.atmos_machinery @@ -154,23 +175,23 @@ SUBSYSTEM_DEF(air) currentpart = SSair.currentpart is_synchronous = SSair.is_synchronous +#define SLEEPABLE_TIMER (world.time + world.tick_usage * world.tick_lag / 100) /datum/controller/subsystem/air/fire(resumed = 0) // All atmos stuff assumes MILLA is synchronous. Ensure it actually is. if(!is_synchronous) - var/timer = TICK_USAGE_REAL + var/timer = SLEEPABLE_TIMER while(!is_synchronous) // Sleep for 1ms. sleep(0.01) if(MC_TICK_CHECK) - time_slept.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), FALSE) - cost_full.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), FALSE) + time_slept.record_progress((SLEEPABLE_TIMER - timer) * 100, FALSE) return - cost_full.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), FALSE) - time_slept.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), TRUE) + time_slept.record_progress((SLEEPABLE_TIMER - timer) * 100, TRUE) fire_sleepless(resumed) +#undef SLEEPABLE_TIMER /datum/controller/subsystem/air/proc/fire_sleepless(resumed) // Any proc that wants MILLA to be synchronous should not sleep. @@ -242,6 +263,19 @@ SUBSYSTEM_DEF(air) in_milla_safe_code = FALSE return resumed = 0 + currentpart = SSAIR_WINDY_TILES + + if(currentpart == SSAIR_WINDY_TILES) + timer = TICK_USAGE_REAL + + process_windy_tiles(resumed) + + cost_windy_tiles.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), state != SS_PAUSED && state != SS_PAUSING) + cost_full.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), FALSE) + if(state == SS_PAUSED || state == SS_PAUSING) + in_milla_safe_code = FALSE + return + resumed = 0 currentpart = SSAIR_BOUND_MIXTURES if(currentpart == SSAIR_BOUND_MIXTURES) @@ -255,6 +289,19 @@ SUBSYSTEM_DEF(air) in_milla_safe_code = FALSE return resumed = 0 + currentpart = SSAIR_PRESSURE_OVERLAY + + if(currentpart == SSAIR_PRESSURE_OVERLAY) + timer = TICK_USAGE_REAL + + process_pressure_overlay(resumed) + + cost_pressure_tiles.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), state != SS_PAUSED && state != SS_PAUSING) + cost_full.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), FALSE) + if(state == SS_PAUSED || state == SS_PAUSING) + in_milla_safe_code = FALSE + return + resumed = 0 currentpart = SSAIR_MILLA_TICK if(currentpart == SSAIR_MILLA_TICK) @@ -309,27 +356,26 @@ SUBSYSTEM_DEF(air) src.currentrun = atmos_machinery.Copy() //cache for sanic speed (lists are references anyways) var/list/currentrun = src.currentrun + var/list/supermatters = list() while(length(currentrun)) var/obj/machinery/atmospherics/M = currentrun[length(currentrun)] currentrun.len-- - if(isnull(M) || (M.process_atmos(seconds) == PROCESS_KILL)) + if(istype(M, /obj/machinery/atmospherics/supermatter_crystal)) + supermatters += M + else if(isnull(M) || (M.process_atmos(seconds) == PROCESS_KILL)) atmos_machinery -= M if(MC_TICK_CHECK) + for(var/SM in supermatters) + currentrun += SM return - -/datum/controller/subsystem/air/proc/process_hotspots(resumed = 0) - if(!resumed) - src.currentrun = hotspots.Copy() - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun - while(length(currentrun)) - var/obj/effect/hotspot/H = currentrun[length(currentrun)] - currentrun.len-- - if(H) - H.process() - else - hotspots -= H + while(length(supermatters)) + var/obj/machinery/atmospherics/supermatter_crystal/SM = supermatters[length(supermatters)] + supermatters.len-- + if(isnull(SM) || (SM.process_atmos(seconds) == PROCESS_KILL)) + atmos_machinery -= SM if(MC_TICK_CHECK) + for(var/other_sm in supermatters) + currentrun += other_sm return /datum/controller/subsystem/air/proc/process_interesting_tiles(resumed = 0) @@ -371,18 +417,183 @@ SUBSYSTEM_DEF(air) S.update_visuals() if(reasons & MILLA_INTERESTING_REASON_HOT) - var/datum/gas_mixture/air = T.get_readonly_air() - T.hotspot_expose(air.temperature(), CELL_VOLUME) - for(var/atom/movable/item in T) - item.temperature_expose(air, air.temperature(), CELL_VOLUME) - T.temperature_expose(air, air.temperature(), CELL_VOLUME) + var/turf/simulated/S = T + if(istype(S)) + if(isnull(S.active_hotspot)) + // Wasn't an active hotspot before, add it. + hotspots += S + + var/datum/gas_mixture/air = T.get_readonly_air() + T.temperature_expose(air.temperature()) + for(var/atom/movable/item in T) + item.temperature_expose(air, air.temperature(), CELL_VOLUME) + T.temperature_expose(air, air.temperature(), CELL_VOLUME) if(reasons & MILLA_INTERESTING_REASON_WIND) + var/turf/simulated/S = T + if(istype(S)) + if(isnull(S.wind_tick)) + // Didn't have wind before, add it. + windy_tiles += S + S.wind_tick = times_fired + S.wind_x = x_flow + S.wind_y = y_flow T.high_pressure_movements(x_flow, y_flow) if(MC_TICK_CHECK) return +/datum/controller/subsystem/air/proc/process_hotspots(resumed = 0) + if(!resumed) + src.currentrun = hotspots + new_hotspots = list() + hotspot_count = length(src.currentrun) + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + while(length(currentrun)) + var/turf/simulated/S = currentrun[length(currentrun)] + currentrun.len-- + + if(!istype(S)) + continue + + if(S.update_hotspot()) + // Is still a hotspot, keep it. + new_hotspots += S + + if(MC_TICK_CHECK) + return + + hotspots = new_hotspots + +/datum/controller/subsystem/air/proc/process_windy_tiles(resumed = 0) + if(!resumed) + src.currentrun = windy_tiles + new_windy_tiles = list() + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + while(length(currentrun)) + var/turf/simulated/S = currentrun[length(currentrun)] + currentrun.len-- + + if(!istype(S)) + continue + + if(S.update_wind()) + // Still has wind, keep it. + new_windy_tiles += S + + if(MC_TICK_CHECK) + return + + windy_tiles = new_windy_tiles + +/datum/controller/subsystem/air/proc/process_pressure_overlay(resumed = 0) + if(!resumed) + currentrun = list(get_tracked_pressure_tiles(), pressure_hud_users) + pressure_hud_users = list() + + //cache for sanic speed (lists are references anyways) + var/list/tracked_tiles = currentrun[1] + while(length(tracked_tiles)) + var/x = tracked_tiles[length(tracked_tiles) - 3] + var/y = tracked_tiles[length(tracked_tiles) - 2] + var/z = tracked_tiles[length(tracked_tiles) - 1] + var/pressure = tracked_tiles[length(tracked_tiles) - 0] + tracked_tiles.len -= 4 + + var/turf/tile = locate(x, y, z) + if(istype(tile)) + var/obj/effect/pressure_overlay/pressure_overlay = tile.ensure_pressure_overlay() + var/ratio = pressure / ONE_ATMOSPHERE + pressure_overlay.overlay.color = rgb((1 - ratio) * 255, 0, ratio * 255) + pressure_overlay.overlay.alpha = pressure_overlay_alpha + + if(MC_TICK_CHECK) + return + + var/datum/atom_hud/data/pressure/hud = GLOB.huds[DATA_HUD_PRESSURE] + + //cache for sanic speed (lists are references anyways) + var/list/users = currentrun[2] + while(length(users)) + var/mob/user = users[length(users)] + var/turf/oldloc = users[user] + users.len-- + + if(!istype(user) || QDELETED(user) || isnull(user.client) || !istype(oldloc)) + continue + + if(user in hud.hudusers) + var/turf/newloc = get_turf(user) + if(oldloc == newloc) + // Ya ain't moved, son. Ya get the same tiles ya already had. + continue + clear_pressure_hud(user, oldloc, FALSE) + add_pressure_hud(user, oldloc, FALSE) + pressure_hud_users[user] = newloc + else + clear_pressure_hud(user, oldloc, TRUE) + + if(MC_TICK_CHECK) + return + + for(var/mob/user in hud.hudusers) + if(isnull(user.client)) + continue + track_pressure_tiles(user, PRESSURE_HUD_LOAD_RADIUS) + if(!(user in pressure_hud_users)) + pressure_hud_users[user] = get_turf(user) + + // Clean up currentrun so we don't confuse the next step. + currentrun = list() + +/datum/controller/subsystem/air/proc/clear_pressure_hud(mob/user, turf/oldloc, full_clear) + if(!istype(oldloc) || isnull(user.client)) + return + var/turf/newloc = get_turf(user) + if(!istype(newloc)) + full_clear = TRUE + else if(oldloc.z != newloc.z) + full_clear = TRUE + + for(var/x in oldloc.x - PRESSURE_HUD_RADIUS to oldloc.x + PRESSURE_HUD_RADIUS) + if(x < 1 || x > world.maxx) + continue + + for(var/y in oldloc.y - PRESSURE_HUD_RADIUS to oldloc.y + PRESSURE_HUD_RADIUS) + if(y < 1 || y > world.maxy) + continue + if(!full_clear && abs(newloc.x - x) <= PRESSURE_HUD_RADIUS && abs(newloc.y - y) <= PRESSURE_HUD_RADIUS) + continue + + var/turf/tile = locate(x, y, oldloc.z) + var/obj/effect/pressure_overlay/pressure_overlay = tile.ensure_pressure_overlay() + user.client.images -= pressure_overlay.overlay + +/datum/controller/subsystem/air/proc/add_pressure_hud(mob/user, turf/oldloc, full_send) + var/turf/newloc = get_turf(user) + if(!istype(newloc) || isnull(user.client)) + return + if(!istype(oldloc)) + full_send = TRUE + else if(oldloc.z != newloc.z) + full_send = TRUE + + for(var/x in newloc.x - PRESSURE_HUD_RADIUS to newloc.x + PRESSURE_HUD_RADIUS) + if(x < 1 || x > world.maxx) + continue + + for(var/y in newloc.y - PRESSURE_HUD_RADIUS to newloc.y + PRESSURE_HUD_RADIUS) + if(y < 1 || y > world.maxy) + continue + if(!full_send && abs(oldloc.x - x) <= PRESSURE_HUD_RADIUS && abs(oldloc.y - y) <= PRESSURE_HUD_RADIUS) + continue + + var/turf/tile = locate(x, y, newloc.z) + var/obj/effect/pressure_overlay/pressure_overlay = tile.ensure_pressure_overlay() + user.client.images += pressure_overlay.overlay + /datum/controller/subsystem/air/proc/process_bound_mixtures(resumed = 0) if(!resumed) original_bound_mixtures = length(bound_mixtures) @@ -531,6 +742,21 @@ SUBSYSTEM_DEF(air) SSair.on_milla_tick_finished() +/proc/milla_tick_error(err) + // Any proc that wants MILLA to be synchronous should not sleep. + SHOULD_NOT_SLEEP(TRUE) + + log_debug(err) + var/msg = "MILLA has crashed. SSair will stop running, and all atmospherics will stop functioning. Every turf will report as full of breathable air, and all fires will be extinguished. Shuttle call highly recommended." + to_chat(GLOB.admins, "[msg]") + log_world(msg) + + // Disable firing. + SSair.flags |= SS_NO_FIRE + // Disable fire, too. + for(var/turf/simulated/S in SSair.hotspots) + QDEL_NULL(S.active_hotspot) + /// Create a subclass of this and implement `on_run` to manipulate tile air safely. /datum/milla_safe var/run_args = list() @@ -589,5 +815,7 @@ SUBSYSTEM_DEF(air) #undef SSAIR_ATMOSMACHINERY #undef SSAIR_INTERESTING_TILES #undef SSAIR_HOTSPOTS +#undef SSAIR_WINDY_TILES #undef SSAIR_BOUND_MIXTURES +#undef SSAIR_PRESSURE_OVERLAY #undef SSAIR_MILLA_TICK diff --git a/code/controllers/subsystem/SSdebugview.dm b/code/controllers/subsystem/SSdebugview.dm index f47d7016aaa..437d544f01c 100644 --- a/code/controllers/subsystem/SSdebugview.dm +++ b/code/controllers/subsystem/SSdebugview.dm @@ -15,7 +15,7 @@ SUBSYSTEM_DEF(debugview) // Generate debug text var/list/entries = list() entries += "CPU: [round(world.cpu, 1)] | MCPU: [round(world.map_cpu, 1)] | FPS/TPS: [world.fps] | Clients: [length(GLOB.clients)] | BYOND: [world.byond_version].[world.byond_build]" - entries += "\[Air] Cost: [SSair.get_cost()]ms | MT: [round(SSair.cost_milla_tick, 1)]ms | IT: [SSair.interesting_tile_count]" + entries += "\[Air] Cost: [SSair.get_cost()]ms | MT: [round(SSair.cost_milla_tick, 1)]ms | IT: [SSair.interesting_tile_count] | HS: [SSair.hotspot_count] | WT: [SSair.windy_tile_count]" entries += "\[Debug] Cost: [round(SSdebugview.cost, 1)]ms | P: [length(SSdebugview.processing)]" // meta af (tbf we need to know how much were using) entries += "\[FP] Cost: [round(SSfastprocess.cost, 1)]ms | P: [length(SSfastprocess.processing)]" // Snowflakery for SSgarbage diff --git a/code/datums/atom_hud.dm b/code/datums/atom_hud.dm index 9ab6f8e0fd2..5178b181fba 100644 --- a/code/datums/atom_hud.dm +++ b/code/datums/atom_hud.dm @@ -11,6 +11,7 @@ GLOBAL_LIST_INIT(huds, list( DATA_HUD_DIAGNOSTIC_ADVANCED = new/datum/atom_hud/data/diagnostic/advanced(), DATA_HUD_HYDROPONIC = new/datum/atom_hud/data/hydroponic(), DATA_HUD_JANITOR = new/datum/atom_hud/data/janitor(), + DATA_HUD_PRESSURE = new/datum/atom_hud/data/pressure(), ANTAG_HUD_CULT = new/datum/atom_hud/antag(), ANTAG_HUD_REV = new/datum/atom_hud/antag(), ANTAG_HUD_OPS = new/datum/atom_hud/antag(), diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 858f9076582..5e3b3357b5e 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -696,6 +696,18 @@ if(isnum(_slowdown_value)) slowdown_value = _slowdown_value +// Directional slow - Like slowed, but only if you're moving in a certain direction. +/datum/status_effect/incapacitating/directional_slow + id = "directional_slow" + var/direction + var/slowdown_value = 10 // defaults to this value if none is specified + +/datum/status_effect/incapacitating/directional_slow/on_creation(mob/living/new_owner, set_duration, _direction, _slowdown_value) + . = ..() + direction = _direction + if(isnum(_slowdown_value)) + slowdown_value = _slowdown_value + /datum/status_effect/transient/silence id = "silenced" @@ -1355,6 +1367,18 @@ new /obj/effect/abstract/bubblegum_rend_helper(get_turf(src), null, 10) qdel(src) +/// The mob has been pushed by airflow recently, and won't automatically grab nearby objects to stop drifting. +/datum/status_effect/unbalanced + id = "unbalanced" + duration = 1 SECONDS + status_type = STATUS_EFFECT_REFRESH + alert_type = /atom/movable/screen/alert/status_effect/unbalanced + +/atom/movable/screen/alert/status_effect/unbalanced + name = "Unbalanced" + desc = "You're being shoved around by airflow! You can resist this by moving, but moving against the wind will be slow." + icon_state = "unbalanced" + /datum/status_effect/c_foamed id = "c_foamed up" duration = 1 MINUTES diff --git a/code/datums/wires/alarm.dm b/code/datums/wires/alarm.dm index 8660a8e6421..08b2ed5a170 100644 --- a/code/datums/wires/alarm.dm +++ b/code/datums/wires/alarm.dm @@ -6,7 +6,7 @@ /datum/wires/alarm/New(atom/_holder) wires = list( - WIRE_IDSCAN , WIRE_MAIN_POWER1 , WIRE_SYPHON, + WIRE_IDSCAN , WIRE_MAIN_POWER1 , WIRE_SIPHON, WIRE_AI_CONTROL, WIRE_AALARM ) return ..() @@ -39,9 +39,9 @@ if(WIRE_AI_CONTROL) A.aidisabled = !mend - if(WIRE_SYPHON) + if(WIRE_SIPHON) if(!mend) - A.mode = 3 // AALARM_MODE_PANIC + A.mode = AALARM_MODE_PANIC A.apply_mode() if(WIRE_AALARM) @@ -68,11 +68,11 @@ addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/alarm, enable_ai_control_callback)), 10 SECONDS) - if(WIRE_SYPHON) - if(A.mode == 1) // AALARM_MODE_SCRUB - A.mode = 3 // AALARM_MODE_PANIC + if(WIRE_SIPHON) + if(A.mode == AALARM_MODE_FILTERING) + A.mode = AALARM_MODE_PANIC else - A.mode = 1 // AALARM_MODE_SCRUB + A.mode = AALARM_MODE_FILTERING A.apply_mode() if(WIRE_AALARM) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index cdae5dd85d2..8be85ac7793 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -44,7 +44,7 @@ // Atmos var/pressure_resistance = 10 - var/last_high_pressure_movement_air_cycle = 0 + var/last_high_pressure_movement_time = 0 /// UID for the atom which the current atom is orbiting var/orbiting_uid = null diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index c0c0a7fca2e..da9bc720a4f 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -60,6 +60,14 @@ /datum/atom_hud/data/janitor hud_icons = list(JANI_HUD) +/datum/atom_hud/data/pressure + hud_icons = list(PRESSURE_HUD) + +/// Pressure hud is special, because it doesn't use hudatoms. SSair manages its images, so tell SSair to add the initial set. +/datum/atom_hud/data/pressure/add_hud_to(mob/user) + ..() + SSair.add_pressure_hud(user) + /* MED/SEC/DIAG HUD HOOKS */ /* diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 42175880711..6e037b9db45 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -76,7 +76,7 @@ if(prob(30)) do_sparks(2, 1, T) T.ex_act(EXPLODE_LIGHT) - T.hotspot_expose(1000,500,1) + T.hotspot_expose(1000,500) /obj/machinery/computer/holodeck_control/proc/loadProgram(area/A) diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index ae795b6b92e..9b3fee6c25c 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -12,8 +12,9 @@ /obj/machinery/computer/atmos_alert/Initialize(mapload) . = ..() alarm_cache = list() - alarm_cache["minor"] = list() alarm_cache["priority"] = list() + alarm_cache["minor"] = list() + alarm_cache["mode"] = list() var/area/machine_area = get_area(src) parent_area_type = machine_area.get_top_parent_type() @@ -34,6 +35,10 @@ else alarm_cache["priority"] -= air_alarm.alarm_area.name alarm_cache["minor"] -= air_alarm.alarm_area.name + if(air_alarm.mode == AALARM_MODE_FILTERING) + alarm_cache["mode"] -= air_alarm.alarm_area.name + else + alarm_cache["mode"][air_alarm.alarm_area.name] = GLOB.aalarm_modes["[air_alarm.mode]"] update_icon() diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 2ec30a25766..e5b8e4b5c39 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1284,6 +1284,7 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays) return TRUE SEND_SIGNAL(src, COMSIG_AIRLOCK_OPEN) operating = DOOR_OPENING + recalculate_atmos_connectivity() update_icon(AIRLOCK_OPENING, 1) sleep(1) set_opacity(0) @@ -1294,7 +1295,6 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays) density = FALSE if(width > 1) set_fillers_density(FALSE) - recalculate_atmos_connectivity() sleep(1) layer = OPEN_DOOR_LAYER update_icon(AIRLOCK_OPEN, 1) @@ -1336,7 +1336,6 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays) density = TRUE if(width > 1) set_fillers_density(TRUE) - recalculate_atmos_connectivity() if(!override) sleep(4) if(!safe) @@ -1349,6 +1348,7 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays) sleep(1) update_icon(AIRLOCK_CLOSED, 1) operating = NONE + recalculate_atmos_connectivity() if(safe) CheckForMobs() return TRUE diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 6b90f4650b5..fd9fd32a64c 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -142,7 +142,7 @@ return !density /obj/machinery/door/CanAtmosPass(direction) - return !density + return operating || !density /obj/machinery/door/get_superconductivity(direction) if(!density) @@ -373,6 +373,7 @@ return SEND_SIGNAL(src, COMSIG_DOOR_OPEN) operating = DOOR_OPENING + recalculate_atmos_connectivity() do_animate("opening") set_opacity(0) if(width > 1) @@ -388,7 +389,6 @@ if(width > 1) set_fillers_opacity(0) operating = NONE - recalculate_atmos_connectivity() update_freelook_sight() if(autoclose) autoclose_in(normalspeed ? auto_close_time : auto_close_time_dangerous) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index aa5685c04d2..770f4257ce0 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -204,6 +204,7 @@ return 0 if(!operating) //in case of emag operating = DOOR_OPENING + recalculate_atmos_connectivity() do_animate("opening") set_opacity(FALSE) playsound(loc, 'sound/machines/windowdoor.ogg', 100, 1) @@ -235,11 +236,11 @@ density = TRUE if(polarized_on) set_opacity(TRUE) - recalculate_atmos_connectivity() update_freelook_sight() sleep(10) operating = NONE + recalculate_atmos_connectivity() return 1 /obj/machinery/door/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) diff --git a/code/game/machinery/floor_igniter.dm b/code/game/machinery/floor_igniter.dm index cc1e4c220d9..7659327ca14 100644 --- a/code/game/machinery/floor_igniter.dm +++ b/code/game/machinery/floor_igniter.dm @@ -57,7 +57,7 @@ if(on && !(stat & NOPOWER)) var/turf/location = get_turf(src) if(isturf(location)) - location.hotspot_expose(1000, 500, 1) + location.hotspot_expose(1000, 1) return TRUE /obj/machinery/igniter/Initialize(mapload) @@ -132,7 +132,7 @@ var/turf/location = get_turf(src) if(isturf(location)) - location.hotspot_expose(1000, 500, 1) + location.hotspot_expose(1000, 500) return TRUE diff --git a/code/game/machinery/vendors/departmental_vendors.dm b/code/game/machinery/vendors/departmental_vendors.dm index 63d9b65e5d1..039d460e928 100644 --- a/code/game/machinery/vendors/departmental_vendors.dm +++ b/code/game/machinery/vendors/departmental_vendors.dm @@ -7,7 +7,7 @@ category = VENDOR_TYPE_DEPARTMENTAL req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_ATMOSPHERICS) products = list(/obj/item/clothing/glasses/meson/engine = 2, - /obj/item/clothing/glasses/meson/engine/tray = 4, + /obj/item/clothing/glasses/meson/engine/atmos = 4, /obj/item/multitool = 4, /obj/item/geiger_counter = 5, /obj/item/airlock_electronics = 10, diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index 89aa7131314..1d213eb825e 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -341,7 +341,6 @@ /obj/effect/anomaly/pyro name = "pyroclastic anomaly" icon_state = "mustard" - var/ticks = 0 var/produces_slime = TRUE aSignal = /obj/item/assembly/signaler/anomaly/pyro @@ -351,16 +350,11 @@ /obj/effect/anomaly/pyro/anomalyEffect() ..() - ticks++ for(var/mob/living/M in hearers(4, src)) if(prob(50)) M.adjust_fire_stacks(4) M.IgniteMob() - if(ticks < 4) - return - else - ticks = 0 var/turf/simulated/T = get_turf(src) if(istype(T)) var/datum/gas_mixture/air = new() @@ -382,8 +376,8 @@ //Make it hot and burny for the new slime var/datum/gas_mixture/air = new() air.set_temperature(1000) - air.set_toxins(500) - air.set_oxygen(500) + air.set_toxins(125) + air.set_oxygen(125) T.blind_release_air(air) var/new_colour = pick("red", "orange") var/mob/living/simple_animal/slime/S = new(T, new_colour) diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 15cfd65b543..7d6fbdf0d64 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -175,53 +175,71 @@ name = "nanofrost smoke" color = "#B2FFFF" opacity = FALSE + var/spread_range = 6 + lifetime = 0.5 SECONDS_TO_LIFE_CYCLES /datum/effect_system/smoke_spread/freezing effect_type = /obj/effect/particle_effect/smoke/freezing - var/blast = FALSE -/datum/effect_system/smoke_spread/freezing/proc/Chilled(atom/A) - if(issimulatedturf(A)) - var/turf/simulated/T = A - if(!T.blocks_air) - var/datum/milla_safe/smoke_spread_chill/milla = new() - milla.invoke_async(src, T) - for(var/obj/machinery/atmospherics/unary/vent_pump/V in T) - if(!isnull(V.welded) && !V.welded) //must be an unwelded vent pump. - V.welded = TRUE - V.update_icon() - V.visible_message("[V] was frozen shut!") - for(var/obj/machinery/atmospherics/unary/vent_scrubber/U in T) - if(!isnull(U.welded) && !U.welded) //must be an unwelded vent scrubber. - U.welded = TRUE - U.update_icon() - U.visible_message("[U] was frozen shut!") - for(var/mob/living/L in T) - L.ExtinguishMob() - for(var/obj/item/Item in T) - Item.extinguish() +/obj/effect/particle_effect/smoke/freezing/process() + . = ..() + var/turf/T = get_turf(src) + if(!istype(T)) + return -/datum/milla_safe/smoke_spread_chill + for(var/obj/machinery/atmospherics/unary/vent_pump/V in T) + if(!isnull(V.welded) && !V.welded) //must be an unwelded vent pump. + V.welded = TRUE + V.update_icon() + V.visible_message("[V] was frozen shut!") + for(var/obj/machinery/atmospherics/unary/vent_scrubber/U in T) + if(!isnull(U.welded) && !U.welded) //must be an unwelded vent scrubber. + U.welded = TRUE + U.update_icon() + U.visible_message("[U] was frozen shut!") + for(var/mob/living/L in T) + L.ExtinguishMob() + for(var/obj/item/Item in T) + Item.extinguish() -/datum/milla_safe/smoke_spread_chill/on_run(datum/effect_system/smoke_spread/smoke, turf/T) + var/datum/milla_safe/nanofrost_extinguish/milla = new() + milla.invoke_async(src, T) + +/datum/milla_safe/nanofrost_extinguish/on_run(obj/effect/particle_effect/smoke/freezing/smoke, turf/T) + if(!istype(T)) + return var/datum/gas_mixture/env = get_turf_air(T) - if(get_dist(T, smoke) < 2) // Otherwise we'll get silliness like people using Nanofrost to kill people through walls with cold air - env.set_temperature(2) - for(var/obj/effect/hotspot/H in T) + for(var/obj/effect/hotspot/fake/H in T) qdel(H) - if(env.toxins()) - env.set_nitrogen(env.nitrogen() + env.toxins()) - env.set_toxins(0) -/datum/effect_system/smoke_spread/freezing/set_up(amount = 5, only_cardinals = FALSE, source, desired_direction, datum/reagents/chemicals, blasting = FALSE) - ..() - blast = blasting + if(env.fuel_burnt() == 0) + return -/datum/effect_system/smoke_spread/freezing/start() - if(blast) - for(var/turf/T in RANGE_TURFS(2, location)) - Chilled(T) - ..() + env.set_temperature(2) + env.set_nitrogen(env.nitrogen() + env.toxins()) + env.set_toxins(0) + + if(smoke.spread_range <= 0 || smoke.lifetime > 0) + return + + // Spread the smoke, up to spread_range. + for(var/direction in list(NORTH, SOUTH, EAST, WEST)) + var/turf/neighbor = get_step(T, direction) + if(isnull(neighbor)) + continue + if(neighbor.density) + continue + var/has_nanofrost = FALSE + for(var/datum/effect_system/smoke_spread/freezing in neighbor) + has_nanofrost = TRUE + break + if(has_nanofrost) + continue + if(prob(50)) + continue + + var/obj/effect/particle_effect/smoke/freezing/new_smoke = new(neighbor) + new_smoke.spread_range = smoke.spread_range - 1 ///////////////////////////////////////////// // Sleep smoke diff --git a/code/game/objects/effects/effect_system/effects_sparks.dm b/code/game/objects/effects/effect_system/effects_sparks.dm index c744bca02c3..69798349d8c 100644 --- a/code/game/objects/effects/effect_system/effects_sparks.dm +++ b/code/game/objects/effects/effect_system/effects_sparks.dm @@ -26,20 +26,20 @@ playsound(src, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) var/turf/T = loc if(isturf(T)) - T.hotspot_expose(hotspottemp, 100) + T.hotspot_expose(hotspottemp, 1) QDEL_IN(src, 20) /obj/effect/particle_effect/sparks/Destroy() var/turf/T = loc if(isturf(T)) - T.hotspot_expose(hotspottemp,100) + T.hotspot_expose(hotspottemp,1) return ..() /obj/effect/particle_effect/sparks/Move() ..() var/turf/T = loc if(isturf(T)) - T.hotspot_expose(hotspottemp,100) + T.hotspot_expose(hotspottemp,1) /datum/effect_system/spark_spread effect_type = /obj/effect/particle_effect/sparks diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index 9c13bf05c3d..6885160acf5 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -104,7 +104,7 @@ qdel(src) if(isturf(loc)) //start a fire if possible var/turf/T = loc - T.hotspot_expose(700, 5) + T.hotspot_expose(700, 1) /obj/item/candle/proc/unlight() if(lit) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 06efea7d556..5a4e07005b6 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -188,7 +188,7 @@ /obj/item/flashlight/flare/process() var/turf/pos = get_turf(src) if(pos && produce_heat) - pos.hotspot_expose(produce_heat, 5) + pos.hotspot_expose(produce_heat, 1) fuel = max(fuel - 1, 0) if(!fuel || !on) turn_off() diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index f164e8283d0..077f349263f 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -625,18 +625,17 @@ SLIME SCANNER * Used in chat-based gas scans. */ /proc/atmos_scan(mob/user, atom/target, silent = FALSE, print = TRUE, milla_turf_details = FALSE) - var/mixture + var/datum/gas_mixture/air var/list/milla = null - if(milla_turf_details) + if(milla_turf_details && istype(target, /turf)) milla = new/list(MILLA_TILE_SIZE) get_tile_atmos(target, milla) - var/datum/gas_mixture/GM = new() - GM.copy_from_milla(milla) - mixture = GM + air = new() + air.copy_from_milla(milla) else - mixture = target.return_analyzable_air() - if(!mixture) - return FALSE + air = target.return_analyzable_air() + if(!air) + return FALSE var/list/message = list() if(!silent && isliving(user)) @@ -646,64 +645,53 @@ SLIME SCANNER if(!print) return TRUE - var/list/airs = islist(mixture) ? mixture : list(mixture) - for(var/datum/gas_mixture/air as anything in airs) - var/mix_name = capitalize(lowertext(target.name)) - if(length(air) > 1) //not a unary gas mixture - var/mix_number = airs.Find(air) - message += "Node [mix_number]" - mix_name += " - Node [mix_number]" + var/total_moles = air.total_moles() + var/pressure = air.return_pressure() + var/volume = air.return_volume() //could just do mixture.volume... but safety, I guess? + var/heat_capacity = air.heat_capacity() + var/thermal_energy = air.thermal_energy() - var/total_moles = air.total_moles() - var/pressure = air.return_pressure() - var/volume = air.return_volume() //could just do mixture.volume... but safety, I guess? - var/heat_capacity = air.heat_capacity() - var/thermal_energy = air.thermal_energy() + if(total_moles) + message += "Total: [round(total_moles, 0.01)] moles" + if(air.oxygen() && (milla_turf_details || air.oxygen() / total_moles > 0.01)) + message += " Oxygen: [round(air.oxygen(), 0.01)] moles ([round(air.oxygen() / total_moles * 100, 0.01)] %)" + if(air.nitrogen() && (milla_turf_details || air.nitrogen() / total_moles > 0.01)) + message += " Nitrogen: [round(air.nitrogen(), 0.01)] moles ([round(air.nitrogen() / total_moles * 100, 0.01)] %)" + if(air.carbon_dioxide() && (milla_turf_details || air.carbon_dioxide() / total_moles > 0.01)) + message += " Carbon Dioxide: [round(air.carbon_dioxide(), 0.01)] moles ([round(air.carbon_dioxide() / total_moles * 100, 0.01)] %)" + if(air.toxins() && (milla_turf_details || air.toxins() / total_moles > 0.01)) + message += " Plasma: [round(air.toxins(), 0.01)] moles ([round(air.toxins() / total_moles * 100, 0.01)] %)" + if(air.sleeping_agent() && (milla_turf_details || air.sleeping_agent() / total_moles > 0.01)) + message += " Nitrous Oxide: [round(air.sleeping_agent(), 0.01)] moles ([round(air.sleeping_agent() / total_moles * 100, 0.01)] %)" + if(air.agent_b() && (milla_turf_details || air.agent_b() / total_moles > 0.01)) + message += " Agent B: [round(air.agent_b(), 0.01)] moles ([round(air.agent_b() / total_moles * 100, 0.01)] %)" + message += "Temperature: [round(air.temperature()-T0C)] °C ([round(air.temperature())] K)" + message += "Volume: [round(volume)] Liters" + message += "Pressure: [round(pressure, 0.1)] kPa" + message += "Heat Capacity: [DisplayJoules(heat_capacity)] / K" + message += "Thermal Energy: [DisplayJoules(thermal_energy)]" + else + message += "[target] is empty!" + message += "Volume: [round(volume)] Liters" // don't want to change the order volume appears in, suck it - if(total_moles) - message += "Total: [round(total_moles, 0.01)] moles" - if(air.oxygen() && (milla_turf_details || air.oxygen() / total_moles > 0.01)) - message += " Oxygen: [round(air.oxygen(), 0.01)] moles ([round(air.oxygen() / total_moles * 100, 0.01)] %)" - if(air.nitrogen() && (milla_turf_details || air.nitrogen() / total_moles > 0.01)) - message += " Nitrogen: [round(air.nitrogen(), 0.01)] moles ([round(air.nitrogen() / total_moles * 100, 0.01)] %)" - if(air.carbon_dioxide() && (milla_turf_details || air.carbon_dioxide() / total_moles > 0.01)) - message += " Carbon Dioxide: [round(air.carbon_dioxide(), 0.01)] moles ([round(air.carbon_dioxide() / total_moles * 100, 0.01)] %)" - if(air.toxins() && (milla_turf_details || air.toxins() / total_moles > 0.01)) - message += " Plasma: [round(air.toxins(), 0.01)] moles ([round(air.toxins() / total_moles * 100, 0.01)] %)" - if(air.sleeping_agent() && (milla_turf_details || air.sleeping_agent() / total_moles > 0.01)) - message += " Nitrous Oxide: [round(air.sleeping_agent(), 0.01)] moles ([round(air.sleeping_agent() / total_moles * 100, 0.01)] %)" - if(air.agent_b() && (milla_turf_details || air.agent_b() / total_moles > 0.01)) - message += " Agent B: [round(air.agent_b(), 0.01)] moles ([round(air.agent_b() / total_moles * 100, 0.01)] %)" - message += "Temperature: [round(air.temperature()-T0C)] °C ([round(air.temperature())] K)" - message += "Volume: [round(volume)] Liters" - message += "Pressure: [round(pressure, 0.1)] kPa" - message += "Heat Capacity: [DisplayJoules(heat_capacity)] / K" - message += "Thermal Energy: [DisplayJoules(thermal_energy)]" - else - message += length(airs) > 1 ? "This node is empty!" : "[target] is empty!" - message += "Volume: [round(volume)] Liters" // don't want to change the order volume appears in, suck it - - if(milla) - // Values from milla/src/lib.rs, +1 due to array indexing difference. - message += "Airtight North: [(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_NORTH) ? "yes" : "no"]" - message += "Airtight East: [(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_EAST) ? "yes" : "no"]" - message += "Airtight South: [(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_SOUTH) ? "yes" : "no"]" - message += "Airtight West: [(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_WEST) ? "yes" : "no"]" - switch(milla[MILLA_INDEX_ATMOS_MODE]) - // These are enum values, so they don't get increased. - if(0) - message += "Atmos Mode: Space" - if(1) - message += "Atmos Mode: Sealed" - if(2) - message += "Atmos Mode: Exposed to Environment (ID: [milla[MILLA_INDEX_ENVIRONMENT_ID]])" - else - message += "Atmos Mode: Unknown ([milla[MILLA_INDEX_ATMOS_MODE]]), contact a coder." - message += "Superconductivity North: [milla[MILLA_INDEX_SUPERCONDUCTIVITY_NORTH]]" - message += "Superconductivity East: [milla[MILLA_INDEX_SUPERCONDUCTIVITY_EAST]]" - message += "Superconductivity South: [milla[MILLA_INDEX_SUPERCONDUCTIVITY_SOUTH]]" - message += "Superconductivity West: [milla[MILLA_INDEX_SUPERCONDUCTIVITY_WEST]]" - message += "Turf's Innate Heat Capacity: [milla[MILLA_INDEX_INNATE_HEAT_CAPACITY]]" + if(milla) + // Values from milla/src/lib.rs, +1 due to array indexing difference. + message += "Airtight N/E/S/W: [(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_NORTH) ? "yes" : "no"]/[(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_EAST) ? "yes" : "no"]/[(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_SOUTH) ? "yes" : "no"]/[(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_WEST) ? "yes" : "no"]" + switch(milla[MILLA_INDEX_ATMOS_MODE]) + // These are enum values, so they don't get increased. + if(0) + message += "Atmos Mode: Space" + if(1) + message += "Atmos Mode: Sealed" + if(2) + message += "Atmos Mode: Exposed to Environment (ID: [milla[MILLA_INDEX_ENVIRONMENT_ID]])" + else + message += "Atmos Mode: Unknown ([milla[MILLA_INDEX_ATMOS_MODE]]), contact a coder." + message += "Superconductivity N/E/S/W: [milla[MILLA_INDEX_SUPERCONDUCTIVITY_NORTH]]/[milla[MILLA_INDEX_SUPERCONDUCTIVITY_EAST]]/[milla[MILLA_INDEX_SUPERCONDUCTIVITY_SOUTH]]/[milla[MILLA_INDEX_SUPERCONDUCTIVITY_WEST]]" + message += "Turf's Innate Heat Capacity: [milla[MILLA_INDEX_INNATE_HEAT_CAPACITY]]" + message += "Hotspot: [floor(milla[MILLA_INDEX_HOTSPOT_TEMPERATURE]-T0C)] °C ([floor(milla[MILLA_INDEX_HOTSPOT_TEMPERATURE])] K), [round(milla[MILLA_INDEX_HOTSPOT_VOLUME] * CELL_VOLUME, 1)] Liters ([milla[MILLA_INDEX_HOTSPOT_VOLUME]]x)" + message += "Wind: ([round(milla[MILLA_INDEX_WIND_X], 0.001)], [round(milla[MILLA_INDEX_WIND_Y], 0.001)])" + message += "Fuel burnt last tick: [milla[MILLA_INDEX_FUEL_BURNT]] moles" to_chat(user, chat_box_examine(message.Join("\n"))) return TRUE diff --git a/code/game/objects/items/tools/welder.dm b/code/game/objects/items/tools/welder.dm index 9208ae62090..c4711fa34ba 100644 --- a/code/game/objects/items/tools/welder.dm +++ b/code/game/objects/items/tools/welder.dm @@ -71,7 +71,7 @@ if(tool_enabled) var/turf/T = get_turf(src) if(T) // Implants for instance won't find a turf - T.hotspot_expose(2500, 5) + T.hotspot_expose(2500, 1) if(prob(5)) remove_fuel(1) if(refills_over_time) diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm index bdaaceb28fe..6d404496973 100644 --- a/code/game/objects/items/weapons/cigs.dm +++ b/code/game/objects/items/weapons/cigs.dm @@ -269,7 +269,7 @@ LIGHTERS ARE IN LIGHTERS.DM // There used to be a species check here, but synthetics can smoke now is_being_smoked = TRUE if(location) - location.hotspot_expose(700, 5) + location.hotspot_expose(700, 1) if(reagents && reagents.total_volume) // check if it has any reagents at all if(is_being_smoked) // if it's being smoked, transfer reagents to the mob var/mob/living/carbon/C = loc diff --git a/code/game/objects/items/weapons/lighters.dm b/code/game/objects/items/weapons/lighters.dm index 1f1d539a9ed..96f06a1766b 100644 --- a/code/game/objects/items/weapons/lighters.dm +++ b/code/game/objects/items/weapons/lighters.dm @@ -135,7 +135,7 @@ /obj/item/lighter/process() var/turf/location = get_turf(src) if(location) - location.hotspot_expose(700, 5) + location.hotspot_expose(700, 1) return /obj/item/lighter/update_icon_state() @@ -263,7 +263,7 @@ if(smoketime < 1) matchburnout() if(location) - location.hotspot_expose(700, 5) + location.hotspot_expose(700, 1) return /obj/item/match/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE) diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 74f1e4182db..3436e0b32b3 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -154,7 +154,7 @@ /obj/item/bio_chip_implanter/shock, // 50TC /obj/item/dnainjector/telemut/darkbundle, // 0TC /obj/item/clothing/suit/hooded/chaplain_hoodie, // 0TC - /obj/item/clothing/glasses/meson/engine/tray, // 0TC + /obj/item/clothing/glasses/meson/engine/atmos, // 0TC /obj/item/clothing/mask/chameleon/voice_change, // 10TC /obj/item/card/id/syndicate, // 10TC /obj/item/clothing/shoes/chameleon/noslip, // 10TC diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm index 01ad9ed3764..13494689a6f 100644 --- a/code/game/objects/items/weapons/tanks/watertank.dm +++ b/code/game/objects/items/weapons/tanks/watertank.dm @@ -328,7 +328,7 @@ /obj/effect/nanofrost_container/proc/Smoke() var/datum/effect_system/smoke_spread/freezing/S = new - S.set_up(amount = 6, only_cardinals = FALSE, source = loc, desired_direction = null, chemicals = null, blasting = TRUE) + S.set_up(amount = 6, only_cardinals = FALSE, source = loc) S.start() new /obj/effect/decal/cleanable/flour/nanofrost(get_turf(src)) playsound(src, 'sound/effects/bamf.ogg', 100, TRUE) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering_lockers.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering_lockers.dm index 6e86905ddba..6703f3bbe31 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering_lockers.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering_lockers.dm @@ -22,6 +22,7 @@ new /obj/item/holosign_creator/engineering(src) new /obj/item/flash(src) new /obj/item/clothing/glasses/meson/engine(src) + new /obj/item/clothing/glasses/meson/engine/atmos(src) new /obj/item/door_remote/chief_engineer(src) new /obj/item/rpd(src) new /obj/item/reagent_containers/drinks/mug/ce(src) @@ -119,6 +120,6 @@ new /obj/item/watertank/atmos(src) new /obj/item/clothing/suit/fire/firefighter/atmos(src) new /obj/item/clothing/head/hardhat/atmos(src) - new /obj/item/clothing/glasses/meson/engine(src) + new /obj/item/clothing/glasses/meson/engine/atmos(src) new /obj/item/rpd(src) new /obj/item/dest_tagger(src) diff --git a/code/game/objects/structures/plasmafire_generator.dm b/code/game/objects/structures/plasmafire_generator.dm new file mode 100644 index 00000000000..288eb567443 --- /dev/null +++ b/code/game/objects/structures/plasmafire_generator.dm @@ -0,0 +1,41 @@ +/obj/structure/plasmafire_generator + name = "Plasmafire Generator" + desc = "A magical thing that you really shouldn't be able to see." + anchored = TRUE + alpha = 0 + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + resistance_flags = LAVA_PROOF | FIRE_PROOF + flags = NODECONSTRUCT + +/obj/structure/plasmafire_generator/Initialize(mapload) + . = ..() + START_PROCESSING(SSprocessing, src) + +// for sanity checks +/obj/structure/plasmafire_generator/Destroy() + STOP_PROCESSING(SSprocessing, src) + return ..() + +/obj/structure/plasmafire_generator/process() + var/turf/T = get_turf(src) + if(!istype(T)) + return + + var/datum/gas_mixture/fire = new() + fire.set_toxins(10) + fire.set_oxygen(4) + fire.set_temperature(500) + T.blind_release_air(fire) + +/obj/structure/plasmafire_generator/shadow + var/enabled = FALSE + +/obj/structure/plasmafire_generator/shadow/onShuttleMove(turf/oldT, turf/T1, rotation, mob/caller) + if(T1.z != 1) + enabled = TRUE + return ..() + +/obj/structure/plasmafire_generator/shadow/process() + if(!enabled) + return + return ..() diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 303e8d5b6ef..9c85caa033f 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -30,6 +30,14 @@ /// If a fire is ongoing, how much fuel did we burn last tick? /// Value is not updated while below PLASMA_MINIMUM_BURN_TEMPERATURE. var/fuel_burnt = 0 + /// When do we last remember having wind? + var/wind_tick = null + /// Wind's X component + var/wind_x = null + /// Wind's Y component + var/wind_y = null + /// Wind effect + var/obj/effect/wind/wind_effect = null /turf/simulated/proc/break_tile() return diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index c863cde3f8f..e0864966cd6 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -56,12 +56,12 @@ GLOBAL_LIST_INIT(icons_to_ignore_at_floor_init, list("damaged1","damaged2","dama break_tile_to_plating() else break_tile() - hotspot_expose(1000,CELL_VOLUME) + hotspot_expose(1000, 100) if(prob(33)) new /obj/item/stack/sheet/metal(src) if(3.0) if(prob(50)) break_tile() - hotspot_expose(1000,CELL_VOLUME) + hotspot_expose(1000, 100) return /turf/simulated/floor/burn_down() @@ -118,6 +118,10 @@ GLOBAL_LIST_INIT(icons_to_ignore_at_floor_init, list("damaged1","damaged2","dama burnt = TRUE update_icon() +/turf/simulated/floor/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST && prob(1)) + burn_tile() + /turf/simulated/floor/proc/make_plating() return ChangeTurf(/turf/simulated/floor/plating) diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm index 49bc5dda177..786514e0e56 100644 --- a/code/game/turfs/simulated/floor/plasteel_floor.dm +++ b/code/game/turfs/simulated/floor/plasteel_floor.dm @@ -9,6 +9,23 @@ /turf/simulated/floor/plasteel/get_broken_states() return list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5") +/turf/simulated/floor/plasteel/pressure_debug + +/turf/simulated/floor/plasteel/pressure_debug/airless + name = "airless floor" + oxygen = 0 + nitrogen = 0 + temperature = TCMB + +/turf/simulated/floor/plasteel/pressure_debug/Initialize(mapload) + ..() + addtimer(CALLBACK(src, PROC_REF(update_color)), 1, TIMER_LOOP) + +/turf/simulated/floor/plasteel/pressure_debug/proc/update_color() + var/datum/gas_mixture/air = get_readonly_air() + var/ratio = min(1, air.return_pressure() / ONE_ATMOSPHERE) + color = rgb(255 * (1 - ratio), 0, 255 * ratio) + /turf/simulated/floor/plasteel/airless name = "airless floor" oxygen = 0 diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index c295188fd93..b0eda64b7f6 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -82,6 +82,9 @@ var/datum/gas_mixture/bound_to_turf/bound_air + /// The effect used to render a pressure overlay from this tile. + var/obj/effect/pressure_overlay/pressure_overlay + /turf/Initialize(mapload) SHOULD_CALL_PARENT(FALSE) if(initialized) @@ -651,8 +654,98 @@ /datum/milla_safe/turf_blind_set/on_run(turf/T, datum/gas_mixture/air) get_turf_air(T).copy_from(air) +/turf/simulated/proc/update_hotspot() + var/datum/gas_mixture/air = get_readonly_air() + if(air.fuel_burnt() < 0.001) + if(isnull(active_hotspot)) + return FALSE + + // If it's old, delete it. + if(active_hotspot.death_timer < SSair.times_fired) + QDEL_NULL(active_hotspot) + return FALSE + else + return TRUE + + if(isnull(active_hotspot)) + active_hotspot = new(src) + + active_hotspot.death_timer = SSair.times_fired + 4 + if(air.hotspot_volume() > 0) + active_hotspot.temperature = air.hotspot_temperature() + active_hotspot.volume = air.hotspot_volume() * CELL_VOLUME + else + active_hotspot.temperature = air.temperature() + active_hotspot.volume = CELL_VOLUME + + active_hotspot.update_visuals() + return TRUE + +/turf/simulated/proc/update_wind() + if(wind_tick != SSair.times_fired) + QDEL_NULL(wind_effect) + wind_tick = null + return FALSE + + if(isnull(wind_effect)) + wind_effect = new(src) + + wind_effect.dir = wind_direction(wind_x, wind_y) + + var/datum/gas_mixture/air = get_readonly_air() + var/wind = sqrt(wind_x ** 2 + wind_y ** 2) + var/wind_strength = wind * air.total_moles() / MOLES_CELLSTANDARD + wind_effect.alpha = min(255, 5 + wind_strength * 25) + return TRUE + /turf/return_analyzable_air() return get_readonly_air() +/obj/effect/pressure_overlay + icon_state = "nothing" + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + // I'm really not sure this is the right var for this, but it's what the suply shuttle is using to determine if anything is blocking a tile, so let's not do that. + simulated = FALSE + // Please do not splat the visual effect with a shuttle. + flags_2 = IMMUNE_TO_SHUTTLECRUSH_2 + + var/image/overlay + +/obj/effect/pressure_overlay/Initialize(mapload) + . = ..() + overlay = new(icon, src, "white") + overlay.alpha = 0 + overlay.plane = ABOVE_LIGHTING_PLANE + overlay.blend_mode = BLEND_OVERLAY + overlay.appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM + +/obj/effect/pressure_overlay/onShuttleMove(turf/oldT, turf/T1, rotation, mob/caller) + // No, I don't think I will. + return FALSE + +/obj/effect/pressure_overlay/singularity_pull() + // I am not a physical object, you have no control over me! + return FALSE + +/obj/effect/pressure_overlay/singularity_act() + // I don't taste good, either! + return FALSE + +/turf/proc/ensure_pressure_overlay() + if(isnull(pressure_overlay)) + for(var/obj/effect/pressure_overlay/found_overlay in src) + pressure_overlay = found_overlay + if(isnull(pressure_overlay)) + pressure_overlay = new(src) + + if(isnull(pressure_overlay.loc)) + // Not sure how exactly this happens, but I've seen it happen, so fix it. + pressure_overlay.forceMove(src) + + if(isnull(pressure_overlay.overlay)) + pressure_overlay.Initialize() + + return pressure_overlay + /turf/_clear_signal_refs() return diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm index f3433f5b208..66aa95bde49 100644 --- a/code/modules/assembly/igniter.dm +++ b/code/modules/assembly/igniter.dm @@ -27,7 +27,7 @@ var/turf/location = get_turf(loc) if(location) - location.hotspot_expose(1000, 1000) + location.hotspot_expose(1000, 1) visible_message( "Sparks shoot out of [src].", "You hear a shower of sparks shooting out from something!" diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index dac9ad424bf..234aa4a500d 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -2,41 +2,24 @@ /atom/proc/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(reagents) reagents.temperature_reagents(exposed_temperature) - return null -/turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) - return FALSE - -/turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh) +/turf/simulated/temperature_expose(exposed_temperature) if(reagents) reagents.temperature_reagents(exposed_temperature, 10, 300) - if(!issimulatedturf(src)) - return FALSE - var/datum/gas_mixture/air = get_readonly_air() - if(!air) - return FALSE - if(active_hotspot) - if(soh) - if(air.toxins() > 0.5 && air.oxygen() > 0.5) - if(active_hotspot.temperature < exposed_temperature) - active_hotspot.temperature = exposed_temperature - if(active_hotspot.volume < exposed_volume) - active_hotspot.volume = exposed_volume - return TRUE - if(exposed_temperature > PLASMA_MINIMUM_BURN_TEMPERATURE && air.oxygen() > 0.5 && air.toxins() > 0.5) - var/total = air.total_moles() - if(air.toxins() < 0.01 * total || air.oxygen() < 0.01 * total) - // The rest of the gas is snuffing out the reaction. - return FALSE - active_hotspot = new /obj/effect/hotspot(src) - active_hotspot.temperature = exposed_temperature - active_hotspot.volume = exposed_volume - return TRUE +/turf/proc/hotspot_expose(exposed_temperature, exposed_volume) + return - return FALSE +/turf/simulated/hotspot_expose(exposed_temperature, exposed_volume) + var/datum/milla_safe/make_hotspot/milla = new() + milla.invoke_async(src, exposed_temperature, exposed_volume) -//This is the icon for fire on turfs, also helps for nurturing small fires until they are full tile +/datum/milla_safe/make_hotspot + +/datum/milla_safe/make_hotspot/on_run(turf/simulated/tile, exposed_temperature, exposed_volume) + create_hotspot(tile, exposed_temperature, exposed_volume) + +//This is the icon for fire on turfs. /obj/effect/hotspot anchored = TRUE mouse_opacity = MOUSE_OPACITY_TRANSPARENT @@ -49,143 +32,25 @@ var/volume = 125 var/temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - var/fake = FALSE - var/burn_time = 0 + // The last tick this hotspot should be alive for. + var/death_timer = 0 /obj/effect/hotspot/New() ..() - if(!fake) - SSair.hotspots += src - var/datum/milla_safe/hotspot_burn_plasma/milla = new() - milla.invoke_async(src) dir = pick(GLOB.cardinal) -/datum/milla_safe/hotspot_burn_plasma - -/// Burns the air affected by this hotspot. A hotspot is effectively a gas fire that might not cover the entire tile yet. This proc makes that "partial fire" burn, altering the tile as a whole, and potentially setting the entire tile on fire. -/datum/milla_safe/hotspot_burn_plasma/on_run(obj/effect/hotspot/hotspot) - var/turf/simulated/location = get_turf(hotspot) - if(!istype(location) || location.blocks_air) - // We're in the wrong neighborhood. - qdel(hotspot) - return - - var/datum/gas_mixture/location_air = get_turf_air(location) - if(location_air.temperature() >= min(hotspot.temperature, PLASMA_UPPER_TEMPERATURE)) - // The cell is already hot enough, no need to do more. - hotspot.temperature = location_air.temperature() - hotspot.volume = CELL_VOLUME - hotspot.recolor() - return - - if(location_air.toxins() < 0.5 || location_air.oxygen() < 0.5) - // Burn what, exactly? - qdel(hotspot) - return - - var/total = location_air.total_moles() - if(location_air.toxins() < 0.01 * total || location_air.oxygen() < 0.01 * total) - // The rest of the gas is snuffing out the reaction. - qdel(hotspot) - return - - // Get some of the surrounding air for the hotspot to burn. - var/datum/gas_mixture/burning = location_air.remove_ratio(hotspot.volume / location_air.volume) - - // Temporarily boost the temperature of this air to the hotspot temperature. - var/old_temperature = burning.temperature() - burning.set_temperature(hotspot.temperature) - - // Record how much plasma we had initially. - var/old_toxins = burning.toxins() - - // Burn it. - burning.react() - - // Calculate how much thermal energy was produced. - // (Yes, gas_mixture has its own .fuel_burnt, but I dont' trust that code.) - var/fuel_burnt = old_toxins - burning.toxins() - var/thermal_energy = FIRE_PLASMA_ENERGY_RELEASED * fuel_burnt - - // Update the hotspot based on the reaction. - hotspot.temperature = burning.temperature() - hotspot.volume = min(CELL_VOLUME, fuel_burnt * FIRE_GROWTH_RATE) - hotspot.recolor() - - // Revert the air's temperature to where it started. - burning.set_temperature(old_temperature) - - var/heat_capacity = burning.heat_capacity() - if(heat_capacity) - // Add in the produced thermal energy. - burning.set_temperature(burning.temperature() + thermal_energy / burning.heat_capacity()) - - // And add it back to the tile. - location_air.merge(burning) - -/obj/effect/hotspot/process() - var/turf/simulated/location = loc - if(!istype(location)) - qdel(src) - return - - if((temperature < FIRE_MINIMUM_TEMPERATURE_TO_EXIST) || (volume <= 1)) - qdel(src) - return - - var/datum/gas_mixture/location_air = location.get_readonly_air() - if(location.blocks_air || location_air.toxins() < 0.5 || location_air.oxygen() < 0.5) - qdel(src) - return - - var/datum/milla_safe/hotspot_burn_plasma/milla = new() - milla.invoke_async(src) - if(QDELETED(src)) - return - - for(var/A in loc) - var/atom/item = A - if(!QDELETED(item) && item != src) // It's possible that the item is deleted in temperature_expose - item.fire_act(null, temperature, volume) - - if(!istype(location)) - // We are now space. No need to do anything else. - return - - if(location.wet) - location.wet = TURF_DRY - - if(volume >= CELL_VOLUME * 0.95) +/obj/effect/hotspot/proc/update_visuals() + color = heat2color(temperature) + set_light(l_color = color) + var/turf/here = get_turf(src) + var/datum/gas_mixture/gas = here.get_readonly_air() + var/fuel_burnt = gas.fuel_burnt() + if(fuel_burnt > 1) icon_state = "3" - location.burn_tile() - - //Possible spread due to radiated heat - if(temperature > FIRE_MINIMUM_TEMPERATURE_TO_SPREAD) - var/radiated_temperature = temperature * FIRE_SPREAD_RADIOSITY_SCALE - for(var/direction in GLOB.cardinal) - var/turf/simulated/T = get_step(location, direction) - if(!istype(T)) - continue - if(T.active_hotspot) - continue - if(src.CanAtmosPass(direction) && T.CanAtmosPass(turn(direction, 180))) - T.hotspot_expose(radiated_temperature, CELL_VOLUME / 4) - + else if(fuel_burnt > 0.1) + icon_state = "2" else - if(volume > CELL_VOLUME*0.4) - icon_state = "2" - else - icon_state = "1" - - if(temperature > location.max_fire_temperature_sustained) - location.max_fire_temperature_sustained = temperature - - if(location.heat_capacity && temperature > location.heat_capacity) - location.to_be_destroyed = TRUE - /*if(prob(25)) - location.ReplaceWithSpace() - return 0*/ - return 1 + icon_state = "1" /obj/effect/hotspot/Initialize(mapload) @@ -199,18 +64,16 @@ /obj/effect/hotspot/Destroy() set_light(0) - SSair.hotspots -= src var/turf/simulated/T = loc if(istype(T) && T.active_hotspot == src) T.active_hotspot = null - if(!fake) - DestroyTurf() return ..() /obj/effect/hotspot/proc/recolor() color = heat2color(temperature) set_light(l_color = color) +// TODO: Vestigal, kept temporarily to avoid a merge conflict. /obj/effect/hotspot/proc/DestroyTurf() if(issimulatedturf(loc)) var/turf/simulated/T = loc @@ -237,8 +100,7 @@ /// Largely for the fireflash procs below /obj/effect/hotspot/fake - fake = TRUE - burn_time = 30 + var/burn_time = 3 SECONDS /obj/effect/hotspot/fake/New() ..() diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index a629c4dec32..59b1d94e9f0 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -26,6 +26,7 @@ /turf/simulated/Destroy() QDEL_NULL(active_hotspot) QDEL_NULL(wet_overlay) + QDEL_NULL(wind_effect) return ..() /turf/simulated/proc/mimic_temperature_solid(turf/model, conduction_coefficient) @@ -82,43 +83,79 @@ return null /turf/proc/high_pressure_movements(flow_x, flow_y) - var/atom/movable/M - for(var/thing in src) - M = thing + for(var/atom/movable/M in src) if(QDELETED(M)) continue if(M.anchored) continue if(M.pulledby) continue - if(M.last_high_pressure_movement_air_cycle < SSair.times_fired) - M.experience_pressure_difference(flow_x, flow_y) + M.experience_pressure_difference(flow_x, flow_y) -/atom/movable/proc/experience_pressure_difference(flow_x, flow_y, pressure_resistance_prob_delta = 0) - var/const/PROBABILITY_OFFSET = 25 - var/const/PROBABILITY_BASE_PRECENT = 75 +/proc/wind_direction(flow_x, flow_y) + var/direction = 0 + if(flow_x > 0.5) + direction |= EAST + if(flow_x < -0.5) + direction |= WEST + if(flow_y > 0.5) + direction |= NORTH + if(flow_y < -0.5) + direction |= SOUTH - var/pressure_difference = sqrt(flow_x ** 2 + flow_y ** 2) - var/max_force = sqrt(pressure_difference) * (MOVE_FORCE_DEFAULT / 5) - set waitfor = 0 - var/move_prob = 100 - if(pressure_resistance > 0) - move_prob = (pressure_difference / pressure_resistance * PROBABILITY_BASE_PRECENT) - PROBABILITY_OFFSET - move_prob += pressure_resistance_prob_delta - if(move_prob > PROBABILITY_OFFSET && prob(move_prob) && (move_resist != INFINITY) && (!anchored && (max_force >= (move_resist * MOVE_FORCE_PUSH_RATIO))) || (anchored && (max_force >= (move_resist * MOVE_FORCE_FORCEPUSH_RATIO)))) - var/direction = 0 - if(flow_x > 0.5) - direction |= EAST - if(flow_x < -0.5) - direction |= WEST - if(flow_y > 0.5) - direction |= NORTH - if(flow_y < -0.5) - direction |= SOUTH - step(src, direction) - last_high_pressure_movement_air_cycle = SSair.times_fired + return direction - return pressure_difference +/atom/movable/proc/experience_pressure_difference(flow_x, flow_y) + if(move_resist == INFINITY) + return + + var/force_needed = max(move_resist, 1) + if(anchored) + force_needed *= MOVE_FORCE_FORCEPUSH_RATIO + else + force_needed *= MOVE_FORCE_PUSH_RATIO + + var/turf/my_turf = get_turf(src) + var/datum/gas_mixture/my_air = my_turf.get_readonly_air() + + var/air = my_air.total_moles() / MOLES_CELLSTANDARD + var/wind = sqrt(flow_x ** 2 + flow_y ** 2) + var/force = wind * air * (MOVE_FORCE_DEFAULT / 5) + + if(force < force_needed) + return + + var/direction = wind_direction(flow_x, flow_y) + if(direction == 0) + return + + if(last_high_pressure_movement_time >= SSair.times_fired - 3) + return + last_high_pressure_movement_time = SSair.times_fired + + air_push(direction, (force - force_needed) / force_needed) + +/atom/movable/proc/air_push(direction, strength) + step(src, direction) + +/mob/living/air_push(direction, strength) + if(HAS_TRAIT(src, TRAIT_MAGPULSE)) + return + + apply_status_effect(STATUS_EFFECT_UNBALANCED) + apply_status_effect(STATUS_EFFECT_DIRECTIONAL_SLOW, 1 SECONDS, REVERSE_DIR(direction), min(10, strength * 5)) + + if(client?.input_data?.desired_move_dir) + return + if(!pulling) + return ..() + + // Make sure we don't let go of something just because the wind pushed us into it. + var/atom/movable/was_pulling = pulling + . = ..() + // We were just pulling it, so we can skip all the other stuff in start_pulling and just re-establish the pull. + pulling = was_pulling + was_pulling.pulledby = src /turf/simulated/proc/radiate_to_spess() //Radiate excess tile heat to space if(temperature > T0C) //Considering 0 degC as te break even point for radiation in and out @@ -198,6 +235,14 @@ reset_superconductivity(T) reduce_superconductivity(T, superconductivity) +/obj/effect/wind + anchored = TRUE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + icon = 'icons/effects/tile_effects.dmi' + icon_state = "wind" + layer = MASSIVE_OBJ_LAYER + blend_mode = BLEND_OVERLAY + #undef INDEX_NORTH #undef INDEX_EAST #undef INDEX_SOUTH diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index eba569848dd..e39ccf5ef5f 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -33,6 +33,9 @@ What are the archived variables for? var/private_sleeping_agent = 0 var/private_agent_b = 0 var/private_temperature = 0 //in Kelvin + var/private_hotspot_temperature = 0 + var/private_hotspot_volume = 0 + var/private_fuel_burnt = 0 // Archived versions of the private fields. // Only gas_mixture should use these. @@ -100,6 +103,15 @@ What are the archived variables for? /datum/gas_mixture/proc/set_temperature(value) private_temperature = value +/datum/gas_mixture/proc/hotspot_temperature() + return private_hotspot_temperature + +/datum/gas_mixture/proc/hotspot_volume() + return private_hotspot_volume + +/datum/gas_mixture/proc/fuel_burnt() + return private_fuel_burnt + ///joules per kelvin /datum/gas_mixture/proc/heat_capacity() return HEAT_CAPACITY_CALCULATION(private_oxygen, private_carbon_dioxide, private_nitrogen, private_toxins, private_sleeping_agent, private_agent_b, innate_heat_capacity) @@ -651,6 +663,9 @@ What are the archived variables for? private_agent_b = milla[MILLA_INDEX_AGENT_B] innate_heat_capacity = milla[MILLA_INDEX_INNATE_HEAT_CAPACITY] private_temperature = milla[MILLA_INDEX_TEMPERATURE] + private_hotspot_temperature = milla[MILLA_INDEX_HOTSPOT_TEMPERATURE] + private_hotspot_volume = milla[MILLA_INDEX_HOTSPOT_VOLUME] + private_fuel_burnt = milla[MILLA_INDEX_FUEL_BURNT] /proc/share_many_airs(list/mixtures) var/total_volume = 0 @@ -700,16 +715,8 @@ What are the archived variables for? G.private_temperature = temperature G.set_dirty() - - -///Mathematical proofs: -/** -get_breath_partial_pressure(gas_pp) --> gas_pp/total_moles()*breath_pp = pp -get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp*total_moles() - -10/20*5 = 2.5 -10 = 2.5/5*20 -**/ +/datum/gas_mixture/proc/hotspot_expose(temperature, volume) + return #undef SPECIFIC_HEAT_TOXIN #undef SPECIFIC_HEAT_AIR @@ -742,6 +749,9 @@ get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp*total_moles() readonly.private_sleeping_agent = private_sleeping_agent readonly.private_agent_b = private_agent_b readonly.private_temperature = private_temperature + readonly.private_hotspot_temperature = private_hotspot_temperature + readonly.private_hotspot_volume = private_hotspot_volume + readonly.private_fuel_burnt = private_fuel_burnt if(istype(bound_turf, /turf/simulated)) var/turf/simulated/S = bound_turf @@ -776,6 +786,12 @@ get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp*total_moles() private_temperature = value set_dirty() +/datum/gas_mixture/bound_to_turf/hotspot_expose(temperature, volume) + if(temperature > private_temperature) + set_dirty() + private_hotspot_temperature = max(private_hotspot_temperature, temperature) + private_hotspot_volume = max(private_hotspot_volume, (volume / CELL_VOLUME)) + /datum/gas_mixture/bound_to_turf/proc/private_unsafe_write() set_tile_atmos(bound_turf, oxygen = private_oxygen, carbon_dioxide = private_carbon_dioxide, nitrogen = private_nitrogen, toxins = private_toxins, sleeping_agent = private_sleeping_agent, agent_b = private_agent_b, temperature = private_temperature) @@ -796,6 +812,9 @@ get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp*total_moles() private_agent_b = parent.private_agent_b private_temperature = parent.private_temperature + private_hotspot_temperature = parent.private_hotspot_temperature + private_hotspot_volume = parent.private_hotspot_volume + private_fuel_burnt = parent.private_fuel_burnt /datum/gas_mixture/readonly/set_dirty() CRASH("Attempted to modify a readonly gas_mixture.") diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 38b90785c69..87fd428c61d 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -47,6 +47,19 @@ #define MAX_TEMPERATURE 363.15 // 90C #define MIN_TEMPERATURE 233.15 // -40C +GLOBAL_LIST_INIT(aalarm_modes, list( + "[AALARM_MODE_FILTERING]" = "Filtering", + "[AALARM_MODE_DRAUGHT]" = "Draught", + "[AALARM_MODE_PANIC]" = "Panic", + "[AALARM_MODE_CYCLE]" = "Cycle", + "[AALARM_MODE_SIPHON]" = "Siphon", + "[AALARM_MODE_CONTAMINATED]" = "Contaminated", + "[AALARM_MODE_REFILL]" = "Refill", + "[AALARM_MODE_CUSTOM]" = "Custom", + "[AALARM_MODE_OFF]" = "Off", + "[AALARM_MODE_FLOOD]" = "Flood", +)) + /obj/machinery/alarm name = "air alarm" desc = "A wall-mounted device used to control atmospheric equipment. It looks a little cheaply made..." @@ -75,7 +88,7 @@ var/AAlarmwires = 31 var/shorted = FALSE - var/mode = AALARM_MODE_SCRUBBING + var/mode = AALARM_MODE_FILTERING var/preset = AALARM_PRESET_HUMAN var/area/alarm_area var/danger_level = ATMOS_ALARM_NONE @@ -187,7 +200,7 @@ ) if(!no_cycle_after) - mode = AALARM_MODE_REPLACEMENT + mode = AALARM_MODE_CYCLE apply_mode() /obj/machinery/alarm/Initialize(mapload, direction, building = 0) @@ -272,6 +285,15 @@ cur_tlv = TLV["pressure"] var/environment_pressure = environment.return_pressure() var/pressure_dangerlevel = cur_tlv.get_danger_level(environment_pressure) + if(environment_pressure < cur_tlv.min2 && mode == AALARM_MODE_FILTERING) + mode = AALARM_MODE_OFF + apply_mode() + var/area/A = location.loc + A.firealert(src) + + if(mode == AALARM_MODE_REFILL && environment_pressure >= cur_tlv.min1) + mode = AALARM_MODE_FILTERING + apply_mode() cur_tlv = TLV["oxygen"] var/oxygen_dangerlevel = cur_tlv.get_danger_level(environment.oxygen() * GET_PP) @@ -309,8 +331,9 @@ if(old_danger_level != danger_level) apply_danger_level() - if(mode == AALARM_MODE_REPLACEMENT && environment_pressure < ONE_ATMOSPHERE * 0.05) - mode = AALARM_MODE_SCRUBBING + cur_tlv = TLV["pressure"] + if(mode == AALARM_MODE_CYCLE && environment_pressure < cur_tlv.min2 * 0.05) + mode = AALARM_MODE_REFILL apply_mode() /datum/milla_safe/airalarm_heat_cool @@ -393,8 +416,9 @@ underlays += emissive_appearance(icon, "alarm_lightmask") /obj/machinery/alarm/proc/apply_mode() + var/datum/tlv/pressure_tlv = TLV["pressure"] switch(mode) - if(AALARM_MODE_SCRUBBING) + if(AALARM_MODE_FILTERING) for(var/obj/machinery/atmospherics/unary/vent_scrubber/S as anything in alarm_area.scrubbers) if(S.stat & (NOPOWER|BROKEN)) continue @@ -413,7 +437,7 @@ continue P.on = TRUE P.pressure_checks = ONLY_CHECK_EXT_PRESSURE - P.external_pressure_bound = ONE_ATMOSPHERE + P.external_pressure_bound = (pressure_tlv.min1 + pressure_tlv.max1) / 2 P.update_icon(UPDATE_ICON_STATE) @@ -434,11 +458,11 @@ continue P.on = TRUE P.pressure_checks = ONLY_CHECK_EXT_PRESSURE - P.external_pressure_bound = ONE_ATMOSPHERE + P.external_pressure_bound = (pressure_tlv.min1 + pressure_tlv.max1) / 2 P.update_icon(UPDATE_ICON_STATE) - if(AALARM_MODE_VENTING) + if(AALARM_MODE_DRAUGHT) for(var/obj/machinery/atmospherics/unary/vent_scrubber/S as anything in alarm_area.scrubbers) if(S.stat & (NOPOWER|BROKEN)) continue @@ -452,7 +476,7 @@ continue P.on = TRUE P.pressure_checks = ONLY_CHECK_EXT_PRESSURE - P.external_pressure_bound = ONE_ATMOSPHERE * 2 + P.external_pressure_bound = pressure_tlv.max1 P.update_icon(UPDATE_ICON_STATE) @@ -473,11 +497,11 @@ continue P.on = TRUE P.pressure_checks = ONLY_CHECK_EXT_PRESSURE - P.external_pressure_bound = ONE_ATMOSPHERE * 3 + P.external_pressure_bound = (pressure_tlv.min1 + pressure_tlv.max1) / 2 P.update_icon(UPDATE_ICON_STATE) - if(AALARM_MODE_PANIC, AALARM_MODE_REPLACEMENT) + if(AALARM_MODE_PANIC, AALARM_MODE_CYCLE) for(var/obj/machinery/atmospherics/unary/vent_scrubber/S as anything in alarm_area.scrubbers) if(S.stat & (NOPOWER|BROKEN)) continue @@ -671,15 +695,16 @@ data["atmos_alarm"] = alarm_area.atmosalm data["emagged"] = emagged data["modes"] = list( - AALARM_MODE_SCRUBBING = list("name"="Filtering", "desc"="Scrubs out contaminants", "id" = AALARM_MODE_SCRUBBING),\ - AALARM_MODE_VENTING = list("name"="Draught", "desc"="Siphons out air while replacing", "id" = AALARM_MODE_VENTING),\ - AALARM_MODE_PANIC = list("name"="Panic Siphon","desc"="Siphons air out of the room quickly", "id" = AALARM_MODE_PANIC),\ - AALARM_MODE_REPLACEMENT = list("name"="Cycle", "desc"="Siphons air before replacing", "id" = AALARM_MODE_REPLACEMENT),\ - AALARM_MODE_SIPHON = list("name"="Siphon", "desc"="Siphons air out of the room", "id" = AALARM_MODE_SIPHON),\ - AALARM_MODE_CONTAMINATED= list("name"="Contaminated","desc"="Scrubs out all contaminants quickly", "id" = AALARM_MODE_CONTAMINATED),\ - AALARM_MODE_REFILL = list("name"="Refill", "desc"="Triples vent output", "id" = AALARM_MODE_REFILL),\ - AALARM_MODE_OFF = list("name"="Off", "desc"="Shuts off vents and scrubbers", "id" = AALARM_MODE_OFF),\ - AALARM_MODE_FLOOD = list("name"="Flood", "desc"="Shuts off scrubbers and opens vents", "emagonly" = TRUE, "id" = AALARM_MODE_FLOOD) + "mode[AALARM_MODE_FILTERING]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_FILTERING]"], "desc"="Scrubs out contaminants. Will shut off and drop firelocks if pressure drops too low.", "id" = AALARM_MODE_FILTERING), + "mode[AALARM_MODE_DRAUGHT]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_DRAUGHT]"], "desc"="Siphons out air while replacing", "id" = AALARM_MODE_DRAUGHT), + "mode[AALARM_MODE_PANIC]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_PANIC]"], "desc"="Siphons air out of the room quickly", "id" = AALARM_MODE_PANIC), + "mode[AALARM_MODE_CYCLE]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_CYCLE]"], "desc"="Siphons air before replacing", "id" = AALARM_MODE_CYCLE), + "mode[AALARM_MODE_SIPHON]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_SIPHON]"], "desc"="Siphons air out of the room", "id" = AALARM_MODE_SIPHON), + "mode[AALARM_MODE_CONTAMINATED]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_CONTAMINATED]"], "desc"="Scrubs out all contaminants quickly", "id" = AALARM_MODE_CONTAMINATED), + "mode[AALARM_MODE_REFILL]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_REFILL]"], "desc"="Refills a room to normal pressure, then switches to Filtering.", "id" = AALARM_MODE_REFILL), + "mode[AALARM_MODE_CUSTOM]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_CUSTOM]"], "desc"="Custom settings with no automatic mode switching.", "id" = AALARM_MODE_CUSTOM), + "mode[AALARM_MODE_OFF]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_OFF]"], "desc"="Shuts off vents and scrubbers", "id" = AALARM_MODE_OFF), + "mode[AALARM_MODE_FLOOD]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_FLOOD]"], "desc"="Shuts off scrubbers and opens vents", "emagonly" = TRUE, "id" = AALARM_MODE_FLOOD) ) data["mode"] = mode data["presets"] = list( @@ -872,6 +897,8 @@ message_admins("[key_name_admin(usr)] attempted to href-exploit an air alarm to control another object!!!") return + mode = AALARM_MODE_CUSTOM + // Its a vent. Handle if(istype(U, /obj/machinery/atmospherics/unary/vent_pump)) var/obj/machinery/atmospherics/unary/vent_pump/V = U diff --git a/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm b/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm index 1aa7e9fff81..f88104e808b 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm @@ -44,7 +44,7 @@ if(pressure_delta > 0) // transfer from pipe air to environment if((vent.air_contents.total_moles() > 0) && (vent.air_contents.temperature() > 0)) - var/transfer_moles = pressure_delta * environment.volume / (vent.air_contents.temperature() * R_IDEAL_GAS_EQUATION) + var/transfer_moles = pressure_delta * vent.air_contents.volume / (vent.air_contents.temperature() * R_IDEAL_GAS_EQUATION) transfer_moles = min(transfer_moles, vent.volume) var/datum/gas_mixture/removed = vent.air_contents.remove(transfer_moles) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm index b9d1780c45f..2743bfdd7f9 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm @@ -19,6 +19,7 @@ /// If false, siphons instead of releasing air var/releasing = TRUE + var/max_transfer_joules = 200 /*kPa*/ * 2 * ONE_ATMOSPHERE var/external_pressure_bound = EXTERNAL_PRESSURE_BOUND var/internal_pressure_bound = INTERNAL_PRESSURE_BOUND @@ -146,7 +147,9 @@ pressure_delta = min(pressure_delta, (vent_pump.air_contents.return_pressure() - vent_pump.internal_pressure_bound)) if(pressure_delta > 0.5 && vent_pump.air_contents.temperature() > 0) - var/transfer_moles = pressure_delta * environment.volume / (vent_pump.air_contents.temperature() * R_IDEAL_GAS_EQUATION) + // 1kPa * 1L = 1J + var/wanted_joules = pressure_delta * environment.volume + var/transfer_moles = min(vent_pump.max_transfer_joules, wanted_joules) / (vent_pump.air_contents.temperature() * R_IDEAL_GAS_EQUATION) var/datum/gas_mixture/removed = vent_pump.air_contents.remove(transfer_moles) environment.merge(removed) vent_pump.parent.update = TRUE @@ -159,7 +162,9 @@ pressure_delta = min(pressure_delta, (vent_pump.internal_pressure_bound - vent_pump.air_contents.return_pressure())) if(pressure_delta > 0.5 && environment.temperature() > 0) - var/transfer_moles = pressure_delta * vent_pump.air_contents.volume / (environment.temperature() * R_IDEAL_GAS_EQUATION) + // 1kPa * 1L = 1J + var/wanted_joules = pressure_delta * environment.volume + var/transfer_moles = min(vent_pump.max_transfer_joules, wanted_joules) / (environment.temperature() * R_IDEAL_GAS_EQUATION) var/datum/gas_mixture/removed = environment.remove(transfer_moles) vent_pump.air_contents.merge(removed) vent_pump.parent.update = TRUE diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm index 97b535890a1..5d5ac61035e 100644 --- a/code/modules/clothing/glasses/engine_goggles.dm +++ b/code/modules/clothing/glasses/engine_goggles.dm @@ -4,10 +4,11 @@ #define MODE_MESON "meson" #define MODE_TRAY "t-ray" #define MODE_RAD "radiation" +#define MODE_PRESSURE "pressure" /obj/item/clothing/glasses/meson/engine name = "engineering scanner goggles" - desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, the T-ray Scanner mode lets you see underfloor objects such as cables and pipes, and the Radiation Scanner mode lets you see objects contaminated by radiation." + desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, the T-ray Scanner mode lets you see underfloor objects such as cables and pipes, the Radiation Scanner mode lets you see objects contaminated by radiation, and the Pressure Scanner mode lets you visualize air pressure." icon_state = "trayson-meson" item_state = "trayson-meson" actions_types = list(/datum/action/item_action/toggle_mode) @@ -37,6 +38,11 @@ if(active_on_equip_rad && mode == MODE_RAD && slot == ITEM_SLOT_EYES) ADD_TRAIT(user, SM_HALLUCINATION_IMMUNE, "meson_glasses[UID()]") + if(mode == MODE_PRESSURE && slot == ITEM_SLOT_EYES) + ADD_TRAIT(user, TRAIT_PRESSURE_VISION, "meson_glasses[UID()]") + if(mode == MODE_PRESSURE && slot != ITEM_SLOT_EYES) + REMOVE_TRAIT(user, TRAIT_PRESSURE_VISION, "meson_glasses[UID()]") + /obj/item/clothing/glasses/meson/engine/proc/toggle_mode(mob/user, voluntary) mode = modes[mode] to_chat(user, "[voluntary ? "You turn the goggles" : "The goggles turn"] [mode ? "to [mode] mode" : "off"][voluntary ? "." : "!"]") @@ -57,6 +63,12 @@ REMOVE_TRAIT(user, SM_HALLUCINATION_IMMUNE, "meson_glasses[UID()]") active_on_equip_rad = FALSE + if(mode == MODE_PRESSURE) + if(!HAS_TRAIT_FROM(user, TRAIT_PRESSURE_VISION, "meson_glasses[UID()]") && user.get_item_by_slot(ITEM_SLOT_EYES) == src) + ADD_TRAIT(user, TRAIT_PRESSURE_VISION, "meson_glasses[UID()]") + else + REMOVE_TRAIT(user, TRAIT_PRESSURE_VISION, "meson_glasses[UID()]") + if(ishuman(user)) var/mob/living/carbon/human/H = user if(H.glasses == src) @@ -101,17 +113,18 @@ user.update_inv_l_hand() user.update_inv_r_hand() -/// atmos techs have lived far too long without tray goggles while those damned engineers get their dual-purpose gogles all to themselves -/obj/item/clothing/glasses/meson/engine/tray - name = "optical t-ray scanner" - icon_state = "trayson-t-ray" - item_state = "trayson-t-ray" - desc = "Used by engineering staff to see underfloor objects such as cables and pipes." +/// Atmospherics techs get their own version with T-ray and an exlusive Pressure view. +/obj/item/clothing/glasses/meson/engine/atmos + name = "atmospherics scanner goggles" + icon_state = "trayson-pressure" + item_state = "trayson-pressure" + desc = "Used by atmospherics techs to visualize pressure, see station structure, and see underfloor objects such as cables and pipes." range = 2 origin_tech = "materials=3;magnets=2;engineering=2" - modes = list(MODE_NONE = MODE_TRAY, MODE_TRAY = MODE_NONE) + modes = list(MODE_NONE = MODE_PRESSURE, MODE_PRESSURE = MODE_MESON, MODE_MESON = MODE_TRAY, MODE_TRAY = MODE_NONE) #undef MODE_NONE #undef MODE_MESON #undef MODE_TRAY #undef MODE_RAD +#undef MODE_PRESSURE diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 35a4f1bd02a..e4c85d74ab2 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -171,7 +171,6 @@ GLOBAL_LIST_EMPTY(event_last_fired) new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 25, list(ASSIGNMENT_MEDICAL = 50), TRUE), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 100, list(ASSIGNMENT_SECURITY = 30), TRUE), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ion_storm, 0, list(ASSIGNMENT_AI = 50, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Immovable Rod", /datum/event/immovable_rod, 0, list(ASSIGNMENT_ENGINEER = 30), TRUE), //new /datum/event_meta/ninja(EVENT_LEVEL_MODERATE, "Space Ninja", /datum/event/space_ninja, 0, list(ASSIGNMENT_SECURITY = 15), TRUE), // NON-BAY EVENTS new /datum/event_meta(EVENT_LEVEL_MODERATE, "Mass Hallucination", /datum/event/mass_hallucination, 300), @@ -207,8 +206,9 @@ GLOBAL_LIST_EMPTY(event_last_fired) new /datum/event_meta(EVENT_LEVEL_MAJOR, "Traders", /datum/event/traders, 85, is_one_shot = TRUE), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Terror Spiders", /datum/event/spider_terror, 15, list(ASSIGNMENT_SECURITY = 3), TRUE), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Slaughter Demon", /datum/event/spawn_slaughter, 20, is_one_shot = TRUE), - new /datum/event_meta(EVENT_LEVEL_MAJOR, "Shadow Demon", /datum/event/spawn_slaughter/shadow, 20, is_one_shot = TRUE), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Shadow Demon", /datum/event/spawn_slaughter/shadow, 20, is_one_shot = TRUE), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Pulse Demon Infiltration", /datum/event/spawn_pulsedemon, 20, is_one_shot = TRUE), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Immovable Rod", /datum/event/immovable_rod, 0, list(ASSIGNMENT_ENGINEER = 10), TRUE) //new /datum/event_meta(EVENT_LEVEL_MAJOR, "Floor Cluwne", /datum/event/spawn_floor_cluwne, 15, is_one_shot = TRUE) ) diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index b70aa66502e..63e2a1f7856 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -70,44 +70,69 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 /obj/effect/immovablerod/singularity_pull() return -/obj/effect/immovablerod/Bump(atom/clong) +/obj/effect/immovablerod/Move(turf/newloc, direction) + if(!istype(newloc)) + return ..() + + if(!direction) + direction = get_dir(src, newloc) + forceMove(newloc) + setDir(direction) + if(prob(10)) playsound(src, 'sound/effects/bang.ogg', 50, TRUE) audible_message("CLANG") - if(clong && prob(25)) - x = clong.x - y = clong.y + clong_turf(newloc) + for(var/atom/victim as anything in newloc) + clong_thing(victim) - if(isturf(clong) || isobj(clong)) - if(clong.density) - clong.ex_act(EXPLODE_HEAVY) +/obj/effect/immovablerod/proc/clong_turf(turf/victim) + if(!victim.density) + return - else if(ismob(clong)) - if(ishuman(clong)) - var/mob/living/carbon/human/H = clong + if(iswallturf(victim)) + var/turf/simulated/wall/W = victim + W.take_damage(rand(W.damage_cap / 3, W.damage_cap * 4 / 3)) + else + victim.ex_act(EXPLODE_LIGHT) + +/obj/effect/immovablerod/proc/clong_thing(atom/victim) + if(isobj(victim) && victim.density) + victim.ex_act(EXPLODE_HEAVY) + else if(ismob(victim)) + if(ishuman(victim)) + var/mob/living/carbon/human/H = victim H.visible_message("[H.name] is penetrated by an immovable rod!", "The rod penetrates you!", "You hear a CLANG!") H.adjustBruteLoss(160) - if(clong.density || prob(10)) - clong.ex_act(EXPLODE_HEAVY) + if(victim.density || prob(10)) + victim.ex_act(EXPLODE_HEAVY) /obj/effect/immovablerod/event // The base chance to "damage" the floor when passing. This is not guaranteed to cause a full on hull breach. - // Chance to expose the tile to space is like 60% of this value. + // Chance to expose the tile to space is like 15% of this value. var/floor_rip_chance = 40 /obj/effect/immovablerod/event/Move() - var/atom/oldloc = loc . = ..() - if(prob(floor_rip_chance)) - var/turf/simulated/floor/T = get_turf(oldloc) - if(istype(T)) - T.ex_act(EXPLODE_HEAVY) if(loc == end) qdel(src) +/obj/effect/immovablerod/event/clong_turf(turf/victim) + if(!isfloorturf(victim)) + return ..() + + if(!prob(floor_rip_chance)) + return + + var/turf/simulated/floor/T = victim + if(prob(25)) + T.ex_act(EXPLODE_HEAVY) + else + T.ex_act(EXPLODE_LIGHT) + /obj/effect/immovablerod/deadchat_plays(mode = DEADCHAT_DEMOCRACY_MODE, cooldown = 6 SECONDS) return AddComponent(/datum/component/deadchat_control/immovable_rod, mode, list(), cooldown) diff --git a/code/modules/food_and_drinks/kitchen_machinery/cooker.dm b/code/modules/food_and_drinks/kitchen_machinery/cooker.dm index 0ae75aedd43..17d86d656af 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/cooker.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/cooker.dm @@ -160,8 +160,7 @@ oil.name = "fat" oil.desc = "Uh oh, looks like some fat from [src]!" oil.loc = location - location.hotspot_expose(700, 50, 1) - //TODO have a chance of setting the tile on fire + location.hotspot_expose(700, 1) /obj/machinery/cooker/proc/changename(obj/item/name, obj/item/setme) setme.name = "[thiscooktype] [name.name]" diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index c2dc17adf74..827188db878 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -217,7 +217,7 @@ /obj/structure/bonfire/proc/Burn() var/turf/current_location = get_turf(src) - current_location.hotspot_expose(1000,500,1) + current_location.hotspot_expose(1000, 10) for(var/A in current_location) if(A == src) continue diff --git a/code/modules/mob/living/init_signals.dm b/code/modules/mob/living/init_signals.dm index 07baa8e3c92..adf03cbff7e 100644 --- a/code/modules/mob/living/init_signals.dm +++ b/code/modules/mob/living/init_signals.dm @@ -30,6 +30,8 @@ RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_UNKNOWN), PROC_REF(on_unknown_trait)) RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_UNKNOWN), PROC_REF(on_unknown_trait)) + RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_PRESSURE_VISION), PROC_REF(on_pressure_vision_trait_gain)) + RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_PRESSURE_VISION), PROC_REF(on_pressure_vision_trait_loss)) /// Called when [TRAIT_KNOCKEDOUT] is added to the mob. /mob/living/proc/on_knockedout_trait_gain(datum/source) @@ -172,3 +174,17 @@ /mob/living/proc/on_unknown_trait_part_2() name = get_visible_name() sec_hud_set_ID() + +/// Called when [TRAIT_PRESSURE_VISION] is added to the mob. +/mob/living/proc/on_pressure_vision_trait_gain(datum/source) + SIGNAL_HANDLER + var/datum/atom_hud/data/pressure/hud = GLOB.huds[DATA_HUD_PRESSURE] + if(!(src in hud.hudusers)) + hud.add_hud_to(src) + +/// Called when [TRAIT_PRESSURE_VISION] is removed from the mob. +/mob/living/proc/on_pressure_vision_trait_loss(datum/source) + SIGNAL_HANDLER + var/datum/atom_hud/data/pressure/hud = GLOB.huds[DATA_HUD_PRESSURE] + if(src in hud.hudusers) + hud.remove_hud_from(src) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 267343b767b..2df2bb1a32b 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -121,6 +121,10 @@ if(moving_diagonally) //no mob swap during diagonal moves. return TRUE + if(has_status_effect(STATUS_EFFECT_UNBALANCED)) + // Don't swap while being shoved by air. + return TRUE + if(a_intent == INTENT_HELP) // Help intent doesn't mob swap a mob pulling a structure if(isstructure(M.pulling) || isstructure(pulling)) return TRUE @@ -589,6 +593,11 @@ /mob/living/proc/UpdateDamageIcon() return +/mob/living/get_spacemove_backup(movement_dir) + if(movement_dir == 0 && has_status_effect(STATUS_EFFECT_UNBALANCED)) + return + return ..() + /mob/living/Move(atom/newloc, direct, movetime) if(buckled && buckled.loc != newloc) //not updating position if(!buckled.anchored) @@ -683,41 +692,7 @@ /mob/living/experience_pressure_difference(flow_x, flow_y, pressure_resistance_prob_delta = 0) if(buckled) return - if(client && client.move_delay >= world.time + world.tick_lag * 2) - pressure_resistance_prob_delta -= 30 - - var/list/turfs_to_check = list() - - if(has_limbs) - var/direction = 0 - if(flow_x > 100) - direction |= EAST - if(flow_x < -100) - direction |= WEST - if(flow_y > 100) - direction |= NORTH - if(flow_y < -100) - direction |= SOUTH - - var/turf/T = get_step(src, angle2dir(dir2angle(direction) + 90)) - if(T) - turfs_to_check += T - - T = get_step(src, angle2dir(dir2angle(direction) - 90)) - if(T) - turfs_to_check += T - - for(var/t in turfs_to_check) - T = t - if(T.density) - pressure_resistance_prob_delta -= 20 - continue - for(var/atom/movable/AM in T) - if(AM.density && AM.anchored) - pressure_resistance_prob_delta -= 20 - break - - ..(flow_x, flow_y, pressure_resistance_prob_delta) + ..() /*////////////////////// START RESIST PROCS @@ -982,6 +957,29 @@ var/datum/status_effect/incapacitating/slowed/S = IsSlowed() if(S) . += S.slowdown_value + else + // Only apply directional slow if we don't have a full slow. + var/datum/status_effect/incapacitating/directional_slow/DS = has_status_effect(STATUS_EFFECT_DIRECTIONAL_SLOW) + if(DS) + if(DS.direction == last_move) + // Moving directly in the direction we're slowed, full penalty + . += DS.slowdown_value + else if(REVERSE_DIR(DS.direction) == last_move) + // Moving directly opposite to the slow, no penalty. + // Lint doesn't like this block being empty so, uh, add zero, I guess. + . += 0 + else if(IS_DIR_CARDINAL(DS.direction) || IS_DIR_CARDINAL(last_move)) + if(DS.direction & last_move) + // Moving roughly in the direction we're slowed, full penalty. + . += DS.slowdown_value + else if(!(REVERSE_DIR(DS.direction) & last_move)) + // Moving perpendicular to the slow, partial penalty. + . += DS.slowdown_value / 2 + // Moving roughly opposite to the slow, no penalty. + else + // Diagonal move perpendicular to the slow, partial penalty. + . += DS.slowdown_value / 2 + if(forced_look) . += DIRECTION_LOCK_SLOWDOWN if(ignorewalk) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 074081bba93..d872d92ec7e 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -228,7 +228,7 @@ if(!G || G.oxygen() < 1) ExtinguishMob() //If there's no oxygen in the tile we're on, put out the fire return FALSE - T.hotspot_expose(700, 50, 1) + T.hotspot_expose(700, 10) SEND_SIGNAL(src, COMSIG_LIVING_FIRE_TICK) return TRUE diff --git a/code/modules/mob/living/living_status_procs.dm b/code/modules/mob/living/living_status_procs.dm index 35a56aa0ae6..97433d8b3fd 100644 --- a/code/modules/mob/living/living_status_procs.dm +++ b/code/modules/mob/living/living_status_procs.dm @@ -512,26 +512,26 @@ STATUS EFFECTS /mob/living/proc/IsSlowed() return has_status_effect(STATUS_EFFECT_SLOWED) -/mob/living/proc/Slowed(amount, _slowdown_value) +/mob/living/proc/Slowed(amount, slowdown_value) var/datum/status_effect/incapacitating/slowed/S = IsSlowed() if(S) S.duration = max(world.time + amount, S.duration) - S.slowdown_value = _slowdown_value + S.slowdown_value = slowdown_value else if(amount > 0) - S = apply_status_effect(STATUS_EFFECT_SLOWED, amount, _slowdown_value) + S = apply_status_effect(STATUS_EFFECT_SLOWED, amount, slowdown_value) return S -/mob/living/proc/SetSlowed(amount, _slowdown_value) +/mob/living/proc/SetSlowed(amount, slowdown_value) var/datum/status_effect/incapacitating/slowed/S = IsSlowed() - if(amount <= 0 || _slowdown_value <= 0) + if(amount <= 0 || slowdown_value <= 0) if(S) qdel(S) else if(S) S.duration = amount - S.slowdown_value = _slowdown_value + S.slowdown_value = slowdown_value else - S = apply_status_effect(STATUS_EFFECT_SLOWED, amount, _slowdown_value) + S = apply_status_effect(STATUS_EFFECT_SLOWED, amount, slowdown_value) return S diff --git a/code/modules/mob/living/silicon/robot/robot_module_actions.dm b/code/modules/mob/living/silicon/robot/robot_module_actions.dm index cb6834e2474..84b34b0d345 100644 --- a/code/modules/mob/living/silicon/robot/robot_module_actions.dm +++ b/code/modules/mob/living/silicon/robot/robot_module_actions.dm @@ -40,6 +40,7 @@ #define MODE_MESON "meson" #define MODE_TRAY "t-ray" #define MODE_RAD "radiation" +#define MODE_PRESSURE "pressure" #define RAD_RANGE 5 /datum/action/innate/robot_sight/engineering_scanner @@ -47,7 +48,7 @@ sight_mode = BORGMESON button_overlay_icon = 'icons/obj/clothing/glasses.dmi' button_overlay_icon_state = "trayson-meson" - var/list/mode_list = list(MODE_NONE = MODE_MESON, MODE_MESON = MODE_TRAY, MODE_TRAY = MODE_RAD, MODE_RAD = MODE_NONE) + var/list/mode_list = list(MODE_NONE = MODE_MESON, MODE_MESON = MODE_TRAY, MODE_TRAY = MODE_RAD, MODE_RAD = MODE_PRESSURE, MODE_PRESSURE = MODE_NONE) var/mode = MODE_NONE /datum/action/innate/robot_sight/engineering_scanner/Activate() @@ -67,8 +68,13 @@ else STOP_PROCESSING(SSobj, src) + if(mode == MODE_PRESSURE) + ADD_TRAIT(R, TRAIT_PRESSURE_VISION, "borgsight") + else + REMOVE_TRAIT(R, TRAIT_PRESSURE_VISION, "borgsight") + /datum/action/innate/robot_sight/engineering_scanner/Deactivate() - return + REMOVE_TRAIT(owner, TRAIT_PRESSURE_VISION, "borgsight") /datum/action/innate/robot_sight/engineering_scanner/process() var/mob/living/silicon/robot/user = owner @@ -84,6 +90,7 @@ #undef MODE_MESON #undef MODE_TRAY #undef MODE_RAD +#undef MODE_PRESSURE #undef RAD_RANGE /datum/action/innate/robot_magpulse diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index 89ff5cc82ea..4f5a17da508 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -25,5 +25,6 @@ return ..() || mob_negates_gravity() /mob/living/silicon/robot/experience_pressure_difference(flow_x, flow_y) - if(!HAS_TRAIT(src, TRAIT_MAGPULSE)) - return ..() + if(HAS_TRAIT(src, TRAIT_MAGPULSE)) + return + ..() diff --git a/code/modules/mob/living/silicon/robot/syndicate_robot.dm b/code/modules/mob/living/silicon/robot/syndicate_robot.dm index 35215d7f236..891f0fa7d1c 100644 --- a/code/modules/mob/living/silicon/robot/syndicate_robot.dm +++ b/code/modules/mob/living/silicon/robot/syndicate_robot.dm @@ -40,6 +40,11 @@ playsound(loc, 'sound/mecha/nominalsyndi.ogg', 75, 0) +/mob/living/silicon/robot/syndicate/air_push(direction, strength) + // Syndicate borgs ignore airflow, because they're bloody expensive. + // This should probably be revisited later, as part of a broader move_resist/move_force/pull_force rework. + return + /mob/living/silicon/robot/syndicate/medical base_icon = "syndi-medi" icon_state = "syndi-medi" diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm index 5b4d0624eb4..5d1dcec846c 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm @@ -596,7 +596,7 @@ Difficulty: Hard var/obj/effect/hotspot/hotspot = new /obj/effect/hotspot/fake(T) hotspot.temperature = 1000 hotspot.recolor() - T.hotspot_expose(700,50,1) + T.hotspot_expose(700, 50) if(mode == VORTEX) var/turf/T = get_turf(src) for(var/atom/A in T) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index b9bddd139c7..ef5abf4224e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -282,7 +282,7 @@ Difficulty: Medium var/obj/effect/hotspot/hotspot = new /obj/effect/hotspot/fake(T) hotspot.temperature = 1000 hotspot.recolor() - T.hotspot_expose(700,50,1) + T.hotspot_expose(700, 50) for(var/mob/living/L in T.contents) if((L in hit_list) || L == source) continue diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b1a145c4390..10f65af02b1 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -75,6 +75,7 @@ IMPMINDSHIELD_HUD = 'icons/mob/hud/sechud.dmi', IMPCHEM_HUD = 'icons/mob/hud/sechud.dmi', IMPTRACK_HUD = 'icons/mob/hud/sechud.dmi', + PRESSURE_HUD = 'icons/effects/effects.dmi', ) for(var/hud in hud_possible) diff --git a/code/modules/power/engines/supermatter/supermatter.dm b/code/modules/power/engines/supermatter/supermatter.dm index 0199e76b6d0..7c6aaee0828 100644 --- a/code/modules/power/engines/supermatter/supermatter.dm +++ b/code/modules/power/engines/supermatter/supermatter.dm @@ -44,7 +44,7 @@ #define DAMAGE_INCREASE_MULTIPLIER 0.25 -#define THERMAL_RELEASE_MODIFIER 5 //Higher == less heat released during reaction, not to be confused with the above values +#define THERMAL_RELEASE_MODIFIER 1 //Higher == less heat released during reaction, not to be confused with the above values #define PLASMA_RELEASE_MODIFIER 750 //Higher == less plasma released by reaction #define OXYGEN_RELEASE_MODIFIER 325 //Higher == less oxygen released at high temperature/power @@ -230,6 +230,11 @@ /// Run S-Class event? So we can only run one S-class event per round per crystal var/has_run_sclass = FALSE + /// How often do we want to process the crystal? + var/ticks_per_run = 5 + /// How long has it been since we processed the crystal? + var/tick_counter = 0 + /obj/machinery/atmospherics/supermatter_crystal/Initialize(mapload) . = ..() @@ -407,8 +412,11 @@ qdel(src) /obj/machinery/atmospherics/supermatter_crystal/process_atmos() - var/datum/milla_safe/supermatter_process/milla = new() - milla.invoke_async(src) + tick_counter += SSair.wait + if(tick_counter >= ticks_per_run) + var/datum/milla_safe/supermatter_process/milla = new() + milla.invoke_async(src) + tick_counter -= ticks_per_run /datum/milla_safe/supermatter_process @@ -424,7 +432,7 @@ if(isnull(T)) // We have a null turf...something is wrong, stop processing this entity. return PROCESS_KILL - if(!istype(T)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now. + if(!istype(loc, /turf)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now. return //Yeah just stop. if(T.density) @@ -566,15 +574,11 @@ //Power * 0.55 * a value between 1 and 0.8 var/device_energy = power * REACTION_POWER_MODIFIER - //To figure out how much temperature to add each tick, consider that at one atmosphere's worth - //of pure oxygen, with all four lasers firing at standard energy and no N2 present, at room temperature - //that the device energy is around 2140. At that stage, we don't want too much heat to be put out - //Since the core is effectively "cold" - - //Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock - //is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall. - //Power * 0.55 * (some value between 1.5 and 23) / 5 - removed.set_temperature(removed.temperature() + max(0, min((2500 * dynamic_heat_modifier) - removed.temperature(), (((device_energy * dynamic_heat_modifier) / THERMAL_RELEASE_MODIFIER) * heat_multiplier)))) + // Calculate temperature change in terms of thermal energy, scaled by the average specific heat of the gas. + if(removed.total_moles()) + var/produced_joules = max(0, ((device_energy * dynamic_heat_modifier) / THERMAL_RELEASE_MODIFIER) * heat_multiplier) + produced_joules *= (removed.heat_capacity() / removed.total_moles()) + removed.set_temperature((removed.thermal_energy() + produced_joules) / removed.heat_capacity()) //Calculate how much gas to release //Varies based on power and gas content diff --git a/code/modules/projectiles/guns/projectile/saw.dm b/code/modules/projectiles/guns/projectile/saw.dm index c8ddc466f2d..81c7305c210 100644 --- a/code/modules/projectiles/guns/projectile/saw.dm +++ b/code/modules/projectiles/guns/projectile/saw.dm @@ -101,7 +101,7 @@ var/obj/effect/hotspot/hotspot = new /obj/effect/hotspot/fake(location) hotspot.temperature = 1000 hotspot.recolor() - location.hotspot_expose(700, 50, 1) + location.hotspot_expose(700, 50) //magazines// diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index c40cad88e0e..8203b847882 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -167,7 +167,7 @@ var/obj/effect/hotspot/hotspot = new /obj/effect/hotspot/fake(location) hotspot.temperature = 1000 hotspot.recolor() - location.hotspot_expose(700, 50, 1) + location.hotspot_expose(700, 50) /obj/item/projectile/bullet/incendiary/shell/dragonsbreath name = "dragonsbreath round" diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm index 443d9361bf6..995af56462d 100644 --- a/code/modules/research/designs/equipment_designs.dm +++ b/code/modules/research/designs/equipment_designs.dm @@ -92,14 +92,14 @@ build_path = /obj/item/clothing/glasses/meson/engine category = list("Equipment") -/datum/design/tray_goggles - name = "Optical T-Ray Scanners" - desc = "Used by engineering staff to see underfloor objects such as cables and pipes." - id = "tray_goggles" +/datum/design/atmos_goggles + name = "Atmospherics Scanner Goggles" + desc = "Used by atmospherics techs to see pressure and underfloor objects such as cables and pipes." + id = "atmos_goggles" req_tech = list("materials" = 3, "magnets" = 2, "engineering" = 2) build_type = PROTOLATHE materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/glasses/meson/engine/tray + build_path = /obj/item/clothing/glasses/meson/engine/atmos category = list("Equipment") /datum/design/nvgmesons diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index bc32bedbe9f..c77d8b9a11d 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -219,6 +219,10 @@ var/obj/effect/E = AM if(E.is_cleanable()) return CARGO_OK + return CARGO_SKIP_ATOM + + if(istype(AM, /mob/dead)) + return CARGO_SKIP_ATOM return CARGO_OK diff --git a/code/modules/tgui/modules/ghost_hud_panel.dm b/code/modules/tgui/modules/ghost_hud_panel.dm index 2e6a6b8d58d..307bed5119c 100644 --- a/code/modules/tgui/modules/ghost_hud_panel.dm +++ b/code/modules/tgui/modules/ghost_hud_panel.dm @@ -13,7 +13,8 @@ GLOBAL_DATUM_INIT(ghost_hud_panel, /datum/ui_module/ghost_hud_panel, new) var/list/hud_type_lookup = list( "medical" = DATA_HUD_MEDICAL_ADVANCED, "security" = DATA_HUD_SECURITY_ADVANCED, - "diagnostic" = DATA_HUD_DIAGNOSTIC_ADVANCED + "diagnostic" = DATA_HUD_DIAGNOSTIC_ADVANCED, + "pressure" = DATA_HUD_PRESSURE ) /datum/ui_module/ghost_hud_panel/ui_state(mob/user) diff --git a/code/modules/vehicle/tg_vehicles/scooter.dm b/code/modules/vehicle/tg_vehicles/scooter.dm index 6ff3e1b4a16..b42b7044935 100644 --- a/code/modules/vehicle/tg_vehicles/scooter.dm +++ b/code/modules/vehicle/tg_vehicles/scooter.dm @@ -176,7 +176,7 @@ if(location) if(prob(33)) - location.hotspot_expose(1000, 1000) + location.hotspot_expose(1000, 1) sparks.start() //the most radical way to start plasma fires for(var/mob/living/carbon/victim in location) if(victim.body_position == LYING_DOWN) diff --git a/icons/effects/tile_effects.dmi b/icons/effects/tile_effects.dmi index 9b5e2d877dc..4a1a04f3438 100644 Binary files a/icons/effects/tile_effects.dmi and b/icons/effects/tile_effects.dmi differ diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi index 15765964a0d..728ea3f4a8b 100644 Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ diff --git a/icons/mob/inhands/clothing_lefthand.dmi b/icons/mob/inhands/clothing_lefthand.dmi index c2ba4188d88..6c753baefcf 100644 Binary files a/icons/mob/inhands/clothing_lefthand.dmi and b/icons/mob/inhands/clothing_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing_righthand.dmi b/icons/mob/inhands/clothing_righthand.dmi index ec48e5d97ed..6ddf8bf55d8 100644 Binary files a/icons/mob/inhands/clothing_righthand.dmi and b/icons/mob/inhands/clothing_righthand.dmi differ diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index 5591755e019..a1866670820 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index b4775ad0f4d..ca7685c79d4 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/paradise.dme b/paradise.dme index 15f021e07a8..7a5f74e9dfb 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1346,6 +1346,7 @@ #include "code\game\objects\structures\nest.dm" #include "code\game\objects\structures\noticeboard.dm" #include "code\game\objects\structures\plasma_geyser.dm" +#include "code\game\objects\structures\plasmafire_generator.dm" #include "code\game\objects\structures\plasticflaps.dm" #include "code\game\objects\structures\pondering_orb.dm" #include "code\game\objects\structures\railings.dm" diff --git a/rust/Cargo.lock b/rust/Cargo.lock index a3c486a8d94..ffbbc755efa 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -36,6 +36,21 @@ dependencies = [ "memchr", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "atomic_float" version = "1.0.0" @@ -78,16 +93,14 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bindgen" -version = "0.69.4" +version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ "bitflags 2.5.0", "cexpr", "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", + "itertools", "log", "prettyplease", "proc-macro2", @@ -96,7 +109,6 @@ dependencies = [ "rustc-hash", "shlex", "syn 2.0.60", - "which", ] [[package]] @@ -129,22 +141,20 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byondapi" -version = "0.4.7" -source = "git+https://github.com/spacestation13/byondapi-rs.git#aa4addd95c33b66652b3e35e7401a0ad82aa028e" +version = "0.4.11" +source = "git+https://github.com/spacestation13/byondapi-rs.git#c3b15e8574eca87865c640616029e6ea72da4cd1" dependencies = [ "byondapi-macros", "byondapi-sys", "inventory", - "lazy_static", "libloading", "num_enum", - "walkdir", ] [[package]] name = "byondapi-macros" -version = "0.1.2" -source = "git+https://github.com/spacestation13/byondapi-rs.git#aa4addd95c33b66652b3e35e7401a0ad82aa028e" +version = "0.1.3" +source = "git+https://github.com/spacestation13/byondapi-rs.git#c3b15e8574eca87865c640616029e6ea72da4cd1" dependencies = [ "proc-macro2", "quote", @@ -153,14 +163,12 @@ dependencies = [ [[package]] name = "byondapi-sys" -version = "0.11.1" -source = "git+https://github.com/spacestation13/byondapi-rs.git#aa4addd95c33b66652b3e35e7401a0ad82aa028e" +version = "0.11.2" +source = "git+https://github.com/spacestation13/byondapi-rs.git#c3b15e8574eca87865c640616029e6ea72da4cd1" dependencies = [ "bindgen", "doxygen-rs", "libloading", - "rustc_version", - "walkdir", ] [[package]] @@ -189,6 +197,15 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "cc" +version = "1.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" +dependencies = [ + "shlex", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -204,6 +221,20 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chrono" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-targets", +] + [[package]] name = "clang-sys" version = "1.7.0" @@ -227,6 +258,12 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52fdfaf2bee6357023bf7f95b15a8ef0b82759d2bce705cc45efcae9ae10f0ff" +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + [[package]] name = "crc32fast" version = "1.4.2" @@ -325,16 +362,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" -[[package]] -name = "errno" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys", -] - [[package]] name = "eyre" version = "0.6.12" @@ -345,6 +372,15 @@ dependencies = [ "once_cell", ] +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + [[package]] name = "flate2" version = "1.0.33" @@ -411,12 +447,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] -name = "home" -version = "0.5.9" +name = "iana-time-zone" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ - "windows-sys", + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", ] [[package]] @@ -480,15 +530,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.11" @@ -496,16 +537,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] -name = "lazy_static" -version = "1.4.0" +name = "js-sys" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +dependencies = [ + "once_cell", + "wasm-bindgen", +] [[package]] name = "libc" @@ -515,20 +554,14 @@ checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" [[package]] name = "libloading" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", "windows-targets", ] -[[package]] -name = "linux-raw-sys" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" - [[package]] name = "lodepng" version = "3.10.7" @@ -576,6 +609,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -630,18 +664,18 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -706,6 +740,19 @@ dependencies = [ "siphasher", ] +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -887,40 +934,20 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags 2.5.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys", -] - [[package]] name = "rustlibs" -version = "1.0.0" +version = "2.0.0" dependencies = [ "atomic_float", "bitflags 2.5.0", "byondapi", + "chrono", "diff", "dmm-tools", "eyre", "fxhash", - "itertools 0.10.5", + "itertools", + "png", "rand", "regex", "scc", @@ -966,12 +993,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b84345e4c9bd703274a082fb80caaa99b7612be48dfaa1dd9266577ec412309d" -[[package]] -name = "semver" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" - [[package]] name = "serde" version = "1.0.210" @@ -1010,6 +1031,12 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + [[package]] name = "siphasher" version = "0.3.11" @@ -1122,17 +1149,59 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "which" -version = "4.4.2" +name = "wasm-bindgen" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ - "either", - "home", + "cfg-if", "once_cell", - "rustix", + "wasm-bindgen-macro", ] +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.60", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" + [[package]] name = "winapi" version = "0.3.9" @@ -1164,6 +1233,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets", +] + [[package]] name = "windows-sys" version = "0.52.0" diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 06e948f3bec..77be2902dbb 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rustlibs" -version = "1.0.0" +version = "2.0.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -33,3 +33,5 @@ serde_json = { version = "1.0" } walkdir = "2.5.0" # regex regex = "1.10.5" +png = "0.17.16" +chrono = "0.4.39" diff --git a/rust/src/logging/mod.rs b/rust/src/logging/mod.rs index fc5312ae594..97d524f8773 100644 --- a/rust/src/logging/mod.rs +++ b/rust/src/logging/mod.rs @@ -1,16 +1,14 @@ +use byondapi::global_call::call_global; +use byondapi::prelude::ByondValue; +use byondapi::threadsync::thread_sync; +use chrono::prelude::Utc; +use eyre; + /// Call stack trace dm method with message. -pub(crate) fn dm_call_stack_trace(msg: String) { - let msg = byondapi::value::ByondValue::try_from(msg).unwrap(); - // this is really ugly, cause we want to get id/ref to a proc name string - // that is already allocated, and don't want to allocate a new string entirely - byondapi::global_call::call_global_id( - { - static STRING_ID: std::sync::OnceLock = std::sync::OnceLock::new(); - *STRING_ID.get_or_init(|| byondapi::byond_string::str_id_of("_stack_trace").unwrap()) - }, - &[msg], - ) - .unwrap(); +pub(crate) fn dm_call_stack_trace(msg: String) -> eyre::Result<()> { + call_global("stack_trace", &[ByondValue::new_str(msg)?])?; + + Ok(()) } /// Panic handler, called on unhandled errors. @@ -18,7 +16,17 @@ pub(crate) fn dm_call_stack_trace(msg: String) { pub(crate) fn setup_panic_handler() { std::panic::set_hook(Box::new(|info| { let msg = format!("Panic \n {:#?}", info); - let _ = std::fs::write("./rustlibs_panic.txt", msg.clone()); - dm_call_stack_trace(msg); + let msg_copy = msg.clone(); + let _ = thread_sync( + || -> ByondValue { + if let Err(error) = dm_call_stack_trace(msg_copy) { + let second_msg = format!("BYOND error \n {:#?}", error); + let _ = std::fs::write(Utc::now().format("data/rustlibs_dm_trace_failed_%Y%m%d_%H%M%S.txt").to_string(), second_msg.clone()); + } + Default::default() + }, + true, + ); + let _ = std::fs::write(Utc::now().format("data/rustlibs_panic_%Y%m%d_%H%M%S.txt").to_string(), msg.clone()); })) } diff --git a/rust/src/mapmanip/mod.rs b/rust/src/mapmanip/mod.rs index 70bc79b8cf3..f9c7f25b0df 100644 --- a/rust/src/mapmanip/mod.rs +++ b/rust/src/mapmanip/mod.rs @@ -170,7 +170,7 @@ fn mapmanip_submap_extract_insert( /// #[byondapi::bind] -fn mapmanip_read_dmm_file(path: ByondValue) { +fn mapmanip_read_dmm_file(path: ByondValue) -> eyre::Result { internal_mapmanip_read_dmm_file(path) } @@ -235,7 +235,7 @@ pub unsafe extern "C" fn read_dmm_file_ffi( ) { Ok(val) => val, Err(info) => { - dm_call_stack_trace(format!("Rustlibs ERROR read_dmm_file_ffi() \n {info:#?}")); + let _ = dm_call_stack_trace(format!("Rustlibs ERROR read_dmm_file_ffi() \n {info:#?}")); ByondValue::null() } } diff --git a/rust/src/milla/api.rs b/rust/src/milla/api.rs index b5393a58859..d6fb9845d30 100644 --- a/rust/src/milla/api.rs +++ b/rust/src/milla/api.rs @@ -2,6 +2,7 @@ use crate::logging; use crate::milla::constants::*; use crate::milla::conversion; use crate::milla::model::*; +use crate::milla::simulate; use crate::milla::statics::*; use crate::milla::tick; use byondapi::global_call::call_global; @@ -9,20 +10,22 @@ use byondapi::map::byond_xyz; use byondapi::prelude::*; use eyre::eyre; use eyre::Result; +use std::env; use std::thread; use std::time::Instant; /// BYOND API for ensuring the buffers are usable. #[byondapi::bind] -fn milla_initialize(byond_z: ByondValue) { +fn milla_initialize(byond_z: ByondValue) -> eyre::Result { logging::setup_panic_handler(); + env::set_var("RUST_BACKTRACE", "1"); let z = f32::try_from(byond_z)? as i32 - 1; internal_initialize(z)?; - Ok(Default::default()) + Ok(ByondValue::null()) } /// Ensure that buffers are available. -pub(crate) fn internal_initialize(z: i32) -> Result<(), eyre::Error> { +pub(crate) fn internal_initialize(z: i32) -> eyre::Result { if z >= MAX_Z_LEVELS { return Err(eyre!( "Suspiciously high Z level {} initialized, update MAX_Z_LEVELS if this is intentional.", @@ -31,7 +34,7 @@ pub(crate) fn internal_initialize(z: i32) -> Result<(), eyre::Error> { } let buffers = BUFFERS.get_or_init(Buffers::new); buffers.init_to(z); - Ok(Default::default()) + Ok(ByondValue::null()) } /// BYOND API for defining an environment that a tile can be exposed to. @@ -44,7 +47,7 @@ fn milla_create_environment( sleeping_agent: ByondValue, agent_b: ByondValue, temperature: ByondValue, -) { +) -> eyre::Result { logging::setup_panic_handler(); Ok(ByondValue::from(internal_create_environment( conversion::byond_to_option_f32(oxygen)?, @@ -112,7 +115,9 @@ fn milla_set_tile( agent_b: ByondValue, temperature: ByondValue, _innate_heat_capacity: ByondValue, -) { + hotspot_temperature: ByondValue, + hotspot_volume: ByondValue, +) -> eyre::Result { logging::setup_panic_handler(); let (x, y, z) = byond_xyz(&turf)?.coordinates(); internal_set_tile( @@ -136,8 +141,10 @@ fn milla_set_tile( // Temporarily disabled to better match the existing system. //bounded_byond_to_option_f32(innate_heat_capacity, 0.0, f32::INFINITY)?, Some(0.0), + conversion::bounded_byond_to_option_f32(hotspot_temperature, 0.0, f32::INFINITY)?, + conversion::bounded_byond_to_option_f32(hotspot_volume, 0.0, 1.0)?, )?; - Ok(Default::default()) + Ok(ByondValue::null()) } /// BYOND API for setting the directions a tile is airtight in. @@ -149,7 +156,7 @@ fn milla_set_tile_airtight( airtight_east: ByondValue, airtight_south: ByondValue, airtight_west: ByondValue, -) { +) -> eyre::Result { logging::setup_panic_handler(); let (x, y, z) = byond_xyz(&turf)?.coordinates(); internal_set_tile( @@ -171,8 +178,10 @@ fn milla_set_tile_airtight( None, None, None, + None, + None, )?; - Ok(Default::default()) + Ok(ByondValue::null()) } /// Rust version of setting the atmos details of a tile. @@ -196,6 +205,8 @@ pub(crate) fn internal_set_tile( temperature: Option, thermal_energy: Option, innate_heat_capacity: Option, + hotspot_temperature: Option, + hotspot_volume: Option, ) -> Result<()> { let buffers = BUFFERS.get().ok_or(eyre!("BUFFERS not initialized."))?; let active = buffers.get_active().read().unwrap(); @@ -272,25 +283,45 @@ pub(crate) fn internal_set_tile( if let Some(value) = thermal_energy { tile.thermal_energy = value; } + if let Some(value) = hotspot_temperature { + tile.hotspot_temperature = value; + } + if let Some(value) = hotspot_volume { + tile.hotspot_volume = value; + } Ok(()) } /// BYOND API for fetching the atmos details of a tile. #[byondapi::bind] -fn milla_get_tile(turf: ByondValue, list: ByondValue) { +fn milla_get_tile(turf: ByondValue, list: ByondValue) -> eyre::Result { logging::setup_panic_handler(); let (x, y, z) = byond_xyz(&turf)?.coordinates(); - let tile = internal_get_tile(x as i32 - 1, y as i32 - 1, z as i32 - 1)?; - let vec: Vec = (&tile).into(); + let vec: Vec; + if let Ok(tile) = internal_get_tile(x as i32 - 1, y as i32 - 1, z as i32 - 1) { + vec = (&tile).into(); + } else { + // MILLA has died and is unrecoverable. + // Uh... uh... report everything as breathable air, I guess? + let mut air = Tile::new(); + air.gases.set_oxygen(20.0); + air.gases.set_nitrogen(80.0); + air.thermal_energy = air.heat_capacity() * T20C; + vec = (&air).into(); + } list.write_list(vec.as_slice())?; - Ok(Default::default()) + Ok(ByondValue::null()) } /// Rust version of fetching the atmos details of a tile. pub(crate) fn internal_get_tile(x: i32, y: i32, z: i32) -> Result { let buffers = BUFFERS.get().ok_or(eyre!("BUFFERS not initialized."))?; - let active = buffers.get_active().read().unwrap(); + let maybe_active = buffers.get_active().read(); + if maybe_active.is_err() { + return Err(eyre!("MILLA buffers have been poisoned.")); + } + let active = maybe_active.unwrap(); let z_level = active.0[z as usize].read().unwrap(); Ok(z_level .get_tile(ZLevel::maybe_get_index(x, y).ok_or(eyre!( @@ -308,7 +339,7 @@ pub(crate) fn internal_get_tile(x: i32, y: i32, z: i32) -> Result { /// * Turfs that just passed the threshold for showing plasma or sleeping gas. /// * Turfs with strong airflow out. #[byondapi::bind] -fn milla_get_interesting_tiles() { +fn milla_get_interesting_tiles() -> eyre::Result { logging::setup_panic_handler(); let interesting_tiles = INTERESTING_TILES.lock().unwrap(); let byond_interesting_tiles = interesting_tiles @@ -320,7 +351,7 @@ fn milla_get_interesting_tiles() { /// BYOND API for getting a single random interesting tile. #[byondapi::bind] -fn milla_get_random_interesting_tile() { +fn milla_get_random_interesting_tile() -> eyre::Result { logging::setup_panic_handler(); let interesting_tiles = INTERESTING_TILES.lock().unwrap(); let length = interesting_tiles.len() as f32; @@ -342,7 +373,8 @@ fn milla_reduce_superconductivity( east: ByondValue, south: ByondValue, west: ByondValue, -) { +) -> eyre::Result { + logging::setup_panic_handler(); let (x, y, z) = byond_xyz(&turf)?.coordinates(); let rust_north = conversion::bounded_byond_to_option_f32(north, 0.0, 1.0)?; let rust_east = conversion::bounded_byond_to_option_f32(east, 0.0, 1.0)?; @@ -357,7 +389,7 @@ fn milla_reduce_superconductivity( rust_south, rust_west, )?; - Ok(Default::default()) + Ok(ByondValue::null()) } /// Rust version of capping the superconductivity of a tile. @@ -371,7 +403,7 @@ pub(crate) fn internal_reduce_superconductivity( east: Option, south: Option, west: Option, -) -> Result<(), eyre::Error> { +) -> eyre::Result<()> { let buffers = BUFFERS.get().ok_or(eyre!("BUFFERS not initialized."))?; let active = buffers.get_active().read().unwrap(); let maybe_z_level = active.0[z as usize].try_write(); @@ -404,10 +436,11 @@ pub(crate) fn internal_reduce_superconductivity( /// BYOND API for resetting the superconductivity of a tile. #[byondapi::bind] -fn milla_reset_superconductivity(turf: ByondValue) { +fn milla_reset_superconductivity(turf: ByondValue) -> eyre::Result { + logging::setup_panic_handler(); let (x, y, z) = byond_xyz(&turf)?.coordinates(); internal_reset_superconductivity(x as i32 - 1, y as i32 - 1, z as i32 - 1)?; - Ok(Default::default()) + Ok(ByondValue::null()) } /// Rust version of resetting the superconductivity of a tile. @@ -434,27 +467,185 @@ pub(crate) fn internal_reset_superconductivity(x: i32, y: i32, z: i32) -> Result Ok(()) } +/// BYOND API for a heat source creating a hotspot on a tile. +#[byondapi::bind] +fn milla_create_hotspot( + turf: ByondValue, + temperature: ByondValue, + volume: ByondValue, +) -> eyre::Result { + logging::setup_panic_handler(); + let (x, y, z) = byond_xyz(&turf)?.coordinates(); + let rust_temperature = + conversion::bounded_byond_to_option_f32(temperature, 0.0, f32::INFINITY)? + .ok_or(eyre!("Hotspot temperature is required.."))?; + let rust_volume = conversion::bounded_byond_to_option_f32(volume, 0.0, TILE_VOLUME)? + .ok_or(eyre!("Hotspot volume is required.."))?; + + internal_create_hotspot( + x as i32 - 1, + y as i32 - 1, + z as i32 - 1, + rust_temperature, + rust_volume / TILE_VOLUME, + )?; + Ok(ByondValue::null()) +} + +/// Rust version of a heat source creating a hotspot. +pub(crate) fn internal_create_hotspot( + x: i32, + y: i32, + z: i32, + temperature: f32, + volume: f32, +) -> Result<()> { + let buffers = BUFFERS.get().ok_or(eyre!("BUFFERS not initialized."))?; + let active = buffers.get_active().read().unwrap(); + let maybe_z_level = active.0[z as usize].try_write(); + if maybe_z_level.is_err() { + return Err(eyre!( + "Tried to write during asynchronous, read-only atmos. Use a /datum/milla_safe/..." + )); + } + let mut z_level = maybe_z_level.unwrap(); + let tile = z_level.get_tile_mut(ZLevel::maybe_get_index(x, y).ok_or(eyre!( + "Bad coordinates ({}, {}, {})", + x + 1, + y + 1, + z + 1 + ))?); + + if temperature <= tile.temperature() || volume == 0.0 { + return Ok(()); + } + + if tile.hotspot_volume == 0.0 { + tile.hotspot_temperature = temperature; + tile.hotspot_volume = volume; + return Ok(()); + } + + let excess_thermal_energy = (temperature - tile.temperature()) * tile.heat_capacity() * volume; + if excess_thermal_energy > 0.0 { + simulate::adjust_hotspot(tile, excess_thermal_energy); + } + + Ok(()) +} + +/// BYOND API for tracking the pressure of all nearby tiles next tick. +#[byondapi::bind] +fn milla_track_pressure_tiles( + turf: ByondValue, + byond_radius: ByondValue, +) -> eyre::Result { + logging::setup_panic_handler(); + let (x, y, z) = byond_xyz(&turf)?.coordinates(); + let radius = conversion::bounded_byond_to_option_f32(byond_radius, 0.0, MAP_SIZE as f32)? + .ok_or(eyre!("Invalid radius: {:#?}", byond_radius))? as i32; + + internal_track_pressure_tiles(x as i32 - 1, y as i32 - 1, z as i32 - 1, radius)?; + Ok(ByondValue::null()) +} + +/// Rust version of tracking the pressure of all nearby tiles next tick. +fn internal_track_pressure_tiles(x: i32, y: i32, z: i32, radius: i32) -> eyre::Result<()> { + let mut tracked_pressure_tiles = TRACKED_PRESSURE_TILES.lock().unwrap(); + for dx in -radius..=radius { + if x + dx < 0 { + continue; + } + if x + dx >= MAP_SIZE as i32 { + break; + } + for dy in -radius..=radius { + if y + dy < 0 { + continue; + } + if y + dy >= MAP_SIZE as i32 { + break; + } + tracked_pressure_tiles.push((x + dx, y + dy, z as usize)); + } + } + + Ok(()) +} + +/// BYOND API for getting the tracked pressure tiles. +#[byondapi::bind] +fn milla_get_tracked_pressure_tiles() -> eyre::Result { + logging::setup_panic_handler(); + let tracked_pressures = internal_get_tracked_pressure_tiles()? + .iter() + .map(|v: &f32| ByondValue::from(*v)) + .collect::>(); + Ok(tracked_pressures.as_slice().try_into()?) +} + +/// Rust version of getting the tracked pressure tiles. +fn internal_get_tracked_pressure_tiles() -> eyre::Result> { + let buffers = BUFFERS.get().ok_or(eyre!("BUFFERS not initialized."))?; + let inactive = buffers.get_inactive().read().unwrap(); + let mut tracked_pressure_tiles = TRACKED_PRESSURE_TILES.lock().unwrap(); + + let mut tiles_by_zlevel: Vec> = Vec::new(); + for _z in 0..inactive.0.len() { + tiles_by_zlevel.push(Vec::new()); + } + + for (x, y, z) in tracked_pressure_tiles.drain(..) { + if z < tiles_by_zlevel.len() { + tiles_by_zlevel[z].push((x, y)); + } + } + + // This is a bit gross, but the easiest way to return the coordinates and data is to cast the + // coordinates to f32. It feels bad in Rust, but everything is an f32 in BYOND, so it's more or + // less a no-op. + let mut tracked_pressures: Vec = Vec::new(); + for z in 0..tiles_by_zlevel.len() { + let z_level = inactive.0[z as usize].read().unwrap(); + for (x, y) in &tiles_by_zlevel[z] { + if let Some(index) = ZLevel::maybe_get_index(*x, *y) { + tracked_pressures.push(*x as f32 + 1.0); + tracked_pressures.push(*y as f32 + 1.0); + tracked_pressures.push(z as f32 + 1.0); + tracked_pressures.push(z_level.get_tile(index).pressure()); + } + } + } + + Ok(tracked_pressures) +} + /// BYOND API for starting an atmos tick. #[byondapi::bind] -fn milla_spawn_tick_thread() { - logging::setup_panic_handler(); +fn milla_spawn_tick_thread() -> eyre::Result { thread::spawn(|| -> Result<(), eyre::Error> { let now = Instant::now(); let buffers = BUFFERS.get_or_init(Buffers::new); - tick::tick(buffers)?; + let result = tick::tick(buffers); TICK_TIME.store( now.elapsed().as_millis() as usize, std::sync::atomic::Ordering::Relaxed, ); - call_global("milla_tick_finished", &[])?; + if result.is_ok() { + call_global("milla_tick_finished", &[])?; + } else { + let err = format!("MILLA tick error:\n----\n{:#?}\n----", result); + call_global("milla_tick_error", &[ByondValue::new_str(err)?])?; + } + Ok(()) }); - Ok(Default::default()) + Ok(ByondValue::null()) } /// BYOND API for asking how long the prior tick took. #[byondapi::bind] -fn milla_get_tick_time() { +fn milla_get_tick_time() -> eyre::Result { logging::setup_panic_handler(); Ok(ByondValue::from( TICK_TIME.load(std::sync::atomic::Ordering::Relaxed) as f32, @@ -492,6 +683,8 @@ mod tests { None, None, Some(1.0), + None, + Some(1.0), ) .unwrap(); @@ -507,6 +700,8 @@ mod tests { } assert_eq!(tile.thermal_energy, 0.0); assert_eq!(tile.innate_heat_capacity, 1.0); + assert_eq!(tile.hotspot_temperature, 0.0); + assert_eq!(tile.hotspot_volume, 1.0); } // Set a different set of arbitrary data. @@ -529,6 +724,8 @@ mod tests { None, Some(1.0), None, + Some(1.0), + None, ) .unwrap(); @@ -544,6 +741,8 @@ mod tests { } assert_eq!(tile.thermal_energy, 1.0); assert_eq!(tile.innate_heat_capacity, 0.0); + assert_eq!(tile.hotspot_temperature, 1.0); + assert_eq!(tile.hotspot_volume, 0.0); } } } diff --git a/rust/src/milla/constants.rs b/rust/src/milla/constants.rs index df6dc8138cb..b75aa905166 100644 --- a/rust/src/milla/constants.rs +++ b/rust/src/milla/constants.rs @@ -4,6 +4,12 @@ pub(crate) const MAX_Z_LEVELS: i32 = 10; /// How big is the map? Assumed square. pub(crate) const MAP_SIZE: usize = 255; +/// One atmosphere, in kPa. +pub(crate) const ONE_ATMOSPHERE: f32 = 101.325; + +/// The temperature of space, in Kelvin +pub(crate) const TCMB: f32 = 2.725; + /// 0 degrees Celsius, in Kelvin pub(crate) const T0C: f32 = 273.15; @@ -19,17 +25,15 @@ pub(crate) const R_IDEAL_GAS_EQUATION: f32 = 8.31; /// How big a tile is, in liters. pub(crate) const TILE_VOLUME: f32 = 2500.0; -/// How many moles are needed to make toxins visible. -pub(crate) const TOXINS_VISIBILITY_MOLES: f32 = 0.5; +/// How many moles of toxins are needed for a fire to exist. For reasons, this is also how hany +/// moles are needed to be visible. +pub(crate) const TOXINS_MIN_VISIBILITY_MOLES: f32 = 0.5; /// How many moles are needed to make sleeping gas visible. pub(crate) const SLEEPING_GAS_VISIBILITY_MOLES: f32 = 1.0; -/// How many moles of each gas are needed before a reaction should happen. -pub(crate) const REACTION_SIGNIFICANCE_MOLES: f32 = 0.5; - -/// How much of the tile a reaction's gas needs to occupy to happen. -pub(crate) const REACTION_SIGNIFICANCE_RATIO: f32 = 0.01; +/// How much stuff needs to react before we think hotspots and BYOND care. +pub(crate) const REACTION_SIGNIFICANCE_MOLES: f32 = 0.1; /// How hot does it need to be for Agent B to work? pub(crate) const AGENT_B_CONVERSION_TEMP: f32 = 900.0; @@ -58,12 +62,25 @@ pub(crate) const GAS_AGENT_B: usize = 5; /// How many gases are there? pub(crate) const GAS_COUNT: usize = GAS_AGENT_B + 1; -/// The two axes, Y and X. The order is arbitrary, but will break the copy from active to inactive -/// if changed. -pub(crate) const AXES: [(i32, i32); 2] = [(0, 1), (1, 0)]; +/// The two axes, Y and X. The order is arbitrary, but may break things if changed. +pub(crate) const AXES: [(i32, i32); 2] = [(1, 0), (0, 1)]; -/// The four cardinal directions. The order is arbitrary, and doesn't matter. -pub(crate) const DIRECTIONS: [(i32, i32); 4] = [(0, 1), (1, 0), (0, -1), (-1, 0)]; +/// The index of the X axis in AXES. +pub(crate) const AXIS_X: usize = 0; +/// The index of the Y axis in AXES. +pub(crate) const AXIS_Y: usize = 1; + +/// The four directions: up, down, right, and left. The order is arbitrary, but may break things if changed. +pub(crate) const DIRECTIONS: [(i32, i32); 4] = [(1, 0), (-1, 0), (0, -1), (0, 1)]; + +/// Gives the axis for each direction. +pub(crate) const DIRECTION_AXIS: [usize; 4] = [0, 0, 1, 1]; + +/// Index for incoming gas. +pub(crate) const GAS_FLOW_IN: usize = 0; + +/// Index for outgoing gas. +pub(crate) const GAS_FLOW_OUT: usize = 1; // The numbers here are completely wrong for actual gases, but they're what LINDA used, so we'll // keep them for now. @@ -102,17 +119,17 @@ pub(crate) const PLASMA_BURN_MIN_TEMP: f32 = 100.0 + T0C; /// How hot does it need to be for a plasma fire to work as well as possible? pub(crate) const PLASMA_BURN_OPTIMAL_TEMP: f32 = 1370.0 + T0C; -/// How much oxygen needs to be available per unit of plasma. -pub(crate) const PLASMA_BURN_REQUIRED_OXYGEN_AVAILABILITY: f32 = 10.0; - /// How much of the plasma are we willing to burn each tick? -pub(crate) const PLASMA_BURN_MAX_RATIO: f32 = 0.25; +pub(crate) const PLASMA_BURN_MAX_RATIO: f32 = 0.05; -/// How much oxygen do we use per plasma at min temp? -pub(crate) const PLASMA_BURN_WORST_OXYGEN_PER_PLASMA: f32 = 1.4; +/// How much of the plasma do we burn anyway if the ratio would make it really small? +pub(crate) const PLASMA_BURN_MIN_MOLES: f32 = 0.001; -/// How much oxygen do we use per plasma at optimal temp? -pub(crate) const PLASMA_BURN_BEST_OXYGEN_PER_PLASMA: f32 = 0.4; +/// How much of a boost to burn ratio do we give to hotspots? +pub(crate) const PLASMA_BURN_HOTSPOT_RATIO_BOOST: f32 = 10.0; + +/// How much oxygen do we use per plasma? +pub(crate) const PLASMA_BURN_OXYGEN_PER_PLASMA: f32 = 0.4; /// How much thermal energy is produced, in joules per mole of agent b. pub(crate) const AGENT_B_CONVERSION_ENERGY: f32 = 20_000.0; @@ -123,12 +140,67 @@ pub(crate) const NITROUS_BREAKDOWN_ENERGY: f32 = 200_000.0; /// How much thermal energy is produced, in joules per mole of sleeping toxins. pub(crate) const PLASMA_BURN_ENERGY: f32 = 3_000_000.0; -/// We allow small deviations in tests, so that floating point precision doesn't cause problems. +/// We allow small deviations in tests as our spring chain solution is not exact. #[cfg(test)] -pub(crate) const TEST_TOLERANCE: f32 = 0.00001; +pub(crate) const TEST_TOLERANCE: f32 = 0.1; -/// Lose this multiple of heat energy per tick if above T20C. -pub(crate) const SPACE_COOLING_FACTOR: f32 = 0.005; +/// When space cooling starts, in Kelvin. +pub(crate) const SPACE_COOLING_THRESHOLD: f32 = T20C; + +/// Lose this amount of heat energy per tick if above SPACE_COOLING_THRESHOLD. +pub(crate) const SPACE_COOLING_FLAT: f32 = 2000.0; + +/// Lose this ratio of heat energy per tick if above SPACE_COOLING_THRESHOLD. +pub(crate) const SPACE_COOLING_RATIO: f32 = 0.002; /// Tiles with less than this much gas will become empty. pub(crate) const MINIMUM_NONZERO_MOLES: f32 = 0.1; + +/// How many iterations of gas flow are we willing to run per tick? +pub(crate) const MAX_ITERATIONS: usize = 100; + +/// When we stop caring about gas changes and end iteration, in moles on a single tile. +pub(crate) const GAS_CHANGE_SIGNIFICANCE: f32 = 0.01; + +/// When we stop caring about gas changes and end iteration, roughly as a fraction of the gas. +pub(crate) const GAS_CHANGE_SIGNIFICANCE_FRACTION: f32 = 0.001; + +/// When we stop caring about thermal energy changes and end iteration, in thermal energy on a +/// single tile. +pub(crate) const THERMAL_CHANGE_SIGNIFICANCE: f32 = 0.1; + +/// When we stop caring about thermal energy changes and end iteration, roughly as a fraction of +/// the thermal energy. +pub(crate) const THERMAL_CHANGE_SIGNIFICANCE_FRACTION: f32 = 0.001; + +/// Controls how strongly each type of gas moves towards an even spread, ignoring wind. +/// [0.0, f32::INFINITY] +pub(crate) const DIFFUSION_SPEED: f32 = 0.2; + +/// Controls how quickly the wind moves air. +/// (0.0, f32::INFINITY] +pub(crate) const WIND_STRENGTH: f32 = 8.0; + +/// Controls how fast the wind changes towards what the current pressur gradient wants. +/// (0.0, 1.0], a value of 0.25 means getting 25% closer every tick. +pub(crate) const WIND_ACCELERATION: f32 = 0.05; + +/// Controls how quickly the wind spreads from tile to tile. +/// [0.0, f32::INFINITY] +pub(crate) const WIND_SPEED: f32 = 0.5; + +/// A hard cap on how strong wind can become. +/// [0.0, f32::INFINITY] +pub(crate) const MAX_WIND: f32 = f32::INFINITY; + +/// How fast should temperature flow? +/// [0.0, f32::INFINITY] +pub(crate) const TEMPERATURE_FLOW_RATE: f32 = 0.2; + +/// Direct multiplier on strength of wind reported to BYOND. +/// [0.0, f32::INFINITY] +pub(crate) const BYOND_WIND_MULTIPLIER: f32 = 0.5; + +/// The smallest temperature allowed for the purpose of caluclating pressure. +/// Prevents weirdness from absolute-zero gas having no pressure at all. +pub(crate) const MINIMUM_TEMPERATURE_FOR_PRESSURE: f32 = 1.0; diff --git a/rust/src/milla/model.rs b/rust/src/milla/model.rs index 13044a6d879..4b7ac10036e 100644 --- a/rust/src/milla/model.rs +++ b/rust/src/milla/model.rs @@ -3,6 +3,8 @@ use atomic_float::AtomicF32; use bitflags::bitflags; use byondapi::map::{byond_locatexyz, ByondXYZ}; use byondapi::prelude::*; +use std::collections::HashSet; +use std::ops::Add; use std::sync::{atomic::AtomicBool, atomic::Ordering::Relaxed, RwLock}; /// Represents a collection of gases, with amounts in moles. @@ -69,7 +71,7 @@ impl GasSet { pub(crate) fn set_dirty(&mut self) { self.dirty.store(true, Relaxed); } - fn recalculate(&self) { + pub(crate) fn recalculate(&self) { let mut moles = 0.0; let mut heat_capacity = 0.0; for i in 0..GAS_COUNT { @@ -99,7 +101,7 @@ impl GasSet { pub(crate) fn copy_from(&mut self, other: &GasSet) { for i in 0..GAS_COUNT { self.values[i] = other.values[i]; - let dirty = self.dirty.load(Relaxed); + let dirty = other.dirty.load(Relaxed); if dirty { self.dirty.store(true, Relaxed); } else { @@ -111,6 +113,17 @@ impl GasSet { } } } + pub(crate) fn add_gases(&mut self, other: &Self) { + for i in 0..GAS_COUNT { + self.values[i] += other.values[i]; + } + } + #[allow(dead_code)] + pub(crate) fn clear(&mut self) { + for i in 0..GAS_COUNT { + self.values[i] = 0.0; + } + } } impl Clone for GasSet { @@ -121,6 +134,16 @@ impl Clone for GasSet { } } +impl Add for GasSet { + type Output = Self; + + fn add(self, other: Self) -> Self { + let mut result = self.clone(); + result.add_gases(&other); + result + } +} + /// Determines the general behavior of a tile. #[derive(Debug, Copy, Clone, PartialEq)] pub(crate) enum AtmosMode { @@ -130,8 +153,8 @@ pub(crate) enum AtmosMode { Sealed, /// Tile is exposed to the given environment. ExposedTo { environment_id: u8 }, - /// Prevents hot tiles from automatically decaying towards T20C - NoDecay, + /// Prevents hot tiles from automatically decaying towards T20C + NoDecay, } impl From for ByondValue { @@ -140,7 +163,7 @@ impl From for ByondValue { AtmosMode::Space => ByondValue::from(0.0), AtmosMode::Sealed => ByondValue::from(1.0), AtmosMode::ExposedTo { .. } => ByondValue::from(2.0), - AtmosMode::NoDecay => ByondValue::from(3.0), + AtmosMode::NoDecay => ByondValue::from(3.0), } } } @@ -198,6 +221,17 @@ pub(crate) struct Tile { pub(crate) superconductivity: Superconductivity, /// How much heat capacity the tile itself has, in joules per kelvin. pub(crate) innate_heat_capacity: f32, + /// How hot the tile's hotspot is. A hotspot is a sub-tile reagion that's caught fire. + pub(crate) hotspot_temperature: f32, + /// How much of the tile the hotspot covers. 1.0 would be the entire tile. + pub(crate) hotspot_volume: f32, + /// How strongly the air in this tile is flowing towards +axis. + pub(crate) wind: [f32; AXES.len()], + /// Is there a wall in this direction? + pub(crate) wall: [bool; AXES.len()], + pub(crate) gas_flow: [[[f32; 2]; GAS_COUNT]; AXES.len()], + /// How much fuel was burnt this tick? + pub(crate) fuel_burnt: f32, } impl Tile { @@ -209,6 +243,12 @@ impl Tile { mode: AtmosMode::Space, superconductivity: Superconductivity::new(), innate_heat_capacity: 0.0, + hotspot_temperature: 0.0, + hotspot_volume: 0.0, + wind: [0.0, 0.0], + wall: [false, false], + gas_flow: [[[0.0; 2]; GAS_COUNT]; AXES.len()], + fuel_burnt: 0.0, } } /// The total heat capacity of this tile and its gases, in joules per kelvin. @@ -224,8 +264,7 @@ impl Tile { self.thermal_energy / heat_capacity } } - // Calculates the pressure of a tile. - #[allow(clippy::needless_range_loop)] + /// Calculates the pressure of a tile. pub(crate) fn pressure(&self) -> f32 { if let AtmosMode::Space = self.mode { return 0.0; @@ -233,12 +272,27 @@ impl Tile { let mut heat_capacity = self.gases.heat_capacity(); heat_capacity += self.innate_heat_capacity; if heat_capacity <= 0.0 { - 0.0 - } else { - let temperature = self.thermal_energy / heat_capacity; - self.gases.moles() * temperature * R_IDEAL_GAS_EQUATION / TILE_VOLUME + return 0.0; } + let temperature = self.thermal_energy / heat_capacity; + self.gases.moles() + * temperature.max(MINIMUM_TEMPERATURE_FOR_PRESSURE) + * R_IDEAL_GAS_EQUATION + / TILE_VOLUME } + /// Calculates the partial pressure of a gas in a tile. + pub(crate) fn partial_pressure(&self, gas: usize) -> f32 { + if self.gases.values[gas] <= 0.0 { + return 0.0; + } + + self.gases.values[gas] + * self.temperature().max(MINIMUM_TEMPERATURE_FOR_PRESSURE) + * R_IDEAL_GAS_EQUATION + / TILE_VOLUME + } + + #[allow(clippy::needless_range_loop)] pub(crate) fn copy_from(&mut self, other: &Tile) { self.airtight_directions = other.airtight_directions; self.gases.copy_from(&other.gases); @@ -246,6 +300,17 @@ impl Tile { self.mode = other.mode; self.superconductivity.copy_from(&other.superconductivity); self.innate_heat_capacity = other.innate_heat_capacity; + self.hotspot_temperature = other.hotspot_temperature; + self.hotspot_volume = other.hotspot_volume; + for axis in 0..AXES.len() { + self.wind[axis] = other.wind[axis]; + self.wall[axis] = other.wall[axis]; + for gas in 0..GAS_COUNT { + self.gas_flow[axis][gas][GAS_FLOW_IN] = other.gas_flow[axis][gas][GAS_FLOW_IN]; + self.gas_flow[axis][gas][GAS_FLOW_OUT] = other.gas_flow[axis][gas][GAS_FLOW_OUT]; + } + } + self.fuel_burnt = other.fuel_burnt; } } @@ -276,6 +341,11 @@ impl From<&Tile> for Vec { ByondValue::from(value.superconductivity.west), ByondValue::from(value.innate_heat_capacity), ByondValue::from(value.temperature()), + ByondValue::from(value.hotspot_temperature), + ByondValue::from(value.hotspot_volume), + ByondValue::from(value.wind[AXIS_X]), + ByondValue::from(value.wind[AXIS_Y]), + ByondValue::from(value.fuel_burnt), ] } } @@ -298,12 +368,12 @@ pub(crate) struct InterestingTile { pub(crate) coords: ByondXYZ, /// A bitmask of reasons this tile is interesting, values are REASON_*. pub(crate) reasons: ReasonFlags, - /// These represent the net force generated by air flowing out of the tile along each axis. + /// These represent the net force generated by air winding out of the tile along each axis. /// For a tile losing air equally in all directions, they will be zero. - /// For a tile losing air towards positive X only, flow_x will be the air pressure moved. - pub(crate) flow_x: f32, - /// See flow_x. - pub(crate) flow_y: f32, + /// For a tile losing air towards positive X only, wind_x will be the air pressure moved. + pub(crate) wind_x: f32, + /// See wind_x. + pub(crate) wind_y: f32, } /// Convert an InterestingTile into a flat vector of ByondValues. @@ -319,8 +389,8 @@ impl From<&InterestingTile> for Vec { ret.extend(vec![ byond_locatexyz(value.coords).unwrap(), ByondValue::from(value.reasons.bits() as f32), - ByondValue::from(value.flow_x), - ByondValue::from(value.flow_y), + ByondValue::from(value.wind_x), + ByondValue::from(value.wind_y), ]); ret @@ -328,7 +398,10 @@ impl From<&InterestingTile> for Vec { } /// A single Z level in the atmos model. -pub(crate) struct ZLevel(Box<[Tile; MAP_SIZE * MAP_SIZE]>); +pub(crate) struct ZLevel { + tiles: Box<[Tile; MAP_SIZE * MAP_SIZE]>, + pub(crate) active_pressure_chunks: HashSet<(u8, u8)>, +} impl ZLevel { pub(crate) fn new() -> Self { @@ -336,7 +409,10 @@ impl ZLevel { for _ in 0..MAP_SIZE * MAP_SIZE { unbuilt.push(Tile::new()); } - ZLevel(unbuilt.into_boxed_slice().try_into().unwrap()) + ZLevel { + tiles: unbuilt.into_boxed_slice().try_into().unwrap(), + active_pressure_chunks: HashSet::new(), + } } pub(crate) fn maybe_get_index(x: i32, y: i32) -> Option { @@ -348,21 +424,22 @@ impl ZLevel { } pub(crate) fn get_tile(&self, index: usize) -> &Tile { - &self.0[index] + &self.tiles[index] } + #[allow(dead_code)] pub(crate) fn maybe_get_tile(&self, x: i32, y: i32) -> Option<&Tile> { - Some(&self.0[ZLevel::maybe_get_index(x, y)?]) + Some(&self.tiles[ZLevel::maybe_get_index(x, y)?]) } pub(crate) fn get_tile_mut(&mut self, index: usize) -> &mut Tile { - &mut self.0[index] + &mut self.tiles[index] } pub(crate) fn get_pair_mut(&mut self, index1: usize, index2: usize) -> (&mut Tile, &mut Tile) { // Split borrow to get two mutable tiles at the same time. // Ref: https://doc.rust-lang.org/nomicon/borrow-splitting.html - let ptr = self.0.as_mut_ptr(); + let ptr = self.tiles.as_mut_ptr(); unsafe { assert!(index1 != index2); @@ -374,9 +451,10 @@ impl ZLevel { } pub(crate) fn copy_from(&mut self, other: &ZLevel) { - for i in 0..self.0.len() { - self.0[i].copy_from(&other.0[i]); + for i in 0..self.tiles.len() { + self.tiles[i].copy_from(&other.tiles[i]); } + self.active_pressure_chunks = other.active_pressure_chunks.clone(); } } @@ -455,9 +533,11 @@ impl Buffers { } /// Create an environment for ExposedTo. - pub(crate) fn create_environment(&self, tile: Tile) -> u8 { + pub(crate) fn create_environment(&self, mut tile: Tile) -> u8 { let mut environments = self.environments.write().unwrap(); let id = environments.len() as u8; + tile.mode = AtmosMode::ExposedTo { environment_id: id }; + tile.gases.recalculate(); environments.push(tile); id } diff --git a/rust/src/milla/simulate.rs b/rust/src/milla/simulate.rs index b663b77f708..befff52558e 100644 --- a/rust/src/milla/simulate.rs +++ b/rust/src/milla/simulate.rs @@ -3,158 +3,424 @@ use crate::milla::model::*; use byondapi::map::ByondXYZ; use eyre::eyre; use scc::Bag; +use std::collections::HashSet; -/// Calculates the pressure flow out from this tile to the two neighboring tiles on this axis. -/// For a tile losing air equally in all directions, flow will be zero. -/// For a tile losing air towards positive only, flow will be the air pressure moved. -pub(crate) fn calculate_flow( - maybe_negative_tile: Option<&Tile>, - tile: &Tile, - maybe_positive_tile: Option<&Tile>, - is_x: bool, -) -> f32 { - let mut flow = 0.0; - let my_pressure = tile.pressure(); - if let Some(negative_tile) = maybe_negative_tile { - // Make sure air can pass this way. - let mut permeable = true; - if is_x { - permeable = permeable - && !negative_tile +pub(crate) fn find_walls(next: &mut ZLevel) { + for my_index in 0..MAP_SIZE * MAP_SIZE { + let x = (my_index / MAP_SIZE) as i32; + let y = (my_index % MAP_SIZE) as i32; + + for (axis, (dx, dy)) in AXES.iter().enumerate() { + let their_index = match ZLevel::maybe_get_index(x + dx, y + dy) { + Some(index) => index, + None => { + // Edge of the map, acts like a wall. + let my_tile = next.get_tile_mut(my_index); + my_tile.wall[axis] = true; + continue; + } + }; + + let (my_tile, their_tile) = next.get_pair_mut(my_index, their_index); + if *dx > 0 + && (my_tile .airtight_directions - .contains(AirtightDirections::EAST); - permeable = permeable && !tile.airtight_directions.contains(AirtightDirections::WEST); - } else { - permeable = permeable - && !negative_tile + .contains(AirtightDirections::EAST) + || their_tile + .airtight_directions + .contains(AirtightDirections::WEST)) + { + // Something's blocking airflow. + my_tile.wall[axis] = true; + continue; + } else if *dy > 0 + && (my_tile .airtight_directions - .contains(AirtightDirections::NORTH); - permeable = permeable && !tile.airtight_directions.contains(AirtightDirections::SOUTH); - } - if permeable { - let negative_pressure = negative_tile.pressure(); - if negative_pressure < my_pressure { - // Causes flow in the negative direction. - flow += negative_pressure - my_pressure; + .contains(AirtightDirections::NORTH) + || their_tile + .airtight_directions + .contains(AirtightDirections::SOUTH)) + { + // Something's blocking airflow. + my_tile.wall[axis] = true; + continue; } + my_tile.wall[axis] = false; } } - if let Some(positive_tile) = maybe_positive_tile { - // Make sure air can pass this way. - let mut permeable = true; - if is_x { - permeable = permeable - && !positive_tile - .airtight_directions - .contains(AirtightDirections::WEST); - permeable = permeable && !tile.airtight_directions.contains(AirtightDirections::EAST); - } else { - permeable = permeable - && !positive_tile - .airtight_directions - .contains(AirtightDirections::SOUTH); - permeable = permeable && !tile.airtight_directions.contains(AirtightDirections::NORTH); - } - if permeable { - let positive_pressure = positive_tile.pressure(); - if positive_pressure < my_pressure { - // Causes flow in the positive direction. - flow += my_pressure - positive_pressure; - } - } - } - flow } -/// Counts the number of adjacent tiles that can share atmos with this tile, i.e. have no blockers -/// on either tile. -#[allow(clippy::if_same_then_else)] -pub(crate) fn count_connected_dirs( - z_level: &ZLevel, - index: usize, - x: i32, - y: i32, -) -> Result { - let mut connected_dirs = 0; +/// Calculate the new wind at each boundary. +pub(crate) fn update_wind(prev: &ZLevel, next: &mut ZLevel) { + for my_index in 0..MAP_SIZE * MAP_SIZE { + let x = (my_index / MAP_SIZE) as i32; + let y = (my_index % MAP_SIZE) as i32; + let my_tile = prev.get_tile(my_index); - let tile = z_level.get_tile(index); - if let AtmosMode::Space = tile.mode { - // Space can always accept as much air as you throw at it. - return Ok(1); + for (axis, (dx, dy)) in AXES.iter().enumerate() { + let neighbor_index = match ZLevel::maybe_get_index(x + dx, y + dy) { + Some(index) => index, + None => continue, + }; + let neighbor = prev.get_tile(neighbor_index); + let my_new_tile = next.get_tile_mut(my_index); + + // No wind across walls. + if my_new_tile.wall[axis] { + my_new_tile.wind[axis] = 0.0; + for i in 0..GAS_COUNT { + my_new_tile.gas_flow[axis][i][GAS_FLOW_IN] = 0.0; + my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT] = 0.0; + } + continue; + } + + // If there's no air, there's no wind. + if my_tile.pressure() + neighbor.pressure() <= 0.0 { + my_new_tile.wind[axis] = 0.0; + for i in 0..GAS_COUNT { + my_new_tile.gas_flow[axis][i][GAS_FLOW_IN] = 0.0; + my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT] = 0.0; + } + continue; + } + + // How much pressure do these tiles have together? + let combined_pressure = my_tile.pressure() + neighbor.pressure(); + + // A bias from [-1.0, 1.0] representing how much air is flowing from the negative tile + // to the positive one, based purely on pressure. + let pressure_bias = 2.0 * (my_tile.pressure() / combined_pressure) - 1.0; + + // New wind mixes the pressure bias with the old wind, and clamps it to reasonable + // bounds. + my_new_tile.wind[axis] = (my_tile.wind[axis] + + WIND_ACCELERATION * (pressure_bias * WIND_STRENGTH - my_tile.wind[axis])) + .clamp(-MAX_WIND, MAX_WIND); + + for i in 0..GAS_COUNT { + my_new_tile.gas_flow[axis][i][GAS_FLOW_IN] = 0.0; + my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT] = 0.0; + + // Calculate how much gas should flow based on pressure. + let combined_partial_pressure = + my_tile.partial_pressure(i) + neighbor.partial_pressure(i); + if combined_partial_pressure <= 0.0 { + // Gas? What gas? + continue; + } + let wind_gas_flow = (1.0 + WIND_SPEED).powf(my_new_tile.wind[axis].abs()) - 1.0; + if my_new_tile.wind[axis] > 0.0 { + my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT] += wind_gas_flow; + } else { + my_new_tile.gas_flow[axis][i][GAS_FLOW_IN] += wind_gas_flow; + } + + // And how much gas should flow based on diffusion. + let diffusion_gas_flow = DIFFUSION_SPEED; + my_new_tile.gas_flow[axis][i][GAS_FLOW_IN] += diffusion_gas_flow; + my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT] += diffusion_gas_flow; + } + } } - for (dx, dy) in DIRECTIONS { - let maybe_other_index = ZLevel::maybe_get_index(x + dx, y + dy); - let other_index; - match maybe_other_index { - Some(index) => other_index = index, +} + +pub(crate) struct AirflowOutcome { + active_tiles: HashSet, + max_gas_delta: f32, + max_thermal_energy_delta: f32, +} + +/// Let the air flow until it stabilizes for this tick or we run out of patience. +pub(crate) fn flow_air(prev: &ZLevel, next: &mut ZLevel) -> Result { + let mut outcome = flow_air_once(prev, next, None)?; + for _iter in 1..MAX_ITERATIONS { + outcome = flow_air_once(prev, next, Some(outcome))?; + + // Check for significant changes. + if outcome.max_gas_delta < GAS_CHANGE_SIGNIFICANCE + && outcome.max_thermal_energy_delta < THERMAL_CHANGE_SIGNIFICANCE + { + // We've stabilized. + return Ok(outcome); + } + } + + Ok(outcome) +} + +/// Let the air flow at every active tile by one step. +pub(crate) fn flow_air_once( + prev: &ZLevel, + next: &mut ZLevel, + maybe_old_outcome: Option, +) -> Result { + let mut new_outcome = AirflowOutcome { + active_tiles: HashSet::new(), + max_gas_delta: 0.0, + max_thermal_energy_delta: 0.0, + }; + + if let Some(old_outcome) = maybe_old_outcome { + for my_index in &old_outcome.active_tiles { + flow_air_once_at_index(prev, next, *my_index, &mut new_outcome)?; + } + } else { + for my_index in 0..MAP_SIZE * MAP_SIZE { + flow_air_once_at_index(prev, next, my_index, &mut new_outcome)?; + } + } + + Ok(new_outcome) +} + +pub(crate) fn flow_air_once_at_index( + prev: &ZLevel, + next: &mut ZLevel, + my_index: usize, + outcome: &mut AirflowOutcome, +) -> Result<(), eyre::Error> { + let x = (my_index / MAP_SIZE) as i32; + let y = (my_index % MAP_SIZE) as i32; + let my_tile = prev.get_tile(my_index); + + // Skip tiles that can't change. + match my_tile.mode { + // Space is always empty. + AtmosMode::Space => return Ok(()), + // Tiles exposed to an environment always contain that environment. + AtmosMode::ExposedTo { .. } => return Ok(()), + _ => (), + } + + // Save the values from the prior iteration so we can check how much they changed. + let prev_iter = next.get_tile(my_index).clone(); + { + // We're doing a modified Gauss-Seidel method, and while it's counter-intuitive, one of + // the necessary steps is to reset the current tile to its original values before + // processing this iteration. + // See https://en.wikipedia.org/wiki/Gauss%E2%80%93Seidel_method#Element-based_formula + let my_new_tile = next.get_tile_mut(my_index); + my_new_tile.gases.copy_from(&my_tile.gases); + my_new_tile.thermal_energy = my_tile.thermal_energy; + } + let mut outgoing_gas_mult: [f32; GAS_COUNT] = [0.0; GAS_COUNT]; + let mut total_weighted_temperature = my_tile.temperature() * my_tile.heat_capacity(); + let mut total_temperature_weights: f32 = my_tile.heat_capacity(); + for (dir, (dx, dy)) in DIRECTIONS.iter().enumerate() { + let neighbor_index = match ZLevel::maybe_get_index(x + dx, y + dy) { + Some(value) => value, None => continue, - } - let other_tile = z_level.get_tile(other_index); + }; + let (my_new_tile, new_neighbor) = next.get_pair_mut(my_index, neighbor_index); - if dx > 0 - && !tile.airtight_directions.contains(AirtightDirections::EAST) - && !other_tile - .airtight_directions - .contains(AirtightDirections::WEST) + let axis = DIRECTION_AXIS[dir]; + + // Don't do anything across walls. + if dx + dy > 0 { + if my_new_tile.wall[axis] { + continue; + } + } else { + if new_neighbor.wall[axis] { + continue; + } + } + + // If there's no air, don't do anything. + let total_pressure = my_tile.pressure() + new_neighbor.pressure(); + if total_pressure <= 0.0 { + continue; + } + + for i in 0..GAS_COUNT { + // Normalise the gas flow direction. + let gas_flow_in; + let gas_flow_out; + if dx + dy > 0 { + gas_flow_in = my_new_tile.gas_flow[axis][i][GAS_FLOW_IN]; + gas_flow_out = my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT]; + } else { + gas_flow_in = new_neighbor.gas_flow[axis][i][GAS_FLOW_OUT]; + gas_flow_out = new_neighbor.gas_flow[axis][i][GAS_FLOW_IN]; + } + + // Once again, this may looks a bit odd, but it's the second step of Gauss-Seidel, + // summing together this tile's value from the last iteration with the incoming values + // from other tiles this tick. + my_new_tile.gases.values[i] += gas_flow_in * new_neighbor.gases.values[i]; + let temperature_weight = gas_flow_in * new_neighbor.gases.values[i] * SPECIFIC_HEATS[i]; + + // Track the outgoing values as well. + outgoing_gas_mult[i] += gas_flow_out; + + // Temperature is not Gauss-Seidel, though it looks similar. It's just a weighted + // average. + total_weighted_temperature += + new_neighbor.temperature() * temperature_weight * TEMPERATURE_FLOW_RATE; + total_temperature_weights += temperature_weight * TEMPERATURE_FLOW_RATE; + } + + my_new_tile.gases.set_dirty(); + } + + // And now we finish off Gauss-Seidel by dividing by the total outgoing weights, plus one + // to represent this tile. + let mut max_gas_delta: f32 = 0.0; + let my_new_tile = next.get_tile_mut(my_index); + for i in 0..GAS_COUNT { + my_new_tile.gases.values[i] /= 1.0 + outgoing_gas_mult[i]; + + if (prev_iter.gases.values[i] - my_new_tile.gases.values[i]).abs() + >= GAS_CHANGE_SIGNIFICANCE { - connected_dirs += 1; - } else if dy > 0 - && !tile.airtight_directions.contains(AirtightDirections::NORTH) - && !other_tile - .airtight_directions - .contains(AirtightDirections::SOUTH) - { - connected_dirs += 1; - } else if dx < 0 - && !tile.airtight_directions.contains(AirtightDirections::WEST) - && !other_tile - .airtight_directions - .contains(AirtightDirections::EAST) - { - connected_dirs += 1; - } else if dy < 0 - && !tile.airtight_directions.contains(AirtightDirections::SOUTH) - && !other_tile - .airtight_directions - .contains(AirtightDirections::NORTH) - { - connected_dirs += 1; + let new_gas_delta = (2.0 * prev_iter.gases.values[i] + / (prev_iter.gases.values[i] + my_new_tile.gases.values[i]) + - 1.0) + .abs(); + max_gas_delta = max_gas_delta.max(new_gas_delta); + } + } + my_new_tile.gases.set_dirty(); + + my_new_tile.thermal_energy = + my_new_tile.heat_capacity() * total_weighted_temperature / total_temperature_weights; + + let new_thermal_energy_delta; + if (prev_iter.thermal_energy - my_new_tile.thermal_energy).abs() >= THERMAL_CHANGE_SIGNIFICANCE + { + new_thermal_energy_delta = (2.0 * prev_iter.thermal_energy + / (prev_iter.thermal_energy + my_new_tile.thermal_energy) + - 1.0) + .abs(); + } else { + new_thermal_energy_delta = 0.0 + } + + // outcome is the global version across all tiles. + outcome.max_gas_delta = outcome.max_gas_delta.max(max_gas_delta); + outcome.max_thermal_energy_delta = outcome + .max_thermal_energy_delta + .max(new_thermal_energy_delta); + + // Check for significant changes. + if max_gas_delta < GAS_CHANGE_SIGNIFICANCE_FRACTION { + if new_thermal_energy_delta < THERMAL_CHANGE_SIGNIFICANCE_FRACTION { + return Ok(()); } } - Ok(connected_dirs) + // If any change was significant, mark this tile and all neighbors as active. + outcome.active_tiles.insert(my_index); + for (dx, dy) in DIRECTIONS { + if let Some(neighbor_index) = ZLevel::maybe_get_index(x + dx, y + dy) { + outcome.active_tiles.insert(neighbor_index); + } + } + + Ok(()) } -/// Sanitizes a tile to make sure it's not problematic. -pub(crate) fn sanitize(my_inactive_tile: &mut Tile, my_tile: &Tile) -> bool { +/// Applies effects that happen after the main airflow routine: +/// * Tile modes +/// * Superconductivity +/// * Reactions +/// * Hotspot cleanup +/// * Sanitization +/// * Looking for interesting tiles. +pub(crate) fn post_process( + prev: &ZLevel, + next: &mut ZLevel, + environments: &Box<[Tile]>, + new_interesting_tiles: &Bag, + z: i32, +) -> Result<(), eyre::Error> { + for my_index in 0..MAP_SIZE * MAP_SIZE { + let x = (my_index / MAP_SIZE) as i32; + let y = (my_index % MAP_SIZE) as i32; + let my_tile = prev.get_tile(my_index); + + { + let my_next_tile = next.get_tile_mut(my_index); + apply_tile_mode(my_next_tile, environments)?; + } + + if let AtmosMode::Space = my_tile.mode { + // Space doesn't superconduct, has no reactions, doesn't need to be sanitized, and is never interesting. (Take that, astrophysicists and astronomers!) + continue; + } + + for (dx, dy) in AXES { + let their_index = match ZLevel::maybe_get_index(x + dx, y + dy) { + Some(index) => index, + None => continue, + }; + + let (my_next_tile, their_next_tile) = next.get_pair_mut(my_index, their_index); + + if their_next_tile.mode != AtmosMode::Space { + superconduct(my_next_tile, their_next_tile, dx > 0, false); + } + } + + { + let my_next_tile = next.get_tile_mut(my_index); + // New tick, reset the fuel tracker. + my_next_tile.fuel_burnt = 0.0; + + react(my_next_tile, false); + if my_next_tile.hotspot_volume > 0.0 { + react(my_next_tile, true); + } + + // Sanitize the tile, to avoid negative/NaN/infinity spread. + sanitize(my_next_tile, my_tile); + } + + check_interesting(x, y, z, next, my_tile, my_index, new_interesting_tiles)?; + } + Ok(()) +} + +pub(crate) fn sanitize(my_next_tile: &mut Tile, my_tile: &Tile) -> bool { let mut sanitized = false; for i in 0..GAS_COUNT { - if !my_inactive_tile.gases.values[i].is_finite() { + if !my_next_tile.gases.values[i].is_finite() { // Reset back to the last value, in the hopes that it's safe. - my_inactive_tile.gases.values[i] = my_tile.gases.values[i]; - my_inactive_tile.gases.set_dirty(); + my_next_tile.gases.values[i] = my_tile.gases.values[i]; + my_next_tile.gases.set_dirty(); sanitized = true; - } else if my_inactive_tile.gases.values[i] < 0.0 { + } else if my_next_tile.gases.values[i] < 0.0 { // Zero out anything that becomes negative. - my_inactive_tile.gases.values[i] = 0.0; - my_inactive_tile.gases.set_dirty(); + my_next_tile.gases.values[i] = 0.0; + my_next_tile.gases.set_dirty(); sanitized = true; } } - if !my_inactive_tile.thermal_energy.is_finite() { + if !my_next_tile.thermal_energy.is_finite() { // Reset back to the last value, in the hopes that it's safe. - my_inactive_tile.thermal_energy = my_tile.thermal_energy; + my_next_tile.thermal_energy = my_tile.thermal_energy; sanitized = true; - } else if my_inactive_tile.thermal_energy < 0.0 { + } else if my_next_tile.thermal_energy < 0.0 { // Zero out anything that becomes negative. - my_inactive_tile.thermal_energy = 0.0; + my_next_tile.thermal_energy = 0.0; sanitized = true; } - if my_inactive_tile.gases.moles() < MINIMUM_NONZERO_MOLES { + if !my_next_tile.wind[0].is_finite() { + // Reset back to the last value, in the hopes that it's safe. + my_next_tile.wind[0] = my_tile.wind[0]; + sanitized = true; + } + if !my_next_tile.wind[1].is_finite() { + // Reset back to the last value, in the hopes that it's safe. + my_next_tile.wind[1] = my_tile.wind[1]; + sanitized = true; + } + if my_next_tile.gases.moles() < MINIMUM_NONZERO_MOLES { for i in 0..GAS_COUNT { - my_inactive_tile.gases.values[i] = 0.0; + my_next_tile.gases.values[i] = 0.0; } - my_inactive_tile.thermal_energy = 0.0; + my_next_tile.thermal_energy = 0.0; // We don't count this as sanitized because it's expected. } @@ -167,274 +433,257 @@ pub(crate) fn check_interesting( x: i32, y: i32, z: i32, - active: &std::sync::RwLockReadGuard, - environments: &Box<[Tile]>, + next: &mut ZLevel, my_tile: &Tile, - my_inactive_tile: &Tile, - fuel_burnt: f32, + my_index: usize, new_interesting_tiles: &Bag, ) -> Result<(), eyre::Error> { let mut reasons: ReasonFlags = ReasonFlags::empty(); - if (my_inactive_tile.gases.toxins() >= TOXINS_VISIBILITY_MOLES) - != (my_tile.gases.toxins() >= TOXINS_VISIBILITY_MOLES) { - // Crossed the toxins visibility threshold. - reasons |= ReasonFlags::DISPLAY; - } else if (my_inactive_tile.gases.sleeping_agent() >= SLEEPING_GAS_VISIBILITY_MOLES) - != (my_tile.gases.sleeping_agent() >= SLEEPING_GAS_VISIBILITY_MOLES) - { - // Crossed the sleeping agent visibility threshold. - reasons |= ReasonFlags::DISPLAY; - } - let temperature = my_inactive_tile.temperature(); - if temperature > PLASMA_BURN_MIN_TEMP { - match my_inactive_tile.mode { - // In environments we expect to be hot, we don't normally flag that as interesting. - AtmosMode::ExposedTo { environment_id } => { - if fuel_burnt > 0.0 { - // Active fires are interesting, even if it's hot here normally. - reasons |= ReasonFlags::HOT; - } else { - if environment_id as usize > environments.len() { - return Err(eyre!("Invalid environment ID {}", environment_id)); - } + let my_next_tile = next.get_tile_mut(my_index); + if (my_next_tile.fuel_burnt > REACTION_SIGNIFICANCE_MOLES) + != (my_tile.fuel_burnt > REACTION_SIGNIFICANCE_MOLES) + { + // Fire started or stopped. + reasons |= ReasonFlags::DISPLAY; + } else if (my_next_tile.gases.toxins() >= TOXINS_MIN_VISIBILITY_MOLES) + != (my_tile.gases.toxins() >= TOXINS_MIN_VISIBILITY_MOLES) + { + // Crossed the toxins visibility threshold. + reasons |= ReasonFlags::DISPLAY; + } else if (my_next_tile.gases.sleeping_agent() >= SLEEPING_GAS_VISIBILITY_MOLES) + != (my_tile.gases.sleeping_agent() >= SLEEPING_GAS_VISIBILITY_MOLES) + { + // Crossed the sleeping agent visibility threshold. + reasons |= ReasonFlags::DISPLAY; + } - let environment_temp = environments[environment_id as usize].temperature(); - if environment_temp + 1.0 >= temperature { - // No active fire, not hotter than normal. Not interesting. - } else { - // Oh, hey, we're hotter than normal, and can start fires. - // That's interesting. - reasons |= ReasonFlags::HOT; - } + if my_next_tile.temperature() > PLASMA_BURN_MIN_TEMP { + if let AtmosMode::ExposedTo { .. } = my_next_tile.mode { + // Since environments have fixed gases and temperatures, we only count them as + // interesting (for heat) if there's an active fire. + if my_next_tile.fuel_burnt > REACTION_SIGNIFICANCE_MOLES { + reasons |= ReasonFlags::HOT; } + } else { + // Anywhere else is interesting if it's hot enough to start a fire. + reasons |= ReasonFlags::HOT; } - // Anywhere else is interesting if it can start fires. - _ => reasons |= ReasonFlags::HOT, } } - let flow_x = calculate_flow( - active.maybe_get_tile(x - 1, y), - my_tile, - active.maybe_get_tile(x + 1, y), - true, - ); - if flow_x.abs() > 1.0 { - // Pressure flowing out of this tile along the X axis. - reasons |= ReasonFlags::WIND; + let my_next_tile = next.get_tile(my_index); + let mut wind_x: f32 = 0.0; + if my_next_tile.wind[AXIS_X] > 0.0 { + wind_x += my_next_tile.wind[AXIS_X] * WIND_SPEED * BYOND_WIND_MULTIPLIER; } - let flow_y = calculate_flow( - active.maybe_get_tile(x, y - 1), - my_tile, - active.maybe_get_tile(x, y + 1), - false, - ); - if flow_x.powi(2) + flow_y.powi(2) > 1.0 { - // Pressure flowing out of this tile along the Y axis. + if let Some(index) = ZLevel::maybe_get_index(x - 1, y) { + let their_next_tile = next.get_tile(index); + if their_next_tile.wind[AXIS_X] < 0.0 { + // This is negative, but that's good, because we want it to fight against the wind + // towards +X. + wind_x += their_next_tile.wind[AXIS_X] * BYOND_WIND_MULTIPLIER; + } + } + wind_x *= my_next_tile.pressure(); + let mut wind_y: f32 = 0.0; + if my_next_tile.wind[AXIS_Y] > 0.0 { + wind_y += my_next_tile.wind[AXIS_Y] * BYOND_WIND_MULTIPLIER; + } + if let Some(index) = ZLevel::maybe_get_index(x, y - 1) { + let their_next_tile = next.get_tile(index); + if their_next_tile.wind[AXIS_Y] < 0.0 { + // This is negative, but that's good, because we want it to fight against the wind + // towards +Y. + wind_y += their_next_tile.wind[AXIS_Y] * BYOND_WIND_MULTIPLIER; + } + } + wind_y *= my_next_tile.pressure(); + if wind_x.powi(2) + wind_y.powi(2) > 1.0 { + // Pressure flowing out of this tile might move stuff. reasons |= ReasonFlags::WIND; } if !reasons.is_empty() { - // Boooooring. - // :eyes: new_interesting_tiles.push(InterestingTile { - tile: my_inactive_tile.clone(), + tile: my_next_tile.clone(), // +1 here to convert from our 0-indexing to BYOND's 1-indexing. coords: ByondXYZ::with_coords((x as i16 + 1, y as i16 + 1, z as i16 + 1)), reasons, - flow_x, - flow_y, + wind_x, + wind_y, }); } Ok(()) } -/// Is the amount of gas present significant? -pub(crate) fn is_significant(tile: &Tile, gas: usize) -> bool { - if tile.gases.values[gas] < REACTION_SIGNIFICANCE_MOLES { - return false; - } - if gas != GAS_AGENT_B - && tile.gases.values[gas] / tile.gases.moles() < REACTION_SIGNIFICANCE_RATIO - { - return false; - } - return true; -} - /// Perform chemical reactions on the tile. -pub(crate) fn react(my_inactive_tile: &mut Tile) -> f32 { - let mut fuel_burnt: f32 = 0.0; - // Handle reactions - let mut my_inactive_temperature = my_inactive_tile.temperature(); - // Agent B converting CO2 to O2 - if my_inactive_temperature > AGENT_B_CONVERSION_TEMP - && is_significant(my_inactive_tile, GAS_AGENT_B) - && is_significant(my_inactive_tile, GAS_CARBON_DIOXIDE) - && is_significant(my_inactive_tile, GAS_TOXINS) - { - let co2_converted = (my_inactive_tile.gases.carbon_dioxide() * 0.75) - .min(my_inactive_tile.gases.toxins() * 0.25) - .min(my_inactive_tile.gases.agent_b() * 0.05); +pub(crate) fn react(my_next_tile: &mut Tile, hotspot_step: bool) { + let fraction: f32; + let hotspot_boost: f32; + let mut cached_heat_capacity: f32; + let mut cached_temperature: f32; + let mut thermal_energy: f32; + if hotspot_step { + fraction = my_next_tile.hotspot_volume; + hotspot_boost = PLASMA_BURN_HOTSPOT_RATIO_BOOST; + cached_heat_capacity = fraction * my_next_tile.heat_capacity(); + cached_temperature = my_next_tile.hotspot_temperature; + thermal_energy = cached_temperature * cached_heat_capacity; + } else { + fraction = 1.0 - my_next_tile.hotspot_volume; + hotspot_boost = 1.0; + cached_heat_capacity = fraction * my_next_tile.heat_capacity(); + thermal_energy = fraction * my_next_tile.thermal_energy; + cached_temperature = thermal_energy / cached_heat_capacity; + } + let initial_thermal_energy = thermal_energy; - my_inactive_tile + // Agent B converting CO2 to O2 + if cached_temperature > AGENT_B_CONVERSION_TEMP + && my_next_tile.gases.agent_b() > 0.0 + && my_next_tile.gases.carbon_dioxide() > 0.0 + && my_next_tile.gases.toxins() > 0.0 + { + let co2_converted = fraction + * (my_next_tile.gases.carbon_dioxide() * 0.75) + .min(my_next_tile.gases.toxins() * 0.25) + .min(my_next_tile.gases.agent_b() * 0.05); + + my_next_tile .gases - .set_carbon_dioxide(my_inactive_tile.gases.carbon_dioxide() - co2_converted); - my_inactive_tile + .set_carbon_dioxide(my_next_tile.gases.carbon_dioxide() - co2_converted); + my_next_tile .gases - .set_oxygen(my_inactive_tile.gases.oxygen() + co2_converted); - my_inactive_tile + .set_oxygen(my_next_tile.gases.oxygen() + co2_converted); + my_next_tile .gases - .set_agent_b(my_inactive_tile.gases.agent_b() - co2_converted * 0.05); - // Recalculate existing thermal energy to account for the decrease in heat capacity - // caused by turning very high capacity toxins into much lower capacity carbon - // dioxide. - my_inactive_tile.thermal_energy = - my_inactive_temperature * my_inactive_tile.heat_capacity(); + .set_agent_b(my_next_tile.gases.agent_b() - co2_converted * 0.05); + // Recalculate existing thermal energy to account for the change in heat capacity. + cached_heat_capacity = fraction * my_next_tile.heat_capacity(); + thermal_energy = cached_temperature * cached_heat_capacity; // THEN we can add in the new thermal energy. - my_inactive_tile.thermal_energy += co2_converted * AGENT_B_CONVERSION_ENERGY; + thermal_energy += AGENT_B_CONVERSION_ENERGY * co2_converted; // Recalculate temperature for any subsequent reactions. - my_inactive_temperature = my_inactive_tile.temperature(); - fuel_burnt += co2_converted; + cached_temperature = thermal_energy / cached_heat_capacity; + my_next_tile.fuel_burnt += co2_converted; } // Nitrous Oxide breaking down into nitrogen and oxygen. - if my_inactive_temperature > SLEEPING_GAS_BREAKDOWN_TEMP - && is_significant(my_inactive_tile, GAS_SLEEPING_AGENT) + if cached_temperature > SLEEPING_GAS_BREAKDOWN_TEMP && my_next_tile.gases.sleeping_agent() > 0.0 { let reaction_percent = (0.00002 - * (my_inactive_temperature - (0.00001 * (my_inactive_temperature.powi(2))))) + * (cached_temperature - (0.00001 * (cached_temperature.powi(2))))) .max(0.0) .min(1.0); - let nitrous_decomposed = reaction_percent * my_inactive_tile.gases.sleeping_agent(); + let nitrous_decomposed = reaction_percent * fraction * my_next_tile.gases.sleeping_agent(); - my_inactive_tile + my_next_tile .gases - .set_sleeping_agent(my_inactive_tile.gases.sleeping_agent() - nitrous_decomposed); - my_inactive_tile + .set_sleeping_agent(my_next_tile.gases.sleeping_agent() - nitrous_decomposed); + my_next_tile .gases - .set_nitrogen(my_inactive_tile.gases.nitrogen() + nitrous_decomposed); - my_inactive_tile + .set_nitrogen(my_next_tile.gases.nitrogen() + nitrous_decomposed); + my_next_tile .gases - .set_oxygen(my_inactive_tile.gases.oxygen() + nitrous_decomposed / 2.0); - // Recalculate existing thermal energy to account for the decrease in heat capacity - // caused by turning very high capacity toxins into much lower capacity carbon - // dioxide. - my_inactive_tile.thermal_energy = - my_inactive_temperature * my_inactive_tile.heat_capacity(); + .set_oxygen(my_next_tile.gases.oxygen() + nitrous_decomposed / 2.0); + + // Recalculate existing thermal energy to account for the change in heat capacity. + cached_heat_capacity = fraction * my_next_tile.heat_capacity(); + thermal_energy = cached_temperature * cached_heat_capacity; // THEN we can add in the new thermal energy. - my_inactive_tile.thermal_energy += NITROUS_BREAKDOWN_ENERGY * nitrous_decomposed; + thermal_energy += NITROUS_BREAKDOWN_ENERGY * nitrous_decomposed; // Recalculate temperature for any subsequent reactions. - my_inactive_temperature = my_inactive_tile.temperature(); - fuel_burnt += nitrous_decomposed; + cached_temperature = thermal_energy / cached_heat_capacity; + + my_next_tile.fuel_burnt += nitrous_decomposed; } // Plasmafire! - if my_inactive_temperature > PLASMA_BURN_MIN_TEMP - && is_significant(my_inactive_tile, GAS_TOXINS) - && is_significant(my_inactive_tile, GAS_OXYGEN) + if cached_temperature > PLASMA_BURN_MIN_TEMP + && my_next_tile.gases.toxins() > 0.0 + && my_next_tile.gases.oxygen() > 0.0 { // How efficient is the burn? // Linear scaling fom 0 to 1 as temperatue goes from minimum to optimal. - let efficiency = ((my_inactive_temperature - PLASMA_BURN_MIN_TEMP) + let efficiency = ((cached_temperature - PLASMA_BURN_MIN_TEMP) / (PLASMA_BURN_OPTIMAL_TEMP - PLASMA_BURN_MIN_TEMP)) .max(0.0) .min(1.0); - // How much oxygen do we consume per plasma burnt? - // Linear scaling from worst to best as efficiency goes from 0 to 1. - let oxygen_per_plasma = PLASMA_BURN_WORST_OXYGEN_PER_PLASMA - + (PLASMA_BURN_BEST_OXYGEN_PER_PLASMA - PLASMA_BURN_WORST_OXYGEN_PER_PLASMA) - * efficiency; - // How much plasma is available to burn? - // Capped by oxygen availability. Significantly more oxygen is required than is - // consumed. This means that if there is enough oxygen to burn all the plasma, the - // oxygen-to-plasm ratio will increase while burning. - let burnable_plasma = my_inactive_tile - .gases - .toxins() - .min(my_inactive_tile.gases.oxygen() / PLASMA_BURN_REQUIRED_OXYGEN_AVAILABILITY); + let burnable_plasma = fraction * my_next_tile.gases.toxins(); // Actual burn amount. - let plasma_burnt = efficiency * PLASMA_BURN_MAX_RATIO * burnable_plasma; + let mut plasma_burnt = efficiency * PLASMA_BURN_MAX_RATIO * hotspot_boost * burnable_plasma; + if plasma_burnt < PLASMA_BURN_MIN_MOLES { + // Boost up to the minimum. + plasma_burnt = PLASMA_BURN_MIN_MOLES.min(burnable_plasma); + } + if plasma_burnt * PLASMA_BURN_OXYGEN_PER_PLASMA > fraction * my_next_tile.gases.oxygen() { + // Restrict based on available oxygen. + plasma_burnt = fraction * my_next_tile.gases.oxygen() / PLASMA_BURN_OXYGEN_PER_PLASMA; + } - my_inactive_tile + my_next_tile .gases - .set_toxins(my_inactive_tile.gases.toxins() - plasma_burnt); - my_inactive_tile + .set_toxins(my_next_tile.gases.toxins() - plasma_burnt); + my_next_tile .gases - .set_carbon_dioxide(my_inactive_tile.gases.carbon_dioxide() + plasma_burnt); - my_inactive_tile + .set_carbon_dioxide(my_next_tile.gases.carbon_dioxide() + plasma_burnt); + my_next_tile .gases - .set_oxygen(my_inactive_tile.gases.oxygen() - plasma_burnt * oxygen_per_plasma); - // Recalculate existing thermal energy to account for the decrease in heat capacity - // caused by turning very high capacity toxins into much lower capacity carbon - // dioxide. - my_inactive_tile.thermal_energy = - my_inactive_temperature * my_inactive_tile.heat_capacity(); + .set_oxygen(my_next_tile.gases.oxygen() - plasma_burnt * PLASMA_BURN_OXYGEN_PER_PLASMA); + + // Recalculate existing thermal energy to account for the change in heat capacity. + cached_heat_capacity = fraction * my_next_tile.heat_capacity(); + thermal_energy = cached_temperature * cached_heat_capacity; // THEN we can add in the new thermal energy. - my_inactive_tile.thermal_energy += PLASMA_BURN_ENERGY * plasma_burnt; - fuel_burnt += plasma_burnt; + thermal_energy += PLASMA_BURN_ENERGY * plasma_burnt; + // Recalculate temperature for any subsequent reactions. + // (or we would, but this is the last reaction) + //cached_temperature = thermal_energy / cached_heat_capacity; + + my_next_tile.fuel_burnt += plasma_burnt; } - fuel_burnt + if hotspot_step { + adjust_hotspot(my_next_tile, thermal_energy - initial_thermal_energy); + } else { + my_next_tile.thermal_energy += thermal_energy - initial_thermal_energy; + } } /// Apply effects caused by the tile's atmos mode. pub(crate) fn apply_tile_mode( - my_tile: &Tile, - my_inactive_tile: &mut Tile, + my_next_tile: &mut Tile, environments: &Box<[Tile]>, ) -> Result<(), eyre::Error> { - match my_tile.mode { + match my_next_tile.mode { AtmosMode::Space => { // Space tiles lose all gas and thermal energy every tick. for gas in 0..GAS_COUNT { - my_inactive_tile.gases.values[gas] = 0.0; + my_next_tile.gases.values[gas] = 0.0; } - my_inactive_tile.gases.set_dirty(); - my_inactive_tile.thermal_energy = 0.0; + my_next_tile.gases.set_dirty(); + my_next_tile.thermal_energy = 0.0; } AtmosMode::ExposedTo { environment_id } => { + // Exposed tiles reset back to the same state every tick. if environment_id as usize > environments.len() { return Err(eyre!("Invalid environment ID {}", environment_id)); } - let mut environment = environments[environment_id as usize].clone(); - - // Calculate the amount of air and thermal energy transferred. - let (gas_change, thermal_energy_change) = share_air( - // Planetary atmos is aggressive and does a 1-connected-direction share - // with the otherwise-final air. - my_inactive_tile, - &environment, - 1, - 1, - ); - - // Transfer it. - for i in 0..GAS_COUNT { - if gas_change.values[i] != 0.0 { - my_inactive_tile.gases.values[i] += gas_change.values[i]; - my_inactive_tile.gases.set_dirty(); - } - } - my_inactive_tile.thermal_energy += thermal_energy_change; - - // Temporarily override the tile's superconductivity, since there's no UP. - let real_superconductivity = my_inactive_tile.superconductivity; - my_inactive_tile.superconductivity = Superconductivity::new(); - - // Superconduct with planetary atmos. - superconduct(my_inactive_tile, &mut environment, true); - - // Restore original superconductivity - my_inactive_tile.superconductivity = real_superconductivity; + let environment = &environments[environment_id as usize]; + my_next_tile.gases.copy_from(&environment.gases); + my_next_tile.thermal_energy = environment.thermal_energy; } AtmosMode::Sealed => { - if my_inactive_tile.temperature() > T20C { - my_inactive_tile.thermal_energy *= 1.0 - SPACE_COOLING_FACTOR; + if my_next_tile.temperature() > SPACE_COOLING_THRESHOLD { + let excess_thermal_energy = my_next_tile.thermal_energy + - SPACE_COOLING_THRESHOLD * my_next_tile.heat_capacity(); + let cooling = (SPACE_COOLING_FLAT + SPACE_COOLING_RATIO * excess_thermal_energy) + .min(excess_thermal_energy); + my_next_tile.thermal_energy -= cooling; } } AtmosMode::NoDecay => {} // No special interactions @@ -442,54 +691,27 @@ pub(crate) fn apply_tile_mode( Ok(()) } -/// Shares air between two connected tiles. -#[allow(clippy::needless_range_loop)] -pub(crate) fn share_air( - mine: &Tile, - theirs: &Tile, - my_connected_dirs: i32, - their_connected_dirs: i32, -) -> (GasSet, f32) { - let mut delta_gases = GasSet::new(); - let mut delta_thermal_energy: f32 = 0.0; - - // Since we're moving bits of gas independantly, we need to know the temperature of the gas - // mix. - let my_old_temperature = mine.temperature(); - let their_old_temperature = theirs.temperature(); - - // Each gas is handled separately. This is dumb, but it's how LINDA did it, so it's used in V1. - for gas in 0..GAS_COUNT { - delta_gases.values[gas] = theirs.gases.values[gas] - mine.gases.values[gas]; - if delta_gases.values[gas] > 0.0 { - // Gas flowing in from the other tile, limit by its connected_dirs. - delta_gases.values[gas] /= (their_connected_dirs + 1) as f32; - // Heat flowing in. - delta_thermal_energy += - SPECIFIC_HEATS[gas] * delta_gases.values[gas] * their_old_temperature; - } else { - // Gas flowing out from this tile, limit by our connected_dirs. - delta_gases.values[gas] /= (my_connected_dirs + 1) as f32; - // Heat flowing out. - delta_thermal_energy += - SPECIFIC_HEATS[gas] * delta_gases.values[gas] * my_old_temperature; - } - } - - (delta_gases, delta_thermal_energy) -} - -/// Performs superconduction between two superconductivity-connected tiles. -pub(crate) fn superconduct(my_tile: &mut Tile, their_tile: &mut Tile, is_east: bool) { +// Performs superconduction between two superconductivity-connected tiles. +pub(crate) fn superconduct(my_tile: &mut Tile, their_tile: &mut Tile, is_east: bool, force: bool) { // Superconduction is scaled to the smaller directional superconductivity setting of the two // tiles. let mut transfer_coefficient: f32; - if is_east { + if force { + transfer_coefficient = OPEN_HEAT_TRANSFER_COEFFICIENT; + } else if is_east { + if !my_tile.wall[AXIS_X] { + // Atmos flows freely here, no need to superconduct. + return; + } transfer_coefficient = my_tile .superconductivity .east .min(their_tile.superconductivity.west); } else { + if !my_tile.wall[AXIS_Y] { + // Atmos flows freely here, no need to superconduct. + return; + } transfer_coefficient = my_tile .superconductivity .north @@ -509,107 +731,128 @@ pub(crate) fn superconduct(my_tile: &mut Tile, their_tile: &mut Tile, is_east: b } // This is the formula from LINDA. I have no idea if it's a good one, I just copied it. + // Positive means heat flow from us to them. + // Negative means heat flow from them to us. let conduction = transfer_coefficient * (my_tile.temperature() - their_tile.temperature()) * my_heat_capacity * their_heat_capacity / (my_heat_capacity + their_heat_capacity); - my_tile.thermal_energy -= conduction; - their_tile.thermal_energy += conduction; + + // Half of the conduction always goes to the overall heat of the tile + my_tile.thermal_energy -= conduction / 2.0; + their_tile.thermal_energy += conduction / 2.0; + + // The other half can spawn or expand hotspots. + if conduction > 0.0 + && my_tile.temperature() > PLASMA_BURN_OPTIMAL_TEMP + && their_tile.temperature() < PLASMA_BURN_OPTIMAL_TEMP + { + // Positive: Spawn or expand their hotspot. + adjust_hotspot(their_tile, conduction / 2.0); + my_tile.thermal_energy -= conduction / 2.0; + } else if conduction < 0.0 + && my_tile.temperature() < PLASMA_BURN_OPTIMAL_TEMP + && their_tile.temperature() > PLASMA_BURN_OPTIMAL_TEMP + { + // Negative: Spawn or expand my hotspot. + adjust_hotspot(my_tile, -conduction / 2.0); + their_tile.thermal_energy += conduction / 2.0; + } else { + // No need for hotspot adjustment. + my_tile.thermal_energy -= conduction / 2.0; + their_tile.thermal_energy += conduction / 2.0; + } +} + +pub(crate) fn normalise_hotspot(tile: &mut Tile) { + if tile.hotspot_volume <= 0.0 || tile.hotspot_temperature <= tile.temperature() { + // Unnecesary hotspot. + tile.hotspot_temperature = 0.0; + tile.hotspot_volume = 0.0; + return; + } + + if tile.hotspot_volume >= 1.0 { + // Hotspot has expanded to fill the tile. + tile.thermal_energy = tile.hotspot_temperature * tile.heat_capacity(); + tile.hotspot_temperature = 0.0; + tile.hotspot_volume = 0.0; + return; + } + + let optimal_thermal_energy = PLASMA_BURN_OPTIMAL_TEMP * tile.heat_capacity(); + let hotspot_extra_thermal_energy = tile.hotspot_volume + * (tile.hotspot_temperature - tile.temperature()) + * tile.heat_capacity(); + if tile.thermal_energy + hotspot_extra_thermal_energy >= optimal_thermal_energy { + // Hotspot has done its job, dump the remaining heat into the tile. + tile.thermal_energy += hotspot_extra_thermal_energy; + tile.hotspot_temperature = 0.0; + tile.hotspot_volume = 0.0; + return; + } + + let hotspot_thermal_energy = + tile.hotspot_volume * tile.hotspot_temperature * tile.heat_capacity(); + if tile.hotspot_temperature > PLASMA_BURN_OPTIMAL_TEMP { + // Use excess heat to expand the hotspot. + tile.hotspot_volume = hotspot_thermal_energy / optimal_thermal_energy; + tile.hotspot_temperature = PLASMA_BURN_OPTIMAL_TEMP; + return; + } + + if tile.hotspot_temperature < PLASMA_BURN_MIN_TEMP + || tile.gases.toxins() <= REACTION_SIGNIFICANCE_MOLES + || tile.gases.oxygen() <= REACTION_SIGNIFICANCE_MOLES + { + // Hotspot can't sustain combustion. + tile.thermal_energy += hotspot_extra_thermal_energy; + tile.hotspot_temperature = 0.0; + tile.hotspot_volume = 0.0; + return; + } +} + +// Adjusts the hotspot based on the given thermal energy delta. +// For positive values, the energy will first be used to reach PLASMA_BURN_OPTIMAL_TEMP, then +// to expand volume up to 1 (filled), and finally dumped into the tile's thermal energy. +// For negative values, only the hotspot's volume is affected. +pub(crate) fn adjust_hotspot(tile: &mut Tile, thermal_energy_delta: f32) { + if thermal_energy_delta < 0.0 { + if tile.hotspot_volume <= 0.0 { + // No hotspot to sap heat from. + return; + } + // Shrink volume accordingly. + // How much heat do we need to fill the whole tile? + let total_heat_needed = tile.heat_capacity() * tile.hotspot_temperature; + // How much heat do we have now? + let heat_available = tile.heat_capacity() * tile.hotspot_temperature * tile.hotspot_volume + + thermal_energy_delta; + // We fill that portion of the tile. + tile.hotspot_volume = (heat_available / total_heat_needed).max(0.0); + } else if tile.hotspot_volume > 0.0 { + // Heat up the hotspot; it'll expand when normalised. + tile.hotspot_temperature += + thermal_energy_delta / (tile.heat_capacity() * tile.hotspot_volume); + } else if tile.temperature() > PLASMA_BURN_OPTIMAL_TEMP { + // No need to make a hotspot, just heat the tile. + tile.thermal_energy += thermal_energy_delta; + } else { + // Create an optimal hotspot with the available energy. + let optimal_thermal_energy = PLASMA_BURN_OPTIMAL_TEMP * tile.heat_capacity(); + tile.hotspot_temperature = PLASMA_BURN_OPTIMAL_TEMP; + tile.hotspot_volume = thermal_energy_delta / (optimal_thermal_energy - tile.thermal_energy); + } + + normalise_hotspot(tile); } // Yay, tests! #[cfg(test)] mod tests { use super::*; - // share_air() should do nothing to two space tiles. - #[test] - fn share_nothing() { - let tile_a = Tile::new(); - let tile_b = Tile::new(); - let (gas_change, thermal_energy_change) = share_air(&tile_a, &tile_b, 1, 1); - for i in 0..GAS_COUNT { - assert_eq!(gas_change.values[i], 0.0, "{}", i); - } - assert_eq!(thermal_energy_change, 0.0); - } - - // share_air() should do nothing to two matching tiles. - #[test] - fn share_equilibrium() { - let mut tile_a = Tile::new(); - tile_a.gases.set_oxygen(80.0); - tile_a.gases.set_nitrogen(20.0); - tile_a.thermal_energy = 100.0; - let mut tile_b = Tile::new(); - tile_b.gases.set_oxygen(80.0); - tile_b.gases.set_nitrogen(20.0); - tile_b.thermal_energy = 100.0; - - let (gas_change, thermal_energy_change) = share_air(&tile_a, &tile_b, 1, 1); - for i in 0..GAS_COUNT { - assert_eq!(gas_change.values[i], 0.0, "{}", i); - } - assert_eq!(thermal_energy_change, 0.0); - } - - // share_air() should split air into 2 equal parts with connected_dirs of 1. - #[test] - fn share_splits_air_cd1() { - let mut tile_a = Tile::new(); - tile_a.gases.set_oxygen(100.0); - tile_a.thermal_energy = 100.0; - let tile_b = Tile::new(); - - let (gas_change, thermal_energy_change) = share_air(&tile_a, &tile_b, 1, 1); - for i in 0..GAS_COUNT { - if i == GAS_OXYGEN { - assert_eq!(gas_change.values[i], -50.0); - } else { - assert_eq!(gas_change.values[i], 0.0, "{}", i); - } - } - assert_eq!(thermal_energy_change, -50.0); - } - - // share_air() should split air into 5 equal parts with connected_dirs of 4. - #[test] - fn share_splits_air_cd4() { - let mut tile_a = Tile::new(); - tile_a.gases.set_oxygen(100.0); - tile_a.thermal_energy = 100.0; - let tile_b = Tile::new(); - - let (gas_change, thermal_energy_change) = share_air(&tile_a, &tile_b, 4, 4); - for i in 0..GAS_COUNT { - if i == GAS_OXYGEN { - assert_eq!(gas_change.values[i], -20.0); - } else { - assert_eq!(gas_change.values[i], 0.0, "{}", i); - } - } - assert_eq!(thermal_energy_change, -20.0); - } - - // superconduct() should transfer part of the thermal energy between two tiles that differ - // only in thermal energy. - #[test] - fn superconduct_temperature() { - let mut tile_a = Tile::new(); - tile_a.gases.set_oxygen(80.0); - tile_a.gases.set_nitrogen(20.0); - tile_a.thermal_energy = 100.0; - let mut tile_b = Tile::new(); - tile_b.gases.set_oxygen(80.0); - tile_b.gases.set_nitrogen(20.0); - tile_b.thermal_energy = 200.0; - - superconduct(&mut tile_a, &mut tile_b, true); - - // These values are arbitrary, they're just what we get right now. - // Update them if the calculations changed intentionally. - assert_eq!(tile_a.thermal_energy, 120.0); - assert_eq!(tile_b.thermal_energy, 180.0); - } + // TODO } diff --git a/rust/src/milla/statics.rs b/rust/src/milla/statics.rs index 4ecdd702c1b..d179b5ad74a 100644 --- a/rust/src/milla/statics.rs +++ b/rust/src/milla/statics.rs @@ -10,5 +10,10 @@ pub(crate) static BUFFERS: OnceLock = OnceLock::new(); /// We only write this once per tick, and only read it on user input. pub(crate) static INTERESTING_TILES: Mutex> = Mutex::new(Vec::new()); +/// The current set of tiles BYOND wants the pressure of. +/// Written to via BYOND call. +/// Read from and cleared via BYOND call. +pub(crate) static TRACKED_PRESSURE_TILES: Mutex> = Mutex::new(Vec::new()); + /// How long the last tick took, in milliseconds. pub(crate) static TICK_TIME: AtomicUsize = AtomicUsize::new(0); diff --git a/rust/src/milla/tick.rs b/rust/src/milla/tick.rs index bc9afafff1f..ee197e5788f 100644 --- a/rust/src/milla/tick.rs +++ b/rust/src/milla/tick.rs @@ -1,7 +1,7 @@ -use crate::milla::constants::*; use crate::milla::model::*; use crate::milla::simulate; use crate::milla::statics::*; +use eyre; use scc::Bag; use std::sync::RwLock; use std::thread; @@ -13,11 +13,12 @@ pub(crate) fn tick(buffers: &Buffers) -> Result<(), eyre::Error> { assert!(thread_priority::ThreadPriority::Min .set_for_current() .is_ok()); - let active = buffers.get_active().read().unwrap(); - let inactive = buffers.get_inactive().read().unwrap(); + let prev = buffers.get_active().read().unwrap(); + let next = buffers.get_inactive().read().unwrap(); let new_interesting_tiles: Bag = Bag::default(); - let mut result: Result<(), eyre::Error> = Ok(()); + let mut result: eyre::Result<()> = Ok(()); + let handle_results: RwLock>> = RwLock::new(Vec::new()); // The scope tells Rust that all the threads we create here will end by the time the scope // closes. This allows us to pass things into them that are only borrowed for the lifetime of @@ -25,30 +26,39 @@ pub(crate) fn tick(buffers: &Buffers) -> Result<(), eyre::Error> { thread::scope(|s| { // Force most things to be captured by reference, despite the `move` // in the thread spawn, which is really just for `z`. - let active = &active; - let inactive = &inactive; + let prev = &prev; + let next = &next; let new_interesting_tiles = &new_interesting_tiles; // Handle each Z level in its own thread. let mut handles = Vec::>::new(); - for z in 0..active.0.len() { + let handle_results = &handle_results; + for z in 0..prev.0.len() { handles.push(s.spawn(move || { assert!(thread_priority::ThreadPriority::Min .set_for_current() .is_ok()); - tick_z_level( + let result = tick_z_level( buffers, - &active.0[z], - &inactive.0[z], + &prev.0[z], + &next.0[z], z as i32, &new_interesting_tiles, - ) - .unwrap(); + ); + let mut results = handle_results.write().unwrap(); + results.push(result); })); } for handle in handles { - if let Err(e) = handle.join() { - result = Err(eyre::eyre!("Worker thread failed: {:#?}", e)); + let _ = handle.join(); + } + let readable_results = handle_results.read().unwrap(); + for index in 0..readable_results.len() { + if readable_results[index].is_err() { + result = Err(eyre::eyre!( + "MILLA worker thread failed: {:#?}", + readable_results[index].as_ref().err() + )); } } }); @@ -69,118 +79,28 @@ pub(crate) fn tick(buffers: &Buffers) -> Result<(), eyre::Error> { /// Runs a single tick of one Z level's atmospherics model. pub(crate) fn tick_z_level( buffers: &Buffers, - active_atmos_lock: &RwLock, - inactive_atmos_lock: &RwLock, + prev_atmos_lock: &RwLock, + next_atmos_lock: &RwLock, z: i32, new_interesting_tiles: &Bag, -) -> Result<(), eyre::Error> { +) -> eyre::Result<()> { let environments; { let global_environments = buffers.environments.read().unwrap(); environments = global_environments.clone().into_boxed_slice(); } - let active = active_atmos_lock.read().unwrap(); - let mut inactive = inactive_atmos_lock.write().unwrap(); + let prev = prev_atmos_lock.read().unwrap(); + let mut next = next_atmos_lock.write().unwrap(); + // Initialize the new frame as a copy of the old one. - inactive.copy_from(&active); - for my_index in 0..MAP_SIZE * MAP_SIZE { - let x = (my_index / MAP_SIZE) as i32; - let y = (my_index % MAP_SIZE) as i32; - let my_tile = active.get_tile(my_index); - let my_connected_dirs = simulate::count_connected_dirs(&active, my_index, x, y)?; + next.copy_from(&prev); - // Handle gas and heat exchange with neighbors. - for (dx, dy) in AXES { - let maybe_their_index = ZLevel::maybe_get_index(x + dx, y + dy); - let their_index; - match maybe_their_index { - Some(index) => their_index = index, - None => continue, - } + simulate::find_walls(&mut next); + simulate::update_wind(&prev, &mut next); + simulate::flow_air(&prev, &mut next)?; + simulate::post_process(&prev, &mut next, &environments, new_interesting_tiles, z)?; - let their_tile = active.get_tile(their_index); - if let AtmosMode::Space = my_tile.mode { - if let AtmosMode::Space = their_tile.mode { - // Exchange what, exactly? - continue; - } - } - let their_connected_dirs = - simulate::count_connected_dirs(&active, their_index, x + dx, y + dy)?; - - let (my_inactive_tile, their_inactive_tile) = - inactive.get_pair_mut(my_index, their_index); - - // Bail if we shouldn't share air this way, but still run superconductivity. - if dx > 0 - && (my_tile - .airtight_directions - .contains(AirtightDirections::EAST) - || their_tile - .airtight_directions - .contains(AirtightDirections::WEST)) - { - simulate::superconduct(my_inactive_tile, their_inactive_tile, true); - continue; - } - if dy > 0 - && (my_tile - .airtight_directions - .contains(AirtightDirections::NORTH) - || their_tile - .airtight_directions - .contains(AirtightDirections::SOUTH)) - { - simulate::superconduct(my_inactive_tile, their_inactive_tile, false); - continue; - } - - // Calculate the amount of air and thermal energy transferred. - let (gas_change, thermal_energy_change) = - simulate::share_air(my_tile, their_tile, my_connected_dirs, their_connected_dirs); - - // Transfer it. - for i in 0..GAS_COUNT { - if gas_change.values[i] != 0.0 { - my_inactive_tile.gases.values[i] += gas_change.values[i]; - my_inactive_tile.gases.set_dirty(); - their_inactive_tile.gases.values[i] -= gas_change.values[i]; - their_inactive_tile.gases.set_dirty(); - } - } - my_inactive_tile.thermal_energy += thermal_energy_change; - their_inactive_tile.thermal_energy -= thermal_energy_change; - - // Run superconductivity. - simulate::superconduct(my_inactive_tile, their_inactive_tile, dx > 0); - } - - let my_inactive_tile = inactive.get_tile_mut(my_index); - simulate::apply_tile_mode(my_tile, my_inactive_tile, &environments)?; - - if let AtmosMode::Space = my_tile.mode { - // Space has no reactions, doesn't need to be sanitized, and is never interesting. - continue; - } - - // Track how much "fuel" was burnt across all reactions. - let fuel_burnt = simulate::react(my_inactive_tile); - - // Sanitize the tile, to avoid negative/NaN/infinity spread. - simulate::sanitize(my_inactive_tile, my_tile); - - simulate::check_interesting( - x, - y, - z, - &active, - &environments, - my_tile, - my_inactive_tile, - fuel_burnt, - new_interesting_tiles, - )?; - } + next.active_pressure_chunks.clear(); Ok(()) } @@ -189,6 +109,7 @@ pub(crate) fn tick_z_level( #[cfg(test)] mod tests { use super::*; + use crate::constants::*; fn set_with_defaults(legend: F) -> impl Fn(char) -> Tile where @@ -226,8 +147,8 @@ mod tests { where F: Fn(char) -> Tile, { - let active = buffers.get_active().read().unwrap(); - let mut z_level = active.0[z as usize].write().unwrap(); + let current = buffers.get_active().read().unwrap(); + let mut z_level = current.0[z as usize].write().unwrap(); for inv_y in 0..pattern.len() { // Reverse the Y direction, so +Y is up, like in the game. let y = pattern.len() - inv_y - 1; @@ -277,8 +198,8 @@ mod tests { where F: Fn(char) -> TileChecker, { - let active = buffers.get_active().read().unwrap(); - let z_level = active.0[z as usize].read().unwrap(); + let current = buffers.get_active().read().unwrap(); + let z_level = current.0[z as usize].read().unwrap(); for inv_y in 0..pattern.len() { // Reverse the Y direction, so +Y is up, like in the game. let y = pattern.len() - inv_y - 1; @@ -525,386 +446,5 @@ mod tests { // unfortunately, the compiler won't let it be applied in the middle of // the code right now. It formats right, it just won't compile. - // Air should split evenly to surrounding vacuum tiles. - #[test] - fn tick_splits_air() { - let buffers = Buffers::new(); - buffers.init_to(0); - - set_pattern( - &buffers, - &[ - "#######", // - "# #", // - "# 0 #", // - "# 0X0 #", // - "# 0 #", // - "# #", // - "#######", // - ], - set_with_defaults(|_c: char| None), - 0, - ); - - tick(&buffers).unwrap(); - - expect_pattern( - &buffers, - &[ - "#######", // - "# #", // - "# x #", // - "# xxx #", // - "# x #", // - "# #", // - "#######", // - ], - expect_with_defaults(|c: char| match c { - 'x' => Some( - TileChecker::new() // - .oxygen(20.0) - .thermal_energy(20.0), - ), - _ => None, - }), - 0, - ); - } - - // Air should not flow into walls. - #[test] - fn tick_respects_walls() { - let buffers = Buffers::new(); - buffers.init_to(0); - - set_pattern( - &buffers, - &[ - "###", // - "#X#", // - "###", // - ], - set_with_defaults(|_c: char| None), - 0, - ); - - tick(&buffers).unwrap(); - - expect_pattern( - &buffers, - &[ - "#0#", // - "0X0", // - "#0#", // - ], - expect_with_defaults(|_c: char| None), - 0, - ); - } - - // Air should flow properly into dead-end tiles. - #[test] - fn tick_handles_different_connections() { - let buffers = Buffers::new(); - buffers.init_to(0); - - set_pattern( - &buffers, - &[ - "#####", // - "##0##", // - "#0X0#", // - "##0##", // - "#####", // - ], - set_with_defaults(|_c: char| None), - 0, - ); - - tick(&buffers).unwrap(); - - expect_pattern( - &buffers, - &[ - "#####", // - "##x##", // - "#xxx#", // - "##x##", // - "#####", // - ], - expect_with_defaults(|c: char| match c { - 'x' => Some( - TileChecker::new() // - .oxygen(20.0) - .thermal_energy(20.0), - ), - _ => None, - }), - 0, - ); - } - - // Four equal dead-end tiles around a vacuum should distribute air evenly between all 5 tiles. - // Temp: Or not, because we're matching MILLA behavior. - #[test] - fn tick_merges_properly() { - let buffers = Buffers::new(); - buffers.init_to(0); - - set_pattern( - &buffers, - &[ - "#####", // - "##X##", // - "#X0X#", // - "##X##", // - "#####", // - ], - set_with_defaults(|_c: char| None), - 0, - ); - - tick(&buffers).unwrap(); - - expect_pattern( - &buffers, - &[ - "#####", // - "##x##", // - "#x!x#", // - "##x##", // - "#####", // - ], - expect_with_defaults(|c: char| match c { - '!' => Some( - TileChecker::new() // - .oxygen(200.0) - .thermal_energy(200.0), - ), - 'x' => Some( - TileChecker::new() // - .oxygen(50.0) - .thermal_energy(50.0), - ), - _ => None, - }), - 0, - ); - } - - // Energy should be transferred into superconducting walls. - #[test] - fn tick_superconducts_into_walls() { - let buffers = Buffers::new(); - buffers.init_to(0); - - set_pattern( - &buffers, - &[ - "######", // - "##XS##", // - "#S##X#", // - "#X##S#", // - "##SX##", // - "######", // - ], - set_with_defaults(|c: char| match c { - 'S' => Some( - TileBuilder::wall() // - .superconducts(OPEN_HEAT_TRANSFER_COEFFICIENT) - .innate_heat_capacity(2000.0) - .build(), - ), - _ => None, - }), - 0, - ); - - tick(&buffers).unwrap(); - - expect_pattern( - &buffers, - &[ - "######", // - "##xS##", // - "#S##x#", // - "#x##S#", // - "##Sx##", // - "######", // - ], - expect_with_defaults(|c: char| match c { - 'x' => Some( - TileChecker::new() // - .oxygen(100.0) - // This value is arbitrary, it's just what we get right now. - // Update it if the calculations changed intentionally. - .thermal_energy(80.0), - ), - 'S' => Some( - TileChecker::new() // - // This value is arbitrary, it's just what we get right now. - // Update it if the calculations changed intentionally. - .thermal_energy(20.0), - ), - _ => None, - }), - 0, - ); - } - - // Air should flow into a space tile, and be deleted. - #[test] - fn tick_empties_space() { - let buffers = Buffers::new(); - buffers.init_to(0); - - set_pattern( - &buffers, - &[ - "#####", // - "##X##", // - "#X X#", // - "##X##", // - "#####", // - ], - set_with_defaults(|c: char| match c { - 'x' => Some( - TileBuilder::sealed() // - .oxygen(100.0) - .thermal_energy(100.0) - .build(), - ), - _ => None, - }), - 0, - ); - - tick(&buffers).unwrap(); - - expect_pattern( - &buffers, - &[ - "#####", // - "##x##", // - "#x0x#", // - "##x##", // - "#####", // - ], - expect_with_defaults(|c: char| match c { - 'x' => Some( - TileChecker::new() // - .oxygen(50.0) - .thermal_energy(50.0), - ), - _ => None, - }), - 0, - ); - } - - // Air should tend towards the environment's temperature, if any. - #[test] - fn tick_affected_by_environment_temperature() { - let buffers = Buffers::new(); - buffers.init_to(0); - let lavaland = buffers.create_environment( - TileBuilder::sealed() // - .oxygen(8.0) - .nitrogen(14.0) - .temperature(500.0) - .build(), - ); - - set_pattern( - &buffers, - &[ - "###", // - "#X#", // - "###", // - ], - set_with_defaults(|c: char| match c { - 'X' => Some( - TileBuilder::exposed_to(lavaland) - .oxygen(8.0) - .nitrogen(14.0) - .thermal_energy(0.0) - .build(), - ), - _ => None, - }), - 0, - ); - - tick(&buffers).unwrap(); - - expect_pattern( - &buffers, - &[ - "###", // - "#Y#", // - "###", // - ], - expect_with_defaults(|c: char| match c { - 'Y' => Some( - TileChecker::new() // - .oxygen(8.0) - .nitrogen(14.0) - // This value is arbitrary, it's just what we get right now. - // Update it if the calculations changed intentionally. - .thermal_energy(44_000.0), - ), - _ => None, - }), - 0, - ); - } - - // Air should exchange with the tile's environment, if any. - #[test] - fn tick_affected_by_environment() { - let buffers = Buffers::new(); - buffers.init_to(0); - let lavaland = buffers.create_environment( - TileBuilder::sealed() // - .oxygen(8.0) - .nitrogen(14.0) - .temperature(500.0) - .build(), - ); - - set_pattern( - &buffers, - &[ - "###", // - "#X#", // - "###", // - ], - set_with_defaults(|c: char| match c { - 'X' => Some(TileBuilder::exposed_to(lavaland).build()), - _ => None, - }), - 0, - ); - - tick(&buffers).unwrap(); - - expect_pattern( - &buffers, - &[ - "###", // - "#Y#", // - "###", // - ], - expect_with_defaults(|c: char| match c { - 'Y' => Some( - TileChecker::new() // - .oxygen(4.0) - .nitrogen(7.0) - .temperature(500.0), - ), - _ => None, - }), - 0, - ); - } + // TODO } diff --git a/rustlibs.dll b/rustlibs.dll index b1b620b7506..df62886eee9 100644 Binary files a/rustlibs.dll and b/rustlibs.dll differ diff --git a/rustlibs_prod.dll b/rustlibs_prod.dll index 355c4be3540..ac691c7b086 100644 Binary files a/rustlibs_prod.dll and b/rustlibs_prod.dll differ diff --git a/tgui/packages/tgui/interfaces/AirAlarm.js b/tgui/packages/tgui/interfaces/AirAlarm.js index 0aa5845671d..b56a410d14e 100644 --- a/tgui/packages/tgui/interfaces/AirAlarm.js +++ b/tgui/packages/tgui/interfaces/AirAlarm.js @@ -364,24 +364,24 @@ const AirAlarmModesView = (props, context) => { return ( <>
- - {modes.map( - (m) => - (!m.emagonly || (m.emagonly && !!emagged)) && ( - - -
+ {Object.keys(modes).map((key) => { + let m = modes[key]; + if (!m.emagonly || !!emagged) { + return ( + + +
After making a selection, the system will automatically cycle in order to remove contaminants. diff --git a/tgui/packages/tgui/interfaces/AtmosAlertConsole.js b/tgui/packages/tgui/interfaces/AtmosAlertConsole.js index 15f9c2fb978..30a1fc31bc0 100644 --- a/tgui/packages/tgui/interfaces/AtmosAlertConsole.js +++ b/tgui/packages/tgui/interfaces/AtmosAlertConsole.js @@ -6,6 +6,7 @@ export const AtmosAlertConsole = (props, context) => { const { act, data } = useBackend(context); const priorityAlerts = data.priority || []; const minorAlerts = data.minor || []; + const areaModes = data.mode || {}; return ( @@ -23,6 +24,12 @@ export const AtmosAlertConsole = (props, context) => { {alert} ))} + {Object.keys(areaModes).length === 0 &&
  • All Areas Filtering
  • } + {Object.keys(areaModes).map((label) => ( +
  • + {label} mode is {areaModes[label]} +
  • + ))}
    diff --git a/tgui/packages/tgui/interfaces/GhostHudPanel.js b/tgui/packages/tgui/interfaces/GhostHudPanel.js index 742db732f0f..ba0362a47d0 100644 --- a/tgui/packages/tgui/interfaces/GhostHudPanel.js +++ b/tgui/packages/tgui/interfaces/GhostHudPanel.js @@ -4,14 +4,15 @@ import { Window } from '../layouts'; export const GhostHudPanel = (props, context) => { const { data } = useBackend(context); - const { security, medical, diagnostic, radioactivity, ahud } = data; + const { security, medical, diagnostic, pressure, radioactivity, ahud } = data; return ( - +
    + =48&&d<=57||d>=65&&d<=90)return String.fromCharCode(d);if(d>=96&&d<=105)return"Numpad"+(d-96);if(d>=112&&d<=123)return"F"+(d-111);if(d===188)return",";if(d===189)return"-";if(d===190)return"."},i=function(d){var C=String(d);if(C==="Ctrl+F5"||C==="Ctrl+R"){location.reload();return}if(C!=="Ctrl+F"&&!(d.event.defaultPrevented||d.isModifierKey()||B.includes(d.code))){C==="F5"&&(d.event.preventDefault(),d.event.returnValue=!1);var h=g(d.code);if(h){var v=y[h];if(v)return b.debug("macro",v),Byond.command(v);if(d.isDown()&&!k[h]){k[h]=!0;var p='Key_Down "'+h+'"';return b.debug(p),Byond.command(p)}if(d.isUp()&&k[h]){k[h]=!1;var N='Key_Up "'+h+'"';return b.debug(N),Byond.command(N)}}}},c=r.acquireHotKey=function(){function s(d){B.push(d)}return s}(),m=r.releaseHotKey=function(){function s(d){var C=B.indexOf(d);C>=0&&B.splice(C,1)}return s}(),l=r.releaseHeldKeys=function(){function s(){for(var d=0,C=Object.keys(k);d0||(0,a.fetchRetry)((0,e.resolveAsset)("icon_ref_map.json")).then(function(b){return b.json()}).then(function(b){return Byond.iconRefMap=b}).catch(function(b){return t.logger.log(b)})}return f}()},1090:function(T,r,n){"use strict";r.__esModule=!0,r.AICard=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AICard=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;if(i.has_ai===0)return(0,e.createComponentVNode)(2,o.Window,{width:250,height:120,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Stored AI",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createVNode)(1,"h3",null,"No AI detected.",16)})})})});var c=null;return i.integrity>=75?c="green":i.integrity>=25?c="yellow":c="red",(0,e.createComponentVNode)(2,o.Window,{width:600,height:420,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:i.name,children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:c,value:i.integrity/100})})}),(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h2",null,i.flushing===1?"Wipe of AI in progress...":"",0)})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Laws",children:!!i.has_laws&&(0,e.createComponentVNode)(2,t.Box,{children:i.laws.map(function(m,l){return(0,e.createComponentVNode)(2,t.Box,{children:m},l)})})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h3",null,"No laws detected.",16)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wireless Activity",children:(0,e.createComponentVNode)(2,t.Button,{width:10,icon:i.wireless?"check":"times",content:i.wireless?"Enabled":"Disabled",color:i.wireless?"green":"red",onClick:function(){function m(){return g("wireless")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subspace Transceiver",children:(0,e.createComponentVNode)(2,t.Button,{width:10,icon:i.radio?"check":"times",content:i.radio?"Enabled":"Disabled",color:i.radio?"green":"red",onClick:function(){function m(){return g("radio")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wipe",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{width:10,icon:"trash-alt",confirmIcon:"trash-alt",disabled:i.flushing||i.integrity===0,confirmColor:"red",content:"Wipe AI",onClick:function(){function m(){return g("wipe")}return m}()})})]})})})]})})})}return b}()},39454:function(T,r,n){"use strict";r.__esModule=!0,r.AIFixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AIFixer=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;if(i.occupant===null)return(0,e.createComponentVNode)(2,o.Window,{width:550,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Stored AI",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"robot",size:5,color:"silver"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"h3",null,"No Artificial Intelligence detected.",16)]})})})})});var c=!0;(i.stat===2||i.stat===null)&&(c=!1);var m=null;i.integrity>=75?m="green":i.integrity>=25?m="yellow":m="red";var l=!0;return i.integrity>=100&&i.stat!==2&&(l=!1),(0,e.createComponentVNode)(2,o.Window,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:i.occupant,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:m,value:i.integrity/100})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:c?"green":"red",children:c?"Functional":"Non-Functional"})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Laws",children:!!i.has_laws&&(0,e.createComponentVNode)(2,t.Box,{children:i.laws.map(function(u,s){return(0,e.createComponentVNode)(2,t.Box,{inline:!0,children:u},s)})})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h3",null,"No laws detected.",16)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wireless Activity",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.wireless?"times":"check",content:i.wireless?"Disabled":"Enabled",color:i.wireless?"red":"green",onClick:function(){function u(){return g("wireless")}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subspace Transceiver",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.radio?"times":"check",content:i.radio?"Disabled":"Enabled",color:i.radio?"red":"green",onClick:function(){function u(){return g("radio")}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Start Repairs",children:(0,e.createComponentVNode)(2,t.Button,{icon:"wrench",disabled:!l||i.active,content:!l||i.active?"Already Repaired":"Repair",onClick:function(){function u(){return g("fix")}return u}()})})]}),(0,e.createComponentVNode)(2,t.Box,{color:"green",lineHeight:2,children:i.active?"Reconstruction in progress.":""})]})})]})})})}return b}()},88422:function(T,r,n){"use strict";r.__esModule=!0,r.APC=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(195),b=r.APC=function(){function g(i,c){return(0,e.createComponentVNode)(2,o.Window,{width:510,height:435,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,k)})})}return g}(),y={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"}},B={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"}},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.locked&&!u.siliconUser,d=u.normallyLocked,C=y[u.externalPower]||y[0],h=y[u.chargingStatus]||y[0],v=u.powerChannels||[],p=B[u.malfStatus]||B[0],N=u.powerCellStatus/100;return(0,e.createFragment)([(0,e.createComponentVNode)(2,f.InterfaceLockNoticeBox),(0,e.createComponentVNode)(2,t.Section,{title:"Power Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Main Breaker",color:C.color,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:u.isOperating?"power-off":"times",content:u.isOperating?"On":"Off",selected:u.isOperating&&!s,color:u.isOperating?"":"bad",disabled:s,onClick:function(){function V(){return l("breaker")}return V}()}),children:["[ ",C.externalPowerText," ]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Cell",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:"good",value:N})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Charge Mode",color:h.color,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:u.chargeMode?"sync":"times",content:u.chargeMode?"Auto":"Off",selected:u.chargeMode,disabled:s,onClick:function(){function V(){return l("charge")}return V}()}),children:["[ ",h.chargingText," ]"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Channels",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[v.map(function(V){var S=V.topicParams;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:V.title,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,mx:2,color:V.status>=2?"good":"bad",children:V.status>=2?"On":"Off"}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Auto",selected:!s&&(V.status===1||V.status===3),disabled:s,onClick:function(){function I(){return l("channel",S.auto)}return I}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:"On",selected:!s&&V.status===2,disabled:s,onClick:function(){function I(){return l("channel",S.on)}return I}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Off",selected:!s&&V.status===0,disabled:s,onClick:function(){function I(){return l("channel",S.off)}return I}()})],4),children:[V.powerLoad," W"]},V.title)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Load",children:(0,e.createVNode)(1,"b",null,[u.totalLoad,(0,e.createTextVNode)(" W")],0)})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Misc",buttons:!!u.siliconUser&&(0,e.createFragment)([!!u.malfStatus&&(0,e.createComponentVNode)(2,t.Button,{icon:p.icon,content:p.content,color:"bad",onClick:function(){function V(){return l(p.action)}return V}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){function V(){return l("overload")}return V}()})],0),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cover Lock",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.4,icon:u.coverLocked?"lock":"unlock",content:u.coverLocked?"Engaged":"Disengaged",disabled:s,onClick:function(){function V(){return l("cover")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"lightbulb-o",content:u.emergencyLights?"Enabled":"Disabled",disabled:s,onClick:function(){function V(){return l("emergency_lighting")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,e.createComponentVNode)(2,t.Button,{mt:.4,icon:"lightbulb-o",content:u.nightshiftLights?"Enabled":"Disabled",onClick:function(){function V(){return l("toggle_nightshift")}return V}()})})]})})],4)}},99660:function(T,r,n){"use strict";r.__esModule=!0,r.ATM=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ATM=function(){function m(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.view_screen,v=C.authenticated_account,p=C.ticks_left_locked_down,N=C.linked_db,V;if(p>0)V=(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle"}),"Maximum number of pin attempts exceeded! Access to this ATM has been temporarily disabled."]});else if(!N)V=(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle"}),"Unable to connect to accounts database, please retry and if the issue persists contact Nanotrasen IT support."]});else if(v)switch(h){case 1:V=(0,e.createComponentVNode)(2,y);break;case 2:V=(0,e.createComponentVNode)(2,B);break;case 3:V=(0,e.createComponentVNode)(2,i);break;default:V=(0,e.createComponentVNode)(2,k)}else V=(0,e.createComponentVNode)(2,g);return(0,e.createComponentVNode)(2,o.Window,{width:550,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Section,{children:V})]})})}return m}(),b=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.machine_id,v=C.held_card_name;return(0,e.createComponentVNode)(2,t.Section,{title:"Nanotrasen Automatic Teller Machine",children:[(0,e.createComponentVNode)(2,t.Box,{children:"For all your monetary needs!"}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Card",children:(0,e.createComponentVNode)(2,t.Button,{content:v,icon:"eject",onClick:function(){function p(){return d("insert_card")}return p}()})})})]})},y=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.security_level;return(0,e.createComponentVNode)(2,t.Section,{title:"Select a new security level for this account",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:(0,e.createComponentVNode)(2,t.Button,{content:"Account Number",icon:"unlock",selected:h===0,onClick:function(){function v(){return d("change_security_level",{new_security_level:1})}return v}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:"Either the account number or card is required to access this account. EFTPOS transactions will require a card."}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:(0,e.createComponentVNode)(2,t.Button,{content:"Account Pin",icon:"unlock",selected:h===2,onClick:function(){function v(){return d("change_security_level",{new_security_level:2})}return v}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:"An account number and pin must be manually entered to access this account and process transactions."})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},B=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=(0,a.useLocalState)(u,"targetAccNumber",0),v=h[0],p=h[1],N=(0,a.useLocalState)(u,"fundsAmount",0),V=N[0],S=N[1],I=(0,a.useLocalState)(u,"purpose",0),L=I[0],w=I[1],A=C.money;return(0,e.createComponentVNode)(2,t.Section,{title:"Transfer Fund",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account Balance",children:["$",A]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Account Number",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"7 Digit Number",onInput:function(){function x(E,P){return p(P)}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Funds to Transfer",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function x(E,P){return S(P)}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transaction Purpose",children:(0,e.createComponentVNode)(2,t.Input,{fluid:!0,onInput:function(){function x(E,P){return w(P)}return x}()})})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.Button,{content:"Transfer",icon:"sign-out-alt",onClick:function(){function x(){return d("transfer",{target_acc_number:v,funds_amount:V,purpose:L})}return x}()}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},k=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=(0,a.useLocalState)(u,"fundsAmount",0),v=h[0],p=h[1],N=C.owner_name,V=C.money;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Welcome, "+N,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Logout",icon:"sign-out-alt",onClick:function(){function S(){return d("logout")}return S}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account Balance",children:["$",V]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Withdrawal Amount",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function S(I,L){return p(L)}return S}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Withdraw Funds",icon:"sign-out-alt",onClick:function(){function S(){return d("withdrawal",{funds_amount:v})}return S}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Menu",children:[(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Change account security level",icon:"lock",onClick:function(){function S(){return d("view_screen",{view_screen:1})}return S}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Make transfer",icon:"exchange-alt",onClick:function(){function S(){return d("view_screen",{view_screen:2})}return S}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"View transaction log",icon:"list",onClick:function(){function S(){return d("view_screen",{view_screen:3})}return S}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Print balance statement",icon:"print",onClick:function(){function S(){return d("balance_statement")}return S}()})})]})],4)},g=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=(0,a.useLocalState)(u,"accountID",null),v=h[0],p=h[1],N=(0,a.useLocalState)(u,"accountPin",null),V=N[0],S=N[1],I=C.machine_id,L=C.held_card_name;return(0,e.createComponentVNode)(2,t.Section,{title:"Insert card or enter ID and pin to login",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account ID",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"6 Digit Number",onInput:function(){function w(A,x){return p(x)}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pin",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"6 Digit Number",onInput:function(){function w(A,x){return S(x)}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Login",icon:"sign-in-alt",onClick:function(){function w(){return d("attempt_auth",{account_num:v,account_pin:V})}return w}()})})]})})},i=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.transaction_log;return(0,e.createComponentVNode)(2,t.Section,{title:"Transactions",children:[(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Timestamp"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Reason"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Value"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Terminal"})]}),h.map(function(v){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.time}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.purpose}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:v.is_deposit?"green":"red",children:["$",v.amount]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.target_name})]},v)})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},c=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data;return(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"sign-out-alt",onClick:function(){function h(){return d("view_screen",{view_screen:0})}return h}()})}},86423:function(T,r,n){"use strict";r.__esModule=!0,r.AccountsUplinkTerminal=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(36352),b=n(98595),y=n(321),B=n(5485),k=r.AccountsUplinkTerminal=function(){function C(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=V.loginState,I=V.currentPage,L;if(S.logged_in)I===1?L=(0,e.createComponentVNode)(2,i):I===2?L=(0,e.createComponentVNode)(2,s):I===3&&(L=(0,e.createComponentVNode)(2,d));else return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,B.LoginScreen)})})});return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,y.LoginInfo),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:L})]})})})}return C}(),g=function(h,v){var p=(0,t.useBackend)(v),N=p.data,V=(0,t.useLocalState)(v,"tabIndex",0),S=V[0],I=V[1],L=N.login_state;return(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,mb:1,children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:S===0,onClick:function(){function w(){return I(0)}return w}(),children:"User Accounts"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:S===1,onClick:function(){function w(){return I(1)}return w}(),children:"Department Accounts"})]})})})},i=function(h,v){var p=(0,t.useLocalState)(v,"tabIndex",0),N=p[0];switch(N){case 0:return(0,e.createComponentVNode)(2,c);case 1:return(0,e.createComponentVNode)(2,m);default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},c=function(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=V.accounts,I=(0,t.useLocalState)(v,"searchText",""),L=I[0],w=I[1],A=(0,t.useLocalState)(v,"sortId","owner_name"),x=A[0],E=A[1],P=(0,t.useLocalState)(v,"sortOrder",!0),D=P[0],M=P[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,u),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"AccountsUplinkTerminal__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,l,{id:"owner_name",children:"Account Holder"}),(0,e.createComponentVNode)(2,l,{id:"account_number",children:"Account Number"}),(0,e.createComponentVNode)(2,l,{id:"suspended",children:"Account Status"}),(0,e.createComponentVNode)(2,l,{id:"money",children:"Account Balance"})]}),S.filter((0,a.createSearch)(L,function(R){return R.owner_name+"|"+R.account_number+"|"+R.suspended+"|"+R.money})).sort(function(R,O){var F=D?1:-1;return R[x].localeCompare(O[x])*F}).map(function(R){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"AccountsUplinkTerminal__listRow--"+R.suspended,onClick:function(){function O(){return N("view_account_detail",{account_num:R.account_number})}return O}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",R.owner_name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:["#",R.account_number]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:R.suspended}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:R.money})]},R.account_number)})]})})})]})},m=function(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=V.department_accounts;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{className:"AccountsUplinkTerminal__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,f.TableCell,{children:"Department Name"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Number"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Status"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Balance"})]}),S.map(function(I){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"AccountsUplinkTerminal__listRow--"+I.suspended,onClick:function(){function L(){return N("view_account_detail",{account_num:I.account_number})}return L}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"wallet"})," ",I.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:["#",I.account_number]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:I.suspended}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:I.money})]},I.account_number)})]})})})})},l=function(h,v){var p=(0,t.useLocalState)(v,"sortId","name"),N=p[0],V=p[1],S=(0,t.useLocalState)(v,"sortOrder",!0),I=S[0],L=S[1],w=h.id,A=h.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:N!==w&&"transparent",width:"100%",onClick:function(){function x(){N===w?L(!I):(V(w),L(!0))}return x}(),children:[A,N===w&&(0,e.createComponentVNode)(2,o.Icon,{name:I?"sort-up":"sort-down",ml:"0.25rem;"})]})})},u=function(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=V.is_printing,I=(0,t.useLocalState)(v,"searchText",""),L=I[0],w=I[1];return(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{content:"New Account",icon:"plus",onClick:function(){function A(){return N("create_new_account")}return A}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by account holder, number, status",width:"100%",onInput:function(){function A(x,E){return w(E)}return A}()})})]})},s=function(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=V.account_number,I=V.owner_name,L=V.money,w=V.suspended,A=V.transactions,x=V.account_pin,E=V.is_department_account;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"#"+S+" / "+I,buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-left",content:"Back",onClick:function(){function P(){return N("back")}return P}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Number",children:["#",S]}),!!E&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Pin",children:x}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Pin Actions",children:(0,e.createComponentVNode)(2,o.Button,{ml:1,icon:"user-cog",content:"Set New Pin",disabled:!!E,onClick:function(){function P(){return N("set_account_pin",{account_number:S})}return P}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Holder",children:I}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Balance",children:L}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Status",color:w?"red":"green",children:[w?"Suspended":"Active",(0,e.createComponentVNode)(2,o.Button,{ml:1,content:w?"Unsuspend":"Suspend",icon:w?"unlock":"lock",onClick:function(){function P(){return N("toggle_suspension")}return P}()})]})]})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Transactions",children:(0,e.createComponentVNode)(2,o.Table,{children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Timestamp"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Reason"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Value"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Terminal"})]}),A.map(function(P){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.time}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.purpose}),(0,e.createComponentVNode)(2,o.Table.Cell,{color:P.is_deposit?"green":"red",children:["$",P.amount]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.target_name})]},P)})]})})})]})},d=function(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=(0,t.useLocalState)(v,"accName",""),I=S[0],L=S[1],w=(0,t.useLocalState)(v,"accDeposit",""),A=w[0],x=w[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Create Account",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-left",content:"Back",onClick:function(){function E(){return N("back")}return E}()}),children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Holder",children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Name Here",onChange:function(){function E(P,D){return L(D)}return E}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Initial Deposit",children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"0",onChange:function(){function E(P,D){return x(D)}return E}()})})]}),(0,e.createComponentVNode)(2,o.Button,{mt:1,fluid:!0,content:"Create Account",onClick:function(){function E(){return N("finalise_create_account",{holder_name:I,starting_funds:A})}return E}()})]})}},23001:function(T,r,n){"use strict";r.__esModule=!0,r.AdminAntagMenu=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(36352),b=n(98595),y=n(321),B=n(5485),k=function(C){switch(C){case 0:return"Antagonists";case 1:return"Objectives";case 2:return"Security";case 3:return"All High Value Items";default:return"Something went wrong with this menu, make an issue report please!"}},g=function(C){switch(C){case 0:return(0,e.createComponentVNode)(2,c);case 1:return(0,e.createComponentVNode)(2,m);case 2:return(0,e.createComponentVNode)(2,l);case 3:return(0,e.createComponentVNode)(2,u);default:return"Something went wrong with this menu, make an issue report please!"}},i=r.AdminAntagMenu=function(){function d(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.loginState,S=N.currentPage,I=(0,t.useLocalState)(h,"tabIndex",0),L=I[0],w=I[1],A=(0,t.useLocalState)(h,"searchText",""),x=A[0],E=A[1];return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.NoticeBox,{children:"This menu is a Work in Progress. Some antagonists like Nuclear Operatives and Biohazards will not show up."})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===0,onClick:function(){function P(){w(0)}return P}(),icon:"user",children:"Antagonists"},"Antagonists"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===1,onClick:function(){function P(){w(1)}return P}(),icon:"people-robbery",children:"Objectives"},"Objectives"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===2,onClick:function(){function P(){w(2)}return P}(),icon:"handcuffs",children:"Security"},"Security"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===3,onClick:function(){function P(){w(3)}return P}(),icon:"lock",children:"High Value Items"},"HighValueItems")]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:k(L),fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search...",width:"300px",onInput:function(){function P(D,M){return E(M)}return P}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"sync",onClick:function(){function P(){return p("refresh")}return P}(),children:"Refresh"})]}),children:g(L)})})]})})})}return d}(),c=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.antagonists,S=(0,t.useLocalState)(h,"searchText",""),I=S[0],L=S[1],w=(0,t.useLocalState)(h,"sortId","antag_name"),A=w[0],x=w[1],E=(0,t.useLocalState)(h,"sortOrder",!0),P=E[0],D=E[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{id:"name",children:"Mob Name"}),(0,e.createComponentVNode)(2,s,{id:"",children:"Buttons"}),(0,e.createComponentVNode)(2,s,{id:"antag_name",children:"Antagonist Type"}),(0,e.createComponentVNode)(2,s,{id:"status",children:"Status"})]}),V.filter((0,a.createSearch)(I,function(M){return M.name+"|"+M.status+"|"+M.antag_name})).sort(function(M,R){var O=P?1:-1;return M[A]===void 0||M[A]===null?O:R[A]===void 0||R[A]===null?-1*O:typeof M[A]=="number"?(M[A]-R[A])*O:M[A].localeCompare(R[A])*O}).map(function(M,R){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:M.body_destroyed?M.name:(0,e.createComponentVNode)(2,o.Button,{color:M.is_hijacker||!M.name?"red":"",tooltip:M.is_hijacker?"Hijacker":"",onClick:function(){function O(){return p("show_player_panel",{mind_uid:M.antag_mind_uid})}return O}(),children:M.name?M.name:"??? (NO NAME)"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:[(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("pm",{ckey:M.ckey})}return O}(),children:"PM"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("follow",{datum_uid:M.antag_mind_uid})}return O}(),children:"FLW"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("obs",{mind_uid:M.antag_mind_uid})}return O}(),children:"OBS"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("tp",{mind_uid:M.antag_mind_uid})}return O}(),children:"TP"})]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:M.antag_name}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:M.status?"red":"grey",children:M.status?M.status:"Alive"})})]},R)})]}):"No Antagonists!"},m=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.objectives,S=(0,t.useLocalState)(h,"searchText",""),I=S[0],L=S[1],w=(0,t.useLocalState)(h,"sortId2","target_name"),A=w[0],x=w[1],E=(0,t.useLocalState)(h,"sortOrder",!0),P=E[0],D=E[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"obj_name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"target_name",children:"Target"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"status",children:"Status"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"owner_name",children:"Owner"})]}),V.filter((0,a.createSearch)(I,function(M){return M.obj_name+"|"+M.target_name+"|"+(M.status?"success":"incompleted")+"|"+M.owner_name})).sort(function(M,R){var O=P?1:-1;return M[A]===void 0||M[A]===null||A==="target_name"&&M.no_target?O:R[A]===void 0||R[A]===null||A==="target_name"&&R.no_target?-1*O:typeof M[A]=="number"?(M[A]-R[A])*O:M[A].localeCompare(R[A])*O}).map(function(M,R){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{tooltip:M.obj_desc,onClick:function(){function O(){return p("vv",{uid:M.obj_uid})}return O}(),children:M.obj_name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:M.no_target?"":M.track.length?M.track.map(function(O,F){return(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function _(){return p("follow",{datum_uid:O})}return _}(),children:[M.target_name," ",M.track.length>1?"("+(parseInt(F,10)+1)+")":""]},F)}):"No "+M.target_name+" Found"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:M.status?"green":"grey",children:M.status?"Success":"Incomplete"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("obj_owner",{owner_uid:M.owner_uid})}return O}(),children:M.owner_name})})]},R)})]}):"No Objectives!"},l=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.security,S=(0,t.useLocalState)(h,"searchText",""),I=S[0],L=S[1],w=(0,t.useLocalState)(h,"sortId3","health"),A=w[0],x=w[1],E=(0,t.useLocalState)(h,"sortOrder",!0),P=E[0],D=E[1],M=function(F){return F.status===2?"red":F.status===1?"orange":F.broken_bone||F.internal_bleeding?"yellow":"grey"},R=function(F){return F.status===2?"Dead":F.status===1?"Unconscious":F.broken_bone&&F.internal_bleeding?"Broken Bone, IB":F.broken_bone?"Broken Bone":F.internal_bleeding?"IB":"Alive"};return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"role",children:"Role"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"status",children:"Status"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"antag",children:"Antag"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"health",children:"Health"})]}),V.filter((0,a.createSearch)(I,function(O){return O.name+"|"+O.role+"|"+R(O)+"|"+O.antag})).sort(function(O,F){var _=P?1:-1;return O[A]===void 0||O[A]===null?_:F[A]===void 0||F[A]===null?-1*_:typeof O[A]=="number"?(O[A]-F[A])*_:O[A].localeCompare(F[A])*_}).map(function(O,F){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function _(){return p("show_player_panel",{mind_uid:O.mind_uid})}return _}(),children:O.name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:O.role}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:M(O),children:R(O)})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:O.antag?(0,e.createComponentVNode)(2,o.Button,{textColor:"red",translucent:!0,onClick:function(){function _(){p("tp",{mind_uid:O.mind_uid})}return _}(),children:O.antag}):""}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.ProgressBar,{minValue:0,value:O.health/O.max_health,maxValue:1,ranges:{good:[.6,1/0],average:[0,.6],bad:[-1/0,0]},children:O.health})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:[(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function _(){p("pm",{ckey:O.ckey})}return _}(),children:"PM"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function _(){p("follow",{datum_uid:O.mind_uid})}return _}(),children:"FLW"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function _(){p("obs",{mind_uid:O.mind_uid})}return _}(),children:"OBS"})]})]},F)})]}):"No Security!"},u=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.high_value_items,S=(0,t.useLocalState)(h,"searchText",""),I=S[0],L=S[1],w=(0,t.useLocalState)(h,"sortId4","person"),A=w[0],x=w[1],E=(0,t.useLocalState)(h,"sortOrder",!0),P=E[0],D=E[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"person",children:"Carrier"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"loc",children:"Location"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"admin_z",children:"On Admin Z-level"})]}),V.filter((0,a.createSearch)(I,function(M){return M.name+"|"+M.loc})).sort(function(M,R){var O=P?1:-1;return M[A]===void 0||M[A]===null?O:R[A]===void 0||R[A]===null?-1*O:typeof M[A]=="number"?(M[A]-R[A])*O:M[A].localeCompare(R[A])*O}).map(function(M,R){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{tooltip:M.obj_desc,translucent:M.admin_z,onClick:function(){function O(){return p("vv",{uid:M.uid})}return O}(),children:M.name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:M.admin_z?"grey":"",children:M.person})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:M.admin_z?"grey":"",children:M.loc})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:"grey",children:M.admin_z?"On Admin Z-level":""})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("follow",{datum_uid:M.uid})}return O}(),children:"FLW"})})]},R)})]}):"No High Value Items!"},s=function(C,h){var v=C.id,p=C.sort_group,N=p===void 0?"sortId":p,V=C.default_sort,S=V===void 0?"antag_name":V,I=C.children,L=(0,t.useLocalState)(h,N,S),w=L[0],A=L[1],x=(0,t.useLocalState)(h,"sortOrder",!0),E=x[0],P=x[1];return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:w!==v&&"transparent",width:"100%",onClick:function(){function D(){w===v?P(!E):(A(v),P(!0))}return D}(),children:[I,w===v&&(0,e.createComponentVNode)(2,o.Icon,{name:E?"sort-up":"sort-down",ml:"0.25rem;"})]})})}},39683:function(T,r,n){"use strict";r.__esModule=!0,r.AgentCardInfo=r.AgentCardAppearances=r.AgentCard=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[{name:"Male",icon:"mars"},{name:"Female",icon:"venus"},{name:"Genderless",icon:"genderless"}],b=["A+","A-","B+","B-","AB+","AB-","O+","O-"],y="Empty",B=function(m){var l=m.label,u=m.value,s=m.onCommit,d=m.onClick,C=m.onRClick,h=m.tooltip;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:l,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button.Input,{fluid:!0,textAlign:"center",content:u||y,onCommit:s})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"file-signature",tooltip:h,tooltipPosition:"bottom-end",onClick:d,onContextMenu:C})})]})})},k=r.AgentCard=function(){function c(m,l){var u=(0,a.useLocalState)(l,"tabIndex",0),s=u[0],d=u[1],C=function(){function h(v){switch(v){case 0:return(0,e.createComponentVNode)(2,g);case 1:return(0,e.createComponentVNode)(2,i);default:return(0,e.createComponentVNode)(2,g)}}return h}();return(0,e.createComponentVNode)(2,o.Window,{width:435,height:500,theme:"syndicate",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:s===0,onClick:function(){function h(){return d(0)}return h}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"table"})," Card Info"]},"Card Info"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:s===1,onClick:function(){function h(){return d(1)}return h}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"id-card"})," Appearance"]},"Appearance")]})}),C(s)]})})})}return c}(),g=r.AgentCardInfo=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.registered_name,h=d.sex,v=d.age,p=d.assignment,N=d.job_icon,V=d.associated_account_number,S=d.blood_type,I=d.dna_hash,L=d.fingerprint_hash,w=d.photo,A=d.ai_tracking,x=d.photo_cooldown,E=(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Autofill options."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("LMB - Autofill your own data."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("RMB - Autofill someone else data.")],4),P=(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Autofill options."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("LMB - Autofill your own data."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("RMB - Autofill with random data.")],4);return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Card Info",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,B,{label:"Name",value:C,tooltip:E,onCommit:function(){function D(M,R){return s("change_name",{name:R})}return D}(),onClick:function(){function D(){return s("change_name",{option:"Primary"})}return D}(),onRClick:function(){function D(M){M.preventDefault(),s("change_name",{option:"Secondary"})}return D}()}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sex",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:f.map(function(D){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:D.icon,content:D.name,selected:h===D.name,onClick:function(){function M(){return s("change_sex",{sex:D.name})}return M}()})},D.name)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Age",children:(0,e.createComponentVNode)(2,t.Slider,{fluid:!0,minValue:17,value:v||0,maxValue:300,onChange:function(){function D(M,R){return s("change_age",{age:R})}return D}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rank",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:function(){function D(){return s("change_occupation")}return D}(),textAlign:"middle",children:p||"[UNSET]"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{tooltip:"Change HUD icon",tooltipPosition:"bottom-end",onClick:function(){function D(){return s("change_occupation",{option:"Primary"})}return D}(),children:[(0,e.createComponentVNode)(2,t.DmIcon,{fill:!0,icon:"icons/mob/hud/job_assets.dmi",icon_state:N,verticalAlign:"bottom",my:"2px",width:"16px"})," "]})})]})}),(0,e.createComponentVNode)(2,B,{label:"Fingerprint",value:L,onCommit:function(){function D(M,R){return s("change_fingerprints",{new_fingerprints:R})}return D}(),onClick:function(){function D(){return s("change_fingerprints",{option:"Primary"})}return D}(),onRClick:function(){function D(M){M.preventDefault(),s("change_fingerprints",{option:"Secondary"})}return D}(),tooltip:P}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood Type",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[b.map(function(D){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:D,selected:S===D,onClick:function(){function M(){return s("change_blood_type",{new_type:D})}return M}()})},D)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file-signature",onClick:function(){function D(){return s("change_blood_type",{option:"Primary"})}return D}()})})]})}),(0,e.createComponentVNode)(2,B,{label:"DNA",value:I,onCommit:function(){function D(M,R){return s("change_dna_hash",{new_dna:R})}return D}(),onClick:function(){function D(){return s("change_dna_hash",{option:"Primary"})}return D}(),onRClick:function(){function D(M){M.preventDefault(),s("change_dna_hash",{option:"Secondary"})}return D}(),tooltip:P}),(0,e.createComponentVNode)(2,B,{label:"Account",value:V||0,onCommit:function(){function D(M,R){return s("change_money_account",{new_account:R})}return D}(),onClick:function(){function D(){return s("change_money_account",{option:"Primary"})}return D}(),onRClick:function(){function D(M){M.preventDefault(),s("change_money_account",{option:"Secondary"})}return D}(),tooltip:P}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Photo",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!x,tooltip:x?"":"You can't generate a new photo yet.",onClick:function(){function D(){return s("change_photo")}return D}(),children:w?"Update":y})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Card Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Card Info",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{fluid:!0,textAlign:"center",content:"Delete Card Info",confirmContent:"Are you sure?",onClick:function(){function D(){return s("delete_info")}return D}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Access",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{fluid:!0,textAlign:"center",content:"Reset Access",confirmContent:"Are you sure?",onClick:function(){function D(){return s("clear_access")}return D}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"AI Tracking",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",onClick:function(){function D(){return s("change_ai_tracking")}return D}(),children:A?"Untrackable":"Trackable"})})]})})})],4)}return c}(),i=r.AgentCardAppearances=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=(0,a.useSharedState)(l,"selectedAppearance",null),h=C[0],v=C[1],p=d.appearances,N=d.id_icon;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Card Appearance",children:p.map(function(V){return(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:N,dmIconState:V,imageSize:64,compact:!0,selected:V===h,tooltip:V,style:{opacity:V===h&&"1"||"0.5"},onClick:function(){function S(){v(V),s("change_appearance",{new_appearance:V})}return S}()},V)})})})}return c}()},56793:function(T,r,n){"use strict";r.__esModule=!0,r.AiAirlock=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},b=r.AiAirlock=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=f[c.power.main]||f[0],l=f[c.power.backup]||f[0],u=f[c.shock]||f[0];return(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Power Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Main",color:m.color,buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:"lightbulb-o",disabled:!c.power.main,content:"Disrupt",onClick:function(){function s(){return i("disrupt-main")}return s}()}),children:[c.power.main?"Online":"Offline"," ",!c.wires.main_power&&"[Wires have been cut!]"||c.power.main_timeleft>0&&"["+c.power.main_timeleft+"s]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Backup",color:l.color,buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:"lightbulb-o",disabled:!c.power.backup,content:"Disrupt",onClick:function(){function s(){return i("disrupt-backup")}return s}()}),children:[c.power.backup?"Online":"Offline"," ",!c.wires.backup_power&&"[Wires have been cut!]"||c.power.backup_timeleft>0&&"["+c.power.backup_timeleft+"s]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Electrify",color:u.color,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{mr:.5,icon:"wrench",disabled:!(c.wires.shock&&c.shock!==2),content:"Restore",onClick:function(){function s(){return i("shock-restore")}return s}()}),(0,e.createComponentVNode)(2,t.Button,{mr:.5,icon:"bolt",disabled:!c.wires.shock,content:"Temporary",onClick:function(){function s(){return i("shock-temp")}return s}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"bolt",disabled:!c.wires.shock||c.shock===0,content:"Permanent",onClick:function(){function s(){return i("shock-perm")}return s}()})],4),children:[c.shock===2?"Safe":"Electrified"," ",!c.wires.shock&&"[Wires have been cut!]"||c.shock_timeleft>0&&"["+c.shock_timeleft+"s]"||c.shock_timeleft===-1&&"[Permanent]"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Access and Door Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.id_scanner?"power-off":"times",content:c.id_scanner?"Enabled":"Disabled",selected:c.id_scanner,disabled:!c.wires.id_scanner,onClick:function(){function s(){return i("idscan-toggle")}return s}()}),children:!c.wires.id_scanner&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Access",buttons:(0,e.createComponentVNode)(2,t.Button,{width:6.5,icon:c.emergency?"power-off":"times",content:c.emergency?"Enabled":"Disabled",selected:c.emergency,onClick:function(){function s(){return i("emergency-toggle")}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:c.locked?"lock":"unlock",content:c.locked?"Lowered":"Raised",selected:c.locked,disabled:!c.wires.bolts,onClick:function(){function s(){return i("bolt-toggle")}return s}()}),children:!c.wires.bolts&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.lights?"power-off":"times",content:c.lights?"Enabled":"Disabled",selected:c.lights,disabled:!c.wires.lights,onClick:function(){function s(){return i("light-toggle")}return s}()}),children:!c.wires.lights&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.safe?"power-off":"times",content:c.safe?"Enabled":"Disabled",selected:c.safe,disabled:!c.wires.safe,onClick:function(){function s(){return i("safe-toggle")}return s}()}),children:!c.wires.safe&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.speed?"power-off":"times",content:c.speed?"Enabled":"Disabled",selected:c.speed,disabled:!c.wires.timing,onClick:function(){function s(){return i("speed-toggle")}return s}()}),children:!c.wires.timing&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:c.opened?"sign-out-alt":"sign-in-alt",content:c.opened?"Open":"Closed",selected:c.opened,disabled:c.locked||c.welded,onClick:function(){function s(){return i("open-close")}return s}()}),children:!!(c.locked||c.welded)&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("[Door is "),c.locked?"bolted":"",c.locked&&c.welded?" and ":"",c.welded?"welded":"",(0,e.createTextVNode)("!]")],0)})]})})]})})}return y}()},72475:function(T,r,n){"use strict";r.__esModule=!0,r.AirAlarm=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(195),b=r.AirAlarm=function(){function u(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.locked;return(0,e.createComponentVNode)(2,o.Window,{width:570,height:p?310:755,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.InterfaceLockNoticeBox),(0,e.createComponentVNode)(2,B),!p&&(0,e.createFragment)([(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g)],4)]})})}return u}(),y=function(s){return s===0?"green":s===1?"orange":"red"},B=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.air,N=v.mode,V=v.atmos_alarm,S=v.locked,I=v.alarmActivated,L=v.rcon,w=v.target_temp,A;return p.danger.overall===0?V===0?A="Optimal":A="Caution: Atmos alert in area":p.danger.overall===1?A="Caution":A="DANGER: Internals Required",(0,e.createComponentVNode)(2,t.Section,{title:"Air Status",children:p?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure",children:(0,e.createComponentVNode)(2,t.Box,{color:y(p.danger.pressure),children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.pressure})," kPa",!S&&(0,e.createFragment)([(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,t.Button,{content:N===3?"Deactivate Panic Siphon":"Activate Panic Siphon",selected:N===3,icon:"exclamation-triangle",onClick:function(){function x(){return h("mode",{mode:N===3?1:3})}return x}()})],4)]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Oxygen",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.oxygen/100,fractionDigits:"1",color:y(p.danger.oxygen)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nitrogen",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.nitrogen/100,fractionDigits:"1",color:y(p.danger.nitrogen)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Carbon Dioxide",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.co2/100,fractionDigits:"1",color:y(p.danger.co2)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Toxins",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.plasma/100,fractionDigits:"1",color:y(p.danger.plasma)})}),p.contents.n2o>.1&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nitrous Oxide",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.n2o/100,fractionDigits:"1",color:y(p.danger.n2o)})}),p.contents.other>.1&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Other",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.other/100,fractionDigits:"1",color:y(p.danger.other)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,t.Box,{color:y(p.danger.temperature),children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.temperature})," K / ",(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.temperature_c})," C\xA0",(0,e.createComponentVNode)(2,t.Button,{icon:"thermometer-full",content:w+" C",onClick:function(){function x(){return h("temperature")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{content:p.thermostat_state?"On":"Off",selected:p.thermostat_state,icon:"power-off",onClick:function(){function x(){return h("thermostat_state")}return x}()})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Local Status",children:(0,e.createComponentVNode)(2,t.Box,{color:y(p.danger.overall),children:[A,!S&&(0,e.createFragment)([(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,t.Button,{content:I?"Reset Alarm":"Activate Alarm",selected:I,onClick:function(){function x(){return h(I?"atmos_reset":"atmos_alarm")}return x}()})],4)]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Remote Control Settings",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Off",selected:L===1,onClick:function(){function x(){return h("set_rcon",{rcon:1})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Auto",selected:L===2,onClick:function(){function x(){return h("set_rcon",{rcon:2})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{content:"On",selected:L===3,onClick:function(){function x(){return h("set_rcon",{rcon:3})}return x}()})]})]}):(0,e.createComponentVNode)(2,t.Box,{children:"Unable to acquire air sample!"})})},k=function(s,d){var C=(0,a.useLocalState)(d,"tabIndex",0),h=C[0],v=C[1];return(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===0,onClick:function(){function p(){return v(0)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"sign-out-alt"})," Vent Control"]},"Vents"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===1,onClick:function(){function p(){return v(1)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"sign-in-alt"})," Scrubber Control"]},"Scrubbers"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===2,onClick:function(){function p(){return v(2)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cog"})," Mode"]},"Mode"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===3,onClick:function(){function p(){return v(3)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"tachometer-alt"})," Thresholds"]},"Thresholds")]})},g=function(s,d){var C=(0,a.useLocalState)(d,"tabIndex",0),h=C[0],v=C[1];switch(h){case 0:return(0,e.createComponentVNode)(2,i);case 1:return(0,e.createComponentVNode)(2,c);case 2:return(0,e.createComponentVNode)(2,m);case 3:return(0,e.createComponentVNode)(2,l);default:return"WE SHOULDN'T BE HERE!"}},i=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.vents;return p.map(function(N){return(0,e.createComponentVNode)(2,t.Section,{title:N.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[(0,e.createComponentVNode)(2,t.Button,{content:N.power?"On":"Off",selected:N.power,icon:"power-off",onClick:function(){function V(){return h("command",{cmd:"power",val:!N.power,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N.direction?"Blowing":"Siphoning",icon:N.direction?"sign-out-alt":"sign-in-alt",onClick:function(){function V(){return h("command",{cmd:"direction",val:!N.direction,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure Checks",children:[(0,e.createComponentVNode)(2,t.Button,{content:"External",selected:N.checks===1,onClick:function(){function V(){return h("command",{cmd:"checks",val:1,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Internal",selected:N.checks===2,onClick:function(){function V(){return h("command",{cmd:"checks",val:2,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"External Pressure Target",children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:N.external})," kPa\xA0",(0,e.createComponentVNode)(2,t.Button,{content:"Set",icon:"cog",onClick:function(){function V(){return h("command",{cmd:"set_external_pressure",id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Reset",icon:"redo-alt",onClick:function(){function V(){return h("command",{cmd:"set_external_pressure",val:101.325,id_tag:N.id_tag})}return V}()})]})]})},N.name)})},c=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.scrubbers;return p.map(function(N){return(0,e.createComponentVNode)(2,t.Section,{title:N.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[(0,e.createComponentVNode)(2,t.Button,{content:N.power?"On":"Off",selected:N.power,icon:"power-off",onClick:function(){function V(){return h("command",{cmd:"power",val:!N.power,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N.scrubbing?"Scrubbing":"Siphoning",icon:N.scrubbing?"filter":"sign-in-alt",onClick:function(){function V(){return h("command",{cmd:"scrubbing",val:!N.scrubbing,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Range",children:(0,e.createComponentVNode)(2,t.Button,{content:N.widenet?"Extended":"Normal",selected:N.widenet,icon:"expand-arrows-alt",onClick:function(){function V(){return h("command",{cmd:"widenet",val:!N.widenet,id_tag:N.id_tag})}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Filtering",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Carbon Dioxide",selected:N.filter_co2,onClick:function(){function V(){return h("command",{cmd:"co2_scrub",val:!N.filter_co2,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Plasma",selected:N.filter_toxins,onClick:function(){function V(){return h("command",{cmd:"tox_scrub",val:!N.filter_toxins,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Nitrous Oxide",selected:N.filter_n2o,onClick:function(){function V(){return h("command",{cmd:"n2o_scrub",val:!N.filter_n2o,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Oxygen",selected:N.filter_o2,onClick:function(){function V(){return h("command",{cmd:"o2_scrub",val:!N.filter_o2,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Nitrogen",selected:N.filter_n2,onClick:function(){function V(){return h("command",{cmd:"n2_scrub",val:!N.filter_n2,id_tag:N.id_tag})}return V}()})]})]})},N.name)})},m=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.modes,N=v.presets,V=v.emagged,S=v.mode,I=v.preset;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"System Mode",children:(0,e.createComponentVNode)(2,t.Table,{children:p.map(function(L){return(!L.emagonly||L.emagonly&&!!V)&&(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",width:1,children:(0,e.createComponentVNode)(2,t.Button,{content:L.name,icon:"cog",selected:L.id===S,onClick:function(){function w(){return h("mode",{mode:L.id})}return w}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.desc})]},L.name)})})}),(0,e.createComponentVNode)(2,t.Section,{title:"System Presets",children:[(0,e.createComponentVNode)(2,t.Box,{italic:!0,children:"After making a selection, the system will automatically cycle in order to remove contaminants."}),(0,e.createComponentVNode)(2,t.Table,{mt:1,children:N.map(function(L){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",width:1,children:(0,e.createComponentVNode)(2,t.Button,{content:L.name,icon:"cog",selected:L.id===I,onClick:function(){function w(){return h("preset",{preset:L.id})}return w}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.desc})]},L.name)})})]})],4)},l=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.thresholds;return(0,e.createComponentVNode)(2,t.Section,{title:"Alarm Thresholds",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"20%",children:"Value"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"red",width:"20%",children:"Danger Min"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"orange",width:"20%",children:"Warning Min"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"orange",width:"20%",children:"Warning Max"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"red",width:"20%",children:"Danger Max"})]}),p.map(function(N){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:N.name}),N.settings.map(function(V){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:V.selected===-1?"Off":V.selected,onClick:function(){function S(){return h("command",{cmd:"set_threshold",env:V.env,var:V.val})}return S}()})},V.val)})]},N.name)})]})})}},12333:function(T,r,n){"use strict";r.__esModule=!0,r.AirlockAccessController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AirlockAccessController=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.exterior_status,m=i.interior_status,l=i.processing,u,s;return c==="open"?u=(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Lock Exterior Door",icon:"exclamation-triangle",disabled:l,onClick:function(){function d(){return g("force_ext")}return d}()}):u=(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:l,onClick:function(){function d(){return g("cycle_ext_door")}return d}()}),m==="open"?s=(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Lock Interior Door",icon:"exclamation-triangle",disabled:l,color:m==="open"?"red":l?"yellow":null,onClick:function(){function d(){return g("force_int")}return d}()}):s=(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Cycle to Interior",icon:"arrow-circle-right",disabled:l,onClick:function(){function d(){return g("cycle_int_door")}return d}()}),(0,e.createComponentVNode)(2,o.Window,{width:330,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Information",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"External Door Status",children:c==="closed"?"Locked":"Open"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Internal Door Status",children:m==="closed"?"Locked":"Open"})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:(0,e.createComponentVNode)(2,t.Box,{children:[u,s]})})]})})}return b}()},28736:function(T,r,n){"use strict";r.__esModule=!0,r.AirlockElectronics=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49148),b=1,y=2,B=4,k=8,g=r.AirlockElectronics=function(){function m(l,u){return(0,e.createComponentVNode)(2,o.Window,{width:450,height:565,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,c)]})})})}return m}(),i=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.unrestricted_dir;return(0,e.createComponentVNode)(2,t.Section,{title:"Access Control",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,mb:1,children:"Unrestricted Access From:"}),(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-left",content:"East",selected:h&B,onClick:function(){function v(){return d("unrestricted_access",{unres_dir:B})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-up",content:"South",selected:h&y,onClick:function(){function v(){return d("unrestricted_access",{unres_dir:y})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-right",content:"West",selected:h&k,onClick:function(){function v(){return d("unrestricted_access",{unres_dir:k})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-down",content:"North",selected:h&b,onClick:function(){function v(){return d("unrestricted_access",{unres_dir:b})}return v}()})})]})]})})},c=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.selected_accesses,v=C.one_access,p=C.regions;return(0,e.createComponentVNode)(2,f.AccessList,{usedByRcd:1,rcdButtons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:v,content:"One",onClick:function(){function N(){return d("set_one_access",{access:"one"})}return N}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!v,content:"All",onClick:function(){function N(){return d("set_one_access",{access:"all"})}return N}()})],4),accesses:p,selectedList:h,accessMod:function(){function N(V){return d("set",{access:V})}return N}(),grantAll:function(){function N(){return d("grant_all")}return N}(),denyAll:function(){function N(){return d("clear_all")}return N}(),grantDep:function(){function N(V){return d("grant_region",{region:V})}return N}(),denyDep:function(){function N(V){return d("deny_region",{region:V})}return N}()})}},47365:function(T,r,n){"use strict";r.__esModule=!0,r.AlertModal=void 0;var e=n(89005),a=n(51057),t=n(72253),o=n(92986),f=n(36036),b=n(98595),y=-1,B=1,k=r.AlertModal=function(){function c(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=d.autofocus,h=d.buttons,v=h===void 0?[]:h,p=d.large_buttons,N=d.message,V=N===void 0?"":N,S=d.timeout,I=d.title,L=(0,t.useLocalState)(l,"selected",0),w=L[0],A=L[1],x=110+(V.length>30?Math.ceil(V.length/4):0)+(V.length&&p?5:0),E=325+(v.length>2?100:0),P=function(){function D(M){w===0&&M===y?A(v.length-1):w===v.length-1&&M===B?A(0):A(w+M)}return D}();return(0,e.createComponentVNode)(2,b.Window,{title:I,height:x,width:E,children:[!!S&&(0,e.createComponentVNode)(2,a.Loader,{value:S}),(0,e.createComponentVNode)(2,b.Window.Content,{onKeyDown:function(){function D(M){var R=window.event?M.which:M.keyCode;R===o.KEY_SPACE||R===o.KEY_ENTER?s("choose",{choice:v[w]}):R===o.KEY_ESCAPE?s("cancel"):R===o.KEY_LEFT?(M.preventDefault(),P(y)):(R===o.KEY_TAB||R===o.KEY_RIGHT)&&(M.preventDefault(),P(B))}return D}(),children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,m:1,children:(0,e.createComponentVNode)(2,f.Box,{color:"label",overflow:"hidden",children:V})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:[!!C&&(0,e.createComponentVNode)(2,f.Autofocus),(0,e.createComponentVNode)(2,g,{selected:w})]})]})})})]})}return c}(),g=function(m,l){var u=(0,t.useBackend)(l),s=u.data,d=s.buttons,C=d===void 0?[]:d,h=s.large_buttons,v=s.swapped_buttons,p=m.selected;return(0,e.createComponentVNode)(2,f.Flex,{fill:!0,align:"center",direction:v?"row":"row-reverse",justify:"space-around",wrap:!0,children:C==null?void 0:C.map(function(N,V){return h&&C.length<3?(0,e.createComponentVNode)(2,f.Flex.Item,{grow:!0,children:(0,e.createComponentVNode)(2,i,{button:N,id:V.toString(),selected:p===V})},V):(0,e.createComponentVNode)(2,f.Flex.Item,{grow:h?1:0,children:(0,e.createComponentVNode)(2,i,{button:N,id:V.toString(),selected:p===V})},V)})})},i=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=d.large_buttons,h=m.button,v=m.selected,p=h.length>7?"100%":7;return(0,e.createComponentVNode)(2,f.Button,{mx:C?1:0,pt:C?.33:0,content:h,fluid:!!C,onClick:function(){function N(){return s("choose",{choice:h})}return N}(),selected:v,textAlign:"center",height:!!C&&2,width:!C&&p})}},71824:function(T,r,n){"use strict";r.__esModule=!0,r.AppearanceChanger=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AppearanceChanger=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.change_race,l=c.species,u=c.specimen,s=c.change_gender,d=c.gender,C=c.change_eye_color,h=c.change_skin_tone,v=c.change_skin_color,p=c.change_runechat_color,N=c.change_head_accessory_color,V=c.change_hair_color,S=c.change_secondary_hair_color,I=c.change_facial_hair_color,L=c.change_secondary_facial_hair_color,w=c.change_head_marking_color,A=c.change_body_marking_color,x=c.change_tail_marking_color,E=c.change_head_accessory,P=c.head_accessory_styles,D=c.head_accessory_style,M=c.change_hair,R=c.hair_styles,O=c.hair_style,F=c.change_hair_gradient,_=c.change_facial_hair,U=c.facial_hair_styles,z=c.facial_hair_style,$=c.change_head_markings,G=c.head_marking_styles,X=c.head_marking_style,J=c.change_body_markings,se=c.body_marking_styles,ie=c.body_marking_style,me=c.change_tail_markings,q=c.tail_marking_styles,re=c.tail_marking_style,ae=c.change_body_accessory,le=c.body_accessory_styles,Z=c.body_accessory_style,ne=c.change_alt_head,te=c.alt_head_styles,fe=c.alt_head_style,pe=!1;return(C||h||v||N||p||V||S||I||L||w||A||x)&&(pe=!0),(0,e.createComponentVNode)(2,o.Window,{width:800,height:450,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Species",children:l.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.specimen,selected:ce.specimen===u,onClick:function(){function Ve(){return i("race",{race:ce.specimen})}return Ve}()},ce.specimen)})}),!!s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gender",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Male",selected:d==="male",onClick:function(){function ce(){return i("gender",{gender:"male"})}return ce}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Female",selected:d==="female",onClick:function(){function ce(){return i("gender",{gender:"female"})}return ce}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Genderless",selected:d==="plural",onClick:function(){function ce(){return i("gender",{gender:"plural"})}return ce}()})]}),!!pe&&(0,e.createComponentVNode)(2,b),!!E&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Head accessory",children:P.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.headaccessorystyle,selected:ce.headaccessorystyle===D,onClick:function(){function Ve(){return i("head_accessory",{head_accessory:ce.headaccessorystyle})}return Ve}()},ce.headaccessorystyle)})}),!!M&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hair",children:R.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.hairstyle,selected:ce.hairstyle===O,onClick:function(){function Ve(){return i("hair",{hair:ce.hairstyle})}return Ve}()},ce.hairstyle)})}),!!F&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hair Gradient",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Change Style",onClick:function(){function ce(){return i("hair_gradient")}return ce}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Offset",onClick:function(){function ce(){return i("hair_gradient_offset")}return ce}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Color",onClick:function(){function ce(){return i("hair_gradient_colour")}return ce}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Alpha",onClick:function(){function ce(){return i("hair_gradient_alpha")}return ce}()})]}),!!_&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Facial hair",children:U.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.facialhairstyle,selected:ce.facialhairstyle===z,onClick:function(){function Ve(){return i("facial_hair",{facial_hair:ce.facialhairstyle})}return Ve}()},ce.facialhairstyle)})}),!!$&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Head markings",children:G.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.headmarkingstyle,selected:ce.headmarkingstyle===X,onClick:function(){function Ve(){return i("head_marking",{head_marking:ce.headmarkingstyle})}return Ve}()},ce.headmarkingstyle)})}),!!J&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Body markings",children:se.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.bodymarkingstyle,selected:ce.bodymarkingstyle===ie,onClick:function(){function Ve(){return i("body_marking",{body_marking:ce.bodymarkingstyle})}return Ve}()},ce.bodymarkingstyle)})}),!!me&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tail markings",children:q.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.tailmarkingstyle,selected:ce.tailmarkingstyle===re,onClick:function(){function Ve(){return i("tail_marking",{tail_marking:ce.tailmarkingstyle})}return Ve}()},ce.tailmarkingstyle)})}),!!ae&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Body accessory",children:le.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.bodyaccessorystyle,selected:ce.bodyaccessorystyle===Z,onClick:function(){function Ve(){return i("body_accessory",{body_accessory:ce.bodyaccessorystyle})}return Ve}()},ce.bodyaccessorystyle)})}),!!ne&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alternate head",children:te.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.altheadstyle,selected:ce.altheadstyle===fe,onClick:function(){function Ve(){return i("alt_head",{alt_head:ce.altheadstyle})}return Ve}()},ce.altheadstyle)})})]})})})}return y}(),b=function(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=[{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_runechat_color",text:"Change runechat color",action:"runechat_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"}];return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Colors",children:m.map(function(l){return!!c[l.key]&&(0,e.createComponentVNode)(2,t.Button,{content:l.text,onClick:function(){function u(){return i(l.action)}return u}()},l.key)})})}},72285:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosAlertConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosAlertConsole=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.priority||[],m=i.minor||[];return(0,e.createComponentVNode)(2,o.Window,{width:350,height:300,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Alarms",children:(0,e.createVNode)(1,"ul",null,[c.length===0&&(0,e.createVNode)(1,"li","color-good","No Priority Alerts",16),c.map(function(l){return(0,e.createVNode)(1,"li","color-bad",l,0,null,l)}),m.length===0&&(0,e.createVNode)(1,"li","color-good","No Minor Alerts",16),m.map(function(l){return(0,e.createVNode)(1,"li","color-average",l,0,null,l)})],0)})})})}return b}()},65805:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(36352),f=n(98595),b=function(c){if(c===0)return(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Good"});if(c===1)return(0,e.createComponentVNode)(2,t.Box,{color:"orange",bold:!0,children:"Warning"});if(c===2)return(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,children:"DANGER"})},y=function(c){if(c===0)return"green";if(c===1)return"orange";if(c===2)return"red"},B=r.AtmosControl=function(){function i(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=(0,a.useLocalState)(m,"tabIndex",0),C=d[0],h=d[1],v=function(){function p(N){switch(N){case 0:return(0,e.createComponentVNode)(2,k);case 1:return(0,e.createComponentVNode)(2,g);default:return"WE SHOULDN'T BE HERE!"}}return p}();return(0,e.createComponentVNode)(2,f.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:C===0,children:(0,e.createComponentVNode)(2,t.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===0,onClick:function(){function p(){return h(0)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"table"})," Data View"]},"DataView"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===1,onClick:function(){function p(){return h(1)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"map-marked-alt"})," Map View"]},"MapView")]}),v(C)]})})})}return i}(),k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.alarms;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Access"})]}),d.map(function(C){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,o.TableCell,{children:C.name}),(0,e.createComponentVNode)(2,o.TableCell,{children:b(C.danger)}),(0,e.createComponentVNode)(2,o.TableCell,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Access",onClick:function(){function h(){return u("open_alarm",{aref:C.ref})}return h}()})})]},C.name)})]})})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.alarms;return(0,e.createComponentVNode)(2,t.Box,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,e.createComponentVNode)(2,t.NanoMap,{children:d.filter(function(C){return C.z===2}).map(function(C){return(0,e.createComponentVNode)(2,t.NanoMap.MarkerIcon,{x:C.x,y:C.y,icon:"circle",tooltip:C.name,color:y(C.danger),onClick:function(){function h(){return u("open_alarm",{aref:C.ref})}return h}()},C.ref)})})})}},87816:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosFilter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosFilter=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.on,m=i.pressure,l=i.max_pressure,u=i.filter_type,s=i.filter_type_list;return(0,e.createComponentVNode)(2,o.Window,{width:380,height:140,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:c?"On":"Off",color:c?null:"red",selected:c,onClick:function(){function d(){return g("power")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:m===0,width:2.2,onClick:function(){function d(){return g("min_pressure")}return d}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:l,value:m,onDrag:function(){function d(C,h){return g("custom_pressure",{pressure:h})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:m===l,width:2.2,onClick:function(){function d(){return g("max_pressure")}return d}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Filter",children:s.map(function(d){return(0,e.createComponentVNode)(2,t.Button,{selected:d.gas_type===u,content:d.label,onClick:function(){function C(){return g("set_filter",{filter:d.gas_type})}return C}()},d.label)})})]})})})})}return b}()},52977:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosMixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosMixer=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.on,l=c.pressure,u=c.max_pressure,s=c.node1_concentration,d=c.node2_concentration;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:165,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:m?"On":"Off",color:m?null:"red",selected:m,onClick:function(){function C(){return i("power")}return C}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:l===0,width:2.2,onClick:function(){function C(){return i("min_pressure")}return C}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:u,value:l,onDrag:function(){function C(h,v){return i("custom_pressure",{pressure:v})}return C}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:l===u,width:2.2,onClick:function(){function C(){return i("max_pressure")}return C}()})]}),(0,e.createComponentVNode)(2,b,{node_name:"Node 1",node_ref:s}),(0,e.createComponentVNode)(2,b,{node_name:"Node 2",node_ref:d})]})})})})}return y}(),b=function(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=B.node_name,l=B.node_ref;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:m,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",width:2.2,disabled:l===0,onClick:function(){function u(){return i("set_node",{node_name:m,concentration:(l-10)/100})}return u}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"%",width:6.1,lineHeight:1.5,stepPixelSize:10,minValue:0,maxValue:100,value:l,onChange:function(){function u(s,d){return i("set_node",{node_name:m,concentration:d/100})}return u}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",width:2.2,disabled:l===100,onClick:function(){function u(){return i("set_node",{node_name:m,concentration:(l+10)/100})}return u}()})]})}},11748:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosPump=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosPump=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.on,m=i.rate,l=i.max_rate,u=i.gas_unit,s=i.step;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:110,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:c?"On":"Off",color:c?null:"red",selected:c,onClick:function(){function d(){return g("power")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:m===0,width:2.2,onClick:function(){function d(){return g("min_rate")}return d}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:u,width:6.1,lineHeight:1.5,step:s,minValue:0,maxValue:l,value:m,onDrag:function(){function d(C,h){return g("custom_rate",{rate:h})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:m===l,width:2.2,onClick:function(){function d(){return g("max_rate")}return d}()})]})]})})})})}return b}()},69321:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosTankControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(44879),f=n(76910),b=n(98595),y=r.AtmosTankControl=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.sensors||{};return(0,e.createComponentVNode)(2,b.Window,{width:400,height:400,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:[Object.keys(l).map(function(u){return(0,e.createComponentVNode)(2,t.Section,{title:u,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[Object.keys(l[u]).indexOf("pressure")>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure",children:[l[u].pressure," kpa"]}):"",Object.keys(l[u]).indexOf("temperature")>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:[l[u].temperature," K"]}):"",["o2","n2","plasma","co2","n2o"].map(function(s){return Object.keys(l[u]).indexOf(s)>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:(0,f.getGasLabel)(s),children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:(0,f.getGasColor)(s),value:l[u][s],minValue:0,maxValue:100,children:(0,o.toFixed)(l[u][s],2)+"%"})},(0,f.getGasLabel)(s)):""})]})},u)}),m.inlet&&Object.keys(m.inlet).length>0?(0,e.createComponentVNode)(2,t.Section,{title:"Inlet Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:(m.inlet.on,"power-off"),content:m.inlet.on?"On":"Off",color:m.inlet.on?null:"red",selected:m.inlet.on,onClick:function(){function u(){return c("toggle_active",{dev:"inlet"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"L/s",width:6.1,lineHeight:1.5,step:1,minValue:0,maxValue:50,value:m.inlet.rate,onDrag:function(){function u(s,d){return c("set_pressure",{dev:"inlet",val:d})}return u}()})})]})}):"",m.outlet&&Object.keys(m.outlet).length>0?(0,e.createComponentVNode)(2,t.Section,{title:"Outlet Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:(m.outlet.on,"power-off"),content:m.outlet.on?"On":"Off",color:m.outlet.on?null:"red",selected:m.outlet.on,onClick:function(){function u(){return c("toggle_active",{dev:"outlet"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:5066,value:m.outlet.rate,onDrag:function(){function u(s,d){return c("set_pressure",{dev:"outlet",val:d})}return u}()})})]})}):""]})})}return B}()},92444:function(T,r,n){"use strict";r.__esModule=!0,r.AugmentMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=r.AugmentMenu=function(){function k(g,i){return(0,e.createComponentVNode)(2,o.Window,{width:700,height:660,theme:"malfunction",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:(0,e.createComponentVNode)(2,y,{context:i})})})})}return k}(),y=function(g){var i=g.context,c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.usable_swarms,s=l.ability_tabs,d=l.known_abilities,C=(0,a.useLocalState)(i,"selectedTab",s[0]),h=C[0],v=C[1],p=(0,a.useLocalState)(i,"searchText",""),N=p[0],V=p[1],S=function(){var E=s.find(function(D){return D.category_name===h.category_name});if(!E)return[];var P=Math.min(E.category_stage,4);return E.abilities.filter(function(D){return D.stage<=P&&(!N||D.name.toLowerCase().includes(N.toLowerCase()))}).sort(function(D,M){return["intruder","destroyer"].includes(h.category_name.toLowerCase())?D.stage-M.stage:0})},I=S(),L=s.find(function(x){return x.category_name===h.category_name}),w=["intruder","destroyer"].includes(h.category_name.toLowerCase()),A=function(E){var P=d.find(function(R){return R.ability_path===E.ability_path}),D=P?P.cost:E.cost,M=P&&P.current_level>0?P.current_level+" / "+P.max_level:"0 / "+E.max_level;return(0,e.createComponentVNode)(2,t.Stack.Item,{direction:"row",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{height:"20px",width:"35px",mb:1,textAlign:"center",content:D,disabled:D>u||P&&P.current_level===P.max_level,tooltip:"Purchase this ability?",onClick:function(){function R(){m("purchase",{ability_path:E.ability_path}),v(h)}return R}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",children:E.name})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"13px",children:E.desc||"Description not available"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Level: ",(0,e.createVNode)(1,"span",null,M,0,{style:{color:"green"}}),w&&E.stage>0&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)(" (Stage: "),E.stage,(0,e.createTextVNode)(")")],0)]}),(0,e.createComponentVNode)(2,t.Stack.Divider)]})})]},E.name)};return(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,style:{marginRight:"10px"},children:[(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Swarms: "),(0,e.createVNode)(1,"span",null,u,0,{style:{color:"green"}})],4),w&&L&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Category Stage: "),(0,e.createVNode)(1,"span",null,Math.min(L.category_stage,4),0,{style:{color:"green"}})],4)]}),(0,e.createVNode)(1,"div","Section__buttons",(0,e.createComponentVNode)(2,t.Input,{width:"200px",placeholder:"Search Abilities",onInput:function(){function x(E,P){return V(P)}return x}(),value:N}),2)],4,{style:{display:"flex",alignItems:"center"}}),children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[s.map(function(x){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h.category_name===x.category_name,onClick:function(){function E(){v(x),V("")}return E}(),children:(0,f.capitalize)(x.category_name)},x.category_name)}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h.category_name==="upgrades",onClick:function(){function x(){return v({category_name:"upgrades"})}return x}(),children:"Upgrades"},"upgrades")]}),h.category_name==="upgrades"?(0,e.createComponentVNode)(2,B,{act:m,abilityTabs:s,knownAbilities:d,usableSwarms:u}):(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:I.map(A)})]})},B=function(g){var i=g.act,c=g.abilityTabs,m=g.knownAbilities,l=g.usableSwarms,u=m.filter(function(d){return d.current_levell,tooltip:"Upgrade this ability?",onClick:function(){function v(){return i("purchase",{ability_path:C.ability_path})}return v}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",children:C.name})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"13px",children:C.upgrade_text}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Level:"," ",(0,e.createVNode)(1,"span",null,C.current_level+" / "+C.max_level,0,{style:{color:"green"}}),h&&h.stage>0&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)(" (Stage: "),h.stage,(0,e.createTextVNode)(")")],0)]}),(0,e.createComponentVNode)(2,t.Stack.Divider)]})})]},C.name)};return(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:u.map(s)})}},59179:function(T,r,n){"use strict";r.__esModule=!0,r.Autolathe=void 0;var e=n(89005),a=n(64795),t=n(88510),o=n(72253),f=n(36036),b=n(98595),y=n(25328),B=function(i,c,m,l){return i.requirements===null?!0:!(i.requirements.metal*l>c||i.requirements.glass*l>m)},k=r.Autolathe=function(){function g(i,c){var m=(0,o.useBackend)(c),l=m.act,u=m.data,s=u.total_amount,d=u.max_amount,C=u.metal_amount,h=u.glass_amount,v=u.busyname,p=u.busyamt,N=u.showhacked,V=u.buildQueue,S=u.buildQueueLen,I=u.recipes,L=u.categories,w=(0,o.useSharedState)(c,"category",0),A=w[0],x=w[1];A===0&&(A="Tools");var E=C.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),P=h.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),D=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),M=(0,o.useSharedState)(c,"search_text",""),R=M[0],O=M[1],F=(0,y.createSearch)(R,function($){return $.name}),_="";S>0&&(_=V.map(function($,G){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,f.Button,{fluid:!0,icon:"times",color:"transparent",content:V[G][0],onClick:function(){function X(){return l("remove_from_queue",{remove_from_queue:V.indexOf($)+1})}return X}()},$)},G)}));var U=(0,a.flow)([(0,t.filter)(function($){return($.category.indexOf(A)>-1||R)&&(u.showhacked||!$.hacked)}),R&&(0,t.filter)(F),(0,t.sortBy)(function($){return $.name.toLowerCase()})])(I),z="Build";return R?z="Results for: '"+R+"':":A&&(z="Build ("+A+")"),(0,e.createComponentVNode)(2,b.Window,{width:750,height:525,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,horizontal:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{width:"70%",children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:z,buttons:(0,e.createComponentVNode)(2,f.Dropdown,{width:"150px",options:L,selected:A,onSelected:function(){function $(G){return x(G)}return $}()}),children:[(0,e.createComponentVNode)(2,f.Input,{fluid:!0,placeholder:"Search for...",onInput:function(){function $(G,X){return O(X)}return $}(),mb:1}),U.map(function($){return(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+$.image,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}}),(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===$.name&&u.busyamt===1,disabled:!B($,u.metal_amount,u.glass_amount,1),onClick:function(){function G(){return l("make",{make:$.uid,multiplier:1})}return G}(),children:(0,y.toTitleCase)($.name)}),$.max_multiplier>=10&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===$.name&&u.busyamt===10,disabled:!B($,u.metal_amount,u.glass_amount,10),onClick:function(){function G(){return l("make",{make:$.uid,multiplier:10})}return G}(),children:"10x"}),$.max_multiplier>=25&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===$.name&&u.busyamt===25,disabled:!B($,u.metal_amount,u.glass_amount,25),onClick:function(){function G(){return l("make",{make:$.uid,multiplier:25})}return G}(),children:"25x"}),$.max_multiplier>25&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===$.name&&u.busyamt===$.max_multiplier,disabled:!B($,u.metal_amount,u.glass_amount,$.max_multiplier),onClick:function(){function G(){return l("make",{make:$.uid,multiplier:$.max_multiplier})}return G}(),children:[$.max_multiplier,"x"]}),$.requirements&&Object.keys($.requirements).map(function(G){return(0,y.toTitleCase)(G)+": "+$.requirements[G]}).join(", ")||(0,e.createComponentVNode)(2,f.Box,{children:"No resources required."})]},$.ref)})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{width:"30%",children:[(0,e.createComponentVNode)(2,f.Section,{title:"Materials",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Metal",children:E}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Glass",children:P}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Total",children:D}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Storage",children:[u.fill_percent,"% Full"]})]})}),(0,e.createComponentVNode)(2,f.Section,{title:"Building",children:(0,e.createComponentVNode)(2,f.Box,{color:v?"green":"",children:v||"Nothing"})}),(0,e.createComponentVNode)(2,f.Section,{title:"Build Queue",height:23.7,children:[_,(0,e.createComponentVNode)(2,f.Button,{mt:.5,fluid:!0,icon:"times",content:"Clear All",color:"red",disabled:!u.buildQueueLen,onClick:function(){function $(){return l("clear_queue")}return $}()})]})]})]})})})}return g}()},5147:function(T,r,n){"use strict";r.__esModule=!0,r.BioChipPad=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.BioChipPad=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.implant,m=i.contains_case,l=i.gps,u=i.tag,s=(0,a.useLocalState)(B,"newTag",u),d=s[0],C=s[1];return(0,e.createComponentVNode)(2,o.Window,{width:410,height:325,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Bio-chip Mini-Computer",buttons:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject Case",icon:"eject",disabled:!m,onClick:function(){function h(){return g("eject_case")}return h}()})}),children:c&&m?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{bold:!0,mb:2,children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+c.image,ml:0,mr:2,style:{"vertical-align":"middle",width:"32px"}}),c.name]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Life",children:c.life}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Notes",children:c.notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Function",children:c.function}),!!l&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tag",children:[(0,e.createComponentVNode)(2,t.Input,{width:"5.5rem",value:u,onEnter:function(){function h(){return g("tag",{newtag:d})}return h}(),onInput:function(){function h(v,p){return C(p)}return h}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:u===d,width:"20px",mb:"0",ml:"0.25rem",onClick:function(){function h(){return g("tag",{newtag:d})}return h}(),children:(0,e.createComponentVNode)(2,t.Icon,{name:"pen"})})]})]})],4):m?(0,e.createComponentVNode)(2,t.Box,{children:"This bio-chip case has no implant!"}):(0,e.createComponentVNode)(2,t.Box,{children:"Please insert a bio-chip casing!"})})})})}return b}()},64273:function(T,r,n){"use strict";r.__esModule=!0,r.Biogenerator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(62411),b=r.Biogenerator=function(){function i(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.config,d=u.container,C=u.processing,h=s.title;return(0,e.createComponentVNode)(2,o.Window,{width:390,height:595,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Operating,{operating:C,name:h}),(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,k),d?(0,e.createComponentVNode)(2,g):(0,e.createComponentVNode)(2,y)]})})})}return i}(),y=function(c,m){return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"silver",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"flask",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),"The biogenerator is missing a container."]})})})},B=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.biomass,C=s.container,h=s.container_curr_reagents,v=s.container_max_reagents;return(0,e.createComponentVNode)(2,t.Section,{title:"Storage",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"20px",color:"silver",children:"Biomass:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"5px",children:d}),(0,e.createComponentVNode)(2,t.Icon,{name:"leaf",size:1.2,color:"#3d8c40"})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"21px",mt:"8px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"10px",color:"silver",children:"Container:"}),C?(0,e.createComponentVNode)(2,t.ProgressBar,{value:h,maxValue:v,children:(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:h+" / "+v+" units"})}):(0,e.createComponentVNode)(2,t.Stack.Item,{children:"None"})]})]})},k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.has_plants,C=s.container;return(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"power-off",disabled:!d,tooltip:d?"":"There are no plants in the biogenerator.",tooltipPosition:"top-start",content:"Activate",onClick:function(){function h(){return u("activate")}return h}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"flask",disabled:!C,tooltip:C?"":"The biogenerator does not have a container.",tooltipPosition:"top",content:"Detach Container",onClick:function(){function h(){return u("detach_container")}return h}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",disabled:!d,tooltip:d?"":"There are no stored plants to eject.",tooltipPosition:"top-end",content:"Eject Plants",onClick:function(){function h(){return u("eject_plants")}return h}()})})]})})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.biomass,C=s.product_list,h=(0,a.useSharedState)(m,"vendAmount",1),v=h[0],p=h[1],N=Object.entries(C).map(function(V,S){var I=Object.entries(V[1]).map(function(L){return L[1]});return(0,e.createComponentVNode)(2,t.Collapsible,{title:V[0],open:!0,children:I.map(function(L){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",ml:"2px",children:L.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"right",width:"20%",children:[L.cost*v,(0,e.createComponentVNode)(2,t.Icon,{ml:"5px",name:"leaf",size:1.2,color:"#3d8c40"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"right",width:"40%",children:(0,e.createComponentVNode)(2,t.Button,{content:"Vend",disabled:d.25?750+400*Math.random():290+150*Math.random(),time:60+150*Math.random(),children:(0,e.createComponentVNode)(2,t.Stack,{mb:"30px",fontsize:"256px",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,color:"red",fontsize:"256px",textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"skull",size:14,mb:"64px"}),(0,e.createVNode)(1,"br"),"E$#OR:& U#KN!WN IN%ERF#R_NCE"]})})})})}return k}(),y=r.BluespaceTap=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.product||[],s=l.desiredMiningPower,d=l.miningPower,C=l.points,h=l.totalPoints,v=l.powerUse,p=l.availablePower,N=l.emagged,V=l.autoShutown,S=l.stabilizers,I=l.stabilizerPower,L=l.stabilizerPriority,w=s>d&&"bad"||"good";return(0,e.createComponentVNode)(2,o.Window,{width:650,height:450,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,t.Collapsible,{title:"Input Management",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Input",children:[(0,e.createComponentVNode)(2,t.Button,{icon:V&&!N?"toggle-on":"toggle-off",content:"Auto shutdown",color:V&&!N?"green":"red",disabled:!!N,tooltip:"Turn auto shutdown on or off",tooltipPosition:"top",onClick:function(){function A(){return m("auto_shutdown")}return A}()}),(0,e.createComponentVNode)(2,t.Button,{icon:S&&!N?"toggle-on":"toggle-off",content:"Stabilizers",color:S&&!N?"green":"red",disabled:!!N,tooltip:"Turn stabilizers on or off",tooltipPosition:"top",onClick:function(){function A(){return m("stabilizers")}return A}()}),(0,e.createComponentVNode)(2,t.Button,{icon:L&&!N?"toggle-on":"toggle-off",content:"Stabilizer priority",color:L&&!N?"green":"red",disabled:!!N,tooltip:"On: Mining power will not exceed what can be stabilized",tooltipPosition:"top",onClick:function(){function A(){return m("stabilizer_priority")}return A}()}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Desired Mining Power",children:(0,f.formatPower)(s)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{labelStyle:{"vertical-align":"top"},label:"Set Desired Mining Power",children:(0,e.createComponentVNode)(2,t.Stack,{width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"step-backward",disabled:s===0||N,tooltip:"Set to 0",tooltipPosition:"bottom",onClick:function(){function A(){return m("set",{set_power:0})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",tooltip:"Decrease by 10 MW",tooltipPosition:"bottom",disabled:s===0||N,onClick:function(){function A(){return m("set",{set_power:s-1e7})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:s===0||N,tooltip:"Decrease by 1 MW",tooltipPosition:"bottom",onClick:function(){function A(){return m("set",{set_power:s-1e6})}return A}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mx:1,children:(0,e.createComponentVNode)(2,t.NumberInput,{disabled:N,minvalue:0,value:s,maxvalue:1/0,step:1,onChange:function(){function A(x,E){return m("set",{set_power:E})}return A}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:N,tooltip:"Increase by one MW",tooltipPosition:"bottom",onClick:function(){function A(){return m("set",{set_power:s+1e6})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:N,tooltip:"Increase by 10MW",tooltipPosition:"bottom",onClick:function(){function A(){return m("set",{set_power:s+1e7})}return A}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Power Use",children:(0,f.formatPower)(v)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mining Power Use",children:(0,f.formatPower)(d)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stabilizer Power Use",children:(0,f.formatPower)(I)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Surplus Power",children:(0,f.formatPower)(p)})]})]})}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Output",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available Points",children:C}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Points",children:h})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{align:"end",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:u.map(function(A){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:A.name,children:(0,e.createComponentVNode)(2,t.Button,{disabled:A.price>=C,onClick:function(){function x(){return m("vend",{target:A.key})}return x}(),content:A.price})},A.key)})})})})]})})]})})})}return k}(),B=r.Alerts=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.product||[],s=l.miningPower,d=l.stabilizerPower,C=l.emagged,h=l.safeLevels,v=l.autoShutown,p=l.stabilizers,N=l.overhead;return(0,e.createFragment)([!v&&!C&&(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Auto shutdown disabled"}),C?(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"All safeties disabled"}):s<=15e6?"":p?s>d+15e6?(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Stabilizers overwhelmed, Instability likely"}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"High Power, engaging stabilizers"}):(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Stabilizers disabled, Instability likely"})],0)}return k}()},33758:function(T,r,n){"use strict";r.__esModule=!0,r.BodyScanner=void 0;var e=n(89005),a=n(44879),t=n(25328),o=n(72253),f=n(36036),b=n(98595),y=[["good","Alive"],["average","Critical"],["bad","DEAD"]],B=[["hasVirus","bad","Viral pathogen detected in blood stream."],["blind","average","Cataracts detected."],["colourblind","average","Photoreceptor abnormalities detected."],["nearsighted","average","Retinal misalignment detected."]],k=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radiation","radLoss"],["Brute","bruteLoss"],["Cellular","cloneLoss"],["Burn","fireLoss"],["Inebriation","drunkenness"]],g={average:[.25,.5],bad:[.5,1/0]},i=function(S,I){for(var L=[],w=0;w0?S.filter(function(I){return!!I}).reduce(function(I,L){return(0,e.createFragment)([I,(0,e.createComponentVNode)(2,f.Box,{children:L},L)],0)},null):null},m=function(S){if(S>100){if(S<300)return"mild infection";if(S<400)return"mild infection+";if(S<500)return"mild infection++";if(S<700)return"acute infection";if(S<800)return"acute infection+";if(S<900)return"acute infection++";if(S>=900)return"septic"}return""},l=r.BodyScanner=function(){function V(S,I){var L=(0,o.useBackend)(I),w=L.data,A=w.occupied,x=w.occupant,E=x===void 0?{}:x,P=A?(0,e.createComponentVNode)(2,u,{occupant:E}):(0,e.createComponentVNode)(2,N);return(0,e.createComponentVNode)(2,b.Window,{width:700,height:600,title:"Body Scanner",children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:P})})}return V}(),u=function(S){var I=S.occupant;return(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,s,{occupant:I}),(0,e.createComponentVNode)(2,d,{occupant:I}),(0,e.createComponentVNode)(2,C,{occupant:I}),(0,e.createComponentVNode)(2,v,{organs:I.extOrgan}),(0,e.createComponentVNode)(2,p,{organs:I.intOrgan})]})},s=function(S,I){var L=(0,o.useBackend)(I),w=L.act,A=L.data,x=A.occupant;return(0,e.createComponentVNode)(2,f.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Button,{icon:"print",onClick:function(){function E(){return w("print_p")}return E}(),children:"Print Report"}),(0,e.createComponentVNode)(2,f.Button,{icon:"user-slash",onClick:function(){function E(){return w("ejectify")}return E}(),children:"Eject"})],4),children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Name",children:x.name}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:x.maxHealth,value:x.health/x.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Status",color:y[x.stat][0],children:y[x.stat][1]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,f.AnimatedNumber,{value:(0,a.round)(x.bodyTempC)}),"\xB0C,\xA0",(0,e.createComponentVNode)(2,f.AnimatedNumber,{value:(0,a.round)(x.bodyTempF)}),"\xB0F"]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Implants",children:x.implant_len?(0,e.createComponentVNode)(2,f.Box,{children:x.implant.map(function(E){return E.name}).join(", ")}):(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"None"})})]})})},d=function(S){var I=S.occupant;return I.hasBorer||I.blind||I.colourblind||I.nearsighted||I.hasVirus?(0,e.createComponentVNode)(2,f.Section,{title:"Abnormalities",children:B.map(function(L,w){if(I[L[0]])return(0,e.createComponentVNode)(2,f.Box,{color:L[1],bold:L[1]==="bad",children:L[2]},L[2])})}):(0,e.createComponentVNode)(2,f.Section,{title:"Abnormalities",children:(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No abnormalities found."})})},C=function(S){var I=S.occupant;return(0,e.createComponentVNode)(2,f.Section,{title:"Damage",children:(0,e.createComponentVNode)(2,f.Table,{children:i(k,function(L,w,A){return(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Table.Row,{color:"label",children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:[L[0],":"]}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:!!w&&w[0]+":"})]}),(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,h,{value:I[L[1]],marginBottom:A100)&&"average"||!!I.status.robotic&&"label",width:"33%",children:(0,t.capitalize)(I.name)}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,f.ProgressBar,{m:-.5,min:"0",max:I.maxHealth,mt:L>0&&"0.5rem",value:I.totalLoss/I.maxHealth,ranges:g,children:(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Tooltip,{content:"Total damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"heartbeat",mr:.5}),(0,a.round)(I.totalLoss)]})}),!!I.bruteLoss&&(0,e.createComponentVNode)(2,f.Tooltip,{content:"Brute damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:[(0,e.createComponentVNode)(2,f.Icon,{name:"bone",mr:.5}),(0,a.round)(I.bruteLoss)]})}),!!I.fireLoss&&(0,e.createComponentVNode)(2,f.Tooltip,{content:"Burn damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"fire",mr:.5}),(0,a.round)(I.fireLoss)]})})]})})}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:L>0&&"calc(0.5rem + 2px)",children:[(0,e.createComponentVNode)(2,f.Box,{color:"average",inline:!0,children:c([!!I.internalBleeding&&"Internal bleeding",!!I.burnWound&&"Critical tissue burns",!!I.lungRuptured&&"Ruptured lung",!!I.status.broken&&I.status.broken,m(I.germ_level),!!I.open&&"Open incision"])}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,children:[c([!!I.status.splinted&&(0,e.createComponentVNode)(2,f.Box,{color:"good",children:"Splinted"}),!!I.status.robotic&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Robotic"}),!!I.status.dead&&(0,e.createComponentVNode)(2,f.Box,{color:"bad",bold:!0,children:"DEAD"})]),c(I.shrapnel.map(function(w){return w.known?w.name:"Unknown object"}))]})]})]},L)})]})})},p=function(S){return S.organs.length===0?(0,e.createComponentVNode)(2,f.Section,{title:"Internal Organs",children:(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"N/A"})}):(0,e.createComponentVNode)(2,f.Section,{title:"Internal Organs",children:(0,e.createComponentVNode)(2,f.Table,{children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:"Damage"}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",children:"Injuries"})]}),S.organs.map(function(I,L){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{color:!!I.dead&&"bad"||I.germ_level>100&&"average"||I.robotic>0&&"label",width:"33%",children:(0,t.capitalize)(I.name)}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:I.maxHealth,value:I.damage/I.maxHealth,mt:L>0&&"0.5rem",ranges:g,children:(0,a.round)(I.damage)})}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:L>0&&"calc(0.5rem + 2px)",children:[(0,e.createComponentVNode)(2,f.Box,{color:"average",inline:!0,children:c([m(I.germ_level)])}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,children:c([I.robotic===1&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Robotic"}),I.robotic===2&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Assisted"}),!!I.dead&&(0,e.createComponentVNode)(2,f.Box,{color:"bad",bold:!0,children:"DEAD"})])})]})]},L)})]})})},N=function(){return(0,e.createComponentVNode)(2,f.Section,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}},67963:function(T,r,n){"use strict";r.__esModule=!0,r.BookBinder=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=n(39473),y=r.BookBinder=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.selectedbook,u=m.book_categories,s=[];return u.map(function(d){return s[d.description]=d.category_id}),(0,e.createComponentVNode)(2,o.Window,{width:600,height:400,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Book Binder",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"print",width:"auto",content:"Print Book",onClick:function(){function d(){return c("print_book")}return d}()}),children:[(0,e.createComponentVNode)(2,t.Box,{ml:10,fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:3,mr:"1rem"}),"Book Binder"]}),(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:"auto",content:l.title,onClick:function(){function d(){return(0,f.modalOpen)(g,"edit_selected_title")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:"auto",content:l.author,onClick:function(){function d(){return(0,f.modalOpen)(g,"edit_selected_author")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"190px",options:u.map(function(d){return d.description}),onSelected:function(){function d(C){return c("toggle_binder_category",{category_id:s[C]})}return d}()})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pen",width:"auto",content:"Edit Summary",onClick:function(){function d(){return(0,f.modalOpen)(g,"edit_selected_summary")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:l.summary})]}),(0,e.createVNode)(1,"br"),u.filter(function(d){return l.categories.includes(d.category_id)}).map(function(d){return(0,e.createComponentVNode)(2,t.Button,{content:d.description,selected:!0,icon:"unlink",onClick:function(){function C(){return c("toggle_binder_category",{category_id:d.category_id})}return C}()},d.category_id)})]})})]})})})]})}return B}()},61925:function(T,r,n){"use strict";r.__esModule=!0,r.BotCall=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(i){var c=[{modes:[0],label:"Idle",color:"green"},{modes:[1,2,3],label:"Arresting",color:"yellow"},{modes:[4,5],label:"Patrolling",color:"average"},{modes:[9],label:"Moving",color:"average"},{modes:[6,11],label:"Responding",color:"green"},{modes:[12],label:"Delivering Cargo",color:"blue"},{modes:[13],label:"Returning Home",color:"blue"},{modes:[7,8,10,14,15,16,17,18,19],label:"Working",color:"blue"}],m=c.find(function(l){return l.modes.includes(i)});return(0,e.createComponentVNode)(2,t.Box,{color:m.color,children:[" ",m.label," "]})},b=r.BotCall=function(){function g(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=(0,a.useLocalState)(c,"tabIndex",0),d=s[0],C=s[1],h={0:"Security",1:"Medibot",2:"Cleanbot",3:"Floorbot",4:"Mule",5:"Honkbot"},v=function(){function p(N){return h[N]?(0,e.createComponentVNode)(2,y,{model:h[N]}):"This should not happen. Report on Paradise Github"}return p}();return(0,e.createComponentVNode)(2,o.Window,{width:700,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:d===0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,textAlign:"center",children:Array.from({length:6}).map(function(p,N){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:d===N,onClick:function(){function V(){return C(N)}return V}(),children:h[N]},N)})})}),v(d)]})})})}return g}(),y=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.bots;return s[i.model]!==void 0?(0,e.createComponentVNode)(2,k,{model:[i.model]}):(0,e.createComponentVNode)(2,B,{model:[i.model]})},B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data;return(0,e.createComponentVNode)(2,t.Stack,{justify:"center",align:"center",fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Box,{bold:1,color:"bad",children:["No ",[i.model]," detected"]})})},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.bots;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Model"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Location"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Interface"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Call"})]}),s[i.model].map(function(d){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.model}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.on?f(d.status):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Off"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.location}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Interface",onClick:function(){function C(){return l("interface",{botref:d.UID})}return C}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Call",onClick:function(){function C(){return l("call",{botref:d.UID})}return C}()})})]},d.UID)})]})})})}},20464:function(T,r,n){"use strict";r.__esModule=!0,r.BotClean=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotClean=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.locked,l=c.noaccess,u=c.maintpanel,s=c.on,d=c.autopatrol,C=c.canhack,h=c.emagged,v=c.remote_disabled,p=c.painame,N=c.cleanblood,V=c.area;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Cleaning Settings",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:N,content:"Clean Blood",disabled:l,onClick:function(){function S(){return i("blood")}return S}()})}),(0,e.createComponentVNode)(2,t.Section,{title:"Misc Settings",children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:V?"Reset Area Selection":"Restrict to Current Area",onClick:function(){function S(){return i("area")}return S}()}),V!==null&&(0,e.createComponentVNode)(2,t.LabeledList,{mb:1,children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Locked Area",children:V})})]}),p&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:p,disabled:l,onClick:function(){function S(){return i("ejectpai")}return S}()})})]})})}return y}()},69479:function(T,r,n){"use strict";r.__esModule=!0,r.BotFloor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotFloor=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.noaccess,l=c.painame,u=c.hullplating,s=c.replace,d=c.eat,C=c.make,h=c.fixfloor,v=c.nag_empty,p=c.magnet,N=c.tiles_amount;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:510,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Floor Settings",children:[(0,e.createComponentVNode)(2,t.Box,{mb:"5px",children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tiles Left",children:N})}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:u,content:"Add tiles to new hull plating",tooltip:"Fixing a plating requires the removal of floor tile. This will place it back after repairing. Same goes for hull breaches",disabled:m,onClick:function(){function V(){return i("autotile")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:s,content:"Add floor tiles on exposed hull plating",tooltip:"Example: It will add tiles to maintenance",disabled:m,onClick:function(){function V(){return i("replacetiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:h,content:"Repair damaged tiles and platings",disabled:m,onClick:function(){function V(){return i("fixfloors")}return V}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Miscellaneous",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:d,content:"Finds tiles",disabled:m,onClick:function(){function V(){return i("eattiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:C,content:"Make pieces of metal into tiles when empty",disabled:m,onClick:function(){function V(){return i("maketiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:v,content:"Transmit notice when empty",disabled:m,onClick:function(){function V(){return i("nagonempty")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:p,content:"Traction Magnets",disabled:m,onClick:function(){function V(){return i("anchored")}return V}()})]}),l&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,icon:"eject",content:l,disabled:m,onClick:function(){function V(){return i("ejectpai")}return V}()})})]})})}return y}()},59887:function(T,r,n){"use strict";r.__esModule=!0,r.BotHonk=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotHonk=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:220,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.BotStatus)})})}return y}()},80063:function(T,r,n){"use strict";r.__esModule=!0,r.BotMed=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotMed=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.locked,l=c.noaccess,u=c.maintpanel,s=c.on,d=c.autopatrol,C=c.canhack,h=c.emagged,v=c.remote_disabled,p=c.painame,N=c.shut_up,V=c.declare_crit,S=c.stationary_mode,I=c.heal_threshold,L=c.injection_amount,w=c.use_beaker,A=c.treat_virus,x=c.reagent_glass;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Communication Settings",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Speaker",checked:!N,disabled:l,onClick:function(){function E(){return i("toggle_speaker")}return E}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Critical Patient Alerts",checked:V,disabled:l,onClick:function(){function E(){return i("toggle_critical_alerts")}return E}()})]}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Treatment Settings",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Healing Threshold",children:(0,e.createComponentVNode)(2,t.Slider,{value:I.value,minValue:I.min,maxValue:I.max,step:5,disabled:l,onChange:function(){function E(P,D){return i("set_heal_threshold",{target:D})}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Injection Level",children:(0,e.createComponentVNode)(2,t.Slider,{value:L.value,minValue:L.min,maxValue:L.max,step:5,format:function(){function E(P){return P+"u"}return E}(),disabled:l,onChange:function(){function E(P,D){return i("set_injection_amount",{target:D})}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reagent Source",children:(0,e.createComponentVNode)(2,t.Button,{content:w?"Beaker":"Internal Synthesizer",icon:w?"flask":"cogs",disabled:l,onClick:function(){function E(){return i("toggle_use_beaker")}return E}()})}),x&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:x.amount,minValue:0,maxValue:x.max_amount,children:[x.amount," / ",x.max_amount]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{ml:1,children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject",disabled:l,onClick:function(){function E(){return i("eject_reagent_glass")}return E}()})})]})})]}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{mt:1,fluid:!0,content:"Treat Viral Infections",checked:A,disabled:l,onClick:function(){function E(){return i("toggle_treat_viral")}return E}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Stationary Mode",checked:S,disabled:l,onClick:function(){function E(){return i("toggle_stationary_mode")}return E}()})]}),p&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:p,disabled:l,onClick:function(){function E(){return i("ejectpai")}return E}()})})]})})})}return y}()},74439:function(T,r,n){"use strict";r.__esModule=!0,r.BotSecurity=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotSecurity=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.noaccess,l=c.painame,u=c.check_id,s=c.check_weapons,d=c.check_warrant,C=c.arrest_mode,h=c.arrest_declare;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:445,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Who To Arrest",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:u,content:"Unidentifiable Persons",disabled:m,onClick:function(){function v(){return i("authid")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:s,content:"Unauthorized Weapons",disabled:m,onClick:function(){function v(){return i("authweapon")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:d,content:"Wanted Criminals",disabled:m,onClick:function(){function v(){return i("authwarrant")}return v}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Arrest Procedure",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:C,content:"Detain Targets Indefinitely",disabled:m,onClick:function(){function v(){return i("arrtype")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:h,content:"Announce Arrests On Radio",disabled:m,onClick:function(){function v(){return i("arrdeclare")}return v}()})]}),l&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:l,disabled:m,onClick:function(){function v(){return i("ejectpai")}return v}()})})]})})}return y}()},10833:function(T,r,n){"use strict";r.__esModule=!0,r.BrigCells=void 0;var e=n(89005),a=n(98595),t=n(36036),o=n(72253),f=function(k,g){var i=k.cell,c=(0,o.useBackend)(g),m=c.act,l=i.cell_id,u=i.occupant,s=i.crimes,d=i.brigged_by,C=i.time_left_seconds,h=i.time_set_seconds,v=i.ref,p="";C>0&&(p+=" BrigCells__listRow--active");var N=function(){m("release",{ref:v})};return(0,e.createComponentVNode)(2,t.Table.Row,{className:p,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:l}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.TimeDisplay,{totalSeconds:h})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.TimeDisplay,{totalSeconds:C})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{type:"button",onClick:N,children:"Release"})})]})},b=function(k){var g=k.cells;return(0,e.createComponentVNode)(2,t.Table,{className:"BrigCells__list",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Cell"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Occupant"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Crimes"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Brigged By"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Time Brigged For"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Time Left"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Release"})]}),g.map(function(i){return(0,e.createComponentVNode)(2,f,{cell:i},i.ref)})]})},y=r.BrigCells=function(){function B(k,g){var i=(0,o.useBackend)(g),c=i.act,m=i.data,l=m.cells;return(0,e.createComponentVNode)(2,a.Window,{theme:"security",width:800,height:400,children:(0,e.createComponentVNode)(2,a.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b,{cells:l})})})})})}return B}()},45761:function(T,r,n){"use strict";r.__esModule=!0,r.BrigTimer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.BrigTimer=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;i.nameText=i.occupant,i.timing&&(i.prisoner_hasrec?i.nameText=(0,e.createComponentVNode)(2,t.Box,{color:"green",children:i.occupant}):i.nameText=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:i.occupant}));var c="pencil-alt";i.prisoner_name&&(i.prisoner_hasrec||(c="exclamation-triangle"));var m=[],l=0;for(l=0;lm?this.substring(0,m)+"...":this};var k=function(l,u){var s,d;if(!u)return[];var C=l.findIndex(function(h){return h.name===u.name});return[(s=l[C-1])==null?void 0:s.name,(d=l[C+1])==null?void 0:d.name]},g=function(l,u){u===void 0&&(u="");var s=(0,f.createSearch)(u,function(d){return d.name});return(0,t.flow)([(0,a.filter)(function(d){return d==null?void 0:d.name}),u&&(0,a.filter)(s),(0,a.sortBy)(function(d){return d.name})])(l)},i=r.CameraConsole=function(){function m(l,u){var s=(0,b.useBackend)(u),d=s.act,C=s.data,h=s.config,v=C.mapRef,p=C.activeCamera,N=g(C.cameras),V=k(N,p),S=V[0],I=V[1];return(0,e.createComponentVNode)(2,B.Window,{width:870,height:708,children:[(0,e.createVNode)(1,"div","CameraConsole__left",(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,y.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,c)})}),2),(0,e.createVNode)(1,"div","CameraConsole__right",[(0,e.createVNode)(1,"div","CameraConsole__toolbar",[(0,e.createVNode)(1,"b",null,"Camera: ",16),p&&p.name||"\u2014"],0),(0,e.createVNode)(1,"div","CameraConsole__toolbarRight",[(0,e.createComponentVNode)(2,y.Button,{icon:"chevron-left",disabled:!S,onClick:function(){function L(){return d("switch_camera",{name:S})}return L}()}),(0,e.createComponentVNode)(2,y.Button,{icon:"chevron-right",disabled:!I,onClick:function(){function L(){return d("switch_camera",{name:I})}return L}()})],4),(0,e.createComponentVNode)(2,y.ByondUi,{className:"CameraConsole__map",params:{id:v,type:"map"}})],4)]})}return m}(),c=r.CameraConsoleContent=function(){function m(l,u){var s=(0,b.useBackend)(u),d=s.act,C=s.data,h=(0,b.useLocalState)(u,"searchText",""),v=h[0],p=h[1],N=C.activeCamera,V=g(C.cameras,v);return(0,e.createComponentVNode)(2,y.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,y.Stack.Item,{children:(0,e.createComponentVNode)(2,y.Input,{fluid:!0,placeholder:"Search for a camera",onInput:function(){function S(I,L){return p(L)}return S}()})}),(0,e.createComponentVNode)(2,y.Stack.Item,{grow:!0,m:0,children:(0,e.createComponentVNode)(2,y.Section,{fill:!0,scrollable:!0,children:V.map(function(S){return(0,e.createVNode)(1,"div",(0,o.classes)(["Button","Button--fluid","Button--color--transparent",N&&S.name===N.name&&"Button--selected"]),S.name.trimLongStr(23),0,{title:S.name,onClick:function(){function I(){return d("switch_camera",{name:S.name})}return I}()},S.name)})})})]})}return m}()},52927:function(T,r,n){"use strict";r.__esModule=!0,r.Canister=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(49968),b=n(98595),y=r.Canister=function(){function B(k,g){var i=(0,t.useBackend)(g),c=i.act,m=i.data,l=m.portConnected,u=m.tankPressure,s=m.releasePressure,d=m.defaultReleasePressure,C=m.minReleasePressure,h=m.maxReleasePressure,v=m.valveOpen,p=m.name,N=m.canLabel,V=m.colorContainer,S=m.color_index,I=m.hasHoldingTank,L=m.holdingTank,w="";S.prim&&(w=V.prim.options[S.prim].name);var A="";S.sec&&(A=V.sec.options[S.sec].name);var x="";S.ter&&(x=V.ter.options[S.ter].name);var E="";S.quart&&(E=V.quart.options[S.quart].name);var P=[],D=[],M=[],R=[],O=0;for(O=0;Op.current_positions&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:p.total_positions-p.current_positions})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"0"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{content:"-",disabled:d.cooldown_time||!p.can_close,onClick:function(){function N(){return s("make_job_unavailable",{job:p.title})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{content:"+",disabled:d.cooldown_time||!p.can_open,onClick:function(){function N(){return s("make_job_available",{job:p.title})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:d.target_dept&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:d.priority_jobs.indexOf(p.title)>-1?"Yes":""})||(0,e.createComponentVNode)(2,t.Button,{content:p.is_priority?"Yes":"No",selected:p.is_priority,disabled:d.cooldown_time||!p.can_prioritize,onClick:function(){function N(){return s("prioritize_job",{job:p.title})}return N}()})})]},p.title)})]})})]}):v=(0,e.createComponentVNode)(2,B);break;case 2:!d.authenticated||!d.scan_name?v=(0,e.createComponentVNode)(2,B):d.modify_name?v=(0,e.createComponentVNode)(2,f.AccessList,{accesses:d.regions,selectedList:d.selectedAccess,accessMod:function(){function p(N){return s("set",{access:N})}return p}(),grantAll:function(){function p(){return s("grant_all")}return p}(),denyAll:function(){function p(){return s("clear_all")}return p}(),grantDep:function(){function p(N){return s("grant_region",{region:N})}return p}(),denyDep:function(){function p(N){return s("deny_region",{region:N})}return p}()}):v=(0,e.createComponentVNode)(2,k);break;case 3:d.authenticated?d.records.length?v=(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Records",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Delete All Records",disabled:!d.authenticated||d.records.length===0||d.target_dept,onClick:function(){function p(){return s("wipe_all_logs")}return p}()}),children:[(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Crewman"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Old Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"New Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Authorized By"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Time"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Reason"}),!!d.iscentcom&&(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Deleted By"})]}),d.records.map(function(p){return(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.transferee}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.oldvalue}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.newvalue}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.whodidit}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.timestamp}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.reason}),!!d.iscentcom&&(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.deletedby})]},p.timestamp)})]}),!!d.iscentcom&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:"Delete MY Records",color:"purple",disabled:!d.authenticated||d.records.length===0,onClick:function(){function p(){return s("wipe_my_logs")}return p}()})})]}):v=(0,e.createComponentVNode)(2,g):v=(0,e.createComponentVNode)(2,B);break;case 4:!d.authenticated||!d.scan_name?v=(0,e.createComponentVNode)(2,B):v=(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Your Team",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Sec Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Actions"})]}),d.people_dept.map(function(p){return(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.title}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.crimstat}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:p.buttontext,disabled:!p.demotable,onClick:function(){function N(){return s("remote_demote",{remote_demote:p.name})}return N}()})})]},p.title)})]})});break;default:v=(0,e.createComponentVNode)(2,t.Section,{title:"Warning",color:"red",children:"ERROR: Unknown Mode."})}return(0,e.createComponentVNode)(2,o.Window,{width:800,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:h}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:C}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:v})]})})})}return c}()},64083:function(T,r,n){"use strict";r.__esModule=!0,r.CargoConsole=void 0;var e=n(89005),a=n(64795),t=n(88510),o=n(72253),f=n(36036),b=n(98595),y=n(25328),B=r.CargoConsole=function(){function u(s,d){return(0,e.createComponentVNode)(2,b.Window,{width:900,height:800,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,l)]})})})}return u}(),k=function(s,d){var C=(0,o.useLocalState)(d,"contentsModal",null),h=C[0],v=C[1],p=(0,o.useLocalState)(d,"contentsModalTitle",null),N=p[0],V=p[1];if(h!==null&&N!==null)return(0,e.createComponentVNode)(2,f.Modal,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:window.innerHeight*.75+"px",mx:"auto",children:[(0,e.createComponentVNode)(2,f.Box,{width:"100%",bold:!0,children:(0,e.createVNode)(1,"h1",null,[N,(0,e.createTextVNode)(" contents:")],0)}),(0,e.createComponentVNode)(2,f.Box,{children:h.map(function(S){return(0,e.createComponentVNode)(2,f.Box,{children:["- ",S]},S)})}),(0,e.createComponentVNode)(2,f.Box,{m:2,children:(0,e.createComponentVNode)(2,f.Button,{content:"Close",onClick:function(){function S(){v(null),V(null)}return S}()})})]})},g=function(s,d){var C=(0,o.useBackend)(d),h=C.act,v=C.data,p=v.is_public,N=v.timeleft,V=v.moving,S=v.at_station,I,L;return!V&&!S?(I="Docked off-station",L="Call Shuttle"):!V&&S?(I="Docked at the station",L="Return Shuttle"):V&&(L="In Transit...",N!==1?I="Shuttle is en route (ETA: "+N+" minutes)":I="Shuttle is en route (ETA: "+N+" minute)"),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Status",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Shuttle Status",children:I}),p===0&&(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Controls",children:[(0,e.createComponentVNode)(2,f.Button,{content:L,disabled:V,onClick:function(){function w(){return h("moveShuttle")}return w}()}),(0,e.createComponentVNode)(2,f.Button,{content:"View Central Command Messages",onClick:function(){function w(){return h("showMessages")}return w}()})]})]})})})},i=function(s,d){var C,h=(0,o.useBackend)(d),v=h.act,p=h.data,N=p.accounts,V=(0,o.useLocalState)(d,"selectedAccount"),S=V[0],I=V[1],L=[];return N.map(function(w){return L[w.name]=w.account_UID}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Payment",children:[(0,e.createComponentVNode)(2,f.Dropdown,{width:"190px",options:N.map(function(w){return w.name}),selected:(C=N.filter(function(w){return w.account_UID===S})[0])==null?void 0:C.name,onSelected:function(){function w(A){return I(L[A])}return w}()}),N.filter(function(w){return w.account_UID===S}).map(function(w){return(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Account Name",children:(0,e.createComponentVNode)(2,f.Stack.Item,{mt:1,children:w.name})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Balance",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:w.balance})})]},w.account_UID)})]})})},c=function(s,d){var C=(0,o.useBackend)(d),h=C.act,v=C.data,p=v.requests,N=v.categories,V=v.supply_packs,S=(0,o.useSharedState)(d,"category","Emergency"),I=S[0],L=S[1],w=(0,o.useSharedState)(d,"search_text",""),A=w[0],x=w[1],E=(0,o.useLocalState)(d,"contentsModal",null),P=E[0],D=E[1],M=(0,o.useLocalState)(d,"contentsModalTitle",null),R=M[0],O=M[1],F=(0,y.createSearch)(A,function(X){return X.name}),_=(0,o.useLocalState)(d,"selectedAccount"),U=_[0],z=_[1],$=(0,a.flow)([(0,t.filter)(function(X){return X.cat===N.filter(function(J){return J.name===I})[0].category||A}),A&&(0,t.filter)(F),(0,t.sortBy)(function(X){return X.name.toLowerCase()})])(V),G="Crate Catalogue";return A?G="Results for '"+A+"':":I&&(G="Browsing "+I),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:G,buttons:(0,e.createComponentVNode)(2,f.Dropdown,{width:"190px",options:N.map(function(X){return X.name}),selected:I,onSelected:function(){function X(J){return L(J)}return X}()}),children:[(0,e.createComponentVNode)(2,f.Input,{fluid:!0,placeholder:"Search for...",onInput:function(){function X(J,se){return x(se)}return X}(),mb:1}),(0,e.createComponentVNode)(2,f.Box,{maxHeight:25,overflowY:"auto",overflowX:"hidden",children:(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:$.map(function(X){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{bold:!0,children:[X.name," (",X.cost," Credits)"]}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",pr:1,children:[(0,e.createComponentVNode)(2,f.Button,{content:"Order 1",icon:"shopping-cart",disabled:!U,onClick:function(){function J(){return h("order",{crate:X.ref,multiple:!1,account:U})}return J}()}),(0,e.createComponentVNode)(2,f.Button,{content:"Order Multiple",icon:"cart-plus",disabled:!U||X.singleton,onClick:function(){function J(){return h("order",{crate:X.ref,multiple:!0,account:U})}return J}()}),(0,e.createComponentVNode)(2,f.Button,{content:"View Contents",icon:"search",onClick:function(){function J(){D(X.contents),O(X.name)}return J}()})]})]},X.name)})})})]})})},m=function(s,d){var C=s.request,h,v;switch(C.department){case"Engineering":v="CE",h="orange";break;case"Medical":v="CMO",h="teal";break;case"Science":v="RD",h="purple";break;case"Supply":v="CT",h="brown";break;case"Service":v="HOP",h="olive";break;case"Security":v="HOS",h="red";break;case"Command":v="CAP",h="blue";break;case"Assistant":v="Any Head",h="grey";break}return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{mt:.5,children:"Approval Required:"}),!!C.req_cargo_approval&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"brown",content:"QM",icon:"user-tie",tooltip:"This Order requires approval from the QM still"})}),!!C.req_head_approval&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:h,content:v,disabled:C.req_cargo_approval,icon:"user-tie",tooltip:C.req_cargo_approval?"This Order first requires approval from the QM before the "+v+" can approve it":"This Order requires approval from the "+v+" still"})})]})},l=function(s,d){var C=(0,o.useBackend)(d),h=C.act,v=C.data,p=v.requests,N=v.orders,V=v.shipments;return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:"Orders",children:[(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Requests"}),(0,e.createComponentVNode)(2,f.Table,{children:p.map(function(S){return(0,e.createComponentVNode)(2,f.Table.Row,{className:"Cargo_RequestList",children:[(0,e.createComponentVNode)(2,f.Table.Cell,{mb:1,children:[(0,e.createComponentVNode)(2,f.Box,{children:["Order #",S.ordernum,": ",S.supply_type," (",S.cost," credits) for ",(0,e.createVNode)(1,"b",null,S.orderedby,0)," with"," ",S.department?"The "+S.department+" Department":"Their Personal"," Account"]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",S.comment]}),(0,e.createComponentVNode)(2,m,{request:S})]}),(0,e.createComponentVNode)(2,f.Stack.Item,{textAlign:"right",children:[(0,e.createComponentVNode)(2,f.Button,{content:"Approve",color:"green",disabled:!S.can_approve,onClick:function(){function I(){return h("approve",{ordernum:S.ordernum})}return I}()}),(0,e.createComponentVNode)(2,f.Button,{content:"Deny",color:"red",disabled:!S.can_deny,onClick:function(){function I(){return h("deny",{ordernum:S.ordernum})}return I}()})]})]},S.ordernum)})}),(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Orders Awaiting Delivery"}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:N.map(function(S){return(0,e.createComponentVNode)(2,f.Table.Row,{children:(0,e.createComponentVNode)(2,f.Table.Cell,{children:[(0,e.createComponentVNode)(2,f.Box,{children:["- #",S.ordernum,": ",S.supply_type," for ",(0,e.createVNode)(1,"b",null,S.orderedby,0)]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",S.comment]})]})},S.ordernum)})}),(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Order in Transit"}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:V.map(function(S){return(0,e.createComponentVNode)(2,f.Table.Row,{children:(0,e.createComponentVNode)(2,f.Table.Cell,{children:[(0,e.createComponentVNode)(2,f.Box,{children:["- #",S.ordernum,": ",S.supply_type," for ",(0,e.createVNode)(1,"b",null,S.orderedby,0)]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",S.comment]})]})},S.ordernum)})})]})}},36232:function(T,r,n){"use strict";r.__esModule=!0,r.ChameleonAppearances=r.Chameleon=void 0;var e=n(89005),a=n(25328),t=n(64795),o=n(88510),f=n(72253),b=n(36036),y=n(98595),B=r.Chameleon=function(){function i(c,m){return(0,e.createComponentVNode)(2,y.Window,{width:431,height:500,theme:"syndicate",children:(0,e.createComponentVNode)(2,y.Window.Content,{children:(0,e.createComponentVNode)(2,g)})})}return i}(),k=function(c,m){m===void 0&&(m="");var l=(0,a.createSearch)(m,function(u){return u.name});return(0,t.flow)([(0,o.filter)(function(u){return u==null?void 0:u.name}),m&&(0,o.filter)(l)])(c)},g=r.ChameleonAppearances=function(){function i(c,m){var l=(0,f.useBackend)(m),u=l.act,s=l.data,d=(0,f.useLocalState)(m,"searchText",""),C=d[0],h=d[1],v=k(s.chameleon_skins,C),p=s.selected_appearance;return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Input,{fluid:!0,placeholder:"Search for an appearance",onInput:function(){function N(V,S){return h(S)}return N}()})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Item Appearance",children:v.map(function(N){var V=N.name+"_"+N.icon_state;return(0,e.createComponentVNode)(2,b.ImageButton,{dmIcon:N.icon,dmIconState:N.icon_state,imageSize:64,m:.5,compact:!0,selected:V===p,tooltip:N.name,style:{opacity:V===p&&"1"||"0.5"},onClick:function(){function S(){u("change_appearance",{new_appearance:V})}return S}()},V)})})})]})}return i}()},87331:function(T,r,n){"use strict";r.__esModule=!0,r.ChangelogView=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ChangelogView=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=(0,a.useLocalState)(B,"onlyRecent",0),m=c[0],l=c[1],u=i.cl_data,s=i.last_cl,d={FIX:(0,e.createComponentVNode)(2,t.Icon,{name:"tools",title:"Fix"}),WIP:(0,e.createComponentVNode)(2,t.Icon,{name:"hard-hat",title:"WIP",color:"orange"}),TWEAK:(0,e.createComponentVNode)(2,t.Icon,{name:"sliders-h",title:"Tweak"}),SOUNDADD:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-up",title:"Sound Added",color:"green"}),SOUNDDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-mute",title:"Sound Removed",color:"red"}),CODEADD:(0,e.createComponentVNode)(2,t.Icon,{name:"plus",title:"Code Addition",color:"green"}),CODEDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"minus",title:"Code Removal",color:"red"}),IMAGEADD:(0,e.createComponentVNode)(2,t.Icon,{name:"folder-plus",title:"Sprite Addition",color:"green"}),IMAGEDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"folder-minus",title:"Sprite Removal",color:"red"}),SPELLCHECK:(0,e.createComponentVNode)(2,t.Icon,{name:"font",title:"Spelling/Grammar Fix"}),EXPERIMENT:(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle",title:"Experimental",color:"orange"})},C=function(){function h(v){return v in d?d[v]:(0,e.createComponentVNode)(2,t.Icon,{name:"plus",color:"green"})}return h}();return(0,e.createComponentVNode)(2,o.Window,{width:750,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"ParadiseSS13 Changelog",mt:2,buttons:(0,e.createComponentVNode)(2,t.Button,{content:m?"Showing all changes":"Showing changes since last connection",onClick:function(){function h(){return l(!m)}return h}()}),children:u.map(function(h){return!m&&h.merge_ts<=s||(0,e.createComponentVNode)(2,t.Section,{mb:2,title:h.author+" - Merged on "+h.merge_date,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"#"+h.num,onClick:function(){function v(){return g("open_pr",{pr_number:h.num})}return v}()}),children:h.entries.map(function(v){return(0,e.createComponentVNode)(2,t.Box,{m:1,children:[C(v.etype)," ",v.etext]},v)})},h)})})})})}return b}()},91360:function(T,r,n){"use strict";r.__esModule=!0,r.CheckboxListInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(36036),f=n(72253),b=n(98595),y=r.CheckboxListInputModal=function(){function k(g,i){var c=(0,f.useBackend)(i),m=c.act,l=c.data,u=l.items,s=u===void 0?[]:u,d=l.message,C=d===void 0?"":d,h=l.init_value,v=l.timeout,p=l.title,N=(0,f.useLocalState)(i,"edittedItems",s),V=N[0],S=N[1],I=330+Math.ceil(C.length/3),L=function(){function w(A){A===void 0&&(A=null);var x=[].concat(V);x=x.map(function(E){return E.key===A.key?Object.assign({},E,{checked:!A.checked}):E}),S(x)}return w}();return(0,e.createComponentVNode)(2,b.Window,{title:p,width:325,height:I,children:[v&&(0,e.createComponentVNode)(2,a.Loader,{value:v}),(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{className:"ListInput__Section",fill:!0,title:C,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,B,{filteredItems:V,onClick:L})}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,children:(0,e.createComponentVNode)(2,t.InputButtons,{input:V})})]})})})]})}return k}(),B=function(g,i){var c=g.filteredItems,m=g.onClick;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,tabIndex:0,children:c.map(function(l,u){return(0,e.createComponentVNode)(2,o.Button.Checkbox,{fluid:!0,id:u,onClick:function(){function s(){return m(l)}return s}(),checked:l.checked,style:{animation:"none",transition:"none"},children:l.key.replace(/^\w/,function(s){return s.toUpperCase()})},u)})})}},36108:function(T,r,n){"use strict";r.__esModule=!0,r.ChemDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(85870),f=n(98595),b=[1,5,10,20,30,50],y=[1,5,10],B=r.ChemDispenser=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.chemicals;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:400+C.length*8,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,i)]})})})}return c}(),k=function(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.amount,h=d.energy,v=d.maxEnergy;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:h,minValue:0,maxValue:v,ranges:{good:[v*.5,1/0],average:[v*.25,v*.5],bad:[-1/0,v*.25]},children:[h," / ",v," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dispense",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{children:b.map(function(p,N){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"15%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"cog",selected:C===p,content:p,onClick:function(){function V(){return s("amount",{amount:p})}return V}()})},N)})})})]})})})},g=function(m,l){for(var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.chemicals,h=C===void 0?[]:C,v=[],p=0;p<(h.length+1)%3;p++)v.push(!0);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:d.glass?"Drink Dispenser":"Chemical Dispenser",children:[h.map(function(N,V){return(0,e.createComponentVNode)(2,t.Button,{m:.1,width:"32.5%",icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",content:N.title,style:{"margin-left":"2px"},onClick:function(){function S(){return s("dispense",{reagent:N.id})}return S}()},V)}),v.map(function(N,V){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%"},V)})]})})},i=function(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.isBeakerLoaded,h=d.beakerCurrentVolume,v=d.beakerMaxVolume,p=d.beakerContents,N=p===void 0?[]:p;return(0,e.createComponentVNode)(2,t.Stack.Item,{height:16,children:(0,e.createComponentVNode)(2,t.Section,{title:d.glass?"Glass":"Beaker",fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,t.Box,{children:[!!C&&(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"label",mr:2,children:[h," / ",v," units"]}),(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!C,onClick:function(){function V(){return s("ejectBeaker")}return V}()})]}),children:(0,e.createComponentVNode)(2,o.BeakerContents,{beakerLoaded:C,beakerContents:N,buttons:function(){function V(S){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Isolate",icon:"compress-arrows-alt",onClick:function(){function I(){return s("remove",{reagent:S.id,amount:-1})}return I}()}),y.map(function(I,L){return(0,e.createComponentVNode)(2,t.Button,{content:I,onClick:function(){function w(){return s("remove",{reagent:S.id,amount:I})}return w}()},L)}),(0,e.createComponentVNode)(2,t.Button,{content:"ALL",onClick:function(){function I(){return s("remove",{reagent:S.id,amount:S.volume})}return I}()})],0)}return V}()})})})}},13146:function(T,r,n){"use strict";r.__esModule=!0,r.ChemHeater=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(85870),b=n(98595),y=r.ChemHeater=function(){function g(i,c){return(0,e.createComponentVNode)(2,b.Window,{width:350,height:275,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,k)]})})})}return g}(),B=function(i,c){var m=(0,t.useBackend)(c),l=m.act,u=m.data,s=u.targetTemp,d=u.targetTempReached,C=u.autoEject,h=u.isActive,v=u.currentTemp,p=u.isBeakerLoaded;return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Settings",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{content:"Auto-eject",icon:C?"toggle-on":"toggle-off",selected:C,onClick:function(){function N(){return l("toggle_autoeject")}return N}()}),(0,e.createComponentVNode)(2,o.Button,{content:h?"On":"Off",icon:"power-off",selected:h,disabled:!p,onClick:function(){function N(){return l("toggle_on")}return N}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,a.round)(s,0),minValue:0,maxValue:1e3,onDrag:function(){function N(V,S){return l("adjust_temperature",{target:S})}return N}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Reading",color:d?"good":"average",children:p&&(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:v,format:function(){function N(V){return(0,a.toFixed)(V)+" K"}return N}()})||"\u2014"})]})})})},k=function(i,c){var m=(0,t.useBackend)(c),l=m.act,u=m.data,s=u.isBeakerLoaded,d=u.beakerCurrentVolume,C=u.beakerMaxVolume,h=u.beakerContents;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:"Beaker",fill:!0,scrollable:!0,buttons:!!s&&(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{inline:!0,color:"label",mr:2,children:[d," / ",C," units"]}),(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject",onClick:function(){function v(){return l("eject_beaker")}return v}()})]}),children:(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:s,beakerContents:h})})})}},56541:function(T,r,n){"use strict";r.__esModule=!0,r.ChemMaster=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(85870),b=n(3939),y=n(35840),B=["icon"];function k(I,L){if(I==null)return{};var w={};for(var A in I)if({}.hasOwnProperty.call(I,A)){if(L.includes(A))continue;w[A]=I[A]}return w}function g(I,L){I.prototype=Object.create(L.prototype),I.prototype.constructor=I,i(I,L)}function i(I,L){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(w,A){return w.__proto__=A,w},i(I,L)}var c=[1,5,10],m=function(L,w){var A=(0,a.useBackend)(w),x=A.act,E=A.data,P=L.args.analysis;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:E.condi?"Condiment Analysis":"Reagent Analysis",children:(0,e.createComponentVNode)(2,t.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:P.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:(P.desc||"").length>0?P.desc:"N/A"}),P.blood_type&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood type",children:P.blood_type}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:P.blood_dna})],4),!E.condi&&(0,e.createComponentVNode)(2,t.Button,{icon:E.printing?"spinner":"print",disabled:E.printing,iconSpin:!!E.printing,ml:"0.5rem",content:"Print",onClick:function(){function D(){return x("print",{idx:P.idx,beaker:L.args.beaker})}return D}()})]})})})})},l=function(I){return I[I.ToDisposals=0]="ToDisposals",I[I.ToBeaker=1]="ToBeaker",I}(l||{}),u=r.ChemMaster=function(){function I(L,w){return(0,e.createComponentVNode)(2,o.Window,{width:575,height:650,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,s),(0,e.createComponentVNode)(2,d),(0,e.createComponentVNode)(2,C),(0,e.createComponentVNode)(2,S)]})})]})}return I}(),s=function(L,w){var A=(0,a.useBackend)(w),x=A.act,E=A.data,P=E.beaker,D=E.beaker_reagents,M=E.buffer_reagents,R=M.length>0;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Beaker",fill:!0,scrollable:!0,buttons:R?(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"eject",disabled:!P,content:"Eject and Clear Buffer",onClick:function(){function O(){return x("eject")}return O}()}):(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!P,content:"Eject and Clear Buffer",onClick:function(){function O(){return x("eject")}return O}()}),children:P?(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:!0,beakerContents:D,buttons:function(){function O(F,_){return(0,e.createComponentVNode)(2,t.Box,{mb:_0?(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:!0,beakerContents:D,buttons:function(){function M(R,O){return(0,e.createComponentVNode)(2,t.Box,{mb:O0&&(R=M.map(function(O){var F=O.id,_=O.sprite;return(0,e.createComponentVNode)(2,N,{icon:_,translucent:!0,onClick:function(){function U(){return x("set_sprite_style",{production_mode:P,style:F})}return U}(),selected:D===F},F)})),(0,e.createComponentVNode)(2,p,{productionData:L.productionData,children:R&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Style",children:R})})},S=function(L,w){var A=(0,a.useBackend)(w),x=A.act,E=A.data,P=E.loaded_pill_bottle_style,D=E.containerstyles,M=E.loaded_pill_bottle,R={width:"20px",height:"20px"},O=D.map(function(F){var _=F.color,U=F.name,z=P===_;return(0,e.createComponentVNode)(2,t.Button,{style:{position:"relative",width:R.width,height:R.height},onClick:function(){function $(){return x("set_container_style",{style:_})}return $}(),icon:z&&"check",iconStyle:{position:"relative","z-index":1},tooltip:U,tooltipPosition:"top",children:[!z&&(0,e.createVNode)(1,"div",null,null,1,{style:{display:"inline-block"}}),(0,e.createVNode)(1,"span","Button",null,1,{style:{display:"inline-block",position:"absolute",top:0,left:0,margin:0,padding:0,width:R.width,height:R.height,"background-color":_,opacity:.6,filter:"alpha(opacity=60)"}})]},_)});return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Container Customization",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!M,content:"Eject Container",onClick:function(){function F(){return x("ejectp")}return F}()}),children:M?(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Style",children:[(0,e.createComponentVNode)(2,t.Button,{style:{width:R.width,height:R.height},icon:"tint-slash",onClick:function(){function F(){return x("clear_container_style")}return F}(),selected:!P,tooltip:"Default",tooltipPosition:"top"}),O]})}):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"No pill bottle or patch pack loaded."})})})};(0,b.modalRegisterBodyOverride)("analyze",m)},37173:function(T,r,n){"use strict";r.__esModule=!0,r.CloningConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(79140),b=1,y=32,B=128,k=r.CloningConsole=function(){function u(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.tab,N=v.has_scanner,V=v.pod_amount;return(0,e.createComponentVNode)(2,o.Window,{width:640,height:520,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Cloning Console",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Connected scanner",children:N?"Online":"Missing"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Connected pods",children:V})]})}),(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:p===1,icon:"home",onClick:function(){function S(){return h("menu",{tab:1})}return S}(),children:"Main Menu"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:p===2,icon:"user",onClick:function(){function S(){return h("menu",{tab:2})}return S}(),children:"Damage Configuration"})]}),(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,g)})]})})}return u}(),g=function(s,d){var C=(0,a.useBackend)(d),h=C.data,v=h.tab,p;return v===1?p=(0,e.createComponentVNode)(2,i):v===2&&(p=(0,e.createComponentVNode)(2,c)),p},i=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.pods,N=v.pod_amount,V=v.selected_pod_UID;return(0,e.createComponentVNode)(2,t.Box,{children:[!N&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No pods connected."}),!!N&&p.map(function(S,I){return(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Pod "+(I+1),children:(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"96px",shrink:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:(0,f.resolveAsset)("pod_"+(S.cloning?"cloning":"idle")+".gif"),style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createComponentVNode)(2,t.Button,{selected:V===S.uid,onClick:function(){function L(){return h("select_pod",{uid:S.uid})}return L}(),children:"Select"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Progress",children:[!S.cloning&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Pod is inactive."}),!!S.cloning&&(0,e.createComponentVNode)(2,t.ProgressBar,{value:S.clone_progress,maxValue:100,color:"good"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Biomass",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:S.biomass,ranges:{good:[2*S.biomass_storage_capacity/3,S.biomass_storage_capacity],average:[S.biomass_storage_capacity/3,2*S.biomass_storage_capacity/3],bad:[0,S.biomass_storage_capacity/3]},minValue:0,maxValue:S.biomass_storage_capacity,children:[S.biomass,"/",S.biomass_storage_capacity+" ("+100*S.biomass/S.biomass_storage_capacity+"%)"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sanguine Reagent",children:S.sanguine_reagent}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Osseous Reagent",children:S.osseous_reagent})]})})]})},S)})]})},c=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.selected_pod_data,N=v.has_scanned,V=v.scanner_has_patient,S=v.feedback,I=v.scan_successful,L=v.cloning_cost,w=v.has_scanner,A=v.currently_scanning;return(0,e.createComponentVNode)(2,t.Box,{children:[!w&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No scanner connected."}),!!w&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Scanner Info",buttons:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hourglass-half",onClick:function(){function x(){return h("scan")}return x}(),disabled:!V||A,children:"Scan"}),(0,e.createComponentVNode)(2,t.Button,{icon:"eject",onClick:function(){function x(){return h("eject")}return x}(),disabled:!V||A,children:"Eject Patient"})]}),children:[!N&&!A&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:V?"No scan detected for current patient.":"No patient is in the scanner."}),(!!N||!!A)&&(0,e.createComponentVNode)(2,t.Box,{color:S.color,children:S.text})]}),(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Damages Breakdown",children:(0,e.createComponentVNode)(2,t.Box,{children:[(!I||!N)&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No valid scan detected."}),!!I&&!!N&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function x(){return h("fix_all")}return x}(),children:"Repair All Damages"}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function x(){return h("fix_none")}return x}(),children:"Repair No Damages"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function x(){return h("clone")}return x}(),children:"Clone"})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[0],maxValue:p.biomass_storage_capacity,ranges:{bad:[2*p.biomass_storage_capacity/3,p.biomass_storage_capacity],average:[p.biomass_storage_capacity/3,2*p.biomass_storage_capacity/3],good:[0,p.biomass_storage_capacity/3]},color:L[0]>p.biomass?"bad":null,children:["Biomass: ",L[0],"/",p.biomass,"/",p.biomass_storage_capacity]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[1],maxValue:p.max_reagent_capacity,ranges:{bad:[2*p.max_reagent_capacity/3,p.max_reagent_capacity],average:[p.max_reagent_capacity/3,2*p.max_reagent_capacity/3],good:[0,p.max_reagent_capacity/3]},color:L[1]>p.sanguine_reagent?"bad":"good",children:["Sanguine: ",L[1],"/",p.sanguine_reagent,"/",p.max_reagent_capacity]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[2],maxValue:p.max_reagent_capacity,ranges:{bad:[2*p.max_reagent_capacity/3,p.max_reagent_capacity],average:[p.max_reagent_capacity/3,2*p.max_reagent_capacity/3],good:[0,p.max_reagent_capacity/3]},color:L[2]>p.osseous_reagent?"bad":"good",children:["Osseous: ",L[2],"/",p.osseous_reagent,"/",p.max_reagent_capacity]})})]}),(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,l)]})]})})]})]})},m=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.patient_limb_data,N=v.limb_list,V=v.desired_limb_data;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Limbs",children:N.map(function(S,I){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Stack,{align:"baseline",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"15%",height:"20px",children:[p[S][4],":"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),p[S][3]===0&&(0,e.createComponentVNode)(2,t.Stack.Item,{width:"60%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:V[S][0]+V[S][1],maxValue:p[S][5],ranges:{good:[0,p[S][5]/3],average:[p[S][5]/3,2*p[S][5]/3],bad:[2*p[S][5]/3,p[S][5]]},children:["Post-Cloning Damage: ",(0,e.createComponentVNode)(2,t.Icon,{name:"bone"})," "+V[S][0]+" / ",(0,e.createComponentVNode)(2,t.Icon,{name:"fire"})," "+V[S][1]]})}),p[S][3]!==0&&(0,e.createComponentVNode)(2,t.Stack.Item,{width:"60%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:"bad",value:0,children:["The patient's ",p[S][4]," is missing!"]})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[!!p[S][3]&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!V[S][3],onClick:function(){function L(){return h("toggle_limb_repair",{limb:S,type:"replace"})}return L}(),children:"Replace Limb"})}),!p[S][3]&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[S][0]||p[S][1]),checked:!(V[S][0]||V[S][1]),onClick:function(){function L(){return h("toggle_limb_repair",{limb:S,type:"damage"})}return L}(),children:"Repair Damages"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[S][2]&b),checked:!(V[S][2]&b),onClick:function(){function L(){return h("toggle_limb_repair",{limb:S,type:"bone"})}return L}(),children:"Mend Bone"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[S][2]&y),checked:!(V[S][2]&y),onClick:function(){function L(){return h("toggle_limb_repair",{limb:S,type:"ib"})}return L}(),children:"Mend IB"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[S][2]&B),checked:!(V[S][2]&B),onClick:function(){function L(){return h("toggle_limb_repair",{limb:S,type:"critburn"})}return L}(),children:"Mend Critical Burn"})]})]})]},S)})})},l=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.patient_organ_data,N=v.organ_list,V=v.desired_organ_data;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Organs",children:N.map(function(S,I){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Stack,{align:"baseline",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"20%",height:"20px",children:[p[S][3],":"," "]}),p[S][5]!=="heart"&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[!!p[S][2]&&(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!V[S][2]&&!V[S][1],onClick:function(){function L(){return h("toggle_organ_repair",{organ:S,type:"replace"})}return L}(),children:"Replace Organ"}),!p[S][2]&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!p[S][0],checked:!V[S][0],onClick:function(){function L(){return h("toggle_organ_repair",{organ:S,type:"damage"})}return L}(),children:"Repair Damages"})})]})}),p[S][5]==="heart"&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Heart replacement is required for cloning."}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"35%",children:[!!p[S][2]&&(0,e.createComponentVNode)(2,t.ProgressBar,{color:"bad",value:0,children:["The patient's ",p[S][3]," is missing!"]}),!p[S][2]&&(0,e.createComponentVNode)(2,t.ProgressBar,{value:V[S][0],maxValue:p[S][4],ranges:{good:[0,p[S][4]/3],average:[p[S][4]/3,2*p[S][4]/3],bad:[2*p[S][4]/3,p[S][4]]},children:"Post-Cloning Damage: "+V[S][0]})]})]})},S)})})}},98723:function(T,r,n){"use strict";r.__esModule=!0,r.CloningPod=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.CloningPod=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.biomass,m=i.biomass_storage_capacity,l=i.sanguine_reagent,u=i.osseous_reagent,s=i.organs,d=i.currently_cloning;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Liquid Storage",children:[(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Biomass:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:c,ranges:{good:[2*m/3,m],average:[m/3,2*m/3],bad:[0,m/3]},minValue:0,maxValue:m})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Sanguine Reagent:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:l+" units"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.NumberInput,{value:0,minValue:0,maxValue:l,step:1,unit:"units",onChange:function(){function C(h,v){return g("remove_reagent",{reagent:"sanguine_reagent",amount:v})}return C}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove All",onClick:function(){function C(){return g("purge_reagent",{reagent:"sanguine_reagent"})}return C}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Osseous Reagent:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:u+" units"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.NumberInput,{value:0,minValue:0,maxValue:u,step:1,unit:"units",onChange:function(){function C(h,v){return g("remove_reagent",{reagent:"osseous_reagent",amount:v})}return C}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove All",onClick:function(){function C(){return g("purge_reagent",{reagent:"osseous_reagent"})}return C}()})})]})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Organ Storage",children:[!d&&(0,e.createComponentVNode)(2,t.Box,{children:[!s&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No organs loaded."}),!!s&&s.map(function(C){return(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:C.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject",onClick:function(){function h(){return g("eject_organ",{organ_ref:C.ref})}return h}()})})]},C)})]}),!!d&&(0,e.createComponentVNode)(2,t.Stack,{height:"100%",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"lock",size:"5",mb:3}),(0,e.createVNode)(1,"br"),"Unable to access organ storage while cloning."]})})]})]})})}return b}()},18259:function(T,r,n){"use strict";r.__esModule=!0,r.CoinMint=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=r.CoinMint=function(){function y(B,k){var g=(0,t.useBackend)(k),i=g.act,c=g.data,m=c.materials,l=c.moneyBag,u=c.moneyBagContent,s=c.moneyBagMaxContent,d=(l?210:138)+Math.ceil(m.length/4)*64;return(0,e.createComponentVNode)(2,f.Window,{width:210,height:d,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.NoticeBox,{m:0,info:!0,children:["Total coins produced: ",c.totalCoins]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Coin Type",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"power-off",color:c.active&&"bad",tooltip:!l&&"Need a money bag",disabled:!l,onClick:function(){function C(){return i("activate")}return C}()}),children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.ProgressBar,{minValue:0,maxValue:c.maxMaterials,value:c.totalMaterials})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"eject",tooltip:"Eject selected material",onClick:function(){function C(){return i("ejectMat")}return C}()})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:m.map(function(C){return(0,e.createComponentVNode)(2,o.Button,{bold:!0,inline:!0,translucent:!0,m:.2,textAlign:"center",selected:C.id===c.chosenMaterial,tooltip:C.name,content:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{className:(0,a.classes)(["materials32x32",C.id])}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:C.amount})]}),onClick:function(){function h(){return i("selectMaterial",{material:C.id})}return h}()},C.id)})})]})})}),!!l&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Money Bag",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject",disabled:c.active,onClick:function(){function C(){return i("ejectBag")}return C}()}),children:(0,e.createComponentVNode)(2,o.ProgressBar,{width:"100%",minValue:0,maxValue:s,value:u,children:[u," / ",s]})})})]})})})}return y}()},93858:function(T,r,n){"use strict";r.__esModule=!0,r.HexColorInput=r.ColorSelector=r.ColorPickerModal=r.ColorInput=void 0;var e=n(89005),a=n(51057),t=n(72253),o=n(36036),f=n(98595),b=n(44879),y=n(14448),B=n(4454),k=n(35840),g=n(9394),i=n(19203),c=["prefixed","alpha","color","fluid","onChange"];/** + */var b=(0,t.createLogger)("hotkeys"),y={},B=[e.KEY_ESCAPE,e.KEY_ENTER,e.KEY_SPACE,e.KEY_TAB,e.KEY_CTRL,e.KEY_SHIFT,e.KEY_UP,e.KEY_DOWN,e.KEY_LEFT,e.KEY_RIGHT],k={},g=function(d){if(d===16)return"Shift";if(d===17)return"Ctrl";if(d===18)return"Alt";if(d===33)return"Northeast";if(d===34)return"Southeast";if(d===35)return"Southwest";if(d===36)return"Northwest";if(d===37)return"West";if(d===38)return"North";if(d===39)return"East";if(d===40)return"South";if(d===45)return"Insert";if(d===46)return"Delete";if(d>=48&&d<=57||d>=65&&d<=90)return String.fromCharCode(d);if(d>=96&&d<=105)return"Numpad"+(d-96);if(d>=112&&d<=123)return"F"+(d-111);if(d===188)return",";if(d===189)return"-";if(d===190)return"."},i=function(d){var C=String(d);if(C==="Ctrl+F5"||C==="Ctrl+R"){location.reload();return}if(C!=="Ctrl+F"&&!(d.event.defaultPrevented||d.isModifierKey()||B.includes(d.code))){C==="F5"&&(d.event.preventDefault(),d.event.returnValue=!1);var h=g(d.code);if(h){var v=y[h];if(v)return b.debug("macro",v),Byond.command(v);if(d.isDown()&&!k[h]){k[h]=!0;var p='Key_Down "'+h+'"';return b.debug(p),Byond.command(p)}if(d.isUp()&&k[h]){k[h]=!1;var N='Key_Up "'+h+'"';return b.debug(N),Byond.command(N)}}}},c=r.acquireHotKey=function(){function s(d){B.push(d)}return s}(),m=r.releaseHotKey=function(){function s(d){var C=B.indexOf(d);C>=0&&B.splice(C,1)}return s}(),l=r.releaseHeldKeys=function(){function s(){for(var d=0,C=Object.keys(k);d0||(0,a.fetchRetry)((0,e.resolveAsset)("icon_ref_map.json")).then(function(b){return b.json()}).then(function(b){return Byond.iconRefMap=b}).catch(function(b){return t.logger.log(b)})}return f}()},1090:function(T,r,n){"use strict";r.__esModule=!0,r.AICard=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AICard=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;if(i.has_ai===0)return(0,e.createComponentVNode)(2,o.Window,{width:250,height:120,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Stored AI",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createVNode)(1,"h3",null,"No AI detected.",16)})})})});var c=null;return i.integrity>=75?c="green":i.integrity>=25?c="yellow":c="red",(0,e.createComponentVNode)(2,o.Window,{width:600,height:420,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:i.name,children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:c,value:i.integrity/100})})}),(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h2",null,i.flushing===1?"Wipe of AI in progress...":"",0)})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Laws",children:!!i.has_laws&&(0,e.createComponentVNode)(2,t.Box,{children:i.laws.map(function(m,l){return(0,e.createComponentVNode)(2,t.Box,{children:m},l)})})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h3",null,"No laws detected.",16)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wireless Activity",children:(0,e.createComponentVNode)(2,t.Button,{width:10,icon:i.wireless?"check":"times",content:i.wireless?"Enabled":"Disabled",color:i.wireless?"green":"red",onClick:function(){function m(){return g("wireless")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subspace Transceiver",children:(0,e.createComponentVNode)(2,t.Button,{width:10,icon:i.radio?"check":"times",content:i.radio?"Enabled":"Disabled",color:i.radio?"green":"red",onClick:function(){function m(){return g("radio")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wipe",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{width:10,icon:"trash-alt",confirmIcon:"trash-alt",disabled:i.flushing||i.integrity===0,confirmColor:"red",content:"Wipe AI",onClick:function(){function m(){return g("wipe")}return m}()})})]})})})]})})})}return b}()},39454:function(T,r,n){"use strict";r.__esModule=!0,r.AIFixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AIFixer=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;if(i.occupant===null)return(0,e.createComponentVNode)(2,o.Window,{width:550,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Stored AI",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"robot",size:5,color:"silver"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"h3",null,"No Artificial Intelligence detected.",16)]})})})})});var c=!0;(i.stat===2||i.stat===null)&&(c=!1);var m=null;i.integrity>=75?m="green":i.integrity>=25?m="yellow":m="red";var l=!0;return i.integrity>=100&&i.stat!==2&&(l=!1),(0,e.createComponentVNode)(2,o.Window,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:i.occupant,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:m,value:i.integrity/100})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:c?"green":"red",children:c?"Functional":"Non-Functional"})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Laws",children:!!i.has_laws&&(0,e.createComponentVNode)(2,t.Box,{children:i.laws.map(function(u,s){return(0,e.createComponentVNode)(2,t.Box,{inline:!0,children:u},s)})})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h3",null,"No laws detected.",16)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wireless Activity",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.wireless?"times":"check",content:i.wireless?"Disabled":"Enabled",color:i.wireless?"red":"green",onClick:function(){function u(){return g("wireless")}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subspace Transceiver",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.radio?"times":"check",content:i.radio?"Disabled":"Enabled",color:i.radio?"red":"green",onClick:function(){function u(){return g("radio")}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Start Repairs",children:(0,e.createComponentVNode)(2,t.Button,{icon:"wrench",disabled:!l||i.active,content:!l||i.active?"Already Repaired":"Repair",onClick:function(){function u(){return g("fix")}return u}()})})]}),(0,e.createComponentVNode)(2,t.Box,{color:"green",lineHeight:2,children:i.active?"Reconstruction in progress.":""})]})})]})})})}return b}()},88422:function(T,r,n){"use strict";r.__esModule=!0,r.APC=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(195),b=r.APC=function(){function g(i,c){return(0,e.createComponentVNode)(2,o.Window,{width:510,height:435,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,k)})})}return g}(),y={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"}},B={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"}},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.locked&&!u.siliconUser,d=u.normallyLocked,C=y[u.externalPower]||y[0],h=y[u.chargingStatus]||y[0],v=u.powerChannels||[],p=B[u.malfStatus]||B[0],N=u.powerCellStatus/100;return(0,e.createFragment)([(0,e.createComponentVNode)(2,f.InterfaceLockNoticeBox),(0,e.createComponentVNode)(2,t.Section,{title:"Power Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Main Breaker",color:C.color,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:u.isOperating?"power-off":"times",content:u.isOperating?"On":"Off",selected:u.isOperating&&!s,color:u.isOperating?"":"bad",disabled:s,onClick:function(){function V(){return l("breaker")}return V}()}),children:["[ ",C.externalPowerText," ]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Cell",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:"good",value:N})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Charge Mode",color:h.color,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:u.chargeMode?"sync":"times",content:u.chargeMode?"Auto":"Off",selected:u.chargeMode,disabled:s,onClick:function(){function V(){return l("charge")}return V}()}),children:["[ ",h.chargingText," ]"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Channels",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[v.map(function(V){var S=V.topicParams;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:V.title,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,mx:2,color:V.status>=2?"good":"bad",children:V.status>=2?"On":"Off"}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Auto",selected:!s&&(V.status===1||V.status===3),disabled:s,onClick:function(){function I(){return l("channel",S.auto)}return I}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:"On",selected:!s&&V.status===2,disabled:s,onClick:function(){function I(){return l("channel",S.on)}return I}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Off",selected:!s&&V.status===0,disabled:s,onClick:function(){function I(){return l("channel",S.off)}return I}()})],4),children:[V.powerLoad," W"]},V.title)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Load",children:(0,e.createVNode)(1,"b",null,[u.totalLoad,(0,e.createTextVNode)(" W")],0)})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Misc",buttons:!!u.siliconUser&&(0,e.createFragment)([!!u.malfStatus&&(0,e.createComponentVNode)(2,t.Button,{icon:p.icon,content:p.content,color:"bad",onClick:function(){function V(){return l(p.action)}return V}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){function V(){return l("overload")}return V}()})],0),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cover Lock",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.4,icon:u.coverLocked?"lock":"unlock",content:u.coverLocked?"Engaged":"Disengaged",disabled:s,onClick:function(){function V(){return l("cover")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"lightbulb-o",content:u.emergencyLights?"Enabled":"Disabled",disabled:s,onClick:function(){function V(){return l("emergency_lighting")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,e.createComponentVNode)(2,t.Button,{mt:.4,icon:"lightbulb-o",content:u.nightshiftLights?"Enabled":"Disabled",onClick:function(){function V(){return l("toggle_nightshift")}return V}()})})]})})],4)}},99660:function(T,r,n){"use strict";r.__esModule=!0,r.ATM=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ATM=function(){function m(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.view_screen,v=C.authenticated_account,p=C.ticks_left_locked_down,N=C.linked_db,V;if(p>0)V=(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle"}),"Maximum number of pin attempts exceeded! Access to this ATM has been temporarily disabled."]});else if(!N)V=(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle"}),"Unable to connect to accounts database, please retry and if the issue persists contact Nanotrasen IT support."]});else if(v)switch(h){case 1:V=(0,e.createComponentVNode)(2,y);break;case 2:V=(0,e.createComponentVNode)(2,B);break;case 3:V=(0,e.createComponentVNode)(2,i);break;default:V=(0,e.createComponentVNode)(2,k)}else V=(0,e.createComponentVNode)(2,g);return(0,e.createComponentVNode)(2,o.Window,{width:550,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Section,{children:V})]})})}return m}(),b=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.machine_id,v=C.held_card_name;return(0,e.createComponentVNode)(2,t.Section,{title:"Nanotrasen Automatic Teller Machine",children:[(0,e.createComponentVNode)(2,t.Box,{children:"For all your monetary needs!"}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Card",children:(0,e.createComponentVNode)(2,t.Button,{content:v,icon:"eject",onClick:function(){function p(){return d("insert_card")}return p}()})})})]})},y=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.security_level;return(0,e.createComponentVNode)(2,t.Section,{title:"Select a new security level for this account",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:(0,e.createComponentVNode)(2,t.Button,{content:"Account Number",icon:"unlock",selected:h===0,onClick:function(){function v(){return d("change_security_level",{new_security_level:1})}return v}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:"Either the account number or card is required to access this account. EFTPOS transactions will require a card."}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:(0,e.createComponentVNode)(2,t.Button,{content:"Account Pin",icon:"unlock",selected:h===2,onClick:function(){function v(){return d("change_security_level",{new_security_level:2})}return v}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:"An account number and pin must be manually entered to access this account and process transactions."})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},B=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=(0,a.useLocalState)(u,"targetAccNumber",0),v=h[0],p=h[1],N=(0,a.useLocalState)(u,"fundsAmount",0),V=N[0],S=N[1],I=(0,a.useLocalState)(u,"purpose",0),L=I[0],w=I[1],A=C.money;return(0,e.createComponentVNode)(2,t.Section,{title:"Transfer Fund",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account Balance",children:["$",A]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Account Number",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"7 Digit Number",onInput:function(){function x(E,P){return p(P)}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Funds to Transfer",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function x(E,P){return S(P)}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transaction Purpose",children:(0,e.createComponentVNode)(2,t.Input,{fluid:!0,onInput:function(){function x(E,P){return w(P)}return x}()})})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.Button,{content:"Transfer",icon:"sign-out-alt",onClick:function(){function x(){return d("transfer",{target_acc_number:v,funds_amount:V,purpose:L})}return x}()}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},k=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=(0,a.useLocalState)(u,"fundsAmount",0),v=h[0],p=h[1],N=C.owner_name,V=C.money;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Welcome, "+N,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Logout",icon:"sign-out-alt",onClick:function(){function S(){return d("logout")}return S}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account Balance",children:["$",V]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Withdrawal Amount",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function S(I,L){return p(L)}return S}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Withdraw Funds",icon:"sign-out-alt",onClick:function(){function S(){return d("withdrawal",{funds_amount:v})}return S}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Menu",children:[(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Change account security level",icon:"lock",onClick:function(){function S(){return d("view_screen",{view_screen:1})}return S}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Make transfer",icon:"exchange-alt",onClick:function(){function S(){return d("view_screen",{view_screen:2})}return S}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"View transaction log",icon:"list",onClick:function(){function S(){return d("view_screen",{view_screen:3})}return S}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Print balance statement",icon:"print",onClick:function(){function S(){return d("balance_statement")}return S}()})})]})],4)},g=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=(0,a.useLocalState)(u,"accountID",null),v=h[0],p=h[1],N=(0,a.useLocalState)(u,"accountPin",null),V=N[0],S=N[1],I=C.machine_id,L=C.held_card_name;return(0,e.createComponentVNode)(2,t.Section,{title:"Insert card or enter ID and pin to login",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account ID",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"6 Digit Number",onInput:function(){function w(A,x){return p(x)}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pin",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"6 Digit Number",onInput:function(){function w(A,x){return S(x)}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Login",icon:"sign-in-alt",onClick:function(){function w(){return d("attempt_auth",{account_num:v,account_pin:V})}return w}()})})]})})},i=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.transaction_log;return(0,e.createComponentVNode)(2,t.Section,{title:"Transactions",children:[(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Timestamp"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Reason"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Value"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Terminal"})]}),h.map(function(v){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.time}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.purpose}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:v.is_deposit?"green":"red",children:["$",v.amount]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.target_name})]},v)})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},c=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data;return(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"sign-out-alt",onClick:function(){function h(){return d("view_screen",{view_screen:0})}return h}()})}},86423:function(T,r,n){"use strict";r.__esModule=!0,r.AccountsUplinkTerminal=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(36352),b=n(98595),y=n(321),B=n(5485),k=r.AccountsUplinkTerminal=function(){function C(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=V.loginState,I=V.currentPage,L;if(S.logged_in)I===1?L=(0,e.createComponentVNode)(2,i):I===2?L=(0,e.createComponentVNode)(2,s):I===3&&(L=(0,e.createComponentVNode)(2,d));else return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,B.LoginScreen)})})});return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,y.LoginInfo),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:L})]})})})}return C}(),g=function(h,v){var p=(0,t.useBackend)(v),N=p.data,V=(0,t.useLocalState)(v,"tabIndex",0),S=V[0],I=V[1],L=N.login_state;return(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,mb:1,children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:S===0,onClick:function(){function w(){return I(0)}return w}(),children:"User Accounts"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:S===1,onClick:function(){function w(){return I(1)}return w}(),children:"Department Accounts"})]})})})},i=function(h,v){var p=(0,t.useLocalState)(v,"tabIndex",0),N=p[0];switch(N){case 0:return(0,e.createComponentVNode)(2,c);case 1:return(0,e.createComponentVNode)(2,m);default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},c=function(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=V.accounts,I=(0,t.useLocalState)(v,"searchText",""),L=I[0],w=I[1],A=(0,t.useLocalState)(v,"sortId","owner_name"),x=A[0],E=A[1],P=(0,t.useLocalState)(v,"sortOrder",!0),D=P[0],M=P[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,u),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"AccountsUplinkTerminal__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,l,{id:"owner_name",children:"Account Holder"}),(0,e.createComponentVNode)(2,l,{id:"account_number",children:"Account Number"}),(0,e.createComponentVNode)(2,l,{id:"suspended",children:"Account Status"}),(0,e.createComponentVNode)(2,l,{id:"money",children:"Account Balance"})]}),S.filter((0,a.createSearch)(L,function(R){return R.owner_name+"|"+R.account_number+"|"+R.suspended+"|"+R.money})).sort(function(R,O){var F=D?1:-1;return R[x].localeCompare(O[x])*F}).map(function(R){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"AccountsUplinkTerminal__listRow--"+R.suspended,onClick:function(){function O(){return N("view_account_detail",{account_num:R.account_number})}return O}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",R.owner_name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:["#",R.account_number]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:R.suspended}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:R.money})]},R.account_number)})]})})})]})},m=function(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=V.department_accounts;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{className:"AccountsUplinkTerminal__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,f.TableCell,{children:"Department Name"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Number"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Status"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Balance"})]}),S.map(function(I){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"AccountsUplinkTerminal__listRow--"+I.suspended,onClick:function(){function L(){return N("view_account_detail",{account_num:I.account_number})}return L}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"wallet"})," ",I.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:["#",I.account_number]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:I.suspended}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:I.money})]},I.account_number)})]})})})})},l=function(h,v){var p=(0,t.useLocalState)(v,"sortId","name"),N=p[0],V=p[1],S=(0,t.useLocalState)(v,"sortOrder",!0),I=S[0],L=S[1],w=h.id,A=h.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:N!==w&&"transparent",width:"100%",onClick:function(){function x(){N===w?L(!I):(V(w),L(!0))}return x}(),children:[A,N===w&&(0,e.createComponentVNode)(2,o.Icon,{name:I?"sort-up":"sort-down",ml:"0.25rem;"})]})})},u=function(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=V.is_printing,I=(0,t.useLocalState)(v,"searchText",""),L=I[0],w=I[1];return(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{content:"New Account",icon:"plus",onClick:function(){function A(){return N("create_new_account")}return A}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by account holder, number, status",width:"100%",onInput:function(){function A(x,E){return w(E)}return A}()})})]})},s=function(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=V.account_number,I=V.owner_name,L=V.money,w=V.suspended,A=V.transactions,x=V.account_pin,E=V.is_department_account;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"#"+S+" / "+I,buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-left",content:"Back",onClick:function(){function P(){return N("back")}return P}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Number",children:["#",S]}),!!E&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Pin",children:x}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Pin Actions",children:(0,e.createComponentVNode)(2,o.Button,{ml:1,icon:"user-cog",content:"Set New Pin",disabled:!!E,onClick:function(){function P(){return N("set_account_pin",{account_number:S})}return P}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Holder",children:I}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Balance",children:L}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Status",color:w?"red":"green",children:[w?"Suspended":"Active",(0,e.createComponentVNode)(2,o.Button,{ml:1,content:w?"Unsuspend":"Suspend",icon:w?"unlock":"lock",onClick:function(){function P(){return N("toggle_suspension")}return P}()})]})]})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Transactions",children:(0,e.createComponentVNode)(2,o.Table,{children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Timestamp"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Reason"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Value"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Terminal"})]}),A.map(function(P){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.time}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.purpose}),(0,e.createComponentVNode)(2,o.Table.Cell,{color:P.is_deposit?"green":"red",children:["$",P.amount]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.target_name})]},P)})]})})})]})},d=function(h,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,S=(0,t.useLocalState)(v,"accName",""),I=S[0],L=S[1],w=(0,t.useLocalState)(v,"accDeposit",""),A=w[0],x=w[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Create Account",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-left",content:"Back",onClick:function(){function E(){return N("back")}return E}()}),children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Holder",children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Name Here",onChange:function(){function E(P,D){return L(D)}return E}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Initial Deposit",children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"0",onChange:function(){function E(P,D){return x(D)}return E}()})})]}),(0,e.createComponentVNode)(2,o.Button,{mt:1,fluid:!0,content:"Create Account",onClick:function(){function E(){return N("finalise_create_account",{holder_name:I,starting_funds:A})}return E}()})]})}},23001:function(T,r,n){"use strict";r.__esModule=!0,r.AdminAntagMenu=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(36352),b=n(98595),y=n(321),B=n(5485),k=function(C){switch(C){case 0:return"Antagonists";case 1:return"Objectives";case 2:return"Security";case 3:return"All High Value Items";default:return"Something went wrong with this menu, make an issue report please!"}},g=function(C){switch(C){case 0:return(0,e.createComponentVNode)(2,c);case 1:return(0,e.createComponentVNode)(2,m);case 2:return(0,e.createComponentVNode)(2,l);case 3:return(0,e.createComponentVNode)(2,u);default:return"Something went wrong with this menu, make an issue report please!"}},i=r.AdminAntagMenu=function(){function d(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.loginState,S=N.currentPage,I=(0,t.useLocalState)(h,"tabIndex",0),L=I[0],w=I[1],A=(0,t.useLocalState)(h,"searchText",""),x=A[0],E=A[1];return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.NoticeBox,{children:"This menu is a Work in Progress. Some antagonists like Nuclear Operatives and Biohazards will not show up."})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===0,onClick:function(){function P(){w(0)}return P}(),icon:"user",children:"Antagonists"},"Antagonists"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===1,onClick:function(){function P(){w(1)}return P}(),icon:"people-robbery",children:"Objectives"},"Objectives"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===2,onClick:function(){function P(){w(2)}return P}(),icon:"handcuffs",children:"Security"},"Security"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===3,onClick:function(){function P(){w(3)}return P}(),icon:"lock",children:"High Value Items"},"HighValueItems")]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:k(L),fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search...",width:"300px",onInput:function(){function P(D,M){return E(M)}return P}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"sync",onClick:function(){function P(){return p("refresh")}return P}(),children:"Refresh"})]}),children:g(L)})})]})})})}return d}(),c=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.antagonists,S=(0,t.useLocalState)(h,"searchText",""),I=S[0],L=S[1],w=(0,t.useLocalState)(h,"sortId","antag_name"),A=w[0],x=w[1],E=(0,t.useLocalState)(h,"sortOrder",!0),P=E[0],D=E[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{id:"name",children:"Mob Name"}),(0,e.createComponentVNode)(2,s,{id:"",children:"Buttons"}),(0,e.createComponentVNode)(2,s,{id:"antag_name",children:"Antagonist Type"}),(0,e.createComponentVNode)(2,s,{id:"status",children:"Status"})]}),V.filter((0,a.createSearch)(I,function(M){return M.name+"|"+M.status+"|"+M.antag_name})).sort(function(M,R){var O=P?1:-1;return M[A]===void 0||M[A]===null?O:R[A]===void 0||R[A]===null?-1*O:typeof M[A]=="number"?(M[A]-R[A])*O:M[A].localeCompare(R[A])*O}).map(function(M,R){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:M.body_destroyed?M.name:(0,e.createComponentVNode)(2,o.Button,{color:M.is_hijacker||!M.name?"red":"",tooltip:M.is_hijacker?"Hijacker":"",onClick:function(){function O(){return p("show_player_panel",{mind_uid:M.antag_mind_uid})}return O}(),children:M.name?M.name:"??? (NO NAME)"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:[(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("pm",{ckey:M.ckey})}return O}(),children:"PM"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("follow",{datum_uid:M.antag_mind_uid})}return O}(),children:"FLW"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("obs",{mind_uid:M.antag_mind_uid})}return O}(),children:"OBS"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("tp",{mind_uid:M.antag_mind_uid})}return O}(),children:"TP"})]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:M.antag_name}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:M.status?"red":"grey",children:M.status?M.status:"Alive"})})]},R)})]}):"No Antagonists!"},m=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.objectives,S=(0,t.useLocalState)(h,"searchText",""),I=S[0],L=S[1],w=(0,t.useLocalState)(h,"sortId2","target_name"),A=w[0],x=w[1],E=(0,t.useLocalState)(h,"sortOrder",!0),P=E[0],D=E[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"obj_name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"target_name",children:"Target"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"status",children:"Status"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"owner_name",children:"Owner"})]}),V.filter((0,a.createSearch)(I,function(M){return M.obj_name+"|"+M.target_name+"|"+(M.status?"success":"incompleted")+"|"+M.owner_name})).sort(function(M,R){var O=P?1:-1;return M[A]===void 0||M[A]===null||A==="target_name"&&M.no_target?O:R[A]===void 0||R[A]===null||A==="target_name"&&R.no_target?-1*O:typeof M[A]=="number"?(M[A]-R[A])*O:M[A].localeCompare(R[A])*O}).map(function(M,R){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{tooltip:M.obj_desc,onClick:function(){function O(){return p("vv",{uid:M.obj_uid})}return O}(),children:M.obj_name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:M.no_target?"":M.track.length?M.track.map(function(O,F){return(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function _(){return p("follow",{datum_uid:O})}return _}(),children:[M.target_name," ",M.track.length>1?"("+(parseInt(F,10)+1)+")":""]},F)}):"No "+M.target_name+" Found"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:M.status?"green":"grey",children:M.status?"Success":"Incomplete"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("obj_owner",{owner_uid:M.owner_uid})}return O}(),children:M.owner_name})})]},R)})]}):"No Objectives!"},l=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.security,S=(0,t.useLocalState)(h,"searchText",""),I=S[0],L=S[1],w=(0,t.useLocalState)(h,"sortId3","health"),A=w[0],x=w[1],E=(0,t.useLocalState)(h,"sortOrder",!0),P=E[0],D=E[1],M=function(F){return F.status===2?"red":F.status===1?"orange":F.broken_bone||F.internal_bleeding?"yellow":"grey"},R=function(F){return F.status===2?"Dead":F.status===1?"Unconscious":F.broken_bone&&F.internal_bleeding?"Broken Bone, IB":F.broken_bone?"Broken Bone":F.internal_bleeding?"IB":"Alive"};return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"role",children:"Role"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"status",children:"Status"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"antag",children:"Antag"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"health",children:"Health"})]}),V.filter((0,a.createSearch)(I,function(O){return O.name+"|"+O.role+"|"+R(O)+"|"+O.antag})).sort(function(O,F){var _=P?1:-1;return O[A]===void 0||O[A]===null?_:F[A]===void 0||F[A]===null?-1*_:typeof O[A]=="number"?(O[A]-F[A])*_:O[A].localeCompare(F[A])*_}).map(function(O,F){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function _(){return p("show_player_panel",{mind_uid:O.mind_uid})}return _}(),children:O.name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:O.role}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:M(O),children:R(O)})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:O.antag?(0,e.createComponentVNode)(2,o.Button,{textColor:"red",translucent:!0,onClick:function(){function _(){p("tp",{mind_uid:O.mind_uid})}return _}(),children:O.antag}):""}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.ProgressBar,{minValue:0,value:O.health/O.max_health,maxValue:1,ranges:{good:[.6,1/0],average:[0,.6],bad:[-1/0,0]},children:O.health})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:[(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function _(){p("pm",{ckey:O.ckey})}return _}(),children:"PM"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function _(){p("follow",{datum_uid:O.mind_uid})}return _}(),children:"FLW"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function _(){p("obs",{mind_uid:O.mind_uid})}return _}(),children:"OBS"})]})]},F)})]}):"No Security!"},u=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.high_value_items,S=(0,t.useLocalState)(h,"searchText",""),I=S[0],L=S[1],w=(0,t.useLocalState)(h,"sortId4","person"),A=w[0],x=w[1],E=(0,t.useLocalState)(h,"sortOrder",!0),P=E[0],D=E[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"person",children:"Carrier"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"loc",children:"Location"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"admin_z",children:"On Admin Z-level"})]}),V.filter((0,a.createSearch)(I,function(M){return M.name+"|"+M.loc})).sort(function(M,R){var O=P?1:-1;return M[A]===void 0||M[A]===null?O:R[A]===void 0||R[A]===null?-1*O:typeof M[A]=="number"?(M[A]-R[A])*O:M[A].localeCompare(R[A])*O}).map(function(M,R){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{tooltip:M.obj_desc,translucent:M.admin_z,onClick:function(){function O(){return p("vv",{uid:M.uid})}return O}(),children:M.name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:M.admin_z?"grey":"",children:M.person})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:M.admin_z?"grey":"",children:M.loc})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:"grey",children:M.admin_z?"On Admin Z-level":""})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function O(){p("follow",{datum_uid:M.uid})}return O}(),children:"FLW"})})]},R)})]}):"No High Value Items!"},s=function(C,h){var v=C.id,p=C.sort_group,N=p===void 0?"sortId":p,V=C.default_sort,S=V===void 0?"antag_name":V,I=C.children,L=(0,t.useLocalState)(h,N,S),w=L[0],A=L[1],x=(0,t.useLocalState)(h,"sortOrder",!0),E=x[0],P=x[1];return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:w!==v&&"transparent",width:"100%",onClick:function(){function D(){w===v?P(!E):(A(v),P(!0))}return D}(),children:[I,w===v&&(0,e.createComponentVNode)(2,o.Icon,{name:E?"sort-up":"sort-down",ml:"0.25rem;"})]})})}},39683:function(T,r,n){"use strict";r.__esModule=!0,r.AgentCardInfo=r.AgentCardAppearances=r.AgentCard=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[{name:"Male",icon:"mars"},{name:"Female",icon:"venus"},{name:"Genderless",icon:"genderless"}],b=["A+","A-","B+","B-","AB+","AB-","O+","O-"],y="Empty",B=function(m){var l=m.label,u=m.value,s=m.onCommit,d=m.onClick,C=m.onRClick,h=m.tooltip;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:l,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button.Input,{fluid:!0,textAlign:"center",content:u||y,onCommit:s})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"file-signature",tooltip:h,tooltipPosition:"bottom-end",onClick:d,onContextMenu:C})})]})})},k=r.AgentCard=function(){function c(m,l){var u=(0,a.useLocalState)(l,"tabIndex",0),s=u[0],d=u[1],C=function(){function h(v){switch(v){case 0:return(0,e.createComponentVNode)(2,g);case 1:return(0,e.createComponentVNode)(2,i);default:return(0,e.createComponentVNode)(2,g)}}return h}();return(0,e.createComponentVNode)(2,o.Window,{width:435,height:500,theme:"syndicate",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:s===0,onClick:function(){function h(){return d(0)}return h}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"table"})," Card Info"]},"Card Info"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:s===1,onClick:function(){function h(){return d(1)}return h}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"id-card"})," Appearance"]},"Appearance")]})}),C(s)]})})})}return c}(),g=r.AgentCardInfo=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.registered_name,h=d.sex,v=d.age,p=d.assignment,N=d.job_icon,V=d.associated_account_number,S=d.blood_type,I=d.dna_hash,L=d.fingerprint_hash,w=d.photo,A=d.ai_tracking,x=d.photo_cooldown,E=(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Autofill options."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("LMB - Autofill your own data."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("RMB - Autofill someone else data.")],4),P=(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Autofill options."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("LMB - Autofill your own data."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("RMB - Autofill with random data.")],4);return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Card Info",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,B,{label:"Name",value:C,tooltip:E,onCommit:function(){function D(M,R){return s("change_name",{name:R})}return D}(),onClick:function(){function D(){return s("change_name",{option:"Primary"})}return D}(),onRClick:function(){function D(M){M.preventDefault(),s("change_name",{option:"Secondary"})}return D}()}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sex",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:f.map(function(D){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:D.icon,content:D.name,selected:h===D.name,onClick:function(){function M(){return s("change_sex",{sex:D.name})}return M}()})},D.name)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Age",children:(0,e.createComponentVNode)(2,t.Slider,{fluid:!0,minValue:17,value:v||0,maxValue:300,onChange:function(){function D(M,R){return s("change_age",{age:R})}return D}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rank",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:function(){function D(){return s("change_occupation")}return D}(),textAlign:"middle",children:p||"[UNSET]"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{tooltip:"Change HUD icon",tooltipPosition:"bottom-end",onClick:function(){function D(){return s("change_occupation",{option:"Primary"})}return D}(),children:[(0,e.createComponentVNode)(2,t.DmIcon,{fill:!0,icon:"icons/mob/hud/job_assets.dmi",icon_state:N,verticalAlign:"bottom",my:"2px",width:"16px"})," "]})})]})}),(0,e.createComponentVNode)(2,B,{label:"Fingerprint",value:L,onCommit:function(){function D(M,R){return s("change_fingerprints",{new_fingerprints:R})}return D}(),onClick:function(){function D(){return s("change_fingerprints",{option:"Primary"})}return D}(),onRClick:function(){function D(M){M.preventDefault(),s("change_fingerprints",{option:"Secondary"})}return D}(),tooltip:P}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood Type",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[b.map(function(D){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:D,selected:S===D,onClick:function(){function M(){return s("change_blood_type",{new_type:D})}return M}()})},D)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file-signature",onClick:function(){function D(){return s("change_blood_type",{option:"Primary"})}return D}()})})]})}),(0,e.createComponentVNode)(2,B,{label:"DNA",value:I,onCommit:function(){function D(M,R){return s("change_dna_hash",{new_dna:R})}return D}(),onClick:function(){function D(){return s("change_dna_hash",{option:"Primary"})}return D}(),onRClick:function(){function D(M){M.preventDefault(),s("change_dna_hash",{option:"Secondary"})}return D}(),tooltip:P}),(0,e.createComponentVNode)(2,B,{label:"Account",value:V||0,onCommit:function(){function D(M,R){return s("change_money_account",{new_account:R})}return D}(),onClick:function(){function D(){return s("change_money_account",{option:"Primary"})}return D}(),onRClick:function(){function D(M){M.preventDefault(),s("change_money_account",{option:"Secondary"})}return D}(),tooltip:P}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Photo",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!x,tooltip:x?"":"You can't generate a new photo yet.",onClick:function(){function D(){return s("change_photo")}return D}(),children:w?"Update":y})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Card Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Card Info",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{fluid:!0,textAlign:"center",content:"Delete Card Info",confirmContent:"Are you sure?",onClick:function(){function D(){return s("delete_info")}return D}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Access",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{fluid:!0,textAlign:"center",content:"Reset Access",confirmContent:"Are you sure?",onClick:function(){function D(){return s("clear_access")}return D}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"AI Tracking",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",onClick:function(){function D(){return s("change_ai_tracking")}return D}(),children:A?"Untrackable":"Trackable"})})]})})})],4)}return c}(),i=r.AgentCardAppearances=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=(0,a.useSharedState)(l,"selectedAppearance",null),h=C[0],v=C[1],p=d.appearances,N=d.id_icon;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Card Appearance",children:p.map(function(V){return(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:N,dmIconState:V,imageSize:64,compact:!0,selected:V===h,tooltip:V,style:{opacity:V===h&&"1"||"0.5"},onClick:function(){function S(){v(V),s("change_appearance",{new_appearance:V})}return S}()},V)})})})}return c}()},56793:function(T,r,n){"use strict";r.__esModule=!0,r.AiAirlock=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},b=r.AiAirlock=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=f[c.power.main]||f[0],l=f[c.power.backup]||f[0],u=f[c.shock]||f[0];return(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Power Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Main",color:m.color,buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:"lightbulb-o",disabled:!c.power.main,content:"Disrupt",onClick:function(){function s(){return i("disrupt-main")}return s}()}),children:[c.power.main?"Online":"Offline"," ",!c.wires.main_power&&"[Wires have been cut!]"||c.power.main_timeleft>0&&"["+c.power.main_timeleft+"s]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Backup",color:l.color,buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:"lightbulb-o",disabled:!c.power.backup,content:"Disrupt",onClick:function(){function s(){return i("disrupt-backup")}return s}()}),children:[c.power.backup?"Online":"Offline"," ",!c.wires.backup_power&&"[Wires have been cut!]"||c.power.backup_timeleft>0&&"["+c.power.backup_timeleft+"s]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Electrify",color:u.color,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{mr:.5,icon:"wrench",disabled:!(c.wires.shock&&c.shock!==2),content:"Restore",onClick:function(){function s(){return i("shock-restore")}return s}()}),(0,e.createComponentVNode)(2,t.Button,{mr:.5,icon:"bolt",disabled:!c.wires.shock,content:"Temporary",onClick:function(){function s(){return i("shock-temp")}return s}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"bolt",disabled:!c.wires.shock||c.shock===0,content:"Permanent",onClick:function(){function s(){return i("shock-perm")}return s}()})],4),children:[c.shock===2?"Safe":"Electrified"," ",!c.wires.shock&&"[Wires have been cut!]"||c.shock_timeleft>0&&"["+c.shock_timeleft+"s]"||c.shock_timeleft===-1&&"[Permanent]"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Access and Door Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.id_scanner?"power-off":"times",content:c.id_scanner?"Enabled":"Disabled",selected:c.id_scanner,disabled:!c.wires.id_scanner,onClick:function(){function s(){return i("idscan-toggle")}return s}()}),children:!c.wires.id_scanner&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Access",buttons:(0,e.createComponentVNode)(2,t.Button,{width:6.5,icon:c.emergency?"power-off":"times",content:c.emergency?"Enabled":"Disabled",selected:c.emergency,onClick:function(){function s(){return i("emergency-toggle")}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:c.locked?"lock":"unlock",content:c.locked?"Lowered":"Raised",selected:c.locked,disabled:!c.wires.bolts,onClick:function(){function s(){return i("bolt-toggle")}return s}()}),children:!c.wires.bolts&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.lights?"power-off":"times",content:c.lights?"Enabled":"Disabled",selected:c.lights,disabled:!c.wires.lights,onClick:function(){function s(){return i("light-toggle")}return s}()}),children:!c.wires.lights&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.safe?"power-off":"times",content:c.safe?"Enabled":"Disabled",selected:c.safe,disabled:!c.wires.safe,onClick:function(){function s(){return i("safe-toggle")}return s}()}),children:!c.wires.safe&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.speed?"power-off":"times",content:c.speed?"Enabled":"Disabled",selected:c.speed,disabled:!c.wires.timing,onClick:function(){function s(){return i("speed-toggle")}return s}()}),children:!c.wires.timing&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:c.opened?"sign-out-alt":"sign-in-alt",content:c.opened?"Open":"Closed",selected:c.opened,disabled:c.locked||c.welded,onClick:function(){function s(){return i("open-close")}return s}()}),children:!!(c.locked||c.welded)&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("[Door is "),c.locked?"bolted":"",c.locked&&c.welded?" and ":"",c.welded?"welded":"",(0,e.createTextVNode)("!]")],0)})]})})]})})}return y}()},72475:function(T,r,n){"use strict";r.__esModule=!0,r.AirAlarm=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(195),b=r.AirAlarm=function(){function u(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.locked;return(0,e.createComponentVNode)(2,o.Window,{width:570,height:p?310:755,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.InterfaceLockNoticeBox),(0,e.createComponentVNode)(2,B),!p&&(0,e.createFragment)([(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g)],4)]})})}return u}(),y=function(s){return s===0?"green":s===1?"orange":"red"},B=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.air,N=v.mode,V=v.atmos_alarm,S=v.locked,I=v.alarmActivated,L=v.rcon,w=v.target_temp,A;return p.danger.overall===0?V===0?A="Optimal":A="Caution: Atmos alert in area":p.danger.overall===1?A="Caution":A="DANGER: Internals Required",(0,e.createComponentVNode)(2,t.Section,{title:"Air Status",children:p?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure",children:(0,e.createComponentVNode)(2,t.Box,{color:y(p.danger.pressure),children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.pressure})," kPa",!S&&(0,e.createFragment)([(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,t.Button,{content:N===3?"Deactivate Panic Siphon":"Activate Panic Siphon",selected:N===3,icon:"exclamation-triangle",onClick:function(){function x(){return h("mode",{mode:N===3?1:3})}return x}()})],4)]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Oxygen",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.oxygen/100,fractionDigits:"1",color:y(p.danger.oxygen)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nitrogen",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.nitrogen/100,fractionDigits:"1",color:y(p.danger.nitrogen)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Carbon Dioxide",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.co2/100,fractionDigits:"1",color:y(p.danger.co2)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Toxins",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.plasma/100,fractionDigits:"1",color:y(p.danger.plasma)})}),p.contents.n2o>.1&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nitrous Oxide",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.n2o/100,fractionDigits:"1",color:y(p.danger.n2o)})}),p.contents.other>.1&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Other",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.other/100,fractionDigits:"1",color:y(p.danger.other)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,t.Box,{color:y(p.danger.temperature),children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.temperature})," K / ",(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.temperature_c})," C\xA0",(0,e.createComponentVNode)(2,t.Button,{icon:"thermometer-full",content:w+" C",onClick:function(){function x(){return h("temperature")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{content:p.thermostat_state?"On":"Off",selected:p.thermostat_state,icon:"power-off",onClick:function(){function x(){return h("thermostat_state")}return x}()})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Local Status",children:(0,e.createComponentVNode)(2,t.Box,{color:y(p.danger.overall),children:[A,!S&&(0,e.createFragment)([(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,t.Button,{content:I?"Reset Alarm":"Activate Alarm",selected:I,onClick:function(){function x(){return h(I?"atmos_reset":"atmos_alarm")}return x}()})],4)]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Remote Control Settings",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Off",selected:L===1,onClick:function(){function x(){return h("set_rcon",{rcon:1})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Auto",selected:L===2,onClick:function(){function x(){return h("set_rcon",{rcon:2})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{content:"On",selected:L===3,onClick:function(){function x(){return h("set_rcon",{rcon:3})}return x}()})]})]}):(0,e.createComponentVNode)(2,t.Box,{children:"Unable to acquire air sample!"})})},k=function(s,d){var C=(0,a.useLocalState)(d,"tabIndex",0),h=C[0],v=C[1];return(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===0,onClick:function(){function p(){return v(0)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"sign-out-alt"})," Vent Control"]},"Vents"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===1,onClick:function(){function p(){return v(1)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"sign-in-alt"})," Scrubber Control"]},"Scrubbers"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===2,onClick:function(){function p(){return v(2)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cog"})," Mode"]},"Mode"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===3,onClick:function(){function p(){return v(3)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"tachometer-alt"})," Thresholds"]},"Thresholds")]})},g=function(s,d){var C=(0,a.useLocalState)(d,"tabIndex",0),h=C[0],v=C[1];switch(h){case 0:return(0,e.createComponentVNode)(2,i);case 1:return(0,e.createComponentVNode)(2,c);case 2:return(0,e.createComponentVNode)(2,m);case 3:return(0,e.createComponentVNode)(2,l);default:return"WE SHOULDN'T BE HERE!"}},i=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.vents;return p.map(function(N){return(0,e.createComponentVNode)(2,t.Section,{title:N.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[(0,e.createComponentVNode)(2,t.Button,{content:N.power?"On":"Off",selected:N.power,icon:"power-off",onClick:function(){function V(){return h("command",{cmd:"power",val:!N.power,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N.direction?"Blowing":"Siphoning",icon:N.direction?"sign-out-alt":"sign-in-alt",onClick:function(){function V(){return h("command",{cmd:"direction",val:!N.direction,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure Checks",children:[(0,e.createComponentVNode)(2,t.Button,{content:"External",selected:N.checks===1,onClick:function(){function V(){return h("command",{cmd:"checks",val:1,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Internal",selected:N.checks===2,onClick:function(){function V(){return h("command",{cmd:"checks",val:2,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"External Pressure Target",children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:N.external})," kPa\xA0",(0,e.createComponentVNode)(2,t.Button,{content:"Set",icon:"cog",onClick:function(){function V(){return h("command",{cmd:"set_external_pressure",id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Reset",icon:"redo-alt",onClick:function(){function V(){return h("command",{cmd:"set_external_pressure",val:101.325,id_tag:N.id_tag})}return V}()})]})]})},N.name)})},c=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.scrubbers;return p.map(function(N){return(0,e.createComponentVNode)(2,t.Section,{title:N.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[(0,e.createComponentVNode)(2,t.Button,{content:N.power?"On":"Off",selected:N.power,icon:"power-off",onClick:function(){function V(){return h("command",{cmd:"power",val:!N.power,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N.scrubbing?"Scrubbing":"Siphoning",icon:N.scrubbing?"filter":"sign-in-alt",onClick:function(){function V(){return h("command",{cmd:"scrubbing",val:!N.scrubbing,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Range",children:(0,e.createComponentVNode)(2,t.Button,{content:N.widenet?"Extended":"Normal",selected:N.widenet,icon:"expand-arrows-alt",onClick:function(){function V(){return h("command",{cmd:"widenet",val:!N.widenet,id_tag:N.id_tag})}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Filtering",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Carbon Dioxide",selected:N.filter_co2,onClick:function(){function V(){return h("command",{cmd:"co2_scrub",val:!N.filter_co2,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Plasma",selected:N.filter_toxins,onClick:function(){function V(){return h("command",{cmd:"tox_scrub",val:!N.filter_toxins,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Nitrous Oxide",selected:N.filter_n2o,onClick:function(){function V(){return h("command",{cmd:"n2o_scrub",val:!N.filter_n2o,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Oxygen",selected:N.filter_o2,onClick:function(){function V(){return h("command",{cmd:"o2_scrub",val:!N.filter_o2,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Nitrogen",selected:N.filter_n2,onClick:function(){function V(){return h("command",{cmd:"n2_scrub",val:!N.filter_n2,id_tag:N.id_tag})}return V}()})]})]})},N.name)})},m=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.modes,N=v.presets,V=v.emagged,S=v.mode,I=v.preset;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"System Mode",children:Object.keys(p).map(function(L){var w=p[L];if(!w.emagonly||V)return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",width:1,children:(0,e.createComponentVNode)(2,t.Button,{content:w.name,icon:"cog",selected:w.id===S,onClick:function(){function A(){return h("mode",{mode:w.id})}return A}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:w.desc})]},w.name)})}),(0,e.createComponentVNode)(2,t.Section,{title:"System Presets",children:[(0,e.createComponentVNode)(2,t.Box,{italic:!0,children:"After making a selection, the system will automatically cycle in order to remove contaminants."}),(0,e.createComponentVNode)(2,t.Table,{mt:1,children:N.map(function(L){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",width:1,children:(0,e.createComponentVNode)(2,t.Button,{content:L.name,icon:"cog",selected:L.id===I,onClick:function(){function w(){return h("preset",{preset:L.id})}return w}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.desc})]},L.name)})})]})],4)},l=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.thresholds;return(0,e.createComponentVNode)(2,t.Section,{title:"Alarm Thresholds",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"20%",children:"Value"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"red",width:"20%",children:"Danger Min"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"orange",width:"20%",children:"Warning Min"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"orange",width:"20%",children:"Warning Max"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"red",width:"20%",children:"Danger Max"})]}),p.map(function(N){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:N.name}),N.settings.map(function(V){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:V.selected===-1?"Off":V.selected,onClick:function(){function S(){return h("command",{cmd:"set_threshold",env:V.env,var:V.val})}return S}()})},V.val)})]},N.name)})]})})}},12333:function(T,r,n){"use strict";r.__esModule=!0,r.AirlockAccessController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AirlockAccessController=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.exterior_status,m=i.interior_status,l=i.processing,u,s;return c==="open"?u=(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Lock Exterior Door",icon:"exclamation-triangle",disabled:l,onClick:function(){function d(){return g("force_ext")}return d}()}):u=(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:l,onClick:function(){function d(){return g("cycle_ext_door")}return d}()}),m==="open"?s=(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Lock Interior Door",icon:"exclamation-triangle",disabled:l,color:m==="open"?"red":l?"yellow":null,onClick:function(){function d(){return g("force_int")}return d}()}):s=(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Cycle to Interior",icon:"arrow-circle-right",disabled:l,onClick:function(){function d(){return g("cycle_int_door")}return d}()}),(0,e.createComponentVNode)(2,o.Window,{width:330,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Information",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"External Door Status",children:c==="closed"?"Locked":"Open"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Internal Door Status",children:m==="closed"?"Locked":"Open"})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:(0,e.createComponentVNode)(2,t.Box,{children:[u,s]})})]})})}return b}()},28736:function(T,r,n){"use strict";r.__esModule=!0,r.AirlockElectronics=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49148),b=1,y=2,B=4,k=8,g=r.AirlockElectronics=function(){function m(l,u){return(0,e.createComponentVNode)(2,o.Window,{width:450,height:565,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,c)]})})})}return m}(),i=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.unrestricted_dir;return(0,e.createComponentVNode)(2,t.Section,{title:"Access Control",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,mb:1,children:"Unrestricted Access From:"}),(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-left",content:"East",selected:h&B,onClick:function(){function v(){return d("unrestricted_access",{unres_dir:B})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-up",content:"South",selected:h&y,onClick:function(){function v(){return d("unrestricted_access",{unres_dir:y})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-right",content:"West",selected:h&k,onClick:function(){function v(){return d("unrestricted_access",{unres_dir:k})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-down",content:"North",selected:h&b,onClick:function(){function v(){return d("unrestricted_access",{unres_dir:b})}return v}()})})]})]})})},c=function(l,u){var s=(0,a.useBackend)(u),d=s.act,C=s.data,h=C.selected_accesses,v=C.one_access,p=C.regions;return(0,e.createComponentVNode)(2,f.AccessList,{usedByRcd:1,rcdButtons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:v,content:"One",onClick:function(){function N(){return d("set_one_access",{access:"one"})}return N}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!v,content:"All",onClick:function(){function N(){return d("set_one_access",{access:"all"})}return N}()})],4),accesses:p,selectedList:h,accessMod:function(){function N(V){return d("set",{access:V})}return N}(),grantAll:function(){function N(){return d("grant_all")}return N}(),denyAll:function(){function N(){return d("clear_all")}return N}(),grantDep:function(){function N(V){return d("grant_region",{region:V})}return N}(),denyDep:function(){function N(V){return d("deny_region",{region:V})}return N}()})}},47365:function(T,r,n){"use strict";r.__esModule=!0,r.AlertModal=void 0;var e=n(89005),a=n(51057),t=n(72253),o=n(92986),f=n(36036),b=n(98595),y=-1,B=1,k=r.AlertModal=function(){function c(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=d.autofocus,h=d.buttons,v=h===void 0?[]:h,p=d.large_buttons,N=d.message,V=N===void 0?"":N,S=d.timeout,I=d.title,L=(0,t.useLocalState)(l,"selected",0),w=L[0],A=L[1],x=110+(V.length>30?Math.ceil(V.length/4):0)+(V.length&&p?5:0),E=325+(v.length>2?100:0),P=function(){function D(M){w===0&&M===y?A(v.length-1):w===v.length-1&&M===B?A(0):A(w+M)}return D}();return(0,e.createComponentVNode)(2,b.Window,{title:I,height:x,width:E,children:[!!S&&(0,e.createComponentVNode)(2,a.Loader,{value:S}),(0,e.createComponentVNode)(2,b.Window.Content,{onKeyDown:function(){function D(M){var R=window.event?M.which:M.keyCode;R===o.KEY_SPACE||R===o.KEY_ENTER?s("choose",{choice:v[w]}):R===o.KEY_ESCAPE?s("cancel"):R===o.KEY_LEFT?(M.preventDefault(),P(y)):(R===o.KEY_TAB||R===o.KEY_RIGHT)&&(M.preventDefault(),P(B))}return D}(),children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,m:1,children:(0,e.createComponentVNode)(2,f.Box,{color:"label",overflow:"hidden",children:V})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:[!!C&&(0,e.createComponentVNode)(2,f.Autofocus),(0,e.createComponentVNode)(2,g,{selected:w})]})]})})})]})}return c}(),g=function(m,l){var u=(0,t.useBackend)(l),s=u.data,d=s.buttons,C=d===void 0?[]:d,h=s.large_buttons,v=s.swapped_buttons,p=m.selected;return(0,e.createComponentVNode)(2,f.Flex,{fill:!0,align:"center",direction:v?"row":"row-reverse",justify:"space-around",wrap:!0,children:C==null?void 0:C.map(function(N,V){return h&&C.length<3?(0,e.createComponentVNode)(2,f.Flex.Item,{grow:!0,children:(0,e.createComponentVNode)(2,i,{button:N,id:V.toString(),selected:p===V})},V):(0,e.createComponentVNode)(2,f.Flex.Item,{grow:h?1:0,children:(0,e.createComponentVNode)(2,i,{button:N,id:V.toString(),selected:p===V})},V)})})},i=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=d.large_buttons,h=m.button,v=m.selected,p=h.length>7?"100%":7;return(0,e.createComponentVNode)(2,f.Button,{mx:C?1:0,pt:C?.33:0,content:h,fluid:!!C,onClick:function(){function N(){return s("choose",{choice:h})}return N}(),selected:v,textAlign:"center",height:!!C&&2,width:!C&&p})}},71824:function(T,r,n){"use strict";r.__esModule=!0,r.AppearanceChanger=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AppearanceChanger=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.change_race,l=c.species,u=c.specimen,s=c.change_gender,d=c.gender,C=c.change_eye_color,h=c.change_skin_tone,v=c.change_skin_color,p=c.change_runechat_color,N=c.change_head_accessory_color,V=c.change_hair_color,S=c.change_secondary_hair_color,I=c.change_facial_hair_color,L=c.change_secondary_facial_hair_color,w=c.change_head_marking_color,A=c.change_body_marking_color,x=c.change_tail_marking_color,E=c.change_head_accessory,P=c.head_accessory_styles,D=c.head_accessory_style,M=c.change_hair,R=c.hair_styles,O=c.hair_style,F=c.change_hair_gradient,_=c.change_facial_hair,U=c.facial_hair_styles,z=c.facial_hair_style,$=c.change_head_markings,G=c.head_marking_styles,X=c.head_marking_style,J=c.change_body_markings,se=c.body_marking_styles,ie=c.body_marking_style,me=c.change_tail_markings,q=c.tail_marking_styles,re=c.tail_marking_style,ae=c.change_body_accessory,le=c.body_accessory_styles,Z=c.body_accessory_style,ne=c.change_alt_head,te=c.alt_head_styles,fe=c.alt_head_style,pe=!1;return(C||h||v||N||p||V||S||I||L||w||A||x)&&(pe=!0),(0,e.createComponentVNode)(2,o.Window,{width:800,height:450,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Species",children:l.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.specimen,selected:ce.specimen===u,onClick:function(){function Ve(){return i("race",{race:ce.specimen})}return Ve}()},ce.specimen)})}),!!s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gender",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Male",selected:d==="male",onClick:function(){function ce(){return i("gender",{gender:"male"})}return ce}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Female",selected:d==="female",onClick:function(){function ce(){return i("gender",{gender:"female"})}return ce}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Genderless",selected:d==="plural",onClick:function(){function ce(){return i("gender",{gender:"plural"})}return ce}()})]}),!!pe&&(0,e.createComponentVNode)(2,b),!!E&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Head accessory",children:P.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.headaccessorystyle,selected:ce.headaccessorystyle===D,onClick:function(){function Ve(){return i("head_accessory",{head_accessory:ce.headaccessorystyle})}return Ve}()},ce.headaccessorystyle)})}),!!M&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hair",children:R.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.hairstyle,selected:ce.hairstyle===O,onClick:function(){function Ve(){return i("hair",{hair:ce.hairstyle})}return Ve}()},ce.hairstyle)})}),!!F&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hair Gradient",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Change Style",onClick:function(){function ce(){return i("hair_gradient")}return ce}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Offset",onClick:function(){function ce(){return i("hair_gradient_offset")}return ce}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Color",onClick:function(){function ce(){return i("hair_gradient_colour")}return ce}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Alpha",onClick:function(){function ce(){return i("hair_gradient_alpha")}return ce}()})]}),!!_&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Facial hair",children:U.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.facialhairstyle,selected:ce.facialhairstyle===z,onClick:function(){function Ve(){return i("facial_hair",{facial_hair:ce.facialhairstyle})}return Ve}()},ce.facialhairstyle)})}),!!$&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Head markings",children:G.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.headmarkingstyle,selected:ce.headmarkingstyle===X,onClick:function(){function Ve(){return i("head_marking",{head_marking:ce.headmarkingstyle})}return Ve}()},ce.headmarkingstyle)})}),!!J&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Body markings",children:se.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.bodymarkingstyle,selected:ce.bodymarkingstyle===ie,onClick:function(){function Ve(){return i("body_marking",{body_marking:ce.bodymarkingstyle})}return Ve}()},ce.bodymarkingstyle)})}),!!me&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tail markings",children:q.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.tailmarkingstyle,selected:ce.tailmarkingstyle===re,onClick:function(){function Ve(){return i("tail_marking",{tail_marking:ce.tailmarkingstyle})}return Ve}()},ce.tailmarkingstyle)})}),!!ae&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Body accessory",children:le.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.bodyaccessorystyle,selected:ce.bodyaccessorystyle===Z,onClick:function(){function Ve(){return i("body_accessory",{body_accessory:ce.bodyaccessorystyle})}return Ve}()},ce.bodyaccessorystyle)})}),!!ne&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alternate head",children:te.map(function(ce){return(0,e.createComponentVNode)(2,t.Button,{content:ce.altheadstyle,selected:ce.altheadstyle===fe,onClick:function(){function Ve(){return i("alt_head",{alt_head:ce.altheadstyle})}return Ve}()},ce.altheadstyle)})})]})})})}return y}(),b=function(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=[{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_runechat_color",text:"Change runechat color",action:"runechat_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"}];return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Colors",children:m.map(function(l){return!!c[l.key]&&(0,e.createComponentVNode)(2,t.Button,{content:l.text,onClick:function(){function u(){return i(l.action)}return u}()},l.key)})})}},72285:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosAlertConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosAlertConsole=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.priority||[],m=i.minor||[],l=i.mode||{};return(0,e.createComponentVNode)(2,o.Window,{width:350,height:300,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Alarms",children:(0,e.createVNode)(1,"ul",null,[c.length===0&&(0,e.createVNode)(1,"li","color-good","No Priority Alerts",16),c.map(function(u){return(0,e.createVNode)(1,"li","color-bad",u,0,null,u)}),m.length===0&&(0,e.createVNode)(1,"li","color-good","No Minor Alerts",16),m.map(function(u){return(0,e.createVNode)(1,"li","color-average",u,0,null,u)}),Object.keys(l).length===0&&(0,e.createVNode)(1,"li","color-good","All Areas Filtering",16),Object.keys(l).map(function(u){return(0,e.createVNode)(1,"li","color-good",[u,(0,e.createTextVNode)(" mode is "),l[u]],0,null,alert)})],0)})})})}return b}()},65805:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(36352),f=n(98595),b=function(c){if(c===0)return(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Good"});if(c===1)return(0,e.createComponentVNode)(2,t.Box,{color:"orange",bold:!0,children:"Warning"});if(c===2)return(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,children:"DANGER"})},y=function(c){if(c===0)return"green";if(c===1)return"orange";if(c===2)return"red"},B=r.AtmosControl=function(){function i(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=(0,a.useLocalState)(m,"tabIndex",0),C=d[0],h=d[1],v=function(){function p(N){switch(N){case 0:return(0,e.createComponentVNode)(2,k);case 1:return(0,e.createComponentVNode)(2,g);default:return"WE SHOULDN'T BE HERE!"}}return p}();return(0,e.createComponentVNode)(2,f.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:C===0,children:(0,e.createComponentVNode)(2,t.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===0,onClick:function(){function p(){return h(0)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"table"})," Data View"]},"DataView"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===1,onClick:function(){function p(){return h(1)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"map-marked-alt"})," Map View"]},"MapView")]}),v(C)]})})})}return i}(),k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.alarms;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Access"})]}),d.map(function(C){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,o.TableCell,{children:C.name}),(0,e.createComponentVNode)(2,o.TableCell,{children:b(C.danger)}),(0,e.createComponentVNode)(2,o.TableCell,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Access",onClick:function(){function h(){return u("open_alarm",{aref:C.ref})}return h}()})})]},C.name)})]})})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.alarms;return(0,e.createComponentVNode)(2,t.Box,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,e.createComponentVNode)(2,t.NanoMap,{children:d.filter(function(C){return C.z===2}).map(function(C){return(0,e.createComponentVNode)(2,t.NanoMap.MarkerIcon,{x:C.x,y:C.y,icon:"circle",tooltip:C.name,color:y(C.danger),onClick:function(){function h(){return u("open_alarm",{aref:C.ref})}return h}()},C.ref)})})})}},87816:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosFilter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosFilter=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.on,m=i.pressure,l=i.max_pressure,u=i.filter_type,s=i.filter_type_list;return(0,e.createComponentVNode)(2,o.Window,{width:380,height:140,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:c?"On":"Off",color:c?null:"red",selected:c,onClick:function(){function d(){return g("power")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:m===0,width:2.2,onClick:function(){function d(){return g("min_pressure")}return d}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:l,value:m,onDrag:function(){function d(C,h){return g("custom_pressure",{pressure:h})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:m===l,width:2.2,onClick:function(){function d(){return g("max_pressure")}return d}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Filter",children:s.map(function(d){return(0,e.createComponentVNode)(2,t.Button,{selected:d.gas_type===u,content:d.label,onClick:function(){function C(){return g("set_filter",{filter:d.gas_type})}return C}()},d.label)})})]})})})})}return b}()},52977:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosMixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosMixer=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.on,l=c.pressure,u=c.max_pressure,s=c.node1_concentration,d=c.node2_concentration;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:165,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:m?"On":"Off",color:m?null:"red",selected:m,onClick:function(){function C(){return i("power")}return C}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:l===0,width:2.2,onClick:function(){function C(){return i("min_pressure")}return C}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:u,value:l,onDrag:function(){function C(h,v){return i("custom_pressure",{pressure:v})}return C}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:l===u,width:2.2,onClick:function(){function C(){return i("max_pressure")}return C}()})]}),(0,e.createComponentVNode)(2,b,{node_name:"Node 1",node_ref:s}),(0,e.createComponentVNode)(2,b,{node_name:"Node 2",node_ref:d})]})})})})}return y}(),b=function(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=B.node_name,l=B.node_ref;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:m,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",width:2.2,disabled:l===0,onClick:function(){function u(){return i("set_node",{node_name:m,concentration:(l-10)/100})}return u}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"%",width:6.1,lineHeight:1.5,stepPixelSize:10,minValue:0,maxValue:100,value:l,onChange:function(){function u(s,d){return i("set_node",{node_name:m,concentration:d/100})}return u}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",width:2.2,disabled:l===100,onClick:function(){function u(){return i("set_node",{node_name:m,concentration:(l+10)/100})}return u}()})]})}},11748:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosPump=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosPump=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.on,m=i.rate,l=i.max_rate,u=i.gas_unit,s=i.step;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:110,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:c?"On":"Off",color:c?null:"red",selected:c,onClick:function(){function d(){return g("power")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:m===0,width:2.2,onClick:function(){function d(){return g("min_rate")}return d}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:u,width:6.1,lineHeight:1.5,step:s,minValue:0,maxValue:l,value:m,onDrag:function(){function d(C,h){return g("custom_rate",{rate:h})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:m===l,width:2.2,onClick:function(){function d(){return g("max_rate")}return d}()})]})]})})})})}return b}()},69321:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosTankControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(44879),f=n(76910),b=n(98595),y=r.AtmosTankControl=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.sensors||{};return(0,e.createComponentVNode)(2,b.Window,{width:400,height:400,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:[Object.keys(l).map(function(u){return(0,e.createComponentVNode)(2,t.Section,{title:u,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[Object.keys(l[u]).indexOf("pressure")>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure",children:[l[u].pressure," kpa"]}):"",Object.keys(l[u]).indexOf("temperature")>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:[l[u].temperature," K"]}):"",["o2","n2","plasma","co2","n2o"].map(function(s){return Object.keys(l[u]).indexOf(s)>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:(0,f.getGasLabel)(s),children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:(0,f.getGasColor)(s),value:l[u][s],minValue:0,maxValue:100,children:(0,o.toFixed)(l[u][s],2)+"%"})},(0,f.getGasLabel)(s)):""})]})},u)}),m.inlet&&Object.keys(m.inlet).length>0?(0,e.createComponentVNode)(2,t.Section,{title:"Inlet Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:(m.inlet.on,"power-off"),content:m.inlet.on?"On":"Off",color:m.inlet.on?null:"red",selected:m.inlet.on,onClick:function(){function u(){return c("toggle_active",{dev:"inlet"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"L/s",width:6.1,lineHeight:1.5,step:1,minValue:0,maxValue:50,value:m.inlet.rate,onDrag:function(){function u(s,d){return c("set_pressure",{dev:"inlet",val:d})}return u}()})})]})}):"",m.outlet&&Object.keys(m.outlet).length>0?(0,e.createComponentVNode)(2,t.Section,{title:"Outlet Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:(m.outlet.on,"power-off"),content:m.outlet.on?"On":"Off",color:m.outlet.on?null:"red",selected:m.outlet.on,onClick:function(){function u(){return c("toggle_active",{dev:"outlet"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:5066,value:m.outlet.rate,onDrag:function(){function u(s,d){return c("set_pressure",{dev:"outlet",val:d})}return u}()})})]})}):""]})})}return B}()},92444:function(T,r,n){"use strict";r.__esModule=!0,r.AugmentMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=r.AugmentMenu=function(){function k(g,i){return(0,e.createComponentVNode)(2,o.Window,{width:700,height:660,theme:"malfunction",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:(0,e.createComponentVNode)(2,y,{context:i})})})})}return k}(),y=function(g){var i=g.context,c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.usable_swarms,s=l.ability_tabs,d=l.known_abilities,C=(0,a.useLocalState)(i,"selectedTab",s[0]),h=C[0],v=C[1],p=(0,a.useLocalState)(i,"searchText",""),N=p[0],V=p[1],S=function(){var E=s.find(function(D){return D.category_name===h.category_name});if(!E)return[];var P=Math.min(E.category_stage,4);return E.abilities.filter(function(D){return D.stage<=P&&(!N||D.name.toLowerCase().includes(N.toLowerCase()))}).sort(function(D,M){return["intruder","destroyer"].includes(h.category_name.toLowerCase())?D.stage-M.stage:0})},I=S(),L=s.find(function(x){return x.category_name===h.category_name}),w=["intruder","destroyer"].includes(h.category_name.toLowerCase()),A=function(E){var P=d.find(function(R){return R.ability_path===E.ability_path}),D=P?P.cost:E.cost,M=P&&P.current_level>0?P.current_level+" / "+P.max_level:"0 / "+E.max_level;return(0,e.createComponentVNode)(2,t.Stack.Item,{direction:"row",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{height:"20px",width:"35px",mb:1,textAlign:"center",content:D,disabled:D>u||P&&P.current_level===P.max_level,tooltip:"Purchase this ability?",onClick:function(){function R(){m("purchase",{ability_path:E.ability_path}),v(h)}return R}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",children:E.name})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"13px",children:E.desc||"Description not available"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Level: ",(0,e.createVNode)(1,"span",null,M,0,{style:{color:"green"}}),w&&E.stage>0&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)(" (Stage: "),E.stage,(0,e.createTextVNode)(")")],0)]}),(0,e.createComponentVNode)(2,t.Stack.Divider)]})})]},E.name)};return(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,style:{marginRight:"10px"},children:[(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Swarms: "),(0,e.createVNode)(1,"span",null,u,0,{style:{color:"green"}})],4),w&&L&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Category Stage: "),(0,e.createVNode)(1,"span",null,Math.min(L.category_stage,4),0,{style:{color:"green"}})],4)]}),(0,e.createVNode)(1,"div","Section__buttons",(0,e.createComponentVNode)(2,t.Input,{width:"200px",placeholder:"Search Abilities",onInput:function(){function x(E,P){return V(P)}return x}(),value:N}),2)],4,{style:{display:"flex",alignItems:"center"}}),children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[s.map(function(x){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h.category_name===x.category_name,onClick:function(){function E(){v(x),V("")}return E}(),children:(0,f.capitalize)(x.category_name)},x.category_name)}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h.category_name==="upgrades",onClick:function(){function x(){return v({category_name:"upgrades"})}return x}(),children:"Upgrades"},"upgrades")]}),h.category_name==="upgrades"?(0,e.createComponentVNode)(2,B,{act:m,abilityTabs:s,knownAbilities:d,usableSwarms:u}):(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:I.map(A)})]})},B=function(g){var i=g.act,c=g.abilityTabs,m=g.knownAbilities,l=g.usableSwarms,u=m.filter(function(d){return d.current_levell,tooltip:"Upgrade this ability?",onClick:function(){function v(){return i("purchase",{ability_path:C.ability_path})}return v}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",children:C.name})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"13px",children:C.upgrade_text}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Level:"," ",(0,e.createVNode)(1,"span",null,C.current_level+" / "+C.max_level,0,{style:{color:"green"}}),h&&h.stage>0&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)(" (Stage: "),h.stage,(0,e.createTextVNode)(")")],0)]}),(0,e.createComponentVNode)(2,t.Stack.Divider)]})})]},C.name)};return(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:u.map(s)})}},59179:function(T,r,n){"use strict";r.__esModule=!0,r.Autolathe=void 0;var e=n(89005),a=n(64795),t=n(88510),o=n(72253),f=n(36036),b=n(98595),y=n(25328),B=function(i,c,m,l){return i.requirements===null?!0:!(i.requirements.metal*l>c||i.requirements.glass*l>m)},k=r.Autolathe=function(){function g(i,c){var m=(0,o.useBackend)(c),l=m.act,u=m.data,s=u.total_amount,d=u.max_amount,C=u.metal_amount,h=u.glass_amount,v=u.busyname,p=u.busyamt,N=u.showhacked,V=u.buildQueue,S=u.buildQueueLen,I=u.recipes,L=u.categories,w=(0,o.useSharedState)(c,"category",0),A=w[0],x=w[1];A===0&&(A="Tools");var E=C.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),P=h.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),D=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),M=(0,o.useSharedState)(c,"search_text",""),R=M[0],O=M[1],F=(0,y.createSearch)(R,function($){return $.name}),_="";S>0&&(_=V.map(function($,G){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,f.Button,{fluid:!0,icon:"times",color:"transparent",content:V[G][0],onClick:function(){function X(){return l("remove_from_queue",{remove_from_queue:V.indexOf($)+1})}return X}()},$)},G)}));var U=(0,a.flow)([(0,t.filter)(function($){return($.category.indexOf(A)>-1||R)&&(u.showhacked||!$.hacked)}),R&&(0,t.filter)(F),(0,t.sortBy)(function($){return $.name.toLowerCase()})])(I),z="Build";return R?z="Results for: '"+R+"':":A&&(z="Build ("+A+")"),(0,e.createComponentVNode)(2,b.Window,{width:750,height:525,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,horizontal:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{width:"70%",children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:z,buttons:(0,e.createComponentVNode)(2,f.Dropdown,{width:"150px",options:L,selected:A,onSelected:function(){function $(G){return x(G)}return $}()}),children:[(0,e.createComponentVNode)(2,f.Input,{fluid:!0,placeholder:"Search for...",onInput:function(){function $(G,X){return O(X)}return $}(),mb:1}),U.map(function($){return(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+$.image,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}}),(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===$.name&&u.busyamt===1,disabled:!B($,u.metal_amount,u.glass_amount,1),onClick:function(){function G(){return l("make",{make:$.uid,multiplier:1})}return G}(),children:(0,y.toTitleCase)($.name)}),$.max_multiplier>=10&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===$.name&&u.busyamt===10,disabled:!B($,u.metal_amount,u.glass_amount,10),onClick:function(){function G(){return l("make",{make:$.uid,multiplier:10})}return G}(),children:"10x"}),$.max_multiplier>=25&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===$.name&&u.busyamt===25,disabled:!B($,u.metal_amount,u.glass_amount,25),onClick:function(){function G(){return l("make",{make:$.uid,multiplier:25})}return G}(),children:"25x"}),$.max_multiplier>25&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===$.name&&u.busyamt===$.max_multiplier,disabled:!B($,u.metal_amount,u.glass_amount,$.max_multiplier),onClick:function(){function G(){return l("make",{make:$.uid,multiplier:$.max_multiplier})}return G}(),children:[$.max_multiplier,"x"]}),$.requirements&&Object.keys($.requirements).map(function(G){return(0,y.toTitleCase)(G)+": "+$.requirements[G]}).join(", ")||(0,e.createComponentVNode)(2,f.Box,{children:"No resources required."})]},$.ref)})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{width:"30%",children:[(0,e.createComponentVNode)(2,f.Section,{title:"Materials",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Metal",children:E}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Glass",children:P}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Total",children:D}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Storage",children:[u.fill_percent,"% Full"]})]})}),(0,e.createComponentVNode)(2,f.Section,{title:"Building",children:(0,e.createComponentVNode)(2,f.Box,{color:v?"green":"",children:v||"Nothing"})}),(0,e.createComponentVNode)(2,f.Section,{title:"Build Queue",height:23.7,children:[_,(0,e.createComponentVNode)(2,f.Button,{mt:.5,fluid:!0,icon:"times",content:"Clear All",color:"red",disabled:!u.buildQueueLen,onClick:function(){function $(){return l("clear_queue")}return $}()})]})]})]})})})}return g}()},5147:function(T,r,n){"use strict";r.__esModule=!0,r.BioChipPad=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.BioChipPad=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.implant,m=i.contains_case,l=i.gps,u=i.tag,s=(0,a.useLocalState)(B,"newTag",u),d=s[0],C=s[1];return(0,e.createComponentVNode)(2,o.Window,{width:410,height:325,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Bio-chip Mini-Computer",buttons:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject Case",icon:"eject",disabled:!m,onClick:function(){function h(){return g("eject_case")}return h}()})}),children:c&&m?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{bold:!0,mb:2,children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+c.image,ml:0,mr:2,style:{"vertical-align":"middle",width:"32px"}}),c.name]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Life",children:c.life}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Notes",children:c.notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Function",children:c.function}),!!l&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tag",children:[(0,e.createComponentVNode)(2,t.Input,{width:"5.5rem",value:u,onEnter:function(){function h(){return g("tag",{newtag:d})}return h}(),onInput:function(){function h(v,p){return C(p)}return h}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:u===d,width:"20px",mb:"0",ml:"0.25rem",onClick:function(){function h(){return g("tag",{newtag:d})}return h}(),children:(0,e.createComponentVNode)(2,t.Icon,{name:"pen"})})]})]})],4):m?(0,e.createComponentVNode)(2,t.Box,{children:"This bio-chip case has no implant!"}):(0,e.createComponentVNode)(2,t.Box,{children:"Please insert a bio-chip casing!"})})})})}return b}()},64273:function(T,r,n){"use strict";r.__esModule=!0,r.Biogenerator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(62411),b=r.Biogenerator=function(){function i(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.config,d=u.container,C=u.processing,h=s.title;return(0,e.createComponentVNode)(2,o.Window,{width:390,height:595,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Operating,{operating:C,name:h}),(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,k),d?(0,e.createComponentVNode)(2,g):(0,e.createComponentVNode)(2,y)]})})})}return i}(),y=function(c,m){return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"silver",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"flask",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),"The biogenerator is missing a container."]})})})},B=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.biomass,C=s.container,h=s.container_curr_reagents,v=s.container_max_reagents;return(0,e.createComponentVNode)(2,t.Section,{title:"Storage",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"20px",color:"silver",children:"Biomass:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"5px",children:d}),(0,e.createComponentVNode)(2,t.Icon,{name:"leaf",size:1.2,color:"#3d8c40"})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"21px",mt:"8px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"10px",color:"silver",children:"Container:"}),C?(0,e.createComponentVNode)(2,t.ProgressBar,{value:h,maxValue:v,children:(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:h+" / "+v+" units"})}):(0,e.createComponentVNode)(2,t.Stack.Item,{children:"None"})]})]})},k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.has_plants,C=s.container;return(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"power-off",disabled:!d,tooltip:d?"":"There are no plants in the biogenerator.",tooltipPosition:"top-start",content:"Activate",onClick:function(){function h(){return u("activate")}return h}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"flask",disabled:!C,tooltip:C?"":"The biogenerator does not have a container.",tooltipPosition:"top",content:"Detach Container",onClick:function(){function h(){return u("detach_container")}return h}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",disabled:!d,tooltip:d?"":"There are no stored plants to eject.",tooltipPosition:"top-end",content:"Eject Plants",onClick:function(){function h(){return u("eject_plants")}return h}()})})]})})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.biomass,C=s.product_list,h=(0,a.useSharedState)(m,"vendAmount",1),v=h[0],p=h[1],N=Object.entries(C).map(function(V,S){var I=Object.entries(V[1]).map(function(L){return L[1]});return(0,e.createComponentVNode)(2,t.Collapsible,{title:V[0],open:!0,children:I.map(function(L){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",ml:"2px",children:L.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"right",width:"20%",children:[L.cost*v,(0,e.createComponentVNode)(2,t.Icon,{ml:"5px",name:"leaf",size:1.2,color:"#3d8c40"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"right",width:"40%",children:(0,e.createComponentVNode)(2,t.Button,{content:"Vend",disabled:d.25?750+400*Math.random():290+150*Math.random(),time:60+150*Math.random(),children:(0,e.createComponentVNode)(2,t.Stack,{mb:"30px",fontsize:"256px",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,color:"red",fontsize:"256px",textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"skull",size:14,mb:"64px"}),(0,e.createVNode)(1,"br"),"E$#OR:& U#KN!WN IN%ERF#R_NCE"]})})})})}return k}(),y=r.BluespaceTap=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.product||[],s=l.desiredMiningPower,d=l.miningPower,C=l.points,h=l.totalPoints,v=l.powerUse,p=l.availablePower,N=l.emagged,V=l.autoShutown,S=l.stabilizers,I=l.stabilizerPower,L=l.stabilizerPriority,w=s>d&&"bad"||"good";return(0,e.createComponentVNode)(2,o.Window,{width:650,height:450,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,t.Collapsible,{title:"Input Management",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Input",children:[(0,e.createComponentVNode)(2,t.Button,{icon:V&&!N?"toggle-on":"toggle-off",content:"Auto shutdown",color:V&&!N?"green":"red",disabled:!!N,tooltip:"Turn auto shutdown on or off",tooltipPosition:"top",onClick:function(){function A(){return m("auto_shutdown")}return A}()}),(0,e.createComponentVNode)(2,t.Button,{icon:S&&!N?"toggle-on":"toggle-off",content:"Stabilizers",color:S&&!N?"green":"red",disabled:!!N,tooltip:"Turn stabilizers on or off",tooltipPosition:"top",onClick:function(){function A(){return m("stabilizers")}return A}()}),(0,e.createComponentVNode)(2,t.Button,{icon:L&&!N?"toggle-on":"toggle-off",content:"Stabilizer priority",color:L&&!N?"green":"red",disabled:!!N,tooltip:"On: Mining power will not exceed what can be stabilized",tooltipPosition:"top",onClick:function(){function A(){return m("stabilizer_priority")}return A}()}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Desired Mining Power",children:(0,f.formatPower)(s)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{labelStyle:{"vertical-align":"top"},label:"Set Desired Mining Power",children:(0,e.createComponentVNode)(2,t.Stack,{width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"step-backward",disabled:s===0||N,tooltip:"Set to 0",tooltipPosition:"bottom",onClick:function(){function A(){return m("set",{set_power:0})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",tooltip:"Decrease by 10 MW",tooltipPosition:"bottom",disabled:s===0||N,onClick:function(){function A(){return m("set",{set_power:s-1e7})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:s===0||N,tooltip:"Decrease by 1 MW",tooltipPosition:"bottom",onClick:function(){function A(){return m("set",{set_power:s-1e6})}return A}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mx:1,children:(0,e.createComponentVNode)(2,t.NumberInput,{disabled:N,minvalue:0,value:s,maxvalue:1/0,step:1,onChange:function(){function A(x,E){return m("set",{set_power:E})}return A}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:N,tooltip:"Increase by one MW",tooltipPosition:"bottom",onClick:function(){function A(){return m("set",{set_power:s+1e6})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:N,tooltip:"Increase by 10MW",tooltipPosition:"bottom",onClick:function(){function A(){return m("set",{set_power:s+1e7})}return A}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Power Use",children:(0,f.formatPower)(v)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mining Power Use",children:(0,f.formatPower)(d)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stabilizer Power Use",children:(0,f.formatPower)(I)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Surplus Power",children:(0,f.formatPower)(p)})]})]})}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Output",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available Points",children:C}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Points",children:h})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{align:"end",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:u.map(function(A){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:A.name,children:(0,e.createComponentVNode)(2,t.Button,{disabled:A.price>=C,onClick:function(){function x(){return m("vend",{target:A.key})}return x}(),content:A.price})},A.key)})})})})]})})]})})})}return k}(),B=r.Alerts=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.product||[],s=l.miningPower,d=l.stabilizerPower,C=l.emagged,h=l.safeLevels,v=l.autoShutown,p=l.stabilizers,N=l.overhead;return(0,e.createFragment)([!v&&!C&&(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Auto shutdown disabled"}),C?(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"All safeties disabled"}):s<=15e6?"":p?s>d+15e6?(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Stabilizers overwhelmed, Instability likely"}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"High Power, engaging stabilizers"}):(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Stabilizers disabled, Instability likely"})],0)}return k}()},33758:function(T,r,n){"use strict";r.__esModule=!0,r.BodyScanner=void 0;var e=n(89005),a=n(44879),t=n(25328),o=n(72253),f=n(36036),b=n(98595),y=[["good","Alive"],["average","Critical"],["bad","DEAD"]],B=[["hasVirus","bad","Viral pathogen detected in blood stream."],["blind","average","Cataracts detected."],["colourblind","average","Photoreceptor abnormalities detected."],["nearsighted","average","Retinal misalignment detected."]],k=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radiation","radLoss"],["Brute","bruteLoss"],["Cellular","cloneLoss"],["Burn","fireLoss"],["Inebriation","drunkenness"]],g={average:[.25,.5],bad:[.5,1/0]},i=function(S,I){for(var L=[],w=0;w0?S.filter(function(I){return!!I}).reduce(function(I,L){return(0,e.createFragment)([I,(0,e.createComponentVNode)(2,f.Box,{children:L},L)],0)},null):null},m=function(S){if(S>100){if(S<300)return"mild infection";if(S<400)return"mild infection+";if(S<500)return"mild infection++";if(S<700)return"acute infection";if(S<800)return"acute infection+";if(S<900)return"acute infection++";if(S>=900)return"septic"}return""},l=r.BodyScanner=function(){function V(S,I){var L=(0,o.useBackend)(I),w=L.data,A=w.occupied,x=w.occupant,E=x===void 0?{}:x,P=A?(0,e.createComponentVNode)(2,u,{occupant:E}):(0,e.createComponentVNode)(2,N);return(0,e.createComponentVNode)(2,b.Window,{width:700,height:600,title:"Body Scanner",children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:P})})}return V}(),u=function(S){var I=S.occupant;return(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,s,{occupant:I}),(0,e.createComponentVNode)(2,d,{occupant:I}),(0,e.createComponentVNode)(2,C,{occupant:I}),(0,e.createComponentVNode)(2,v,{organs:I.extOrgan}),(0,e.createComponentVNode)(2,p,{organs:I.intOrgan})]})},s=function(S,I){var L=(0,o.useBackend)(I),w=L.act,A=L.data,x=A.occupant;return(0,e.createComponentVNode)(2,f.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Button,{icon:"print",onClick:function(){function E(){return w("print_p")}return E}(),children:"Print Report"}),(0,e.createComponentVNode)(2,f.Button,{icon:"user-slash",onClick:function(){function E(){return w("ejectify")}return E}(),children:"Eject"})],4),children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Name",children:x.name}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:x.maxHealth,value:x.health/x.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Status",color:y[x.stat][0],children:y[x.stat][1]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,f.AnimatedNumber,{value:(0,a.round)(x.bodyTempC)}),"\xB0C,\xA0",(0,e.createComponentVNode)(2,f.AnimatedNumber,{value:(0,a.round)(x.bodyTempF)}),"\xB0F"]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Implants",children:x.implant_len?(0,e.createComponentVNode)(2,f.Box,{children:x.implant.map(function(E){return E.name}).join(", ")}):(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"None"})})]})})},d=function(S){var I=S.occupant;return I.hasBorer||I.blind||I.colourblind||I.nearsighted||I.hasVirus?(0,e.createComponentVNode)(2,f.Section,{title:"Abnormalities",children:B.map(function(L,w){if(I[L[0]])return(0,e.createComponentVNode)(2,f.Box,{color:L[1],bold:L[1]==="bad",children:L[2]},L[2])})}):(0,e.createComponentVNode)(2,f.Section,{title:"Abnormalities",children:(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No abnormalities found."})})},C=function(S){var I=S.occupant;return(0,e.createComponentVNode)(2,f.Section,{title:"Damage",children:(0,e.createComponentVNode)(2,f.Table,{children:i(k,function(L,w,A){return(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Table.Row,{color:"label",children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:[L[0],":"]}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:!!w&&w[0]+":"})]}),(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,h,{value:I[L[1]],marginBottom:A100)&&"average"||!!I.status.robotic&&"label",width:"33%",children:(0,t.capitalize)(I.name)}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,f.ProgressBar,{m:-.5,min:"0",max:I.maxHealth,mt:L>0&&"0.5rem",value:I.totalLoss/I.maxHealth,ranges:g,children:(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Tooltip,{content:"Total damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"heartbeat",mr:.5}),(0,a.round)(I.totalLoss)]})}),!!I.bruteLoss&&(0,e.createComponentVNode)(2,f.Tooltip,{content:"Brute damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:[(0,e.createComponentVNode)(2,f.Icon,{name:"bone",mr:.5}),(0,a.round)(I.bruteLoss)]})}),!!I.fireLoss&&(0,e.createComponentVNode)(2,f.Tooltip,{content:"Burn damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"fire",mr:.5}),(0,a.round)(I.fireLoss)]})})]})})}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:L>0&&"calc(0.5rem + 2px)",children:[(0,e.createComponentVNode)(2,f.Box,{color:"average",inline:!0,children:c([!!I.internalBleeding&&"Internal bleeding",!!I.burnWound&&"Critical tissue burns",!!I.lungRuptured&&"Ruptured lung",!!I.status.broken&&I.status.broken,m(I.germ_level),!!I.open&&"Open incision"])}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,children:[c([!!I.status.splinted&&(0,e.createComponentVNode)(2,f.Box,{color:"good",children:"Splinted"}),!!I.status.robotic&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Robotic"}),!!I.status.dead&&(0,e.createComponentVNode)(2,f.Box,{color:"bad",bold:!0,children:"DEAD"})]),c(I.shrapnel.map(function(w){return w.known?w.name:"Unknown object"}))]})]})]},L)})]})})},p=function(S){return S.organs.length===0?(0,e.createComponentVNode)(2,f.Section,{title:"Internal Organs",children:(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"N/A"})}):(0,e.createComponentVNode)(2,f.Section,{title:"Internal Organs",children:(0,e.createComponentVNode)(2,f.Table,{children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:"Damage"}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",children:"Injuries"})]}),S.organs.map(function(I,L){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{color:!!I.dead&&"bad"||I.germ_level>100&&"average"||I.robotic>0&&"label",width:"33%",children:(0,t.capitalize)(I.name)}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:I.maxHealth,value:I.damage/I.maxHealth,mt:L>0&&"0.5rem",ranges:g,children:(0,a.round)(I.damage)})}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:L>0&&"calc(0.5rem + 2px)",children:[(0,e.createComponentVNode)(2,f.Box,{color:"average",inline:!0,children:c([m(I.germ_level)])}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,children:c([I.robotic===1&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Robotic"}),I.robotic===2&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Assisted"}),!!I.dead&&(0,e.createComponentVNode)(2,f.Box,{color:"bad",bold:!0,children:"DEAD"})])})]})]},L)})]})})},N=function(){return(0,e.createComponentVNode)(2,f.Section,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}},67963:function(T,r,n){"use strict";r.__esModule=!0,r.BookBinder=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=n(39473),y=r.BookBinder=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.selectedbook,u=m.book_categories,s=[];return u.map(function(d){return s[d.description]=d.category_id}),(0,e.createComponentVNode)(2,o.Window,{width:600,height:400,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Book Binder",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"print",width:"auto",content:"Print Book",onClick:function(){function d(){return c("print_book")}return d}()}),children:[(0,e.createComponentVNode)(2,t.Box,{ml:10,fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:3,mr:"1rem"}),"Book Binder"]}),(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:"auto",content:l.title,onClick:function(){function d(){return(0,f.modalOpen)(g,"edit_selected_title")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:"auto",content:l.author,onClick:function(){function d(){return(0,f.modalOpen)(g,"edit_selected_author")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"190px",options:u.map(function(d){return d.description}),onSelected:function(){function d(C){return c("toggle_binder_category",{category_id:s[C]})}return d}()})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pen",width:"auto",content:"Edit Summary",onClick:function(){function d(){return(0,f.modalOpen)(g,"edit_selected_summary")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:l.summary})]}),(0,e.createVNode)(1,"br"),u.filter(function(d){return l.categories.includes(d.category_id)}).map(function(d){return(0,e.createComponentVNode)(2,t.Button,{content:d.description,selected:!0,icon:"unlink",onClick:function(){function C(){return c("toggle_binder_category",{category_id:d.category_id})}return C}()},d.category_id)})]})})]})})})]})}return B}()},61925:function(T,r,n){"use strict";r.__esModule=!0,r.BotCall=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(i){var c=[{modes:[0],label:"Idle",color:"green"},{modes:[1,2,3],label:"Arresting",color:"yellow"},{modes:[4,5],label:"Patrolling",color:"average"},{modes:[9],label:"Moving",color:"average"},{modes:[6,11],label:"Responding",color:"green"},{modes:[12],label:"Delivering Cargo",color:"blue"},{modes:[13],label:"Returning Home",color:"blue"},{modes:[7,8,10,14,15,16,17,18,19],label:"Working",color:"blue"}],m=c.find(function(l){return l.modes.includes(i)});return(0,e.createComponentVNode)(2,t.Box,{color:m.color,children:[" ",m.label," "]})},b=r.BotCall=function(){function g(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=(0,a.useLocalState)(c,"tabIndex",0),d=s[0],C=s[1],h={0:"Security",1:"Medibot",2:"Cleanbot",3:"Floorbot",4:"Mule",5:"Honkbot"},v=function(){function p(N){return h[N]?(0,e.createComponentVNode)(2,y,{model:h[N]}):"This should not happen. Report on Paradise Github"}return p}();return(0,e.createComponentVNode)(2,o.Window,{width:700,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:d===0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,textAlign:"center",children:Array.from({length:6}).map(function(p,N){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:d===N,onClick:function(){function V(){return C(N)}return V}(),children:h[N]},N)})})}),v(d)]})})})}return g}(),y=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.bots;return s[i.model]!==void 0?(0,e.createComponentVNode)(2,k,{model:[i.model]}):(0,e.createComponentVNode)(2,B,{model:[i.model]})},B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data;return(0,e.createComponentVNode)(2,t.Stack,{justify:"center",align:"center",fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Box,{bold:1,color:"bad",children:["No ",[i.model]," detected"]})})},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.bots;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Model"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Location"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Interface"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Call"})]}),s[i.model].map(function(d){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.model}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.on?f(d.status):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Off"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.location}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Interface",onClick:function(){function C(){return l("interface",{botref:d.UID})}return C}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Call",onClick:function(){function C(){return l("call",{botref:d.UID})}return C}()})})]},d.UID)})]})})})}},20464:function(T,r,n){"use strict";r.__esModule=!0,r.BotClean=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotClean=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.locked,l=c.noaccess,u=c.maintpanel,s=c.on,d=c.autopatrol,C=c.canhack,h=c.emagged,v=c.remote_disabled,p=c.painame,N=c.cleanblood,V=c.area;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Cleaning Settings",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:N,content:"Clean Blood",disabled:l,onClick:function(){function S(){return i("blood")}return S}()})}),(0,e.createComponentVNode)(2,t.Section,{title:"Misc Settings",children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:V?"Reset Area Selection":"Restrict to Current Area",onClick:function(){function S(){return i("area")}return S}()}),V!==null&&(0,e.createComponentVNode)(2,t.LabeledList,{mb:1,children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Locked Area",children:V})})]}),p&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:p,disabled:l,onClick:function(){function S(){return i("ejectpai")}return S}()})})]})})}return y}()},69479:function(T,r,n){"use strict";r.__esModule=!0,r.BotFloor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotFloor=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.noaccess,l=c.painame,u=c.hullplating,s=c.replace,d=c.eat,C=c.make,h=c.fixfloor,v=c.nag_empty,p=c.magnet,N=c.tiles_amount;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:510,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Floor Settings",children:[(0,e.createComponentVNode)(2,t.Box,{mb:"5px",children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tiles Left",children:N})}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:u,content:"Add tiles to new hull plating",tooltip:"Fixing a plating requires the removal of floor tile. This will place it back after repairing. Same goes for hull breaches",disabled:m,onClick:function(){function V(){return i("autotile")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:s,content:"Add floor tiles on exposed hull plating",tooltip:"Example: It will add tiles to maintenance",disabled:m,onClick:function(){function V(){return i("replacetiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:h,content:"Repair damaged tiles and platings",disabled:m,onClick:function(){function V(){return i("fixfloors")}return V}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Miscellaneous",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:d,content:"Finds tiles",disabled:m,onClick:function(){function V(){return i("eattiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:C,content:"Make pieces of metal into tiles when empty",disabled:m,onClick:function(){function V(){return i("maketiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:v,content:"Transmit notice when empty",disabled:m,onClick:function(){function V(){return i("nagonempty")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:p,content:"Traction Magnets",disabled:m,onClick:function(){function V(){return i("anchored")}return V}()})]}),l&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,icon:"eject",content:l,disabled:m,onClick:function(){function V(){return i("ejectpai")}return V}()})})]})})}return y}()},59887:function(T,r,n){"use strict";r.__esModule=!0,r.BotHonk=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotHonk=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:220,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.BotStatus)})})}return y}()},80063:function(T,r,n){"use strict";r.__esModule=!0,r.BotMed=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotMed=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.locked,l=c.noaccess,u=c.maintpanel,s=c.on,d=c.autopatrol,C=c.canhack,h=c.emagged,v=c.remote_disabled,p=c.painame,N=c.shut_up,V=c.declare_crit,S=c.stationary_mode,I=c.heal_threshold,L=c.injection_amount,w=c.use_beaker,A=c.treat_virus,x=c.reagent_glass;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Communication Settings",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Speaker",checked:!N,disabled:l,onClick:function(){function E(){return i("toggle_speaker")}return E}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Critical Patient Alerts",checked:V,disabled:l,onClick:function(){function E(){return i("toggle_critical_alerts")}return E}()})]}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Treatment Settings",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Healing Threshold",children:(0,e.createComponentVNode)(2,t.Slider,{value:I.value,minValue:I.min,maxValue:I.max,step:5,disabled:l,onChange:function(){function E(P,D){return i("set_heal_threshold",{target:D})}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Injection Level",children:(0,e.createComponentVNode)(2,t.Slider,{value:L.value,minValue:L.min,maxValue:L.max,step:5,format:function(){function E(P){return P+"u"}return E}(),disabled:l,onChange:function(){function E(P,D){return i("set_injection_amount",{target:D})}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reagent Source",children:(0,e.createComponentVNode)(2,t.Button,{content:w?"Beaker":"Internal Synthesizer",icon:w?"flask":"cogs",disabled:l,onClick:function(){function E(){return i("toggle_use_beaker")}return E}()})}),x&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:x.amount,minValue:0,maxValue:x.max_amount,children:[x.amount," / ",x.max_amount]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{ml:1,children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject",disabled:l,onClick:function(){function E(){return i("eject_reagent_glass")}return E}()})})]})})]}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{mt:1,fluid:!0,content:"Treat Viral Infections",checked:A,disabled:l,onClick:function(){function E(){return i("toggle_treat_viral")}return E}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Stationary Mode",checked:S,disabled:l,onClick:function(){function E(){return i("toggle_stationary_mode")}return E}()})]}),p&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:p,disabled:l,onClick:function(){function E(){return i("ejectpai")}return E}()})})]})})})}return y}()},74439:function(T,r,n){"use strict";r.__esModule=!0,r.BotSecurity=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotSecurity=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.noaccess,l=c.painame,u=c.check_id,s=c.check_weapons,d=c.check_warrant,C=c.arrest_mode,h=c.arrest_declare;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:445,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Who To Arrest",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:u,content:"Unidentifiable Persons",disabled:m,onClick:function(){function v(){return i("authid")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:s,content:"Unauthorized Weapons",disabled:m,onClick:function(){function v(){return i("authweapon")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:d,content:"Wanted Criminals",disabled:m,onClick:function(){function v(){return i("authwarrant")}return v}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Arrest Procedure",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:C,content:"Detain Targets Indefinitely",disabled:m,onClick:function(){function v(){return i("arrtype")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:h,content:"Announce Arrests On Radio",disabled:m,onClick:function(){function v(){return i("arrdeclare")}return v}()})]}),l&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:l,disabled:m,onClick:function(){function v(){return i("ejectpai")}return v}()})})]})})}return y}()},10833:function(T,r,n){"use strict";r.__esModule=!0,r.BrigCells=void 0;var e=n(89005),a=n(98595),t=n(36036),o=n(72253),f=function(k,g){var i=k.cell,c=(0,o.useBackend)(g),m=c.act,l=i.cell_id,u=i.occupant,s=i.crimes,d=i.brigged_by,C=i.time_left_seconds,h=i.time_set_seconds,v=i.ref,p="";C>0&&(p+=" BrigCells__listRow--active");var N=function(){m("release",{ref:v})};return(0,e.createComponentVNode)(2,t.Table.Row,{className:p,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:l}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.TimeDisplay,{totalSeconds:h})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.TimeDisplay,{totalSeconds:C})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{type:"button",onClick:N,children:"Release"})})]})},b=function(k){var g=k.cells;return(0,e.createComponentVNode)(2,t.Table,{className:"BrigCells__list",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Cell"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Occupant"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Crimes"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Brigged By"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Time Brigged For"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Time Left"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Release"})]}),g.map(function(i){return(0,e.createComponentVNode)(2,f,{cell:i},i.ref)})]})},y=r.BrigCells=function(){function B(k,g){var i=(0,o.useBackend)(g),c=i.act,m=i.data,l=m.cells;return(0,e.createComponentVNode)(2,a.Window,{theme:"security",width:800,height:400,children:(0,e.createComponentVNode)(2,a.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b,{cells:l})})})})})}return B}()},45761:function(T,r,n){"use strict";r.__esModule=!0,r.BrigTimer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.BrigTimer=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;i.nameText=i.occupant,i.timing&&(i.prisoner_hasrec?i.nameText=(0,e.createComponentVNode)(2,t.Box,{color:"green",children:i.occupant}):i.nameText=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:i.occupant}));var c="pencil-alt";i.prisoner_name&&(i.prisoner_hasrec||(c="exclamation-triangle"));var m=[],l=0;for(l=0;lm?this.substring(0,m)+"...":this};var k=function(l,u){var s,d;if(!u)return[];var C=l.findIndex(function(h){return h.name===u.name});return[(s=l[C-1])==null?void 0:s.name,(d=l[C+1])==null?void 0:d.name]},g=function(l,u){u===void 0&&(u="");var s=(0,f.createSearch)(u,function(d){return d.name});return(0,t.flow)([(0,a.filter)(function(d){return d==null?void 0:d.name}),u&&(0,a.filter)(s),(0,a.sortBy)(function(d){return d.name})])(l)},i=r.CameraConsole=function(){function m(l,u){var s=(0,b.useBackend)(u),d=s.act,C=s.data,h=s.config,v=C.mapRef,p=C.activeCamera,N=g(C.cameras),V=k(N,p),S=V[0],I=V[1];return(0,e.createComponentVNode)(2,B.Window,{width:870,height:708,children:[(0,e.createVNode)(1,"div","CameraConsole__left",(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,y.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,c)})}),2),(0,e.createVNode)(1,"div","CameraConsole__right",[(0,e.createVNode)(1,"div","CameraConsole__toolbar",[(0,e.createVNode)(1,"b",null,"Camera: ",16),p&&p.name||"\u2014"],0),(0,e.createVNode)(1,"div","CameraConsole__toolbarRight",[(0,e.createComponentVNode)(2,y.Button,{icon:"chevron-left",disabled:!S,onClick:function(){function L(){return d("switch_camera",{name:S})}return L}()}),(0,e.createComponentVNode)(2,y.Button,{icon:"chevron-right",disabled:!I,onClick:function(){function L(){return d("switch_camera",{name:I})}return L}()})],4),(0,e.createComponentVNode)(2,y.ByondUi,{className:"CameraConsole__map",params:{id:v,type:"map"}})],4)]})}return m}(),c=r.CameraConsoleContent=function(){function m(l,u){var s=(0,b.useBackend)(u),d=s.act,C=s.data,h=(0,b.useLocalState)(u,"searchText",""),v=h[0],p=h[1],N=C.activeCamera,V=g(C.cameras,v);return(0,e.createComponentVNode)(2,y.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,y.Stack.Item,{children:(0,e.createComponentVNode)(2,y.Input,{fluid:!0,placeholder:"Search for a camera",onInput:function(){function S(I,L){return p(L)}return S}()})}),(0,e.createComponentVNode)(2,y.Stack.Item,{grow:!0,m:0,children:(0,e.createComponentVNode)(2,y.Section,{fill:!0,scrollable:!0,children:V.map(function(S){return(0,e.createVNode)(1,"div",(0,o.classes)(["Button","Button--fluid","Button--color--transparent",N&&S.name===N.name&&"Button--selected"]),S.name.trimLongStr(23),0,{title:S.name,onClick:function(){function I(){return d("switch_camera",{name:S.name})}return I}()},S.name)})})})]})}return m}()},52927:function(T,r,n){"use strict";r.__esModule=!0,r.Canister=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(49968),b=n(98595),y=r.Canister=function(){function B(k,g){var i=(0,t.useBackend)(g),c=i.act,m=i.data,l=m.portConnected,u=m.tankPressure,s=m.releasePressure,d=m.defaultReleasePressure,C=m.minReleasePressure,h=m.maxReleasePressure,v=m.valveOpen,p=m.name,N=m.canLabel,V=m.colorContainer,S=m.color_index,I=m.hasHoldingTank,L=m.holdingTank,w="";S.prim&&(w=V.prim.options[S.prim].name);var A="";S.sec&&(A=V.sec.options[S.sec].name);var x="";S.ter&&(x=V.ter.options[S.ter].name);var E="";S.quart&&(E=V.quart.options[S.quart].name);var P=[],D=[],M=[],R=[],O=0;for(O=0;Op.current_positions&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:p.total_positions-p.current_positions})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"0"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{content:"-",disabled:d.cooldown_time||!p.can_close,onClick:function(){function N(){return s("make_job_unavailable",{job:p.title})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{content:"+",disabled:d.cooldown_time||!p.can_open,onClick:function(){function N(){return s("make_job_available",{job:p.title})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:d.target_dept&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:d.priority_jobs.indexOf(p.title)>-1?"Yes":""})||(0,e.createComponentVNode)(2,t.Button,{content:p.is_priority?"Yes":"No",selected:p.is_priority,disabled:d.cooldown_time||!p.can_prioritize,onClick:function(){function N(){return s("prioritize_job",{job:p.title})}return N}()})})]},p.title)})]})})]}):v=(0,e.createComponentVNode)(2,B);break;case 2:!d.authenticated||!d.scan_name?v=(0,e.createComponentVNode)(2,B):d.modify_name?v=(0,e.createComponentVNode)(2,f.AccessList,{accesses:d.regions,selectedList:d.selectedAccess,accessMod:function(){function p(N){return s("set",{access:N})}return p}(),grantAll:function(){function p(){return s("grant_all")}return p}(),denyAll:function(){function p(){return s("clear_all")}return p}(),grantDep:function(){function p(N){return s("grant_region",{region:N})}return p}(),denyDep:function(){function p(N){return s("deny_region",{region:N})}return p}()}):v=(0,e.createComponentVNode)(2,k);break;case 3:d.authenticated?d.records.length?v=(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Records",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Delete All Records",disabled:!d.authenticated||d.records.length===0||d.target_dept,onClick:function(){function p(){return s("wipe_all_logs")}return p}()}),children:[(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Crewman"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Old Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"New Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Authorized By"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Time"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Reason"}),!!d.iscentcom&&(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Deleted By"})]}),d.records.map(function(p){return(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.transferee}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.oldvalue}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.newvalue}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.whodidit}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.timestamp}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.reason}),!!d.iscentcom&&(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.deletedby})]},p.timestamp)})]}),!!d.iscentcom&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:"Delete MY Records",color:"purple",disabled:!d.authenticated||d.records.length===0,onClick:function(){function p(){return s("wipe_my_logs")}return p}()})})]}):v=(0,e.createComponentVNode)(2,g):v=(0,e.createComponentVNode)(2,B);break;case 4:!d.authenticated||!d.scan_name?v=(0,e.createComponentVNode)(2,B):v=(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Your Team",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Sec Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Actions"})]}),d.people_dept.map(function(p){return(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.title}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.crimstat}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:p.buttontext,disabled:!p.demotable,onClick:function(){function N(){return s("remote_demote",{remote_demote:p.name})}return N}()})})]},p.title)})]})});break;default:v=(0,e.createComponentVNode)(2,t.Section,{title:"Warning",color:"red",children:"ERROR: Unknown Mode."})}return(0,e.createComponentVNode)(2,o.Window,{width:800,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:h}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:C}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:v})]})})})}return c}()},64083:function(T,r,n){"use strict";r.__esModule=!0,r.CargoConsole=void 0;var e=n(89005),a=n(64795),t=n(88510),o=n(72253),f=n(36036),b=n(98595),y=n(25328),B=r.CargoConsole=function(){function u(s,d){return(0,e.createComponentVNode)(2,b.Window,{width:900,height:800,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,l)]})})})}return u}(),k=function(s,d){var C=(0,o.useLocalState)(d,"contentsModal",null),h=C[0],v=C[1],p=(0,o.useLocalState)(d,"contentsModalTitle",null),N=p[0],V=p[1];if(h!==null&&N!==null)return(0,e.createComponentVNode)(2,f.Modal,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:window.innerHeight*.75+"px",mx:"auto",children:[(0,e.createComponentVNode)(2,f.Box,{width:"100%",bold:!0,children:(0,e.createVNode)(1,"h1",null,[N,(0,e.createTextVNode)(" contents:")],0)}),(0,e.createComponentVNode)(2,f.Box,{children:h.map(function(S){return(0,e.createComponentVNode)(2,f.Box,{children:["- ",S]},S)})}),(0,e.createComponentVNode)(2,f.Box,{m:2,children:(0,e.createComponentVNode)(2,f.Button,{content:"Close",onClick:function(){function S(){v(null),V(null)}return S}()})})]})},g=function(s,d){var C=(0,o.useBackend)(d),h=C.act,v=C.data,p=v.is_public,N=v.timeleft,V=v.moving,S=v.at_station,I,L;return!V&&!S?(I="Docked off-station",L="Call Shuttle"):!V&&S?(I="Docked at the station",L="Return Shuttle"):V&&(L="In Transit...",N!==1?I="Shuttle is en route (ETA: "+N+" minutes)":I="Shuttle is en route (ETA: "+N+" minute)"),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Status",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Shuttle Status",children:I}),p===0&&(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Controls",children:[(0,e.createComponentVNode)(2,f.Button,{content:L,disabled:V,onClick:function(){function w(){return h("moveShuttle")}return w}()}),(0,e.createComponentVNode)(2,f.Button,{content:"View Central Command Messages",onClick:function(){function w(){return h("showMessages")}return w}()})]})]})})})},i=function(s,d){var C,h=(0,o.useBackend)(d),v=h.act,p=h.data,N=p.accounts,V=(0,o.useLocalState)(d,"selectedAccount"),S=V[0],I=V[1],L=[];return N.map(function(w){return L[w.name]=w.account_UID}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Payment",children:[(0,e.createComponentVNode)(2,f.Dropdown,{width:"190px",options:N.map(function(w){return w.name}),selected:(C=N.filter(function(w){return w.account_UID===S})[0])==null?void 0:C.name,onSelected:function(){function w(A){return I(L[A])}return w}()}),N.filter(function(w){return w.account_UID===S}).map(function(w){return(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Account Name",children:(0,e.createComponentVNode)(2,f.Stack.Item,{mt:1,children:w.name})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Balance",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:w.balance})})]},w.account_UID)})]})})},c=function(s,d){var C=(0,o.useBackend)(d),h=C.act,v=C.data,p=v.requests,N=v.categories,V=v.supply_packs,S=(0,o.useSharedState)(d,"category","Emergency"),I=S[0],L=S[1],w=(0,o.useSharedState)(d,"search_text",""),A=w[0],x=w[1],E=(0,o.useLocalState)(d,"contentsModal",null),P=E[0],D=E[1],M=(0,o.useLocalState)(d,"contentsModalTitle",null),R=M[0],O=M[1],F=(0,y.createSearch)(A,function(X){return X.name}),_=(0,o.useLocalState)(d,"selectedAccount"),U=_[0],z=_[1],$=(0,a.flow)([(0,t.filter)(function(X){return X.cat===N.filter(function(J){return J.name===I})[0].category||A}),A&&(0,t.filter)(F),(0,t.sortBy)(function(X){return X.name.toLowerCase()})])(V),G="Crate Catalogue";return A?G="Results for '"+A+"':":I&&(G="Browsing "+I),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:G,buttons:(0,e.createComponentVNode)(2,f.Dropdown,{width:"190px",options:N.map(function(X){return X.name}),selected:I,onSelected:function(){function X(J){return L(J)}return X}()}),children:[(0,e.createComponentVNode)(2,f.Input,{fluid:!0,placeholder:"Search for...",onInput:function(){function X(J,se){return x(se)}return X}(),mb:1}),(0,e.createComponentVNode)(2,f.Box,{maxHeight:25,overflowY:"auto",overflowX:"hidden",children:(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:$.map(function(X){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{bold:!0,children:[X.name," (",X.cost," Credits)"]}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",pr:1,children:[(0,e.createComponentVNode)(2,f.Button,{content:"Order 1",icon:"shopping-cart",disabled:!U,onClick:function(){function J(){return h("order",{crate:X.ref,multiple:!1,account:U})}return J}()}),(0,e.createComponentVNode)(2,f.Button,{content:"Order Multiple",icon:"cart-plus",disabled:!U||X.singleton,onClick:function(){function J(){return h("order",{crate:X.ref,multiple:!0,account:U})}return J}()}),(0,e.createComponentVNode)(2,f.Button,{content:"View Contents",icon:"search",onClick:function(){function J(){D(X.contents),O(X.name)}return J}()})]})]},X.name)})})})]})})},m=function(s,d){var C=s.request,h,v;switch(C.department){case"Engineering":v="CE",h="orange";break;case"Medical":v="CMO",h="teal";break;case"Science":v="RD",h="purple";break;case"Supply":v="CT",h="brown";break;case"Service":v="HOP",h="olive";break;case"Security":v="HOS",h="red";break;case"Command":v="CAP",h="blue";break;case"Assistant":v="Any Head",h="grey";break}return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{mt:.5,children:"Approval Required:"}),!!C.req_cargo_approval&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"brown",content:"QM",icon:"user-tie",tooltip:"This Order requires approval from the QM still"})}),!!C.req_head_approval&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:h,content:v,disabled:C.req_cargo_approval,icon:"user-tie",tooltip:C.req_cargo_approval?"This Order first requires approval from the QM before the "+v+" can approve it":"This Order requires approval from the "+v+" still"})})]})},l=function(s,d){var C=(0,o.useBackend)(d),h=C.act,v=C.data,p=v.requests,N=v.orders,V=v.shipments;return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:"Orders",children:[(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Requests"}),(0,e.createComponentVNode)(2,f.Table,{children:p.map(function(S){return(0,e.createComponentVNode)(2,f.Table.Row,{className:"Cargo_RequestList",children:[(0,e.createComponentVNode)(2,f.Table.Cell,{mb:1,children:[(0,e.createComponentVNode)(2,f.Box,{children:["Order #",S.ordernum,": ",S.supply_type," (",S.cost," credits) for ",(0,e.createVNode)(1,"b",null,S.orderedby,0)," with"," ",S.department?"The "+S.department+" Department":"Their Personal"," Account"]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",S.comment]}),(0,e.createComponentVNode)(2,m,{request:S})]}),(0,e.createComponentVNode)(2,f.Stack.Item,{textAlign:"right",children:[(0,e.createComponentVNode)(2,f.Button,{content:"Approve",color:"green",disabled:!S.can_approve,onClick:function(){function I(){return h("approve",{ordernum:S.ordernum})}return I}()}),(0,e.createComponentVNode)(2,f.Button,{content:"Deny",color:"red",disabled:!S.can_deny,onClick:function(){function I(){return h("deny",{ordernum:S.ordernum})}return I}()})]})]},S.ordernum)})}),(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Orders Awaiting Delivery"}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:N.map(function(S){return(0,e.createComponentVNode)(2,f.Table.Row,{children:(0,e.createComponentVNode)(2,f.Table.Cell,{children:[(0,e.createComponentVNode)(2,f.Box,{children:["- #",S.ordernum,": ",S.supply_type," for ",(0,e.createVNode)(1,"b",null,S.orderedby,0)]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",S.comment]})]})},S.ordernum)})}),(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Order in Transit"}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:V.map(function(S){return(0,e.createComponentVNode)(2,f.Table.Row,{children:(0,e.createComponentVNode)(2,f.Table.Cell,{children:[(0,e.createComponentVNode)(2,f.Box,{children:["- #",S.ordernum,": ",S.supply_type," for ",(0,e.createVNode)(1,"b",null,S.orderedby,0)]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",S.comment]})]})},S.ordernum)})})]})}},36232:function(T,r,n){"use strict";r.__esModule=!0,r.ChameleonAppearances=r.Chameleon=void 0;var e=n(89005),a=n(25328),t=n(64795),o=n(88510),f=n(72253),b=n(36036),y=n(98595),B=r.Chameleon=function(){function i(c,m){return(0,e.createComponentVNode)(2,y.Window,{width:431,height:500,theme:"syndicate",children:(0,e.createComponentVNode)(2,y.Window.Content,{children:(0,e.createComponentVNode)(2,g)})})}return i}(),k=function(c,m){m===void 0&&(m="");var l=(0,a.createSearch)(m,function(u){return u.name});return(0,t.flow)([(0,o.filter)(function(u){return u==null?void 0:u.name}),m&&(0,o.filter)(l)])(c)},g=r.ChameleonAppearances=function(){function i(c,m){var l=(0,f.useBackend)(m),u=l.act,s=l.data,d=(0,f.useLocalState)(m,"searchText",""),C=d[0],h=d[1],v=k(s.chameleon_skins,C),p=s.selected_appearance;return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Input,{fluid:!0,placeholder:"Search for an appearance",onInput:function(){function N(V,S){return h(S)}return N}()})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Item Appearance",children:v.map(function(N){var V=N.name+"_"+N.icon_state;return(0,e.createComponentVNode)(2,b.ImageButton,{dmIcon:N.icon,dmIconState:N.icon_state,imageSize:64,m:.5,compact:!0,selected:V===p,tooltip:N.name,style:{opacity:V===p&&"1"||"0.5"},onClick:function(){function S(){u("change_appearance",{new_appearance:V})}return S}()},V)})})})]})}return i}()},87331:function(T,r,n){"use strict";r.__esModule=!0,r.ChangelogView=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ChangelogView=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=(0,a.useLocalState)(B,"onlyRecent",0),m=c[0],l=c[1],u=i.cl_data,s=i.last_cl,d={FIX:(0,e.createComponentVNode)(2,t.Icon,{name:"tools",title:"Fix"}),WIP:(0,e.createComponentVNode)(2,t.Icon,{name:"hard-hat",title:"WIP",color:"orange"}),TWEAK:(0,e.createComponentVNode)(2,t.Icon,{name:"sliders-h",title:"Tweak"}),SOUNDADD:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-up",title:"Sound Added",color:"green"}),SOUNDDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-mute",title:"Sound Removed",color:"red"}),CODEADD:(0,e.createComponentVNode)(2,t.Icon,{name:"plus",title:"Code Addition",color:"green"}),CODEDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"minus",title:"Code Removal",color:"red"}),IMAGEADD:(0,e.createComponentVNode)(2,t.Icon,{name:"folder-plus",title:"Sprite Addition",color:"green"}),IMAGEDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"folder-minus",title:"Sprite Removal",color:"red"}),SPELLCHECK:(0,e.createComponentVNode)(2,t.Icon,{name:"font",title:"Spelling/Grammar Fix"}),EXPERIMENT:(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle",title:"Experimental",color:"orange"})},C=function(){function h(v){return v in d?d[v]:(0,e.createComponentVNode)(2,t.Icon,{name:"plus",color:"green"})}return h}();return(0,e.createComponentVNode)(2,o.Window,{width:750,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"ParadiseSS13 Changelog",mt:2,buttons:(0,e.createComponentVNode)(2,t.Button,{content:m?"Showing all changes":"Showing changes since last connection",onClick:function(){function h(){return l(!m)}return h}()}),children:u.map(function(h){return!m&&h.merge_ts<=s||(0,e.createComponentVNode)(2,t.Section,{mb:2,title:h.author+" - Merged on "+h.merge_date,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"#"+h.num,onClick:function(){function v(){return g("open_pr",{pr_number:h.num})}return v}()}),children:h.entries.map(function(v){return(0,e.createComponentVNode)(2,t.Box,{m:1,children:[C(v.etype)," ",v.etext]},v)})},h)})})})})}return b}()},91360:function(T,r,n){"use strict";r.__esModule=!0,r.CheckboxListInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(36036),f=n(72253),b=n(98595),y=r.CheckboxListInputModal=function(){function k(g,i){var c=(0,f.useBackend)(i),m=c.act,l=c.data,u=l.items,s=u===void 0?[]:u,d=l.message,C=d===void 0?"":d,h=l.init_value,v=l.timeout,p=l.title,N=(0,f.useLocalState)(i,"edittedItems",s),V=N[0],S=N[1],I=330+Math.ceil(C.length/3),L=function(){function w(A){A===void 0&&(A=null);var x=[].concat(V);x=x.map(function(E){return E.key===A.key?Object.assign({},E,{checked:!A.checked}):E}),S(x)}return w}();return(0,e.createComponentVNode)(2,b.Window,{title:p,width:325,height:I,children:[v&&(0,e.createComponentVNode)(2,a.Loader,{value:v}),(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{className:"ListInput__Section",fill:!0,title:C,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,B,{filteredItems:V,onClick:L})}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,children:(0,e.createComponentVNode)(2,t.InputButtons,{input:V})})]})})})]})}return k}(),B=function(g,i){var c=g.filteredItems,m=g.onClick;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,tabIndex:0,children:c.map(function(l,u){return(0,e.createComponentVNode)(2,o.Button.Checkbox,{fluid:!0,id:u,onClick:function(){function s(){return m(l)}return s}(),checked:l.checked,style:{animation:"none",transition:"none"},children:l.key.replace(/^\w/,function(s){return s.toUpperCase()})},u)})})}},36108:function(T,r,n){"use strict";r.__esModule=!0,r.ChemDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(85870),f=n(98595),b=[1,5,10,20,30,50],y=[1,5,10],B=r.ChemDispenser=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.chemicals;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:400+C.length*8,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,i)]})})})}return c}(),k=function(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.amount,h=d.energy,v=d.maxEnergy;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:h,minValue:0,maxValue:v,ranges:{good:[v*.5,1/0],average:[v*.25,v*.5],bad:[-1/0,v*.25]},children:[h," / ",v," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dispense",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{children:b.map(function(p,N){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"15%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"cog",selected:C===p,content:p,onClick:function(){function V(){return s("amount",{amount:p})}return V}()})},N)})})})]})})})},g=function(m,l){for(var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.chemicals,h=C===void 0?[]:C,v=[],p=0;p<(h.length+1)%3;p++)v.push(!0);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:d.glass?"Drink Dispenser":"Chemical Dispenser",children:[h.map(function(N,V){return(0,e.createComponentVNode)(2,t.Button,{m:.1,width:"32.5%",icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",content:N.title,style:{"margin-left":"2px"},onClick:function(){function S(){return s("dispense",{reagent:N.id})}return S}()},V)}),v.map(function(N,V){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%"},V)})]})})},i=function(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.isBeakerLoaded,h=d.beakerCurrentVolume,v=d.beakerMaxVolume,p=d.beakerContents,N=p===void 0?[]:p;return(0,e.createComponentVNode)(2,t.Stack.Item,{height:16,children:(0,e.createComponentVNode)(2,t.Section,{title:d.glass?"Glass":"Beaker",fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,t.Box,{children:[!!C&&(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"label",mr:2,children:[h," / ",v," units"]}),(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!C,onClick:function(){function V(){return s("ejectBeaker")}return V}()})]}),children:(0,e.createComponentVNode)(2,o.BeakerContents,{beakerLoaded:C,beakerContents:N,buttons:function(){function V(S){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Isolate",icon:"compress-arrows-alt",onClick:function(){function I(){return s("remove",{reagent:S.id,amount:-1})}return I}()}),y.map(function(I,L){return(0,e.createComponentVNode)(2,t.Button,{content:I,onClick:function(){function w(){return s("remove",{reagent:S.id,amount:I})}return w}()},L)}),(0,e.createComponentVNode)(2,t.Button,{content:"ALL",onClick:function(){function I(){return s("remove",{reagent:S.id,amount:S.volume})}return I}()})],0)}return V}()})})})}},13146:function(T,r,n){"use strict";r.__esModule=!0,r.ChemHeater=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(85870),b=n(98595),y=r.ChemHeater=function(){function g(i,c){return(0,e.createComponentVNode)(2,b.Window,{width:350,height:275,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,k)]})})})}return g}(),B=function(i,c){var m=(0,t.useBackend)(c),l=m.act,u=m.data,s=u.targetTemp,d=u.targetTempReached,C=u.autoEject,h=u.isActive,v=u.currentTemp,p=u.isBeakerLoaded;return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Settings",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{content:"Auto-eject",icon:C?"toggle-on":"toggle-off",selected:C,onClick:function(){function N(){return l("toggle_autoeject")}return N}()}),(0,e.createComponentVNode)(2,o.Button,{content:h?"On":"Off",icon:"power-off",selected:h,disabled:!p,onClick:function(){function N(){return l("toggle_on")}return N}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,a.round)(s,0),minValue:0,maxValue:1e3,onDrag:function(){function N(V,S){return l("adjust_temperature",{target:S})}return N}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Reading",color:d?"good":"average",children:p&&(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:v,format:function(){function N(V){return(0,a.toFixed)(V)+" K"}return N}()})||"\u2014"})]})})})},k=function(i,c){var m=(0,t.useBackend)(c),l=m.act,u=m.data,s=u.isBeakerLoaded,d=u.beakerCurrentVolume,C=u.beakerMaxVolume,h=u.beakerContents;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:"Beaker",fill:!0,scrollable:!0,buttons:!!s&&(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{inline:!0,color:"label",mr:2,children:[d," / ",C," units"]}),(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject",onClick:function(){function v(){return l("eject_beaker")}return v}()})]}),children:(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:s,beakerContents:h})})})}},56541:function(T,r,n){"use strict";r.__esModule=!0,r.ChemMaster=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(85870),b=n(3939),y=n(35840),B=["icon"];function k(I,L){if(I==null)return{};var w={};for(var A in I)if({}.hasOwnProperty.call(I,A)){if(L.includes(A))continue;w[A]=I[A]}return w}function g(I,L){I.prototype=Object.create(L.prototype),I.prototype.constructor=I,i(I,L)}function i(I,L){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(w,A){return w.__proto__=A,w},i(I,L)}var c=[1,5,10],m=function(L,w){var A=(0,a.useBackend)(w),x=A.act,E=A.data,P=L.args.analysis;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:E.condi?"Condiment Analysis":"Reagent Analysis",children:(0,e.createComponentVNode)(2,t.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:P.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:(P.desc||"").length>0?P.desc:"N/A"}),P.blood_type&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood type",children:P.blood_type}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:P.blood_dna})],4),!E.condi&&(0,e.createComponentVNode)(2,t.Button,{icon:E.printing?"spinner":"print",disabled:E.printing,iconSpin:!!E.printing,ml:"0.5rem",content:"Print",onClick:function(){function D(){return x("print",{idx:P.idx,beaker:L.args.beaker})}return D}()})]})})})})},l=function(I){return I[I.ToDisposals=0]="ToDisposals",I[I.ToBeaker=1]="ToBeaker",I}(l||{}),u=r.ChemMaster=function(){function I(L,w){return(0,e.createComponentVNode)(2,o.Window,{width:575,height:650,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,s),(0,e.createComponentVNode)(2,d),(0,e.createComponentVNode)(2,C),(0,e.createComponentVNode)(2,S)]})})]})}return I}(),s=function(L,w){var A=(0,a.useBackend)(w),x=A.act,E=A.data,P=E.beaker,D=E.beaker_reagents,M=E.buffer_reagents,R=M.length>0;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Beaker",fill:!0,scrollable:!0,buttons:R?(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"eject",disabled:!P,content:"Eject and Clear Buffer",onClick:function(){function O(){return x("eject")}return O}()}):(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!P,content:"Eject and Clear Buffer",onClick:function(){function O(){return x("eject")}return O}()}),children:P?(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:!0,beakerContents:D,buttons:function(){function O(F,_){return(0,e.createComponentVNode)(2,t.Box,{mb:_0?(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:!0,beakerContents:D,buttons:function(){function M(R,O){return(0,e.createComponentVNode)(2,t.Box,{mb:O0&&(R=M.map(function(O){var F=O.id,_=O.sprite;return(0,e.createComponentVNode)(2,N,{icon:_,translucent:!0,onClick:function(){function U(){return x("set_sprite_style",{production_mode:P,style:F})}return U}(),selected:D===F},F)})),(0,e.createComponentVNode)(2,p,{productionData:L.productionData,children:R&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Style",children:R})})},S=function(L,w){var A=(0,a.useBackend)(w),x=A.act,E=A.data,P=E.loaded_pill_bottle_style,D=E.containerstyles,M=E.loaded_pill_bottle,R={width:"20px",height:"20px"},O=D.map(function(F){var _=F.color,U=F.name,z=P===_;return(0,e.createComponentVNode)(2,t.Button,{style:{position:"relative",width:R.width,height:R.height},onClick:function(){function $(){return x("set_container_style",{style:_})}return $}(),icon:z&&"check",iconStyle:{position:"relative","z-index":1},tooltip:U,tooltipPosition:"top",children:[!z&&(0,e.createVNode)(1,"div",null,null,1,{style:{display:"inline-block"}}),(0,e.createVNode)(1,"span","Button",null,1,{style:{display:"inline-block",position:"absolute",top:0,left:0,margin:0,padding:0,width:R.width,height:R.height,"background-color":_,opacity:.6,filter:"alpha(opacity=60)"}})]},_)});return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Container Customization",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!M,content:"Eject Container",onClick:function(){function F(){return x("ejectp")}return F}()}),children:M?(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Style",children:[(0,e.createComponentVNode)(2,t.Button,{style:{width:R.width,height:R.height},icon:"tint-slash",onClick:function(){function F(){return x("clear_container_style")}return F}(),selected:!P,tooltip:"Default",tooltipPosition:"top"}),O]})}):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"No pill bottle or patch pack loaded."})})})};(0,b.modalRegisterBodyOverride)("analyze",m)},37173:function(T,r,n){"use strict";r.__esModule=!0,r.CloningConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(79140),b=1,y=32,B=128,k=r.CloningConsole=function(){function u(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.tab,N=v.has_scanner,V=v.pod_amount;return(0,e.createComponentVNode)(2,o.Window,{width:640,height:520,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Cloning Console",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Connected scanner",children:N?"Online":"Missing"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Connected pods",children:V})]})}),(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:p===1,icon:"home",onClick:function(){function S(){return h("menu",{tab:1})}return S}(),children:"Main Menu"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:p===2,icon:"user",onClick:function(){function S(){return h("menu",{tab:2})}return S}(),children:"Damage Configuration"})]}),(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,g)})]})})}return u}(),g=function(s,d){var C=(0,a.useBackend)(d),h=C.data,v=h.tab,p;return v===1?p=(0,e.createComponentVNode)(2,i):v===2&&(p=(0,e.createComponentVNode)(2,c)),p},i=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.pods,N=v.pod_amount,V=v.selected_pod_UID;return(0,e.createComponentVNode)(2,t.Box,{children:[!N&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No pods connected."}),!!N&&p.map(function(S,I){return(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Pod "+(I+1),children:(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"96px",shrink:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:(0,f.resolveAsset)("pod_"+(S.cloning?"cloning":"idle")+".gif"),style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createComponentVNode)(2,t.Button,{selected:V===S.uid,onClick:function(){function L(){return h("select_pod",{uid:S.uid})}return L}(),children:"Select"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Progress",children:[!S.cloning&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Pod is inactive."}),!!S.cloning&&(0,e.createComponentVNode)(2,t.ProgressBar,{value:S.clone_progress,maxValue:100,color:"good"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Biomass",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:S.biomass,ranges:{good:[2*S.biomass_storage_capacity/3,S.biomass_storage_capacity],average:[S.biomass_storage_capacity/3,2*S.biomass_storage_capacity/3],bad:[0,S.biomass_storage_capacity/3]},minValue:0,maxValue:S.biomass_storage_capacity,children:[S.biomass,"/",S.biomass_storage_capacity+" ("+100*S.biomass/S.biomass_storage_capacity+"%)"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sanguine Reagent",children:S.sanguine_reagent}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Osseous Reagent",children:S.osseous_reagent})]})})]})},S)})]})},c=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.selected_pod_data,N=v.has_scanned,V=v.scanner_has_patient,S=v.feedback,I=v.scan_successful,L=v.cloning_cost,w=v.has_scanner,A=v.currently_scanning;return(0,e.createComponentVNode)(2,t.Box,{children:[!w&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No scanner connected."}),!!w&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Scanner Info",buttons:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hourglass-half",onClick:function(){function x(){return h("scan")}return x}(),disabled:!V||A,children:"Scan"}),(0,e.createComponentVNode)(2,t.Button,{icon:"eject",onClick:function(){function x(){return h("eject")}return x}(),disabled:!V||A,children:"Eject Patient"})]}),children:[!N&&!A&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:V?"No scan detected for current patient.":"No patient is in the scanner."}),(!!N||!!A)&&(0,e.createComponentVNode)(2,t.Box,{color:S.color,children:S.text})]}),(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Damages Breakdown",children:(0,e.createComponentVNode)(2,t.Box,{children:[(!I||!N)&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No valid scan detected."}),!!I&&!!N&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function x(){return h("fix_all")}return x}(),children:"Repair All Damages"}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function x(){return h("fix_none")}return x}(),children:"Repair No Damages"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function x(){return h("clone")}return x}(),children:"Clone"})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[0],maxValue:p.biomass_storage_capacity,ranges:{bad:[2*p.biomass_storage_capacity/3,p.biomass_storage_capacity],average:[p.biomass_storage_capacity/3,2*p.biomass_storage_capacity/3],good:[0,p.biomass_storage_capacity/3]},color:L[0]>p.biomass?"bad":null,children:["Biomass: ",L[0],"/",p.biomass,"/",p.biomass_storage_capacity]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[1],maxValue:p.max_reagent_capacity,ranges:{bad:[2*p.max_reagent_capacity/3,p.max_reagent_capacity],average:[p.max_reagent_capacity/3,2*p.max_reagent_capacity/3],good:[0,p.max_reagent_capacity/3]},color:L[1]>p.sanguine_reagent?"bad":"good",children:["Sanguine: ",L[1],"/",p.sanguine_reagent,"/",p.max_reagent_capacity]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[2],maxValue:p.max_reagent_capacity,ranges:{bad:[2*p.max_reagent_capacity/3,p.max_reagent_capacity],average:[p.max_reagent_capacity/3,2*p.max_reagent_capacity/3],good:[0,p.max_reagent_capacity/3]},color:L[2]>p.osseous_reagent?"bad":"good",children:["Osseous: ",L[2],"/",p.osseous_reagent,"/",p.max_reagent_capacity]})})]}),(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,l)]})]})})]})]})},m=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.patient_limb_data,N=v.limb_list,V=v.desired_limb_data;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Limbs",children:N.map(function(S,I){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Stack,{align:"baseline",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"15%",height:"20px",children:[p[S][4],":"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),p[S][3]===0&&(0,e.createComponentVNode)(2,t.Stack.Item,{width:"60%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:V[S][0]+V[S][1],maxValue:p[S][5],ranges:{good:[0,p[S][5]/3],average:[p[S][5]/3,2*p[S][5]/3],bad:[2*p[S][5]/3,p[S][5]]},children:["Post-Cloning Damage: ",(0,e.createComponentVNode)(2,t.Icon,{name:"bone"})," "+V[S][0]+" / ",(0,e.createComponentVNode)(2,t.Icon,{name:"fire"})," "+V[S][1]]})}),p[S][3]!==0&&(0,e.createComponentVNode)(2,t.Stack.Item,{width:"60%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:"bad",value:0,children:["The patient's ",p[S][4]," is missing!"]})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[!!p[S][3]&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!V[S][3],onClick:function(){function L(){return h("toggle_limb_repair",{limb:S,type:"replace"})}return L}(),children:"Replace Limb"})}),!p[S][3]&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[S][0]||p[S][1]),checked:!(V[S][0]||V[S][1]),onClick:function(){function L(){return h("toggle_limb_repair",{limb:S,type:"damage"})}return L}(),children:"Repair Damages"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[S][2]&b),checked:!(V[S][2]&b),onClick:function(){function L(){return h("toggle_limb_repair",{limb:S,type:"bone"})}return L}(),children:"Mend Bone"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[S][2]&y),checked:!(V[S][2]&y),onClick:function(){function L(){return h("toggle_limb_repair",{limb:S,type:"ib"})}return L}(),children:"Mend IB"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[S][2]&B),checked:!(V[S][2]&B),onClick:function(){function L(){return h("toggle_limb_repair",{limb:S,type:"critburn"})}return L}(),children:"Mend Critical Burn"})]})]})]},S)})})},l=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.patient_organ_data,N=v.organ_list,V=v.desired_organ_data;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Organs",children:N.map(function(S,I){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Stack,{align:"baseline",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"20%",height:"20px",children:[p[S][3],":"," "]}),p[S][5]!=="heart"&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[!!p[S][2]&&(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!V[S][2]&&!V[S][1],onClick:function(){function L(){return h("toggle_organ_repair",{organ:S,type:"replace"})}return L}(),children:"Replace Organ"}),!p[S][2]&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!p[S][0],checked:!V[S][0],onClick:function(){function L(){return h("toggle_organ_repair",{organ:S,type:"damage"})}return L}(),children:"Repair Damages"})})]})}),p[S][5]==="heart"&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Heart replacement is required for cloning."}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"35%",children:[!!p[S][2]&&(0,e.createComponentVNode)(2,t.ProgressBar,{color:"bad",value:0,children:["The patient's ",p[S][3]," is missing!"]}),!p[S][2]&&(0,e.createComponentVNode)(2,t.ProgressBar,{value:V[S][0],maxValue:p[S][4],ranges:{good:[0,p[S][4]/3],average:[p[S][4]/3,2*p[S][4]/3],bad:[2*p[S][4]/3,p[S][4]]},children:"Post-Cloning Damage: "+V[S][0]})]})]})},S)})})}},98723:function(T,r,n){"use strict";r.__esModule=!0,r.CloningPod=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.CloningPod=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.biomass,m=i.biomass_storage_capacity,l=i.sanguine_reagent,u=i.osseous_reagent,s=i.organs,d=i.currently_cloning;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Liquid Storage",children:[(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Biomass:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:c,ranges:{good:[2*m/3,m],average:[m/3,2*m/3],bad:[0,m/3]},minValue:0,maxValue:m})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Sanguine Reagent:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:l+" units"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.NumberInput,{value:0,minValue:0,maxValue:l,step:1,unit:"units",onChange:function(){function C(h,v){return g("remove_reagent",{reagent:"sanguine_reagent",amount:v})}return C}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove All",onClick:function(){function C(){return g("purge_reagent",{reagent:"sanguine_reagent"})}return C}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Osseous Reagent:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:u+" units"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.NumberInput,{value:0,minValue:0,maxValue:u,step:1,unit:"units",onChange:function(){function C(h,v){return g("remove_reagent",{reagent:"osseous_reagent",amount:v})}return C}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove All",onClick:function(){function C(){return g("purge_reagent",{reagent:"osseous_reagent"})}return C}()})})]})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Organ Storage",children:[!d&&(0,e.createComponentVNode)(2,t.Box,{children:[!s&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No organs loaded."}),!!s&&s.map(function(C){return(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:C.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject",onClick:function(){function h(){return g("eject_organ",{organ_ref:C.ref})}return h}()})})]},C)})]}),!!d&&(0,e.createComponentVNode)(2,t.Stack,{height:"100%",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"lock",size:"5",mb:3}),(0,e.createVNode)(1,"br"),"Unable to access organ storage while cloning."]})})]})]})})}return b}()},18259:function(T,r,n){"use strict";r.__esModule=!0,r.CoinMint=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=r.CoinMint=function(){function y(B,k){var g=(0,t.useBackend)(k),i=g.act,c=g.data,m=c.materials,l=c.moneyBag,u=c.moneyBagContent,s=c.moneyBagMaxContent,d=(l?210:138)+Math.ceil(m.length/4)*64;return(0,e.createComponentVNode)(2,f.Window,{width:210,height:d,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.NoticeBox,{m:0,info:!0,children:["Total coins produced: ",c.totalCoins]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Coin Type",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"power-off",color:c.active&&"bad",tooltip:!l&&"Need a money bag",disabled:!l,onClick:function(){function C(){return i("activate")}return C}()}),children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.ProgressBar,{minValue:0,maxValue:c.maxMaterials,value:c.totalMaterials})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"eject",tooltip:"Eject selected material",onClick:function(){function C(){return i("ejectMat")}return C}()})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:m.map(function(C){return(0,e.createComponentVNode)(2,o.Button,{bold:!0,inline:!0,translucent:!0,m:.2,textAlign:"center",selected:C.id===c.chosenMaterial,tooltip:C.name,content:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{className:(0,a.classes)(["materials32x32",C.id])}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:C.amount})]}),onClick:function(){function h(){return i("selectMaterial",{material:C.id})}return h}()},C.id)})})]})})}),!!l&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Money Bag",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject",disabled:c.active,onClick:function(){function C(){return i("ejectBag")}return C}()}),children:(0,e.createComponentVNode)(2,o.ProgressBar,{width:"100%",minValue:0,maxValue:s,value:u,children:[u," / ",s]})})})]})})})}return y}()},93858:function(T,r,n){"use strict";r.__esModule=!0,r.HexColorInput=r.ColorSelector=r.ColorPickerModal=r.ColorInput=void 0;var e=n(89005),a=n(51057),t=n(72253),o=n(36036),f=n(98595),b=n(44879),y=n(14448),B=n(4454),k=n(35840),g=n(9394),i=n(19203),c=["prefixed","alpha","color","fluid","onChange"];/** * @file * @copyright 2023 itsmeow * @license MIT - */function m(w,A){w.prototype=Object.create(A.prototype),w.prototype.constructor=w,l(w,A)}function l(w,A){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(x,E){return x.__proto__=E,x},l(w,A)}function u(w,A){if(w==null)return{};var x={};for(var E in w)if({}.hasOwnProperty.call(w,E)){if(A.includes(E))continue;x[E]=w[E]}return x}var s=r.ColorPickerModal=function(){function w(A,x){var E=(0,t.useBackend)(x),P=E.data,D=P.timeout,M=P.message,R=P.title,O=P.autofocus,F=P.default_color,_=F===void 0?"#000000":F,U=(0,t.useLocalState)(x,"color_picker_choice",(0,y.hexToHsva)(_)),z=U[0],$=U[1];return(0,e.createComponentVNode)(2,f.Window,{height:400,title:R,width:600,theme:"generic",children:[!!D&&(0,e.createComponentVNode)(2,a.Loader,{value:D}),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[M&&(0,e.createComponentVNode)(2,o.Stack.Item,{m:1,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:"label",overflow:"hidden",children:M})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[!!O&&(0,e.createComponentVNode)(2,o.Autofocus),(0,e.createComponentVNode)(2,d,{color:z,setColor:$,defaultColor:_})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,i.InputButtons,{input:(0,y.hsvaToHex)(z)})})]})})]})}return w}(),d=r.ColorSelector=function(){function w(A,x){var E=A.color,P=A.setColor,D=A.defaultColor,M=function(){function F(_){P(function(U){return Object.assign({},U,_)})}return F}(),R=(0,y.hsvaToRgba)(E),O=(0,y.hsvaToHex)(E);return(0,e.createComponentVNode)(2,o.Flex,{direction:"row",children:[(0,e.createComponentVNode)(2,o.Flex.Item,{mr:2,children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createVNode)(1,"div","react-colorful",[(0,e.createComponentVNode)(2,N,{hsva:E,onChange:M}),(0,e.createComponentVNode)(2,V,{hue:E.h,onChange:M,className:"react-colorful__last-control"})],4)}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"20px",textAlign:"center",children:"Current"}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"20px",textAlign:"center",children:"Previous"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Tooltip,{content:O,position:"bottom",children:(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"30px",backgroundColor:O})}),(0,e.createComponentVNode)(2,o.Tooltip,{content:D,position:"bottom",children:(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"30px",backgroundColor:D})})]})]})}),(0,e.createComponentVNode)(2,o.Flex.Item,{grow:!0,fontSize:"15px",lineHeight:"24px",children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"Hex:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,height:"24px",children:(0,e.createComponentVNode)(2,v,{fluid:!0,color:(0,y.hsvaToHex)(E).substring(1),onChange:function(){function F(_){g.logger.info(_),P((0,y.hexToHsva)(_))}return F}(),prefixed:!0})})]})}),(0,e.createComponentVNode)(2,o.Stack.Divider),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"H:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,V,{hue:E.h,onChange:M})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:E.h,callback:function(){function F(_,U){return M({h:U})}return F}(),max:360,unit:"\xB0"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"S:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,S,{color:E,onChange:M})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:E.s,callback:function(){function F(_,U){return M({s:U})}return F}(),unit:"%"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"V:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,I,{color:E,onChange:M})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:E.v,callback:function(){function F(_,U){return M({v:U})}return F}(),unit:"%"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Divider),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"R:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:E,onChange:M,target:"r"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:R.r,callback:function(){function F(_,U){R.r=U,M((0,y.rgbaToHsva)(R))}return F}(),max:255})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"G:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:E,onChange:M,target:"g"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:R.g,callback:function(){function F(_,U){R.g=U,M((0,y.rgbaToHsva)(R))}return F}(),max:255})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"B:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:E,onChange:M,target:"b"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:R.b,callback:function(){function F(_,U){R.b=U,M((0,y.rgbaToHsva)(R))}return F}(),max:255})})]})})]})})]})}return w}(),C=function(A){var x=A.value,E=A.callback,P=A.min,D=P===void 0?0:P,M=A.max,R=M===void 0?100:M,O=A.unit;return(0,e.createComponentVNode)(2,o.NumberInput,{width:"70px",value:Math.round(x),step:1,minValue:D,maxValue:R,onChange:E,unit:O})},h=function(A){return"#"+A},v=r.HexColorInput=function(){function w(A){var x=A.prefixed,E=A.alpha,P=A.color,D=A.fluid,M=A.onChange,R=u(A,c),O=function(){function _(U){return U.replace(/([^0-9A-F]+)/gi,"").substring(0,E?8:6)}return _}(),F=function(){function _(U){return(0,y.validHex)(U,E)}return _}();return(0,e.normalizeProps)((0,e.createComponentVNode)(2,p,Object.assign({},R,{fluid:D,color:P,onChange:M,escape:O,format:x?h:void 0,validate:F})))}return w}(),p=r.ColorInput=function(w){function A(E){var P;return P=w.call(this)||this,P.props=void 0,P.state=void 0,P.handleInput=function(D){var M=P.props.escape(D.currentTarget.value);P.setState({localValue:M})},P.handleBlur=function(D){D.currentTarget&&(P.props.validate(D.currentTarget.value)?P.props.onChange(P.props.escape?P.props.escape(D.currentTarget.value):D.currentTarget.value):P.setState({localValue:P.props.escape(P.props.color)}))},P.props=E,P.state={localValue:P.props.escape(P.props.color)},P}m(A,w);var x=A.prototype;return x.componentDidUpdate=function(){function E(P,D){P.color!==this.props.color&&this.setState({localValue:this.props.escape(this.props.color)})}return E}(),x.render=function(){function E(){return(0,e.createComponentVNode)(2,o.Box,{className:(0,k.classes)(["Input",this.props.fluid&&"Input--fluid"]),children:[(0,e.createVNode)(1,"div","Input__baseline",".",16),(0,e.createVNode)(64,"input","Input__input",null,1,{value:this.props.format?this.props.format(this.state.localValue):this.state.localValue,spellCheck:"false",onInput:this.handleInput,onBlur:this.handleBlur})]})}return E}(),A}(e.Component),N=function(A){var x=A.hsva,E=A.onChange,P=function(O){E({s:O.left*100,v:100-O.top*100})},D=function(O){E({s:(0,b.clamp)(x.s+O.left*100,0,100),v:(0,b.clamp)(x.v-O.top*100,0,100)})},M={"background-color":(0,y.hsvaToHslString)({h:x.h,s:100,v:100,a:1})+" !important"};return(0,e.createVNode)(1,"div","react-colorful__saturation_value",(0,e.createComponentVNode)(2,B.Interactive,{onMove:P,onKey:D,"aria-label":"Color","aria-valuetext":"Saturation "+Math.round(x.s)+"%, Brightness "+Math.round(x.v)+"%",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__saturation_value-pointer",top:1-x.v/100,left:x.s/100,color:(0,y.hsvaToHslString)(x)})}),2,{style:M})},V=function(A){var x=A.className,E=A.hue,P=A.onChange,D=function(F){P({h:360*F.left})},M=function(F){P({h:(0,b.clamp)(E+F.left*360,0,360)})},R=(0,k.classes)(["react-colorful__hue",x]);return(0,e.createVNode)(1,"div",R,(0,e.createComponentVNode)(2,B.Interactive,{onMove:D,onKey:M,"aria-label":"Hue","aria-valuenow":Math.round(E),"aria-valuemax":"360","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__hue-pointer",left:E/360,color:(0,y.hsvaToHslString)({h:E,s:100,v:100,a:1})})}),2)},S=function(A){var x=A.className,E=A.color,P=A.onChange,D=function(F){P({s:100*F.left})},M=function(F){P({s:(0,b.clamp)(E.s+F.left*100,0,100)})},R=(0,k.classes)(["react-colorful__saturation",x]);return(0,e.createVNode)(1,"div",R,(0,e.createComponentVNode)(2,B.Interactive,{style:{background:"linear-gradient(to right, "+(0,y.hsvaToHslString)({h:E.h,s:0,v:E.v,a:1})+", "+(0,y.hsvaToHslString)({h:E.h,s:100,v:E.v,a:1})+")"},onMove:D,onKey:M,"aria-label":"Saturation","aria-valuenow":Math.round(E.s),"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__saturation-pointer",left:E.s/100,color:(0,y.hsvaToHslString)({h:E.h,s:E.s,v:E.v,a:1})})}),2)},I=function(A){var x=A.className,E=A.color,P=A.onChange,D=function(F){P({v:100*F.left})},M=function(F){P({v:(0,b.clamp)(E.v+F.left*100,0,100)})},R=(0,k.classes)(["react-colorful__value",x]);return(0,e.createVNode)(1,"div",R,(0,e.createComponentVNode)(2,B.Interactive,{style:{background:"linear-gradient(to right, "+(0,y.hsvaToHslString)({h:E.h,s:E.s,v:0,a:1})+", "+(0,y.hsvaToHslString)({h:E.h,s:E.s,v:100,a:1})+")"},onMove:D,onKey:M,"aria-label":"Value","aria-valuenow":Math.round(E.s),"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__value-pointer",left:E.v/100,color:(0,y.hsvaToHslString)({h:E.h,s:E.s,v:E.v,a:1})})}),2)},L=function(A){var x=A.className,E=A.color,P=A.onChange,D=A.target,M=(0,y.hsvaToRgba)(E),R=function($){M[D]=$,P((0,y.rgbaToHsva)(M))},O=function($){R(255*$.left)},F=function($){R((0,b.clamp)(M[D]+$.left*255,0,255))},_=(0,k.classes)(["react-colorful__"+D,x]),U=D==="r"?"rgb("+Math.round(M.r)+",0,0)":D==="g"?"rgb(0,"+Math.round(M.g)+",0)":"rgb(0,0,"+Math.round(M.b)+")";return(0,e.createVNode)(1,"div",_,(0,e.createComponentVNode)(2,B.Interactive,{onMove:O,onKey:F,"aria-valuenow":M[D],"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__"+D+"-pointer",left:M[D]/255,color:U})}),2)}},8444:function(T,r,n){"use strict";r.__esModule=!0,r.ColourMatrixTester=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ColourMatrixTester=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.colour_data,m=[[{name:"RR",idx:0},{name:"RG",idx:1},{name:"RB",idx:2},{name:"RA",idx:3}],[{name:"GR",idx:4},{name:"GG",idx:5},{name:"GB",idx:6},{name:"GA",idx:7}],[{name:"BR",idx:8},{name:"BG",idx:9},{name:"BB",idx:10},{name:"BA",idx:11}],[{name:"AR",idx:12},{name:"AG",idx:13},{name:"AB",idx:14},{name:"AA",idx:15}]];return(0,e.createComponentVNode)(2,o.Window,{width:360,height:190,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Modify Matrix",children:m.map(function(l){return(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",textColor:"label",children:l.map(function(u){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:1,children:[u.name,":\xA0",(0,e.createComponentVNode)(2,t.NumberInput,{width:4,value:c[u.idx],step:.05,minValue:-5,maxValue:5,stepPixelSize:5,onChange:function(){function s(d,C){return g("setvalue",{idx:u.idx+1,value:C})}return s}()})]},u.name)})},l)})})})})})}return b}()},63818:function(T,r,n){"use strict";r.__esModule=!0,r.CommunicationsComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(s){switch(s){case 1:return(0,e.createComponentVNode)(2,B);case 2:return(0,e.createComponentVNode)(2,i);case 3:return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,c)})});case 4:return(0,e.createComponentVNode)(2,l);default:return"ERROR. Unknown menu_state. Please contact NT Technical Support."}},b=r.CommunicationsComputer=function(){function u(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.menu_state;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,y),f(p)]})})})}return u}(),y=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.authenticated,N=v.noauthbutton,V=v.esc_section,S=v.esc_callable,I=v.esc_recallable,L=v.esc_status,w=v.authhead,A=v.is_ai,x=v.lastCallLoc,E=!1,P;return p?p===1?P="Command":p===2?P="Captain":p===3?P="CentComm Officer":p===4?(P="CentComm Secure Connection",E=!0):P="ERROR: Report This Bug!":P="Not Logged In",(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Authentication",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:E&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Access",children:P})||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{icon:p?"sign-out-alt":"id-card",selected:p,disabled:N,content:p?"Log Out ("+P+")":"Log In",onClick:function(){function D(){return h("auth")}return D}()})})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:!!V&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Escape Shuttle",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!L&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:L}),!!S&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Options",children:(0,e.createComponentVNode)(2,t.Button,{icon:"rocket",content:"Call Shuttle",disabled:!w,onClick:function(){function D(){return h("callshuttle")}return D}()})}),!!I&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Options",children:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Recall Shuttle",disabled:!w||A,onClick:function(){function D(){return h("cancelshuttle")}return D}()})}),!!x&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Last Call/Recall From",children:x})]})})})],4)},B=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.is_admin;return p?(0,e.createComponentVNode)(2,k):(0,e.createComponentVNode)(2,g)},k=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.is_admin,N=v.gamma_armory_location,V=v.admin_levels,S=v.authenticated,I=v.ert_allowed;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"CentComm Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Change Alert",children:(0,e.createComponentVNode)(2,m,{levels:V,required_access:p,use_confirm:1})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Announcement",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"bullhorn",content:"Make Central Announcement",disabled:!p,onClick:function(){function L(){return h("send_to_cc_announcement_page")}return L}()}),S===4&&(0,e.createComponentVNode)(2,t.Button,{icon:"plus",content:"Make Other Announcement",disabled:!p,onClick:function(){function L(){return h("make_other_announcement")}return L}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Response Team",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"ambulance",content:"Dispatch ERT",disabled:!p,onClick:function(){function L(){return h("dispatch_ert")}return L}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:I,content:I?"ERT calling enabled":"ERT calling disabled",tooltip:I?"Command can request an ERT":"ERTs cannot be requested",disabled:!p,onClick:function(){function L(){return h("toggle_ert_allowed")}return L}(),selected:null})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nuclear Device",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"bomb",content:"Get Authentication Codes",disabled:!p,onClick:function(){function L(){return h("send_nuke_codes")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gamma Armory",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"biohazard",content:N?"Send Gamma Armory":"Recall Gamma Armory",disabled:!p,onClick:function(){function L(){return h("move_gamma_armory")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Other",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"coins",content:"View Economy",disabled:!p,onClick:function(){function L(){return h("view_econ")}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fax",content:"Fax Manager",disabled:!p,onClick:function(){function L(){return h("view_fax")}return L}()})]})]})}),(0,e.createComponentVNode)(2,t.Collapsible,{title:"View Command accessible controls",children:(0,e.createComponentVNode)(2,g)})]})},g=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.msg_cooldown,N=v.emagged,V=v.cc_cooldown,S=v.security_level_color,I=v.str_security_level,L=v.levels,w=v.authcapt,A=v.authhead,x=v.messages,E="Make Priority Announcement";p>0&&(E+=" ("+p+"s)");var P=N?"Message [UNKNOWN]":"Message CentComm",D="Request Authentication Codes";return V>0&&(P+=" ("+V+"s)",D+=" ("+V+"s)"),(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Captain-Only Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Alert",color:S,children:I}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Change Alert",children:(0,e.createComponentVNode)(2,m,{levels:L,required_access:w})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Announcement",children:(0,e.createComponentVNode)(2,t.Button,{icon:"bullhorn",content:E,disabled:!w||p>0,onClick:function(){function M(){return h("announce")}return M}()})}),!!N&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transmit",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",color:"red",content:P,disabled:!w||V>0,onClick:function(){function M(){return h("MessageSyndicate")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync-alt",content:"Reset Relays",disabled:!w,onClick:function(){function M(){return h("RestoreBackup")}return M}()})]})||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transmit",children:(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",content:P,disabled:!w||V>0,onClick:function(){function M(){return h("MessageCentcomm")}return M}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nuclear Device",children:(0,e.createComponentVNode)(2,t.Button,{icon:"bomb",content:D,disabled:!w||V>0,onClick:function(){function M(){return h("nukerequest")}return M}()})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Command Staff Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Displays",children:(0,e.createComponentVNode)(2,t.Button,{icon:"tv",content:"Change Status Displays",disabled:!A,onClick:function(){function M(){return h("status")}return M}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Incoming Messages",children:(0,e.createComponentVNode)(2,t.Button,{icon:"folder-open",content:"View ("+x.length+")",disabled:!A,onClick:function(){function M(){return h("messagelist")}return M}()})})]})})})],4)},i=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.stat_display,N=v.authhead,V=v.current_message_title,S=p.presets.map(function(L){return(0,e.createComponentVNode)(2,t.Button,{content:L.label,selected:L.name===p.type,disabled:!N,onClick:function(){function w(){return h("setstat",{statdisp:L.name})}return w}()},L.name)}),I=p.alerts.map(function(L){return(0,e.createComponentVNode)(2,t.Button,{content:L.label,selected:L.alert===p.icon,disabled:!N,onClick:function(){function w(){return h("setstat",{statdisp:3,alert:L.alert})}return w}()},L.alert)});return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Modify Status Screens",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function L(){return h("main")}return L}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Presets",children:S}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alerts",children:I}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message Line 1",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:p.line_1,disabled:!N,onClick:function(){function L(){return h("setmsg1")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message Line 2",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:p.line_2,disabled:!N,onClick:function(){function L(){return h("setmsg2")}return L}()})})]})})})},c=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.authhead,N=v.current_message_title,V=v.current_message,S=v.messages,I=v.security_level,L;if(N)L=(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:N,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Return To Message List",disabled:!p,onClick:function(){function A(){return h("messagelist")}return A}()}),children:(0,e.createComponentVNode)(2,t.Box,{children:V})})});else{var w=S.map(function(A){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:A.title,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"eye",content:"View",disabled:!p||N===A.title,onClick:function(){function x(){return h("messagelist",{msgid:A.id})}return x}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"times",content:"Delete",disabled:!p,onClick:function(){function x(){return h("delmessage",{msgid:A.id})}return x}()})]},A.id)});L=(0,e.createComponentVNode)(2,t.Section,{title:"Messages Received",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function A(){return h("main")}return A}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:w})})}return(0,e.createComponentVNode)(2,t.Box,{children:L})},m=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=s.levels,N=s.required_access,V=s.use_confirm,S=v.security_level;return V?p.map(function(I){return(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:I.icon,content:I.name,disabled:!N||I.id===S,tooltip:I.tooltip,onClick:function(){function L(){return h("newalertlevel",{level:I.id})}return L}()},I.name)}):p.map(function(I){return(0,e.createComponentVNode)(2,t.Button,{icon:I.icon,content:I.name,disabled:!N||I.id===S,tooltip:I.tooltip,onClick:function(){function L(){return h("newalertlevel",{level:I.id})}return L}()},I.name)})},l=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.is_admin,N=v.possible_cc_sounds;if(!p)return h("main");var V=(0,a.useLocalState)(d,"subtitle",""),S=V[0],I=V[1],L=(0,a.useLocalState)(d,"text",""),w=L[0],A=L[1],x=(0,a.useLocalState)(d,"classified",0),E=x[0],P=x[1],D=(0,a.useLocalState)(d,"beepsound","Beep"),M=D[0],R=D[1];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Central Command Report",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function O(){return h("main")}return O}()}),children:[(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter Subtitle here.",fluid:!0,value:S,onChange:function(){function O(F,_){return I(_)}return O}(),mb:"5px"}),(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter Announcement here,\nMultiline input is accepted.",rows:10,fluid:!0,multiline:1,value:w,onChange:function(){function O(F,_){return A(_)}return O}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Send Announcement",fluid:!0,icon:"paper-plane",center:!0,mt:"5px",textAlign:"center",onClick:function(){function O(){return h("make_cc_announcement",{subtitle:S,text:w,classified:E,beepsound:M})}return O}()}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"260px",height:"20px",options:N,selected:M,onSelected:function(){function O(F){return R(F)}return O}(),disabled:E})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"volume-up",mx:"5px",disabled:E,tooltip:"Test sound",onClick:function(){function O(){return h("test_sound",{sound:M})}return O}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:E,content:"Classified",fluid:!0,tooltip:E?"Sent to station communications consoles":"Publically announced",onClick:function(){function O(){return P(!E)}return O}()})})]})]})})}},20562:function(T,r,n){"use strict";r.__esModule=!0,r.CompostBin=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.CompostBin=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.biomass,m=i.compost,l=i.biomass_capacity,u=i.compost_capacity,s=i.potassium,d=i.potassium_capacity,C=i.potash,h=i.potash_capacity,v=(0,a.useSharedState)(B,"vendAmount",1),p=v[0],N=v[1];return(0,e.createComponentVNode)(2,o.Window,{width:360,height:250,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{label:"Resources",children:(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Biomass",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:c,minValue:0,maxValue:l,ranges:{good:[l*.5,1/0],average:[l*.25,l*.5],bad:[-1/0,l*.25]},children:[c," / ",l," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Compost",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:m,minValue:0,maxValue:u,ranges:{good:[u*.5,1/0],average:[u*.25,u*.5],bad:[-1/0,u*.25]},children:[m," / ",u," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Potassium",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:s,minValue:0,maxValue:d,ranges:{good:[d*.5,1/0],average:[d*.25,d*.5],bad:[-1/0,d*.25]},children:[s," / ",d," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Potash",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:C,minValue:0,maxValue:h,ranges:{good:[h*.5,1/0],average:[h*.25,h*.5],bad:[-1/0,h*.25]},children:[C," / ",h," Units"]})})]})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Controls",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,mr:"5px",color:"silver",children:"Soil clumps to make:"}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,value:p,width:"32px",minValue:1,maxValue:10,stepPixelSize:7,onChange:function(){function V(S,I){return N(I)}return V}()})],4),children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,align:"center",content:"Make Soil",disabled:m<25*p,icon:"arrow-circle-down",onClick:function(){function V(){return g("create",{amount:p})}return V}()})})})]})})})}return b}()},21813:function(T,r,n){"use strict";r.__esModule=!0,r.Contractor=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(73379),b=n(98595);function y(h,v){h.prototype=Object.create(v.prototype),h.prototype.constructor=h,B(h,v)}function B(h,v){return B=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(p,N){return p.__proto__=N,p},B(h,v)}var k={1:["ACTIVE","good"],2:["COMPLETED","good"],3:["FAILED","bad"]},g=["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(Math.random()*2e4),"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"],i=r.Contractor=function(){function h(v,p){var N=(0,t.useBackend)(p),V=N.act,S=N.data,I;S.unauthorized?I=(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,d,{height:"100%",allMessages:["ERROR: UNAUTHORIZED USER"],finishedTimeout:100,onFinished:function(){function x(){}return x}()})}):S.load_animation_completed?I=(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",children:(0,e.createComponentVNode)(2,c)}),(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",mt:"0.5rem",children:(0,e.createComponentVNode)(2,m)}),(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",overflow:"hidden",children:S.page===1?(0,e.createComponentVNode)(2,l,{height:"100%"}):(0,e.createComponentVNode)(2,s,{height:"100%"})})],4):I=(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,d,{height:"100%",allMessages:g,finishedTimeout:3e3,onFinished:function(){function x(){return V("complete_load_animation")}return x}()})});var L=(0,t.useLocalState)(p,"viewingPhoto",""),w=L[0],A=L[1];return(0,e.createComponentVNode)(2,b.Window,{theme:"syndicate",width:500,height:600,children:[w&&(0,e.createComponentVNode)(2,C),(0,e.createComponentVNode)(2,b.Window.Content,{className:"Contractor",children:(0,e.createComponentVNode)(2,o.Flex,{direction:"column",height:"100%",children:I})})]})}return h}(),c=function(v,p){var N=(0,t.useBackend)(p),V=N.act,S=N.data,I=S.tc_available,L=S.tc_paid_out,w=S.completed_contracts,A=S.rep;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Summary",buttons:(0,e.createComponentVNode)(2,o.Box,{verticalAlign:"middle",mt:"0.25rem",children:[A," Rep"]})},v,{children:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Box,{flexBasis:"50%",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"TC Available",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,o.Flex,{align:"center",children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",children:[I," TC"]}),(0,e.createComponentVNode)(2,o.Button,{disabled:I<=0,content:"Claim",mx:"0.75rem",mb:"0",flexBasis:"content",onClick:function(){function x(){return V("claim")}return x}()})]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"TC Earned",children:[L," TC"]})]})}),(0,e.createComponentVNode)(2,o.Box,{flexBasis:"50%",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Contracts Completed",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,o.Box,{height:"20px",lineHeight:"20px",inline:!0,children:w})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Contractor Status",verticalAlign:"middle",children:"ACTIVE"})]})})]})})))},m=function(v,p){var N=(0,t.useBackend)(p),V=N.act,S=N.data,I=S.page;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Tabs,Object.assign({},v,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:I===1,onClick:function(){function L(){return V("page",{page:1})}return L}(),children:[(0,e.createComponentVNode)(2,o.Icon,{name:"suitcase"}),"Contracts"]}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:I===2,onClick:function(){function L(){return V("page",{page:2})}return L}(),children:[(0,e.createComponentVNode)(2,o.Icon,{name:"shopping-cart"}),"Hub"]})]})))},l=function(v,p){var N=(0,t.useBackend)(p),V=N.act,S=N.data,I=S.contracts,L=S.contract_active,w=S.can_extract,A=!!L&&I.filter(function(M){return M.status===1})[0],x=A&&A.time_left>0,E=(0,t.useLocalState)(p,"viewingPhoto",""),P=E[0],D=E[1];return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Available Contracts",overflow:"auto",buttons:(0,e.createComponentVNode)(2,o.Button,{disabled:!w||x,icon:"parachute-box",content:["Call Extraction",x&&(0,e.createComponentVNode)(2,f.Countdown,{timeLeft:A.time_left,format:function(){function M(R,O){return" ("+O.substr(3)+")"}return M}()})],onClick:function(){function M(){return V("extract")}return M}()})},v,{children:I.slice().sort(function(M,R){return M.status===1?-1:R.status===1?1:M.status-R.status}).map(function(M){var R;return(0,e.createComponentVNode)(2,o.Section,{title:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",color:M.status===1&&"good",children:M.target_name}),(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",children:M.has_photo&&(0,e.createComponentVNode)(2,o.Button,{icon:"camera",mb:"-0.5rem",ml:"0.5rem",onClick:function(){function O(){return D("target_photo_"+M.uid+".png")}return O}()})})]}),className:"Contractor__Contract",buttons:(0,e.createComponentVNode)(2,o.Box,{width:"100%",children:[!!k[M.status]&&(0,e.createComponentVNode)(2,o.Box,{color:k[M.status][1],inline:!0,mt:M.status!==1&&"0.125rem",mr:"0.25rem",lineHeight:"20px",children:k[M.status][0]}),M.status===1&&(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"ban",color:"bad",content:"Abort",ml:"0.5rem",onClick:function(){function O(){return V("abort")}return O}()})]}),children:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"2",mr:"0.5rem",children:[M.fluff_message,!!M.completed_time&&(0,e.createComponentVNode)(2,o.Box,{color:"good",children:[(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Icon,{name:"check",mr:"0.5rem"}),"Contract completed at ",M.completed_time]}),!!M.dead_extraction&&(0,e.createComponentVNode)(2,o.Box,{color:"bad",mt:"0.5rem",bold:!0,children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"Telecrystals reward reduced drastically as the target was dead during extraction."]}),!!M.fail_reason&&(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:[(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Icon,{name:"times",mr:"0.5rem"}),"Contract failed: ",M.fail_reason]})]}),(0,e.createComponentVNode)(2,o.Flex.Item,{flexBasis:"100%",children:[(0,e.createComponentVNode)(2,o.Flex,{mb:"0.5rem",color:"label",children:["Extraction Zone:\xA0",u(M)]}),(R=M.difficulties)==null?void 0:R.map(function(O,F){return(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:!!L,content:O.name+" ("+O.reward+" TC)",onClick:function(){function _(){return V("activate",{uid:M.uid,difficulty:F+1})}return _}()},F)}),!!M.objective&&(0,e.createComponentVNode)(2,o.Box,{color:"white",bold:!0,children:[M.objective.extraction_name,(0,e.createVNode)(1,"br"),"(",(M.objective.rewards.tc||0)+" TC",",\xA0",(M.objective.rewards.credits||0)+" Credits",")"]})]})]})},M.uid)})})))},u=function(v){if(!(!v.objective||v.status>1)){var p=v.objective.locs.user_area_id,N=v.objective.locs.user_coords,V=v.objective.locs.target_area_id,S=v.objective.locs.target_coords,I=p===V;return(0,e.createComponentVNode)(2,o.Flex.Item,{children:(0,e.createComponentVNode)(2,o.Icon,{name:I?"dot-circle-o":"arrow-alt-circle-right-o",color:I?"green":"yellow",rotation:I?null:-(0,a.rad2deg)(Math.atan2(S[1]-N[1],S[0]-N[0])),lineHeight:I?null:"0.85",size:"1.5"})})}},s=function(v,p){var N=(0,t.useBackend)(p),V=N.act,S=N.data,I=S.rep,L=S.buyables;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Available Purchases",overflow:"auto"},v,{children:L.map(function(w){return(0,e.createComponentVNode)(2,o.Section,{title:w.name,children:[w.description,(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:I-1&&(0,e.createComponentVNode)(2,o.Box,{as:"span",color:w.stock===0?"bad":"good",ml:"0.5rem",children:[w.stock," in stock"]})]},w.uid)})})))},d=function(h){function v(N){var V;return V=h.call(this,N)||this,V.timer=null,V.state={currentIndex:0,currentDisplay:[]},V}y(v,h);var p=v.prototype;return p.tick=function(){function N(){var V=this.props,S=this.state;if(S.currentIndex<=V.allMessages.length){this.setState(function(L){return{currentIndex:L.currentIndex+1}});var I=S.currentDisplay;I.push(V.allMessages[S.currentIndex])}else clearTimeout(this.timer),setTimeout(V.onFinished,V.finishedTimeout)}return N}(),p.componentDidMount=function(){function N(){var V=this,S=this.props.linesPerSecond,I=S===void 0?2.5:S;this.timer=setInterval(function(){return V.tick()},1e3/I)}return N}(),p.componentWillUnmount=function(){function N(){clearTimeout(this.timer)}return N}(),p.render=function(){function N(){return(0,e.createComponentVNode)(2,o.Box,{m:1,children:this.state.currentDisplay.map(function(V){return(0,e.createFragment)([V,(0,e.createVNode)(1,"br")],0,V)})})}return N}(),v}(e.Component),C=function(v,p){var N=(0,t.useLocalState)(p,"viewingPhoto",""),V=N[0],S=N[1];return(0,e.createComponentVNode)(2,o.Modal,{className:"Contractor__photoZoom",children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",src:V}),(0,e.createComponentVNode)(2,o.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){function I(){return S("")}return I}()})]})}},54151:function(T,r,n){"use strict";r.__esModule=!0,r.ConveyorSwitch=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ConveyorSwitch=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.slowFactor,m=i.oneWay,l=i.position;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:135,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lever position",children:l>0?"forward":l<0?"reverse":"neutral"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Allow reverse",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!m,onClick:function(){function u(){return g("toggleOneWay")}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Slowdown factor",children:(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",onClick:function(){function u(){return g("slowFactor",{value:c-5})}return u}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-left",onClick:function(){function u(){return g("slowFactor",{value:c-1})}return u}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Slider,{width:"100px",mx:"1px",value:c,fillValue:c,minValue:1,maxValue:50,step:1,format:function(){function u(s){return s+"x"}return u}(),onChange:function(){function u(s,d){return g("slowFactor",{value:d})}return u}()})}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-right",onClick:function(){function u(){return g("slowFactor",{value:c+1})}return u}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",onClick:function(){function u(){return g("slowFactor",{value:c+5})}return u}()})," "]})]})})]})})})})}return b}()},73169:function(T,r,n){"use strict";r.__esModule=!0,r.CrewMonitor=void 0;var e=n(89005),a=n(88510),t=n(25328),o=n(72253),f=n(36036),b=n(36352),y=n(76910),B=n(98595),k=n(96184),g=["color"];function i(C,h){if(C==null)return{};var v={};for(var p in C)if({}.hasOwnProperty.call(C,p)){if(h.includes(p))continue;v[p]=C[p]}return v}var c=function(h,v){return h.dead?"Deceased":parseInt(h.health,10)<=v?"Critical":parseInt(h.stat,10)===1?"Unconscious":"Living"},m=function(h,v){return h.dead?"red":parseInt(h.health,10)<=v?"orange":parseInt(h.stat,10)===1?"blue":"green"},l=r.CrewMonitor=function(){function C(h,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,S=(0,o.useLocalState)(v,"tabIndex",V.tabIndex),I=S[0],L=S[1],w=function(){function x(E){L(E),N("set_tab_index",{tab_index:E})}return x}(),A=function(){function x(E){switch(E){case 0:return(0,e.createComponentVNode)(2,u);case 1:return(0,e.createComponentVNode)(2,d);default:return"WE SHOULDN'T BE HERE!"}}return x}();return(0,e.createComponentVNode)(2,B.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"table",selected:I===0,onClick:function(){function x(){return w(0)}return x}(),children:"Data View"},"DataView"),(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"map-marked-alt",selected:I===1,onClick:function(){function x(){return w(1)}return x}(),children:"Map View"},"MapView")]})}),A(I)]})})})}return C}(),u=function(h,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,S=V.possible_levels,I=V.viewing_current_z_level,L=V.is_advanced,w=V.highlightedNames,A=(0,a.sortBy)(function(M){return!w.includes(M.name)},function(M){return M.name})(V.crewmembers||[]),x=(0,o.useLocalState)(v,"search",""),E=x[0],P=x[1],D=(0,t.createSearch)(E,function(M){return M.name+"|"+M.assignment+"|"+M.area});return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,backgroundColor:"transparent",children:[(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Stack.Item,{width:"100%",ml:"5px",children:(0,e.createComponentVNode)(2,f.Input,{placeholder:"Search by name, assignment or location..",width:"100%",onInput:function(){function M(R,O){return P(O)}return M}()})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:L?(0,e.createComponentVNode)(2,f.Dropdown,{mr:"5px",width:"50px",options:S,selected:I,onSelected:function(){function M(R){return N("switch_level",{new_level:R})}return M}()}):null})]}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,f.Button,{tooltip:"Clear highlights",icon:"square-xmark",onClick:function(){function M(){return N("clear_highlighted_names")}return M}()})}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Location"})]}),A.filter(D).map(function(M,R){var O=w.includes(M.name);return(0,e.createComponentVNode)(2,f.Table.Row,{bold:!!M.is_command,children:[(0,e.createComponentVNode)(2,b.TableCell,{children:(0,e.createComponentVNode)(2,k.ButtonCheckbox,{checked:O,tooltip:"Mark on map",onClick:function(){function F(){return N(O?"remove_highlighted_name":"add_highlighted_name",{name:M.name})}return F}()})}),(0,e.createComponentVNode)(2,b.TableCell,{children:[M.name," (",M.assignment,")"]}),(0,e.createComponentVNode)(2,b.TableCell,{children:[(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:m(M,V.critThreshold),children:c(M,V.critThreshold)}),M.sensor_type>=2||V.ignoreSensors?(0,e.createComponentVNode)(2,f.Box,{inline:!0,ml:1,children:["(",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:y.COLORS.damageType.oxy,children:M.oxy}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:y.COLORS.damageType.toxin,children:M.tox}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:y.COLORS.damageType.burn,children:M.fire}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:y.COLORS.damageType.brute,children:M.brute}),")"]}):null]}),(0,e.createComponentVNode)(2,b.TableCell,{children:M.sensor_type===3||V.ignoreSensors?V.isAI||V.isObserver?(0,e.createComponentVNode)(2,f.Button,{fluid:!0,icon:"location-arrow",content:M.area+" ("+M.x+", "+M.y+")",onClick:function(){function F(){return N("track",{track:M.ref})}return F}()}):M.area+" ("+M.x+", "+M.y+")":(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:"grey",children:"Not Available"})})]},R)})]})]})},s=function(h,v){var p=h.color,N=i(h,g);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.NanoMap.Marker,Object.assign({},N,{children:(0,e.createVNode)(1,"span","highlighted-marker color-border-"+p)})))},d=function(h,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,S=V.highlightedNames;return(0,e.createComponentVNode)(2,f.Box,{height:"100vh",mb:"0.5rem",overflow:"hidden",children:(0,e.createComponentVNode)(2,f.NanoMap,{zoom:V.zoom,offsetX:V.offsetX,offsetY:V.offsetY,onZoom:function(){function I(L){return N("set_zoom",{zoom:L})}return I}(),onOffsetChange:function(){function I(L,w){return N("set_offset",{offset_x:w.offsetX,offset_y:w.offsetY})}return I}(),children:V.crewmembers.filter(function(I){return I.sensor_type===3||V.ignoreSensors}).map(function(I){var L=m(I,V.critThreshold),w=S.includes(I.name),A=function(){return V.isObserver?N("track",{track:I.ref}):null},x=function(){return N(w?"remove_highlighted_name":"add_highlighted_name",{name:I.name})},E=I.name+" ("+I.assignment+")";return w?(0,e.createComponentVNode)(2,s,{x:I.x,y:I.y,tooltip:E,color:L,onClick:A,onDblClick:x},I.ref):(0,e.createComponentVNode)(2,f.NanoMap.MarkerIcon,{x:I.x,y:I.y,icon:"circle",tooltip:E,color:L,onClick:A,onDblClick:x},I.ref)})})})}},63987:function(T,r,n){"use strict";r.__esModule=!0,r.Cryo=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],b=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],y=r.Cryo=function(){function g(i,c){return(0,e.createComponentVNode)(2,o.Window,{width:520,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,B)})})})}return g}(),B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.isOperating,d=u.hasOccupant,C=u.occupant,h=C===void 0?[]:C,v=u.cellTemperature,p=u.cellTemperatureStatus,N=u.isBeakerLoaded,V=u.cooldownProgress,S=u.auto_eject_healthy,I=u.auto_eject_dead;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Occupant",fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"user-slash",onClick:function(){function L(){return l("ejectOccupant")}return L}(),disabled:!d,children:"Eject"}),children:d?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Occupant",children:h.name||"Unknown"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:h.health,max:h.maxHealth,value:h.health/h.maxHealth,color:h.health>0?"good":"average",children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(h.health)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:b[h.stat][0],children:b[h.stat][1]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(h.bodyTemperature)})," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),f.map(function(L){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:L.label,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:h[L.type]/100,ranges:{bad:[.01,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(h[L.type])})})},L.id)})]}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Cell",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",onClick:function(){function L(){return l("ejectBeaker")}return L}(),disabled:!N,children:"Eject Beaker"}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",onClick:function(){function L(){return l(s?"switchOff":"switchOn")}return L}(),selected:s,children:s?"On":"Off"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",color:p,children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:v})," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:(0,e.createComponentVNode)(2,k)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dosage interval",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{average:[-1/0,99],good:[99,1/0]},color:!N&&"average",value:V,minValue:0,maxValue:100})}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto-eject healthy occupants",children:(0,e.createComponentVNode)(2,t.Button,{icon:S?"toggle-on":"toggle-off",selected:S,onClick:function(){function L(){return l(S?"auto_eject_healthy_off":"auto_eject_healthy_on")}return L}(),children:S?"On":"Off"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto-eject dead occupants",children:(0,e.createComponentVNode)(2,t.Button,{icon:I?"toggle-on":"toggle-off",selected:I,onClick:function(){function L(){return l(I?"auto_eject_dead_off":"auto_eject_dead_on")}return L}(),children:I?"On":"Off"})})]})})})],4)},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.isBeakerLoaded,d=u.beakerLabel,C=u.beakerVolume;return s?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:!d&&"average",children:[d||"No label",":"]}),(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:!C&&"bad",ml:1,children:C?(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:C,format:function(){function h(v){return Math.round(v)+" units remaining"}return h}()}):"Beaker is empty"})],4):(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"bad",children:"No beaker loaded"})}},86099:function(T,r,n){"use strict";r.__esModule=!0,r.CryopodConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=r.CryopodConsole=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.data,l=m.account_name,u=m.allow_items;return(0,e.createComponentVNode)(2,o.Window,{title:"Cryopod Console",width:400,height:480,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Hello, "+(l||"[REDACTED]")+"!",children:"This automated cryogenic freezing unit will safely store your corporeal form until your next assignment."}),(0,e.createComponentVNode)(2,y),!!u&&(0,e.createComponentVNode)(2,B)]})})}return k}(),y=function(g,i){var c=(0,a.useBackend)(i),m=c.data,l=m.frozen_crew;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Stored Crew",children:l.length?(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:l.map(function(u,s){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:u.name,children:u.rank},s)})})}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No stored crew!"})})},B=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.frozen_items,s=function(C){var h=C.toString();return h.startsWith("the ")&&(h=h.slice(4,h.length)),(0,f.toTitleCase)(h)};return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Stored Items",children:u.length?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:u.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:s(d.name),buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Drop",mr:1,onClick:function(){function C(){return m("one_item",{item:d.uid})}return C}()})},d)})})}),(0,e.createComponentVNode)(2,t.Button,{content:"Drop All Items",color:"red",onClick:function(){function d(){return m("all_items")}return d}()})],4):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No stored items!"})})}},12692:function(T,r,n){"use strict";r.__esModule=!0,r.DNAModifier=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=[["good","Alive"],["average","Critical"],["bad","DEAD"]],y=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],B=[5,10,20,30,50],k=r.DNAModifier=function(){function p(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.irradiating,A=L.dnaBlockSize,x=L.occupant;V.dnaBlockSize=A,V.isDNAInvalid=!x.isViableSubject||!x.uniqueIdentity||!x.structuralEnzymes;var E;return w&&(E=(0,e.createComponentVNode)(2,h,{duration:w})),(0,e.createComponentVNode)(2,o.Window,{width:660,height:775,children:[(0,e.createComponentVNode)(2,f.ComplexModal),E,(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,g)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,i)})]})})]})}return p}(),g=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.locked,A=L.hasOccupant,x=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{color:"label",inline:!0,mr:"0.5rem",children:"Door Lock:"}),(0,e.createComponentVNode)(2,t.Button,{disabled:!A,selected:w,icon:w?"toggle-on":"toggle-off",content:w?"Engaged":"Disengaged",onClick:function(){function E(){return I("toggleLock")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!A||w,icon:"user-slash",content:"Eject",onClick:function(){function E(){return I("ejectOccupant")}return E}()})],4),children:A?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:x.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:x.minHealth,max:x.maxHealth,value:x.health/x.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:b[x.stat][0],children:b[x.stat][1]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider)]})}),V.isDNAInvalid?(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-circle"}),"\xA0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Radiation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:"0",max:"100",value:x.radiationLevel/100,color:"average"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unique Enzymes",children:L.occupant.uniqueEnzymes?L.occupant.uniqueEnzymes:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-circle"}),"\xA0 Unknown"]})})]})],0):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"Cell unoccupied."})})},i=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.selectedMenuKey,A=L.hasOccupant,x=L.occupant;if(A){if(V.isDNAInvalid)return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No operation possible on this subject."]})})})}else return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant in DNA modifier."]})})});var E;return w==="ui"?E=(0,e.createFragment)([(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,l)],4):w==="se"?E=(0,e.createFragment)([(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,l)],4):w==="buffer"?E=(0,e.createComponentVNode)(2,u):w==="rejuvenators"&&(E=(0,e.createComponentVNode)(2,C)),(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:y.map(function(P,D){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:P[2],selected:w===P[0],onClick:function(){function M(){return I("selectMenuKey",{key:P[0]})}return M}(),children:P[1]},D)})}),E]})},c=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.selectedUIBlock,A=L.selectedUISubBlock,x=L.selectedUITarget,E=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Modify Unique Identifier",children:[(0,e.createComponentVNode)(2,v,{dnaString:E.uniqueIdentity,selectedBlock:w,selectedSubblock:A,blockSize:V.dnaBlockSize,action:"selectUIBlock"}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:15,stepPixelSize:"20",value:x,format:function(){function P(D){return D.toString(16).toUpperCase()}return P}(),ml:"0",onChange:function(){function P(D,M){return I("changeUITarget",{value:M})}return P}()})})}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Irradiate Block",mt:"0.5rem",onClick:function(){function P(){return I("pulseUIRadiation")}return P}()})]})},m=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.selectedSEBlock,A=L.selectedSESubBlock,x=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Modify Structural Enzymes",children:[(0,e.createComponentVNode)(2,v,{dnaString:x.structuralEnzymes,selectedBlock:w,selectedSubblock:A,blockSize:V.dnaBlockSize,action:"selectSEBlock"}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Irradiate Block",onClick:function(){function E(){return I("pulseSERadiation")}return E}()})]})},l=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.radiationIntensity,A=L.radiationDuration;return(0,e.createComponentVNode)(2,t.Section,{title:"Radiation Emitter",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Intensity",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:10,stepPixelSize:20,value:w,popUpPosition:"right",ml:"0",onChange:function(){function x(E,P){return I("radiationIntensity",{value:P})}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Duration",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:20,stepPixelSize:10,unit:"s",value:A,popUpPosition:"right",ml:"0",onChange:function(){function x(E,P){return I("radiationDuration",{value:P})}return x}()})})]}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Pulse Radiation",tooltip:"Mutates a random block of either the occupant's UI or SE.",tooltipPosition:"top-start",mt:"0.5rem",onClick:function(){function x(){return I("pulseRadiation")}return x}()})]})},u=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.buffers,A=w.map(function(x,E){return(0,e.createComponentVNode)(2,s,{id:E+1,name:"Buffer "+(E+1),buffer:x},E)});return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{height:"75%",mt:1,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Buffers",children:A})}),(0,e.createComponentVNode)(2,t.Stack.Item,{height:"25%",children:(0,e.createComponentVNode)(2,d)})]})},s=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=N.id,A=N.name,x=N.buffer,E=L.isInjectorReady,P=A+(x.data?" - "+x.label:"");return(0,e.createComponentVNode)(2,t.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.createComponentVNode)(2,t.Section,{title:P,mx:"0",lineHeight:"18px",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{disabled:!x.data,icon:"trash",content:"Clear",onClick:function(){function D(){return I("bufferOption",{option:"clear",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!x.data,icon:"pen",content:"Rename",onClick:function(){function D(){return I("bufferOption",{option:"changeLabel",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!x.data||!L.hasDisk,icon:"save",content:"Export",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-start",onClick:function(){function D(){return I("bufferOption",{option:"saveDisk",id:w})}return D}()})],4),children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Write",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject U.I",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"saveUI",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject U.I and U.E.",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"saveUIAndUE",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject S.E.",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"saveSE",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!L.hasDisk||!L.disk.data,icon:"arrow-circle-down",content:"From Disk",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"loadDisk",id:w})}return D}()})]}),!!x.data&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subject",children:x.owner||(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Unknown"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Type",children:[x.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!x.ue&&" and Unique Enzymes"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transfer to",children:[(0,e.createComponentVNode)(2,t.Button,{disabled:!E,icon:E?"syringe":"spinner",iconSpin:!E,content:"Injector",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"createInjector",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!E,icon:E?"syringe":"spinner",iconSpin:!E,content:"Block Injector",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"createInjector",id:w,block:1})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"user",content:"Subject",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"transfer",id:w})}return D}()})]})],4)]}),!x.data&&(0,e.createComponentVNode)(2,t.Box,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},d=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.hasDisk,A=L.disk;return(0,e.createComponentVNode)(2,t.Section,{title:"Data Disk",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{disabled:!w||!A.data,icon:"trash",content:"Wipe",onClick:function(){function x(){return I("wipeDisk")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!w,icon:"eject",content:"Eject",onClick:function(){function x(){return I("ejectDisk")}return x}()})],4),children:w?A.data?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Label",children:A.label?A.label:"No label"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subject",children:A.owner?A.owner:(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Unknown"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Type",children:[A.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!A.ue&&" and Unique Enzymes"]})]}):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"Disk is blank."}):(0,e.createComponentVNode)(2,t.Box,{color:"label",textAlign:"center",my:"1rem",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"save-o",size:"4"}),(0,e.createVNode)(1,"br"),"No disk inserted."]})})},C=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.isBeakerLoaded,A=L.beakerVolume,x=L.beakerLabel;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Rejuvenators and Beaker",buttons:(0,e.createComponentVNode)(2,t.Button,{disabled:!w,icon:"eject",content:"Eject",onClick:function(){function E(){return I("ejectBeaker")}return E}()}),children:w?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Inject",children:[B.map(function(E,P){return(0,e.createComponentVNode)(2,t.Button,{disabled:E>A,icon:"syringe",content:E,onClick:function(){function D(){return I("injectRejuvenators",{amount:E})}return D}()},P)}),(0,e.createComponentVNode)(2,t.Button,{disabled:A<=0,icon:"syringe",content:"All",onClick:function(){function E(){return I("injectRejuvenators",{amount:A})}return E}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:[(0,e.createComponentVNode)(2,t.Box,{mb:"0.5rem",children:x||"No label"}),A?(0,e.createComponentVNode)(2,t.Box,{color:"good",children:[A," unit",A===1?"":"s"," remaining"]}):(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Empty"})]})]}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"flask",size:5,color:"silver"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"h3",null,"No beaker loaded.",16)]})})})},h=function(N,V){return(0,e.createComponentVNode)(2,t.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"spinner",size:"5",spin:!0}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{color:"average",children:(0,e.createVNode)(1,"h1",null,[(0,e.createComponentVNode)(2,t.Icon,{name:"radiation"}),(0,e.createTextVNode)("\xA0Irradiating occupant\xA0"),(0,e.createComponentVNode)(2,t.Icon,{name:"radiation"})],4)}),(0,e.createComponentVNode)(2,t.Box,{color:"label",children:(0,e.createVNode)(1,"h3",null,[(0,e.createTextVNode)("For "),N.duration,(0,e.createTextVNode)(" second"),N.duration===1?"":"s"],0)})]})},v=function(N,V){for(var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=N.dnaString,A=N.selectedBlock,x=N.selectedSubblock,E=N.blockSize,P=N.action,D=w.split(""),M=0,R=[],O=function(){for(var U=F/E+1,z=[],$=function(){var J=G+1;z.push((0,e.createComponentVNode)(2,t.Button,{selected:A===U&&x===J,content:D[F+G],mb:"0",onClick:function(){function se(){return I(P,{block:U,subblock:J})}return se}()}))},G=0;Gd.spawnpoints?"red":"green",children:[d.total," total, versus ",d.spawnpoints," spawnpoints"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dispatch",children:(0,e.createComponentVNode)(2,t.Button,{width:10.5,textAlign:"center",icon:"ambulance",content:"Send ERT",onClick:function(){function N(){return s("dispatch_ert",{silent:v})}return N}()})})]})})})},g=function(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.ert_request_messages;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:C&&C.length?C.map(function(h){return(0,e.createComponentVNode)(2,t.Section,{title:h.time,buttons:(0,e.createComponentVNode)(2,t.Button,{content:h.sender_real_name,onClick:function(){function v(){return s("view_player_panel",{uid:h.sender_uid})}return v}(),tooltip:"View player panel"}),children:h.message},(0,f.decodeHtmlEntities)(h.time))}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"broadcast-tower",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No ERT requests."]})})})})},i=function(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=(0,a.useLocalState)(l,"text",""),h=C[0],v=C[1];return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter ERT denial reason here,\nMultiline input is accepted.",rows:19,fluid:!0,multiline:1,value:h,onChange:function(){function p(N,V){return v(V)}return p}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Deny ERT",fluid:!0,icon:"times",center:!0,mt:2,textAlign:"center",onClick:function(){function p(){return s("deny_ert",{reason:h})}return p}()})]})})}},90217:function(T,r,n){"use strict";r.__esModule=!0,r.EconomyManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.EconomyManager=function(){function B(k,g){return(0,e.createComponentVNode)(2,o.Window,{width:600,height:325,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,e.createComponentVNode)(2,y)})]})}return B}(),y=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.next_payroll_time;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.4rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"coins",verticalAlign:"middle",size:3,mr:"1rem"}),"Economy Manager"]}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.LabeledList,{label:"Pay Bonuses and Deductions",children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Global",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Global Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"global"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Department Accounts",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Department Account Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"department"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Department Members",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Department Members Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"department_members"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Single Accounts",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Crew Member Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"crew_member"})}return u}()})})]}),(0,e.createVNode)(1,"hr"),(0,e.createComponentVNode)(2,t.Box,{mb:.5,children:["Next Payroll in: ",l," Minutes"]}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",width:"auto",color:"bad",content:"Delay Payroll",onClick:function(){function u(){return c("delay_payroll")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{width:"auto",content:"Set Payroll Time",onClick:function(){function u(){return c("set_payroll")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",width:"auto",color:"good",content:"Accelerate Payroll",onClick:function(){function u(){return c("accelerate_payroll")}return u}()})]}),(0,e.createComponentVNode)(2,t.NoticeBox,{children:[(0,e.createVNode)(1,"b",null,"WARNING:",16)," You take full responsibility for unbalancing the economy with these buttons!"]})],4)}},82565:function(T,r,n){"use strict";r.__esModule=!0,r.Electropack=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.Electropack=function(){function y(B,k){var g=(0,t.useBackend)(k),i=g.act,c=g.data,m=c.power,l=c.code,u=c.frequency,s=c.minFrequency,d=c.maxFrequency;return(0,e.createComponentVNode)(2,f.Window,{width:360,height:135,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,o.Button,{icon:m?"power-off":"times",content:m?"On":"Off",selected:m,onClick:function(){function C(){return i("power")}return C}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Reset",onClick:function(){function C(){return i("reset",{reset:"freq"})}return C}()}),children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:s/10,maxValue:d/10,value:u/10,format:function(){function C(h){return(0,a.toFixed)(h,1)}return C}(),width:"80px",onChange:function(){function C(h,v){return i("freq",{freq:v})}return C}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Reset",onClick:function(){function C(){return i("reset",{reset:"code"})}return C}()}),children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:"80px",onChange:function(){function C(h,v){return i("code",{code:v})}return C}()})})]})})})})}return y}()},11243:function(T,r,n){"use strict";r.__esModule=!0,r.Emojipedia=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=r.Emojipedia=function(){function B(k,g){var i=(0,t.useBackend)(g),c=i.data,m=c.emoji_list,l=(0,t.useLocalState)(g,"searchText",""),u=l[0],s=l[1],d=m.filter(function(C){return C.name.toLowerCase().includes(u.toLowerCase())});return(0,e.createComponentVNode)(2,f.Window,{width:325,height:400,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Emojipedia v1.0.1",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by name",value:u,onInput:function(){function C(h,v){return s(v)}return C}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"Click on an emoji to copy its tag!",tooltipPosition:"bottom",icon:"circle-question"})],4),children:d.map(function(C){return(0,e.createComponentVNode)(2,o.Button,{m:1,color:"transparent",className:(0,a.classes)(["emoji16x16","emoji-"+C.name]),style:{transform:"scale(1.5)"},tooltip:C.name,onClick:function(){function h(){y(C.name)}return h}()},C.name)})})})})}return B}(),y=function(k){var g=document.createElement("input"),i=":"+k+":";g.value=i,document.body.appendChild(g),g.select(),document.execCommand("copy"),document.body.removeChild(g)}},36730:function(T,r,n){"use strict";r.__esModule=!0,r.EvolutionMenu=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(64795),y=n(88510),B=r.EvolutionMenu=function(){function i(c,m){return(0,e.createComponentVNode)(2,f.Window,{width:480,height:580,theme:"changeling",children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g)]})})})}return i}(),k=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.evo_points,C=s.can_respec;return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Evolution Points",height:5.5,children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,color:"label",children:"Points remaining:"}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,ml:2,bold:!0,color:"#1b945c",children:d}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Button,{ml:2.5,disabled:!C,content:"Readapt",icon:"sync",onClick:function(){function h(){return u("readapt")}return h}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"By transforming a humanoid into a husk, we gain the ability to readapt our chosen evolutions.",tooltipPosition:"bottom",icon:"question-circle"})]})]})})})},g=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.evo_points,C=s.ability_tabs,h=s.purchased_abilities,v=s.view_mode,p=(0,t.useLocalState)(m,"selectedTab",C[0]),N=p[0],V=p[1],S=(0,t.useLocalState)(m,"searchText",""),I=S[0],L=S[1],w=(0,t.useLocalState)(m,"ability_tabs",C[0].abilities),A=w[0],x=w[1],E=function(R,O){if(O===void 0&&(O=""),!R||R.length===0)return[];var F=(0,a.createSearch)(O,function(_){return _.name+"|"+_.description});return(0,b.flow)([(0,y.filter)(function(_){return _==null?void 0:_.name}),(0,y.filter)(F),(0,y.sortBy)(function(_){return _==null?void 0:_.name})])(R)},P=function(R){if(L(R),R==="")return x(N.abilities);x(E(C.map(function(O){return O.abilities}).flat(),R))},D=function(R){V(R),x(R.abilities),L("")};return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Abilities",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Input,{width:"200px",placeholder:"Search Abilities",onInput:function(){function M(R,O){P(O)}return M}(),value:I}),(0,e.createComponentVNode)(2,o.Button,{icon:v?"square-o":"check-square-o",selected:!v,content:"Compact",onClick:function(){function M(){return u("set_view_mode",{mode:0})}return M}()}),(0,e.createComponentVNode)(2,o.Button,{icon:v?"check-square-o":"square-o",selected:v,content:"Expanded",onClick:function(){function M(){return u("set_view_mode",{mode:1})}return M}()})],4),children:[(0,e.createComponentVNode)(2,o.Tabs,{children:C.map(function(M){return(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:I===""&&N===M,onClick:function(){function R(){D(M)}return R}(),children:M.category},M)})}),A.map(function(M,R){return(0,e.createComponentVNode)(2,o.Box,{p:.5,mx:-1,className:"candystripe",children:[(0,e.createComponentVNode)(2,o.Stack,{align:"center",children:[(0,e.createComponentVNode)(2,o.Stack.Item,{ml:.5,color:"#dedede",children:M.name}),h.includes(M.power_path)&&(0,e.createComponentVNode)(2,o.Stack.Item,{ml:2,bold:!0,color:"#1b945c",children:"(Purchased)"}),(0,e.createComponentVNode)(2,o.Stack.Item,{mr:3,textAlign:"right",grow:1,children:[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:["Cost:"," "]}),(0,e.createComponentVNode)(2,o.Box,{as:"span",bold:!0,color:"#1b945c",children:M.cost})]}),(0,e.createComponentVNode)(2,o.Stack.Item,{textAlign:"right",children:(0,e.createComponentVNode)(2,o.Button,{mr:.5,disabled:M.cost>d||h.includes(M.power_path),content:"Evolve",onClick:function(){function O(){return u("purchase",{power_path:M.power_path})}return O}()})})]}),!!v&&(0,e.createComponentVNode)(2,o.Stack,{color:"#8a8a8a",my:1,ml:1.5,width:"95%",children:M.description+" "+M.helptext})]},R)})]})})}},17370:function(T,r,n){"use strict";r.__esModule=!0,r.ExosuitFabricator=void 0;var e=n(89005),a=n(35840),t=n(25328),o=n(72253),f=n(36036),b=n(73379),y=n(98595),B=["id","amount","lineDisplay","onClick"];function k(p,N){if(p==null)return{};var V={};for(var S in p)if({}.hasOwnProperty.call(p,S)){if(N.includes(S))continue;V[S]=p[S]}return V}var g=2e3,i={bananium:"clown",tranquillite:"mime"},c=r.ExosuitFabricator=function(){function p(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.building,A=L.linked;return A?(0,e.createComponentVNode)(2,y.Window,{width:950,height:625,children:(0,e.createComponentVNode)(2,y.Window.Content,{className:"Exofab",children:[(0,e.createComponentVNode)(2,v),(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,l)}),w&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,u)})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m)}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,s)})]})})]})]})}):(0,e.createComponentVNode)(2,h)}return p}(),m=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.materials,A=L.capacity,x=Object.values(w).reduce(function(E,P){return E+P},0);return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:"Materials",className:"Exofab__materials",buttons:(0,e.createComponentVNode)(2,f.Box,{color:"label",mt:"0.25rem",children:[(x/A*100).toPrecision(3),"% full"]}),children:["metal","glass","silver","gold","uranium","titanium","plasma","diamond","bluespace","bananium","tranquillite","plastic"].map(function(E){return(0,e.createComponentVNode)(2,d,{mt:-2,id:E,bold:E==="metal"||E==="glass",onClick:function(){function P(){return I("withdraw",{id:E})}return P}()},E)})})},l=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.curCategory,A=L.categories,x=L.designs,E=L.syncing,P=(0,o.useLocalState)(V,"searchText",""),D=P[0],M=P[1],R=(0,t.createSearch)(D,function(z){return z.name}),O=x.filter(R),F=(0,o.useLocalState)(V,"levelsModal",!1),_=F[0],U=F[1];return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,className:"Exofab__designs",title:(0,e.createComponentVNode)(2,f.Dropdown,{width:"19rem",className:"Exofab__dropdown",selected:w,options:A,onSelected:function(){function z($){return I("category",{cat:$})}return z}()}),buttons:(0,e.createComponentVNode)(2,f.Box,{mt:"2px",children:[(0,e.createComponentVNode)(2,f.Button,{icon:"plus",content:"Queue all",onClick:function(){function z(){return I("queueall")}return z}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"info",content:"Show current tech levels",onClick:function(){function z(){return U(!0)}return z}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"unlink",color:"red",tooltip:"Disconnect from R&D network",onClick:function(){function z(){return I("unlink")}return z}()})]}),children:[(0,e.createComponentVNode)(2,f.Input,{placeholder:"Search by name...",mb:"0.5rem",width:"100%",onInput:function(){function z($,G){return M(G)}return z}()}),O.map(function(z){return(0,e.createComponentVNode)(2,C,{design:z},z.id)}),O.length===0&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No designs found."})]})},u=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.building,A=L.buildStart,x=L.buildEnd,E=L.worldTime;return(0,e.createComponentVNode)(2,f.Section,{className:"Exofab__building",stretchContents:!0,children:(0,e.createComponentVNode)(2,f.ProgressBar.Countdown,{start:A,current:E,end:x,children:(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Icon,{name:"cog",spin:!0})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:["Building ",w,"\xA0(",(0,e.createComponentVNode)(2,b.Countdown,{current:E,timeLeft:x-E,format:function(){function P(D,M){return M.substr(3)}return P}()}),")"]})]})})})},s=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.queue,A=L.processingQueue,x=Object.entries(L.queueDeficit).filter(function(P){return P[1]<0}),E=w.reduce(function(P,D){return P+D.time},0);return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,className:"Exofab__queue",title:"Queue",buttons:(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,f.Button,{selected:A,icon:A?"toggle-on":"toggle-off",content:"Process",onClick:function(){function P(){return I("process")}return P}()}),(0,e.createComponentVNode)(2,f.Button,{disabled:w.length===0,icon:"eraser",content:"Clear",onClick:function(){function P(){return I("unqueueall")}return P}()})]}),children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:w.length===0?(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"The queue is empty."}):(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--queue",grow:!0,overflow:"auto",children:w.map(function(P,D){return(0,e.createComponentVNode)(2,f.Box,{color:P.notEnough&&"bad",children:[D+1,". ",P.name,D>0&&(0,e.createComponentVNode)(2,f.Button,{icon:"arrow-up",onClick:function(){function M(){return I("queueswap",{from:D+1,to:D})}return M}()}),D0&&(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--time",children:[(0,e.createComponentVNode)(2,f.Divider),"Processing time:",(0,e.createComponentVNode)(2,f.Icon,{name:"clock",mx:"0.5rem"}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,bold:!0,children:new Date(E/10*1e3).toISOString().substr(14,5)})]}),Object.keys(x).length>0&&(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--deficit",shrink:"0",children:[(0,e.createComponentVNode)(2,f.Divider),"Lacking materials to complete:",x.map(function(P){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,d,{id:P[0],amount:-P[1],lineDisplay:!0})},P[0])})]})],0)})})},d=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=N.id,A=N.amount,x=N.lineDisplay,E=N.onClick,P=k(N,B),D=L.materials[w]||0,M=A||D;if(!(M<=0&&!(w==="metal"||w==="glass"))){var R=A&&A>D;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.Stack,Object.assign({align:"center",className:(0,a.classes)(["Exofab__material",x&&"Exofab__material--line"])},P,{children:x?(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{className:(0,a.classes)(["materials32x32",w])}),(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__material--amount",color:R&&"bad",ml:0,mr:1,children:M.toLocaleString("en-US")})],4):(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{basis:"content",children:(0,e.createComponentVNode)(2,f.Button,{width:"85%",color:"transparent",onClick:E,children:(0,e.createComponentVNode)(2,f.Box,{mt:1,className:(0,a.classes)(["materials32x32",w])})})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:"1",children:[(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__material--name",children:w}),(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__material--amount",children:[M.toLocaleString("en-US")," cm\xB3 (",Math.round(M/g*10)/10," ","sheets)"]})]})],4)})))}},C=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=N.design;return(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__design",children:[(0,e.createComponentVNode)(2,f.Button,{disabled:w.notEnough||L.building,icon:"cog",content:w.name,onClick:function(){function A(){return I("build",{id:w.id})}return A}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"plus-circle",onClick:function(){function A(){return I("queue",{id:w.id})}return A}()}),(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__design--cost",children:Object.entries(w.cost).map(function(A){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,d,{id:A[0],amount:A[1],lineDisplay:!0})},A[0])})}),(0,e.createComponentVNode)(2,f.Stack,{className:"Exofab__design--time",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"clock"}),w.time>0?(0,e.createFragment)([w.time/10,(0,e.createTextVNode)(" seconds")],0):"Instant"]})})]})},h=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.controllers;return(0,e.createComponentVNode)(2,y.Window,{children:(0,e.createComponentVNode)(2,y.Window.Content,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Link"})]}),w.map(function(A){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:A.addr}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:A.net_id}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,f.Button,{content:"Link",icon:"link",onClick:function(){function x(){return I("linktonetworkcontroller",{target_controller:A.addr})}return x}()})})]},A.addr)})]})})})})},v=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.tech_levels,A=(0,o.useLocalState)(V,"levelsModal",!1),x=A[0],E=A[1];return x?(0,e.createComponentVNode)(2,f.Modal,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:window.innerHeight*.75+"px",mx:"auto",children:(0,e.createComponentVNode)(2,f.Section,{title:"Current tech levels",buttons:(0,e.createComponentVNode)(2,f.Button,{content:"Close",onClick:function(){function P(){E(!1)}return P}()}),children:(0,e.createComponentVNode)(2,f.LabeledList,{children:w.map(function(P){var D=P.name,M=P.level;return(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:D,children:M},D)})})})}):null}},59128:function(T,r,n){"use strict";r.__esModule=!0,r.ExperimentConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=new Map([[0,{text:"Conscious",color:"good"}],[1,{text:"Unconscious",color:"average"}],[2,{text:"Deceased",color:"bad"}]]),b=new Map([[0,{label:"Probe",icon:"thermometer"}],[1,{label:"Dissect",icon:"brain"}],[2,{label:"Analyze",icon:"search"}]]),y=r.ExperimentConsole=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.open,u=m.feedback,s=m.occupant,d=m.occupant_name,C=m.occupant_status,h=function(){function p(){if(!s)return(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No specimen detected."});var N=function(){function S(){return f.get(C)}return S}(),V=N();return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:d}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:V.color,children:V.text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Experiments",children:[0,1,2].map(function(S){return(0,e.createComponentVNode)(2,t.Button,{icon:b.get(S).icon,content:b.get(S).label,onClick:function(){function I(){return c("experiment",{experiment_type:S})}return I}()},S)})})]})}return p}(),v=h();return(0,e.createComponentVNode)(2,o.Window,{theme:"abductor",width:350,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:u})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Scanner",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){function p(){return c("door")}return p}()}),children:v})]})})}return B}()},97086:function(T,r,n){"use strict";r.__esModule=!0,r.ExternalAirlockController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=0,b=1013,y=function(g){var i="good",c=80,m=95,l=110,u=120;return gl?i="average":g>u&&(i="bad"),i},B=r.ExternalAirlockController=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.chamber_pressure,s=l.exterior_status,d=l.interior_status,C=l.processing;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:205,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Information",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Chamber Pressure",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:y(u),value:u,minValue:f,maxValue:b,children:[u," kPa"]})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Actions",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Abort",icon:"ban",color:"red",disabled:!C,onClick:function(){function h(){return m("abort")}return h}()}),children:[(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:C,onClick:function(){function h(){return m("cycle_ext")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Cycle to Interior",icon:"arrow-circle-right",disabled:C,onClick:function(){function h(){return m("cycle_int")}return h}()})]}),(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Force Exterior Door",icon:"exclamation-triangle",color:d==="open"?"red":C?"yellow":null,onClick:function(){function h(){return m("force_ext")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Force Interior Door",icon:"exclamation-triangle",color:d==="open"?"red":C?"yellow":null,onClick:function(){function h(){return m("force_int")}return h}()})]})]})]})})}return k}()},96142:function(T,r,n){"use strict";r.__esModule=!0,r.FaxMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.FaxMachine=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;return(0,e.createComponentVNode)(2,o.Window,{width:540,height:295,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Card",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.scan_name?"eject":"id-card",selected:i.scan_name,content:i.scan_name?i.scan_name:"-----",tooltip:i.scan_name?"Eject ID":"Insert ID",onClick:function(){function c(){return g("scan")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Authorize",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.authenticated?"sign-out-alt":"id-card",selected:i.authenticated,disabled:i.nologin,content:i.realauth?"Log Out":"Log In",onClick:function(){function c(){return g("auth")}return c}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Fax Menu",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network",children:i.network}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Document",children:[(0,e.createComponentVNode)(2,t.Button,{icon:i.paper?"eject":"paperclip",disabled:!i.authenticated&&!i.paper,content:i.paper?i.paper:"-----",onClick:function(){function c(){return g("paper")}return c}()}),!!i.paper&&(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){function c(){return g("rename")}return c}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sending To",children:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:i.destination?i.destination:"-----",disabled:!i.authenticated,onClick:function(){function c(){return g("dept")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Action",children:(0,e.createComponentVNode)(2,t.Button,{icon:"envelope",content:i.sendError?i.sendError:"Send",disabled:!i.paper||!i.destination||!i.authenticated||i.sendError,onClick:function(){function c(){return g("send")}return c}()})})]})})]})})}return b}()},74123:function(T,r,n){"use strict";r.__esModule=!0,r.FilingCabinet=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.FilingCabinet=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=k.config,m=i.contents,l=c.title;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:300,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Contents",children:[!m&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"folder-open",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"The ",l," is empty."]})}),!!m&&m.slice().map(function(u){return(0,e.createComponentVNode)(2,t.Stack,{mt:.5,className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"80%",children:u.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Retrieve",onClick:function(){function s(){return g("retrieve",{index:u.index})}return s}()})})]},u)})]})})})})}return b}()},83767:function(T,r,n){"use strict";r.__esModule=!0,r.FloorPainter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=k.icon_state,u=k.direction,s=k.isSelected,d=k.onSelect;return(0,e.createComponentVNode)(2,t.DmIcon,{icon:m.icon,icon_state:l,direction:u,onClick:d,style:{"border-style":s&&"solid"||"none","border-width":"2px","border-color":"orange",padding:s&&"0px"||"2px"}})},b={NORTH:1,SOUTH:2,EAST:4,WEST:8},y=r.FloorPainter=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.availableStyles,u=m.selectedStyle,s=m.selectedDir;return(0,e.createComponentVNode)(2,o.Window,{width:405,height:475,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Decal setup",children:[(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-left",onClick:function(){function d(){return c("cycle_style",{offset:-1})}return d}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Dropdown,{options:l,selected:u,width:"150px",nochevron:!0,onSelected:function(){function d(C){return c("select_style",{style:C})}return d}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",onClick:function(){function d(){return c("cycle_style",{offset:1})}return d}()})})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"5px",mb:"5px",children:(0,e.createComponentVNode)(2,t.Flex,{overflowY:"auto",maxHeight:"239px",wrap:"wrap",children:l.map(function(d){return(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,f,{icon_state:d,isSelected:u===d,onSelect:function(){function C(){return c("select_style",{style:d})}return C}()})},d)})})}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Direction",children:(0,e.createComponentVNode)(2,t.Table,{style:{display:"inline"},children:[b.NORTH,null,b.SOUTH].map(function(d){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[d+b.WEST,d,d+b.EAST].map(function(C){return(0,e.createComponentVNode)(2,t.Table.Cell,{style:{"vertical-align":"middle","text-align":"center"},children:C===null?(0,e.createComponentVNode)(2,t.Icon,{name:"arrows-alt",size:3}):(0,e.createComponentVNode)(2,f,{icon_state:u,direction:C,isSelected:C===s,onSelect:function(){function h(){return c("select_direction",{direction:C})}return h}()})},C)})},d)})})})})]})})})}return B}()},53424:function(T,r,n){"use strict";r.__esModule=!0,r.GPS=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=function(l){return l?"("+l.join(", ")+")":"ERROR"},y=function(l,u){if(!(!l||!u)){if(l[2]!==u[2])return null;var s=Math.atan2(u[1]-l[1],u[0]-l[0]),d=Math.sqrt(Math.pow(u[1]-l[1],2)+Math.pow(u[0]-l[0],2));return{angle:(0,a.rad2deg)(s),distance:d}}},B=r.GPS=function(){function m(l,u){var s=(0,t.useBackend)(u),d=s.data,C=d.emped,h=d.active,v=d.area,p=d.position,N=d.saved;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:C?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,k,{emp:!0})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,g)}),h?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,i,{area:v,position:p})}),N&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,i,{title:"Saved Position",position:N})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,c,{height:"100%"})})],0):(0,e.createComponentVNode)(2,k)],0)})})})}return m}(),k=function(l,u){var s=l.emp;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Box,{width:"100%",height:"100%",color:"label",textAlign:"center",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon,{name:s?"ban":"power-off",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),s?"ERROR: Device temporarily lost signal.":"Device is disabled."]})})})})},g=function(l,u){var s=(0,t.useBackend)(u),d=s.act,C=s.data,h=C.active,v=C.tag,p=C.same_z,N=(0,t.useLocalState)(u,"newTag",v),V=N[0],S=N[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Settings",buttons:(0,e.createComponentVNode)(2,o.Button,{selected:h,icon:h?"toggle-on":"toggle-off",content:h?"On":"Off",onClick:function(){function I(){return d("toggle")}return I}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Tag",children:[(0,e.createComponentVNode)(2,o.Input,{width:"5rem",value:v,onEnter:function(){function I(){return d("tag",{newtag:V})}return I}(),onInput:function(){function I(L,w){return S(w)}return I}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:v===V,width:"20px",mb:"0",ml:"0.25rem",onClick:function(){function I(){return d("tag",{newtag:V})}return I}(),children:(0,e.createComponentVNode)(2,o.Icon,{name:"pen"})})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Range",children:(0,e.createComponentVNode)(2,o.Button,{selected:!p,icon:p?"compress":"expand",content:p?"Local Sector":"Global",onClick:function(){function I(){return d("same_z")}return I}()})})]})})},i=function(l,u){var s=l.title,d=l.area,C=l.position;return(0,e.createComponentVNode)(2,o.Section,{title:s||"Position",children:(0,e.createComponentVNode)(2,o.Box,{fontSize:"1.5rem",children:[d&&(0,e.createFragment)([d,(0,e.createVNode)(1,"br")],0),b(C)]})})},c=function(l,u){var s=(0,t.useBackend)(u),d=s.data,C=d.position,h=d.signals;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,title:"Signals"},l,{children:(0,e.createComponentVNode)(2,o.Table,{children:h.map(function(v){return Object.assign({},v,y(C,v.position))}).map(function(v,p){return(0,e.createComponentVNode)(2,o.Table.Row,{backgroundColor:p%2===0&&"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,o.Table.Cell,{width:"30%",verticalAlign:"middle",color:"label",p:"0.25rem",bold:!0,children:v.tag}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",color:"grey",children:v.area}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",collapsing:!0,children:v.distance!==void 0&&(0,e.createComponentVNode)(2,o.Box,{opacity:Math.max(1-Math.min(v.distance,100)/100,.5),children:[(0,e.createComponentVNode)(2,o.Icon,{name:v.distance>0?"arrow-right":"circle",rotation:-v.angle}),"\xA0",Math.floor(v.distance)+"m"]})}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",pr:"0.25rem",collapsing:!0,children:b(v.position)})]},p)})})})))}},89124:function(T,r,n){"use strict";r.__esModule=!0,r.GeneModder=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(3939),f=n(98595),b=r.GeneModder=function(){function u(s,d){var C=(0,a.useBackend)(d),h=C.data,v=h.has_seed;return(0,e.createComponentVNode)(2,f.Window,{width:950,height:650,children:[(0,e.createVNode)(1,"div","GeneModder__left",(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,l,{scrollable:!0})}),2),(0,e.createVNode)(1,"div","GeneModder__right",(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,o.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),v===0?(0,e.createComponentVNode)(2,B):(0,e.createComponentVNode)(2,y)]})}),2)]})}return u}(),y=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.disk;return(0,e.createComponentVNode)(2,t.Section,{title:"Genes",fill:!0,scrollable:!0,children:[(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,c)]})},B=function(s,d){return(0,e.createComponentVNode)(2,t.Section,{fill:!0,height:"85%",children:(0,e.createComponentVNode)(2,t.Stack,{height:"100%",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"green",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"leaf",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),"The plant DNA manipulator is missing a seed."]})})})},k=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.has_seed,N=v.seed,V=v.has_disk,S=v.disk,I,L;return p?I=(0,e.createComponentVNode)(2,t.Stack.Item,{mb:"-6px",mt:"-4px",children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+N.image,style:{"vertical-align":"middle",width:"32px",margin:"-1px","margin-left":"-11px"}}),(0,e.createComponentVNode)(2,t.Button,{content:N.name,onClick:function(){function w(){return h("eject_seed")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{ml:"3px",icon:"pen",tooltip:"Name Variant",onClick:function(){function w(){return h("variant_name")}return w}()})]}):I=(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:3.3,content:"None",onClick:function(){function w(){return h("eject_seed")}return w}()})}),V?L=S.name:L="None",(0,e.createComponentVNode)(2,t.Section,{title:"Storage",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Plant Sample",children:I}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Disk",children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:3.3,content:L,tooltip:"Select Empty Disk",onClick:function(){function w(){return h("select_empty_disk")}return w}()})})})]})})},g=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.disk,N=v.core_genes;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Core Genes",open:!0,children:[N.map(function(V){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",ml:"2px",children:V.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract",disabled:!(p!=null&&p.can_extract),icon:"save",onClick:function(){function S(){return h("extract",{id:V.id})}return S}()})})]},V)})," ",(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract All",disabled:!(p!=null&&p.can_extract),icon:"save",onClick:function(){function V(){return h("bulk_extract_core")}return V}()})})})]},"Core Genes")},i=function(s,d){var C=(0,a.useBackend)(d),h=C.data,v=h.reagent_genes,p=h.has_reagent;return(0,e.createComponentVNode)(2,m,{title:"Reagent Genes",gene_set:v,do_we_show:p})},c=function(s,d){var C=(0,a.useBackend)(d),h=C.data,v=h.trait_genes,p=h.has_trait;return(0,e.createComponentVNode)(2,m,{title:"Trait Genes",gene_set:v,do_we_show:p})},m=function(s,d){var C=s.title,h=s.gene_set,v=s.do_we_show,p=(0,a.useBackend)(d),N=p.act,V=p.data,S=V.disk;return(0,e.createComponentVNode)(2,t.Collapsible,{title:C,open:!0,children:v?h.map(function(I){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",ml:"2px",children:I.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract",disabled:!(S!=null&&S.can_extract),icon:"save",onClick:function(){function L(){return N("extract",{id:I.id})}return L}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove",icon:"times",onClick:function(){function L(){return N("remove",{id:I.id})}return L}()})})]},I)}):(0,e.createComponentVNode)(2,t.Stack.Item,{children:"No Genes Detected"})},C)},l=function(s,d){var C=s.title,h=s.gene_set,v=s.do_we_show,p=(0,a.useBackend)(d),N=p.act,V=p.data,S=V.has_seed,I=V.empty_disks,L=V.stat_disks,w=V.trait_disks,A=V.reagent_disks;return(0,e.createComponentVNode)(2,t.Section,{title:"Disks",children:[(0,e.createVNode)(1,"br"),"Empty Disks: ",I,(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{width:12,icon:"arrow-down",tooltip:"Eject an Empty disk",content:"Eject Empty Disk",onClick:function(){function x(){return N("eject_empty_disk")}return x}()}),(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Stats",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[L.slice().sort(function(x,E){return x.display_name.localeCompare(E.display_name)}).map(function(x){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:x.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[x.stat==="All"?(0,e.createComponentVNode)(2,t.Button,{content:"Replace All",tooltip:"Write disk stats to seed",disabled:!(x!=null&&x.ready)||!S,icon:"arrow-circle-down",onClick:function(){function E(){return N("bulk_replace_core",{index:x.index})}return E}()}):(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",tooltip:"Write disk stat to seed",disabled:!x||!S,content:"Replace",onClick:function(){function E(){return N("replace",{index:x.index,stat:x.stat})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("select",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("eject_disk",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:x.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function E(){return N("set_read_only",{index:x.index,read_only:x.read_only})}return E}()})]})]},x)}),(0,e.createComponentVNode)(2,t.Button)]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Traits",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[w.slice().sort(function(x,E){return x.display_name.localeCompare(E.display_name)}).map(function(x){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:x.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",disabled:!x||!x.can_insert,tooltip:"Add disk trait to seed",content:"Insert",onClick:function(){function E(){return N("insert",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("select",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("eject_disk",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:x.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function E(){return N("set_read_only",{index:x.index,read_only:x.read_only})}return E}()})]})]},x)}),(0,e.createComponentVNode)(2,t.Button)]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Reagents",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[A.slice().sort(function(x,E){return x.display_name.localeCompare(E.display_name)}).map(function(x){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:x.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",disabled:!x||!x.can_insert,tooltip:"Add disk reagent to seed",content:"Insert",onClick:function(){function E(){return N("insert",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("select",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("eject_disk",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:x.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function E(){return N("set_read_only",{index:x.index,read_only:x.read_only})}return E}()})]})]},x)}),(0,e.createComponentVNode)(2,t.Button)]})})]})]})}},73053:function(T,r,n){"use strict";r.__esModule=!0,r.GenericCrewManifest=void 0;var e=n(89005),a=n(36036),t=n(98595),o=n(41874),f=r.GenericCrewManifest=function(){function b(y,B){return(0,e.createComponentVNode)(2,t.Window,{theme:"nologo",width:588,height:510,children:(0,e.createComponentVNode)(2,t.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,a.Section,{noTopPadding:!0,children:(0,e.createComponentVNode)(2,o.CrewManifest)})})})}return b}()},42914:function(T,r,n){"use strict";r.__esModule=!0,r.GhostHudPanel=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GhostHudPanel=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.data,c=i.security,m=i.medical,l=i.diagnostic,u=i.radioactivity,s=i.ahud;return(0,e.createComponentVNode)(2,o.Window,{width:250,height:207,theme:"nologo",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,b,{label:"Medical",type:"medical",is_active:m}),(0,e.createComponentVNode)(2,b,{label:"Security",type:"security",is_active:c}),(0,e.createComponentVNode)(2,b,{label:"Diagnostic",type:"diagnostic",is_active:l}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,b,{label:"Radioactivity",type:"radioactivity",is_active:u,act_on:"rads_on",act_off:"rads_off"}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,b,{label:"Antag HUD",is_active:s,act_on:"ahud_on",act_off:"ahud_off"})]})})})}return y}(),b=function(B,k){var g=(0,a.useBackend)(k),i=g.act,c=B.label,m=B.type,l=m===void 0?null:m,u=B.is_active,s=B.act_on,d=s===void 0?"hud_on":s,C=B.act_off,h=C===void 0?"hud_off":C;return(0,e.createComponentVNode)(2,t.Flex,{pt:.3,color:"label",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{pl:.5,align:"center",width:"80%",children:c}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Button,{mr:.6,content:u?"On":"Off",icon:u?"toggle-on":"toggle-off",selected:u,onClick:function(){function v(){return i(u?h:d,{hud_type:l})}return v}()})})]})}},25825:function(T,r,n){"use strict";r.__esModule=!0,r.GlandDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GlandDispenser=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.glands,m=c===void 0?[]:c;return(0,e.createComponentVNode)(2,o.Window,{width:300,height:338,theme:"abductor",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:m.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{width:"60px",height:"60px",m:.75,textAlign:"center",fontSize:"17px",lineHeight:"55px",icon:"eject",backgroundColor:l.color,content:l.amount||"0",disabled:!l.amount,onClick:function(){function u(){return g("dispense",{gland_id:l.id})}return u}()},l.id)})})})})}return b}()},10270:function(T,r,n){"use strict";r.__esModule=!0,r.GravityGen=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GravityGen=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.charging_state,m=i.charge_count,l=i.breaker,u=i.ext_power,s=function(){function C(h){return h>0?(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"average",children:["[ ",h===1?"Charging":"Discharging"," ]"]}):(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:u?"good":"bad",children:["[ ",u?"Powered":"Unpowered"," ]"]})}return C}(),d=function(){function C(h){if(h>0)return(0,e.createComponentVNode)(2,t.NoticeBox,{danger:!0,p:1.5,children:[(0,e.createVNode)(1,"b",null,"WARNING:",16)," Radiation Detected!"]})}return C}();return(0,e.createComponentVNode)(2,o.Window,{width:350,height:170,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[d(c),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Generator Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:l?"power-off":"times",content:l?"Online":"Offline",color:l?"green":"red",px:1.5,onClick:function(){function C(){return g("breaker")}return C}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Status",color:u?"good":"bad",children:s(c)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gravity Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:m/100,ranges:{good:[.9,1/0],average:[.5,.9],bad:[-1/0,.5]}})})]})})]})})})}return b}()},48657:function(T,r,n){"use strict";r.__esModule=!0,r.GuestPass=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49148),b=r.GuestPass=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:690,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"id-card",selected:!c.showlogs,onClick:function(){function m(){return i("mode",{mode:0})}return m}(),children:"Issue Pass"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"scroll",selected:c.showlogs,onClick:function(){function m(){return i("mode",{mode:1})}return m}(),children:["Records (",c.issue_log.length,")"]})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Card",children:(0,e.createComponentVNode)(2,t.Button,{icon:c.scan_name?"eject":"id-card",selected:c.scan_name,content:c.scan_name?c.scan_name:"-----",tooltip:c.scan_name?"Eject ID":"Insert ID",onClick:function(){function m(){return i("scan")}return m}()})})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:!c.showlogs&&(0,e.createComponentVNode)(2,t.Section,{title:"Issue Guest Pass",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Issue To",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.giv_name?c.giv_name:"-----",disabled:!c.scan_name,onClick:function(){function m(){return i("giv_name")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reason",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.reason?c.reason:"-----",disabled:!c.scan_name,onClick:function(){function m(){return i("reason")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Duration",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.duration?c.duration:"-----",disabled:!c.scan_name,onClick:function(){function m(){return i("duration")}return m}()})})]})})}),!c.showlogs&&(c.scan_name?(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.AccessList,{sectionButtons:(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",content:c.printmsg,disabled:!c.canprint,onClick:function(){function m(){return i("issue")}return m}()}),grantableList:c.grantableList,accesses:c.regions,selectedList:c.selectedAccess,accessMod:function(){function m(l){return i("access",{access:l})}return m}(),grantAll:function(){function m(){return i("grant_all")}return m}(),denyAll:function(){function m(){return i("clear_all")}return m}(),grantDep:function(){function m(l){return i("grant_region",{region:l})}return m}(),denyDep:function(){function m(l){return i("deny_region",{region:l})}return m}()})}):(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,fontSize:1.5,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"id-card",size:5,color:"gray",mb:5}),(0,e.createVNode)(1,"br"),"Please, insert ID Card"]})})})})),!!c.showlogs&&(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,m:0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Issuance Log",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print",disabled:!c.scan_name,onClick:function(){function m(){return i("print")}return m}()}),children:!!c.issue_log.length&&(0,e.createComponentVNode)(2,t.LabeledList,{children:c.issue_log.map(function(m,l){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:m},l)})})||(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,fontSize:1.5,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No logs"]})})})})]})})})}return y}()},67834:function(T,r,n){"use strict";r.__esModule=!0,r.HandheldChemDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[1,5,10,20,30,50],b=null,y=r.HandheldChemDispenser=function(){function g(i,c){return(0,e.createComponentVNode)(2,o.Window,{width:390,height:430,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,k)]})})})}return g}(),B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.amount,d=u.energy,C=u.maxEnergy,h=u.mode;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:d,minValue:0,maxValue:C,ranges:{good:[C*.5,1/0],average:[C*.25,C*.5],bad:[-1/0,C*.25]},children:[d," / ",C," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Amount",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{children:f.map(function(v,p){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"15%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"cog",selected:s===v,content:v,onClick:function(){function N(){return l("amount",{amount:v})}return N}()})},p)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mode",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{justify:"space-between",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:h==="dispense",content:"Dispense",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"dispense"})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:h==="remove",content:"Remove",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"remove"})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:h==="isolate",content:"Isolate",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"isolate"})}return v}()})]})})]})})})},k=function(i,c){for(var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.chemicals,d=s===void 0?[]:s,C=u.current_reagent,h=[],v=0;v<(d.length+1)%3;v++)h.push(!0);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,height:"18%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:u.glass?"Drink Selector":"Chemical Selector",children:[d.map(function(p,N){return(0,e.createComponentVNode)(2,t.Button,{width:"32%",icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",selected:C===p.id,content:p.title,style:{"margin-left":"2px"},onClick:function(){function V(){return l("dispense",{reagent:p.id})}return V}()},N)}),h.map(function(p,N){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:"1",basis:"25%"},N)})]})})}},46098:function(T,r,n){"use strict";r.__esModule=!0,r.HealthSensor=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.HealthSensor=function(){function B(k,g){var i=(0,t.useBackend)(g),c=i.act,m=i.data,l=m.on,u=m.user_health,s=m.minHealth,d=m.maxHealth,C=m.alarm_health;return(0,e.createComponentVNode)(2,f.Window,{width:300,height:125,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Scanning",children:(0,e.createComponentVNode)(2,o.Button,{icon:"power-off",content:l?"On":"Off",color:l?null:"red",selected:l,onClick:function(){function h(){return c("scan_toggle")}return h}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health activation",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:2,stepPixelSize:6,minValue:s,maxValue:d,value:C,format:function(){function h(v){return(0,a.toFixed)(v,1)}return h}(),width:"80px",onDrag:function(){function h(v,p){return c("alarm_health",{alarm_health:p})}return h}()})}),u!==null&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"User health",children:(0,e.createComponentVNode)(2,o.Box,{color:y(u),bold:u>=100,children:(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:u})})})]})})})})}return B}(),y=function(k){return k>50?"green":k>0?"orange":"red"}},36771:function(T,r,n){"use strict";r.__esModule=!0,r.Holodeck=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Holodeck=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=(0,a.useLocalState)(k,"currentDeck",""),l=m[0],u=m[1],s=(0,a.useLocalState)(k,"showReload",!1),d=s[0],C=s[1],h=c.decks,v=c.ai_override,p=c.emagged,N=function(){function V(S){i("select_deck",{deck:S}),u(S),C(!0),setTimeout(function(){C(!1)},3e3)}return V}();return(0,e.createComponentVNode)(2,o.Window,{width:400,height:320,children:[d&&(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Holodeck Control System",children:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createVNode)(1,"b",null,"Currently Loaded Program:",16)," ",l]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Available Programs",children:[h.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{width:15.5,color:"transparent",content:V,selected:V===l,onClick:function(){function S(){return N(V)}return S}()},V)}),(0,e.createVNode)(1,"hr",null,null,1,{color:"gray"}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!v&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Override Protocols",children:(0,e.createComponentVNode)(2,t.Button,{content:p?"Turn On":"Turn Off",color:p?"good":"bad",onClick:function(){function V(){return i("ai_override")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety Protocols",children:(0,e.createComponentVNode)(2,t.Box,{color:p?"bad":"good",children:[p?"Off":"On",!!p&&(0,e.createComponentVNode)(2,t.Button,{ml:9.5,width:15.5,color:"red",content:"Wildlife Simulation",onClick:function(){function V(){return i("wildlifecarp")}return V}()})]})})]})]})})]})})]})}return y}(),b=function(B,k){return(0,e.createComponentVNode)(2,t.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"spinner",size:"5",spin:!0}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{color:"white",children:(0,e.createVNode)(1,"h1",null,"\xA0Recalibrating projection apparatus.\xA0",16)}),(0,e.createComponentVNode)(2,t.Box,{color:"label",children:(0,e.createVNode)(1,"h3",null,"Please, wait for 3 seconds.",16)})]})}},25471:function(T,r,n){"use strict";r.__esModule=!0,r.Instrument=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.Instrument=function(){function i(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:505,children:[(0,e.createComponentVNode)(2,y),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,g)]})})]})}return i}(),y=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.help;if(d)return(0,e.createComponentVNode)(2,o.Modal,{maxWidth:"75%",height:window.innerHeight*.75+"px",mx:"auto",py:"0",px:"0.5rem",children:(0,e.createComponentVNode)(2,o.Section,{height:"100%",title:"Help",level:"2",overflow:"auto",children:(0,e.createComponentVNode)(2,o.Box,{px:"0.5rem",mt:"-0.5rem",children:[(0,e.createVNode)(1,"h1",null,"Making a Song",16),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Lines are a series of chords, separated by commas\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(,)"}),(0,e.createTextVNode)(", each with notes separated by hyphens\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(-)"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("as defined above.")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Notes are played by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"names of the note"}),(0,e.createTextVNode)(", and optionally, the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(", and/or the"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave number"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("By default, every note is\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"natural"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("and in\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave 3"}),(0,e.createTextVNode)(". Defining a different state for either is remembered for each"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"note"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Example:"}),(0,e.createTextVNode)("\xA0"),(0,e.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,e.createTextVNode)(" will play a\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"C"}),(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"major"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("scale.")],0),(0,e.createVNode)(1,"li",null,[(0,e.createTextVNode)("After a note has an\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("or\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("placed, it will be remembered:\xA0"),(0,e.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,e.createTextVNode)(" is "),(0,e.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],0)],4)],0),(0,e.createVNode)(1,"p",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Chords"}),(0,e.createTextVNode)("\xA0can be played simply by seperating each note with a hyphen: "),(0,e.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("A"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"pause"}),(0,e.createTextVNode)("\xA0may be denoted by an empty chord: "),(0,e.createVNode)(1,"i",null,"C,E,,C,G",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,e.createTextVNode)(",\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"eg:"}),(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,e.createTextVNode)(".")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Combined, an example line is: "),(0,e.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,e.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Lines are a series of chords, separated by commas\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(,)"}),(0,e.createTextVNode)(", each with notes separated by hyphens\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(-)"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("as defined above.")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Notes are played by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"names of the note"}),(0,e.createTextVNode)(", and optionally, the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(", and/or the"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave number"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("By default, every note is\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"natural"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("and in\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave 3"}),(0,e.createTextVNode)(". Defining a different state for either is remembered for each"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"note"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Example:"}),(0,e.createTextVNode)("\xA0"),(0,e.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,e.createTextVNode)(" will play a\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"C"}),(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"major"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("scale.")],0),(0,e.createVNode)(1,"li",null,[(0,e.createTextVNode)("After a note has an\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("or\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("placed, it will be remembered:\xA0"),(0,e.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,e.createTextVNode)(" is "),(0,e.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],0)],4)],0),(0,e.createVNode)(1,"p",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Chords"}),(0,e.createTextVNode)("\xA0can be played simply by seperating each note with a hyphen: "),(0,e.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("A"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"pause"}),(0,e.createTextVNode)("\xA0may be denoted by an empty chord: "),(0,e.createVNode)(1,"i",null,"C,E,,C,G",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,e.createTextVNode)(",\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"eg:"}),(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,e.createTextVNode)(".")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Combined, an example line is: "),(0,e.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,e.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,e.createVNode)(1,"h1",null,"Instrument Advanced Settings",16),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Type:"}),(0,e.createTextVNode)("\xA0Whether the instrument is legacy or synthesized."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Legacy instruments have a collection of sounds that are selectively used depending on the note to play."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Synthesized instruments use a base sound and change its pitch to match the note to play.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Current:"}),(0,e.createTextVNode)("\xA0Which instrument sample to play. Some instruments can be tuned to play different samples. Experiment!")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Note Shift/Note Transpose:"}),(0,e.createTextVNode)("\xA0The pitch to apply to all notes of the song.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Sustain Mode:"}),(0,e.createTextVNode)("\xA0How a played note fades out."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Linear sustain means a note will fade out at a constant rate."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Exponential sustain means a note will fade out at an exponential rate, sounding smoother.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Volume Dropoff Threshold:"}),(0,e.createTextVNode)("\xA0The volume threshold at which a note is fully stopped.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Sustain indefinitely last held note:"}),(0,e.createTextVNode)("\xA0Whether the last note should be sustained indefinitely.")],4)],4),(0,e.createComponentVNode)(2,o.Button,{color:"grey",content:"Close",onClick:function(){function C(){return u("help")}return C}()})]})})})},B=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.lines,C=s.playing,h=s.repeat,v=s.maxRepeats,p=s.tempo,N=s.minTempo,V=s.maxTempo,S=s.tickLag,I=s.volume,L=s.minVolume,w=s.maxVolume,A=s.ready;return(0,e.createComponentVNode)(2,o.Section,{title:"Instrument",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"info",content:"Help",onClick:function(){function x(){return u("help")}return x}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"file",content:"New",onClick:function(){function x(){return u("newsong")}return x}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"upload",content:"Import",onClick:function(){function x(){return u("import")}return x}()})],4),children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Playback",children:[(0,e.createComponentVNode)(2,o.Button,{selected:C,disabled:d.length===0||h<0,icon:"play",content:"Play",onClick:function(){function x(){return u("play")}return x}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!C,icon:"stop",content:"Stop",onClick:function(){function x(){return u("stop")}return x}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Repeat",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:0,maxValue:v,value:h,stepPixelSize:59,onChange:function(){function x(E,P){return u("repeat",{new:P})}return x}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Tempo",children:(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Button,{disabled:p>=V,content:"-",as:"span",mr:"0.5rem",onClick:function(){function x(){return u("tempo",{new:p+S})}return x}()}),(0,a.round)(600/p)," BPM",(0,e.createComponentVNode)(2,o.Button,{disabled:p<=N,content:"+",as:"span",ml:"0.5rem",onClick:function(){function x(){return u("tempo",{new:p-S})}return x}()})]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Volume",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:L,maxValue:w,value:I,stepPixelSize:6,onDrag:function(){function x(E,P){return u("setvolume",{new:P})}return x}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Status",children:A?(0,e.createComponentVNode)(2,o.Box,{color:"good",children:"Ready"}):(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"Instrument Definition Error!"})})]}),(0,e.createComponentVNode)(2,k)]})},k=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.allowedInstrumentNames,C=s.instrumentLoaded,h=s.instrument,v=s.canNoteShift,p=s.noteShift,N=s.noteShiftMin,V=s.noteShiftMax,S=s.sustainMode,I=s.sustainLinearDuration,L=s.sustainExponentialDropoff,w=s.legacy,A=s.sustainDropoffVolume,x=s.sustainHeldNote,E,P;return S===1?(E="Linear",P=(0,e.createComponentVNode)(2,o.Slider,{minValue:.1,maxValue:5,value:I,step:.5,stepPixelSize:85,format:function(){function D(M){return(0,a.round)(M*100)/100+" seconds"}return D}(),onChange:function(){function D(M,R){return u("setlinearfalloff",{new:R/10})}return D}()})):S===2&&(E="Exponential",P=(0,e.createComponentVNode)(2,o.Slider,{minValue:1.025,maxValue:10,value:L,step:.01,format:function(){function D(M){return(0,a.round)(M*1e3)/1e3+"% per decisecond"}return D}(),onChange:function(){function D(M,R){return u("setexpfalloff",{new:R})}return D}()})),d.sort(),(0,e.createComponentVNode)(2,o.Box,{my:-1,children:(0,e.createComponentVNode)(2,o.Collapsible,{mt:"1rem",mb:"0",title:"Advanced",children:(0,e.createComponentVNode)(2,o.Section,{mt:-1,children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Type",children:w?"Legacy":"Synthesized"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Current",children:C?(0,e.createComponentVNode)(2,o.Dropdown,{options:d,selected:h,width:"50%",onSelected:function(){function D(M){return u("switchinstrument",{name:M})}return D}()}):(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"None!"})}),!!(!w&&v)&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Note Shift/Note Transpose",children:(0,e.createComponentVNode)(2,o.Slider,{minValue:N,maxValue:V,value:p,stepPixelSize:2,format:function(){function D(M){return M+" keys / "+(0,a.round)(M/12*100)/100+" octaves"}return D}(),onChange:function(){function D(M,R){return u("setnoteshift",{new:R})}return D}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Sustain Mode",children:[(0,e.createComponentVNode)(2,o.Dropdown,{options:["Linear","Exponential"],selected:E,mb:"0.4rem",onSelected:function(){function D(M){return u("setsustainmode",{new:M})}return D}()}),P]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Volume Dropoff Threshold",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:.01,maxValue:100,value:A,stepPixelSize:6,onChange:function(){function D(M,R){return u("setdropoffvolume",{new:R})}return D}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Sustain indefinitely last held note",children:(0,e.createComponentVNode)(2,o.Button,{selected:x,icon:x?"toggle-on":"toggle-off",content:x?"Yes":"No",onClick:function(){function D(){return u("togglesustainhold")}return D}()})})],4)]}),(0,e.createComponentVNode)(2,o.Button,{icon:"redo",content:"Reset to Default",mt:"0.5rem",onClick:function(){function D(){return u("reset")}return D}()})]})})})},g=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.playing,C=s.lines,h=s.editing;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Editor",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:!h||d,icon:"plus",content:"Add Line",onClick:function(){function v(){return u("newline",{line:C.length+1})}return v}()}),(0,e.createComponentVNode)(2,o.Button,{selected:!h,icon:h?"chevron-up":"chevron-down",onClick:function(){function v(){return u("edit")}return v}()})],4),children:!!h&&(C.length>0?(0,e.createComponentVNode)(2,o.LabeledList,{children:C.map(function(v,p){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:p+1,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:d,icon:"pen",onClick:function(){function N(){return u("modifyline",{line:p+1})}return N}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:d,icon:"trash",onClick:function(){function N(){return u("deleteline",{line:p+1})}return N}()})],4),children:v},p)})}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"Song is empty."}))})}},13618:function(T,r,n){"use strict";r.__esModule=!0,r.KeyComboModal=void 0;var e=n(89005),a=n(70611),t=n(72253),o=n(36036),f=n(98595),b=n(19203),y=n(51057),B=function(l){return l.key!==a.KEY.Alt&&l.key!==a.KEY.Control&&l.key!==a.KEY.Shift&&l.key!==a.KEY.Escape},k={DEL:"Delete",DOWN:"South",END:"Southwest",HOME:"Northwest",INSERT:"Insert",LEFT:"West",PAGEDOWN:"Southeast",PAGEUP:"Northeast",RIGHT:"East",SPACEBAR:"Space",UP:"North"},g=3,i=function(l){var u="";if(l.altKey&&(u+="Alt"),l.ctrlKey&&(u+="Ctrl"),l.shiftKey&&!(l.keyCode>=48&&l.keyCode<=57)&&(u+="Shift"),l.location===g&&(u+="Numpad"),B(l))if(l.shiftKey&&l.keyCode>=48&&l.keyCode<=57){var s=l.keyCode-48;u+="Shift"+s}else{var d=l.key.toUpperCase();u+=k[d]||d}return u},c=r.KeyComboModal=function(){function m(l,u){var s=(0,t.useBackend)(u),d=s.act,C=s.data,h=C.init_value,v=C.large_buttons,p=C.message,N=p===void 0?"":p,V=C.title,S=C.timeout,I=(0,t.useLocalState)(u,"input",h),L=I[0],w=I[1],A=(0,t.useLocalState)(u,"binding",!0),x=A[0],E=A[1],P=function(){function R(O){if(!x){O.key===a.KEY.Enter&&d("submit",{entry:L}),(0,a.isEscape)(O.key)&&d("cancel");return}if(O.preventDefault(),B(O)){D(i(O)),E(!1);return}else if(O.key===a.KEY.Escape){D(h),E(!1);return}}return R}(),D=function(){function R(O){O!==L&&w(O)}return R}(),M=130+(N.length>30?Math.ceil(N.length/3):0)+(N.length&&v?5:0);return(0,e.createComponentVNode)(2,f.Window,{title:V,width:240,height:M,children:[S&&(0,e.createComponentVNode)(2,y.Loader,{value:S}),(0,e.createComponentVNode)(2,f.Window.Content,{onKeyDown:function(){function R(O){P(O)}return R}(),children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Autofocus),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:N})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{disabled:x,content:x&&x!==null?"Awaiting input...":""+L,width:"100%",textAlign:"center",onClick:function(){function R(){D(h),E(!0)}return R}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,b.InputButtons,{input:L})})]})]})})]})}return m}()},35655:function(T,r,n){"use strict";r.__esModule=!0,r.KeycardAuth=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.KeycardAuth=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=(0,e.createComponentVNode)(2,t.Section,{title:"Keycard Authentication Device",children:(0,e.createComponentVNode)(2,t.Box,{children:"This device is used to trigger certain high security events. It requires the simultaneous swipe of two high-level ID cards."})});if(!i.swiping&&!i.busy)return(0,e.createComponentVNode)(2,o.Window,{width:540,height:280,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[c,(0,e.createComponentVNode)(2,t.Section,{title:"Choose Action",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Red Alert",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-triangle",disabled:!i.redAvailable,onClick:function(){function l(){return g("triggerevent",{triggerevent:"Red Alert"})}return l}(),content:"Red Alert"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ERT",children:(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Emergency Response Team"})}return l}(),content:"Call ERT"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Maint Access",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"door-open",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Grant Emergency Maintenance Access"})}return l}(),content:"Grant"}),(0,e.createComponentVNode)(2,t.Button,{icon:"door-closed",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Revoke Emergency Maintenance Access"})}return l}(),content:"Revoke"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Station-Wide Access",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"door-open",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Activate Station-Wide Emergency Access"})}return l}(),content:"Grant"}),(0,e.createComponentVNode)(2,t.Button,{icon:"door-closed",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Deactivate Station-Wide Emergency Access"})}return l}(),content:"Revoke"})]})]})})]})});var m=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Waiting for YOU to swipe your ID..."});return!i.hasSwiped&&!i.ertreason&&i.event==="Emergency Response Team"?m=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Fill out the reason for your ERT request."}):i.hasConfirm?m=(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Request Confirmed!"}):i.isRemote?m=(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Swipe your card to CONFIRM the remote request."}):i.hasSwiped&&(m=(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Waiting for second person to confirm..."})),(0,e.createComponentVNode)(2,o.Window,{width:540,height:265,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[c,i.event==="Emergency Response Team"&&(0,e.createComponentVNode)(2,t.Section,{title:"Reason for ERT Call",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{color:i.ertreason?"":"red",icon:i.ertreason?"check":"pencil-alt",content:i.ertreason?i.ertreason:"-----",disabled:i.busy,onClick:function(){function l(){return g("ert")}return l}()})})}),(0,e.createComponentVNode)(2,t.Section,{title:i.event,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back",disabled:i.busy||i.hasConfirm,onClick:function(){function l(){return g("reset")}return l}()}),children:m})]})})}return b}()},62955:function(T,r,n){"use strict";r.__esModule=!0,r.KitchenMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(62411),b=r.KitchenMachine=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.data,m=i.config,l=c.ingredients,u=c.operating,s=m.title;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:320,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Operating,{operating:u,name:s}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,y)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Ingredients",children:(0,e.createComponentVNode)(2,t.Table,{className:"Ingredient__Table",children:l.map(function(d){return(0,e.createComponentVNode)(2,t.Table.Row,{tr:5,children:[(0,e.createVNode)(1,"td",null,(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:d.name}),2),(0,e.createVNode)(1,"td",null,(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:[d.amount," ",d.units]}),2)]},d.name)})})})})]})})})}return B}(),y=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.inactive,u=m.tooltip;return(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"power-off",disabled:l,tooltip:l?u:"",tooltipPosition:"bottom",content:"Activate",onClick:function(){function s(){return c("cook")}return s}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",disabled:l,tooltip:l?u:"",tooltipPosition:"bottom",content:"Eject Contents",onClick:function(){function s(){return c("eject")}return s}()})})]})})}},9525:function(T,r,n){"use strict";r.__esModule=!0,r.LawManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.LawManager=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.isAdmin,s=l.isSlaved,d=l.isMalf,C=l.isAIMalf,h=l.view;return(0,e.createComponentVNode)(2,o.Window,{width:800,height:d?620:365,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!(u&&s)&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:["This unit is slaved to ",s,"."]}),!!(d||C)&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Law Management",selected:h===0,onClick:function(){function v(){return m("set_view",{set_view:0})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Lawsets",selected:h===1,onClick:function(){function v(){return m("set_view",{set_view:1})}return v}()})]}),h===0&&(0,e.createComponentVNode)(2,b),h===1&&(0,e.createComponentVNode)(2,y)]})})}return k}(),b=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.has_zeroth_laws,s=l.zeroth_laws,d=l.has_ion_laws,C=l.ion_laws,h=l.ion_law_nr,v=l.has_inherent_laws,p=l.inherent_laws,N=l.has_supplied_laws,V=l.supplied_laws,S=l.channels,I=l.channel,L=l.isMalf,w=l.isAdmin,A=l.zeroth_law,x=l.ion_law,E=l.inherent_law,P=l.supplied_law,D=l.supplied_law_position;return(0,e.createFragment)([!!u&&(0,e.createComponentVNode)(2,B,{title:"ERR_NULL_VALUE",laws:s,ctx:i}),!!d&&(0,e.createComponentVNode)(2,B,{title:h,laws:C,ctx:i}),!!v&&(0,e.createComponentVNode)(2,B,{title:"Inherent",laws:p,ctx:i}),!!N&&(0,e.createComponentVNode)(2,B,{title:"Supplied",laws:V,ctx:i}),(0,e.createComponentVNode)(2,t.Section,{title:"Statement Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Statement Channel",children:S.map(function(M){return(0,e.createComponentVNode)(2,t.Button,{content:M.channel,selected:M.channel===I,onClick:function(){function R(){return m("law_channel",{law_channel:M.channel})}return R}()},M.channel)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"State Laws",children:(0,e.createComponentVNode)(2,t.Button,{content:"State Laws",onClick:function(){function M(){return m("state_laws")}return M}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Law Notification",children:(0,e.createComponentVNode)(2,t.Button,{content:"Notify",onClick:function(){function M(){return m("notify_laws")}return M}()})})]})}),!!L&&(0,e.createComponentVNode)(2,t.Section,{title:"Add Laws",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Type"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"60%",children:"Law"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Index"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"20%",children:"Actions"})]}),!!(w&&!u)&&(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Zero"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:A}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function M(){return m("change_zeroth_law")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function M(){return m("add_zeroth_law")}return M}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Ion"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:x}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function M(){return m("change_ion_law")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function M(){return m("add_ion_law")}return M}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Inherent"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:E}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function M(){return m("change_inherent_law")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function M(){return m("add_inherent_law")}return M}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Supplied"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:P}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:D,onClick:function(){function M(){return m("change_supplied_law_position")}return M}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function M(){return m("change_supplied_law")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function M(){return m("add_supplied_law")}return M}()})]})]})]})})],0)},y=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.law_sets;return(0,e.createComponentVNode)(2,t.Box,{children:u.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name+" - "+s.header,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Load Laws",icon:"download",onClick:function(){function d(){return m("transfer_laws",{transfer_laws:s.ref})}return d}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[s.laws.has_ion_laws>0&&s.laws.ion_laws.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.index,children:d.law},d.index)}),s.laws.has_zeroth_laws>0&&s.laws.zeroth_laws.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.index,children:d.law},d.index)}),s.laws.has_inherent_laws>0&&s.laws.inherent_laws.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.index,children:d.law},d.index)}),s.laws.has_supplied_laws>0&&s.laws.inherent_laws.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.index,children:d.law},d.index)})]})},s.name)})})},B=function(g,i){var c=(0,a.useBackend)(g.ctx),m=c.act,l=c.data,u=l.isMalf;return(0,e.createComponentVNode)(2,t.Section,{title:g.title+" Laws",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Index"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"69%",children:"Law"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"21%",children:"State?"})]}),g.laws.map(function(s){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:s.index}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s.law}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:s.state?"Yes":"No",selected:s.state,onClick:function(){function d(){return m("state_law",{ref:s.ref,state_law:s.state?0:1})}return d}()}),!!u&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function d(){return m("edit_law",{edit_law:s.ref})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Delete",icon:"trash",color:"red",onClick:function(){function d(){return m("delete_law",{delete_law:s.ref})}return d}()})],4)]})]},s.law)})]})})}},85066:function(T,r,n){"use strict";r.__esModule=!0,r.LibraryComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.LibraryComputer=function(){function h(v,p){return(0,e.createComponentVNode)(2,o.Window,{width:1050,height:600,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,c)]})})]})}return h}(),y=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=v.args,L=S.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:I.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:I.author}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:I.summary}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rating",children:[I.rating,(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",verticalAlign:"top"})]}),!I.isProgrammatic&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Categories",children:I.categories.join(", ")})]}),(0,e.createVNode)(1,"br"),L===I.ckey&&(0,e.createComponentVNode)(2,t.Button,{content:"Delete Book",icon:"trash",color:"red",disabled:I.isProgrammatic,onClick:function(){function w(){return V("delete_book",{bookid:I.id,user_ckey:L})}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Report Book",icon:"flag",color:"red",disabled:I.isProgrammatic,onClick:function(){function w(){return(0,f.modalOpen)(p,"report_book",{bookid:I.id})}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Rate Book",icon:"star",color:"caution",disabled:I.isProgrammatic,onClick:function(){function w(){return(0,f.modalOpen)(p,"rate_info",{bookid:I.id})}return w}()})]})},B=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=v.args,L=S.selected_report,w=S.report_categories,A=S.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{level:2,m:"-1rem",pb:"1.5rem",title:"Report this book for Rule Violations",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:I.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reasons",children:(0,e.createComponentVNode)(2,t.Box,{children:w.map(function(x,E){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:x.description,selected:x.category_id===L,onClick:function(){function P(){return V("set_report",{report_type:x.category_id})}return P}()}),(0,e.createVNode)(1,"br")],4,E)})})})]}),(0,e.createComponentVNode)(2,t.Button.Confirm,{bold:!0,icon:"paper-plane",content:"Submit Report",onClick:function(){function x(){return V("submit_report",{bookid:I.id,user_ckey:A})}return x}()})]})},k=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.selected_rating,L=Array(10).fill().map(function(w,A){return 1+A});return(0,e.createComponentVNode)(2,t.Stack,{children:[L.map(function(w,A){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{bold:!0,icon:"star",color:I>=w?"caution":"default",onClick:function(){function x(){return V("set_rating",{rating_value:w})}return x}()})},A)}),(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,ml:2,fontSize:"150%",children:[I+"/10",(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",ml:.5,verticalAlign:"top"})]})]})},g=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=v.args,L=S.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{level:2,m:"-1rem",pb:"1.5rem",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:I.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:I.author}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rating",children:[I.current_rating?I.current_rating:0,(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",ml:.5,verticalAlign:"middle"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Ratings",children:I.total_ratings?I.total_ratings:0})]}),(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,t.Button.Confirm,{mt:2,content:"Submit",icon:"paper-plane",onClick:function(){function w(){return V("rate_book",{bookid:I.id,user_ckey:L})}return w}()})]})},i=function(v,p){var N=(0,a.useBackend)(p),V=N.data,S=(0,a.useLocalState)(p,"tabIndex",0),I=S[0],L=S[1],w=V.login_state;return(0,e.createComponentVNode)(2,t.Stack.Item,{mb:1,children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:I===0,onClick:function(){function A(){return L(0)}return A}(),children:"Book Archives"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:I===1,onClick:function(){function A(){return L(1)}return A}(),children:"Corporate Literature"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:I===2,onClick:function(){function A(){return L(2)}return A}(),children:"Upload Book"}),w===1&&(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:I===3,onClick:function(){function A(){return L(3)}return A}(),children:"Patron Manager"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:I===4,onClick:function(){function A(){return L(4)}return A}(),children:"Inventory"})]})})},c=function(v,p){var N=(0,a.useLocalState)(p,"tabIndex",0),V=N[0];switch(V){case 0:return(0,e.createComponentVNode)(2,l);case 1:return(0,e.createComponentVNode)(2,u);case 2:return(0,e.createComponentVNode)(2,s);case 3:return(0,e.createComponentVNode)(2,d);case 4:return(0,e.createComponentVNode)(2,C);default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},m=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.searchcontent,L=S.book_categories,w=S.user_ckey,A=[];return L.map(function(x){return A[x.description]=x.category_id}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"35%",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"edit",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Search Inputs"]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:20,content:I.title||"Input Title",onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_search_title")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:20,content:I.author||"Input Author",onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_search_author")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Ratings",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{mr:1,width:"min-content",content:I.ratingmin,onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_search_ratingmin")}return x}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:"To"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:1,width:"min-content",content:I.ratingmax,onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_search_ratingmax")}return x}()})})]})})]})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"clipboard-list",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Book Categories"]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Dropdown,{mt:.6,width:"190px",options:L.map(function(x){return x.description}),onSelected:function(){function x(E){return V("toggle_search_category",{category_id:A[E]})}return x}()})})})}),(0,e.createVNode)(1,"br"),L.filter(function(x){return I.categories.includes(x.category_id)}).map(function(x){return(0,e.createComponentVNode)(2,t.Button,{content:x.description,selected:!0,icon:"unlink",onClick:function(){function E(){return V("toggle_search_category",{category_id:x.category_id})}return E}()},x.category_id)})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Search Actions"]}),(0,e.createComponentVNode)(2,t.Button,{content:"Clear Search",icon:"eraser",onClick:function(){function x(){return V("clear_search")}return x}()}),I.ckey?(0,e.createComponentVNode)(2,t.Button,{mb:.5,content:"Stop Showing My Books",color:"bad",icon:"search",onClick:function(){function x(){return V("clear_ckey_search")}return x}()}):(0,e.createComponentVNode)(2,t.Button,{content:"Find My Books",icon:"search",onClick:function(){function x(){return V("find_users_books",{user_ckey:w})}return x}()})]})]})},l=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.external_booklist,L=S.archive_pagenumber,w=S.num_pages,A=S.login_state;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Book System Access",buttons:(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",disabled:L===1,onClick:function(){function x(){return V("deincrementpagemax")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-left",disabled:L===1,onClick:function(){function x(){return V("deincrementpage")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{bold:!0,content:L,onClick:function(){function x(){return(0,f.modalOpen)(p,"setpagenumber")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",disabled:L===w,onClick:function(){function x(){return V("incrementpage")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",disabled:L===w,onClick:function(){function x(){return V("incrementpagemax")}return x}()})],4),children:[(0,e.createComponentVNode)(2,m),(0,e.createVNode)(1,"hr"),(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Ratings"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Category"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Actions"})]}),I.map(function(x){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:x.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book",mr:.5}),x.title.length>45?x.title.substr(0,45)+"...":x.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:x.author.length>30?x.author.substr(0,30)+"...":x.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[x.rating,(0,e.createComponentVNode)(2,t.Icon,{name:"star",ml:.5,color:"yellow",verticalAlign:"middle"})]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:x.categories.join(", ").substr(0,45)}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[A===1&&(0,e.createComponentVNode)(2,t.Button,{content:"Order",icon:"print",onClick:function(){function E(){return V("order_external_book",{bookid:x.id})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{content:"More...",onClick:function(){function E(){return(0,f.modalOpen)(p,"expand_info",{bookid:x.id})}return E}()})]})]},x.id)})]})]})},u=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.programmatic_booklist,L=S.login_state;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Corporate Book Catalog",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Actions"})]}),I.map(function(w,A){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:w.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book",mr:2}),w.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:w.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[L===1&&(0,e.createComponentVNode)(2,t.Button,{content:"Order",icon:"print",onClick:function(){function x(){return V("order_programmatic_book",{bookid:w.id})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{content:"More...",onClick:function(){function x(){return(0,f.modalOpen)(p,"expand_info",{bookid:w.id})}return x}()})]})]},A)})]})})},s=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.selectedbook,L=S.book_categories,w=S.user_ckey,A=[];return L.map(function(x){return A[x.description]=x.category_id}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Book System Upload",buttons:(0,e.createComponentVNode)(2,t.Button.Confirm,{bold:!0,width:9.5,icon:"upload",disabled:I.copyright,content:"Upload Book",onClick:function(){function x(){return V("uploadbook",{user_ckey:w})}return x}()}),children:[I.copyright?(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"WARNING: You cannot upload or modify the attributes of a copyrighted book"}):(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{ml:15,mb:3,fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:3,mr:2}),"Book Uploader"]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{width:20,textAlign:"left",icon:"pen",disabled:I.copyright,content:I.title,onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_selected_title")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{width:20,textAlign:"left",icon:"pen",disabled:I.copyright,content:I.author,onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_selected_author")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"240px",options:L.map(function(x){return x.description}),onSelected:function(){function x(E){return V("toggle_upload_category",{category_id:A[E]})}return x}()})})})]}),(0,e.createVNode)(1,"br"),L.filter(function(x){return I.categories.includes(x.category_id)}).map(function(x){return(0,e.createComponentVNode)(2,t.Button,{content:x.description,disabled:I.copyright,selected:!0,icon:"unlink",onClick:function(){function E(){return V("toggle_upload_category",{category_id:x.category_id})}return E}()},x.category_id)})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mr:75,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pen",width:"auto",disabled:I.copyright,content:"Edit Summary",onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_selected_summary")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:I.summary})]})})]})]})},d=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.checkout_data;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Checked Out Books",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Patron"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Time Left"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actions"})]}),I.map(function(L,w){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-tag"}),L.patron_name]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.title}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.timeleft>=0?L.timeleft:"LATE"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:(0,e.createComponentVNode)(2,t.Button,{content:"Mark Lost",icon:"flag",color:"bad",disabled:L.timeleft>=0,onClick:function(){function A(){return V("reportlost",{libraryid:L.libraryid})}return A}()})})]},w)})]})})},C=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.inventory_list;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Library Inventory",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"LIB ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"})]}),I.map(function(L,w){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.libraryid}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"})," ",L.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.checked_out?"Checked Out":"Available"})]},w)})]})})};(0,f.modalRegisterBodyOverride)("expand_info",y),(0,f.modalRegisterBodyOverride)("report_book",B),(0,f.modalRegisterBodyOverride)("rate_info",g)},9516:function(T,r,n){"use strict";r.__esModule=!0,r.LibraryManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.LibraryManager=function(){function i(c,m){return(0,e.createComponentVNode)(2,o.Window,{width:600,height:600,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,e.createComponentVNode)(2,y)})]})}return i}(),y=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.pagestate;switch(d){case 1:return(0,e.createComponentVNode)(2,B);case 2:return(0,e.createComponentVNode)(2,g);case 3:return(0,e.createComponentVNode)(2,k);default:return"WE SHOULDN'T BE HERE!"}},B=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data;return(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.4rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-shield",verticalAlign:"middle",size:3,mr:"1rem"}),"Library Manager"]}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{icon:"trash",width:"auto",color:"danger",content:"Delete Book by SSID",onClick:function(){function d(){return(0,f.modalOpen)(m,"specify_ssid_delete")}return d}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"user-slash",width:"auto",color:"danger",content:"Delete All Books By CKEY",onClick:function(){function d(){return(0,f.modalOpen)(m,"specify_ckey_delete")}return d}()}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{icon:"search",width:"auto",content:"View All Books By CKEY",onClick:function(){function d(){return(0,f.modalOpen)(m,"specify_ckey_search")}return d}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"search",width:"auto",content:"View All Reported Books",onClick:function(){function d(){return u("view_reported_books")}return d}()})]})},k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.reports;return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-secret",verticalAlign:"middle",size:2,mr:"1rem"}),(0,e.createVNode)(1,"br"),"All Reported Books",(0,e.createVNode)(1,"br")]}),(0,e.createComponentVNode)(2,t.Button,{content:"Return to Main",icon:"arrow-alt-circle-left",onClick:function(){function C(){return u("return")}return C}()}),(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Uploader CKEY"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Report Type"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Reporter Ckey"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Administrative Actions"})]}),d.map(function(C){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:C.uploader_ckey}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"}),C.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:C.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:C.report_description}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:C.reporter_ckey}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Delete",icon:"trash",onClick:function(){function h(){return u("delete_book",{bookid:C.id})}return h}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Unflag",icon:"flag",color:"caution",onClick:function(){function h(){return u("unflag_book",{bookid:C.id})}return h}()}),(0,e.createComponentVNode)(2,t.Button,{content:"View",onClick:function(){function h(){return u("view_book",{bookid:C.id})}return h}()})]})]},C.id)})]})})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.ckey,C=s.booklist;return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user",verticalAlign:"middle",size:2,mr:"1rem"}),(0,e.createVNode)(1,"br"),"Books uploaded by ",d,(0,e.createVNode)(1,"br")]}),(0,e.createComponentVNode)(2,t.Button,{mt:1,content:"Return to Main",icon:"arrow-alt-circle-left",onClick:function(){function h(){return u("return")}return h}()}),(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Administrative Actions"})]}),C.map(function(h){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"}),h.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:h.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Delete",icon:"trash",color:"bad",onClick:function(){function v(){return u("delete_book",{bookid:h.id})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"View",onClick:function(){function v(){return u("view_book",{bookid:h.id})}return v}()})]})]},h.id)})]})})}},90447:function(T,r,n){"use strict";r.__esModule=!0,r.ListInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(36036),f=n(72253),b=n(92986),y=n(98595),B=r.ListInputModal=function(){function i(c,m){var l=(0,f.useBackend)(m),u=l.act,s=l.data,d=s.items,C=d===void 0?[]:d,h=s.message,v=h===void 0?"":h,p=s.init_value,N=s.timeout,V=s.title,S=(0,f.useLocalState)(m,"selected",C.indexOf(p)),I=S[0],L=S[1],w=(0,f.useLocalState)(m,"searchBarVisible",C.length>10),A=w[0],x=w[1],E=(0,f.useLocalState)(m,"searchQuery",""),P=E[0],D=E[1],M=function(){function G(X){var J=z.length-1;if(X===b.KEY_DOWN)if(I===null||I===J){var se;L(0),(se=document.getElementById("0"))==null||se.scrollIntoView()}else{var ie;L(I+1),(ie=document.getElementById((I+1).toString()))==null||ie.scrollIntoView()}else if(X===b.KEY_UP)if(I===null||I===0){var me;L(J),(me=document.getElementById(J.toString()))==null||me.scrollIntoView()}else{var q;L(I-1),(q=document.getElementById((I-1).toString()))==null||q.scrollIntoView()}}return G}(),R=function(){function G(X){X!==I&&L(X)}return G}(),O=function(){function G(){x(!1),x(!0)}return G}(),F=function(){function G(X){var J=String.fromCharCode(X),se=C.find(function(q){return q==null?void 0:q.toLowerCase().startsWith(J==null?void 0:J.toLowerCase())});if(se){var ie,me=C.indexOf(se);L(me),(ie=document.getElementById(me.toString()))==null||ie.scrollIntoView()}}return G}(),_=function(){function G(X){var J;X!==P&&(D(X),L(0),(J=document.getElementById("0"))==null||J.scrollIntoView())}return G}(),U=function(){function G(){x(!A),D("")}return G}(),z=C.filter(function(G){return G==null?void 0:G.toLowerCase().includes(P.toLowerCase())}),$=330+Math.ceil(v.length/3);return A||setTimeout(function(){var G;return(G=document.getElementById(I.toString()))==null?void 0:G.focus()},1),(0,e.createComponentVNode)(2,y.Window,{title:V,width:325,height:$,children:[N&&(0,e.createComponentVNode)(2,a.Loader,{value:N}),(0,e.createComponentVNode)(2,y.Window.Content,{onKeyDown:function(){function G(X){var J=window.event?X.which:X.keyCode;(J===b.KEY_DOWN||J===b.KEY_UP)&&(X.preventDefault(),M(J)),J===b.KEY_ENTER&&(X.preventDefault(),u("submit",{entry:z[I]})),!A&&J>=b.KEY_A&&J<=b.KEY_Z&&(X.preventDefault(),F(J)),J===b.KEY_ESCAPE&&(X.preventDefault(),u("cancel"))}return G}(),children:(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{compact:!0,icon:A?"search":"font",selected:!0,tooltip:A?"Search Mode. Type to search or use arrow keys to select manually.":"Hotkey Mode. Type a letter to jump to the first match. Enter to select.",tooltipPosition:"left",onClick:function(){function G(){return U()}return G}()}),className:"ListInput__Section",fill:!0,title:v,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,k,{filteredItems:z,onClick:R,onFocusSearch:O,searchBarVisible:A,selected:I})}),(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:A&&(0,e.createComponentVNode)(2,g,{filteredItems:z,onSearch:_,searchQuery:P,selected:I})}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,children:(0,e.createComponentVNode)(2,t.InputButtons,{input:z[I]})})]})})})]})}return i}(),k=function(c,m){var l=(0,f.useBackend)(m),u=l.act,s=c.filteredItems,d=c.onClick,C=c.onFocusSearch,h=c.searchBarVisible,v=c.selected;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,tabIndex:0,children:s.map(function(p,N){return(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:"transparent",id:N,onClick:function(){function V(){return d(N)}return V}(),onDblClick:function(){function V(S){S.preventDefault(),u("submit",{entry:s[v]})}return V}(),onKeyDown:function(){function V(S){var I=window.event?S.which:S.keyCode;h&&I>=b.KEY_A&&I<=b.KEY_Z&&(S.preventDefault(),C())}return V}(),selected:N===v,style:{animation:"none",transition:"none"},children:p.replace(/^\w/,function(V){return V.toUpperCase()})},N)})})},g=function(c,m){var l=(0,f.useBackend)(m),u=l.act,s=c.filteredItems,d=c.onSearch,C=c.searchQuery,h=c.selected;return(0,e.createComponentVNode)(2,o.Input,{width:"100%",autoFocus:!0,autoSelect:!0,onEnter:function(){function v(p){p.preventDefault(),u("submit",{entry:s[h]})}return v}(),onInput:function(){function v(p,N){return d(N)}return v}(),placeholder:"Search...",value:C})}},26826:function(T,r,n){"use strict";r.__esModule=!0,r.Loadout=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b={Default:function(){function c(m,l){return m.gear.gear_tier-l.gear.gear_tier}return c}(),Alphabetical:function(){function c(m,l){return m.gear.name.toLowerCase().localeCompare(l.gear.name.toLowerCase())}return c}(),Cost:function(){function c(m,l){return m.gear.cost-l.gear.cost}return c}()},y=r.Loadout=function(){function c(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=(0,t.useLocalState)(l,"search",!1),h=C[0],v=C[1],p=(0,t.useLocalState)(l,"searchText",""),N=p[0],V=p[1],S=(0,t.useLocalState)(l,"category",Object.keys(d.gears)[0]),I=S[0],L=S[1],w=(0,t.useLocalState)(l,"tweakedGear",""),A=w[0],x=w[1];return(0,e.createComponentVNode)(2,f.Window,{width:975,height:650,children:[A&&(0,e.createComponentVNode)(2,i,{tweakedGear:A,setTweakedGear:x}),(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,B,{category:I,setCategory:L})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"25%",children:(0,e.createComponentVNode)(2,g,{setTweakedGear:x})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"75%",children:(0,e.createComponentVNode)(2,k,{category:I,search:h,setSearch:v,searchText:N,setSearchText:V})})]})})]})})]})}return c}(),B=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=m.category,h=m.setCategory;return(0,e.createComponentVNode)(2,o.Tabs,{fluid:!0,textAlign:"center",style:{"flex-wrap":"wrap-reverse"},children:Object.keys(d.gears).map(function(v){return(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:v===C,style:{"white-space":"nowrap"},onClick:function(){function p(){return h(v)}return p}(),children:v},v)})})},k=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=d.user_tier,h=d.gear_slots,v=d.max_gear_slots,p=m.category,N=m.search,V=m.setSearch,S=m.searchText,I=m.setSearchText,L=(0,t.useLocalState)(l,"sortType","Default"),w=L[0],A=L[1],x=(0,t.useLocalState)(l,"sortReverse",!1),E=x[0],P=x[1],D=(0,a.createSearch)(S,function(R){return R.name}),M;return S.length>2?M=Object.entries(d.gears).reduce(function(R,O){var F=O[0],_=O[1];return R.concat(Object.entries(_).map(function(U){var z=U[0],$=U[1];return{key:z,gear:$}}))},[]).filter(function(R){var O=R.gear;return D(O)}):M=Object.entries(d.gears[p]).map(function(R){var O=R[0],F=R[1];return{key:O,gear:F}}),M.sort(b[w]),E&&(M=M.reverse()),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:p,buttons:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Dropdown,{height:1.66,selected:w,options:Object.keys(b),onSelected:function(){function R(O){return A(O)}return R}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:E?"arrow-down-wide-short":"arrow-down-short-wide",tooltip:E?"Ascending order":"Descending order",tooltipPosition:"bottom-end",onClick:function(){function R(){return P(!E)}return R}()})}),N&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Input,{width:20,placeholder:"Search...",value:S,onInput:function(){function R(O){return I(O.target.value)}return R}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"magnifying-glass",selected:N,tooltip:"Toggle search field",tooltipPosition:"bottom-end",onClick:function(){function R(){V(!N),I("")}return R}()})})]}),children:M.map(function(R){var O=R.key,F=R.gear,_=12,U=Object.keys(d.selected_gears).includes(O),z=F.cost===1?F.cost+" Point":F.cost+" Points",$=(0,e.createComponentVNode)(2,o.Box,{children:[F.name.length>_&&(0,e.createComponentVNode)(2,o.Box,{children:F.name}),F.gear_tier>C&&(0,e.createComponentVNode)(2,o.Box,{mt:F.name.length>_&&1.5,textColor:"red",children:"That gear is only available at a higher donation tier than you are on."})]}),G=(0,e.createFragment)([F.allowed_roles&&(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:"user",tooltip:(0,e.createComponentVNode)(2,o.Section,{m:-1,title:"Allowed Roles",children:F.allowed_roles.map(function(J){return(0,e.createComponentVNode)(2,o.Box,{children:J},J)})}),tooltipPosition:"left"}),Object.entries(F.tweaks).map(function(J){var se=J[0],ie=J[1];return ie.map(function(me){return(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:me.icon,tooltip:me.tooltip,tooltipPosition:"top"},se)})}),(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:"info",tooltip:F.desc,tooltipPosition:"top"})],0),X=(0,e.createComponentVNode)(2,o.Box,{class:"Loadout-InfoBox",children:[(0,e.createComponentVNode)(2,o.Box,{style:{"flex-grow":1},fontSize:1,color:"gold",opacity:.75,children:F.gear_tier>0&&"Tier "+F.gear_tier}),(0,e.createComponentVNode)(2,o.Box,{fontSize:.75,opacity:.66,children:z})]});return(0,e.createComponentVNode)(2,o.ImageButton,{m:.5,imageSize:84,dmIcon:F.icon,dmIconState:F.icon_state,tooltip:(F.name.length>_||F.gear_tier>0)&&$,tooltipPosition:"bottom",selected:U,disabled:F.gear_tier>C||h+F.cost>v&&!U,buttons:G,buttonsAlt:X,onClick:function(){function J(){return s("toggle_gear",{gear:O})}return J}(),children:F.name},O)})})},g=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=m.setTweakedGear,h=Object.entries(d.gears).reduce(function(v,p){var N=p[0],V=p[1],S=Object.entries(V).filter(function(I){var L=I[0];return Object.keys(d.selected_gears).includes(L)}).map(function(I){var L=I[0],w=I[1];return Object.assign({key:L},w)});return v.concat(S)},[]);return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Selected Equipment",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",tooltip:"Clear Loadout",tooltipPosition:"bottom-end",onClick:function(){function v(){return s("clear_loadout")}return v}()}),children:h.map(function(v){return(0,e.createComponentVNode)(2,o.ImageButton,{fluid:!0,imageSize:32,dmIcon:v.icon,dmIconState:v.icon_state,buttons:(0,e.createFragment)([Object.entries(v.tweaks).length>0&&(0,e.createComponentVNode)(2,o.Button,{translucent:!0,icon:"gears",iconColor:"gray",width:"33px",onClick:function(){function p(){return C(v)}return p}()}),(0,e.createComponentVNode)(2,o.Button,{translucent:!0,icon:"times",iconColor:"red",width:"32px",onClick:function(){function p(){return s("toggle_gear",{gear:v.key})}return p}()})],0),children:v.name},v.key)})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.ProgressBar,{value:d.gear_slots,maxValue:d.max_gear_slots,ranges:{bad:[d.max_gear_slots,1/0],average:[d.max_gear_slots*.66,d.max_gear_slots],good:[0,d.max_gear_slots*.66]},children:(0,e.createComponentVNode)(2,o.Box,{textAlign:"center",children:["Used points ",d.gear_slots,"/",d.max_gear_slots]})})})})]})},i=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=m.tweakedGear,h=m.setTweakedGear;return(0,e.createComponentVNode)(2,o.Dimmer,{children:(0,e.createComponentVNode)(2,o.Box,{className:"Loadout-Modal__background",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,width:20,height:20,title:C.name,buttons:(0,e.createComponentVNode)(2,o.Button,{color:"red",icon:"times",tooltip:"Close",tooltipPosition:"top",onClick:function(){function v(){return h("")}return v}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:Object.entries(C.tweaks).map(function(v){var p=v[0],N=v[1];return N.map(function(V){var S=d.selected_gears[C.key][p];return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:V.name,color:S?"":"gray",buttons:(0,e.createComponentVNode)(2,o.Button,{color:"transparent",icon:"pen",onClick:function(){function I(){return s("set_tweak",{gear:C.key,tweak:p})}return I}()}),children:[S||"Default",(0,e.createComponentVNode)(2,o.Box,{inline:!0,ml:1,width:1,height:1,verticalAlign:"middle",style:{"background-color":""+S}})]},p)})})})})})})}},77613:function(T,r,n){"use strict";r.__esModule=!0,r.MODsuitContent=r.MODsuit=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(I,L){var w=I.name,A=I.value,x=I.module_ref,E=(0,a.useBackend)(L),P=E.act;return(0,e.createComponentVNode)(2,t.NumberInput,{value:A,minValue:-50,maxValue:50,stepPixelSize:5,width:"39px",onChange:function(){function D(M,R){return P("configure",{key:w,value:R,ref:x})}return D}()})},b=function(I,L){var w=I.name,A=I.value,x=I.module_ref,E=(0,a.useBackend)(L),P=E.act;return(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:A,onClick:function(){function D(){return P("configure",{key:w,value:!A,ref:x})}return D}()})},y=function(I,L){var w=I.name,A=I.value,x=I.module_ref,E=(0,a.useBackend)(L),P=E.act;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"paint-brush",onClick:function(){function D(){return P("configure",{key:w,ref:x})}return D}()}),(0,e.createComponentVNode)(2,t.ColorBox,{color:A,mr:.5})],4)},B=function(I,L){var w=I.name,A=I.value,x=I.values,E=I.module_ref,P=(0,a.useBackend)(L),D=P.act;return(0,e.createComponentVNode)(2,t.Dropdown,{displayText:A,options:x,onSelected:function(){function M(R){return D("configure",{key:w,value:R,ref:E})}return M}()})},k=function(I,L){var w=I.name,A=I.display_name,x=I.type,E=I.value,P=I.values,D=I.module_ref,M={number:(0,e.normalizeProps)((0,e.createComponentVNode)(2,f,Object.assign({},I))),bool:(0,e.normalizeProps)((0,e.createComponentVNode)(2,b,Object.assign({},I))),color:(0,e.normalizeProps)((0,e.createComponentVNode)(2,y,Object.assign({},I))),list:(0,e.normalizeProps)((0,e.createComponentVNode)(2,B,Object.assign({},I)))};return(0,e.createComponentVNode)(2,t.Box,{children:[A,": ",M[x]]})},g=function(I,L){var w=I.active,A=I.userradiated,x=I.usertoxins,E=I.usermaxtoxins,P=I.threatlevel;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Radiation Level",color:w&&A?"bad":"good",children:w&&A?"IRRADIATED!":"RADIATION-FREE"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxins Level",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?x/E:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:x})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Hazard Level",color:w&&P?"bad":"good",bold:!0,children:w&&P?P:0})})]})},i=function(I,L){var w=I.active,A=I.userhealth,x=I.usermaxhealth,E=I.userbrute,P=I.userburn,D=I.usertoxin,M=I.useroxy;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?A/x:0,ranges:{good:[.5,1/0],average:[.2,.5],bad:[-1/0,.2]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?A:0})})}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Brute",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?E/x:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?E:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Burn",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?P/x:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?P:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxin",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?D/x:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?D:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Suffocation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?M/x:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?M:0})})})})]})],4)},c=function(I,L){var w=I.active,A=I.statustime,x=I.statusid,E=I.statushealth,P=I.statusmaxhealth,D=I.statusbrute,M=I.statusburn,R=I.statustoxin,O=I.statusoxy,F=I.statustemp,_=I.statusnutrition,U=I.statusfingerprints,z=I.statusdna,$=I.statusviruses;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Operation Time",children:w?A:"00:00:00"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Operation Number",children:w?x||"0":"???"})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?E/P:0,ranges:{good:[.5,1/0],average:[.2,.5],bad:[-1/0,.2]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?E:0})})}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Brute",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?D/P:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?D:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Burn",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?M/P:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?M:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxin",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?R/P:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:R})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Suffocation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?O/P:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:O})})})})]}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Body Temperature",children:w?F:0})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Nutrition Status",children:w?_:0})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"DNA",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fingerprints",children:w?U:"???"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unique Enzymes",children:w?z:"???"})]})}),!!w&&!!$&&(0,e.createComponentVNode)(2,t.Section,{title:"Diseases",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"signature",tooltip:"Name",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"wind",tooltip:"Type",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"bolt",tooltip:"Stage",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"flask",tooltip:"Cure",tooltipPosition:"top"})})]}),$.map(function(G){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.type}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[G.stage,"/",G.maxstage]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.cure})]},G.name)})]})})],0)},m={rad_counter:g,health_analyzer:i,status_readout:c},l=function(){return(0,e.createComponentVNode)(2,t.Section,{align:"center",fill:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{color:"red",name:"exclamation-triangle",size:15}),(0,e.createComponentVNode)(2,t.Box,{fontSize:"30px",color:"red",children:"ERROR: INTERFACE UNRESPONSIVE"})]})},u=function(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data;return(0,e.createComponentVNode)(2,t.Dimmer,{children:(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",color:"blue",children:"SUIT UNPOWERED"})})})},s=function(I,L){var w=I.configuration_data,A=I.module_ref,x=Object.keys(w);return(0,e.createComponentVNode)(2,t.Dimmer,{backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[x.map(function(E){var P=w[E];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,k,{name:E,display_name:P.display_name,type:P.type,value:P.value,values:P.values,module_ref:A})},P.key)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:I.onExit,icon:"times",textAlign:"center",children:"Exit"})})})]})})},d=function(I){switch(I){case 1:return"Use";case 2:return"Toggle";case 3:return"Select"}},C=function(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.active,P=x.malfunctioning,D=x.locked,M=x.open,R=x.selected_module,O=x.complexity,F=x.complexity_max,_=x.wearer_name,U=x.wearer_job,z=P?"Malfunctioning":E?"Active":"Inactive";return(0,e.createComponentVNode)(2,t.Section,{title:"Parameters",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:E?"Deactivate":"Activate",onClick:function(){function $(){return A("activate")}return $}()}),children:z}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Lock",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:D?"lock-open":"lock",content:D?"Unlock":"Lock",onClick:function(){function $(){return A("lock")}return $}()}),children:D?"Locked":"Unlocked"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cover",children:M?"Open":"Closed"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Selected Module",children:R||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Complexity",children:[O," (",F,")"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Occupant",children:[_,", ",U]})]})})},h=function(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.active,P=x.control,D=x.helmet,M=x.chestplate,R=x.gauntlets,O=x.boots,F=x.core,_=x.charge;return(0,e.createComponentVNode)(2,t.Section,{title:"Hardware",children:[(0,e.createComponentVNode)(2,t.Collapsible,{title:"Parts",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Control Unit",children:P}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Helmet",children:D||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Chestplate",children:M||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gauntlets",children:R||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Boots",children:O||"None"})]})}),(0,e.createComponentVNode)(2,t.Collapsible,{title:"Core",children:F&&(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Core Type",children:F}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Core Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:_/100,content:_+"%",ranges:{good:[.6,1/0],average:[.3,.6],bad:[-1/0,.3]}})})]})||(0,e.createComponentVNode)(2,t.Box,{color:"bad",textAlign:"center",children:"No Core Detected"})})]})},v=function(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.active,P=x.modules,D=P.filter(function(M){return!!M.id});return(0,e.createComponentVNode)(2,t.Section,{title:"Info",children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:D.length!==0&&D.map(function(M){var R=m[M.id];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[!E&&(0,e.createComponentVNode)(2,u),(0,e.normalizeProps)((0,e.createComponentVNode)(2,R,Object.assign({},M,{active:E})))]},M.ref)})||(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:"No Info Modules Detected"})})})},p=function(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.complexity_max,P=x.modules,D=(0,a.useLocalState)(L,"module_configuration",null),M=D[0],R=D[1];return(0,e.createComponentVNode)(2,t.Section,{title:"Modules",fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:P.length!==0&&P.map(function(O){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Collapsible,{title:O.module_name,children:(0,e.createComponentVNode)(2,t.Section,{children:[M===O.ref&&(0,e.createComponentVNode)(2,s,{configuration_data:O.configuration_data,module_ref:O.ref,onExit:function(){function F(){return R(null)}return F}()}),(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"save",tooltip:"Complexity",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"plug",tooltip:"Idle Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"lightbulb",tooltip:"Active Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"bolt",tooltip:"Use Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"hourglass-half",tooltip:"Cooldown",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"tasks",tooltip:"Actions",tooltipPosition:"top"})})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[O.module_complexity,"/",E]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:O.idle_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:O.active_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:O.use_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[O.cooldown>0&&O.cooldown/10||"0","/",O.cooldown_time/10,"s"]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function F(){return A("select",{ref:O.ref})}return F}(),icon:"bullseye",selected:O.module_active,tooltip:d(O.module_type),tooltipPosition:"left",disabled:!O.module_type}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function F(){return R(O.ref)}return F}(),icon:"cog",selected:M===O.ref,tooltip:"Configure",tooltipPosition:"left",disabled:O.configuration_data.length===0}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function F(){return A("pin",{ref:O.ref})}return F}(),icon:"thumbtack",selected:O.pinned,tooltip:"Pin",tooltipPosition:"left",disabled:!O.module_type})]})]})]}),(0,e.createComponentVNode)(2,t.Box,{children:O.description})]})})},O.ref)})||(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:"No Modules Detected"})})})})},N=r.MODsuitContent=function(){function S(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.ui_theme,P=x.interface_break;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!P,children:!!P&&(0,e.createComponentVNode)(2,l)||(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,C)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,h)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,v)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,p)})]})})}return S}(),V=r.MODsuit=function(){function S(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.ui_theme,P=x.interface_break;return(0,e.createComponentVNode)(2,o.Window,{theme:E,width:400,height:620,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,N)})})})}return S}()},78624:function(T,r,n){"use strict";r.__esModule=!0,r.MagnetController=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=n(3939),y=new Map([["n",{icon:"arrow-up",tooltip:"Move North"}],["e",{icon:"arrow-right",tooltip:"Move East"}],["s",{icon:"arrow-down",tooltip:"Move South"}],["w",{icon:"arrow-left",tooltip:"Move West"}],["c",{icon:"crosshairs",tooltip:"Move to Magnet"}],["r",{icon:"dice",tooltip:"Move Randomly"}]]),B=r.MagnetController=function(){function k(g,i){var c=(0,t.useBackend)(i),m=c.act,l=c.data,u=l.autolink,s=l.code,d=l.frequency,C=l.linkedMagnets,h=l.magnetConfiguration,v=l.path,p=l.pathPosition,N=l.probing,V=l.powerState,S=l.speed;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:600,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[!u&&(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{content:"Probe",icon:N?"spinner":"sync",iconSpin:!!N,disabled:N,onClick:function(){function I(){return m("probe_magnets")}return I}()}),title:"Magnet Linking",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:(0,a.toFixed)(d/10,1)}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",children:s})]})}),(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{icon:V?"power-off":"times",content:V?"On":"Off",selected:V,onClick:function(){function I(){return m("toggle_power")}return I}()}),title:"Controller Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Speed",children:(0,e.createComponentVNode)(2,o.Slider,{value:S.value,minValue:S.min,maxValue:S.max,onChange:function(){function I(L,w){return m("set_speed",{speed:w})}return I}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Path",children:[Array.from(y.entries()).map(function(I){var L=I[0],w=I[1],A=w.icon,x=w.tooltip;return(0,e.createComponentVNode)(2,o.Button,{icon:A,tooltip:x,onClick:function(){function E(){return m("path_add",{code:L})}return E}()},L)}),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",confirmIcon:"trash",confirmContent:"",float:"right",tooltip:"Reset Path",tooltipPosition:"left",onClick:function(){function I(){return m("path_clear")}return I}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"file-import",float:"right",tooltip:"Manually input path",tooltipPosition:"left",onClick:function(){function I(){return(0,b.modalOpen)(i,"path_custom_input")}return I}()}),(0,e.createComponentVNode)(2,o.BlockQuote,{children:v.map(function(I,L){var w=y.get(I)||{icon:"question"},A=w.icon,x=w.tooltip;return(0,e.createComponentVNode)(2,o.Button.Confirm,{selected:L+2===p,icon:A,confirmIcon:A,confirmContent:"",tooltip:x,onClick:function(){function E(){return m("path_remove",{index:L+1,code:I})}return E}()},L)})})]})]})}),C.map(function(I,L){var w=I.uid,A=I.powerState,x=I.electricityLevel,E=I.magneticField;return(0,e.createComponentVNode)(2,o.Section,{title:"Magnet #"+(L+1)+" Configuration",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:A?"power-off":"times",content:A?"On":"Off",selected:A,onClick:function(){function P(){return m("toggle_magnet_power",{id:w})}return P}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Move Speed",children:(0,e.createComponentVNode)(2,o.Slider,{value:x,minValue:h.electricityLevel.min,maxValue:h.electricityLevel.max,onChange:function(){function P(D,M){return m("set_electricity_level",{id:w,electricityLevel:M})}return P}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Field Size",children:(0,e.createComponentVNode)(2,o.Slider,{value:E,minValue:h.magneticField.min,maxValue:h.magneticField.max,onChange:function(){function P(D,M){return m("set_magnetic_field",{id:w,magneticField:M})}return P}()})})]})},w)})]})]})}return k}()},72106:function(T,r,n){"use strict";r.__esModule=!0,r.MechBayConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.MechBayConsole=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.recharge_port,m=c&&c.mech,l=m&&m.cell,u=m&&m.name;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:155,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:u?"Mech status: "+u:"Mech status",textAlign:"center",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Sync",onClick:function(){function s(){return g("reconnect")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No power port detected. Please re-sync."})||!m&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No mech detected."})||(0,e.createComponentVNode)(2,t.ProgressBar,{value:m.health/m.maxhealth,ranges:{good:[.7,1/0],average:[.3,.7],bad:[-1/0,.3]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No power port detected. Please re-sync."})||!m&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No mech detected."})||!l&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No cell is installed."})||(0,e.createComponentVNode)(2,t.ProgressBar,{value:l.charge/l.maxcharge,ranges:{good:[.7,1/0],average:[.3,.7],bad:[-1/0,.3]},children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:l.charge})," / "+l.maxcharge]})})]})})})})}return b}()},7466:function(T,r,n){"use strict";r.__esModule=!0,r.MechaControlConsole=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=n(25328),y=r.MechaControlConsole=function(){function B(k,g){var i=(0,t.useBackend)(g),c=i.act,m=i.data,l=m.beacons,u=m.stored_data;return u.length?(0,e.createComponentVNode)(2,f.Window,{width:420,height:500,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:"Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"window-close",onClick:function(){function s(){return c("clear_log")}return s}()}),children:u.map(function(s){return(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",children:["(",s.time,")"]}),(0,e.createComponentVNode)(2,o.Box,{children:(0,b.decodeHtmlEntities)(s.message)})]},s.time)})})})}):(0,e.createComponentVNode)(2,f.Window,{width:420,height:500,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:l.length&&l.map(function(s){return(0,e.createComponentVNode)(2,o.Section,{title:s.name,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function d(){return c("send_message",{mt:s.uid})}return d}(),children:"Message"}),(0,e.createComponentVNode)(2,o.Button,{icon:"eye",onClick:function(){function d(){return c("get_log",{mt:s.uid})}return d}(),children:"View Log"}),(0,e.createComponentVNode)(2,o.Button.Confirm,{color:"red",content:"Sabotage",icon:"bomb",onClick:function(){function d(){return c("shock",{mt:s.uid})}return d}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{good:[s.maxHealth*.75,1/0],average:[s.maxHealth*.5,s.maxHealth*.75],bad:[-1/0,s.maxHealth*.5]},value:s.health,maxValue:s.maxHealth})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cell Charge",children:s.cell&&(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{good:[s.cellMaxCharge*.75,1/0],average:[s.cellMaxCharge*.5,s.cellMaxCharge*.75],bad:[-1/0,s.cellMaxCharge*.5]},value:s.cellCharge,maxValue:s.cellMaxCharge})||(0,e.createComponentVNode)(2,o.NoticeBox,{children:"No Cell Installed"})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Air Tank",children:[s.airtank,"kPa"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pilot",children:s.pilot||"Unoccupied"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Location",children:(0,b.toTitleCase)(s.location)||"Unknown"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Active Equipment",children:s.active||"None"}),s.cargoMax&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cargo Space",children:(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{bad:[s.cargoMax*.75,1/0],average:[s.cargoMax*.5,s.cargoMax*.75],good:[-1/0,s.cargoMax*.5]},value:s.cargoUsed,maxValue:s.cargoMax})})||null]})},s.name)})||(0,e.createComponentVNode)(2,o.NoticeBox,{children:"No mecha beacons found."})})})}return B}()},79625:function(T,r,n){"use strict";r.__esModule=!0,r.MedicalRecords=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(3939),b=n(98595),y=n(321),B=n(5485),k=n(22091),g={Minor:"lightgray",Medium:"good",Harmful:"average","Dangerous!":"bad","BIOHAZARD THREAT!":"darkred"},i={"*Deceased*":"deceased","*SSD*":"ssd","Physically Unfit":"physically_unfit",Disabled:"disabled"},c=function(A,x){(0,f.modalOpen)(A,"edit",{field:x.edit,value:x.value})},m=function(A,x){var E=A.args;return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:E.name||"Virus",children:(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Number of stages",children:E.max_stages}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Spread",children:[E.spread_text," Transmission"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Possible cure",children:E.cure}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Notes",children:E.desc}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Severity",color:g[E.severity],children:E.severity})]})})})},l=r.MedicalRecords=function(){function w(A,x){var E=(0,t.useBackend)(x),P=E.data,D=P.loginState,M=P.screen;if(!D.logged_in)return(0,e.createComponentVNode)(2,b.Window,{width:800,height:900,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,B.LoginScreen)})});var R;return M===2?R=(0,e.createComponentVNode)(2,u):M===3?R=(0,e.createComponentVNode)(2,s):M===4?R=(0,e.createComponentVNode)(2,d):M===5?R=(0,e.createComponentVNode)(2,p):M===6?R=(0,e.createComponentVNode)(2,N):M===7&&(R=(0,e.createComponentVNode)(2,V)),(0,e.createComponentVNode)(2,b.Window,{width:800,height:900,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,y.LoginInfo),(0,e.createComponentVNode)(2,k.TemporaryNotice),(0,e.createComponentVNode)(2,L),R]})})]})}return w}(),u=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.records,R=(0,t.useLocalState)(x,"searchText",""),O=R[0],F=R[1],_=(0,t.useLocalState)(x,"sortId","name"),U=_[0],z=_[1],$=(0,t.useLocalState)(x,"sortOrder",!0),G=$[0],X=$[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Manage Records",icon:"wrench",ml:"0.25rem",onClick:function(){function J(){return P("screen",{screen:3})}return J}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{fluid:!0,placeholder:"Search by Name, ID, Physical Status, or Mental Status",onInput:function(){function J(se,ie){return F(ie)}return J}()})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,S,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,S,{id:"id",children:"ID"}),(0,e.createComponentVNode)(2,S,{id:"rank",children:"Assignment"}),(0,e.createComponentVNode)(2,S,{id:"p_stat",children:"Patient Status"}),(0,e.createComponentVNode)(2,S,{id:"m_stat",children:"Mental Status"})]}),M.filter((0,a.createSearch)(O,function(J){return J.name+"|"+J.id+"|"+J.rank+"|"+J.p_stat+"|"+J.m_stat})).sort(function(J,se){var ie=G?1:-1;return J[U].localeCompare(se[U])*ie}).map(function(J){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listRow--"+i[J.p_stat],onClick:function(){function se(){return P("view_record",{view_record:J.ref})}return se}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",J.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:J.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:J.rank}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:J.p_stat}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:J.m_stat})]},J.id)})]})})})],4)},s=function(A,x){var E=(0,t.useBackend)(x),P=E.act;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,translucent:!0,lineHeight:3,icon:"download",content:"Backup to Disk",disabled:!0})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:[(0,e.createComponentVNode)(2,o.Button,{fluid:!0,translucent:!0,lineHeight:3,icon:"upload",content:"Upload from Disk",my:"0.5rem",disabled:!0})," "]}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button.Confirm,{fluid:!0,translucent:!0,lineHeight:3,icon:"trash",content:"Delete All Medical Records",onClick:function(){function D(){return P("del_all_med_records")}return D}()})})]})})},d=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.medical,R=D.printing;return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{height:"235px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"General Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:R?"spinner":"print",disabled:R,iconSpin:!!R,content:"Print Record",ml:"0.5rem",onClick:function(){function O(){return P("print_record")}return O}()}),children:(0,e.createComponentVNode)(2,C)})}),!M||!M.fields?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Medical Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"pen",content:"Create New Record",onClick:function(){function O(){return P("new_med_record")}return O}()}),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"Medical records lost!"]})})})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Medical Data",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",disabled:!!M.empty,content:"Delete Medical Record",onClick:function(){function O(){return P("del_med_record")}return O}()}),children:(0,e.createComponentVNode)(2,h)})}),(0,e.createComponentVNode)(2,v)],4)],0)},C=function(A,x){var E=(0,t.useBackend)(x),P=E.data,D=P.general;return!D||!D.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"General records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:D.fields.map(function(M,R){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:M.field,children:[(0,e.createComponentVNode)(2,o.Box,{height:"20px",inline:!0,children:M.value}),!!M.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",onClick:function(){function O(){return c(x,M)}return O}()})]},R)})})}),!!D.has_photos&&D.photos.map(function(M,R){return(0,e.createComponentVNode)(2,o.Stack.Item,{inline:!0,textAlign:"center",color:"label",ml:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:M,style:{width:"96px","margin-top":"2.5rem","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createVNode)(1,"br"),"Photo #",R+1]},R)})]})},h=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.medical;return!M||!M.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"Medical records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:M.fields.map(function(R,O){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:R.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(R.value),!!R.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:R.line_break?"1rem":"initial",onClick:function(){function F(){return c(x,R)}return F}()})]},O)})})})})},v=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.medical;return(0,e.createComponentVNode)(2,o.Stack.Item,{height:"150px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Comments/Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"comment",content:"Add Entry",onClick:function(){function R(){return(0,f.modalOpen)(x,"add_comment")}return R}()}),children:M.comments.length===0?(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No comments found."}):M.comments.map(function(R,O){return(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:R.header}),(0,e.createVNode)(1,"br"),R.text,(0,e.createComponentVNode)(2,o.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){function F(){return P("del_comment",{del_comment:O+1})}return F}()})]},O)})})})},p=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.virus,R=(0,t.useLocalState)(x,"searchText",""),O=R[0],F=R[1],_=(0,t.useLocalState)(x,"sortId2","name"),U=_[0],z=_[1],$=(0,t.useLocalState)(x,"sortOrder2",!0),G=$[0],X=$[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{ml:"0.25rem",fluid:!0,placeholder:"Search by Name, Max Stages, or Severity",onInput:function(){function J(se,ie){return F(ie)}return J}()})}),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,I,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,I,{id:"max_stages",children:"Max Stages"}),(0,e.createComponentVNode)(2,I,{id:"severity",children:"Severity"})]}),M.filter((0,a.createSearch)(O,function(J){return J.name+"|"+J.max_stages+"|"+J.severity})).sort(function(J,se){var ie=G?1:-1;return J[U].localeCompare(se[U])*ie}).map(function(J){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listVirus--"+J.severity,onClick:function(){function se(){return P("vir",{vir:J.D})}return se}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"virus"})," ",J.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:J.max_stages}),(0,e.createComponentVNode)(2,o.Table.Cell,{color:g[J.severity],children:J.severity})]},J.id)})]})})})})],4)},N=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.goals;return(0,e.createComponentVNode)(2,o.Section,{title:"Virology Goals",fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:M.length!==0&&M.map(function(R){return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:R.name,children:[(0,e.createComponentVNode)(2,o.Table,{children:(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:(0,e.createComponentVNode)(2,o.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,o.ProgressBar,{value:R.delivered,minValue:0,maxValue:R.deliverygoal,ranges:{good:[R.deliverygoal*.5,1/0],average:[R.deliverygoal*.25,R.deliverygoal*.5],bad:[-1/0,R.deliverygoal*.25]},children:[R.delivered," / ",R.deliverygoal," Units"]})})})}),(0,e.createComponentVNode)(2,o.Box,{children:R.report})]})},R.id)})||(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Box,{textAlign:"center",children:"No Goals Detected"})})})})},V=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.medbots;return M.length===0?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"robot",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"There are no Medibots."]})})})}):(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Area"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Chemicals"})]}),M.map(function(R){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listMedbot--"+R.on,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"medical"})," ",R.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[R.area||"Unknown"," (",R.x,", ",R.y,")"]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:R.on?(0,e.createComponentVNode)(2,o.Box,{color:"good",children:"Online"}):(0,e.createComponentVNode)(2,o.Box,{color:"average",children:"Offline"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:R.use_beaker?"Reservoir: "+R.total_volume+"/"+R.maximum_volume:"Using internal synthesizer"})]},R.id)})]})})})},S=function(A,x){var E=(0,t.useLocalState)(x,"sortId","name"),P=E[0],D=E[1],M=(0,t.useLocalState)(x,"sortOrder",!0),R=M[0],O=M[1],F=A.id,_=A.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:P!==F&&"transparent",onClick:function(){function U(){P===F?O(!R):(D(F),O(!0))}return U}(),children:[_,P===F&&(0,e.createComponentVNode)(2,o.Icon,{name:R?"sort-up":"sort-down",ml:"0.25rem;"})]})})},I=function(A,x){var E=(0,t.useLocalState)(x,"sortId2","name"),P=E[0],D=E[1],M=(0,t.useLocalState)(x,"sortOrder2",!0),R=M[0],O=M[1],F=A.id,_=A.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:P!==F&&"transparent",onClick:function(){function U(){P===F?O(!R):(D(F),O(!0))}return U}(),children:[_,P===F&&(0,e.createComponentVNode)(2,o.Icon,{name:R?"sort-up":"sort-down",ml:"0.25rem;"})]})})},L=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.screen,R=D.general;return(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:M===2,onClick:function(){function O(){P("screen",{screen:2})}return O}(),children:"List Records"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"database",selected:M===5,onClick:function(){function O(){P("screen",{screen:5})}return O}(),children:"Virus Database"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"vial",selected:M===6,onClick:function(){function O(){P("screen",{screen:6})}return O}(),children:"Virology Goals"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"plus-square",selected:M===7,onClick:function(){function O(){return P("screen",{screen:7})}return O}(),children:"Medibot Tracking"}),M===3&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"wrench",selected:M===3,children:"Record Maintenance"}),M===4&&R&&!R.empty&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"file",selected:M===4,children:["Record: ",R.fields[0].value]})]})})};(0,f.modalRegisterBodyOverride)("virus",m)},54989:function(T,r,n){"use strict";r.__esModule=!0,r.MerchVendor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=g.product,s=g.productImage,d=g.productCategory,C=l.user_money;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+s,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}})}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:u.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{disabled:u.price>C,icon:"shopping-cart",content:u.price,textAlign:"left",onClick:function(){function h(){return m("purchase",{name:u.name,category:d})}return h}()})})]})},b=function(g,i){var c=(0,a.useBackend)(i),m=c.data,l=(0,a.useLocalState)(i,"tabIndex",1),u=l[0],s=m.products,d=m.imagelist,C=["apparel","toy","decoration"];return(0,e.createComponentVNode)(2,t.Table,{children:s[C[u]].map(function(h){return(0,e.createComponentVNode)(2,f,{product:h,productImage:d[h.path],productCategory:C[u]},h.name)})})},y=r.MerchVendor=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.user_cash,s=l.inserted_cash;return(0,e.createComponentVNode)(2,o.Window,{title:"Merch Computer",width:450,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"User",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{color:"light-grey",inline:!0,mr:"0.5rem",children:["There is ",(0,e.createVNode)(1,"b",null,s,0)," credits inserted."]}),(0,e.createComponentVNode)(2,t.Button,{disabled:!s,icon:"money-bill-wave-alt",content:"Dispense Change",textAlign:"left",onClick:function(){function d(){return m("change")}return d}()})],4),children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Doing your job and not getting any recognition at work? Well, welcome to the merch shop! Here, you can buy cool things in exchange for money you earn when you have completed your Job Objectives.",u!==null&&(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:["Your balance is ",(0,e.createVNode)(1,"b",null,[u||0,(0,e.createTextVNode)(" credits")],0),"."]})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Products",children:[(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,b)]})})]})})})}return k}(),B=function(g,i){var c=(0,a.useBackend)(i),m=c.data,l=(0,a.useLocalState)(i,"tabIndex",1),u=l[0],s=l[1],d=m.login_state;return(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"dice",selected:u===1,onClick:function(){function C(){return s(1)}return C}(),children:"Toys"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"flag",selected:u===2,onClick:function(){function C(){return s(2)}return C}(),children:"Decorations"})]})}},87684:function(T,r,n){"use strict";r.__esModule=!0,r.MiningVendor=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=["title","items","gridLayout"];function y(l,u){if(l==null)return{};var s={};for(var d in l)if({}.hasOwnProperty.call(l,d)){if(u.includes(d))continue;s[d]=l[d]}return s}var B={Alphabetical:function(){function l(u,s){return u-s}return l}(),Availability:function(){function l(u,s){return-(u.affordable-s.affordable)}return l}(),Price:function(){function l(u,s){return u.price-s.price}return l}()},k=r.MiningVendor=function(){function l(u,s){var d=(0,t.useLocalState)(s,"gridLayout",!1),C=d[0],h=d[1];return(0,e.createComponentVNode)(2,f.Window,{width:400,height:525,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,c,{gridLayout:C,setGridLayout:h}),(0,e.createComponentVNode)(2,i,{gridLayout:C})]})})})}return l}(),g=function(u,s){var d=(0,t.useBackend)(s),C=d.act,h=d.data,v=h.has_id,p=h.id;return(0,e.createComponentVNode)(2,o.NoticeBox,{success:v,children:v?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Box,{inline:!0,verticalAlign:"middle",style:{float:"left"},children:["Logged in as ",p.name,".",(0,e.createVNode)(1,"br"),"You have ",p.points.toLocaleString("en-US")," points."]}),(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject ID",style:{float:"right"},onClick:function(){function N(){return C("logoff")}return N}()}),(0,e.createComponentVNode)(2,o.Box,{style:{clear:"both"}})],4):"Please insert an ID in order to make purchases."})},i=function(u,s){var d=(0,t.useBackend)(s),C=d.act,h=d.data,v=h.has_id,p=h.id,N=h.items,V=u.gridLayout,S=(0,t.useLocalState)(s,"search",""),I=S[0],L=S[1],w=(0,t.useLocalState)(s,"sort","Alphabetical"),A=w[0],x=w[1],E=(0,t.useLocalState)(s,"descending",!1),P=E[0],D=E[1],M=(0,a.createSearch)(I,function(F){return F[0]}),R=!1,O=Object.entries(N).map(function(F,_){var U=Object.entries(F[1]).filter(M).map(function(z){return z[1].affordable=v&&p.points>=z[1].price,z[1]}).sort(B[A]);if(U.length!==0)return P&&(U=U.reverse()),R=!0,(0,e.createComponentVNode)(2,m,{title:F[0],items:U,gridLayout:V},F[0])});return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:R?O:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No items matching your criteria was found!"})})})},c=function(u,s){var d=u.gridLayout,C=u.setGridLayout,h=(0,t.useLocalState)(s,"search",""),v=h[0],p=h[1],N=(0,t.useLocalState)(s,"sort",""),V=N[0],S=N[1],I=(0,t.useLocalState)(s,"descending",!1),L=I[0],w=I[1];return(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{mt:.2,placeholder:"Search by item name..",width:"100%",onInput:function(){function A(x,E){return p(E)}return A}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:d?"list":"table-cells-large",height:1.75,tooltip:d?"Toggle List Layout":"Toggle Grid Layout",tooltipPosition:"bottom-start",onClick:function(){function A(){return C(!d)}return A}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"30%",children:(0,e.createComponentVNode)(2,o.Dropdown,{selected:"Alphabetical",options:Object.keys(B),width:"100%",onSelected:function(){function A(x){return S(x)}return A}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:L?"arrow-down":"arrow-up",height:1.75,tooltip:L?"Descending order":"Ascending order",tooltipPosition:"bottom-start",onClick:function(){function A(){return w(!L)}return A}()})})]})})},m=function(u,s){var d=(0,t.useBackend)(s),C=d.act,h=d.data,v=u.title,p=u.items,N=u.gridLayout,V=y(u,b);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Collapsible,Object.assign({open:!0,title:v},V,{children:p.map(function(S){return N?(0,e.createComponentVNode)(2,o.ImageButton,{mb:.5,imageSize:57.5,dmIcon:S.icon,dmIconState:S.icon_state,disabled:!h.has_id||h.id.points0&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--unread",children:ae>=10?"9+":ae})}),(0,e.createComponentVNode)(2,s,{icon:"briefcase",title:"Job Openings",selected:O===1,onClick:function(){function le(){return x("jobs")}return le}()}),(0,e.createComponentVNode)(2,o.Divider)]}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:F.map(function(le){return(0,e.createComponentVNode)(2,s,{icon:le.icon,title:le.name,selected:O===2&&F[U-1]===le,onClick:function(){function Z(){return x("channel",{uid:le.uid})}return Z}(),children:le.unread>0&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--unread",children:le.unread>=10?"9+":le.unread})},le)})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Divider),(!!P||!!D)&&(0,e.createFragment)([(0,e.createComponentVNode)(2,s,{security:!0,icon:"exclamation-circle",title:"Edit Wanted Notice",mb:"0.5rem",onClick:function(){function le(){return(0,y.modalOpen)(w,"wanted_notice")}return le}()}),(0,e.createComponentVNode)(2,s,{security:!0,icon:me?"minus-square":"minus-square-o",title:"Censor Mode: "+(me?"On":"Off"),mb:"0.5rem",onClick:function(){function le(){return q(!me)}return le}()}),(0,e.createComponentVNode)(2,o.Divider)],4),(0,e.createComponentVNode)(2,s,{icon:"pen-alt",title:"New Story",mb:"0.5rem",onClick:function(){function le(){return(0,y.modalOpen)(w,"create_story")}return le}()}),(0,e.createComponentVNode)(2,s,{icon:"plus-circle",title:"New Channel",onClick:function(){function le(){return(0,y.modalOpen)(w,"create_channel")}return le}()}),(0,e.createComponentVNode)(2,o.Divider),(0,e.createComponentVNode)(2,s,{icon:R?"spinner":"print",iconSpin:R,title:R?"Printing...":"Print Newspaper",onClick:function(){function le(){return x("print_newspaper")}return le}()}),(0,e.createComponentVNode)(2,s,{icon:M?"volume-mute":"volume-up",title:"Mute: "+(M?"On":"Off"),onClick:function(){function le(){return x("toggle_mute")}return le}()})]})]})}),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,width:"100%",children:[(0,e.createComponentVNode)(2,B.TemporaryNotice),re]})]})})]})}return I}(),s=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=L.icon,P=E===void 0?"":E,D=L.iconSpin,M=L.selected,R=M===void 0?!1:M,O=L.security,F=O===void 0?!1:O,_=L.onClick,U=L.title,z=L.children,$=i(L,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({className:(0,a.classes)(["Newscaster__menuButton",R&&"Newscaster__menuButton--selected",F&&"Newscaster__menuButton--security"]),onClick:_},$,{children:[R&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--selectedBar"}),(0,e.createComponentVNode)(2,o.Icon,{name:P,spin:D,size:"2"}),(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--title",children:U}),z]})))},d=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=E.screen,D=E.is_admin,M=E.channel_idx,R=E.channel_can_manage,O=E.channels,F=E.stories,_=E.wanted,U=(0,t.useLocalState)(w,"fullStories",[]),z=U[0],$=U[1],G=(0,t.useLocalState)(w,"censorMode",!1),X=G[0],J=G[1],se=P===2&&M>-1?O[M-1]:null;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[!!_&&(0,e.createComponentVNode)(2,h,{story:_,wanted:!0}),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:se?se.icon:"newspaper",mr:"0.5rem"}),se?se.name:"Headlines"],0),children:F.length>0?F.slice().reverse().map(function(ie){return!z.includes(ie.uid)&&ie.body.length+3>c?Object.assign({},ie,{body_short:ie.body.substr(0,c-4)+"..."}):ie}).map(function(ie,me){return(0,e.createComponentVNode)(2,h,{story:ie},me)}):(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__emptyNotice",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"times",size:"3"}),(0,e.createVNode)(1,"br"),"There are no stories at this time."]})}),!!se&&(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,height:"40%",title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"info-circle",mr:"0.5rem"}),(0,e.createTextVNode)("About")],4),buttons:(0,e.createFragment)([X&&(0,e.createComponentVNode)(2,o.Button,{disabled:!!se.admin&&!D,selected:se.censored,icon:se.censored?"comment-slash":"comment",content:se.censored?"Uncensor Channel":"Censor Channel",mr:"0.5rem",onClick:function(){function ie(){return x("censor_channel",{uid:se.uid})}return ie}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!R,icon:"cog",content:"Manage",onClick:function(){function ie(){return(0,y.modalOpen)(w,"manage_channel",{uid:se.uid})}return ie}()})],0),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description",children:se.description||"N/A"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",children:se.author||"N/A"}),!!D&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Ckey",children:se.author_ckey}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Public",children:se.public?"Yes":"No"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Total Views",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"eye",mr:"0.5rem"}),F.reduce(function(ie,me){return ie+me.view_count},0).toLocaleString()]})]})})]})},C=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=E.jobs,D=E.wanted,M=Object.entries(P).reduce(function(R,O){var F=O[0],_=O[1];return R+_.length},0);return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[!!D&&(0,e.createComponentVNode)(2,h,{story:D,wanted:!0}),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"briefcase",mr:"0.5rem"}),(0,e.createTextVNode)("Job Openings")],4),buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",color:"label",children:"Work for a better future at Nanotrasen"}),children:M>0?m.map(function(R){return Object.assign({},l[R],{id:R,jobs:P[R]})}).filter(function(R){return!!R&&R.jobs.length>0}).map(function(R){return(0,e.createComponentVNode)(2,o.Section,{className:(0,a.classes)(["Newscaster__jobCategory","Newscaster__jobCategory--"+R.id]),title:R.title,buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",color:"label",children:R.fluff_text}),children:R.jobs.map(function(O){return(0,e.createComponentVNode)(2,o.Box,{class:(0,a.classes)(["Newscaster__jobOpening",!!O.is_command&&"Newscaster__jobOpening--command"]),children:["\u2022 ",O.title]},O.title)})},R.id)}):(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__emptyNotice",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"times",size:"3"}),(0,e.createVNode)(1,"br"),"There are no openings at this time."]})}),(0,e.createComponentVNode)(2,o.Section,{height:"17%",children:["Interested in serving Nanotrasen?",(0,e.createVNode)(1,"br"),"Sign up for any of the above position now at the ",(0,e.createVNode)(1,"b",null,"Head of Personnel's Office!",16),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.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."})]})]})},h=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=L.story,D=L.wanted,M=D===void 0?!1:D,R=E.is_admin,O=(0,t.useLocalState)(w,"fullStories",[]),F=O[0],_=O[1],U=(0,t.useLocalState)(w,"censorMode",!1),z=U[0],$=U[1];return(0,e.createComponentVNode)(2,o.Section,{className:(0,a.classes)(["Newscaster__story",M&&"Newscaster__story--wanted"]),title:(0,e.createFragment)([M&&(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-circle",mr:"0.5rem"}),P.censor_flags&2&&"[REDACTED]"||P.title||"News from "+P.author],0),buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",children:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:[!M&&z&&(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:(0,e.createComponentVNode)(2,o.Button,{enabled:P.censor_flags&2,icon:P.censor_flags&2?"comment-slash":"comment",content:P.censor_flags&2?"Uncensor":"Censor",mr:"0.5rem",mt:"-0.25rem",onClick:function(){function G(){return x("censor_story",{uid:P.uid})}return G}()})}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",P.author," |\xA0",!!R&&(0,e.createFragment)([(0,e.createTextVNode)("ckey: "),P.author_ckey,(0,e.createTextVNode)(" |\xA0")],0),!M&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"eye"}),(0,e.createTextVNode)(" "),P.view_count.toLocaleString(),(0,e.createTextVNode)(" |\xA0")],0),(0,e.createComponentVNode)(2,o.Icon,{name:"clock"})," ",(0,f.timeAgo)(P.publish_time,E.world_time)]})]})}),children:(0,e.createComponentVNode)(2,o.Box,{children:P.censor_flags&2?"[REDACTED]":(0,e.createFragment)([!!P.has_photo&&(0,e.createComponentVNode)(2,v,{name:"story_photo_"+P.uid+".png",float:"right",ml:"0.5rem"}),(P.body_short||P.body).split("\n").map(function(G,X){return(0,e.createComponentVNode)(2,o.Box,{children:G||(0,e.createVNode)(1,"br")},X)}),P.body_short&&(0,e.createComponentVNode)(2,o.Button,{content:"Read more..",mt:"0.5rem",onClick:function(){function G(){return _([].concat(F,[P.uid]))}return G}()}),(0,e.createComponentVNode)(2,o.Box,{clear:"right"})],0)})})},v=function(L,w){var A=L.name,x=i(L,g),E=(0,t.useLocalState)(w,"viewingPhoto",""),P=E[0],D=E[1];return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({as:"img",className:"Newscaster__photo",src:A,onClick:function(){function M(){return D(A)}return M}()},x)))},p=function(L,w){var A=(0,t.useLocalState)(w,"viewingPhoto",""),x=A[0],E=A[1];return(0,e.createComponentVNode)(2,o.Modal,{className:"Newscaster__photoZoom",children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",src:x}),(0,e.createComponentVNode)(2,o.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){function P(){return E("")}return P}()})]})},N=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=!!L.args.uid&&E.channels.filter(function(te){return te.uid===L.args.uid}).pop();if(L.id==="manage_channel"&&!P){(0,y.modalClose)(w);return}var D=L.id==="manage_channel",M=!!L.args.is_admin,R=L.args.scanned_user,O=(0,t.useLocalState)(w,"author",(P==null?void 0:P.author)||R||"Unknown"),F=O[0],_=O[1],U=(0,t.useLocalState)(w,"name",(P==null?void 0:P.name)||""),z=U[0],$=U[1],G=(0,t.useLocalState)(w,"description",(P==null?void 0:P.description)||""),X=G[0],J=G[1],se=(0,t.useLocalState)(w,"icon",(P==null?void 0:P.icon)||"newspaper"),ie=se[0],me=se[1],q=(0,t.useLocalState)(w,"isPublic",D?!!(P!=null&&P.public):!1),re=q[0],ae=q[1],le=(0,t.useLocalState)(w,"adminLocked",(P==null?void 0:P.admin)===1||!1),Z=le[0],ne=le[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:D?"Manage "+P.name:"Create New Channel",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!M,width:"100%",value:F,onInput:function(){function te(fe,pe){return _(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",placeholder:"50 characters max.",maxLength:"50",value:z,onInput:function(){function te(fe,pe){return $(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description (optional)",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{multiline:!0,width:"100%",placeholder:"128 characters max.",maxLength:"128",value:X,onInput:function(){function te(fe,pe){return J(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Icon",children:[(0,e.createComponentVNode)(2,o.Input,{disabled:!M,value:ie,width:"35%",mr:"0.5rem",onInput:function(){function te(fe,pe){return me(pe)}return te}()}),(0,e.createComponentVNode)(2,o.Icon,{name:ie,size:"2",verticalAlign:"middle",mr:"0.5rem"})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Accept Public Stories?",children:(0,e.createComponentVNode)(2,o.Button,{selected:re,icon:re?"toggle-on":"toggle-off",content:re?"Yes":"No",onClick:function(){function te(){return ae(!re)}return te}()})}),M&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:Z,icon:Z?"lock":"lock-open",content:Z?"On":"Off",tooltip:"Locking this channel will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function te(){return ne(!Z)}return te}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:F.trim().length===0||z.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function te(){(0,y.modalAnswer)(w,L.id,"",{author:F,name:z.substr(0,49),description:X.substr(0,128),icon:ie,public:re?1:0,admin_locked:Z?1:0})}return te}()})]})},V=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=E.photo,D=E.channels,M=E.channel_idx,R=M===void 0?-1:M,O=!!L.args.is_admin,F=L.args.scanned_user,_=D.slice().sort(function(te,fe){if(R<0)return 0;var pe=D[R-1];if(pe.uid===te.uid)return-1;if(pe.uid===fe.uid)return 1}).filter(function(te){return O||!te.frozen&&(te.author===F||!!te.public)}),U=(0,t.useLocalState)(w,"author",F||"Unknown"),z=U[0],$=U[1],G=(0,t.useLocalState)(w,"channel",_.length>0?_[0].name:""),X=G[0],J=G[1],se=(0,t.useLocalState)(w,"title",""),ie=se[0],me=se[1],q=(0,t.useLocalState)(w,"body",""),re=q[0],ae=q[1],le=(0,t.useLocalState)(w,"adminLocked",!1),Z=le[0],ne=le[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:"Create New Story",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!O,width:"100%",value:z,onInput:function(){function te(fe,pe){return $(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Channel",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Dropdown,{selected:X,options:_.map(function(te){return te.name}),mb:"0",width:"100%",onSelected:function(){function te(fe){return J(fe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Divider),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",placeholder:"128 characters max.",maxLength:"128",value:ie,onInput:function(){function te(fe,pe){return me(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Story Text",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{fluid:!0,multiline:!0,placeholder:"1024 characters max.",maxLength:"1024",rows:"8",width:"100%",value:re,onInput:function(){function te(fe,pe){return ae(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{icon:"image",selected:P,content:P?"Eject: "+P.name:"Insert Photo",tooltip:!P&&"Attach a photo to this story by holding the photograph in your hand.",onClick:function(){function te(){return x(P?"eject_photo":"attach_photo")}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Preview",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Section,{noTopPadding:!0,title:ie,maxHeight:"13.5rem",overflow:"auto",children:(0,e.createComponentVNode)(2,o.Box,{mt:"0.5rem",children:[!!P&&(0,e.createComponentVNode)(2,v,{name:"inserted_photo_"+P.uid+".png",float:"right"}),re.split("\n").map(function(te,fe){return(0,e.createComponentVNode)(2,o.Box,{children:te||(0,e.createVNode)(1,"br")},fe)}),(0,e.createComponentVNode)(2,o.Box,{clear:"right"})]})})}),O&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:Z,icon:Z?"lock":"lock-open",content:Z?"On":"Off",tooltip:"Locking this story will make it censorable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function te(){return ne(!Z)}return te}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:z.trim().length===0||X.trim().length===0||ie.trim().length===0||re.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function te(){(0,y.modalAnswer)(w,"create_story","",{author:z,channel:X,title:ie.substr(0,127),body:re.substr(0,1023),admin_locked:Z?1:0})}return te}()})]})},S=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=E.photo,D=E.wanted,M=!!L.args.is_admin,R=L.args.scanned_user,O=(0,t.useLocalState)(w,"author",(D==null?void 0:D.author)||R||"Unknown"),F=O[0],_=O[1],U=(0,t.useLocalState)(w,"name",(D==null?void 0:D.title.substr(8))||""),z=U[0],$=U[1],G=(0,t.useLocalState)(w,"description",(D==null?void 0:D.body)||""),X=G[0],J=G[1],se=(0,t.useLocalState)(w,"adminLocked",(D==null?void 0:D.admin_locked)===1||!1),ie=se[0],me=se[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:"Manage Wanted Notice",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Authority",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!M,width:"100%",value:F,onInput:function(){function q(re,ae){return _(ae)}return q}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",value:z,maxLength:"128",onInput:function(){function q(re,ae){return $(ae)}return q}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{multiline:!0,width:"100%",value:X,maxLength:"512",rows:"4",onInput:function(){function q(re,ae){return J(ae)}return q}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:[(0,e.createComponentVNode)(2,o.Button,{icon:"image",selected:P,content:P?"Eject: "+P.name:"Insert Photo",tooltip:!P&&"Attach a photo to this wanted notice by holding the photograph in your hand.",tooltipPosition:"top",onClick:function(){function q(){return x(P?"eject_photo":"attach_photo")}return q}()}),!!P&&(0,e.createComponentVNode)(2,v,{name:"inserted_photo_"+P.uid+".png",float:"right"})]}),M&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:ie,icon:ie?"lock":"lock-open",content:ie?"On":"Off",tooltip:"Locking this wanted notice will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function q(){return me(!ie)}return q}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:!D,icon:"eraser",color:"danger",content:"Clear",position:"absolute",right:"7.25rem",bottom:"-0.75rem",onClick:function(){function q(){x("clear_wanted_notice"),(0,y.modalClose)(w)}return q}()}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:F.trim().length===0||z.trim().length===0||X.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function q(){(0,y.modalAnswer)(w,L.id,"",{author:F,name:z.substr(0,127),description:X.substr(0,511),admin_locked:ie?1:0})}return q}()})]})};(0,y.modalRegisterBodyOverride)("create_channel",N),(0,y.modalRegisterBodyOverride)("manage_channel",N),(0,y.modalRegisterBodyOverride)("create_story",V),(0,y.modalRegisterBodyOverride)("wanted_notice",S)},48286:function(T,r,n){"use strict";r.__esModule=!0,r.Noticeboard=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=r.Noticeboard=function(){function y(B,k){var g=(0,t.useBackend)(k),i=g.act,c=g.data,m=c.papers;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:300,theme:"noticeboard",children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:m.map(function(l){return(0,e.createComponentVNode)(2,o.Stack.Item,{align:"center",width:"22.45%",height:"85%",onClick:function(){function u(){return i("interact",{paper:l.ref})}return u}(),onContextMenu:function(){function u(s){s.preventDefault(),i("showFull",{paper:l.ref})}return u}(),children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,fontSize:.75,title:l.name,children:(0,a.decodeHtmlEntities)(l.contents)})},l.ref)})})})})}return y}()},41166:function(T,r,n){"use strict";r.__esModule=!0,r.NuclearBomb=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.NuclearBomb=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;return i.extended?(0,e.createComponentVNode)(2,o.Window,{width:350,height:290,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auth Disk",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.authdisk?"eject":"id-card",selected:i.authdisk,content:i.diskname?i.diskname:"-----",tooltip:i.authdisk?"Eject Disk":"Insert Disk",onClick:function(){function c(){return g("auth")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auth Code",children:(0,e.createComponentVNode)(2,t.Button,{icon:"key",disabled:!i.authdisk,selected:i.authcode,content:i.codemsg,onClick:function(){function c(){return g("code")}return c}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Arming & Disarming",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Bolted to floor",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.anchored?"check":"times",selected:i.anchored,disabled:!i.authdisk,content:i.anchored?"YES":"NO",onClick:function(){function c(){return g("toggle_anchor")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Time Left",children:(0,e.createComponentVNode)(2,t.Button,{icon:"stopwatch",content:i.time,disabled:!i.authfull,tooltip:"Set Timer",onClick:function(){function c(){return g("set_time")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.safety?"check":"times",selected:i.safety,disabled:!i.authfull,content:i.safety?"ON":"OFF",tooltip:i.safety?"Disable Safety":"Enable Safety",onClick:function(){function c(){return g("toggle_safety")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Arm/Disarm",children:(0,e.createComponentVNode)(2,t.Button,{icon:(i.timer,"bomb"),disabled:i.safety||!i.authfull,color:"red",content:i.timer?"DISARM THE NUKE":"ARM THE NUKE",onClick:function(){function c(){return g("toggle_armed")}return c}()})})]})})]})}):(0,e.createComponentVNode)(2,o.Window,{width:350,height:115,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Deployment",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"exclamation-triangle",content:"Deploy Nuclear Device (will bolt device to floor)",onClick:function(){function c(){return g("deploy")}return c}()})})})})}return b}()},52416:function(T,r,n){"use strict";r.__esModule=!0,r.NumberInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(92986),f=n(72253),b=n(36036),y=n(98595),B=r.NumberInputModal=function(){function g(i,c){var m=(0,f.useBackend)(c),l=m.act,u=m.data,s=u.init_value,d=u.large_buttons,C=u.message,h=C===void 0?"":C,v=u.timeout,p=u.title,N=(0,f.useLocalState)(c,"input",s),V=N[0],S=N[1],I=function(){function A(x){x!==V&&S(x)}return A}(),L=function(){function A(x){x!==V&&S(x)}return A}(),w=140+Math.max(Math.ceil(h.length/3),h.length>0&&d?5:0);return(0,e.createComponentVNode)(2,y.Window,{title:p,width:270,height:w,children:[v&&(0,e.createComponentVNode)(2,a.Loader,{value:v}),(0,e.createComponentVNode)(2,y.Window.Content,{onKeyDown:function(){function A(x){var E=window.event?x.which:x.keyCode;E===o.KEY_ENTER&&l("submit",{entry:V}),E===o.KEY_ESCAPE&&l("cancel")}return A}(),children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Box,{color:"label",children:h})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,k,{input:V,onClick:L,onChange:I})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,t.InputButtons,{input:V})})]})})})]})}return g}(),k=function(i,c){var m=(0,f.useBackend)(c),l=m.act,u=m.data,s=u.min_value,d=u.max_value,C=u.init_value,h=u.round_value,v=i.input,p=i.onClick,N=i.onChange,V=Math.round(v!==s?Math.max(v/2,s):d/2),S=v===s&&s>0||v===1;return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===s,icon:"angle-double-left",onClick:function(){function I(){return p(s)}return I}(),tooltip:v===s?"Min":"Min ("+s+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.RestrictedInput,{autoFocus:!0,autoSelect:!0,fluid:!0,allowFloats:!h,minValue:s,maxValue:d,onChange:function(){function I(L,w){return N(w)}return I}(),onEnter:function(){function I(L,w){return l("submit",{entry:w})}return I}(),value:v})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===d,icon:"angle-double-right",onClick:function(){function I(){return p(d)}return I}(),tooltip:v===d?"Max":"Max ("+d+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:S,icon:"divide",onClick:function(){function I(){return p(V)}return I}(),tooltip:S?"Split":"Split ("+V+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===C,icon:"redo",onClick:function(){function I(){return p(C)}return I}(),tooltip:C?"Reset ("+C+")":"Reset"})})]})}},1218:function(T,r,n){"use strict";r.__esModule=!0,r.OperatingComputer=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(98595),f=n(36036),b=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],y=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],B={average:[.25,.5],bad:[.5,1/0]},k=["bad","average","average","good","average","average","bad"],g=r.OperatingComputer=function(){function l(u,s){var d=(0,t.useBackend)(s),C=d.act,h=d.data,v=h.hasOccupant,p=h.choice,N;return p?N=(0,e.createComponentVNode)(2,m):N=v?(0,e.createComponentVNode)(2,i):(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,o.Window,{width:650,height:455,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{selected:!p,icon:"user",onClick:function(){function V(){return C("choiceOff")}return V}(),children:"Patient"}),(0,e.createComponentVNode)(2,f.Tabs.Tab,{selected:!!p,icon:"cog",onClick:function(){function V(){return C("choiceOn")}return V}(),children:"Options"})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,children:N})})]})})})}return l}(),i=function(u,s){var d=(0,t.useBackend)(s),C=d.data,h=C.occupant;return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,title:"Patient",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Name",children:h.name}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Status",color:b[h.stat][0],children:b[h.stat][1]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:h.maxHealth,value:h.health/h.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),y.map(function(v,p){return(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:v[0]+" Damage",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:"100",value:h[v[1]]/100,ranges:B,children:(0,a.round)(h[v[1]])},p)},p)}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:h.maxTemp,value:h.bodyTemperature/h.maxTemp,color:k[h.temperatureSuitability+3],children:[(0,a.round)(h.btCelsius),"\xB0C, ",(0,a.round)(h.btFaren),"\xB0F"]})}),!!h.hasBlood&&(0,e.createFragment)([(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Blood Level",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:h.bloodMax,value:h.bloodLevel/h.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[h.bloodPercent,"%, ",h.bloodLevel,"cl"]})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Pulse",children:[h.pulse," BPM"]})],4)]})})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Current Procedure",level:"2",children:h.inSurgery?(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Procedure",children:h.surgeryName}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Next Step",children:h.stepName})]}):(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No procedure ongoing."})})})]})},c=function(){return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No patient detected."]})})},m=function(u,s){var d=(0,t.useBackend)(s),C=d.act,h=d.data,v=h.verbose,p=h.health,N=h.healthAlarm,V=h.oxy,S=h.oxyAlarm,I=h.crit;return(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Loudspeaker",children:(0,e.createComponentVNode)(2,f.Button,{selected:v,icon:v?"toggle-on":"toggle-off",content:v?"On":"Off",onClick:function(){function L(){return C(v?"verboseOff":"verboseOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health Announcer",children:(0,e.createComponentVNode)(2,f.Button,{selected:p,icon:p?"toggle-on":"toggle-off",content:p?"On":"Off",onClick:function(){function L(){return C(p?"healthOff":"healthOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health Announcer Threshold",children:(0,e.createComponentVNode)(2,f.Knob,{bipolar:!0,minValue:-100,maxValue:100,value:N,stepPixelSize:5,ml:"0",onChange:function(){function L(w,A){return C("health_adj",{new:A})}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Oxygen Alarm",children:(0,e.createComponentVNode)(2,f.Button,{selected:V,icon:V?"toggle-on":"toggle-off",content:V?"On":"Off",onClick:function(){function L(){return C(V?"oxyOff":"oxyOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Oxygen Alarm Threshold",children:(0,e.createComponentVNode)(2,f.Knob,{bipolar:!0,minValue:-100,maxValue:100,value:S,stepPixelSize:5,ml:"0",onChange:function(){function L(w,A){return C("oxy_adj",{new:A})}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Critical Alert",children:(0,e.createComponentVNode)(2,f.Button,{selected:I,icon:I?"toggle-on":"toggle-off",content:I?"On":"Off",onClick:function(){function L(){return C(I?"critOff":"critOn")}return L}()})})]})}},46892:function(T,r,n){"use strict";r.__esModule=!0,r.Orbit=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(35840);function y(d,C){var h=typeof Symbol!="undefined"&&d[Symbol.iterator]||d["@@iterator"];if(h)return(h=h.call(d)).next.bind(h);if(Array.isArray(d)||(h=B(d))||C&&d&&typeof d.length=="number"){h&&(d=h);var v=0;return function(){return v>=d.length?{done:!0}:{done:!1,value:d[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function B(d,C){if(d){if(typeof d=="string")return k(d,C);var h={}.toString.call(d).slice(8,-1);return h==="Object"&&d.constructor&&(h=d.constructor.name),h==="Map"||h==="Set"?Array.from(d):h==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(h)?k(d,C):void 0}}function k(d,C){(C==null||C>d.length)&&(C=d.length);for(var h=0,v=Array(C);hh},m=function(C,h){var v=C.name,p=h.name;if(!v||!p)return 0;var N=v.match(g),V=p.match(g);if(N&&V&&v.replace(g,"")===p.replace(g,"")){var S=parseInt(N[1],10),I=parseInt(V[1],10);return S-I}return c(v,p)},l=function(C,h){var v=C.searchText,p=C.source,N=C.title,V=C.color,S=C.sorted,I=p.filter(i(v));return S&&I.sort(m),p.length>0&&(0,e.createComponentVNode)(2,o.Section,{title:N+" - ("+p.length+")",children:I.map(function(L){return(0,e.createComponentVNode)(2,u,{thing:L,color:V},L.name)})})},u=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=C.color,V=C.thing;return(0,e.createComponentVNode)(2,o.Button,{color:N,tooltip:V.assigned_role?(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",mr:"0.5em",className:(0,b.classes)(["job_icons16x16",V.assigned_role_sprite])})," ",V.assigned_role]}):"",tooltipPosition:"bottom",onClick:function(){function S(){return p("orbit",{ref:V.ref})}return S}(),children:[V.name,V.orbiters&&(0,e.createComponentVNode)(2,o.Box,{inline:!0,ml:1,children:["(",V.orbiters," ",(0,e.createComponentVNode)(2,o.Icon,{name:"eye"}),")"]})]})},s=r.Orbit=function(){function d(C,h){for(var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.alive,S=N.antagonists,I=N.highlights,L=N.response_teams,w=N.tourist,A=N.auto_observe,x=N.dead,E=N.ssd,P=N.ghosts,D=N.misc,M=N.npcs,R=(0,t.useLocalState)(h,"searchText",""),O=R[0],F=R[1],_={},U=y(S),z;!(z=U()).done;){var $=z.value;_[$.antag]===void 0&&(_[$.antag]=[]),_[$.antag].push($)}var G=Object.entries(_);G.sort(function(J,se){return c(J[0],se[0])});var X=function(){function J(se){for(var ie=0,me=[G.map(function(ae){var le=ae[0],Z=ae[1];return Z}),w,I,V,P,E,x,M,D];ie0&&(0,e.createComponentVNode)(2,o.Section,{title:"Antagonists",children:G.map(function(J){var se=J[0],ie=J[1];return(0,e.createComponentVNode)(2,o.Section,{title:se+" - ("+ie.length+")",level:2,children:ie.filter(i(O)).sort(m).map(function(me){return(0,e.createComponentVNode)(2,u,{color:"bad",thing:me},me.name)})},se)})}),I.length>0&&(0,e.createComponentVNode)(2,l,{title:"Highlights",source:I,searchText:O,color:"teal"}),(0,e.createComponentVNode)(2,l,{title:"Response Teams",source:L,searchText:O,color:"purple"}),(0,e.createComponentVNode)(2,l,{title:"Tourists",source:w,searchText:O,color:"violet"}),(0,e.createComponentVNode)(2,l,{title:"Alive",source:V,searchText:O,color:"good"}),(0,e.createComponentVNode)(2,l,{title:"Ghosts",source:P,searchText:O,color:"grey"}),(0,e.createComponentVNode)(2,l,{title:"SSD",source:E,searchText:O,color:"grey"}),(0,e.createComponentVNode)(2,l,{title:"Dead",source:x,searchText:O,sorted:!1}),(0,e.createComponentVNode)(2,l,{title:"NPCs",source:M,searchText:O,sorted:!1}),(0,e.createComponentVNode)(2,l,{title:"Misc",source:D,searchText:O,sorted:!1})]})})}return d}()},15421:function(T,r,n){"use strict";r.__esModule=!0,r.OreRedemption=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=n(9394);function y(d){if(d==null)throw new TypeError("Cannot destructure "+d)}var B=(0,b.createLogger)("OreRedemption"),k=function(C){return C.toLocaleString("en-US")+" pts"},g=r.OreRedemption=function(){function d(C,h){return(0,e.createComponentVNode)(2,f.Window,{width:490,height:750,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,i,{height:"100%"})}),(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,m)]})})})}return d}(),i=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.id,S=N.points,I=N.disk,L=Object.assign({},(y(C),C));return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({},L,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"average",textAlign:"center",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"This machine only accepts ore. Gibtonite is not accepted."]}),(0,e.createComponentVNode)(2,o.Divider),(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Unclaimed Points",color:S>0?"good":"grey",bold:S>0&&"good",children:k(S)})}),(0,e.createComponentVNode)(2,o.Divider),I?(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Design disk",children:[(0,e.createComponentVNode)(2,o.Button,{selected:!0,bold:!0,icon:"eject",content:I.name,tooltip:"Ejects the design disk.",onClick:function(){function w(){return p("eject_disk")}return w}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!I.design||!I.compatible,icon:"upload",content:"Download",tooltip:"Downloads the design on the disk into the machine.",onClick:function(){function w(){return p("download")}return w}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Stored design",children:(0,e.createComponentVNode)(2,o.Box,{color:I.design&&(I.compatible?"good":"bad"),children:I.design||"N/A"})})]}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No design disk inserted."})]})))},c=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.sheets,S=Object.assign({},(y(C),C));return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,height:"20%",children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,className:"OreRedemption__Ores",p:"0"},S,{children:[(0,e.createComponentVNode)(2,l,{title:"Sheets",columns:[["Available","25%"],["Ore Value","15%"],["Smelt","20%"]]}),V.map(function(I){return(0,e.createComponentVNode)(2,u,{ore:I},I.id)})]})))})},m=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.alloys,S=Object.assign({},(y(C),C));return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,className:"OreRedemption__Ores",p:"0"},S,{children:[(0,e.createComponentVNode)(2,l,{title:"Alloys",columns:[["Recipe","50%"],["Available","11%"],["Smelt","20%"]]}),V.map(function(I){return(0,e.createComponentVNode)(2,s,{ore:I},I.id)})]})))})},l=function(C,h){var v;return(0,e.createComponentVNode)(2,o.Box,{className:"OreHeader",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:C.title}),(v=C.columns)==null?void 0:v.map(function(p){return(0,e.createComponentVNode)(2,o.Stack.Item,{basis:p[1],textAlign:"center",color:"label",bold:!0,children:p[0]},p)})]})})},u=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=C.ore;if(!(N.value&&N.amount<=0&&!(["metal","glass"].indexOf(N.id)>-1)))return(0,e.createComponentVNode)(2,o.Box,{className:"SheetLine",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"45%",align:"middle",children:(0,e.createComponentVNode)(2,o.Stack,{align:"center",children:[(0,e.createComponentVNode)(2,o.Stack.Item,{className:(0,a.classes)(["materials32x32",N.id])}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:N.name})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",color:N.amount>=1?"good":"gray",bold:N.amount>=1,align:"center",children:N.amount.toLocaleString("en-US")}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",children:N.value}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"40%",value:0,minValue:0,maxValue:Math.min(N.amount,50),stepPixelSize:6,onChange:function(){function V(S,I){return p(N.value?"sheet":"alloy",{id:N.id,amount:I})}return V}()})})]})})},s=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=C.ore;return(0,e.createComponentVNode)(2,o.Box,{className:"SheetLine",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"7%",align:"middle",children:(0,e.createComponentVNode)(2,o.Box,{className:(0,a.classes)(["alloys32x32",N.id])})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"30%",textAlign:"middle",align:"center",children:N.name}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"35%",textAlign:"middle",color:N.amount>=1?"good":"gray",align:"center",children:N.description}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"10%",textAlign:"center",color:N.amount>=1?"good":"gray",bold:N.amount>=1,align:"center",children:N.amount.toLocaleString("en-US")}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"40%",value:0,minValue:0,maxValue:Math.min(N.amount,50),stepPixelSize:6,onChange:function(){function V(S,I){return p(N.value?"sheet":"alloy",{id:N.id,amount:I})}return V}()})})]})})}},52754:function(T,r,n){"use strict";r.__esModule=!0,r.PAI=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(71253),b=n(70752),y=function(g){var i;try{i=b("./"+g+".js")}catch(m){if(m.code==="MODULE_NOT_FOUND")return(0,f.routingError)("notFound",g);throw m}var c=i[g];return c||(0,f.routingError)("missingExport",g)},B=r.PAI=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.app_template,s=l.app_icon,d=l.app_title,C=y(u);return(0,e.createComponentVNode)(2,o.Window,{width:600,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{p:1,fill:!0,scrollable:!0,title:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:s,mr:1}),d,u!=="pai_main_menu"&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{ml:2,mb:0,content:"Back",icon:"arrow-left",onClick:function(){function h(){return m("Back")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Home",icon:"arrow-up",onClick:function(){function h(){return m("MASTER_back")}return h}()})],4)]}),children:(0,e.createComponentVNode)(2,C)})})})})})}return k}()},85175:function(T,r,n){"use strict";r.__esModule=!0,r.PDA=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(71253),b=n(59395),y=function(c){var m;try{m=b("./"+c+".js")}catch(u){if(u.code==="MODULE_NOT_FOUND")return(0,f.routingError)("notFound",c);throw u}var l=m[c];return l||(0,f.routingError)("missingExport",c)},B=r.PDA=function(){function i(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.app,C=s.owner;if(!C)return(0,e.createComponentVNode)(2,o.Window,{width:350,height:105,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Error",children:"No user data found. Please swipe an ID card."})})});var h=y(d.template);return(0,e.createComponentVNode)(2,o.Window,{width:600,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,k)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,p:1,pb:0,title:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:d.icon,mr:1}),d.name]}),children:(0,e.createComponentVNode)(2,h)})}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:7.5,children:(0,e.createComponentVNode)(2,g)})]})})})}return i}(),k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.idInserted,C=s.idLink,h=s.stationTime,v=s.cartridge_name;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{ml:.5,children:(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",color:"transparent",onClick:function(){function p(){return u("Authenticate")}return p}(),content:d?C:"No ID Inserted"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"sd-card",color:"transparent",onClick:function(){function p(){return u("Eject")}return p}(),content:v?["Eject "+v]:"No Cartridge Inserted"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"right",bold:!0,mr:1,mt:.5,children:h})]})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.app;return(0,e.createComponentVNode)(2,t.Box,{height:"45px",className:"PDA__footer",backgroundColor:"#1b1b1b",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[!!d.has_back&&(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"33%",mr:-.5,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:d.has_back?"white":"disabled",icon:"arrow-alt-circle-left-o",onClick:function(){function C(){return u("Back")}return C}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{basis:d.has_back?"33%":"100%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:d.is_home?"disabled":"white",icon:"home",onClick:function(){function C(){u("Home")}return C}()})})]})})}},68654:function(T,r,n){"use strict";r.__esModule=!0,r.Pacman=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49968),b=r.Pacman=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.active,l=c.anchored,u=c.broken,s=c.emagged,d=c.fuel_type,C=c.fuel_usage,h=c.fuel_stored,v=c.fuel_cap,p=c.is_ai,N=c.tmp_current,V=c.tmp_max,S=c.tmp_overheat,I=c.output_max,L=c.power_gen,w=c.output_set,A=c.has_fuel,x=h/v,E=N/V,P=w*L,D=Math.round(h/C*2),M=Math.round(D/60),R=D>120?M+" minutes":D+" seconds";return(0,e.createComponentVNode)(2,o.Window,{width:500,height:225,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(u||!l)&&(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:[!!u&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"The generator is malfunctioning!"}),!u&&!l&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"The generator needs to be anchored to the floor with a wrench."})]}),!u&&!!l&&(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:m?"power-off":"times",content:m?"On":"Off",tooltip:"Toggles the generator on/off. Requires fuel.",tooltipPosition:"left",disabled:!A,selected:m,onClick:function(){function O(){return i("toggle_power")}return O}()}),children:(0,e.createComponentVNode)(2,t.Flex,{direction:"row",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",className:"ml-1",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power setting",children:[(0,e.createComponentVNode)(2,t.NumberInput,{value:w,minValue:1,maxValue:I*(s?2.5:1),step:1,className:"mt-1",onDrag:function(){function O(F,_){return i("change_power",{change_power:_})}return O}()}),"(",(0,f.formatPower)(P),")"]})})}),(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:E,ranges:{green:[-1/0,.33],orange:[.33,.66],red:[.66,1/0]},children:[N," \u2103"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[S>50&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"CRITICAL OVERHEAT!"}),S>20&&S<=50&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"WARNING: Overheating!"}),S>1&&S<=20&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Temperature High"}),S===0&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Optimal"})]})]})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Fuel",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject Fuel",tooltip:"Ejects fuel. Generator needs to be offline.",tooltipPosition:"left",disabled:m||p||!A,onClick:function(){function O(){return i("eject_fuel")}return O}()}),children:(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Type",children:d}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel level",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:x,ranges:{red:[-1/0,.33],orange:[.33,.66],green:[.66,1/0]},children:[Math.round(h/1e3)," dm\xB3"]})})]})}),(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel usage",children:[C/1e3," dm\xB3/s"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel depletion",children:[!!A&&(C?R:"N/A"),!A&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Out of fuel"})]})]})})]})})],4)]})})}return y}()},1701:function(T,r,n){"use strict";r.__esModule=!0,r.PanDEMIC=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PanDEMIC=function(){function l(u,s){var d=(0,a.useBackend)(s),C=d.data,h=C.beakerLoaded,v=C.beakerContainsBlood,p=C.beakerContainsVirus,N=C.resistances,V=N===void 0?[]:N,S;return h?v?v&&!p&&(S=(0,e.createFragment)([(0,e.createTextVNode)("No disease detected in provided blood sample.")],4)):S=(0,e.createFragment)([(0,e.createTextVNode)("No blood sample found in the loaded container.")],4):S=(0,e.createFragment)([(0,e.createTextVNode)("No container loaded.")],4),(0,e.createComponentVNode)(2,o.Window,{width:575,height:510,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[S&&!p?(0,e.createComponentVNode)(2,t.Section,{title:"Container Information",buttons:(0,e.createComponentVNode)(2,b,{fill:!0,vertical:!0}),children:(0,e.createComponentVNode)(2,t.NoticeBox,{children:S})}):(0,e.createComponentVNode)(2,k),(V==null?void 0:V.length)>0&&(0,e.createComponentVNode)(2,m,{align:"bottom"})]})})})}return l}(),b=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.beakerLoaded;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!v,onClick:function(){function p(){return C("eject_beaker")}return p}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash-alt",confirmIcon:"eraser",content:"Destroy",confirmContent:"Destroy",disabled:!v,onClick:function(){function p(){return C("destroy_eject_beaker")}return p}()})],4)},y=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.beakerContainsVirus,p=u.strain,N=p.commonName,V=p.description,S=p.diseaseAgent,I=p.bloodDNA,L=p.bloodType,w=p.possibleTreatments,A=p.transmissionRoute,x=p.isAdvanced,E=(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood DNA",children:I?(0,e.createVNode)(1,"span",null,I,0,{style:{"font-family":"'Courier New', monospace"}}):"Undetectable"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood Type",children:(0,e.createVNode)(1,"div",null,null,1,{dangerouslySetInnerHTML:{__html:L!=null?L:"Undetectable"}})})],4);if(!v)return(0,e.createComponentVNode)(2,t.LabeledList,{children:E});var P;return x&&(N!=null&&N!=="Unknown"?P=(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print Release Forms",onClick:function(){function D(){return C("print_release_forms",{strain_index:u.strainIndex})}return D}(),style:{"margin-left":"auto"}}):P=(0,e.createComponentVNode)(2,t.Button,{icon:"pen",content:"Name Disease",onClick:function(){function D(){return C("name_strain",{strain_index:u.strainIndex})}return D}(),style:{"margin-left":"auto"}})),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Common Name",className:"common-name-label",children:(0,e.createComponentVNode)(2,t.Stack,{horizontal:!0,align:"center",children:[N!=null?N:"Unknown",P]})}),V&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:V}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Disease Agent",children:S}),E,(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Spread Vector",children:A!=null?A:"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Possible Cures",children:w!=null?w:"None"})]})},B=function(u,s){var d,C=(0,a.useBackend)(s),h=C.act,v=C.data,p=!!v.synthesisCooldown,N=(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:p?"spinner":"clone",iconSpin:p,content:"Clone",disabled:p,onClick:function(){function V(){return h("clone_strain",{strain_index:u.strainIndex})}return V}()}),u.sectionButtons],0);return(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:(d=u.sectionTitle)!=null?d:"Strain Information",buttons:N,children:(0,e.createComponentVNode)(2,y,{strain:u.strain,strainIndex:u.strainIndex})})})},k=function(u,s){var d,C=(0,a.useBackend)(s),h=C.act,v=C.data,p=v.selectedStrainIndex,N=v.strains,V=N[p-1];if(N.length===0)return(0,e.createComponentVNode)(2,t.Section,{title:"Container Information",buttons:(0,e.createComponentVNode)(2,b),children:(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No disease detected in provided blood sample."})});if(N.length===1){var S;return(0,e.createFragment)([(0,e.createComponentVNode)(2,B,{strain:N[0],strainIndex:1,sectionButtons:(0,e.createComponentVNode)(2,b)}),((S=N[0].symptoms)==null?void 0:S.length)>0&&(0,e.createComponentVNode)(2,i,{strain:N[0]})],0)}var I=(0,e.createComponentVNode)(2,b);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Culture Information",fill:!0,buttons:I,children:(0,e.createComponentVNode)(2,t.Flex,{direction:"column",style:{height:"100%"},children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{children:N.map(function(L,w){var A;return(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"virus",selected:p-1===w,onClick:function(){function x(){return h("switch_strain",{strain_index:w+1})}return x}(),children:(A=L.commonName)!=null?A:"Unknown"},w)})})}),(0,e.createComponentVNode)(2,B,{strain:V,strainIndex:p}),((d=V.symptoms)==null?void 0:d.length)>0&&(0,e.createComponentVNode)(2,i,{className:"remove-section-bottom-padding",strain:V})]})})})},g=function(u){return u.reduce(function(s,d){return s+d},0)},i=function(u){var s=u.strain.symptoms;return(0,e.createComponentVNode)(2,t.Flex.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Infection Symptoms",fill:!0,className:u.className,children:(0,e.createComponentVNode)(2,t.Table,{className:"symptoms-table",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Stealth"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Resistance"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Stage Speed"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Transmissibility"})]}),s.map(function(d,C){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.stealth}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.resistance}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.stageSpeed}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.transmissibility})]},C)}),(0,e.createComponentVNode)(2,t.Table.Row,{className:"table-spacer"}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{style:{"font-weight":"bold"},children:"Total"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(d){return d.stealth}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(d){return d.resistance}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(d){return d.stageSpeed}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(d){return d.transmissibility}))})]})]})})})},c=["flask","vial","eye-dropper"],m=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.synthesisCooldown,p=h.beakerContainsVirus,N=h.resistances;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Antibodies",fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{horizontal:!0,wrap:!0,children:N.map(function(V,S){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:c[S%c.length],disabled:!!v,onClick:function(){function I(){return C("clone_vaccine",{resistance_index:S+1})}return I}(),mr:"0.5em"}),V]},S)})})})})}},67921:function(T,r,n){"use strict";r.__esModule=!0,r.ParticleAccelerator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(25328),f=n(79646),b=n(36352),y=n(98595),B=n(35840),k=n(38307),g=function(u){switch(u){case 1:return"north";case 2:return"south";case 4:return"east";case 8:return"west";case 5:return"northeast";case 6:return"southeast";case 9:return"northwest";case 10:return"southwest"}return""},i=r.ParticleAccelerator=function(){function l(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.assembled,p=h.power,N=h.strength,V=h.max_strength,S=h.icon,I=h.layout_1,L=h.layout_2,w=h.layout_3,A=h.orientation;return(0,e.createComponentVNode)(2,y.Window,{width:395,height:v?160:A==="north"||A==="south"?540:465,children:(0,e.createComponentVNode)(2,y.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Control Panel",buttons:(0,e.createComponentVNode)(2,t.Button,{dmIcon:"sync",content:"Connect",onClick:function(){function x(){return C("scan")}return x}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",mb:"5px",children:(0,e.createComponentVNode)(2,t.Box,{color:v?"good":"bad",children:v?"Operational":"Error: Verify Configuration"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:p?"power-off":"times",content:p?"On":"Off",selected:p,disabled:!v,onClick:function(){function x(){return C("power")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Strength",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:!v||N===0,onClick:function(){function x(){return C("remove_strength")}return x}(),mr:"4px"}),N,(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:!v||N===V,onClick:function(){function x(){return C("add_strength")}return x}(),ml:"4px"})]})]})}),v?"":(0,e.createComponentVNode)(2,t.Section,{title:A?"EM Acceleration Chamber Orientation: "+(0,o.capitalize)(A):"Place EM Acceleration Chamber Next To Console",children:A===0?"":A==="north"||A==="south"?(0,e.createComponentVNode)(2,m):(0,e.createComponentVNode)(2,c)})]})})}return l}(),c=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.assembled,p=h.power,N=h.strength,V=h.max_strength,S=h.icon,I=h.layout_1,L=h.layout_2,w=h.layout_3,A=h.orientation;return(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:(A==="east"?I:w).slice().map(function(x){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})}),(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:L.slice().map(function(x){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})}),(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:(A==="east"?w:I).slice().map(function(x){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})})]})},m=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.assembled,p=h.power,N=h.strength,V=h.max_strength,S=h.icon,I=h.layout_1,L=h.layout_2,w=h.layout_3,A=h.orientation;return(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,f.GridColumn,{width:"40px",children:(A==="north"?I:w).slice().map(function(x){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})}),(0,e.createComponentVNode)(2,f.GridColumn,{children:L.slice().map(function(x){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})}),(0,e.createComponentVNode)(2,f.GridColumn,{width:"40px",children:(A==="north"?w:I).slice().map(function(x){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,tooltip:x.status,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})})]})}},71432:function(T,r,n){"use strict";r.__esModule=!0,r.PdaPainter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PdaPainter=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.data,l=m.has_pda;return(0,e.createComponentVNode)(2,o.Window,{width:510,height:505,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:l?(0,e.createComponentVNode)(2,y):(0,e.createComponentVNode)(2,b)})})}return k}(),b=function(g,i){var c=(0,a.useBackend)(i),m=c.act;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"silver",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"download",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{width:"160px",textAlign:"center",content:"Insert PDA",onClick:function(){function l(){return m("insert_pda")}return l}()})]})})})},y=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.pda_colors;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,horizontal:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,B)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Table,{className:"PdaPainter__list",children:Object.keys(u).map(function(s){return(0,e.createComponentVNode)(2,t.Table.Row,{onClick:function(){function d(){return m("choose_pda",{selectedPda:s})}return d}(),children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/png;base64,"+u[s][0],style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s})]},s)})})})})]})},B=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.current_appearance,s=l.preview_appearance;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Current PDA",children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+u,style:{"vertical-align":"middle",width:"160px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",content:"Eject",color:"green",onClick:function(){function d(){return m("eject_pda")}return d}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"paint-roller",content:"Paint PDA",onClick:function(){function d(){return m("paint_pda")}return d}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Preview",children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+s,style:{"vertical-align":"middle",width:"160px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}})})]})}},33388:function(T,r,n){"use strict";r.__esModule=!0,r.PersonalCrafting=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PersonalCrafting=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.busy,u=m.category,s=m.display_craftable_only,d=m.display_compact,C=m.prev_cat,h=m.next_cat,v=m.subcategory,p=m.prev_subcat,N=m.next_subcat;return(0,e.createComponentVNode)(2,o.Window,{width:700,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!l&&(0,e.createComponentVNode)(2,t.Dimmer,{fontSize:"32px",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cog",spin:1})," Crafting..."]}),(0,e.createComponentVNode)(2,t.Section,{title:u,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Show Craftable Only",icon:s?"check-square-o":"square-o",selected:s,onClick:function(){function V(){return c("toggle_recipes")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Compact Mode",icon:d?"check-square-o":"square-o",selected:d,onClick:function(){function V(){return c("toggle_compact")}return V}()})],4),children:[(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:C,icon:"arrow-left",onClick:function(){function V(){return c("backwardCat")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:h,icon:"arrow-right",onClick:function(){function V(){return c("forwardCat")}return V}()})]}),v&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:p,icon:"arrow-left",onClick:function(){function V(){return c("backwardSubCat")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N,icon:"arrow-right",onClick:function(){function V(){return c("forwardSubCat")}return V}()})]}),d?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,y)]})]})})}return B}(),b=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.display_craftable_only,u=m.can_craft,s=m.cant_craft;return(0,e.createComponentVNode)(2,t.Box,{mt:1,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[u.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.name,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",onClick:function(){function C(){return c("make",{make:d.ref})}return C}()}),d.catalyst_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:d.catalyst_text,content:"Catalysts",color:"transparent"}),(0,e.createComponentVNode)(2,t.Button,{tooltip:d.req_text,content:"Requirements",color:"transparent"}),d.tool_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:d.tool_text,content:"Tools",color:"transparent"})]},d.name)}),!l&&s.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.name,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",disabled:!0}),d.catalyst_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:d.catalyst_text,content:"Catalysts",color:"transparent"}),(0,e.createComponentVNode)(2,t.Button,{tooltip:d.req_text,content:"Requirements",color:"transparent"}),d.tool_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:d.tool_text,content:"Tools",color:"transparent"})]},d.name)})]})})},y=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.display_craftable_only,u=m.can_craft,s=m.cant_craft;return(0,e.createComponentVNode)(2,t.Box,{mt:1,children:[u.map(function(d){return(0,e.createComponentVNode)(2,t.Section,{title:d.name,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",onClick:function(){function C(){return c("make",{make:d.ref})}return C}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[d.catalyst_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Catalysts",children:d.catalyst_text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Requirements",children:d.req_text}),d.tool_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tools",children:d.tool_text})]})},d.name)}),!l&&s.map(function(d){return(0,e.createComponentVNode)(2,t.Section,{title:d.name,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",disabled:!0}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[d.catalyst_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Catalysts",children:d.catalyst_text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Requirements",children:d.req_text}),d.tool_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tools",children:d.tool_text})]})},d.name)})]})}},56150:function(T,r,n){"use strict";r.__esModule=!0,r.Photocopier=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Photocopier=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:440,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Photocopier",color:"silver",children:[(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Copies:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"2em",bold:!0,children:m.copynumber}),(0,e.createComponentVNode)(2,t.Stack.Item,{float:"right",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"minus",textAlign:"center",content:"",onClick:function(){function l(){return c("minus")}return l}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"plus",textAlign:"center",content:"",onClick:function(){function l(){return c("add")}return l}()})]})]}),(0,e.createComponentVNode)(2,t.Stack,{mb:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Toner:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,children:m.toner})]}),(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Inserted Document:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!m.copyitem&&!m.mob,content:m.copyitem?m.copyitem:m.mob?m.mob+"'s ass!":"document",onClick:function(){function l(){return c("removedocument")}return l}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Inserted Folder:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!m.folder,content:m.folder?m.folder:"folder",onClick:function(){function l(){return c("removefolder")}return l}()})})]})]}),(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,b)}),(0,e.createComponentVNode)(2,y)]})})})}return B}(),b=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.issilicon;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"copy",float:"center",textAlign:"center",content:"Copy",onClick:function(){function u(){return c("copy")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file-import",float:"center",textAlign:"center",content:"Scan",onClick:function(){function u(){return c("scandocument")}return u}()}),!!l&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file",color:"green",float:"center",textAlign:"center",content:"Print Text",onClick:function(){function u(){return c("ai_text")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"image",color:"green",float:"center",textAlign:"center",content:"Print Image",onClick:function(){function u(){return c("ai_pic")}return u}()})],4)],0)},y=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Scanned Files",children:m.files.map(function(l){return(0,e.createComponentVNode)(2,t.Section,{title:l.name,buttons:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print",disabled:m.toner<=0,onClick:function(){function u(){return c("filecopy",{uid:l.uid})}return u}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash-alt",content:"Delete",color:"bad",onClick:function(){function u(){return c("deletefile",{uid:l.uid})}return u}()})]})},l.name)})})}},84676:function(T,r,n){"use strict";r.__esModule=!0,r.PoolController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=["tempKey"];function b(g,i){if(g==null)return{};var c={};for(var m in g)if({}.hasOwnProperty.call(g,m)){if(i.includes(m))continue;c[m]=g[m]}return c}var y={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}},B=function(i,c){var m=i.tempKey,l=b(i,f),u=y[m];if(!u)return null;var s=(0,a.useBackend)(c),d=s.data,C=s.act,h=d.currentTemp,v=u.label,p=u.icon,N=m===h,V=function(){C("setTemp",{temp:m})};return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Button,Object.assign({color:"transparent",selected:N,onClick:V},l,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:p}),v]})))},k=r.PoolController=function(){function g(i,c){for(var m=(0,a.useBackend)(c),l=m.data,u=l.emagged,s=l.currentTemp,d=y[s]||y.normal,C=d.label,h=d.color,v=[],p=0,N=Object.entries(y);p50?"battery-half":"battery-quarter")||h==="C"&&"bolt"||h==="F"&&"battery-full"||h==="M"&&"slash",color:h==="N"&&(v>50?"yellow":"red")||h==="C"&&"yellow"||h==="F"&&"green"||h==="M"&&"orange"}),(0,e.createComponentVNode)(2,B.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,o.toFixed)(v)+"%"})],4)};u.defaultHooks=f.pureComponentHooks;var s=function(C){var h,v,p=C.status;switch(p){case"AOn":h=!0,v=!0;break;case"AOff":h=!0,v=!1;break;case"On":h=!1,v=!0;break;case"Off":h=!1,v=!1;break}var N=(v?"On":"Off")+(" ["+(h?"auto":"manual")+"]");return(0,e.createComponentVNode)(2,B.ColorBox,{color:v?"good":"bad",content:h?void 0:"M",title:N})};s.defaultHooks=f.pureComponentHooks},50992:function(T,r,n){"use strict";r.__esModule=!0,r.PrisonerImplantManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(29319),f=n(3939),b=n(321),y=n(5485),B=n(98595),k=r.PrisonerImplantManager=function(){function g(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.loginState,d=u.prisonerInfo,C=u.chemicalInfo,h=u.trackingInfo,v;if(!s.logged_in)return(0,e.createComponentVNode)(2,B.Window,{theme:"security",width:500,height:850,children:(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,y.LoginScreen)})});var p=[1,5,10];return(0,e.createComponentVNode)(2,B.Window,{theme:"security",width:500,height:850,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.LoginInfo),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Prisoner Points Manager System",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Prisoner",children:(0,e.createComponentVNode)(2,t.Button,{icon:d.name?"eject":"id-card",selected:d.name,content:d.name?d.name:"-----",tooltip:d.name?"Eject ID":"Insert ID",onClick:function(){function N(){return l("id_card")}return N}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Points",children:[d.points!==null?d.points:"-/-",(0,e.createComponentVNode)(2,t.Button,{ml:2,icon:"minus-square",disabled:d.points===null,content:"Reset",onClick:function(){function N(){return l("reset_points")}return N}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Point Goal",children:[d.goal!==null?d.goal:"-/-",(0,e.createComponentVNode)(2,t.Button,{ml:2,icon:"pen",disabled:d.goal===null,content:"Edit",onClick:function(){function N(){return(0,f.modalOpen)(c,"set_points")}return N}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{children:(0,e.createVNode)(1,"box",null,[(0,e.createTextVNode)("1 minute of prison time should roughly equate to 150 points."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Sentences should not exceed 5000 points."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Permanent prisoners should not be given a point goal."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Prisoners who meet their point goal will be able to automatically access their locker and return to the station using the shuttle.")],4,{hidden:d.goal===null})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Tracking Implants",children:h.map(function(N){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{p:1,backgroundColor:"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:["Subject: ",N.subject]}),(0,e.createComponentVNode)(2,t.Box,{children:[" ",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Location",children:N.location}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:N.health}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Prisoner",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-triangle",content:"Warn",tooltip:"Broadcast a message to this poor sod",onClick:function(){function V(){return(0,f.modalOpen)(c,"warn",{uid:N.uid})}return V}()})})]})]},N.subject)]}),(0,e.createVNode)(1,"br")],4)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Chemical Implants",children:C.map(function(N){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{p:1,backgroundColor:"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:["Subject: ",N.name]}),(0,e.createComponentVNode)(2,t.Box,{children:[" ",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Remaining Reagents",children:N.volume})}),p.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{mt:2,disabled:N.volumec;return(0,e.createComponentVNode)(2,t.ImageButton,{fluid:!0,title:N.name,dmIcon:N.icon,dmIconState:N.icon_state,buttonsAlt:(0,e.createComponentVNode)(2,t.Button,{bold:!0,translucent:!0,fontSize:1.5,tooltip:V&&"Not enough tickets",disabled:V,onClick:function(){function S(){return g("purchase",{purchase:N.itemID})}return S}(),children:[N.cost,(0,e.createComponentVNode)(2,t.Icon,{m:0,mt:.25,name:"ticket",color:V?"bad":"good",size:1.6})]}),children:N.desc},N.name)})})})})})})}return b}()},94813:function(T,r,n){"use strict";r.__esModule=!0,r.RCD=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=n(49148),y=r.RCD=function(){function l(u,s){return(0,e.createComponentVNode)(2,o.Window,{width:480,height:670,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,c)]})})]})}return l}(),B=function(u,s){var d=(0,a.useBackend)(s),C=d.data,h=C.matter,v=C.max_matter,p=v*.7,N=v*.25;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Matter Storage",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[p,1/0],average:[N,p],bad:[-1/0,N]},value:h,maxValue:v,children:(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:h+" / "+v+" units"})})})})},k=function(){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Construction Type",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,g,{mode_type:"Floors and Walls"}),(0,e.createComponentVNode)(2,g,{mode_type:"Airlocks"}),(0,e.createComponentVNode)(2,g,{mode_type:"Windows"}),(0,e.createComponentVNode)(2,g,{mode_type:"Deconstruction"})]})})})},g=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=u.mode_type,p=h.mode;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"transparent",content:v,selected:p===v?1:0,onClick:function(){function N(){return C("mode",{mode:v})}return N}()})})},i=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.door_name,p=h.electrochromic,N=h.airlock_glass;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Airlock Settings",children:(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"transparent",icon:"pen-alt",content:(0,e.createFragment)([(0,e.createTextVNode)("Rename: "),(0,e.createVNode)(1,"b",null,v,0)],0),onClick:function(){function V(){return(0,f.modalOpen)(s,"renameAirlock")}return V}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:N===1&&(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:p?"toggle-on":"toggle-off",content:"Electrochromic",selected:p,onClick:function(){function V(){return C("electrochromic")}return V}()})})]})})})},c=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.tab,p=h.locked,N=h.one_access,V=h.selected_accesses,S=h.regions;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"cog",selected:v===1,onClick:function(){function I(){return C("set_tab",{tab:1})}return I}(),children:"Airlock Types"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:v===2,icon:"list",onClick:function(){function I(){return C("set_tab",{tab:2})}return I}(),children:"Airlock Access"})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:v===1?(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Types",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m,{check_number:0})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m,{check_number:1})})]})}):v===2&&p?(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Access",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"lock-open",content:"Unlock",onClick:function(){function I(){return C("set_lock",{new_lock:"unlock"})}return I}()}),children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"lock",size:"5",mb:3}),(0,e.createVNode)(1,"br"),"Airlock access selection is currently locked."]})})}):(0,e.createComponentVNode)(2,b.AccessList,{sectionButtons:(0,e.createComponentVNode)(2,t.Button,{icon:"lock",content:"Lock",onClick:function(){function I(){return C("set_lock",{new_lock:"lock"})}return I}()}),usedByRcd:1,rcdButtons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:N,content:"One",onClick:function(){function I(){return C("set_one_access",{access:"one"})}return I}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!N,width:4,content:"All",onClick:function(){function I(){return C("set_one_access",{access:"all"})}return I}()})],4),accesses:S,selectedList:V,accessMod:function(){function I(L){return C("set",{access:L})}return I}(),grantAll:function(){function I(){return C("grant_all")}return I}(),denyAll:function(){function I(){return C("clear_all")}return I}(),grantDep:function(){function I(L){return C("grant_region",{region:L})}return I}(),denyDep:function(){function I(L){return C("deny_region",{region:L})}return I}()})})],4)},m=function(u,s){for(var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.door_types_ui_list,p=h.door_type,N=u.check_number,V=[],S=0;Sf?w=(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,mb:1,children:"There are new messages"}):w=(0,e.createComponentVNode)(2,t.Box,{color:"label",mb:1,children:"There are no new messages"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Main Menu",buttons:(0,e.createComponentVNode)(2,t.Button,{width:9,content:L?"Speaker Off":"Speaker On",selected:!L,icon:L?"volume-mute":"volume-up",onClick:function(){function A(){return N("toggleSilent")}return A}()}),children:[w,(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"View Messages",icon:S>f?"envelope-open-text":"envelope",onClick:function(){function A(){return N("setScreen",{setScreen:6})}return A}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Assistance",icon:"hand-paper",onClick:function(){function A(){return N("setScreen",{setScreen:1})}return A}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Supplies",icon:"box",onClick:function(){function A(){return N("setScreen",{setScreen:2})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Secondary Goal",icon:"clipboard-list",onClick:function(){function A(){return N("setScreen",{setScreen:11})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Relay Anonymous Information",icon:"comment",onClick:function(){function A(){return N("setScreen",{setScreen:3})}return A}()})]})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Print Shipping Label",icon:"tag",onClick:function(){function A(){return N("setScreen",{setScreen:9})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"View Shipping Logs",icon:"clipboard-list",onClick:function(){function A(){return N("setScreen",{setScreen:10})}return A}()})]})}),!!I&&(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Send Station-Wide Announcement",icon:"bullhorn",onClick:function(){function A(){return N("setScreen",{setScreen:8})}return A}()})})]})})},i=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S=V.department,I=[],L;switch(h.purpose){case"ASSISTANCE":I=V.assist_dept,L="Request assistance from another department";break;case"SUPPLIES":I=V.supply_dept,L="Request supplies from another department";break;case"INFO":I=V.info_dept,L="Relay information to another department";break}return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:L,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function w(){return N("setScreen",{setScreen:0})}return w}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:I.filter(function(w){return w!==S}).map(function(w){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:w,textAlign:"right",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Message",icon:"envelope",onClick:function(){function A(){return N("writeInput",{write:w,priority:y})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{content:"High Priority",icon:"exclamation-circle",onClick:function(){function A(){return N("writeInput",{write:w,priority:B})}return A}()})]},w)})})})})},c=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S;switch(h.type){case"SUCCESS":S="Message sent successfully";break;case"FAIL":S="Unable to contact messaging server";break}return(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:S,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function I(){return N("setScreen",{setScreen:0})}return I}()})})},m=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S,I;switch(h.type){case"MESSAGES":S=V.message_log,I="Message Log";break;case"SHIPPING":S=V.shipping_log,I="Shipping label print log";break}return S.reverse(),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:I,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()}),children:S.map(function(L){return(0,e.createComponentVNode)(2,t.Box,{textAlign:"left",children:[L.map(function(w,A){return(0,e.createVNode)(1,"div",null,w,0,null,A)}),(0,e.createVNode)(1,"hr")]},L)})})})},l=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S=V.recipient,I=V.message,L=V.msgVerified,w=V.msgStamped;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Message Authentication",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function A(){return N("setScreen",{setScreen:0})}return A}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Recipient",children:S}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message",children:I}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Validated by",color:"green",children:L}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stamped by",color:"blue",children:w})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",content:"Send Message",icon:"envelope",onClick:function(){function A(){return N("department",{department:S})}return A}()})})})],4)},u=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S=V.message,I=V.announceAuth;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Station-Wide Announcement",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Edit Message",icon:"edit",onClick:function(){function L(){return N("writeAnnouncement")}return L}()})],4),children:S})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:[I?(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"green",children:"ID verified. Authentication accepted."}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Swipe your ID card to authenticate yourself"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:2,textAlign:"center",content:"Send Announcement",icon:"bullhorn",disabled:!(I&&S),onClick:function(){function L(){return N("sendAnnouncement")}return L}()})]})})],4)},s=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S=V.shipDest,I=V.msgVerified,L=V.ship_dept;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{title:"Print Shipping Label",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function w(){return N("setScreen",{setScreen:0})}return w}()}),children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Destination",children:S}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Validated by",children:I})]}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:1,textAlign:"center",content:"Print Label",icon:"print",disabled:!(S&&I),onClick:function(){function w(){return N("printLabel")}return w}()})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Destinations",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:L.map(function(w){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:w,textAlign:"right",className:"candystripe",children:(0,e.createComponentVNode)(2,t.Button,{content:S===w?"Selected":"Select",selected:S===w,onClick:function(){function A(){return N("shipSelect",{shipSelect:w})}return A}()})},w)})})})})],4)},d=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S=V.secondaryGoalAuth,I=V.secondaryGoalEnabled;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Request Secondary Goal",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:[I?S?(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"green",children:"ID verified. Authentication accepted."}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Swipe your ID card to authenticate yourself"}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Complete your current goal first!"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:2,textAlign:"center",content:"Request Secondary Goal",icon:"clipboard-list",disabled:!(S&&I),onClick:function(){function L(){return N("requestSecondaryGoal")}return L}()})]})})],4)}},9861:function(T,r,n){"use strict";r.__esModule=!0,r.RndBackupConsole=r.LinkMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.RndBackupConsole=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.network_name,l=c.has_disk,u=c.disk_name,s=c.linked,d=c.techs,C=c.last_timestamp;return(0,e.createComponentVNode)(2,o.Window,{width:900,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Device Info",children:[(0,e.createComponentVNode)(2,t.Box,{mb:2,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Network",children:s?(0,e.createComponentVNode)(2,t.Button,{content:m,icon:"unlink",selected:1,onClick:function(){function h(){return i("unlink")}return h}()}):"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Loaded Disk",children:l?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:u+" (Last backup: "+C+")",icon:"save",selected:1,onClick:function(){function h(){return i("eject_disk")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Save all",onClick:function(){function h(){return i("saveall2disk")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Load all",onClick:function(){function h(){return i("saveall2network")}return h}()})],4):"None"})]})}),!!s||(0,e.createComponentVNode)(2,b)]}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Section,{title:"Tech Info",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Tech Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Level"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Disk Level"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actions"})]}),Object.keys(d).map(function(h){return!(d[h].network_level>0||d[h].disk_level>0)||(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:d[h].name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d[h].network_level||"None"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d[h].disk_level||"None"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Load to network",disabled:!l||!s,onClick:function(){function v(){return i("savetech2network",{tech:h})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Load to disk",disabled:!l||!s,onClick:function(){function v(){return i("savetech2disk",{tech:h})}return v}()})]})]},h)})]})})})]})})}return y}(),b=r.LinkMenu=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.controllers;return(0,e.createComponentVNode)(2,t.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Link"})]}),m.map(function(l){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Link",icon:"link",onClick:function(){function u(){return i("linktonetworkcontroller",{target_controller:l.addr})}return u}()})})]},l.addr)})]})})}return y}()},68303:function(T,r,n){"use strict";r.__esModule=!0,r.AnalyzerMenu=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=r.AnalyzerMenu=function(){function y(B,k){var g=(0,t.useBackend)(k),i=g.data,c=g.act,m=i.tech_levels,l=i.loaded_item,u=i.linked_analyzer,s=i.can_discover;return u?l?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Section,{title:"Object Analysis",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{content:"Deconstruct",icon:"microscope",onClick:function(){function d(){c("deconstruct")}return d}()}),(0,e.createComponentVNode)(2,o.Button,{content:"Eject",icon:"eject",onClick:function(){function d(){c("eject_item")}return d}()}),!s||(0,e.createComponentVNode)(2,o.Button,{content:"Discover",icon:"atom",onClick:function(){function d(){c("discover")}return d}()})],0),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:l.name})})}),(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{id:"research-levels",children:[(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Research Field"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Current Level"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Object Level"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"New Level"})]}),m.map(function(d){return(0,e.createComponentVNode)(2,b,{techLevel:d},d.id)})]})})],4):(0,e.createComponentVNode)(2,o.Section,{title:"Analysis Menu",children:"No item loaded. Standing by..."}):(0,e.createComponentVNode)(2,o.Section,{title:"Analysis Menu",children:"NO SCIENTIFIC ANALYZER LINKED TO CONSOLE"})}return y}(),b=function(B,k){var g=B.techLevel,i=g.name,c=g.desc,m=g.level,l=g.object_level,u=g.ui_icon,s=l!=null,d=s&&l>=m?Math.max(l,m+1):m;return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"circle-info",tooltip:c})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:u})," ",i]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:m}),s?(0,e.createComponentVNode)(2,o.Table.Cell,{children:l}):(0,e.createComponentVNode)(2,o.Table.Cell,{className:"research-level-no-effect",children:"-"}),(0,e.createComponentVNode)(2,o.Table.Cell,{className:(0,a.classes)([d!==m&&"upgraded-level"]),children:d})]})}},37556:function(T,r,n){"use strict";r.__esModule=!0,r.DataDiskMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o="design",f="tech",b=function(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.act,d=u.disk_data;return d?(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:d.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:d.level}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:d.desc})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:(0,e.createComponentVNode)(2,t.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){function C(){return s("updt_tech")}return C}()})})]}):null},y=function(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.act,d=u.disk_data;if(!d)return null;var C=d.name,h=d.lathe_types,v=d.materials,p=h.join(", ");return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:C}),p?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lathe Types",children:p}):null,(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Required Materials"})]}),v.map(function(N){return(0,e.createComponentVNode)(2,t.Box,{children:["- ",(0,e.createVNode)(1,"span",null,N.name,0,{style:{"text-transform":"capitalize"}})," x ",N.amount]},N.name)}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:(0,e.createComponentVNode)(2,t.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){function N(){return s("updt_design")}return N}()})})]})},B=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.disk_data;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Section,Object.assign({buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Erase",icon:"eraser",disabled:!d,onClick:function(){function C(){return u("erase_disk")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject",icon:"eject",onClick:function(){function C(){u("eject_disk")}return C}()})],4)},c)))},k=function(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.act,d=u.disk_type,C=u.to_copy,h=c.title;return(0,e.createComponentVNode)(2,B,{title:h,children:(0,e.createComponentVNode)(2,t.Box,{overflowY:"auto",overflowX:"hidden",maxHeight:"450px",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:C.sort(function(v,p){return v.name.localeCompare(p.name)}).map(function(v){var p=v.name,N=v.id;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{noColon:!0,label:p,children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Copy to Disk",onClick:function(){function V(){d===f?s("copy_tech",{id:N}):s("copy_design",{id:N})}return V}()})},N)})})})})},g=r.DataDiskMenu=function(){function i(c,m){var l=(0,a.useBackend)(m),u=l.data,s=u.disk_type,d=u.disk_data;if(!s)return(0,e.createComponentVNode)(2,t.Section,{title:"Data Disk",children:"No disk loaded."});switch(s){case o:return d?(0,e.createComponentVNode)(2,B,{title:"Design Disk",children:(0,e.createComponentVNode)(2,y)}):(0,e.createComponentVNode)(2,k,{title:"Design Disk"});case f:return d?(0,e.createComponentVNode)(2,B,{title:"Technology Disk",children:(0,e.createComponentVNode)(2,b)}):(0,e.createComponentVNode)(2,k,{title:"Technology Disk"});default:return(0,e.createFragment)([(0,e.createTextVNode)("UNRECOGNIZED DISK TYPE")],4)}}return i}()},16830:function(T,r,n){"use strict";r.__esModule=!0,r.LatheCategory=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(52662),f=r.LatheCategory=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.data,i=k.act,c=g.category,m=g.matching_designs,l=g.menu,u=l===4,s=u?"build":"imprint";return(0,e.createComponentVNode)(2,t.Section,{title:c,children:[(0,e.createComponentVNode)(2,o.LatheMaterials),(0,e.createComponentVNode)(2,t.Table,{className:"RndConsole__LatheCategory__MatchingDesigns",children:m.map(function(d){var C=d.id,h=d.name,v=d.can_build,p=d.materials;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:h,disabled:v<1,onClick:function(){function N(){return i(s,{id:C,amount:1})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v>=5?(0,e.createComponentVNode)(2,t.Button,{content:"x5",onClick:function(){function N(){return i(s,{id:C,amount:5})}return N}()}):null}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v>=10?(0,e.createComponentVNode)(2,t.Button,{content:"x10",onClick:function(){function N(){return i(s,{id:C,amount:10})}return N}()}):null}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.map(function(N){return(0,e.createFragment)([" | ",(0,e.createVNode)(1,"span",N.is_red?"color-red":null,[N.amount,(0,e.createTextVNode)(" "),N.name],0)],0)})})]},C)})})]})}return b}()},70497:function(T,r,n){"use strict";r.__esModule=!0,r.LatheChemicalStorage=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheChemicalStorage=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.data,g=B.act,i=k.loaded_chemicals,c=k.menu===4;return(0,e.createComponentVNode)(2,t.Section,{title:"Chemical Storage",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Purge All",icon:"trash",onClick:function(){function m(){var l=c?"disposeallP":"disposeallI";g(l)}return m}()}),(0,e.createComponentVNode)(2,t.LabeledList,{children:i.map(function(m){var l=m.volume,u=m.name,s=m.id;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"* "+l+" of "+u,children:(0,e.createComponentVNode)(2,t.Button,{content:"Purge",icon:"trash",onClick:function(){function d(){var C=c?"disposeP":"disposeI";g(C,{id:s})}return d}()})},s)})})]})}return f}()},70864:function(T,r,n){"use strict";r.__esModule=!0,r.LatheMainMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(52662),f=n(68198),b=r.LatheMainMenu=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.data,c=g.act,m=i.menu,l=i.categories,u=m===4?"Protolathe":"Circuit Imprinter";return(0,e.createComponentVNode)(2,t.Section,{title:u+" Menu",children:[(0,e.createComponentVNode)(2,o.LatheMaterials),(0,e.createComponentVNode)(2,f.LatheSearch),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.Flex,{wrap:"wrap",children:l.map(function(s){return(0,e.createComponentVNode)(2,t.Flex,{style:{"flex-basis":"50%","margin-bottom":"6px"},children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-right",content:s,onClick:function(){function d(){c("setCategory",{category:s})}return d}()})},s)})})]})}return y}()},42878:function(T,r,n){"use strict";r.__esModule=!0,r.LatheMaterialStorage=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheMaterialStorage=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.data,g=B.act,i=k.loaded_materials;return(0,e.createComponentVNode)(2,t.Section,{className:"RndConsole__LatheMaterialStorage",title:"Material Storage",children:(0,e.createComponentVNode)(2,t.Table,{children:i.map(function(c){var m=c.id,l=c.amount,u=c.name,s=function(){function v(p){var N=k.menu===4?"lathe_ejectsheet":"imprinter_ejectsheet";g(N,{id:m,amount:p})}return v}(),d=Math.floor(l/2e3),C=l<1,h=d===1?"":"s";return(0,e.createComponentVNode)(2,t.Table.Row,{className:C?"color-grey":"color-yellow",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{minWidth:"210px",children:["* ",l," of ",u]}),(0,e.createComponentVNode)(2,t.Table.Cell,{minWidth:"110px",children:["(",d," sheet",h,")"]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l>=2e3?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"1x",icon:"eject",onClick:function(){function v(){return s(1)}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"C",icon:"eject",onClick:function(){function v(){return s("custom")}return v}()}),l>=2e3*5?(0,e.createComponentVNode)(2,t.Button,{content:"5x",icon:"eject",onClick:function(){function v(){return s(5)}return v}()}):null,(0,e.createComponentVNode)(2,t.Button,{content:"All",icon:"eject",onClick:function(){function v(){return s(50)}return v}()})],0):null})]},m)})})})}return f}()},52662:function(T,r,n){"use strict";r.__esModule=!0,r.LatheMaterials=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheMaterials=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.data,g=k.total_materials,i=k.max_materials,c=k.max_chemicals,m=k.total_chemicals;return(0,e.createComponentVNode)(2,t.Box,{className:"RndConsole__LatheMaterials",mb:"10px",children:(0,e.createComponentVNode)(2,t.Table,{width:"auto",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Material Amount:"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g}),i?(0,e.createComponentVNode)(2,t.Table.Cell,{children:" / "+i}):null]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Chemical Amount:"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:m}),c?(0,e.createComponentVNode)(2,t.Table.Cell,{children:" / "+c}):null]})]})})}return f}()},9681:function(T,r,n){"use strict";r.__esModule=!0,r.LatheMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(12644),f=n(70864),b=n(16830),y=n(42878),B=n(70497),k=["menu"];function g(u,s){if(u==null)return{};var d={};for(var C in u)if({}.hasOwnProperty.call(u,C)){if(s.includes(C))continue;d[C]=u[C]}return d}var i=t.Tabs.Tab,c=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.menu===o.MENU.LATHE?["nav_protolathe",v.submenu_protolathe]:["nav_imprinter",v.submenu_imprinter],N=p[0],V=p[1],S=s.menu,I=g(s,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,i,Object.assign({selected:V===S,onClick:function(){function L(){return h(N,{menu:S})}return L}()},I)))},m=function(s){switch(s){case o.PRINTER_MENU.MAIN:return(0,e.createComponentVNode)(2,f.LatheMainMenu);case o.PRINTER_MENU.SEARCH:return(0,e.createComponentVNode)(2,b.LatheCategory);case o.PRINTER_MENU.MATERIALS:return(0,e.createComponentVNode)(2,y.LatheMaterialStorage);case o.PRINTER_MENU.CHEMICALS:return(0,e.createComponentVNode)(2,B.LatheChemicalStorage)}},l=r.LatheMenu=function(){function u(s,d){var C=(0,a.useBackend)(d),h=C.data,v=h.menu,p=h.linked_lathe,N=h.linked_imprinter;return v===o.MENU.LATHE&&!p?(0,e.createComponentVNode)(2,t.Box,{children:"NO PROTOLATHE LINKED TO CONSOLE"}):v===o.MENU.IMPRINTER&&!N?(0,e.createComponentVNode)(2,t.Box,{children:"NO CIRCUIT IMPRITER LINKED TO CONSOLE"}):(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.MAIN,icon:"bars",children:"Main Menu"}),(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.MATERIALS,icon:"layer-group",children:"Materials"}),(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.CHEMICALS,icon:"flask-vial",children:"Chemicals"})]}),m(h.menu===o.MENU.LATHE?h.submenu_protolathe:h.submenu_imprinter)]})}return u}()},68198:function(T,r,n){"use strict";r.__esModule=!0,r.LatheSearch=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheSearch=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.act;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"Search...",onEnter:function(){function g(i,c){return k("search",{to_search:c})}return g}()})})}return f}()},81421:function(T,r,n){"use strict";r.__esModule=!0,r.LinkMenu=void 0;var e=n(89005),a=n(72253),t=n(98595),o=n(36036),f=r.LinkMenu=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.controllers;return(0,e.createComponentVNode)(2,t.Window,{width:800,height:550,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Link"})]}),c.map(function(m){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:m.addr}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:m.net_id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Link",icon:"link",onClick:function(){function l(){return g("linktonetworkcontroller",{target_controller:m.addr})}return l}()})})]},m.addr)})]})})})})}return b}()},6256:function(T,r,n){"use strict";r.__esModule=!0,r.SettingsMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.SettingsMenu=function(){function y(B,k){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,f),(0,e.createComponentVNode)(2,b)]})}return y}(),f=function(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.sync,l=c.admin;return(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.Flex,{direction:"column",align:"flex-start",children:(0,e.createComponentVNode)(2,t.Button,{color:"red",icon:"unlink",content:"Disconnect from Research Network",onClick:function(){function u(){i("unlink")}return u}()})})})},b=function(B,k){var g=(0,a.useBackend)(k),i=g.data,c=g.act,m=i.linked_analyzer,l=i.linked_lathe,u=i.linked_imprinter;return(0,e.createComponentVNode)(2,t.Section,{title:"Linked Devices",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"link",content:"Re-sync with Nearby Devices",onClick:function(){function s(){return c("find_device")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Scientific Analyzer",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!m,content:m?"Unlink":"Undetected",onClick:function(){function s(){return c("disconnect",{item:"analyze"})}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Protolathe",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!l,content:l?"Unlink":"Undetected",onClick:function(){function s(){c("disconnect",{item:"lathe"})}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Circuit Imprinter",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!u,content:u?"Unlink":"Undetected",onClick:function(){function s(){return c("disconnect",{item:"imprinter"})}return s}()})})]})})}},12644:function(T,r,n){"use strict";r.__esModule=!0,r.RndConsole=r.PRINTER_MENU=r.MENU=void 0;var e=n(89005),a=n(72253),t=n(98595),o=n(36036),f=n(35840),b=n(37556),y=n(9681),B=n(81421),k=n(6256),g=n(68303),i=["menu"];function c(p,N){if(p==null)return{};var V={};for(var S in p)if({}.hasOwnProperty.call(p,S)){if(N.includes(S))continue;V[S]=p[S]}return V}var m=o.Tabs.Tab,l=r.MENU={MAIN:0,DISK:2,ANALYZE:3,LATHE:4,IMPRINTER:5,SETTINGS:6},u=r.PRINTER_MENU={MAIN:0,SEARCH:1,MATERIALS:2,CHEMICALS:3},s=function(N){switch(N){case l.MAIN:return(0,e.createComponentVNode)(2,v);case l.DISK:return(0,e.createComponentVNode)(2,b.DataDiskMenu);case l.ANALYZE:return(0,e.createComponentVNode)(2,g.AnalyzerMenu);case l.LATHE:case l.IMPRINTER:return(0,e.createComponentVNode)(2,y.LatheMenu);case l.SETTINGS:return(0,e.createComponentVNode)(2,k.SettingsMenu);default:return"UNKNOWN MENU"}},d=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.menu,A=N.menu,x=c(N,i);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,m,Object.assign({selected:w===A,onClick:function(){function E(){return I("nav",{menu:A})}return E}()},x)))},C=r.RndConsole=function(){function p(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data;if(!L.linked)return(0,e.createComponentVNode)(2,B.LinkMenu);var w=L.menu,A=L.linked_analyzer,x=L.linked_lathe,E=L.linked_imprinter,P=L.wait_message;return(0,e.createComponentVNode)(2,t.Window,{width:800,height:550,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole",children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,d,{icon:"flask",menu:l.MAIN,children:"Research"}),!!A&&(0,e.createComponentVNode)(2,d,{icon:"microscope",menu:l.ANALYZE,children:"Analyze"}),!!x&&(0,e.createComponentVNode)(2,d,{icon:"print",menu:l.LATHE,children:"Protolathe"}),!!E&&(0,e.createComponentVNode)(2,d,{icon:"memory",menu:l.IMPRINTER,children:"Imprinter"}),(0,e.createComponentVNode)(2,d,{icon:"floppy-disk",menu:l.DISK,children:"Disk"}),(0,e.createComponentVNode)(2,d,{icon:"cog",menu:l.SETTINGS,children:"Settings"})]}),s(w),(0,e.createComponentVNode)(2,h)]})})})}return p}(),h=function(N,V){var S=(0,a.useBackend)(V),I=S.data,L=I.wait_message;return L?(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole__Overlay",children:(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole__Overlay__Wrapper",children:(0,e.createComponentVNode)(2,o.NoticeBox,{color:"black",children:L})})}):null},v=function(N,V){var S=(0,a.useBackend)(V),I=S.data,L=I.tech_levels;return(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{id:"research-levels",children:[(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Research Field"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Level"})]}),L.map(function(w){var A=w.id,x=w.name,E=w.desc,P=w.level,D=w.ui_icon;return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"circle-info",tooltip:E})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:D})," ",x]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P})]},A)})]})})}},29205:function(T,r,n){"use strict";r.__esModule=!0,r.RndNetController=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=r.RndNetController=function(){function k(g,i){var c=(0,t.useBackend)(i),m=c.act,l=c.data,u=l.ion,s=(0,t.useLocalState)(i,"mainTabIndex",0),d=s[0],C=s[1],h=function(){function v(p){switch(p){case 0:return(0,e.createComponentVNode)(2,y);case 1:return(0,e.createComponentVNode)(2,B);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}}return v}();return(0,e.createComponentVNode)(2,f.Window,{width:900,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"wrench",selected:d===0,onClick:function(){function v(){return C(0)}return v}(),children:"Network Management"},"ConfigPage"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"floppy-disk",selected:d===1,onClick:function(){function v(){return C(1)}return v}(),children:"Design Management"},"DesignPage")]}),h(d)]})})}return k}(),y=function(g,i){var c=(0,t.useBackend)(i),m=c.act,l=c.data,u=(0,t.useLocalState)(i,"filterType","ALL"),s=u[0],d=u[1],C=l.network_password,h=l.network_name,v=l.devices,p=[];p.push(s),s==="MSC"&&(p.push("BCK"),p.push("PGN"));var N=s==="ALL"?v:v.filter(function(V){return p.indexOf(V.dclass)>-1});return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Section,{title:"Network Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Network Name",children:(0,e.createComponentVNode)(2,o.Button,{content:h||"Unset",selected:h,icon:"edit",onClick:function(){function V(){return m("network_name")}return V}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Network Password",children:(0,e.createComponentVNode)(2,o.Button,{content:C||"Unset",selected:C,icon:"lock",onClick:function(){function V(){return m("network_password")}return V}()})})]})}),(0,e.createComponentVNode)(2,o.Section,{title:"Connected Devices",children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="ALL",onClick:function(){function V(){return d("ALL")}return V}(),icon:"network-wired",children:"All Devices"},"AllDevices"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="SRV",onClick:function(){function V(){return d("SRV")}return V}(),icon:"server",children:"R&D Servers"},"RNDServers"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="RDC",onClick:function(){function V(){return d("RDC")}return V}(),icon:"desktop",children:"R&D Consoles"},"RDConsoles"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="MFB",onClick:function(){function V(){return d("MFB")}return V}(),icon:"industry",children:"Exosuit Fabricators"},"Mechfabs"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="MSC",onClick:function(){function V(){return d("MSC")}return V}(),icon:"microchip",children:"Miscellaneous Devices"},"Misc")]}),(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Device Name"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Device ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Unlink"})]}),N.map(function(V){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:V.name}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:V.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function S(){return m("unlink_device",{dclass:V.dclass,uid:V.id})}return S}()})})]},V.id)})]})]})],4)},B=function(g,i){var c=(0,t.useBackend)(i),m=c.act,l=c.data,u=l.designs,s=(0,t.useLocalState)(i,"searchText",""),d=s[0],C=s[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Design Management",children:[(0,e.createComponentVNode)(2,o.Input,{fluid:!0,placeholder:"Search for designs",mb:2,onInput:function(){function h(v,p){return C(p)}return h}()}),u.filter((0,a.createSearch)(d,function(h){return h.name})).map(function(h){return(0,e.createComponentVNode)(2,o.Button.Checkbox,{fluid:!0,content:h.name,checked:!h.blacklisted,onClick:function(){function v(){return m(h.blacklisted?"unblacklist_design":"blacklist_design",{d_uid:h.uid})}return v}()},h.name)})]})}},63315:function(T,r,n){"use strict";r.__esModule=!0,r.RndServer=void 0;var e=n(89005),a=n(72253),t=n(44879),o=n(36036),f=n(98595),b=r.RndServer=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.active,s=l.network_name;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:500,resizable:!0,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,o.Section,{title:"Server Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Machine power",children:(0,e.createComponentVNode)(2,o.Button,{content:u?"On":"Off",selected:u,icon:"power-off",onClick:function(){function d(){return m("toggle_active")}return d}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Link status",children:s===null?(0,e.createComponentVNode)(2,o.Box,{color:"red",children:"Unlinked"}):(0,e.createComponentVNode)(2,o.Box,{color:"green",children:"Linked"})})]})}),s===null?(0,e.createComponentVNode)(2,B):(0,e.createComponentVNode)(2,y)]})})}return k}(),y=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.network_name;return(0,e.createComponentVNode)(2,o.Section,{title:"Network Info",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Connected network ID",children:u}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Unlink",children:(0,e.createComponentVNode)(2,o.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function s(){return m("unlink")}return s}()})})]})})},B=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.controllers;return(0,e.createComponentVNode)(2,o.Section,{title:"Detected Cores",children:(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Link"})]}),u.map(function(s){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:s.netname}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Link",icon:"link",onClick:function(){function d(){return m("link",{addr:s.addr})}return d}()})})]},s.addr)})]})})}},26109:function(T,r,n){"use strict";r.__esModule=!0,r.RobotSelfDiagnosis=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=function(k,g){var i=k/g;return i<=.2?"good":i<=.5?"average":"bad"},y=r.RobotSelfDiagnosis=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.data,m=c.component_data;return(0,e.createComponentVNode)(2,o.Window,{width:280,height:480,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:m.map(function(l,u){return(0,e.createComponentVNode)(2,t.Section,{title:(0,f.capitalize)(l.name),children:l.installed<=0?(0,e.createComponentVNode)(2,t.NoticeBox,{m:-.5,height:3.5,color:"red",style:{"font-style":"normal"},children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",children:(0,e.createComponentVNode)(2,t.Flex.Item,{grow:1,textAlign:"center",align:"center",color:"#e8e8e8",children:l.installed===-1?"Destroyed":"Missing"})})}):(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{width:"72%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Brute Damage",color:b(l.brute_damage,l.max_damage),children:l.brute_damage}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Burn Damage",color:b(l.electronic_damage,l.max_damage),children:l.electronic_damage})]})}),(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Powered",color:l.powered?"good":"bad",children:l.powered?"Yes":"No"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Enabled",color:l.status?"good":"bad",children:l.status?"Yes":"No"})]})})]})},u)})})})}return B}()},97997:function(T,r,n){"use strict";r.__esModule=!0,r.RoboticsControlConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.RoboticsControlConsole=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.can_hack,l=c.safety,u=c.show_lock_all,s=c.cyborgs,d=s===void 0?[]:s;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:460,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!u&&(0,e.createComponentVNode)(2,t.Section,{title:"Emergency Lock Down",children:[(0,e.createComponentVNode)(2,t.Button,{icon:l?"lock":"unlock",content:l?"Disable Safety":"Enable Safety",selected:l,onClick:function(){function C(){return i("arm",{})}return C}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"lock",disabled:l,content:"Lock ALL Cyborgs",color:"bad",onClick:function(){function C(){return i("masslock",{})}return C}()})]}),(0,e.createComponentVNode)(2,b,{cyborgs:d,can_hack:m})]})})}return y}(),b=function(B,k){var g=B.cyborgs,i=B.can_hack,c=(0,a.useBackend)(k),m=c.act,l=c.data,u="Detonate";return l.detonate_cooldown>0&&(u+=" ("+l.detonate_cooldown+"s)"),g.length?g.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name,buttons:(0,e.createFragment)([!!s.hackable&&!s.emagged&&(0,e.createComponentVNode)(2,t.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){function d(){return m("hackbot",{uid:s.uid})}return d}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:s.locked_down?"unlock":"lock",color:s.locked_down?"good":"default",content:s.locked_down?"Release":"Lockdown",disabled:!l.auth,onClick:function(){function d(){return m("stopbot",{uid:s.uid})}return d}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"bomb",content:u,disabled:!l.auth||l.detonate_cooldown>0,color:"bad",onClick:function(){function d(){return m("killbot",{uid:s.uid})}return d}()})],0),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:(0,e.createComponentVNode)(2,t.Box,{color:s.status?"bad":s.locked_down?"average":"good",children:s.status?"Not Responding":s.locked_down?"Locked Down":"Nominal"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:(0,e.createComponentVNode)(2,t.Box,{children:s.locstring})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:s.health>50?"good":"bad",value:s.health/100})}),typeof s.charge=="number"&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:s.charge>30?"good":"bad",value:s.charge/100})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell Capacity",children:(0,e.createComponentVNode)(2,t.Box,{color:s.cell_capacity<3e4?"average":"good",children:s.cell_capacity})})],4)||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"No Power Cell"})}),!!s.is_hacked&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safeties",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"DISABLED"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Module",children:s.module}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Master AI",children:(0,e.createComponentVNode)(2,t.Box,{color:s.synchronization?"default":"average",children:s.synchronization||"None"})})]})},s.uid)}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No cyborg units detected within access parameters."})}},54431:function(T,r,n){"use strict";r.__esModule=!0,r.Safe=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Safe=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.dial,s=l.open,d=l.locked,C=l.contents;return(0,e.createComponentVNode)(2,o.Window,{theme:"safe",width:600,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving",children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving--hinge",top:"25%"}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving--hinge",top:"75%"})]}),(0,e.createComponentVNode)(2,t.Icon,{className:"Safe--engraving--arrow",name:"long-arrow-alt-down",size:"3"}),(0,e.createVNode)(1,"br"),s?(0,e.createComponentVNode)(2,y):(0,e.createComponentVNode)(2,t.Box,{as:"img",className:"Safe--dial",src:"safe_dial.png",style:{transform:"rotate(-"+3.6*u+"deg)","z-index":0}})]}),!s&&(0,e.createComponentVNode)(2,B)]})})}return k}(),b=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.dial,s=l.open,d=l.locked,C=function(v,p){return(0,e.createComponentVNode)(2,t.Button,{disabled:s||p&&!d,icon:"arrow-"+(p?"right":"left"),content:(p?"Right":"Left")+" "+v,iconRight:p,onClick:function(){function N(){return m(p?"turnleft":"turnright",{num:v})}return N}(),style:{"z-index":10}})};return(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer",children:[(0,e.createComponentVNode)(2,t.Button,{disabled:d,icon:s?"lock":"lock-open",content:s?"Close":"Open",mb:"0.5rem",onClick:function(){function h(){return m("open")}return h}()}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{position:"absolute",children:[C(50),C(10),C(1)]}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer--right",position:"absolute",right:"5px",children:[C(1,!0),C(10,!0),C(50,!0)]}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer--number",children:u})]})},y=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.contents;return(0,e.createComponentVNode)(2,t.Box,{className:"Safe--contents",overflow:"auto",children:u.map(function(s,d){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{mb:"0.5rem",onClick:function(){function C(){return m("retrieve",{index:d+1})}return C}(),children:[(0,e.createComponentVNode)(2,t.Box,{as:"img",src:s.sprite+".png",verticalAlign:"middle",ml:"-6px",mr:"0.5rem"}),s.name]}),(0,e.createVNode)(1,"br")],4,s)})})},B=function(g,i){return(0,e.createComponentVNode)(2,t.Section,{className:"Safe--help",title:"Safe opening instructions (because you all keep forgetting)",children:[(0,e.createComponentVNode)(2,t.Box,{children:["1. Turn the dial left to the first number.",(0,e.createVNode)(1,"br"),"2. Turn the dial right to the second number.",(0,e.createVNode)(1,"br"),"3. Continue repeating this process for each number, switching between left and right each time.",(0,e.createVNode)(1,"br"),"4. Open the safe."]}),(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:"To lock fully, turn the dial to the left after closing the safe."})]})}},29740:function(T,r,n){"use strict";r.__esModule=!0,r.SatelliteControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SatelliteControl=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.satellites,m=i.notice,l=i.meteor_shield,u=i.meteor_shield_coverage,s=i.meteor_shield_coverage_max,d=i.meteor_shield_coverage_percentage;return(0,e.createComponentVNode)(2,o.Window,{width:475,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[l&&(0,e.createComponentVNode)(2,t.Section,{title:"Station Shield Coverage",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:d>=100?"good":"average",value:u,maxValue:s,children:[d," %"]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Satellite Network Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alert",color:"red",children:i.notice}),c.map(function(C){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"#"+C.id,children:[C.mode," ",(0,e.createComponentVNode)(2,t.Button,{content:C.active?"Deactivate":"Activate",icon:"arrow-circle-right",onClick:function(){function h(){return g("toggle",{id:C.id})}return h}()})]},C.id)})]})})]})})}return b}()},44162:function(T,r,n){"use strict";r.__esModule=!0,r.SecureStorage=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=n(36352),y=n(92986),B=r.SecureStorage=function(){function c(m,l){return(0,e.createComponentVNode)(2,f.Window,{theme:"securestorage",height:500,width:280,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,g)})})})})}return c}(),k=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=window.event?m.which:m.keyCode;if(d===y.KEY_ENTER){m.preventDefault(),s("keypad",{digit:"E"});return}if(d===y.KEY_ESCAPE){m.preventDefault(),s("keypad",{digit:"C"});return}if(d===y.KEY_BACKSPACE){m.preventDefault(),s("backspace");return}if(d>=y.KEY_0&&d<=y.KEY_9){m.preventDefault(),s("keypad",{digit:d-y.KEY_0});return}if(d>=y.KEY_NUMPAD_0&&d<=y.KEY_NUMPAD_9){m.preventDefault(),s("keypad",{digit:d-y.KEY_NUMPAD_0});return}},g=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=d.locked,h=d.no_passcode,v=d.emagged,p=d.user_entered_code,N=[["1","2","3"],["4","5","6"],["7","8","9"],["C","0","E"]],V=h?"":C?"bad":"good";return(0,e.createComponentVNode)(2,o.Section,{fill:!0,onKeyDown:function(){function S(I){return k(I,l)}return S}(),children:[(0,e.createComponentVNode)(2,o.Stack.Item,{height:7.3,children:(0,e.createComponentVNode)(2,o.Box,{className:(0,a.classes)(["SecureStorage__displayBox","SecureStorage__displayBox--"+V]),height:"100%",children:v?"ERROR":p})}),(0,e.createComponentVNode)(2,o.Table,{children:N.map(function(S){return(0,e.createComponentVNode)(2,b.TableRow,{children:S.map(function(I){return(0,e.createComponentVNode)(2,b.TableCell,{children:(0,e.createComponentVNode)(2,i,{number:I})},I)})},S[0])})})]})},i=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=m.number;return(0,e.createComponentVNode)(2,o.Button,{fluid:!0,bold:!0,mb:"6px",content:C,textAlign:"center",fontSize:"60px",lineHeight:1.25,width:"80px",className:(0,a.classes)(["SecureStorage__Button","SecureStorage__Button--keypad","SecureStorage__Button--"+C]),onClick:function(){function h(){return s("keypad",{digit:C})}return h}()})}},6272:function(T,r,n){"use strict";r.__esModule=!0,r.SecurityRecords=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(3939),y=n(321),B=n(5485),k=n(22091),g={"*Execute*":"execute","*Arrest*":"arrest",Incarcerated:"incarcerated",Parolled:"parolled",Released:"released",Demote:"demote",Search:"search",Monitor:"monitor"},i=function(p,N){(0,b.modalOpen)(p,"edit",{field:N.edit,value:N.value})},c=r.SecurityRecords=function(){function v(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.loginState,w=I.currentPage,A;if(L.logged_in)w===1?A=(0,e.createComponentVNode)(2,l):w===2&&(A=(0,e.createComponentVNode)(2,d));else return(0,e.createComponentVNode)(2,f.Window,{theme:"security",width:800,height:900,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,B.LoginScreen)})});return(0,e.createComponentVNode)(2,f.Window,{theme:"security",width:800,height:900,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,y.LoginInfo),(0,e.createComponentVNode)(2,k.TemporaryNotice),(0,e.createComponentVNode)(2,m),A]})})]})}return v}(),m=function(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.currentPage,w=I.general;return(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:L===1,onClick:function(){function A(){return S("page",{page:1})}return A}(),children:"List Records"}),L===2&&w&&!w.empty&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"file",selected:L===2,children:["Record: ",w.fields[0].value]})]})})},l=function(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.records,w=(0,t.useLocalState)(N,"searchText",""),A=w[0],x=w[1],E=(0,t.useLocalState)(N,"sortId","name"),P=E[0],D=E[1],M=(0,t.useLocalState)(N,"sortOrder",!0),R=M[0],O=M[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,s)}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"SecurityRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,u,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,u,{id:"id",children:"ID"}),(0,e.createComponentVNode)(2,u,{id:"rank",children:"Assignment"}),(0,e.createComponentVNode)(2,u,{id:"fingerprint",children:"Fingerprint"}),(0,e.createComponentVNode)(2,u,{id:"status",children:"Criminal Status"})]}),L.filter((0,a.createSearch)(A,function(F){return F.name+"|"+F.id+"|"+F.rank+"|"+F.fingerprint+"|"+F.status})).sort(function(F,_){var U=R?1:-1;return F[P].localeCompare(_[P])*U}).map(function(F){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"SecurityRecords__listRow--"+g[F.status],onClick:function(){function _(){return S("view",{uid_gen:F.uid_gen,uid_sec:F.uid_sec})}return _}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",F.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:F.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:F.rank}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:F.fingerprint}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:F.status})]},F.id)})]})})})],4)},u=function(p,N){var V=(0,t.useLocalState)(N,"sortId","name"),S=V[0],I=V[1],L=(0,t.useLocalState)(N,"sortOrder",!0),w=L[0],A=L[1],x=p.id,E=p.children;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:S!==x&&"transparent",fluid:!0,onClick:function(){function P(){S===x?A(!w):(I(x),A(!0))}return P}(),children:[E,S===x&&(0,e.createComponentVNode)(2,o.Icon,{name:w?"sort-up":"sort-down",ml:"0.25rem;"})]})})})},s=function(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.isPrinting,w=(0,t.useLocalState)(N,"searchText",""),A=w[0],x=w[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{ml:"0.25rem",content:"New Record",icon:"plus",onClick:function(){function E(){return S("new_general")}return E}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{disabled:L,icon:L?"spinner":"print",iconSpin:!!L,content:"Print Cell Log",onClick:function(){function E(){return(0,b.modalOpen)(N,"print_cell_log")}return E}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by Name, ID, Assignment, Fingerprint, Status",fluid:!0,onInput:function(){function E(P,D){return x(D)}return E}()})})]})},d=function(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.isPrinting,w=I.general,A=I.security;return!w||!w.fields?(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"General records lost!"}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"General Data",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:L,icon:L?"spinner":"print",iconSpin:!!L,content:"Print Record",onClick:function(){function x(){return S("print_record")}return x}()}),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",tooltip:"WARNING: This will also delete the Security and Medical records associated with this crew member!",tooltipPosition:"bottom-start",content:"Delete Record",onClick:function(){function x(){return S("delete_general")}return x}()})],4),children:(0,e.createComponentVNode)(2,C)})}),!A||!A.fields?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Security Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"pen",content:"Create New Record",onClick:function(){function x(){return S("new_security")}return x}()}),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"Security records lost!"]})})})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Security Data",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",disabled:A.empty,content:"Delete Record",onClick:function(){function x(){return S("delete_security")}return x}()}),children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:A.fields.map(function(x,E){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:x.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(x.value),!!x.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:x.line_break?"1rem":"initial",onClick:function(){function P(){return i(N,x)}return P}()})]},E)})})})})}),(0,e.createComponentVNode)(2,h)],4)],0)},C=function(p,N){var V=(0,t.useBackend)(N),S=V.data,I=S.general;return!I||!I.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"General records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:I.fields.map(function(L,w){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:L.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(""+L.value),!!L.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:L.line_break?"1rem":"initial",onClick:function(){function A(){return i(N,L)}return A}()})]},w)})})}),!!I.has_photos&&I.photos.map(function(L,w){return(0,e.createComponentVNode)(2,o.Stack.Item,{inline:!0,textAlign:"center",color:"label",ml:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:L,style:{width:"96px","margin-top":"5rem","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createVNode)(1,"br"),"Photo #",w+1]},w)})]})},h=function(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.security;return(0,e.createComponentVNode)(2,o.Stack.Item,{height:"150px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Comments/Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"comment",content:"Add Entry",onClick:function(){function w(){return(0,b.modalOpen)(N,"comment_add")}return w}()}),children:L.comments.length===0?(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No comments found."}):L.comments.map(function(w,A){return(0,e.createComponentVNode)(2,o.Box,{preserveWhitespace:!0,children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:w.header||"Auto-generated"}),(0,e.createVNode)(1,"br"),w.text||w,(0,e.createComponentVNode)(2,o.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){function x(){return S("comment_delete",{id:A+1})}return x}()})]},A)})})})}},5099:function(T,r,n){"use strict";r.__esModule=!0,r.SeedExtractor=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(3939);function y(u,s){var d=typeof Symbol!="undefined"&&u[Symbol.iterator]||u["@@iterator"];if(d)return(d=d.call(u)).next.bind(d);if(Array.isArray(u)||(d=B(u))||s&&u&&typeof u.length=="number"){d&&(u=d);var C=0;return function(){return C>=u.length?{done:!0}:{done:!1,value:u[C++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function B(u,s){if(u){if(typeof u=="string")return k(u,s);var d={}.toString.call(u).slice(8,-1);return d==="Object"&&u.constructor&&(d=u.constructor.name),d==="Map"||d==="Set"?Array.from(u):d==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(d)?k(u,s):void 0}}function k(u,s){(s==null||s>u.length)&&(s=u.length);for(var d=0,C=Array(s);d=A},h=function(w,A){return w<=A},v=s.split(" "),p=[],N=function(){var w=I.value,A=w.split(":");if(A.length===0)return 0;if(A.length===1)return p.push(function(P){return(P.name+" ("+P.variant+")").toLocaleLowerCase().includes(A[0].toLocaleLowerCase())}),0;if(A.length>2)return{v:function(){function P(D){return!1}return P}()};var x,E=d;if(A[1][A[1].length-1]==="-"?(E=h,x=Number(A[1].substring(0,A[1].length-1))):A[1][A[1].length-1]==="+"?(E=C,x=Number(A[1].substring(0,A[1].length-1))):x=Number(A[1]),isNaN(x))return{v:function(){function P(D){return!1}return P}()};switch(A[0].toLocaleLowerCase()){case"l":case"life":case"lifespan":p.push(function(P){return E(P.lifespan,x)});break;case"e":case"end":case"endurance":p.push(function(P){return E(P.endurance,x)});break;case"m":case"mat":case"maturation":p.push(function(P){return E(P.maturation,x)});break;case"pr":case"prod":case"production":p.push(function(P){return E(P.production,x)});break;case"y":case"yield":p.push(function(P){return E(P.yield,x)});break;case"po":case"pot":case"potency":p.push(function(P){return E(P.potency,x)});break;case"s":case"stock":case"c":case"count":case"a":case"amount":p.push(function(P){return E(P.amount,x)});break;default:return{v:function(){function P(D){return!1}return P}()}}},V,S=y(v),I;!(I=S()).done;)if(V=N(),V!==0&&V)return V.v;return function(L){for(var w=0,A=p;w=1?Number(E):1)}return A}()})]})]})}},2916:function(T,r,n){"use strict";r.__esModule=!0,r.ShuttleConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ShuttleConsole=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:150,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:i.status?i.status:(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"Shuttle Missing"})}),!!i.shuttle&&(!!i.docking_ports_len&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Send to ",children:i.docking_ports.map(function(c){return(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",content:c.name,onClick:function(){function m(){return g("move",{move:c.id})}return m}()},c.name)})})||(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:"red",children:(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"Shuttle Locked"})}),!!i.admin_controlled&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Authorization",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-circle",content:"Request Authorization",disabled:!i.status,onClick:function(){function c(){return g("request")}return c}()})})],0))]})})})})}return b}()},39401:function(T,r,n){"use strict";r.__esModule=!0,r.ShuttleManipulator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ShuttleManipulator=function(){function k(g,i){var c=(0,a.useLocalState)(i,"tabIndex",0),m=c[0],l=c[1],u=function(){function s(d){switch(d){case 0:return(0,e.createComponentVNode)(2,b);case 1:return(0,e.createComponentVNode)(2,y);case 2:return(0,e.createComponentVNode)(2,B);default:return"WE SHOULDN'T BE HERE!"}}return s}();return(0,e.createComponentVNode)(2,o.Window,{width:650,height:700,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===0,onClick:function(){function s(){return l(0)}return s}(),icon:"info-circle",children:"Status"},"Status"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===1,onClick:function(){function s(){return l(1)}return s}(),icon:"file-import",children:"Templates"},"Templates"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===2,onClick:function(){function s(){return l(2)}return s}(),icon:"tools",children:"Modification"},"Modification")]}),u(m)]})})})}return k}(),b=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.shuttles;return(0,e.createComponentVNode)(2,t.Box,{children:u.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID",children:s.id}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Timer",children:s.timeleft}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Mode",children:s.mode}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Status",children:s.status}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){function d(){return m("jump_to",{type:"mobile",id:s.id})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Fast Travel",icon:"fast-forward",onClick:function(){function d(){return m("fast_travel",{id:s.id})}return d}()})]})]})},s.name)})})},y=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.templates_tabs,s=l.existing_shuttle,d=l.templates;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Tabs,{children:u.map(function(C){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===s.id,icon:"file",onClick:function(){function h(){return m("select_template_category",{cat:C})}return h}(),children:C},C)})}),!!s&&d[s.id].templates.map(function(C){return(0,e.createComponentVNode)(2,t.Section,{title:C.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[C.description&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:C.description}),C.admin_notes&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Admin Notes",children:C.admin_notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{content:"Load Template",icon:"download",onClick:function(){function h(){return m("select_template",{shuttle_id:C.shuttle_id})}return h}()})})]})},C.name)})]})},B=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.existing_shuttle,s=l.selected;return(0,e.createComponentVNode)(2,t.Box,{children:[u?(0,e.createComponentVNode)(2,t.Section,{title:"Selected Shuttle: "+u.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:u.status}),u.timer&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Timer",children:u.timeleft}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){function d(){return m("jump_to",{type:"mobile",id:u.id})}return d}()})})]})}):(0,e.createComponentVNode)(2,t.Section,{title:"Selected Shuttle: None"}),s?(0,e.createComponentVNode)(2,t.Section,{title:"Selected Template: "+s.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[s.description&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:s.description}),s.admin_notes&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Admin Notes",children:s.admin_notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Preview",icon:"eye",onClick:function(){function d(){return m("preview",{shuttle_id:s.shuttle_id})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Load",icon:"download",onClick:function(){function d(){return m("load",{shuttle_id:s.shuttle_id})}return d}()})]})]})}):(0,e.createComponentVNode)(2,t.Section,{title:"Selected Template: None"})]})}},86013:function(T,r,n){"use strict";r.__esModule=!0,r.SingularityMonitor=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(44879),f=n(72253),b=n(36036),y=n(76910),B=n(98595),k=n(36352),g=r.SingularityMonitor=function(){function l(u,s){var d=(0,f.useBackend)(s),C=d.act,h=d.data;return h.active===0?(0,e.createComponentVNode)(2,c):(0,e.createComponentVNode)(2,m)}return l}(),i=function(u){return Math.log2(16+Math.max(0,u))-4},c=function(u,s){var d=(0,f.useBackend)(s),C=d.act,h=d.data,v=h.singularities,p=v===void 0?[]:v;return(0,e.createComponentVNode)(2,B.Window,{width:450,height:185,children:(0,e.createComponentVNode)(2,B.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,title:"Detected Singularities",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"sync",content:"Refresh",onClick:function(){function N(){return C("refresh")}return N}()}),children:(0,e.createComponentVNode)(2,b.Table,{children:p.map(function(N){return(0,e.createComponentVNode)(2,b.Table.Row,{children:[(0,e.createComponentVNode)(2,b.Table.Cell,{children:N.singularity_id+". "+N.area_name}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,color:"label",children:"Stage:"}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,width:"120px",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N.stage,minValue:0,maxValue:6,ranges:{good:[1,2],average:[3,4],bad:[5,6]},children:(0,o.toFixed)(N.stage)})}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,b.Button,{content:"Details",onClick:function(){function V(){return C("view",{view:N.singularity_id})}return V}()})})]},N.singularity_id)})})})})})},m=function(u,s){var d=(0,f.useBackend)(s),C=d.act,h=d.data,v=h.active,p=h.singulo_stage,N=h.singulo_potential_stage,V=h.singulo_energy,S=h.singulo_high,I=h.singulo_low,L=h.generators,w=L===void 0?[]:L;return(0,e.createComponentVNode)(2,B.Window,{width:550,height:185,children:(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"270px",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Metrics",children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Stage",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:p,minValue:0,maxValue:6,ranges:{good:[1,2],average:[3,4],bad:[5,6]},children:(0,o.toFixed)(p)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Potential Stage",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N,minValue:0,maxValue:6,ranges:{good:[1,p+.5],average:[p+.5,p+1.5],bad:[p+1.5,p+2]},children:(0,o.toFixed)(N)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:V,minValue:I,maxValue:S,ranges:{good:[.67*S+.33*I,S],average:[.33*S+.67*I,.67*S+.33*I],bad:[I,.33*S+.67*I]},children:(0,o.toFixed)(V)+"MJ"})})]})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Field Generators",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"arrow-left",content:"Back",onClick:function(){function A(){return C("back")}return A}()}),children:(0,e.createComponentVNode)(2,b.LabeledList,{children:w.map(function(A){return(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Remaining Charge",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:A.charge,minValue:0,maxValue:125,ranges:{good:[80,125],average:[30,80],bad:[0,30]},children:(0,o.toFixed)(A.charge)})},A.gen_index)})})})})]})})})}},88284:function(T,r,n){"use strict";r.__esModule=!0,r.Sleeper=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=[["good","Alive"],["average","Critical"],["bad","DEAD"]],y=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],B={average:[.25,.5],bad:[.5,1/0]},k=["bad","average","average","good","average","average","bad"],g=r.Sleeper=function(){function d(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.hasOccupant,S=V?(0,e.createComponentVNode)(2,i):(0,e.createComponentVNode)(2,s);return(0,e.createComponentVNode)(2,f.Window,{width:550,height:760,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:S}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,l)})]})})})}return d}(),i=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.occupant;return(0,e.createFragment)([(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,u)],4)},c=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.occupant,S=N.auto_eject_dead;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:"Auto-eject if dead:\xA0"}),(0,e.createComponentVNode)(2,o.Button,{icon:S?"toggle-on":"toggle-off",selected:S,content:S?"On":"Off",onClick:function(){function I(){return p("auto_eject_dead_"+(S?"off":"on"))}return I}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"user-slash",content:"Eject",onClick:function(){function I(){return p("ejectify")}return I}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:V.name}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.maxHealth,value:V.health/V.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]},children:(0,a.round)(V.health,0)})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Status",color:b[V.stat][0],children:b[V.stat][1]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.maxTemp,value:V.bodyTemperature/V.maxTemp,color:k[V.temperatureSuitability+3],children:[(0,a.round)(V.btCelsius,0),"\xB0C,",(0,a.round)(V.btFaren,0),"\xB0F"]})}),!!V.hasBlood&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Blood Level",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.bloodMax,value:V.bloodLevel/V.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[V.bloodPercent,"%, ",V.bloodLevel,"cl"]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pulse",verticalAlign:"middle",children:[V.pulse," BPM"]})],4)]})})},m=function(C,h){var v=(0,t.useBackend)(h),p=v.data,N=p.occupant;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant Damage",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:y.map(function(V,S){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:V[0],children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:"100",value:N[V[1]]/100,ranges:B,children:(0,a.round)(N[V[1]],0)},S)},S)})})})},l=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.hasOccupant,S=N.isBeakerLoaded,I=N.beakerMaxSpace,L=N.beakerFreeSpace,w=N.dialysis,A=w&&L>0;return(0,e.createComponentVNode)(2,o.Section,{title:"Dialysis",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:!S||L<=0||!V,selected:A,icon:A?"toggle-on":"toggle-off",content:A?"Active":"Inactive",onClick:function(){function x(){return p("togglefilter")}return x}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!S,icon:"eject",content:"Eject",onClick:function(){function x(){return p("removebeaker")}return x}()})],4),children:S?(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Remaining Space",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:I,value:L/I,ranges:{good:[.5,1/0],average:[.25,.5],bad:[-1/0,.25]},children:[L,"u"]})})}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No beaker loaded."})})},u=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.occupant,S=N.chemicals,I=N.maxchem,L=N.amounts;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant Chemicals",children:S.map(function(w,A){var x="",E;return w.overdosing?(x="bad",E=(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-circle"}),"\xA0 Overdosing!"]})):w.od_warning&&(x="average",E=(0,e.createComponentVNode)(2,o.Box,{color:"average",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle"}),"\xA0 Close to overdosing"]})),(0,e.createComponentVNode)(2,o.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.createComponentVNode)(2,o.Section,{title:w.title,level:"3",mx:"0",lineHeight:"18px",buttons:E,children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:I,value:w.occ_amount/I,color:x,title:"Amount of chemicals currently inside the occupant / Total amount injectable by this machine",mr:"0.5rem",children:[w.pretty_amount,"/",I,"u"]}),L.map(function(P,D){return(0,e.createComponentVNode)(2,o.Button,{disabled:!w.injectable||w.occ_amount+P>I||V.stat===2,icon:"syringe",content:"Inject "+P+"u",title:"Inject "+P+"u of "+w.title+" into the occupant",mb:"0",height:"19px",onClick:function(){function M(){return p("chemical",{chemid:w.id,amount:P})}return M}()},D)})]})})},A)})})},s=function(C,h){return(0,e.createComponentVNode)(2,o.Section,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}},21597:function(T,r,n){"use strict";r.__esModule=!0,r.SlotMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SlotMachine=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;if(i.money===null)return(0,e.createComponentVNode)(2,o.Window,{width:350,height:90,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{children:"Could not scan your card or could not find account!"}),(0,e.createComponentVNode)(2,t.Box,{children:"Please wear or hold your ID and try again."})]})})});var c;return i.plays===1?c=i.plays+" player has tried their luck today!":c=i.plays+" players have tried their luck today!",(0,e.createComponentVNode)(2,o.Window,{width:300,height:151,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{lineHeight:2,children:c}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Credits Remaining",children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:i.money})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"10 credits to spin",children:(0,e.createComponentVNode)(2,t.Button,{icon:"coins",disabled:i.working,content:i.working?"Spinning...":"Spin",onClick:function(){function m(){return g("spin")}return m}()})})]}),(0,e.createComponentVNode)(2,t.Box,{bold:!0,lineHeight:2,color:i.resultlvl,children:i.result})]})})})}return b}()},46348:function(T,r,n){"use strict";r.__esModule=!0,r.Smartfridge=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Smartfridge=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.secure,m=i.can_dry,l=i.drying,u=i.contents;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[!!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"Secure Access: Please have your identification ready."}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:m?"Drying rack":"Contents",buttons:!!m&&(0,e.createComponentVNode)(2,t.Button,{width:4,icon:l?"power-off":"times",content:l?"On":"Off",selected:l,onClick:function(){function s(){return g("drying")}return s}()}),children:[!u&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cookie-bite",size:5,color:"brown"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No products loaded."]})}),!!u&&u.slice().sort(function(s,d){return s.display_name.localeCompare(d.display_name)}).map(function(s){return(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"55%",children:s.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"25%",children:["(",s.quantity," in stock)"]}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:13,children:[(0,e.createComponentVNode)(2,t.Button,{width:3,icon:"arrow-down",tooltip:"Dispense one.",content:"1",onClick:function(){function d(){return g("vend",{index:s.vend,amount:1})}return d}()}),(0,e.createComponentVNode)(2,t.NumberInput,{width:"40px",minValue:0,value:0,maxValue:s.quantity,step:1,stepPixelSize:3,onChange:function(){function d(C,h){return g("vend",{index:s.vend,amount:h})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{width:4,icon:"arrow-down",content:"All",tooltip:"Dispense all.",tooltipPosition:"bottom-start",onClick:function(){function d(){return g("vend",{index:s.vend,amount:s.quantity})}return d}()})]})]},s)})]})]})})})}return b}()},86162:function(T,r,n){"use strict";r.__esModule=!0,r.Smes=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(49968),f=n(98595),b=1e3,y=r.Smes=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.capacityPercent,u=m.capacity,s=m.charge,d=m.inputAttempt,C=m.inputting,h=m.inputLevel,v=m.inputLevelMax,p=m.inputAvailable,N=m.outputPowernet,V=m.outputAttempt,S=m.outputting,I=m.outputLevel,L=m.outputLevelMax,w=m.outputUsed,A=l>=100&&"good"||C&&"average"||"bad",x=S&&"good"||s>0&&"average"||"bad";return(0,e.createComponentVNode)(2,f.Window,{width:340,height:345,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Stored Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:l*.01,ranges:{good:[.5,1/0],average:[.15,.5],bad:[-1/0,.15]}})}),(0,e.createComponentVNode)(2,t.Section,{title:"Input",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Charge Mode",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:d?"sync-alt":"times",selected:d,onClick:function(){function E(){return c("tryinput")}return E}(),children:d?"Auto":"Off"}),children:(0,e.createComponentVNode)(2,t.Box,{color:A,children:l>=100&&"Fully Charged"||C&&"Charging"||"Not Charging"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Input",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:h===0,onClick:function(){function E(){return c("input",{target:"min"})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:h===0,onClick:function(){function E(){return c("input",{adjust:-1e4})}return E}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Slider,{value:h/b,fillValue:p/b,minValue:0,maxValue:v/b,step:5,stepPixelSize:4,format:function(){function E(P){return(0,o.formatPower)(P*b,1)}return E}(),onChange:function(){function E(P,D){return c("input",{target:D*b})}return E}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:h===v,onClick:function(){function E(){return c("input",{adjust:1e4})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:h===v,onClick:function(){function E(){return c("input",{target:"max"})}return E}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available",children:(0,o.formatPower)(p)})]})}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Output",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Output Mode",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:V?"power-off":"times",selected:V,onClick:function(){function E(){return c("tryoutput")}return E}(),children:V?"On":"Off"}),children:(0,e.createComponentVNode)(2,t.Box,{color:x,children:N?S?"Sending":s>0?"Not Sending":"No Charge":"Not Connected"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Output",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:I===0,onClick:function(){function E(){return c("output",{target:"min"})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:I===0,onClick:function(){function E(){return c("output",{adjust:-1e4})}return E}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Slider,{value:I/b,minValue:0,maxValue:L/b,step:5,stepPixelSize:4,format:function(){function E(P){return(0,o.formatPower)(P*b,1)}return E}(),onChange:function(){function E(P,D){return c("output",{target:D*b})}return E}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:I===L,onClick:function(){function E(){return c("output",{adjust:1e4})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:I===L,onClick:function(){function E(){return c("output",{target:"max"})}return E}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Outputting",children:(0,o.formatPower)(w)})]})})]})})})}return B}()},63584:function(T,r,n){"use strict";r.__esModule=!0,r.SolarControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SolarControl=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=0,m=1,l=2,u=i.generated,s=i.generated_ratio,d=i.tracking_state,C=i.tracking_rate,h=i.connected_panels,v=i.connected_tracker,p=i.cdir,N=i.direction,V=i.rotating_direction;return(0,e.createComponentVNode)(2,o.Window,{width:490,height:277,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Scan for new hardware",onClick:function(){function S(){return g("refresh")}return S}()}),children:(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Solar tracker",color:v?"good":"bad",children:v?"OK":"N/A"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Solar panels",color:h>0?"good":"bad",children:h})]})}),(0,e.createComponentVNode)(2,t.Grid.Column,{size:2,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power output",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[.66,1/0],average:[.33,.66],bad:[-1/0,.33]},minValue:0,maxValue:1,value:s,children:u+" W"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Panel orientation",children:[p,"\xB0 (",N,")"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker rotation",children:[d===l&&(0,e.createComponentVNode)(2,t.Box,{children:" Automated "}),d===m&&(0,e.createComponentVNode)(2,t.Box,{children:[" ",C,"\xB0/h (",V,")"," "]}),d===c&&(0,e.createComponentVNode)(2,t.Box,{children:" Tracker offline "})]})]})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Panel orientation",children:[d!==l&&(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0",step:1,stepPixelSize:1,minValue:0,maxValue:359,value:p,onDrag:function(){function S(I,L){return g("cdir",{cdir:L})}return S}()}),d===l&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Automated "})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker status",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Off",selected:d===c,onClick:function(){function S(){return g("track",{track:c})}return S}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"clock-o",content:"Timed",selected:d===m,onClick:function(){function S(){return g("track",{track:m})}return S}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Auto",selected:d===l,disabled:!v,onClick:function(){function S(){return g("track",{track:l})}return S}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker rotation",children:[d===m&&(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0/h",step:1,stepPixelSize:1,minValue:-7200,maxValue:7200,value:C,format:function(){function S(I){var L=Math.sign(I)>0?"+":"-";return L+Math.abs(I)}return S}(),onDrag:function(){function S(I,L){return g("tdir",{tdir:L})}return S}()}),d===c&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Tracker offline "}),d===l&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Automated "})]})]})})]})})}return b}()},38096:function(T,r,n){"use strict";r.__esModule=!0,r.SpawnersMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SpawnersMenu=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.spawners||[];return(0,e.createComponentVNode)(2,o.Window,{width:700,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{children:c.map(function(m){return(0,e.createComponentVNode)(2,t.Section,{mb:.5,title:m.name+" ("+m.amount_left+" left)",level:2,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-circle-right",content:"Jump",onClick:function(){function l(){return g("jump",{ID:m.uids})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-circle-right",content:"Spawn",onClick:function(){function l(){return g("spawn",{ID:m.uids})}return l}()})],4),children:[(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},mb:1,fontSize:"16px",children:m.desc}),!!m.fluff&&(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},textColor:"#878787",fontSize:"14px",children:m.fluff}),!!m.important_info&&(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},mt:1,bold:!0,color:"red",fontSize:"18px",children:m.important_info})]},m.name)})})})})}return b}()},30586:function(T,r,n){"use strict";r.__esModule=!0,r.SpecMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SpecMenu=function(){function g(i,c){return(0,e.createComponentVNode)(2,o.Window,{width:1100,height:600,theme:"nologo",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,y),(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,k)]})})})}return g}(),b=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Hemomancer",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function d(){return l("hemomancer")}return d}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on blood magic and the manipulation of blood around you.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Vampiric claws",16),(0,e.createTextVNode)(": Unlocked at 150 blood, allows you to summon a robust pair of claws that attack rapidly, drain a targets blood, and heal you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood Barrier",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to select two turfs and create a wall between them.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood tendrils",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to slow everyone in a targeted 3x3 area after a short delay.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Sanguine pool",16),(0,e.createTextVNode)(": Unlocked at 400 blood, allows you to travel at high speeds for a short duration. Doing this leaves behind blood splatters. You can move through anything but walls and space when doing this.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Predator senses",16),(0,e.createTextVNode)(": Unlocked at 600 blood, allows you to sniff out anyone within the same sector as you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood eruption",16),(0,e.createTextVNode)(": Unlocked at 800 blood, allows you to manipulate all nearby blood splatters, in 4 tiles around you, into spikes that impale anyone stood ontop of them.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"The blood bringers rite",16),(0,e.createTextVNode)(": When toggled you will rapidly drain the blood of everyone who is nearby and use it to heal yourself slightly and remove any incapacitating effects rapidly.")],4)]})})},y=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Umbrae",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function d(){return l("umbrae")}return d}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on darkness, stealth ambushing and mobility.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Cloak of darkness",16),(0,e.createTextVNode)(": Unlocked at 150 blood, when toggled, allows you to become nearly invisible and move rapidly when in dark regions. While active, burn damage is more effective against you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Shadow anchor",16),(0,e.createTextVNode)(": Unlocked at 250 blood, casting it will create an anchor at the cast location after a short delay. If you then cast the ability again, you are teleported back to the anchor. If you do not cast again within 2 minutes, you will do a fake recall, causing a clone to appear at the anchor and making yourself invisible. It will not teleport you between Z levels.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Shadow snare",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to summon a trap that when crossed blinds and ensnares the victim. This trap is hard to see, but withers in the light.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Dark passage",16),(0,e.createTextVNode)(": Unlocked at 400 blood, allows you to target a turf on screen, you will then teleport to that turf.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Extinguish",16),(0,e.createTextVNode)(": Unlocked at 600 blood, allows you to snuff out nearby electronic light sources and glowshrooms.")],4),(0,e.createVNode)(1,"b",null,"Shadow boxing",16),": Unlocked at 800 blood, sends out shadow clones towards a target, damaging them while you remain in range.",(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Eternal darkness",16),(0,e.createTextVNode)(": When toggled, you consume yourself in unholy darkness, only the strongest of lights will be able to see through it. Inside the radius, nearby creatures will freeze and energy projectiles will deal less damage.")],4),(0,e.createVNode)(1,"p",null,"In addition, you also gain permanent X-ray vision.",16)]})})},B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Gargantua",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function d(){return l("gargantua")}return d}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on tenacity and melee damage.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Rejuvenate",16),(0,e.createTextVNode)(": Will heal you at an increased rate based on how much damage you have taken.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood swell",16),(0,e.createTextVNode)(": Unlocked at 150 blood, increases your resistance to physical damage, stuns and stamina for 30 seconds. While it is active you cannot fire guns.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Seismic stomp",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to stomp the ground to send out a shockwave, knocking people back.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood rush",16),(0,e.createTextVNode)(": Unlocked at 250 blood, gives you a short speed boost when cast.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood swell II",16),(0,e.createTextVNode)(": Unlocked at 400 blood, increases all melee damage by 10.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Overwhelming force",16),(0,e.createTextVNode)(": Unlocked at 600 blood, when toggled, if you bump into a door that you do not have access to, it will force it open. In addition, you cannot be pushed or pulled while it is active.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Demonic grasp",16),(0,e.createTextVNode)(": Unlocked at 800 blood, allows you to send out a demonic hand to snare someone. If you are on disarm/grab intent you will push/pull the target, respectively.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Charge",16),(0,e.createTextVNode)(": Unlocked at 800 blood, you gain the ability to charge at a target. Destroying and knocking back pretty much anything you collide with.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full Power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Desecrated Duel",16),(0,e.createTextVNode)(": Leap towards a visible enemy, creating an arena upon landing, infusing you with increased regeneration, and granting you resistance to internal damages.")],4)]})})},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Dantalion",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function d(){return l("dantalion")}return d}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on thralling and illusions.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Enthrall",16),(0,e.createTextVNode)(": Unlocked at 150 blood, Thralls your target to your will, requires you to stand still. Does not work on mindshielded or already enthralled/mindslaved people.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Thrall cap",16),(0,e.createTextVNode)(": You can only thrall a max of 1 person at a time. This can be increased at 400 blood, 600 blood and at full power to a max of 4 thralls.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Thrall commune",16),(0,e.createTextVNode)(": Unlocked at 150 blood, Allows you to talk to your thralls, your thralls can talk back in the same way.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Subspace swap",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to swap positions with a target.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Pacify",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to pacify a target, preventing them from causing harm for 40 seconds.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Decoy",16),(0,e.createTextVNode)(": Unlocked at 400 blood, briefly turn invisible and send out an illusion to fool everyone nearby.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Rally thralls",16),(0,e.createTextVNode)(": Unlocked at 600 blood, removes all incapacitating effects from nearby thralls.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood bond",16),(0,e.createTextVNode)(": Unlocked at 800 blood, when cast, all nearby thralls become linked to you. If anyone in the network takes damage, it is shared equally between everyone in the network. If a thrall goes out of range, they will be removed from the network.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full Power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Mass Hysteria",16),(0,e.createTextVNode)(": Casts a powerful illusion that blinds and then makes everyone nearby perceive others as random animals.")],4)]})})}},95152:function(T,r,n){"use strict";r.__esModule=!0,r.StackCraft=void 0;var e=n(89005),a=n(72253),t=n(88510),o=n(64795),f=n(25328),b=n(98595),y=n(36036),B=r.StackCraft=function(){function s(){return(0,e.createComponentVNode)(2,b.Window,{width:350,height:500,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,k)})})}return s}(),k=function(d,C){var h=(0,a.useBackend)(C),v=h.data,p=v.amount,N=v.recipes,V=(0,a.useLocalState)(C,"searchText",""),S=V[0],I=V[1],L=g(N,(0,f.createSearch)(S)),w=(0,a.useLocalState)(C,"",!1),A=w[0],x=w[1];return(0,e.createComponentVNode)(2,y.Section,{fill:!0,scrollable:!0,title:"Amount: "+p,buttons:(0,e.createFragment)([A&&(0,e.createComponentVNode)(2,y.Input,{width:12.5,value:S,placeholder:"Find recipe",onInput:function(){function E(P,D){return I(D)}return E}()}),(0,e.createComponentVNode)(2,y.Button,{ml:.5,tooltip:"Search",tooltipPosition:"bottom-end",icon:"magnifying-glass",selected:A,onClick:function(){function E(){return x(!A)}return E}()})],0),children:L?(0,e.createComponentVNode)(2,l,{recipes:L}):(0,e.createComponentVNode)(2,y.NoticeBox,{children:"No recipes found!"})})},g=function s(d,C){var h=(0,o.flow)([(0,t.map)(function(v){var p=v[0],N=v[1];return i(N)?C(p)?v:[p,s(N,C)]:C(p)?v:[p,void 0]}),(0,t.filter)(function(v){var p=v[0],N=v[1];return N!==void 0}),(0,t.sortBy)(function(v){var p=v[0],N=v[1];return p}),(0,t.sortBy)(function(v){var p=v[0],N=v[1];return!i(N)}),(0,t.reduce)(function(v,p){var N=p[0],V=p[1];return v[N]=V,v},{})])(Object.entries(d));return Object.keys(h).length?h:void 0},i=function(d){return d.uid===void 0},c=function(d,C){return d.required_amount>C?0:Math.floor(C/d.required_amount)},m=function(d,C){for(var h=(0,a.useBackend)(C),v=h.act,p=d.recipe,N=d.max_possible_multiplier,V=Math.min(N,Math.floor(p.max_result_amount/p.result_amount)),S=[5,10,25],I=[],L=function(){var E=A[w];V>=E&&I.push((0,e.createComponentVNode)(2,y.Button,{bold:!0,translucent:!0,fontSize:.85,width:"32px",content:E*p.result_amount+"x",onClick:function(){function P(){return v("make",{recipe_uid:p.uid,multiplier:E})}return P}()}))},w=0,A=S;w1?I+"x ":"",M=L>1?"s":"",R=""+D+V,O=L+" sheet"+M,F=c(S,N);return(0,e.createComponentVNode)(2,y.ImageButton,{fluid:!0,base64:P,dmIcon:x,dmIconState:E,imageSize:32,disabled:!F,tooltip:O,buttons:w>1&&F>1&&(0,e.createComponentVNode)(2,m,{recipe:S,max_possible_multiplier:F}),onClick:function(){function _(){return v("make",{recipe_uid:A,multiplier:1})}return _}(),children:R})}},38307:function(T,r,n){"use strict";r.__esModule=!0,r.StationAlertConsoleContent=r.StationAlertConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.StationAlertConsole=function(){function y(){return(0,e.createComponentVNode)(2,o.Window,{width:325,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b)})})}return y}(),b=r.StationAlertConsoleContent=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.data,c=i.alarms||[],m=c.Fire||[],l=c.Atmosphere||[],u=c.Power||[];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Fire Alarms",children:(0,e.createVNode)(1,"ul",null,[m.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),m.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Atmospherics Alarms",children:(0,e.createVNode)(1,"ul",null,[l.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),l.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Alarms",children:(0,e.createVNode)(1,"ul",null,[u.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),u.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)})],4)}return y}()},96091:function(T,r,n){"use strict";r.__esModule=!0,r.StationTraitsPanel=void 0;var e=n(89005),a=n(88510),t=n(42127),o=n(72253),f=n(36036),b=n(98595),y=function(i){return i[i.SetupFutureStationTraits=0]="SetupFutureStationTraits",i[i.ViewStationTraits=1]="ViewStationTraits",i}(y||{}),B=function(c,m){var l=(0,o.useBackend)(m),u=l.act,s=l.data,d=s.future_station_traits,C=(0,o.useLocalState)(m,"selectedFutureTrait",null),h=C[0],v=C[1],p=Object.fromEntries(s.valid_station_traits.map(function(V){return[V.name,V.path]})),N=Object.keys(p);return N.sort(),(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Dropdown,{displayText:!h&&"Select trait to add...",onSelected:v,options:N,selected:h,width:"100%"})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"green",icon:"plus",onClick:function(){function V(){if(h){var S=p[h],I=[S];if(d){var L,w=d.map(function(A){return A.path});if(w.indexOf(S)!==-1)return;I=(L=I).concat.apply(L,w)}u("setup_future_traits",{station_traits:I})}}return V}(),children:"Add"})})]}),(0,e.createComponentVNode)(2,f.Divider),Array.isArray(d)?d.length>0?(0,e.createComponentVNode)(2,f.Stack,{vertical:!0,fill:!0,children:d.map(function(V){return(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:V.name}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"red",icon:"times",onClick:function(){function S(){u("setup_future_traits",{station_traits:(0,a.filterMap)(d,function(I){if(I.path!==V.path)return I.path})})}return S}(),children:"Delete"})})]})},V.path)})}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Box,{children:"No station traits will run next round."}),(0,e.createComponentVNode)(2,f.Button,{mt:1,fluid:!0,color:"good",icon:"times",tooltip:"The next round will roll station traits randomly, just like normal",onClick:function(){function V(){return u("clear_future_traits")}return V}(),children:"Run Station Traits Normally"})]}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Box,{children:"No future station traits are planned."}),(0,e.createComponentVNode)(2,f.Button,{mt:1,fluid:!0,color:"red",icon:"times",onClick:function(){function V(){return u("setup_future_traits",{station_traits:[]})}return V}(),children:"Prevent station traits from running next round"})]})]})},k=function(c,m){var l=(0,o.useBackend)(m),u=l.act,s=l.data;return s.current_traits.length>0?(0,e.createComponentVNode)(2,f.Stack,{vertical:!0,fill:!0,children:s.current_traits.map(function(d){return(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:d.name}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button.Confirm,{content:"Revert",color:"red",disabled:s.too_late_to_revert||!d.can_revert,tooltip:!d.can_revert&&"This trait is not revertable."||s.too_late_to_revert&&"It's too late to revert station traits, the round has already started.",icon:"times",onClick:function(){function C(){return u("revert",{ref:d.ref})}return C}()})})]})},d.ref)})}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:"There are no active station traits."})},g=r.StationTraitsPanel=function(){function i(c,m){var l=(0,o.useLocalState)(m,"station_traits_tab",y.ViewStationTraits),u=l[0],s=l[1],d;switch(u){case y.SetupFutureStationTraits:d=(0,e.createComponentVNode)(2,B);break;case y.ViewStationTraits:d=(0,e.createComponentVNode)(2,k);break;default:(0,t.exhaustiveCheck)(u)}return(0,e.createComponentVNode)(2,b.Window,{title:"Modify Station Traits",height:350,width:350,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"eye",selected:u===y.ViewStationTraits,onClick:function(){function C(){return s(y.ViewStationTraits)}return C}(),children:"View"}),(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"edit",selected:u===y.SetupFutureStationTraits,onClick:function(){function C(){return s(y.SetupFutureStationTraits)}return C}(),children:"Edit"})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{m:0,children:[(0,e.createComponentVNode)(2,f.Divider),d]})]})})})}return i}()},39409:function(T,r,n){"use strict";r.__esModule=!0,r.StripMenu=void 0;var e=n(89005),a=n(88510),t=n(79140),o=n(72253),f=n(36036),b=n(98595),y=5,B=9,k=function(h){return h===0?5:9},g="64px",i=function(h){return h[0]+"/"+h[1]},c=function(h){var v=h.align,p=h.children;return(0,e.createComponentVNode)(2,f.Box,{style:{position:"absolute",left:v==="left"?"6px":"48px","text-align":v,"text-shadow":"2px 2px 2px #000",top:"2px"},children:p})},m={enable_internals:{icon:"lungs",text:"Enable internals"},disable_internals:{icon:"lungs",text:"Disable internals"},enable_lock:{icon:"lock",text:"Enable lock"},disable_lock:{icon:"unlock",text:"Disable lock"},suit_sensors:{icon:"tshirt",text:"Adjust suit sensors"},remove_accessory:{icon:"medal",text:"Remove accessory"},dislodge_headpocket:{icon:"head-side-virus",text:"Dislodge headpocket"}},l={eyes:{displayName:"eyewear",gridSpot:i([0,0]),image:"inventory-glasses.png"},head:{displayName:"headwear",gridSpot:i([0,1]),image:"inventory-head.png"},mask:{displayName:"mask",gridSpot:i([1,1]),image:"inventory-mask.png"},neck:{displayName:"neck",gridSpot:i([1,0]),image:"inventory-neck.png"},pet_collar:{displayName:"collar",gridSpot:i([1,1]),image:"inventory-collar.png"},right_ear:{displayName:"right ear",gridSpot:i([0,2]),image:"inventory-ears.png"},left_ear:{displayName:"left ear",gridSpot:i([1,2]),image:"inventory-ears.png"},parrot_headset:{displayName:"headset",gridSpot:i([1,2]),image:"inventory-ears.png"},handcuffs:{displayName:"handcuffs",gridSpot:i([1,3])},legcuffs:{displayName:"legcuffs",gridSpot:i([1,4])},jumpsuit:{displayName:"uniform",gridSpot:i([2,0]),image:"inventory-uniform.png"},suit:{displayName:"suit",gridSpot:i([2,1]),image:"inventory-suit.png"},gloves:{displayName:"gloves",gridSpot:i([2,2]),image:"inventory-gloves.png"},right_hand:{displayName:"right hand",gridSpot:i([2,3]),image:"inventory-hand_r.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"left",children:"R"})},left_hand:{displayName:"left hand",gridSpot:i([2,4]),image:"inventory-hand_l.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"right",children:"L"})},shoes:{displayName:"shoes",gridSpot:i([3,1]),image:"inventory-shoes.png"},suit_storage:{displayName:"suit storage",gridSpot:i([4,0]),image:"inventory-suit_storage.png"},id:{displayName:"ID",gridSpot:i([4,1]),image:"inventory-id.png"},belt:{displayName:"belt",gridSpot:i([4,2]),image:"inventory-belt.png"},back:{displayName:"backpack",gridSpot:i([4,3]),image:"inventory-back.png"},left_pocket:{displayName:"left pocket",gridSpot:i([3,4]),image:"inventory-pocket.png"},right_pocket:{displayName:"right pocket",gridSpot:i([3,3]),image:"inventory-pocket.png"},pda:{displayName:"PDA",gridSpot:i([4,4]),image:"inventory-pda.png"}},u={eyes:{displayName:"eyewear",gridSpot:i([0,0]),image:"inventory-glasses.png"},head:{displayName:"headwear",gridSpot:i([0,1]),image:"inventory-head.png"},mask:{displayName:"mask",gridSpot:i([1,1]),image:"inventory-mask.png"},neck:{displayName:"neck",gridSpot:i([1,0]),image:"inventory-neck.png"},pet_collar:{displayName:"collar",gridSpot:i([1,1]),image:"inventory-collar.png"},right_ear:{displayName:"right ear",gridSpot:i([0,2]),image:"inventory-ears.png"},left_ear:{displayName:"left ear",gridSpot:i([1,2]),image:"inventory-ears.png"},parrot_headset:{displayName:"headset",gridSpot:i([1,2]),image:"inventory-ears.png"},handcuffs:{displayName:"handcuffs",gridSpot:i([1,3])},legcuffs:{displayName:"legcuffs",gridSpot:i([1,4])},jumpsuit:{displayName:"uniform",gridSpot:i([2,0]),image:"inventory-uniform.png"},suit:{displayName:"suit",gridSpot:i([2,1]),image:"inventory-suit.png"},gloves:{displayName:"gloves",gridSpot:i([2,2]),image:"inventory-gloves.png"},right_hand:{displayName:"right hand",gridSpot:i([4,4]),image:"inventory-hand_r.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"left",children:"R"})},left_hand:{displayName:"left hand",gridSpot:i([4,5]),image:"inventory-hand_l.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"right",children:"L"})},shoes:{displayName:"shoes",gridSpot:i([3,1]),image:"inventory-shoes.png"},suit_storage:{displayName:"suit storage",gridSpot:i([4,0]),image:"inventory-suit_storage.png"},id:{displayName:"ID",gridSpot:i([4,1]),image:"inventory-id.png"},belt:{displayName:"belt",gridSpot:i([4,2]),image:"inventory-belt.png"},back:{displayName:"backpack",gridSpot:i([4,3]),image:"inventory-back.png"},left_pocket:{displayName:"left pocket",gridSpot:i([4,7]),image:"inventory-pocket.png"},right_pocket:{displayName:"right pocket",gridSpot:i([4,6]),image:"inventory-pocket.png"},pda:{displayName:"PDA",gridSpot:i([4,8]),image:"inventory-pda.png"}},s=function(C){return C[C.Completely=1]="Completely",C[C.Hidden=2]="Hidden",C}(s||{}),d=r.StripMenu=function(){function C(h,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,S=new Map;if(V.show_mode===0)for(var I=0,L=Object.keys(V.items);I=.01})},(0,a.sortBy)(function(x){return-x.amount})])(h.gases||[]),A=Math.max.apply(Math,[1].concat(w.map(function(x){return x.portion})));return(0,e.createComponentVNode)(2,B.Window,{width:550,height:250,children:(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"270px",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Metrics",children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:p/100,ranges:{good:[.9,1/0],average:[.5,.9],bad:[-1/0,.5]}})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Relative EER",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N,minValue:0,maxValue:5e3,ranges:{good:[-1/0,5e3],average:[5e3,7e3],bad:[7e3,1/0]},children:(0,o.toFixed)(N)+" MeV/cm3"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Gas Coefficient",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:L,minValue:1,maxValue:5.25,ranges:{bad:[1,1.55],average:[1.55,5.25],good:[5.25,1/0]},children:L.toFixed(2)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:i(V),minValue:0,maxValue:i(1e4),ranges:{teal:[-1/0,i(80)],good:[i(80),i(373)],average:[i(373),i(1e3)],bad:[i(1e3),1/0]},children:(0,o.toFixed)(V)+" K"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Mole Per Tile",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:I,minValue:0,maxValue:12e3,ranges:{teal:[-1/0,100],average:[100,11333],good:[11333,12e3],bad:[12e3,1/0]},children:(0,o.toFixed)(I)+" mol"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Pressure",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:i(S),minValue:0,maxValue:i(5e4),ranges:{good:[i(1),i(300)],average:[-1/0,i(1e3)],bad:[i(1e3),1/0]},children:(0,o.toFixed)(S)+" kPa"})})]})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Gases",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"arrow-left",content:"Back",onClick:function(){function x(){return C("back")}return x}()}),children:(0,e.createComponentVNode)(2,b.LabeledList,{children:w.map(function(x){return(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:(0,y.getGasLabel)(x.name),children:(0,e.createComponentVNode)(2,b.ProgressBar,{color:(0,y.getGasColor)(x.name),value:x.portion,minValue:0,maxValue:A,children:(0,o.toFixed)(x.amount)+" mol ("+x.portion+"%)"})},x.name)})})})})]})})})}},46029:function(T,r,n){"use strict";r.__esModule=!0,r.SyndicateComputerSimple=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SyndicateComputerSimple=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;return(0,e.createComponentVNode)(2,o.Window,{theme:"syndicate",width:400,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:i.rows.map(function(c){return(0,e.createComponentVNode)(2,t.Section,{title:c.title,buttons:(0,e.createComponentVNode)(2,t.Button,{content:c.buttontitle,disabled:c.buttondisabled,tooltip:c.buttontooltip,tooltipPosition:"left",onClick:function(){function m(){return g(c.buttonact)}return m}()}),children:[c.status,!!c.bullets&&(0,e.createComponentVNode)(2,t.Box,{children:c.bullets.map(function(m){return(0,e.createComponentVNode)(2,t.Box,{children:m},m)})})]},c.title)})})})}return b}()},36372:function(T,r,n){"use strict";r.__esModule=!0,r.TEG=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(B){return B.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,")},b=r.TEG=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data;return c.error?(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Error",children:[c.error,(0,e.createComponentVNode)(2,t.Button,{icon:"circle",content:"Recheck",onClick:function(){function m(){return i("check")}return m}()})]})})}):(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Cold Loop ("+c.cold_dir+")",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cold Inlet",children:[f(c.cold_inlet_temp)," K, ",f(c.cold_inlet_pressure)," kPa"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cold Outlet",children:[f(c.cold_outlet_temp)," K, ",f(c.cold_outlet_pressure)," kPa"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Hot Loop ("+c.hot_dir+")",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hot Inlet",children:[f(c.hot_inlet_temp)," K, ",f(c.hot_inlet_pressure)," kPa"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hot Outlet",children:[f(c.hot_outlet_temp)," K, ",f(c.hot_outlet_pressure)," kPa"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Output",children:[f(c.output_power)," W",!!c.warning_switched&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Cold inlet temperature exceeds hot inlet temperature."}),!!c.warning_cold_pressure&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Cold circulator inlet pressure is under 1,000 kPa."}),!!c.warning_hot_pressure&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Hot circulator inlet pressure is under 1,000 kPa."})]})]})})}return y}()},56441:function(T,r,n){"use strict";r.__esModule=!0,r.TachyonArrayContent=r.TachyonArray=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TachyonArray=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.records,l=m===void 0?[]:m,u=c.explosion_target,s=c.toxins_tech,d=c.printing;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shift's Target",children:u}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Toxins Level",children:s}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Administration",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print All Logs",disabled:!l.length||d,align:"center",onClick:function(){function C(){return i("print_logs")}return C}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash",content:"Delete All Logs",disabled:!l.length,color:"bad",align:"center",onClick:function(){function C(){return i("delete_logs")}return C}()})]})]})}),l.length?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No Records"})]})})}return y}(),b=r.TachyonArrayContent=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.records,l=m===void 0?[]:m;return(0,e.createComponentVNode)(2,t.Section,{title:"Logged Explosions",children:(0,e.createComponentVNode)(2,t.Flex,{children:(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Time"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Epicenter"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actual Size"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Theoretical Size"})]}),l.map(function(u){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.logged_time}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.epicenter}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.actual_size_message}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.theoretical_size_message}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash",content:"Delete",color:"bad",onClick:function(){function s(){return i("delete_record",{index:u.index})}return s}()})})]},u.index)})]})})})})}return y}()},1754:function(T,r,n){"use strict";r.__esModule=!0,r.Tank=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Tank=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c;return i.has_mask?c=(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mask",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,width:"76%",icon:i.connected?"check":"times",content:i.connected?"Internals On":"Internals Off",selected:i.connected,onClick:function(){function m(){return g("internals")}return m}()})}):c=(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mask",color:"red",children:"No Mask Equipped"}),(0,e.createComponentVNode)(2,o.Window,{width:325,height:135,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tank Pressure",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:i.tankPressure/1013,ranges:{good:[.35,1/0],average:[.15,.35],bad:[-1/0,.15]},children:i.tankPressure+" kPa"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Release Pressure",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:i.ReleasePressure===i.minReleasePressure,tooltip:"Min",onClick:function(){function m(){return g("pressure",{pressure:"min"})}return m}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,value:parseFloat(i.releasePressure),width:"65px",unit:"kPa",minValue:i.minReleasePressure,maxValue:i.maxReleasePressure,onChange:function(){function m(l,u){return g("pressure",{pressure:u})}return m}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:i.ReleasePressure===i.maxReleasePressure,tooltip:"Max",onClick:function(){function m(){return g("pressure",{pressure:"max"})}return m}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"undo",content:"",disabled:i.ReleasePressure===i.defaultReleasePressure,tooltip:"Reset",onClick:function(){function m(){return g("pressure",{pressure:"reset"})}return m}()})]}),c]})})})})}return b}()},7579:function(T,r,n){"use strict";r.__esModule=!0,r.TankDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TankDispenser=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.o_tanks,m=i.p_tanks;return(0,e.createComponentVNode)(2,o.Window,{width:250,height:105,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Dispense Oxygen Tank ("+c+")",disabled:c===0,icon:"arrow-circle-down",onClick:function(){function l(){return g("oxygen")}return l}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{mt:1,fluid:!0,content:"Dispense Plasma Tank ("+m+")",disabled:m===0,icon:"arrow-circle-down",onClick:function(){function l(){return g("plasma")}return l}()})})]})})})}return b}()},16136:function(T,r,n){"use strict";r.__esModule=!0,r.TcommsCore=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TcommsCore=function(){function g(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.ion,d=(0,a.useLocalState)(c,"tabIndex",0),C=d[0],h=d[1],v=function(){function p(N){switch(N){case 0:return(0,e.createComponentVNode)(2,y);case 1:return(0,e.createComponentVNode)(2,B);case 2:return(0,e.createComponentVNode)(2,k);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}}return p}();return(0,e.createComponentVNode)(2,o.Window,{width:900,height:520,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[s===1&&(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"wrench",selected:C===0,onClick:function(){function p(){return h(0)}return p}(),children:"Configuration"},"ConfigPage"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"link",selected:C===1,onClick:function(){function p(){return h(1)}return p}(),children:"Device Linkage"},"LinkagePage"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"user-times",selected:C===2,onClick:function(){function p(){return h(2)}return p}(),children:"User Filtering"},"FilterPage")]}),v(C)]})})}return g}(),b=function(){return(0,e.createComponentVNode)(2,t.NoticeBox,{children:"ERROR: An Ionospheric overload has occured. Please wait for the machine to reboot. This cannot be manually done."})},y=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.active,d=u.sectors_available,C=u.nttc_toggle_jobs,h=u.nttc_toggle_job_color,v=u.nttc_toggle_name_color,p=u.nttc_toggle_command_bold,N=u.nttc_job_indicator_type,V=u.nttc_setting_language,S=u.network_id;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Machine Power",children:(0,e.createComponentVNode)(2,t.Button,{content:s?"On":"Off",selected:s,icon:"power-off",onClick:function(){function I(){return l("toggle_active")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sector Coverage",children:d})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Radio Configuration",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Announcements",children:(0,e.createComponentVNode)(2,t.Button,{content:C?"On":"Off",selected:C,icon:"user-tag",onClick:function(){function I(){return l("nttc_toggle_jobs")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Departmentalisation",children:(0,e.createComponentVNode)(2,t.Button,{content:h?"On":"Off",selected:h,icon:"clipboard-list",onClick:function(){function I(){return l("nttc_toggle_job_color")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name Departmentalisation",children:(0,e.createComponentVNode)(2,t.Button,{content:v?"On":"Off",selected:v,icon:"user-tag",onClick:function(){function I(){return l("nttc_toggle_name_color")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Command Amplification",children:(0,e.createComponentVNode)(2,t.Button,{content:p?"On":"Off",selected:p,icon:"volume-up",onClick:function(){function I(){return l("nttc_toggle_command_bold")}return I}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Advanced",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Announcement Format",children:(0,e.createComponentVNode)(2,t.Button,{content:N||"Unset",selected:N,icon:"pencil-alt",onClick:function(){function I(){return l("nttc_job_indicator_type")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Language Conversion",children:(0,e.createComponentVNode)(2,t.Button,{content:V||"Unset",selected:V,icon:"globe",onClick:function(){function I(){return l("nttc_setting_language")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network ID",children:(0,e.createComponentVNode)(2,t.Button,{content:S||"Unset",selected:S,icon:"server",onClick:function(){function I(){return l("network_id")}return I}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Maintenance",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Import Configuration",icon:"file-import",onClick:function(){function I(){return l("import")}return I}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Export Configuration",icon:"file-export",onClick:function(){function I(){return l("export")}return I}()})]})],4)},B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.link_password,d=u.relay_entries;return(0,e.createComponentVNode)(2,t.Section,{title:"Device Linkage",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linkage Password",children:(0,e.createComponentVNode)(2,t.Button,{content:s||"Unset",selected:s,icon:"lock",onClick:function(){function C(){return l("change_password")}return C}()})})}),(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Sector"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Unlink"})]}),d.map(function(C){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.sector}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.status===1?(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Online"}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Offline"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Unlink",icon:"unlink",onClick:function(){function h(){return l("unlink",{addr:C.addr})}return h}()})})]},C.addr)})]})]})},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.filtered_users;return(0,e.createComponentVNode)(2,t.Section,{title:"User Filtering",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Add User",icon:"user-plus",onClick:function(){function d(){return l("add_filter")}return d}()}),children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{style:{width:"90%"},children:"User"}),(0,e.createComponentVNode)(2,t.Table.Cell,{style:{width:"10%"},children:"Actions"})]}),s.map(function(d){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:d}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove",icon:"user-times",onClick:function(){function C(){return l("remove_filter",{user:d})}return C}()})})]},d)})]})})}},88046:function(T,r,n){"use strict";r.__esModule=!0,r.TcommsRelay=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TcommsRelay=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.linked,u=m.active,s=m.network_id;return(0,e.createComponentVNode)(2,o.Window,{width:600,height:292,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Relay Configuration",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Machine Power",children:(0,e.createComponentVNode)(2,t.Button,{content:u?"On":"Off",selected:u,icon:"power-off",onClick:function(){function d(){return c("toggle_active")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network ID",children:(0,e.createComponentVNode)(2,t.Button,{content:s||"Unset",selected:s,icon:"server",onClick:function(){function d(){return c("network_id")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Link Status",children:l===1?(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Linked"}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Unlinked"})})]})}),l===1?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,y)]})})}return B}(),b=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.linked_core_id,u=m.linked_core_addr,s=m.hidden_link;return(0,e.createComponentVNode)(2,t.Section,{title:"Link Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linked Core ID",children:l}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linked Core Address",children:u}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hidden Link",children:(0,e.createComponentVNode)(2,t.Button,{content:s?"Yes":"No",icon:s?"eye-slash":"eye",selected:s,onClick:function(){function d(){return c("toggle_hidden_link")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unlink",children:(0,e.createComponentVNode)(2,t.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function d(){return c("unlink")}return d}()})})]})})},y=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.cores;return(0,e.createComponentVNode)(2,t.Section,{title:"Detected Cores",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Sector"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Link"})]}),l.map(function(u){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.sector}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Link",icon:"link",onClick:function(){function s(){return c("link",{addr:u.addr})}return s}()})})]},u.addr)})]})})}},20802:function(T,r,n){"use strict";r.__esModule=!0,r.Teleporter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Teleporter=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.targetsTeleport?i.targetsTeleport:{},m=0,l=1,u=2,s=i.calibrated,d=i.calibrating,C=i.powerstation,h=i.regime,v=i.teleporterhub,p=i.target,N=i.locked,V=i.adv_beacon_allowed,S=i.advanced_beacon_locking;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:270,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:[(!C||!v)&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Error",children:[v,!C&&(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:" Powerstation not linked "}),C&&!v&&(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:" Teleporter hub not linked "})]}),C&&v&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Status",buttons:(0,e.createFragment)(!!V&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"label",children:"Advanced Beacon Locking:\xA0"}),(0,e.createComponentVNode)(2,t.Button,{selected:S,icon:S?"toggle-on":"toggle-off",content:S?"Enabled":"Disabled",onClick:function(){function I(){return g("advanced_beacon_locking",{on:S?0:1})}return I}()})],4),0),children:[(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Teleport target:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[h===m&&(0,e.createComponentVNode)(2,t.Dropdown,{width:18.2,selected:p,disabled:d,options:Object.keys(c),color:p!=="None"?"default":"bad",onSelected:function(){function I(L){return g("settarget",{x:c[L].x,y:c[L].y,z:c[L].z,tptarget:c[L].pretarget})}return I}()}),h===l&&(0,e.createComponentVNode)(2,t.Dropdown,{width:18.2,selected:p,disabled:d,options:Object.keys(c),color:p!=="None"?"default":"bad",onSelected:function(){function I(L){return g("settarget",{x:c[L].x,y:c[L].y,z:c[L].z,tptarget:c[L].pretarget})}return I}()}),h===u&&(0,e.createComponentVNode)(2,t.Box,{children:p})]})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Regime:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Gate",tooltip:"Teleport to another teleport hub.",tooltipPosition:"top",color:h===l?"good":null,onClick:function(){function I(){return g("setregime",{regime:l})}return I}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Teleporter",tooltip:"One-way teleport.",tooltipPosition:"top",color:h===m?"good":null,onClick:function(){function I(){return g("setregime",{regime:m})}return I}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"GPS",tooltip:"Teleport to a location stored in a GPS device.",tooltipPosition:"top-end",color:h===u?"good":null,disabled:!N,onClick:function(){function I(){return g("setregime",{regime:u})}return I}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{label:"Calibration",mt:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Calibration:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[p!=="None"&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:15.8,textAlign:"center",mt:.5,children:d&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"In Progress"})||s&&(0,e.createComponentVNode)(2,t.Box,{color:"good",children:"Optimal"})||(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Sub-Optimal"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{icon:"sync-alt",tooltip:"Calibrates the hub. Accidents may occur when the calibration is not optimal.",tooltipPosition:"bottom-end",disabled:!!(s||d),onClick:function(){function I(){return g("calibrate")}return I}()})})]}),p==="None"&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"21px",children:"No target set"})]})]})]}),!!(N&&C&&v&&h===u)&&(0,e.createComponentVNode)(2,t.Section,{title:"GPS",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Upload GPS data",tooltip:"Loads the GPS data from the device.",icon:"upload",onClick:function(){function I(){return g("load")}return I}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject",tooltip:"Ejects the GPS device",icon:"eject",onClick:function(){function I(){return g("eject")}return I}()})]})})]})})})})}return b}()},48517:function(T,r,n){"use strict";r.__esModule=!0,r.TelescienceConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TelescienceConsole=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.last_msg,m=i.linked_pad,l=i.held_gps,u=i.lastdata,s=i.power_levels,d=i.current_max_power,C=i.current_power,h=i.current_bearing,v=i.current_elevation,p=i.current_sector,N=i.working,V=i.max_z,S=(0,a.useLocalState)(B,"dummyrot",h),I=S[0],L=S[1];return(0,e.createComponentVNode)(2,o.Window,{width:400,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:(0,e.createFragment)([c,!(u.length>0)||(0,e.createVNode)(1,"ul",null,u.map(function(w){return(0,e.createVNode)(1,"li",null,w,0,null,w)}),0)],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Telepad Status",children:m===1?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Bearing",children:(0,e.createComponentVNode)(2,t.Box,{inline:!0,position:"relative",children:[(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0",width:6.1,lineHeight:1.5,step:.1,minValue:0,maxValue:360,disabled:N,value:h,onDrag:function(){function w(A,x){return L(x)}return w}(),onChange:function(){function w(A,x){return g("setbear",{bear:x})}return w}()}),(0,e.createComponentVNode)(2,t.Icon,{ml:1,size:1,name:"arrow-up",rotation:I})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Elevation",children:(0,e.createComponentVNode)(2,t.NumberInput,{width:6.1,lineHeight:1.5,step:.1,minValue:0,maxValue:100,disabled:N,value:v,onChange:function(){function w(A,x){return g("setelev",{elev:x})}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Level",children:s.map(function(w,A){return(0,e.createComponentVNode)(2,t.Button,{content:w,selected:C===w,disabled:A>=d-1||N,onClick:function(){function x(){return g("setpwr",{pwr:A+1})}return x}()},w)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Sector",children:(0,e.createComponentVNode)(2,t.NumberInput,{width:6.1,lineHeight:1.5,step:1,minValue:2,maxValue:V,value:p,disabled:N,onChange:function(){function w(A,x){return g("setz",{newz:x})}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Telepad Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Send",disabled:N,onClick:function(){function w(){return g("pad_send")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Receive",disabled:N,onClick:function(){function w(){return g("pad_receive")}return w}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Crystal Maintenance",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Recalibrate Crystals",disabled:N,onClick:function(){function w(){return g("recal_crystals")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject Crystals",disabled:N,onClick:function(){function w(){return g("eject_crystals")}return w}()})]})]}):(0,e.createFragment)([(0,e.createTextVNode)("No pad linked to console. Please use a multitool to link a pad.")],4)}),(0,e.createComponentVNode)(2,t.Section,{title:"GPS Actions",children:l===1?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{disabled:l===0||N,content:"Eject GPS",onClick:function(){function w(){return g("eject_gps")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:l===0||N,content:"Store Coordinates",onClick:function(){function w(){return g("store_to_gps")}return w}()})],4):(0,e.createFragment)([(0,e.createTextVNode)("Please insert a GPS to store coordinates to it.")],4)})]})})}return b}()},21800:function(T,r,n){"use strict";r.__esModule=!0,r.TempGun=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.TempGun=function(){function g(i,c){var m=(0,t.useBackend)(c),l=m.act,u=m.data,s=u.target_temperature,d=u.temperature,C=u.max_temp,h=u.min_temp;return(0,e.createComponentVNode)(2,f.Window,{width:250,height:121,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target Temperature",children:[(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:10,stepPixelSize:6,minValue:h,maxValue:C,value:s,format:function(){function v(p){return(0,a.toFixed)(p,2)}return v}(),width:"50px",onDrag:function(){function v(p,N){return l("target_temperature",{target_temperature:N})}return v}()}),"\xB0C"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Current Temperature",children:(0,e.createComponentVNode)(2,o.Box,{color:y(d),bold:d>500-273.15,children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:(0,a.round)(d,2)}),"\xB0C"]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Power Cost",children:(0,e.createComponentVNode)(2,o.Box,{color:k(d),children:B(d)})})]})})})})}return g}(),y=function(i){return i<=-100?"blue":i<=0?"teal":i<=100?"green":i<=200?"orange":"red"},B=function(i){return i<=100-273.15?"High":i<=250-273.15?"Medium":i<=300-273.15?"Low":i<=400-273.15?"Medium":"High"},k=function(i){return i<=100-273.15?"red":i<=250-273.15?"orange":i<=300-273.15?"green":i<=400-273.15?"orange":"red"}},24410:function(T,r,n){"use strict";r.__esModule=!0,r.sanitizeMultiline=r.removeAllSkiplines=r.TextInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(72253),f=n(92986),b=n(36036),y=n(98595),B=r.sanitizeMultiline=function(){function c(m){return m.replace(/(\n|\r\n){3,}/,"\n\n")}return c}(),k=r.removeAllSkiplines=function(){function c(m){return m.replace(/[\r\n]+/,"")}return c}(),g=r.TextInputModal=function(){function c(m,l){var u=(0,o.useBackend)(l),s=u.act,d=u.data,C=d.max_length,h=d.message,v=h===void 0?"":h,p=d.multiline,N=d.placeholder,V=d.timeout,S=d.title,I=(0,o.useLocalState)(l,"input",N||""),L=I[0],w=I[1],A=function(){function P(D){if(D!==L){var M=p?B(D):k(D);w(M)}}return P}(),x=p||L.length>=40,E=130+(v.length>40?Math.ceil(v.length/4):0)+(x?80:0);return(0,e.createComponentVNode)(2,y.Window,{title:S,width:325,height:E,children:[V&&(0,e.createComponentVNode)(2,a.Loader,{value:V}),(0,e.createComponentVNode)(2,y.Window.Content,{onKeyDown:function(){function P(D){var M=window.event?D.which:D.keyCode;M===f.KEY_ENTER&&(!x||!D.shiftKey)&&s("submit",{entry:L}),M===f.KEY_ESCAPE&&s("cancel")}return P}(),children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Box,{color:"label",children:v})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,i,{input:L,onType:A})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,t.InputButtons,{input:L,message:L.length+"/"+C})})]})})})]})}return c}(),i=function(m,l){var u=(0,o.useBackend)(l),s=u.act,d=u.data,C=d.max_length,h=d.multiline,v=m.input,p=m.onType,N=h||v.length>=40;return(0,e.createComponentVNode)(2,b.TextArea,{autoFocus:!0,autoSelect:!0,height:h||v.length>=40?"100%":"1.8rem",maxLength:C,onEscape:function(){function V(){return s("cancel")}return V}(),onEnter:function(){function V(S){N&&S.shiftKey||(S.preventDefault(),s("submit",{entry:v}))}return V}(),onInput:function(){function V(S,I){return p(I)}return V}(),placeholder:"Type something...",value:v})}},25036:function(T,r,n){"use strict";r.__esModule=!0,r.ThermoMachine=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.ThermoMachine=function(){function y(B,k){var g=(0,t.useBackend)(k),i=g.act,c=g.data;return(0,e.createComponentVNode)(2,f.Window,{width:300,height:225,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:[(0,e.createComponentVNode)(2,o.Section,{title:"Status",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:c.temperature,format:function(){function m(l){return(0,a.toFixed)(l,2)}return m}()})," K"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pressure",children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:c.pressure,format:function(){function m(l){return(0,a.toFixed)(l,2)}return m}()})," kPa"]})]})}),(0,e.createComponentVNode)(2,o.Section,{title:"Controls",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){function m(){return i("power")}return m}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Setting",textAlign:"center",children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:c.cooling?"temperature-low":"temperature-high",content:c.cooling?"Cooling":"Heating",selected:c.cooling,onClick:function(){function m(){return i("cooling")}return m}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target Temperature",children:[(0,e.createComponentVNode)(2,o.Button,{icon:"fast-backward",disabled:c.target===c.min,title:"Minimum temperature",onClick:function(){function m(){return i("target",{target:c.min})}return m}()}),(0,e.createComponentVNode)(2,o.NumberInput,{animated:!0,value:Math.round(c.target),unit:"K",width:5.4,lineHeight:1.4,minValue:Math.round(c.min),maxValue:Math.round(c.max),step:5,stepPixelSize:3,onDrag:function(){function m(l,u){return i("target",{target:u})}return m}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"fast-forward",disabled:c.target===c.max,title:"Maximum Temperature",onClick:function(){function m(){return i("target",{target:c.max})}return m}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"sync",disabled:c.target===c.initial,title:"Room Temperature",onClick:function(){function m(){return i("target",{target:c.initial})}return m}()})]})]})})]})})}return y}()},20035:function(T,r,n){"use strict";r.__esModule=!0,r.TransferValve=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TransferValve=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.tank_one,m=i.tank_two,l=i.attached_device,u=i.valve;return(0,e.createComponentVNode)(2,o.Window,{width:460,height:285,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Valve Status",children:(0,e.createComponentVNode)(2,t.Button,{icon:u?"unlock":"lock",content:u?"Open":"Closed",disabled:!c||!m,onClick:function(){function s(){return g("toggle")}return s}()})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Assembly",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Configure Assembly",disabled:!l,onClick:function(){function s(){return g("device")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:l?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:l,disabled:!l,onClick:function(){function s(){return g("remove_device")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Assembly"})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Attachment One",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:c?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:c,disabled:!c,onClick:function(){function s(){return g("tankone")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Tank"})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Attachment Two",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:m?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:m,disabled:!m,onClick:function(){function s(){return g("tanktwo")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Tank"})})})})]})})}return b}()},78166:function(T,r,n){"use strict";r.__esModule=!0,r.TurbineComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(44879),b=r.TurbineComputer=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.compressor,s=l.compressor_broken,d=l.turbine,C=l.turbine_broken,h=l.online,v=!!(u&&!s&&d&&!C);return(0,e.createComponentVNode)(2,o.Window,{width:400,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:h?"power-off":"times",content:h?"Online":"Offline",selected:h,disabled:!v,onClick:function(){function p(){return m("toggle_power")}return p}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Disconnect",onClick:function(){function p(){return m("disconnect")}return p}()})],4),children:v?(0,e.createComponentVNode)(2,B):(0,e.createComponentVNode)(2,y)})})})}return k}(),y=function(g,i){var c=(0,a.useBackend)(i),m=c.data,l=m.compressor,u=m.compressor_broken,s=m.turbine,d=m.turbine_broken,C=m.online;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Compressor Status",color:!l||u?"bad":"good",children:u?l?"Offline":"Missing":"Online"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Turbine Status",color:!s||d?"bad":"good",children:d?s?"Offline":"Missing":"Online"})]})},B=function(g,i){var c=(0,a.useBackend)(i),m=c.data,l=m.rpm,u=m.temperature,s=m.power,d=m.bearing_heat;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Turbine Speed",children:[l," RPM"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Internal Temp",children:[u," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Generated Power",children:[s," W"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Bearing Heat",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:d,minValue:0,maxValue:100,ranges:{good:[-1/0,60],average:[60,90],bad:[90,1/0]},children:(0,f.toFixed)(d)+"%"})})]})}},52847:function(T,r,n){"use strict";r.__esModule=!0,r.Uplink=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(25328),f=n(72253),b=n(36036),y=n(98595),B=n(3939),k=function(h){switch(h){case 0:return(0,e.createComponentVNode)(2,i);case 1:return(0,e.createComponentVNode)(2,c);case 2:return(0,e.createComponentVNode)(2,d);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}},g=r.Uplink=function(){function C(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=V.cart,I=(0,f.useLocalState)(v,"tabIndex",0),L=I[0],w=I[1],A=(0,f.useLocalState)(v,"searchText",""),x=A[0],E=A[1];return(0,e.createComponentVNode)(2,y.Window,{width:900,height:600,theme:"syndicate",children:[(0,e.createComponentVNode)(2,B.ComplexModal),(0,e.createComponentVNode)(2,y.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Tabs,{children:[(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===0,onClick:function(){function P(){w(0),E("")}return P}(),icon:"store",children:"View Market"},"PurchasePage"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===1,onClick:function(){function P(){w(1),E("")}return P}(),icon:"shopping-cart",children:["View Shopping Cart ",S&&S.length?"("+S.length+")":""]},"Cart"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===2,onClick:function(){function P(){w(2),E("")}return P}(),icon:"user",children:"Exploitable Information"},"ExploitableInfo"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{onClick:function(){function P(){return N("lock")}return P}(),icon:"lock",children:"Lock Uplink"},"LockUplink")]})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:k(L)})]})})]})}return C}(),i=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=V.crystals,I=V.cats,L=(0,f.useLocalState)(v,"uplinkItems",I[0].items),w=L[0],A=L[1],x=(0,f.useLocalState)(v,"searchText",""),E=x[0],P=x[1],D=function(U,z){z===void 0&&(z="");var $=(0,o.createSearch)(z,function(G){var X=G.hijack_only===1?"|hijack":"";return G.name+"|"+G.desc+"|"+G.cost+"tc"+X});return(0,t.flow)([(0,a.filter)(function(G){return G==null?void 0:G.name}),z&&(0,a.filter)($),(0,a.sortBy)(function(G){return G==null?void 0:G.name})])(U)},M=function(U){if(P(U),U==="")return A(I[0].items);A(D(I.map(function(z){return z.items}).flat(),U))},R=(0,f.useLocalState)(v,"showDesc",1),O=R[0],F=R[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Section,{title:"Current Balance: "+S+"TC",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"Show Descriptions",checked:O,onClick:function(){function _(){return F(!O)}return _}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Random Item",icon:"question",onClick:function(){function _(){return N("buyRandom")}return _}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Refund Currently Held Item",icon:"undo",onClick:function(){function _(){return N("refund")}return _}()})],4),children:(0,e.createComponentVNode)(2,b.Input,{fluid:!0,placeholder:"Search Equipment",onInput:function(){function _(U,z){M(z)}return _}(),value:E})})})}),(0,e.createComponentVNode)(2,b.Stack,{fill:!0,mt:.3,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:I.map(function(_){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:E!==""?!1:_.items===w,onClick:function(){function U(){A(_.items),P("")}return U}(),children:_.cat},_)})})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:w.map(function(_){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,l,{i:_,showDecription:O},(0,o.decodeHtmlEntities)(_.name))},(0,o.decodeHtmlEntities)(_.name))})})})})]})]})},c=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=V.cart,I=V.crystals,L=V.cart_price,w=(0,f.useLocalState)(v,"showDesc",0),A=w[0],x=w[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Current Balance: "+I+"TC",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"Show Descriptions",checked:A,onClick:function(){function E(){return x(!A)}return E}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Empty Cart",icon:"trash",onClick:function(){function E(){return N("empty_cart")}return E}(),disabled:!S}),(0,e.createComponentVNode)(2,b.Button,{content:"Purchase Cart ("+L+"TC)",icon:"shopping-cart",onClick:function(){function E(){return N("purchase_cart")}return E}(),disabled:!S||L>I})],4),children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:S?S.map(function(E){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,mr:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,l,{i:E,showDecription:A,buttons:(0,e.createComponentVNode)(2,s,{i:E})})},(0,o.decodeHtmlEntities)(E.name))}):(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:"Your Shopping Cart is empty!"})})})}),(0,e.createComponentVNode)(2,m)]})},m=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=V.cats,I=V.lucky_numbers;return(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Suggested Purchases",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"dice",content:"See more suggestions",onClick:function(){function L(){return N("shuffle_lucky_numbers")}return L}()}),children:(0,e.createComponentVNode)(2,b.Stack,{wrap:!0,children:I.map(function(L){return S[L.cat].items[L.item]}).filter(function(L){return L!=null}).map(function(L,w){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,mb:1,ml:1,width:34,backgroundColor:"rgba(255, 0, 0, 0.15)",children:(0,e.createComponentVNode)(2,l,{grow:!0,i:L})},w)})})})})},l=function(h,v){var p=h.i,N=h.showDecription,V=N===void 0?1:N,S=h.buttons,I=S===void 0?(0,e.createComponentVNode)(2,u,{i:p}):S;return(0,e.createComponentVNode)(2,b.Section,{title:(0,o.decodeHtmlEntities)(p.name),showBottom:V,buttons:I,children:V?(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:(0,o.decodeHtmlEntities)(p.desc)}):null})},u=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=h.i,I=V.crystals;return(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button,{icon:"shopping-cart",color:S.hijack_only===1&&"red",tooltip:"Add to cart.",tooltipPosition:"left",onClick:function(){function L(){return N("add_to_cart",{item:S.obj_path})}return L}(),disabled:S.cost>I}),(0,e.createComponentVNode)(2,b.Button,{content:"Buy ("+S.cost+"TC)"+(S.refundable?" [Refundable]":""),color:S.hijack_only===1&&"red",tooltip:S.hijack_only===1&&"Hijack Agents Only!",tooltipPosition:"left",onClick:function(){function L(){return N("buyItem",{item:S.obj_path})}return L}(),disabled:S.cost>I})],4)},s=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=h.i,I=V.exploitable;return(0,e.createComponentVNode)(2,b.Stack,{children:[(0,e.createComponentVNode)(2,b.Button,{icon:"times",content:"("+S.cost*S.amount+"TC)",tooltip:"Remove from cart.",tooltipPosition:"left",onClick:function(){function L(){return N("remove_from_cart",{item:S.obj_path})}return L}()}),(0,e.createComponentVNode)(2,b.Button,{icon:"minus",tooltip:S.limit===0&&"Discount already redeemed!",ml:"5px",onClick:function(){function L(){return N("set_cart_item_quantity",{item:S.obj_path,quantity:--S.amount})}return L}(),disabled:S.amount<=0}),(0,e.createComponentVNode)(2,b.Button.Input,{content:S.amount,width:"45px",tooltipPosition:"bottom-end",tooltip:S.limit===0&&"Discount already redeemed!",onCommit:function(){function L(w,A){return N("set_cart_item_quantity",{item:S.obj_path,quantity:A})}return L}(),disabled:S.limit!==-1&&S.amount>=S.limit&&S.amount<=0}),(0,e.createComponentVNode)(2,b.Button,{mb:.3,icon:"plus",tooltipPosition:"bottom-start",tooltip:S.limit===0&&"Discount already redeemed!",onClick:function(){function L(){return N("set_cart_item_quantity",{item:S.obj_path,quantity:++S.amount})}return L}(),disabled:S.limit!==-1&&S.amount>=S.limit})]})},d=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=V.exploitable,I=(0,f.useLocalState)(v,"selectedRecord",S[0]),L=I[0],w=I[1],A=(0,f.useLocalState)(v,"searchText",""),x=A[0],E=A[1],P=function(R,O){O===void 0&&(O="");var F=(0,o.createSearch)(O,function(_){return _.name});return(0,t.flow)([(0,a.filter)(function(_){return _==null?void 0:_.name}),O&&(0,a.filter)(F),(0,a.sortBy)(function(_){return _.name})])(R)},D=P(S,x);return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Exploitable Records",children:[(0,e.createComponentVNode)(2,b.Input,{fluid:!0,mb:1,placeholder:"Search Crew",onInput:function(){function M(R,O){return E(O)}return M}()}),(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:D.map(function(M){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:M===L,onClick:function(){function R(){return w(M)}return R}(),children:M.name},M)})})]})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:L.name,children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Age",children:L.age}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Fingerprint",children:L.fingerprint}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Rank",children:L.rank}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Sex",children:L.sex}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Species",children:L.species})]})})})]})}},12261:function(T,r,n){"use strict";r.__esModule=!0,r.Vending=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=B.product,l=B.productStock,u=B.productIcon,s=B.productIconState,d=c.chargesMoney,C=c.user,h=c.usermoney,v=c.inserted_cash,p=c.vend_ready,N=c.inserted_item_name,V=!d||m.price===0,S="ERROR!",I="";V?(S="FREE",I="arrow-circle-down"):(S=m.price,I="shopping-cart");var L=!p||l===0||!V&&m.price>h&&m.price>v;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,t.DmIcon,{verticalAlign:"middle",icon:u,icon_state:s,fallback:(0,e.createComponentVNode)(2,t.Icon,{p:.66,name:"spinner",size:2,spin:!0})})}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:m.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Box,{color:l<=0&&"bad"||l<=m.max_amount/2&&"average"||"good",children:[l," in stock"]})}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,disabled:L,icon:I,content:S,textAlign:"left",onClick:function(){function w(){return i("vend",{inum:m.inum})}return w}()})})]})},b=r.Vending=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.user,l=c.usermoney,u=c.inserted_cash,s=c.chargesMoney,d=c.product_records,C=d===void 0?[]:d,h=c.hidden_records,v=h===void 0?[]:h,p=c.stock,N=c.vend_ready,V=c.inserted_item_name,S=c.panel_open,I=c.speaker,L;return L=[].concat(C),c.extended_inventory&&(L=[].concat(L,v)),L=L.filter(function(w){return!!w}),(0,e.createComponentVNode)(2,o.Window,{title:"Vending Machine",width:450,height:Math.min((s?171:89)+L.length*32,585),children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[!!s&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"User",buttons:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:!!V&&(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:(0,e.createVNode)(1,"span",null,V,0,{style:{"text-transform":"capitalize"}}),onClick:function(){function w(){return i("eject_item",{})}return w}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{disabled:!u,icon:"money-bill-wave-alt",content:u?(0,e.createFragment)([(0,e.createVNode)(1,"b",null,u,0),(0,e.createTextVNode)(" credits")],0):"Dispense Change",tooltip:u?"Dispense Change":null,textAlign:"left",onClick:function(){function w(){return i("change")}return w}()})})]}),children:m&&(0,e.createComponentVNode)(2,t.Box,{children:["Welcome, ",(0,e.createVNode)(1,"b",null,m.name,0),", ",(0,e.createVNode)(1,"b",null,m.job||"Unemployed",0),"!",(0,e.createVNode)(1,"br"),"Your balance is ",(0,e.createVNode)(1,"b",null,[l,(0,e.createTextVNode)(" credits")],0),".",(0,e.createVNode)(1,"br")]})})}),!!S&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Maintenance",children:(0,e.createComponentVNode)(2,t.Button,{icon:I?"check":"volume-mute",selected:I,content:"Speaker",textAlign:"left",onClick:function(){function w(){return i("toggle_voice",{})}return w}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Products",children:(0,e.createComponentVNode)(2,t.Table,{children:L.map(function(w){return(0,e.createComponentVNode)(2,f,{product:w,productStock:p[w.name],productIcon:w.icon,productIconState:w.icon_state},w.name)})})})})]})})})}return y}()},68971:function(T,r,n){"use strict";r.__esModule=!0,r.VolumeMixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.VolumeMixer=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.channels;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:Math.min(95+c.length*50,565),children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:c.map(function(m,l){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.25rem",color:"label",mt:l>0&&"0.5rem",children:m.name}),(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:.5,children:(0,e.createComponentVNode)(2,t.Button,{width:"24px",color:"transparent",children:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-off",size:"1.5",mt:"0.1rem",onClick:function(){function u(){return g("volume",{channel:m.num,volume:0})}return u}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mx:"0.5rem",children:(0,e.createComponentVNode)(2,t.Slider,{minValue:0,maxValue:100,stepPixelSize:3.13,value:m.volume,onChange:function(){function u(s,d){return g("volume",{channel:m.num,volume:d})}return u}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{width:"24px",color:"transparent",children:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-up",size:"1.5",mt:"0.1rem",onClick:function(){function u(){return g("volume",{channel:m.num,volume:100})}return u}()})})})]})})],4,m.num)})})})})}return b}()},2510:function(T,r,n){"use strict";r.__esModule=!0,r.VotePanel=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.VotePanel=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.remaining,m=i.question,l=i.choices,u=i.user_vote,s=i.counts,d=i.show_counts;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:360,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:m,children:[(0,e.createComponentVNode)(2,t.Box,{mb:1.5,ml:.5,children:["Time remaining: ",Math.round(c/10),"s"]}),l.map(function(C){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{mb:1,fluid:!0,translucent:!0,lineHeight:3,multiLine:C,content:C+(d?" ("+(s[C]||0)+")":""),onClick:function(){function h(){return g("vote",{target:C})}return h}(),selected:C===u})},C)})]})})})}return b}()},30138:function(T,r,n){"use strict";r.__esModule=!0,r.Wires=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Wires=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.wires||[],m=i.status||[],l=56+c.length*23+(status?0:15+m.length*17);return(0,e.createComponentVNode)(2,o.Window,{width:350,height:l,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:c.map(function(u){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{className:"candystripe",label:u.color_name,labelColor:u.seen_color,color:u.seen_color,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:u.cut?"Mend":"Cut",onClick:function(){function s(){return g("cut",{wire:u.color})}return s}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Pulse",onClick:function(){function s(){return g("pulse",{wire:u.color})}return s}()}),(0,e.createComponentVNode)(2,t.Button,{content:u.attached?"Detach":"Attach",onClick:function(){function s(){return g("attach",{wire:u.color})}return s}()})],4),children:!!u.wire&&(0,e.createVNode)(1,"i",null,[(0,e.createTextVNode)("("),u.wire,(0,e.createTextVNode)(")")],0)},u.seen_color)})})})}),!!m.length&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:m.map(function(u){return(0,e.createComponentVNode)(2,t.Box,{color:"lightgray",children:u},u)})})})]})})})}return b}()},21400:function(T,r,n){"use strict";r.__esModule=!0,r.WizardApprenticeContract=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.WizardApprenticeContract=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.used;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:555,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Contract of Apprenticeship",children:["Using this contract, you may summon an apprentice to aid you on your mission.",(0,e.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),c?(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"red",children:"You've already summoned an apprentice or you are in process of summoning one."}):""]}),(0,e.createComponentVNode)(2,t.Section,{title:"Which school of magic is your apprentice studying?",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fire",children:["Your apprentice is skilled in bending fire. ",(0,e.createVNode)(1,"br"),"They know Fireball, Sacred Flame, and Ethereal Jaunt.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("fire")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Translocation",children:["Your apprentice is able to defy physics, learning how to move through bluespace. ",(0,e.createVNode)(1,"br"),"They know Teleport, Blink and Ethereal Jaunt.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("translocation")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Restoration",children:["Your apprentice is dedicated to supporting your magical prowess.",(0,e.createVNode)(1,"br"),"They come equipped with a Staff of Healing, have the unique ability to teleport back to you, and know Charge and Knock.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("restoration")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stealth",children:["Your apprentice is learning the art of infiltrating mundane facilities. ",(0,e.createVNode)(1,"br"),"They know Mindswap, Knock, Homing Toolbox, and Disguise Self, all of which can be cast without robes. They also join you in a Maintenance Dweller disguise, complete with Gloves of Shock Immunity and a Belt of Tools.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("stealth")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Honk",children:["Your apprentice is here to spread the Honkmother's blessings.",(0,e.createVNode)(1,"br"),"They know Banana Touch, Instant Summons, Ethereal Jaunt, and come equipped with a Staff of Slipping."," ",(0,e.createVNode)(1,"br"),"While under your tutelage, they have been 'blessed' with clown shoes that are impossible to remove.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("honk")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider)]})})]})})}return b}()},49148:function(T,r,n){"use strict";r.__esModule=!0,r.AccessList=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036);function f(g,i){var c=typeof Symbol!="undefined"&&g[Symbol.iterator]||g["@@iterator"];if(c)return(c=c.call(g)).next.bind(c);if(Array.isArray(g)||(c=b(g))||i&&g&&typeof g.length=="number"){c&&(g=c);var m=0;return function(){return m>=g.length?{done:!0}:{done:!1,value:g[m++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(g,i){if(g){if(typeof g=="string")return y(g,i);var c={}.toString.call(g).slice(8,-1);return c==="Object"&&g.constructor&&(c=g.constructor.name),c==="Map"||c==="Set"?Array.from(g):c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?y(g,i):void 0}}function y(g,i){(i==null||i>g.length)&&(i=g.length);for(var c=0,m=Array(i);c0&&!V.includes(O.ref)&&!p.includes(O.ref),checked:p.includes(O.ref),onClick:function(){function F(){return S(O.ref)}return F}()},O.desc)})]})]})})}return g}()},26991:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosScan=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036),f=function(B,k,g,i,c){return Bi?"average":B>c?"bad":"good"},b=r.AtmosScan=function(){function y(B,k){var g=B.data.aircontents;return(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,a.filter)(function(i){return i.val!=="0"||i.entry==="Pressure"||i.entry==="Temperature"})(g).map(function(i){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:i.entry,color:f(i.val,i.bad_low,i.poor_low,i.poor_high,i.bad_high),children:[i.val,i.units]},i.entry)})})})}return y}()},85870:function(T,r,n){"use strict";r.__esModule=!0,r.BeakerContents=void 0;var e=n(89005),a=n(36036),t=n(15964),o=function(y){return y+" unit"+(y===1?"":"s")},f=r.BeakerContents=function(){function b(y){var B=y.beakerLoaded,k=y.beakerContents,g=k===void 0?[]:k,i=y.buttons;return(0,e.createComponentVNode)(2,a.Stack,{vertical:!0,children:[!B&&(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",children:"No beaker loaded."})||g.length===0&&(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",children:"Beaker is empty."}),g.map(function(c,m){return(0,e.createComponentVNode)(2,a.Stack,{children:[(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",grow:!0,children:[o(c.volume)," of ",c.name]},c.name),!!i&&(0,e.createComponentVNode)(2,a.Stack.Item,{children:i(c,m)})]},c.name)})]})}return b}();f.propTypes={beakerLoaded:t.bool,beakerContents:t.array,buttons:t.arrayOf(t.element)}},92963:function(T,r,n){"use strict";r.__esModule=!0,r.BotStatus=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.BotStatus=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.act,g=B.data,i=g.locked,c=g.noaccess,m=g.maintpanel,l=g.on,u=g.autopatrol,s=g.canhack,d=g.emagged,C=g.remote_disabled;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.NoticeBox,{children:["Swipe an ID card to ",i?"unlock":"lock"," this interface."]}),(0,e.createComponentVNode)(2,t.Section,{title:"General Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:(0,e.createComponentVNode)(2,t.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,disabled:c,onClick:function(){function h(){return k("power")}return h}()})}),u!==null&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Patrol",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:u,content:"Auto Patrol",disabled:c,onClick:function(){function h(){return k("autopatrol")}return h}()})}),!!m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Maintenance Panel",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Panel Open!"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety System",children:(0,e.createComponentVNode)(2,t.Box,{color:d?"bad":"good",children:d?"DISABLED!":"Enabled"})}),!!s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hacking",children:(0,e.createComponentVNode)(2,t.Button,{icon:"terminal",content:d?"Restore Safties":"Hack",disabled:c,color:"bad",onClick:function(){function h(){return k("hack")}return h}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Remote Access",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:!C,content:"AI Remote Control",disabled:c,onClick:function(){function h(){return k("disableremote")}return h}()})})]})})],4)}return f}()},3939:function(T,r,n){"use strict";r.__esModule=!0,r.modalRegisterBodyOverride=r.modalOpen=r.modalClose=r.modalAnswer=r.ComplexModal=void 0;var e=n(89005),a=n(72253),t=n(36036),o={},f=r.modalOpen=function(){function g(i,c,m){var l=(0,a.useBackend)(i),u=l.act,s=l.data,d=Object.assign(s.modal?s.modal.args:{},m||{});u("modal_open",{id:c,arguments:JSON.stringify(d)})}return g}(),b=r.modalRegisterBodyOverride=function(){function g(i,c){o[i]=c}return g}(),y=r.modalAnswer=function(){function g(i,c,m,l){var u=(0,a.useBackend)(i),s=u.act,d=u.data;if(d.modal){var C=Object.assign(d.modal.args||{},l||{});s("modal_answer",{id:c,answer:m,arguments:JSON.stringify(C)})}}return g}(),B=r.modalClose=function(){function g(i,c){var m=(0,a.useBackend)(i),l=m.act;l("modal_close",{id:c})}return g}(),k=r.ComplexModal=function(){function g(i,c){var m=(0,a.useBackend)(c),l=m.data;if(l.modal){var u=l.modal,s=u.id,d=u.text,C=u.type,h,v=(0,e.createComponentVNode)(2,t.Button,{className:"Button--modal",icon:"arrow-left",content:"Cancel",onClick:function(){function L(){return B(c)}return L}()}),p,N,V="auto";if(o[s])p=o[s](l.modal,c);else if(C==="input"){var S=l.modal.value;h=function(){function L(w){return y(c,s,S)}return L}(),p=(0,e.createComponentVNode)(2,t.Input,{value:l.modal.value,placeholder:"ENTER to submit",width:"100%",my:"0.5rem",autofocus:!0,onChange:function(){function L(w,A){S=A}return L}()}),N=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){function L(){return B(c)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:"Confirm",color:"good",float:"right",m:"0",onClick:function(){function L(){return y(c,s,S)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]})}else if(C==="choice"){var I=typeof l.modal.choices=="object"?Object.values(l.modal.choices):l.modal.choices;p=(0,e.createComponentVNode)(2,t.Dropdown,{options:I,selected:l.modal.value,width:"100%",my:"0.5rem",onSelected:function(){function L(w){return y(c,s,w)}return L}()}),V="initial"}else C==="bento"?p=(0,e.createComponentVNode)(2,t.Stack,{spacingPrecise:"1",wrap:"wrap",my:"0.5rem",maxHeight:"1%",children:l.modal.choices.map(function(L,w){return(0,e.createComponentVNode)(2,t.Stack.Item,{flex:"1 1 auto",children:(0,e.createComponentVNode)(2,t.Button,{selected:w+1===parseInt(l.modal.value,10),onClick:function(){function A(){return y(c,s,w+1)}return A}(),children:(0,e.createVNode)(1,"img",null,null,1,{src:L})})},w)})}):C==="boolean"&&(N=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:l.modal.no_text,color:"bad",float:"left",mb:"0",onClick:function(){function L(){return y(c,s,0)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:l.modal.yes_text,color:"good",float:"right",m:"0",onClick:function(){function L(){return y(c,s,1)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]}));return(0,e.createComponentVNode)(2,t.Modal,{maxWidth:i.maxWidth||window.innerWidth/2+"px",maxHeight:i.maxHeight||window.innerHeight/2+"px",onEnter:h,mx:"auto",overflowY:V,"padding-bottom":"5px",children:[d&&(0,e.createComponentVNode)(2,t.Box,{inline:!0,children:d}),o[s]&&v,p,N]})}}return g}()},41874:function(T,r,n){"use strict";r.__esModule=!0,r.CrewManifest=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(25328),f=n(76910),b=f.COLORS.department,y=["Captain","Head of Security","Chief Engineer","Chief Medical Officer","Research Director","Head of Personnel","Quartermaster"],B=function(m){return y.indexOf(m)!==-1?"green":"orange"},k=function(m){if(y.indexOf(m)!==-1)return!0},g=function(m){return m.length>0&&(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,color:"white",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"50%",children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"35%",children:"Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"15%",children:"Active"})]}),m.map(function(l){return(0,e.createComponentVNode)(2,t.Table.Row,{color:B(l.rank),bold:k(l.rank),children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(l.name)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(l.rank)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.active})]},l.name+l.rank)})]})},i=r.CrewManifest=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,d;if(m.data)d=m.data;else{var C=(0,a.useBackend)(l),h=C.data;d=h}var v=d,p=v.manifest,N=p.heads,V=p.sec,S=p.eng,I=p.med,L=p.sci,w=p.ser,A=p.sup,x=p.misc;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.command,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Command"})}),level:2,children:g(N)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.security,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Security"})}),level:2,children:g(V)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.engineering,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Engineering"})}),level:2,children:g(S)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.medical,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Medical"})}),level:2,children:g(I)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.science,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Science"})}),level:2,children:g(L)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.service,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Service"})}),level:2,children:g(w)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.supply,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Supply"})}),level:2,children:g(A)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Misc"})}),level:2,children:g(x)})]})}return c}()},19203:function(T,r,n){"use strict";r.__esModule=!0,r.InputButtons=void 0;var e=n(89005),a=n(36036),t=n(72253),o=r.InputButtons=function(){function f(b,y){var B=(0,t.useBackend)(y),k=B.act,g=B.data,i=g.large_buttons,c=g.swapped_buttons,m=b.input,l=b.message,u=b.disabled,s=(0,e.createComponentVNode)(2,a.Button,{color:"good",content:"Submit",bold:!!i,fluid:!!i,onClick:function(){function C(){return k("submit",{entry:m})}return C}(),textAlign:"center",tooltip:i&&l,disabled:u,width:!i&&6}),d=(0,e.createComponentVNode)(2,a.Button,{color:"bad",content:"Cancel",bold:!!i,fluid:!!i,onClick:function(){function C(){return k("cancel")}return C}(),textAlign:"center",width:!i&&6});return(0,e.createComponentVNode)(2,a.Flex,{fill:!0,align:"center",direction:c?"row-reverse":"row",justify:"space-around",children:[i?(0,e.createComponentVNode)(2,a.Flex.Item,{grow:!0,ml:c?.5:0,mr:c?0:.5,children:d}):(0,e.createComponentVNode)(2,a.Flex.Item,{children:d}),!i&&l&&(0,e.createComponentVNode)(2,a.Flex.Item,{children:(0,e.createComponentVNode)(2,a.Box,{color:"label",textAlign:"center",children:l})}),i?(0,e.createComponentVNode)(2,a.Flex.Item,{grow:!0,mr:c?.5:0,ml:c?0:.5,children:s}):(0,e.createComponentVNode)(2,a.Flex.Item,{children:s})]})}return f}()},195:function(T,r,n){"use strict";r.__esModule=!0,r.InterfaceLockNoticeBox=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.InterfaceLockNoticeBox=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.act,g=B.data,i=b.siliconUser,c=i===void 0?g.siliconUser:i,m=b.locked,l=m===void 0?g.locked:m,u=b.normallyLocked,s=u===void 0?g.normallyLocked:u,d=b.onLockStatusChange,C=d===void 0?function(){return k("lock")}:d,h=b.accessText,v=h===void 0?"an ID card":h;return c?(0,e.createComponentVNode)(2,t.NoticeBox,{color:c&&"grey",children:(0,e.createComponentVNode)(2,t.Flex,{align:"center",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:"Interface lock status:"}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:"1"}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Button,{m:"0",color:s?"red":"green",icon:s?"lock":"unlock",content:s?"Locked":"Unlocked",onClick:function(){function p(){C&&C(!l)}return p}()})})]})}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:["Swipe ",v," to ",l?"unlock":"lock"," this interface."]})}return f}()},51057:function(T,r,n){"use strict";r.__esModule=!0,r.Loader=void 0;var e=n(89005),a=n(44879),t=n(36036),o=r.Loader=function(){function f(b){var y=b.value;return(0,e.createVNode)(1,"div","AlertModal__Loader",(0,e.createComponentVNode)(2,t.Box,{className:"AlertModal__LoaderProgress",style:{width:(0,a.clamp01)(y)*100+"%"}}),2)}return f}()},321:function(T,r,n){"use strict";r.__esModule=!0,r.LoginInfo=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LoginInfo=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.act,g=B.data,i=g.loginState;if(g)return(0,e.createComponentVNode)(2,t.NoticeBox,{info:!0,children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:.5,children:["Logged in as: ",i.name," (",i.rank,")"]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!i.id,content:"Eject ID",color:"good",onClick:function(){function c(){return k("login_eject")}return c}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Logout",color:"good",onClick:function(){function c(){return k("login_logout")}return c}()})]})]})})}return f}()},5485:function(T,r,n){"use strict";r.__esModule=!0,r.LoginScreen=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LoginScreen=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.act,g=B.data,i=g.loginState,c=g.isAI,m=g.isRobot,l=g.isAdmin;return(0,e.createComponentVNode)(2,t.Section,{title:"Welcome",fill:!0,stretchContents:!0,children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",align:"center",justify:"center",children:(0,e.createComponentVNode)(2,t.Flex.Item,{textAlign:"center",mt:"-2rem",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.5rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-circle",verticalAlign:"middle",size:3,mr:"1rem"}),"Guest"]}),(0,e.createComponentVNode)(2,t.Box,{color:"label",my:"1rem",children:["ID:",(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",content:i.id?i.id:"----------",ml:"0.5rem",onClick:function(){function u(){return k("login_insert")}return u}()})]}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",disabled:!i.id,content:"Login",onClick:function(){function u(){return k("login_login",{login_type:1})}return u}()}),!!c&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as AI",onClick:function(){function u(){return k("login_login",{login_type:2})}return u}()}),!!m&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as Cyborg",onClick:function(){function u(){return k("login_login",{login_type:3})}return u}()}),!!l&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"CentComm Secure Login",onClick:function(){function u(){return k("login_login",{login_type:4})}return u}()})]})})})}return f}()},62411:function(T,r,n){"use strict";r.__esModule=!0,r.Operating=void 0;var e=n(89005),a=n(36036),t=n(15964),o=r.Operating=function(){function f(b){var y=b.operating,B=b.name;if(y)return(0,e.createComponentVNode)(2,a.Dimmer,{children:(0,e.createComponentVNode)(2,a.Flex,{mb:"30px",children:(0,e.createComponentVNode)(2,a.Flex.Item,{bold:!0,color:"silver",textAlign:"center",children:[(0,e.createComponentVNode)(2,a.Icon,{name:"spinner",spin:!0,size:4,mb:"15px"}),(0,e.createVNode)(1,"br"),"The ",B," is processing..."]})})})}return f}();o.propTypes={operating:t.bool,name:t.string}},13545:function(T,r,n){"use strict";r.__esModule=!0,r.Signaler=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=r.Signaler=function(){function b(y,B){var k=(0,t.useBackend)(B),g=k.act,i=y.data,c=i.code,m=i.frequency,l=i.minFrequency,u=i.maxFrequency;return(0,e.createComponentVNode)(2,o.Section,{children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:l/10,maxValue:u/10,value:m/10,format:function(){function s(d){return(0,a.toFixed)(d,1)}return s}(),width:"80px",onDrag:function(){function s(d,C){return g("freq",{freq:C})}return s}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:c,width:"80px",onDrag:function(){function s(d,C){return g("code",{code:C})}return s}()})})]}),(0,e.createComponentVNode)(2,o.Button,{mt:1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){function s(){return g("signal")}return s}()})]})}return b}()},41984:function(T,r,n){"use strict";r.__esModule=!0,r.SimpleRecords=void 0;var e=n(89005),a=n(72253),t=n(25328),o=n(64795),f=n(88510),b=n(36036),y=r.SimpleRecords=function(){function g(i,c){var m=i.data.records;return(0,e.createComponentVNode)(2,b.Box,{children:m?(0,e.createComponentVNode)(2,k,{data:i.data,recordType:i.recordType}):(0,e.createComponentVNode)(2,B,{data:i.data})})}return g}(),B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=i.data.recordsList,s=(0,a.useLocalState)(c,"searchText",""),d=s[0],C=s[1],h=function(N,V){V===void 0&&(V="");var S=(0,t.createSearch)(V,function(I){return I.Name});return(0,o.flow)([(0,f.filter)(function(I){return I==null?void 0:I.Name}),V&&(0,f.filter)(S),(0,f.sortBy)(function(I){return I.Name})])(u)},v=h(u,d);return(0,e.createComponentVNode)(2,b.Box,{children:[(0,e.createComponentVNode)(2,b.Input,{fluid:!0,mb:1,placeholder:"Search records...",onInput:function(){function p(N,V){return C(V)}return p}()}),v.map(function(p){return(0,e.createComponentVNode)(2,b.Box,{children:(0,e.createComponentVNode)(2,b.Button,{mb:.5,content:p.Name,icon:"user",onClick:function(){function N(){return l("Records",{target:p.uid})}return N}()})},p)})]})},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=i.data.records,s=u.general,d=u.medical,C=u.security,h;switch(i.recordType){case"MED":h=(0,e.createComponentVNode)(2,b.Section,{level:2,title:"Medical Data",children:d?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Blood Type",children:d.blood_type}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Minor Disabilities",children:d.mi_dis}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:d.mi_dis_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Major Disabilities",children:d.ma_dis}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:d.ma_dis_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Allergies",children:d.alg}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:d.alg_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Current Diseases",children:d.cdi}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:d.cdi_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:d.notes})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"Medical record lost!"})});break;case"SEC":h=(0,e.createComponentVNode)(2,b.Section,{level:2,title:"Security Data",children:C?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Criminal Status",children:C.criminal}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Minor Crimes",children:C.mi_crim}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:C.mi_crim_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Major Crimes",children:C.ma_crim}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:C.ma_crim_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:C.notes})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"Security record lost!"})});break}return(0,e.createComponentVNode)(2,b.Box,{children:[(0,e.createComponentVNode)(2,b.Section,{title:"General Data",children:s?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Name",children:s.name}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Sex",children:s.sex}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Species",children:s.species}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Age",children:s.age}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Rank",children:s.rank}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Fingerprint",children:s.fingerprint}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Physical Status",children:s.p_stat}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Mental Status",children:s.m_stat})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"General record lost!"})}),h]})}},22091:function(T,r,n){"use strict";r.__esModule=!0,r.TemporaryNotice=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.TemporaryNotice=function(){function f(b,y){var B,k=(0,a.useBackend)(y),g=k.act,i=k.data,c=i.temp;if(c){var m=(B={},B[c.style]=!0,B);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.NoticeBox,Object.assign({},m,{children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:.5,children:c.text}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"times-circle",onClick:function(){function l(){return g("cleartemp")}return l}()})})]})})))}}return f}()},95213:function(T,r,n){"use strict";r.__esModule=!0,r.goonstation_PTL=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(49968),f=n(98595);/** + */function m(w,A){w.prototype=Object.create(A.prototype),w.prototype.constructor=w,l(w,A)}function l(w,A){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(x,E){return x.__proto__=E,x},l(w,A)}function u(w,A){if(w==null)return{};var x={};for(var E in w)if({}.hasOwnProperty.call(w,E)){if(A.includes(E))continue;x[E]=w[E]}return x}var s=r.ColorPickerModal=function(){function w(A,x){var E=(0,t.useBackend)(x),P=E.data,D=P.timeout,M=P.message,R=P.title,O=P.autofocus,F=P.default_color,_=F===void 0?"#000000":F,U=(0,t.useLocalState)(x,"color_picker_choice",(0,y.hexToHsva)(_)),z=U[0],$=U[1];return(0,e.createComponentVNode)(2,f.Window,{height:400,title:R,width:600,theme:"generic",children:[!!D&&(0,e.createComponentVNode)(2,a.Loader,{value:D}),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[M&&(0,e.createComponentVNode)(2,o.Stack.Item,{m:1,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:"label",overflow:"hidden",children:M})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[!!O&&(0,e.createComponentVNode)(2,o.Autofocus),(0,e.createComponentVNode)(2,d,{color:z,setColor:$,defaultColor:_})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,i.InputButtons,{input:(0,y.hsvaToHex)(z)})})]})})]})}return w}(),d=r.ColorSelector=function(){function w(A,x){var E=A.color,P=A.setColor,D=A.defaultColor,M=function(){function F(_){P(function(U){return Object.assign({},U,_)})}return F}(),R=(0,y.hsvaToRgba)(E),O=(0,y.hsvaToHex)(E);return(0,e.createComponentVNode)(2,o.Flex,{direction:"row",children:[(0,e.createComponentVNode)(2,o.Flex.Item,{mr:2,children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createVNode)(1,"div","react-colorful",[(0,e.createComponentVNode)(2,N,{hsva:E,onChange:M}),(0,e.createComponentVNode)(2,V,{hue:E.h,onChange:M,className:"react-colorful__last-control"})],4)}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"20px",textAlign:"center",children:"Current"}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"20px",textAlign:"center",children:"Previous"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Tooltip,{content:O,position:"bottom",children:(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"30px",backgroundColor:O})}),(0,e.createComponentVNode)(2,o.Tooltip,{content:D,position:"bottom",children:(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"30px",backgroundColor:D})})]})]})}),(0,e.createComponentVNode)(2,o.Flex.Item,{grow:!0,fontSize:"15px",lineHeight:"24px",children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"Hex:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,height:"24px",children:(0,e.createComponentVNode)(2,v,{fluid:!0,color:(0,y.hsvaToHex)(E).substring(1),onChange:function(){function F(_){g.logger.info(_),P((0,y.hexToHsva)(_))}return F}(),prefixed:!0})})]})}),(0,e.createComponentVNode)(2,o.Stack.Divider),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"H:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,V,{hue:E.h,onChange:M})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:E.h,callback:function(){function F(_,U){return M({h:U})}return F}(),max:360,unit:"\xB0"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"S:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,S,{color:E,onChange:M})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:E.s,callback:function(){function F(_,U){return M({s:U})}return F}(),unit:"%"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"V:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,I,{color:E,onChange:M})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:E.v,callback:function(){function F(_,U){return M({v:U})}return F}(),unit:"%"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Divider),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"R:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:E,onChange:M,target:"r"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:R.r,callback:function(){function F(_,U){R.r=U,M((0,y.rgbaToHsva)(R))}return F}(),max:255})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"G:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:E,onChange:M,target:"g"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:R.g,callback:function(){function F(_,U){R.g=U,M((0,y.rgbaToHsva)(R))}return F}(),max:255})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"B:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:E,onChange:M,target:"b"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,C,{value:R.b,callback:function(){function F(_,U){R.b=U,M((0,y.rgbaToHsva)(R))}return F}(),max:255})})]})})]})})]})}return w}(),C=function(A){var x=A.value,E=A.callback,P=A.min,D=P===void 0?0:P,M=A.max,R=M===void 0?100:M,O=A.unit;return(0,e.createComponentVNode)(2,o.NumberInput,{width:"70px",value:Math.round(x),step:1,minValue:D,maxValue:R,onChange:E,unit:O})},h=function(A){return"#"+A},v=r.HexColorInput=function(){function w(A){var x=A.prefixed,E=A.alpha,P=A.color,D=A.fluid,M=A.onChange,R=u(A,c),O=function(){function _(U){return U.replace(/([^0-9A-F]+)/gi,"").substring(0,E?8:6)}return _}(),F=function(){function _(U){return(0,y.validHex)(U,E)}return _}();return(0,e.normalizeProps)((0,e.createComponentVNode)(2,p,Object.assign({},R,{fluid:D,color:P,onChange:M,escape:O,format:x?h:void 0,validate:F})))}return w}(),p=r.ColorInput=function(w){function A(E){var P;return P=w.call(this)||this,P.props=void 0,P.state=void 0,P.handleInput=function(D){var M=P.props.escape(D.currentTarget.value);P.setState({localValue:M})},P.handleBlur=function(D){D.currentTarget&&(P.props.validate(D.currentTarget.value)?P.props.onChange(P.props.escape?P.props.escape(D.currentTarget.value):D.currentTarget.value):P.setState({localValue:P.props.escape(P.props.color)}))},P.props=E,P.state={localValue:P.props.escape(P.props.color)},P}m(A,w);var x=A.prototype;return x.componentDidUpdate=function(){function E(P,D){P.color!==this.props.color&&this.setState({localValue:this.props.escape(this.props.color)})}return E}(),x.render=function(){function E(){return(0,e.createComponentVNode)(2,o.Box,{className:(0,k.classes)(["Input",this.props.fluid&&"Input--fluid"]),children:[(0,e.createVNode)(1,"div","Input__baseline",".",16),(0,e.createVNode)(64,"input","Input__input",null,1,{value:this.props.format?this.props.format(this.state.localValue):this.state.localValue,spellCheck:"false",onInput:this.handleInput,onBlur:this.handleBlur})]})}return E}(),A}(e.Component),N=function(A){var x=A.hsva,E=A.onChange,P=function(O){E({s:O.left*100,v:100-O.top*100})},D=function(O){E({s:(0,b.clamp)(x.s+O.left*100,0,100),v:(0,b.clamp)(x.v-O.top*100,0,100)})},M={"background-color":(0,y.hsvaToHslString)({h:x.h,s:100,v:100,a:1})+" !important"};return(0,e.createVNode)(1,"div","react-colorful__saturation_value",(0,e.createComponentVNode)(2,B.Interactive,{onMove:P,onKey:D,"aria-label":"Color","aria-valuetext":"Saturation "+Math.round(x.s)+"%, Brightness "+Math.round(x.v)+"%",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__saturation_value-pointer",top:1-x.v/100,left:x.s/100,color:(0,y.hsvaToHslString)(x)})}),2,{style:M})},V=function(A){var x=A.className,E=A.hue,P=A.onChange,D=function(F){P({h:360*F.left})},M=function(F){P({h:(0,b.clamp)(E+F.left*360,0,360)})},R=(0,k.classes)(["react-colorful__hue",x]);return(0,e.createVNode)(1,"div",R,(0,e.createComponentVNode)(2,B.Interactive,{onMove:D,onKey:M,"aria-label":"Hue","aria-valuenow":Math.round(E),"aria-valuemax":"360","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__hue-pointer",left:E/360,color:(0,y.hsvaToHslString)({h:E,s:100,v:100,a:1})})}),2)},S=function(A){var x=A.className,E=A.color,P=A.onChange,D=function(F){P({s:100*F.left})},M=function(F){P({s:(0,b.clamp)(E.s+F.left*100,0,100)})},R=(0,k.classes)(["react-colorful__saturation",x]);return(0,e.createVNode)(1,"div",R,(0,e.createComponentVNode)(2,B.Interactive,{style:{background:"linear-gradient(to right, "+(0,y.hsvaToHslString)({h:E.h,s:0,v:E.v,a:1})+", "+(0,y.hsvaToHslString)({h:E.h,s:100,v:E.v,a:1})+")"},onMove:D,onKey:M,"aria-label":"Saturation","aria-valuenow":Math.round(E.s),"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__saturation-pointer",left:E.s/100,color:(0,y.hsvaToHslString)({h:E.h,s:E.s,v:E.v,a:1})})}),2)},I=function(A){var x=A.className,E=A.color,P=A.onChange,D=function(F){P({v:100*F.left})},M=function(F){P({v:(0,b.clamp)(E.v+F.left*100,0,100)})},R=(0,k.classes)(["react-colorful__value",x]);return(0,e.createVNode)(1,"div",R,(0,e.createComponentVNode)(2,B.Interactive,{style:{background:"linear-gradient(to right, "+(0,y.hsvaToHslString)({h:E.h,s:E.s,v:0,a:1})+", "+(0,y.hsvaToHslString)({h:E.h,s:E.s,v:100,a:1})+")"},onMove:D,onKey:M,"aria-label":"Value","aria-valuenow":Math.round(E.s),"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__value-pointer",left:E.v/100,color:(0,y.hsvaToHslString)({h:E.h,s:E.s,v:E.v,a:1})})}),2)},L=function(A){var x=A.className,E=A.color,P=A.onChange,D=A.target,M=(0,y.hsvaToRgba)(E),R=function($){M[D]=$,P((0,y.rgbaToHsva)(M))},O=function($){R(255*$.left)},F=function($){R((0,b.clamp)(M[D]+$.left*255,0,255))},_=(0,k.classes)(["react-colorful__"+D,x]),U=D==="r"?"rgb("+Math.round(M.r)+",0,0)":D==="g"?"rgb(0,"+Math.round(M.g)+",0)":"rgb(0,0,"+Math.round(M.b)+")";return(0,e.createVNode)(1,"div",_,(0,e.createComponentVNode)(2,B.Interactive,{onMove:O,onKey:F,"aria-valuenow":M[D],"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__"+D+"-pointer",left:M[D]/255,color:U})}),2)}},8444:function(T,r,n){"use strict";r.__esModule=!0,r.ColourMatrixTester=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ColourMatrixTester=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.colour_data,m=[[{name:"RR",idx:0},{name:"RG",idx:1},{name:"RB",idx:2},{name:"RA",idx:3}],[{name:"GR",idx:4},{name:"GG",idx:5},{name:"GB",idx:6},{name:"GA",idx:7}],[{name:"BR",idx:8},{name:"BG",idx:9},{name:"BB",idx:10},{name:"BA",idx:11}],[{name:"AR",idx:12},{name:"AG",idx:13},{name:"AB",idx:14},{name:"AA",idx:15}]];return(0,e.createComponentVNode)(2,o.Window,{width:360,height:190,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Modify Matrix",children:m.map(function(l){return(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",textColor:"label",children:l.map(function(u){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:1,children:[u.name,":\xA0",(0,e.createComponentVNode)(2,t.NumberInput,{width:4,value:c[u.idx],step:.05,minValue:-5,maxValue:5,stepPixelSize:5,onChange:function(){function s(d,C){return g("setvalue",{idx:u.idx+1,value:C})}return s}()})]},u.name)})},l)})})})})})}return b}()},63818:function(T,r,n){"use strict";r.__esModule=!0,r.CommunicationsComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(s){switch(s){case 1:return(0,e.createComponentVNode)(2,B);case 2:return(0,e.createComponentVNode)(2,i);case 3:return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,c)})});case 4:return(0,e.createComponentVNode)(2,l);default:return"ERROR. Unknown menu_state. Please contact NT Technical Support."}},b=r.CommunicationsComputer=function(){function u(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.menu_state;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,y),f(p)]})})})}return u}(),y=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.authenticated,N=v.noauthbutton,V=v.esc_section,S=v.esc_callable,I=v.esc_recallable,L=v.esc_status,w=v.authhead,A=v.is_ai,x=v.lastCallLoc,E=!1,P;return p?p===1?P="Command":p===2?P="Captain":p===3?P="CentComm Officer":p===4?(P="CentComm Secure Connection",E=!0):P="ERROR: Report This Bug!":P="Not Logged In",(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Authentication",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:E&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Access",children:P})||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{icon:p?"sign-out-alt":"id-card",selected:p,disabled:N,content:p?"Log Out ("+P+")":"Log In",onClick:function(){function D(){return h("auth")}return D}()})})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:!!V&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Escape Shuttle",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!L&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:L}),!!S&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Options",children:(0,e.createComponentVNode)(2,t.Button,{icon:"rocket",content:"Call Shuttle",disabled:!w,onClick:function(){function D(){return h("callshuttle")}return D}()})}),!!I&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Options",children:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Recall Shuttle",disabled:!w||A,onClick:function(){function D(){return h("cancelshuttle")}return D}()})}),!!x&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Last Call/Recall From",children:x})]})})})],4)},B=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.is_admin;return p?(0,e.createComponentVNode)(2,k):(0,e.createComponentVNode)(2,g)},k=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.is_admin,N=v.gamma_armory_location,V=v.admin_levels,S=v.authenticated,I=v.ert_allowed;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"CentComm Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Change Alert",children:(0,e.createComponentVNode)(2,m,{levels:V,required_access:p,use_confirm:1})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Announcement",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"bullhorn",content:"Make Central Announcement",disabled:!p,onClick:function(){function L(){return h("send_to_cc_announcement_page")}return L}()}),S===4&&(0,e.createComponentVNode)(2,t.Button,{icon:"plus",content:"Make Other Announcement",disabled:!p,onClick:function(){function L(){return h("make_other_announcement")}return L}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Response Team",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"ambulance",content:"Dispatch ERT",disabled:!p,onClick:function(){function L(){return h("dispatch_ert")}return L}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:I,content:I?"ERT calling enabled":"ERT calling disabled",tooltip:I?"Command can request an ERT":"ERTs cannot be requested",disabled:!p,onClick:function(){function L(){return h("toggle_ert_allowed")}return L}(),selected:null})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nuclear Device",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"bomb",content:"Get Authentication Codes",disabled:!p,onClick:function(){function L(){return h("send_nuke_codes")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gamma Armory",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"biohazard",content:N?"Send Gamma Armory":"Recall Gamma Armory",disabled:!p,onClick:function(){function L(){return h("move_gamma_armory")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Other",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"coins",content:"View Economy",disabled:!p,onClick:function(){function L(){return h("view_econ")}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fax",content:"Fax Manager",disabled:!p,onClick:function(){function L(){return h("view_fax")}return L}()})]})]})}),(0,e.createComponentVNode)(2,t.Collapsible,{title:"View Command accessible controls",children:(0,e.createComponentVNode)(2,g)})]})},g=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.msg_cooldown,N=v.emagged,V=v.cc_cooldown,S=v.security_level_color,I=v.str_security_level,L=v.levels,w=v.authcapt,A=v.authhead,x=v.messages,E="Make Priority Announcement";p>0&&(E+=" ("+p+"s)");var P=N?"Message [UNKNOWN]":"Message CentComm",D="Request Authentication Codes";return V>0&&(P+=" ("+V+"s)",D+=" ("+V+"s)"),(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Captain-Only Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Alert",color:S,children:I}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Change Alert",children:(0,e.createComponentVNode)(2,m,{levels:L,required_access:w})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Announcement",children:(0,e.createComponentVNode)(2,t.Button,{icon:"bullhorn",content:E,disabled:!w||p>0,onClick:function(){function M(){return h("announce")}return M}()})}),!!N&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transmit",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",color:"red",content:P,disabled:!w||V>0,onClick:function(){function M(){return h("MessageSyndicate")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync-alt",content:"Reset Relays",disabled:!w,onClick:function(){function M(){return h("RestoreBackup")}return M}()})]})||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transmit",children:(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",content:P,disabled:!w||V>0,onClick:function(){function M(){return h("MessageCentcomm")}return M}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nuclear Device",children:(0,e.createComponentVNode)(2,t.Button,{icon:"bomb",content:D,disabled:!w||V>0,onClick:function(){function M(){return h("nukerequest")}return M}()})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Command Staff Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Displays",children:(0,e.createComponentVNode)(2,t.Button,{icon:"tv",content:"Change Status Displays",disabled:!A,onClick:function(){function M(){return h("status")}return M}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Incoming Messages",children:(0,e.createComponentVNode)(2,t.Button,{icon:"folder-open",content:"View ("+x.length+")",disabled:!A,onClick:function(){function M(){return h("messagelist")}return M}()})})]})})})],4)},i=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.stat_display,N=v.authhead,V=v.current_message_title,S=p.presets.map(function(L){return(0,e.createComponentVNode)(2,t.Button,{content:L.label,selected:L.name===p.type,disabled:!N,onClick:function(){function w(){return h("setstat",{statdisp:L.name})}return w}()},L.name)}),I=p.alerts.map(function(L){return(0,e.createComponentVNode)(2,t.Button,{content:L.label,selected:L.alert===p.icon,disabled:!N,onClick:function(){function w(){return h("setstat",{statdisp:3,alert:L.alert})}return w}()},L.alert)});return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Modify Status Screens",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function L(){return h("main")}return L}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Presets",children:S}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alerts",children:I}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message Line 1",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:p.line_1,disabled:!N,onClick:function(){function L(){return h("setmsg1")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message Line 2",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:p.line_2,disabled:!N,onClick:function(){function L(){return h("setmsg2")}return L}()})})]})})})},c=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.authhead,N=v.current_message_title,V=v.current_message,S=v.messages,I=v.security_level,L;if(N)L=(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:N,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Return To Message List",disabled:!p,onClick:function(){function A(){return h("messagelist")}return A}()}),children:(0,e.createComponentVNode)(2,t.Box,{children:V})})});else{var w=S.map(function(A){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:A.title,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"eye",content:"View",disabled:!p||N===A.title,onClick:function(){function x(){return h("messagelist",{msgid:A.id})}return x}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"times",content:"Delete",disabled:!p,onClick:function(){function x(){return h("delmessage",{msgid:A.id})}return x}()})]},A.id)});L=(0,e.createComponentVNode)(2,t.Section,{title:"Messages Received",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function A(){return h("main")}return A}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:w})})}return(0,e.createComponentVNode)(2,t.Box,{children:L})},m=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=s.levels,N=s.required_access,V=s.use_confirm,S=v.security_level;return V?p.map(function(I){return(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:I.icon,content:I.name,disabled:!N||I.id===S,tooltip:I.tooltip,onClick:function(){function L(){return h("newalertlevel",{level:I.id})}return L}()},I.name)}):p.map(function(I){return(0,e.createComponentVNode)(2,t.Button,{icon:I.icon,content:I.name,disabled:!N||I.id===S,tooltip:I.tooltip,onClick:function(){function L(){return h("newalertlevel",{level:I.id})}return L}()},I.name)})},l=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.is_admin,N=v.possible_cc_sounds;if(!p)return h("main");var V=(0,a.useLocalState)(d,"subtitle",""),S=V[0],I=V[1],L=(0,a.useLocalState)(d,"text",""),w=L[0],A=L[1],x=(0,a.useLocalState)(d,"classified",0),E=x[0],P=x[1],D=(0,a.useLocalState)(d,"beepsound","Beep"),M=D[0],R=D[1];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Central Command Report",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function O(){return h("main")}return O}()}),children:[(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter Subtitle here.",fluid:!0,value:S,onChange:function(){function O(F,_){return I(_)}return O}(),mb:"5px"}),(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter Announcement here,\nMultiline input is accepted.",rows:10,fluid:!0,multiline:1,value:w,onChange:function(){function O(F,_){return A(_)}return O}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Send Announcement",fluid:!0,icon:"paper-plane",center:!0,mt:"5px",textAlign:"center",onClick:function(){function O(){return h("make_cc_announcement",{subtitle:S,text:w,classified:E,beepsound:M})}return O}()}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"260px",height:"20px",options:N,selected:M,onSelected:function(){function O(F){return R(F)}return O}(),disabled:E})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"volume-up",mx:"5px",disabled:E,tooltip:"Test sound",onClick:function(){function O(){return h("test_sound",{sound:M})}return O}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:E,content:"Classified",fluid:!0,tooltip:E?"Sent to station communications consoles":"Publically announced",onClick:function(){function O(){return P(!E)}return O}()})})]})]})})}},20562:function(T,r,n){"use strict";r.__esModule=!0,r.CompostBin=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.CompostBin=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.biomass,m=i.compost,l=i.biomass_capacity,u=i.compost_capacity,s=i.potassium,d=i.potassium_capacity,C=i.potash,h=i.potash_capacity,v=(0,a.useSharedState)(B,"vendAmount",1),p=v[0],N=v[1];return(0,e.createComponentVNode)(2,o.Window,{width:360,height:250,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{label:"Resources",children:(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Biomass",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:c,minValue:0,maxValue:l,ranges:{good:[l*.5,1/0],average:[l*.25,l*.5],bad:[-1/0,l*.25]},children:[c," / ",l," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Compost",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:m,minValue:0,maxValue:u,ranges:{good:[u*.5,1/0],average:[u*.25,u*.5],bad:[-1/0,u*.25]},children:[m," / ",u," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Potassium",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:s,minValue:0,maxValue:d,ranges:{good:[d*.5,1/0],average:[d*.25,d*.5],bad:[-1/0,d*.25]},children:[s," / ",d," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Potash",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:C,minValue:0,maxValue:h,ranges:{good:[h*.5,1/0],average:[h*.25,h*.5],bad:[-1/0,h*.25]},children:[C," / ",h," Units"]})})]})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Controls",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,mr:"5px",color:"silver",children:"Soil clumps to make:"}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,value:p,width:"32px",minValue:1,maxValue:10,stepPixelSize:7,onChange:function(){function V(S,I){return N(I)}return V}()})],4),children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,align:"center",content:"Make Soil",disabled:m<25*p,icon:"arrow-circle-down",onClick:function(){function V(){return g("create",{amount:p})}return V}()})})})]})})})}return b}()},21813:function(T,r,n){"use strict";r.__esModule=!0,r.Contractor=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(73379),b=n(98595);function y(h,v){h.prototype=Object.create(v.prototype),h.prototype.constructor=h,B(h,v)}function B(h,v){return B=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(p,N){return p.__proto__=N,p},B(h,v)}var k={1:["ACTIVE","good"],2:["COMPLETED","good"],3:["FAILED","bad"]},g=["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(Math.random()*2e4),"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"],i=r.Contractor=function(){function h(v,p){var N=(0,t.useBackend)(p),V=N.act,S=N.data,I;S.unauthorized?I=(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,d,{height:"100%",allMessages:["ERROR: UNAUTHORIZED USER"],finishedTimeout:100,onFinished:function(){function x(){}return x}()})}):S.load_animation_completed?I=(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",children:(0,e.createComponentVNode)(2,c)}),(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",mt:"0.5rem",children:(0,e.createComponentVNode)(2,m)}),(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",overflow:"hidden",children:S.page===1?(0,e.createComponentVNode)(2,l,{height:"100%"}):(0,e.createComponentVNode)(2,s,{height:"100%"})})],4):I=(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,d,{height:"100%",allMessages:g,finishedTimeout:3e3,onFinished:function(){function x(){return V("complete_load_animation")}return x}()})});var L=(0,t.useLocalState)(p,"viewingPhoto",""),w=L[0],A=L[1];return(0,e.createComponentVNode)(2,b.Window,{theme:"syndicate",width:500,height:600,children:[w&&(0,e.createComponentVNode)(2,C),(0,e.createComponentVNode)(2,b.Window.Content,{className:"Contractor",children:(0,e.createComponentVNode)(2,o.Flex,{direction:"column",height:"100%",children:I})})]})}return h}(),c=function(v,p){var N=(0,t.useBackend)(p),V=N.act,S=N.data,I=S.tc_available,L=S.tc_paid_out,w=S.completed_contracts,A=S.rep;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Summary",buttons:(0,e.createComponentVNode)(2,o.Box,{verticalAlign:"middle",mt:"0.25rem",children:[A," Rep"]})},v,{children:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Box,{flexBasis:"50%",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"TC Available",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,o.Flex,{align:"center",children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",children:[I," TC"]}),(0,e.createComponentVNode)(2,o.Button,{disabled:I<=0,content:"Claim",mx:"0.75rem",mb:"0",flexBasis:"content",onClick:function(){function x(){return V("claim")}return x}()})]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"TC Earned",children:[L," TC"]})]})}),(0,e.createComponentVNode)(2,o.Box,{flexBasis:"50%",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Contracts Completed",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,o.Box,{height:"20px",lineHeight:"20px",inline:!0,children:w})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Contractor Status",verticalAlign:"middle",children:"ACTIVE"})]})})]})})))},m=function(v,p){var N=(0,t.useBackend)(p),V=N.act,S=N.data,I=S.page;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Tabs,Object.assign({},v,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:I===1,onClick:function(){function L(){return V("page",{page:1})}return L}(),children:[(0,e.createComponentVNode)(2,o.Icon,{name:"suitcase"}),"Contracts"]}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:I===2,onClick:function(){function L(){return V("page",{page:2})}return L}(),children:[(0,e.createComponentVNode)(2,o.Icon,{name:"shopping-cart"}),"Hub"]})]})))},l=function(v,p){var N=(0,t.useBackend)(p),V=N.act,S=N.data,I=S.contracts,L=S.contract_active,w=S.can_extract,A=!!L&&I.filter(function(M){return M.status===1})[0],x=A&&A.time_left>0,E=(0,t.useLocalState)(p,"viewingPhoto",""),P=E[0],D=E[1];return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Available Contracts",overflow:"auto",buttons:(0,e.createComponentVNode)(2,o.Button,{disabled:!w||x,icon:"parachute-box",content:["Call Extraction",x&&(0,e.createComponentVNode)(2,f.Countdown,{timeLeft:A.time_left,format:function(){function M(R,O){return" ("+O.substr(3)+")"}return M}()})],onClick:function(){function M(){return V("extract")}return M}()})},v,{children:I.slice().sort(function(M,R){return M.status===1?-1:R.status===1?1:M.status-R.status}).map(function(M){var R;return(0,e.createComponentVNode)(2,o.Section,{title:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",color:M.status===1&&"good",children:M.target_name}),(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",children:M.has_photo&&(0,e.createComponentVNode)(2,o.Button,{icon:"camera",mb:"-0.5rem",ml:"0.5rem",onClick:function(){function O(){return D("target_photo_"+M.uid+".png")}return O}()})})]}),className:"Contractor__Contract",buttons:(0,e.createComponentVNode)(2,o.Box,{width:"100%",children:[!!k[M.status]&&(0,e.createComponentVNode)(2,o.Box,{color:k[M.status][1],inline:!0,mt:M.status!==1&&"0.125rem",mr:"0.25rem",lineHeight:"20px",children:k[M.status][0]}),M.status===1&&(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"ban",color:"bad",content:"Abort",ml:"0.5rem",onClick:function(){function O(){return V("abort")}return O}()})]}),children:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"2",mr:"0.5rem",children:[M.fluff_message,!!M.completed_time&&(0,e.createComponentVNode)(2,o.Box,{color:"good",children:[(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Icon,{name:"check",mr:"0.5rem"}),"Contract completed at ",M.completed_time]}),!!M.dead_extraction&&(0,e.createComponentVNode)(2,o.Box,{color:"bad",mt:"0.5rem",bold:!0,children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"Telecrystals reward reduced drastically as the target was dead during extraction."]}),!!M.fail_reason&&(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:[(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Icon,{name:"times",mr:"0.5rem"}),"Contract failed: ",M.fail_reason]})]}),(0,e.createComponentVNode)(2,o.Flex.Item,{flexBasis:"100%",children:[(0,e.createComponentVNode)(2,o.Flex,{mb:"0.5rem",color:"label",children:["Extraction Zone:\xA0",u(M)]}),(R=M.difficulties)==null?void 0:R.map(function(O,F){return(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:!!L,content:O.name+" ("+O.reward+" TC)",onClick:function(){function _(){return V("activate",{uid:M.uid,difficulty:F+1})}return _}()},F)}),!!M.objective&&(0,e.createComponentVNode)(2,o.Box,{color:"white",bold:!0,children:[M.objective.extraction_name,(0,e.createVNode)(1,"br"),"(",(M.objective.rewards.tc||0)+" TC",",\xA0",(M.objective.rewards.credits||0)+" Credits",")"]})]})]})},M.uid)})})))},u=function(v){if(!(!v.objective||v.status>1)){var p=v.objective.locs.user_area_id,N=v.objective.locs.user_coords,V=v.objective.locs.target_area_id,S=v.objective.locs.target_coords,I=p===V;return(0,e.createComponentVNode)(2,o.Flex.Item,{children:(0,e.createComponentVNode)(2,o.Icon,{name:I?"dot-circle-o":"arrow-alt-circle-right-o",color:I?"green":"yellow",rotation:I?null:-(0,a.rad2deg)(Math.atan2(S[1]-N[1],S[0]-N[0])),lineHeight:I?null:"0.85",size:"1.5"})})}},s=function(v,p){var N=(0,t.useBackend)(p),V=N.act,S=N.data,I=S.rep,L=S.buyables;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Available Purchases",overflow:"auto"},v,{children:L.map(function(w){return(0,e.createComponentVNode)(2,o.Section,{title:w.name,children:[w.description,(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:I-1&&(0,e.createComponentVNode)(2,o.Box,{as:"span",color:w.stock===0?"bad":"good",ml:"0.5rem",children:[w.stock," in stock"]})]},w.uid)})})))},d=function(h){function v(N){var V;return V=h.call(this,N)||this,V.timer=null,V.state={currentIndex:0,currentDisplay:[]},V}y(v,h);var p=v.prototype;return p.tick=function(){function N(){var V=this.props,S=this.state;if(S.currentIndex<=V.allMessages.length){this.setState(function(L){return{currentIndex:L.currentIndex+1}});var I=S.currentDisplay;I.push(V.allMessages[S.currentIndex])}else clearTimeout(this.timer),setTimeout(V.onFinished,V.finishedTimeout)}return N}(),p.componentDidMount=function(){function N(){var V=this,S=this.props.linesPerSecond,I=S===void 0?2.5:S;this.timer=setInterval(function(){return V.tick()},1e3/I)}return N}(),p.componentWillUnmount=function(){function N(){clearTimeout(this.timer)}return N}(),p.render=function(){function N(){return(0,e.createComponentVNode)(2,o.Box,{m:1,children:this.state.currentDisplay.map(function(V){return(0,e.createFragment)([V,(0,e.createVNode)(1,"br")],0,V)})})}return N}(),v}(e.Component),C=function(v,p){var N=(0,t.useLocalState)(p,"viewingPhoto",""),V=N[0],S=N[1];return(0,e.createComponentVNode)(2,o.Modal,{className:"Contractor__photoZoom",children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",src:V}),(0,e.createComponentVNode)(2,o.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){function I(){return S("")}return I}()})]})}},54151:function(T,r,n){"use strict";r.__esModule=!0,r.ConveyorSwitch=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ConveyorSwitch=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.slowFactor,m=i.oneWay,l=i.position;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:135,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lever position",children:l>0?"forward":l<0?"reverse":"neutral"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Allow reverse",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!m,onClick:function(){function u(){return g("toggleOneWay")}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Slowdown factor",children:(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",onClick:function(){function u(){return g("slowFactor",{value:c-5})}return u}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-left",onClick:function(){function u(){return g("slowFactor",{value:c-1})}return u}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Slider,{width:"100px",mx:"1px",value:c,fillValue:c,minValue:1,maxValue:50,step:1,format:function(){function u(s){return s+"x"}return u}(),onChange:function(){function u(s,d){return g("slowFactor",{value:d})}return u}()})}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-right",onClick:function(){function u(){return g("slowFactor",{value:c+1})}return u}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",onClick:function(){function u(){return g("slowFactor",{value:c+5})}return u}()})," "]})]})})]})})})})}return b}()},73169:function(T,r,n){"use strict";r.__esModule=!0,r.CrewMonitor=void 0;var e=n(89005),a=n(88510),t=n(25328),o=n(72253),f=n(36036),b=n(36352),y=n(76910),B=n(98595),k=n(96184),g=["color"];function i(C,h){if(C==null)return{};var v={};for(var p in C)if({}.hasOwnProperty.call(C,p)){if(h.includes(p))continue;v[p]=C[p]}return v}var c=function(h,v){return h.dead?"Deceased":parseInt(h.health,10)<=v?"Critical":parseInt(h.stat,10)===1?"Unconscious":"Living"},m=function(h,v){return h.dead?"red":parseInt(h.health,10)<=v?"orange":parseInt(h.stat,10)===1?"blue":"green"},l=r.CrewMonitor=function(){function C(h,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,S=(0,o.useLocalState)(v,"tabIndex",V.tabIndex),I=S[0],L=S[1],w=function(){function x(E){L(E),N("set_tab_index",{tab_index:E})}return x}(),A=function(){function x(E){switch(E){case 0:return(0,e.createComponentVNode)(2,u);case 1:return(0,e.createComponentVNode)(2,d);default:return"WE SHOULDN'T BE HERE!"}}return x}();return(0,e.createComponentVNode)(2,B.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"table",selected:I===0,onClick:function(){function x(){return w(0)}return x}(),children:"Data View"},"DataView"),(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"map-marked-alt",selected:I===1,onClick:function(){function x(){return w(1)}return x}(),children:"Map View"},"MapView")]})}),A(I)]})})})}return C}(),u=function(h,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,S=V.possible_levels,I=V.viewing_current_z_level,L=V.is_advanced,w=V.highlightedNames,A=(0,a.sortBy)(function(M){return!w.includes(M.name)},function(M){return M.name})(V.crewmembers||[]),x=(0,o.useLocalState)(v,"search",""),E=x[0],P=x[1],D=(0,t.createSearch)(E,function(M){return M.name+"|"+M.assignment+"|"+M.area});return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,backgroundColor:"transparent",children:[(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Stack.Item,{width:"100%",ml:"5px",children:(0,e.createComponentVNode)(2,f.Input,{placeholder:"Search by name, assignment or location..",width:"100%",onInput:function(){function M(R,O){return P(O)}return M}()})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:L?(0,e.createComponentVNode)(2,f.Dropdown,{mr:"5px",width:"50px",options:S,selected:I,onSelected:function(){function M(R){return N("switch_level",{new_level:R})}return M}()}):null})]}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,f.Button,{tooltip:"Clear highlights",icon:"square-xmark",onClick:function(){function M(){return N("clear_highlighted_names")}return M}()})}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Location"})]}),A.filter(D).map(function(M,R){var O=w.includes(M.name);return(0,e.createComponentVNode)(2,f.Table.Row,{bold:!!M.is_command,children:[(0,e.createComponentVNode)(2,b.TableCell,{children:(0,e.createComponentVNode)(2,k.ButtonCheckbox,{checked:O,tooltip:"Mark on map",onClick:function(){function F(){return N(O?"remove_highlighted_name":"add_highlighted_name",{name:M.name})}return F}()})}),(0,e.createComponentVNode)(2,b.TableCell,{children:[M.name," (",M.assignment,")"]}),(0,e.createComponentVNode)(2,b.TableCell,{children:[(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:m(M,V.critThreshold),children:c(M,V.critThreshold)}),M.sensor_type>=2||V.ignoreSensors?(0,e.createComponentVNode)(2,f.Box,{inline:!0,ml:1,children:["(",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:y.COLORS.damageType.oxy,children:M.oxy}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:y.COLORS.damageType.toxin,children:M.tox}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:y.COLORS.damageType.burn,children:M.fire}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:y.COLORS.damageType.brute,children:M.brute}),")"]}):null]}),(0,e.createComponentVNode)(2,b.TableCell,{children:M.sensor_type===3||V.ignoreSensors?V.isAI||V.isObserver?(0,e.createComponentVNode)(2,f.Button,{fluid:!0,icon:"location-arrow",content:M.area+" ("+M.x+", "+M.y+")",onClick:function(){function F(){return N("track",{track:M.ref})}return F}()}):M.area+" ("+M.x+", "+M.y+")":(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:"grey",children:"Not Available"})})]},R)})]})]})},s=function(h,v){var p=h.color,N=i(h,g);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.NanoMap.Marker,Object.assign({},N,{children:(0,e.createVNode)(1,"span","highlighted-marker color-border-"+p)})))},d=function(h,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,S=V.highlightedNames;return(0,e.createComponentVNode)(2,f.Box,{height:"100vh",mb:"0.5rem",overflow:"hidden",children:(0,e.createComponentVNode)(2,f.NanoMap,{zoom:V.zoom,offsetX:V.offsetX,offsetY:V.offsetY,onZoom:function(){function I(L){return N("set_zoom",{zoom:L})}return I}(),onOffsetChange:function(){function I(L,w){return N("set_offset",{offset_x:w.offsetX,offset_y:w.offsetY})}return I}(),children:V.crewmembers.filter(function(I){return I.sensor_type===3||V.ignoreSensors}).map(function(I){var L=m(I,V.critThreshold),w=S.includes(I.name),A=function(){return V.isObserver?N("track",{track:I.ref}):null},x=function(){return N(w?"remove_highlighted_name":"add_highlighted_name",{name:I.name})},E=I.name+" ("+I.assignment+")";return w?(0,e.createComponentVNode)(2,s,{x:I.x,y:I.y,tooltip:E,color:L,onClick:A,onDblClick:x},I.ref):(0,e.createComponentVNode)(2,f.NanoMap.MarkerIcon,{x:I.x,y:I.y,icon:"circle",tooltip:E,color:L,onClick:A,onDblClick:x},I.ref)})})})}},63987:function(T,r,n){"use strict";r.__esModule=!0,r.Cryo=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],b=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],y=r.Cryo=function(){function g(i,c){return(0,e.createComponentVNode)(2,o.Window,{width:520,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,B)})})})}return g}(),B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.isOperating,d=u.hasOccupant,C=u.occupant,h=C===void 0?[]:C,v=u.cellTemperature,p=u.cellTemperatureStatus,N=u.isBeakerLoaded,V=u.cooldownProgress,S=u.auto_eject_healthy,I=u.auto_eject_dead;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Occupant",fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"user-slash",onClick:function(){function L(){return l("ejectOccupant")}return L}(),disabled:!d,children:"Eject"}),children:d?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Occupant",children:h.name||"Unknown"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:h.health,max:h.maxHealth,value:h.health/h.maxHealth,color:h.health>0?"good":"average",children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(h.health)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:b[h.stat][0],children:b[h.stat][1]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(h.bodyTemperature)})," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),f.map(function(L){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:L.label,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:h[L.type]/100,ranges:{bad:[.01,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(h[L.type])})})},L.id)})]}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Cell",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",onClick:function(){function L(){return l("ejectBeaker")}return L}(),disabled:!N,children:"Eject Beaker"}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",onClick:function(){function L(){return l(s?"switchOff":"switchOn")}return L}(),selected:s,children:s?"On":"Off"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",color:p,children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:v})," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:(0,e.createComponentVNode)(2,k)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dosage interval",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{average:[-1/0,99],good:[99,1/0]},color:!N&&"average",value:V,minValue:0,maxValue:100})}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto-eject healthy occupants",children:(0,e.createComponentVNode)(2,t.Button,{icon:S?"toggle-on":"toggle-off",selected:S,onClick:function(){function L(){return l(S?"auto_eject_healthy_off":"auto_eject_healthy_on")}return L}(),children:S?"On":"Off"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto-eject dead occupants",children:(0,e.createComponentVNode)(2,t.Button,{icon:I?"toggle-on":"toggle-off",selected:I,onClick:function(){function L(){return l(I?"auto_eject_dead_off":"auto_eject_dead_on")}return L}(),children:I?"On":"Off"})})]})})})],4)},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.isBeakerLoaded,d=u.beakerLabel,C=u.beakerVolume;return s?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:!d&&"average",children:[d||"No label",":"]}),(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:!C&&"bad",ml:1,children:C?(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:C,format:function(){function h(v){return Math.round(v)+" units remaining"}return h}()}):"Beaker is empty"})],4):(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"bad",children:"No beaker loaded"})}},86099:function(T,r,n){"use strict";r.__esModule=!0,r.CryopodConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=r.CryopodConsole=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.data,l=m.account_name,u=m.allow_items;return(0,e.createComponentVNode)(2,o.Window,{title:"Cryopod Console",width:400,height:480,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Hello, "+(l||"[REDACTED]")+"!",children:"This automated cryogenic freezing unit will safely store your corporeal form until your next assignment."}),(0,e.createComponentVNode)(2,y),!!u&&(0,e.createComponentVNode)(2,B)]})})}return k}(),y=function(g,i){var c=(0,a.useBackend)(i),m=c.data,l=m.frozen_crew;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Stored Crew",children:l.length?(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:l.map(function(u,s){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:u.name,children:u.rank},s)})})}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No stored crew!"})})},B=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.frozen_items,s=function(C){var h=C.toString();return h.startsWith("the ")&&(h=h.slice(4,h.length)),(0,f.toTitleCase)(h)};return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Stored Items",children:u.length?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:u.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:s(d.name),buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Drop",mr:1,onClick:function(){function C(){return m("one_item",{item:d.uid})}return C}()})},d)})})}),(0,e.createComponentVNode)(2,t.Button,{content:"Drop All Items",color:"red",onClick:function(){function d(){return m("all_items")}return d}()})],4):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No stored items!"})})}},12692:function(T,r,n){"use strict";r.__esModule=!0,r.DNAModifier=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=[["good","Alive"],["average","Critical"],["bad","DEAD"]],y=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],B=[5,10,20,30,50],k=r.DNAModifier=function(){function p(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.irradiating,A=L.dnaBlockSize,x=L.occupant;V.dnaBlockSize=A,V.isDNAInvalid=!x.isViableSubject||!x.uniqueIdentity||!x.structuralEnzymes;var E;return w&&(E=(0,e.createComponentVNode)(2,h,{duration:w})),(0,e.createComponentVNode)(2,o.Window,{width:660,height:775,children:[(0,e.createComponentVNode)(2,f.ComplexModal),E,(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,g)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,i)})]})})]})}return p}(),g=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.locked,A=L.hasOccupant,x=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{color:"label",inline:!0,mr:"0.5rem",children:"Door Lock:"}),(0,e.createComponentVNode)(2,t.Button,{disabled:!A,selected:w,icon:w?"toggle-on":"toggle-off",content:w?"Engaged":"Disengaged",onClick:function(){function E(){return I("toggleLock")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!A||w,icon:"user-slash",content:"Eject",onClick:function(){function E(){return I("ejectOccupant")}return E}()})],4),children:A?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:x.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:x.minHealth,max:x.maxHealth,value:x.health/x.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:b[x.stat][0],children:b[x.stat][1]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider)]})}),V.isDNAInvalid?(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-circle"}),"\xA0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Radiation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:"0",max:"100",value:x.radiationLevel/100,color:"average"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unique Enzymes",children:L.occupant.uniqueEnzymes?L.occupant.uniqueEnzymes:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-circle"}),"\xA0 Unknown"]})})]})],0):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"Cell unoccupied."})})},i=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.selectedMenuKey,A=L.hasOccupant,x=L.occupant;if(A){if(V.isDNAInvalid)return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No operation possible on this subject."]})})})}else return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant in DNA modifier."]})})});var E;return w==="ui"?E=(0,e.createFragment)([(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,l)],4):w==="se"?E=(0,e.createFragment)([(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,l)],4):w==="buffer"?E=(0,e.createComponentVNode)(2,u):w==="rejuvenators"&&(E=(0,e.createComponentVNode)(2,C)),(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:y.map(function(P,D){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:P[2],selected:w===P[0],onClick:function(){function M(){return I("selectMenuKey",{key:P[0]})}return M}(),children:P[1]},D)})}),E]})},c=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.selectedUIBlock,A=L.selectedUISubBlock,x=L.selectedUITarget,E=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Modify Unique Identifier",children:[(0,e.createComponentVNode)(2,v,{dnaString:E.uniqueIdentity,selectedBlock:w,selectedSubblock:A,blockSize:V.dnaBlockSize,action:"selectUIBlock"}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:15,stepPixelSize:"20",value:x,format:function(){function P(D){return D.toString(16).toUpperCase()}return P}(),ml:"0",onChange:function(){function P(D,M){return I("changeUITarget",{value:M})}return P}()})})}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Irradiate Block",mt:"0.5rem",onClick:function(){function P(){return I("pulseUIRadiation")}return P}()})]})},m=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.selectedSEBlock,A=L.selectedSESubBlock,x=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Modify Structural Enzymes",children:[(0,e.createComponentVNode)(2,v,{dnaString:x.structuralEnzymes,selectedBlock:w,selectedSubblock:A,blockSize:V.dnaBlockSize,action:"selectSEBlock"}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Irradiate Block",onClick:function(){function E(){return I("pulseSERadiation")}return E}()})]})},l=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.radiationIntensity,A=L.radiationDuration;return(0,e.createComponentVNode)(2,t.Section,{title:"Radiation Emitter",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Intensity",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:10,stepPixelSize:20,value:w,popUpPosition:"right",ml:"0",onChange:function(){function x(E,P){return I("radiationIntensity",{value:P})}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Duration",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:20,stepPixelSize:10,unit:"s",value:A,popUpPosition:"right",ml:"0",onChange:function(){function x(E,P){return I("radiationDuration",{value:P})}return x}()})})]}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Pulse Radiation",tooltip:"Mutates a random block of either the occupant's UI or SE.",tooltipPosition:"top-start",mt:"0.5rem",onClick:function(){function x(){return I("pulseRadiation")}return x}()})]})},u=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.buffers,A=w.map(function(x,E){return(0,e.createComponentVNode)(2,s,{id:E+1,name:"Buffer "+(E+1),buffer:x},E)});return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{height:"75%",mt:1,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Buffers",children:A})}),(0,e.createComponentVNode)(2,t.Stack.Item,{height:"25%",children:(0,e.createComponentVNode)(2,d)})]})},s=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=N.id,A=N.name,x=N.buffer,E=L.isInjectorReady,P=A+(x.data?" - "+x.label:"");return(0,e.createComponentVNode)(2,t.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.createComponentVNode)(2,t.Section,{title:P,mx:"0",lineHeight:"18px",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{disabled:!x.data,icon:"trash",content:"Clear",onClick:function(){function D(){return I("bufferOption",{option:"clear",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!x.data,icon:"pen",content:"Rename",onClick:function(){function D(){return I("bufferOption",{option:"changeLabel",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!x.data||!L.hasDisk,icon:"save",content:"Export",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-start",onClick:function(){function D(){return I("bufferOption",{option:"saveDisk",id:w})}return D}()})],4),children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Write",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject U.I",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"saveUI",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject U.I and U.E.",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"saveUIAndUE",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject S.E.",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"saveSE",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!L.hasDisk||!L.disk.data,icon:"arrow-circle-down",content:"From Disk",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"loadDisk",id:w})}return D}()})]}),!!x.data&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subject",children:x.owner||(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Unknown"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Type",children:[x.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!x.ue&&" and Unique Enzymes"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transfer to",children:[(0,e.createComponentVNode)(2,t.Button,{disabled:!E,icon:E?"syringe":"spinner",iconSpin:!E,content:"Injector",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"createInjector",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!E,icon:E?"syringe":"spinner",iconSpin:!E,content:"Block Injector",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"createInjector",id:w,block:1})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"user",content:"Subject",mb:"0",onClick:function(){function D(){return I("bufferOption",{option:"transfer",id:w})}return D}()})]})],4)]}),!x.data&&(0,e.createComponentVNode)(2,t.Box,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},d=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.hasDisk,A=L.disk;return(0,e.createComponentVNode)(2,t.Section,{title:"Data Disk",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{disabled:!w||!A.data,icon:"trash",content:"Wipe",onClick:function(){function x(){return I("wipeDisk")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!w,icon:"eject",content:"Eject",onClick:function(){function x(){return I("ejectDisk")}return x}()})],4),children:w?A.data?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Label",children:A.label?A.label:"No label"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subject",children:A.owner?A.owner:(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Unknown"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Type",children:[A.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!A.ue&&" and Unique Enzymes"]})]}):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"Disk is blank."}):(0,e.createComponentVNode)(2,t.Box,{color:"label",textAlign:"center",my:"1rem",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"save-o",size:"4"}),(0,e.createVNode)(1,"br"),"No disk inserted."]})})},C=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.isBeakerLoaded,A=L.beakerVolume,x=L.beakerLabel;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Rejuvenators and Beaker",buttons:(0,e.createComponentVNode)(2,t.Button,{disabled:!w,icon:"eject",content:"Eject",onClick:function(){function E(){return I("ejectBeaker")}return E}()}),children:w?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Inject",children:[B.map(function(E,P){return(0,e.createComponentVNode)(2,t.Button,{disabled:E>A,icon:"syringe",content:E,onClick:function(){function D(){return I("injectRejuvenators",{amount:E})}return D}()},P)}),(0,e.createComponentVNode)(2,t.Button,{disabled:A<=0,icon:"syringe",content:"All",onClick:function(){function E(){return I("injectRejuvenators",{amount:A})}return E}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:[(0,e.createComponentVNode)(2,t.Box,{mb:"0.5rem",children:x||"No label"}),A?(0,e.createComponentVNode)(2,t.Box,{color:"good",children:[A," unit",A===1?"":"s"," remaining"]}):(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Empty"})]})]}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"flask",size:5,color:"silver"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"h3",null,"No beaker loaded.",16)]})})})},h=function(N,V){return(0,e.createComponentVNode)(2,t.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"spinner",size:"5",spin:!0}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{color:"average",children:(0,e.createVNode)(1,"h1",null,[(0,e.createComponentVNode)(2,t.Icon,{name:"radiation"}),(0,e.createTextVNode)("\xA0Irradiating occupant\xA0"),(0,e.createComponentVNode)(2,t.Icon,{name:"radiation"})],4)}),(0,e.createComponentVNode)(2,t.Box,{color:"label",children:(0,e.createVNode)(1,"h3",null,[(0,e.createTextVNode)("For "),N.duration,(0,e.createTextVNode)(" second"),N.duration===1?"":"s"],0)})]})},v=function(N,V){for(var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=N.dnaString,A=N.selectedBlock,x=N.selectedSubblock,E=N.blockSize,P=N.action,D=w.split(""),M=0,R=[],O=function(){for(var U=F/E+1,z=[],$=function(){var J=G+1;z.push((0,e.createComponentVNode)(2,t.Button,{selected:A===U&&x===J,content:D[F+G],mb:"0",onClick:function(){function se(){return I(P,{block:U,subblock:J})}return se}()}))},G=0;Gd.spawnpoints?"red":"green",children:[d.total," total, versus ",d.spawnpoints," spawnpoints"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dispatch",children:(0,e.createComponentVNode)(2,t.Button,{width:10.5,textAlign:"center",icon:"ambulance",content:"Send ERT",onClick:function(){function N(){return s("dispatch_ert",{silent:v})}return N}()})})]})})})},g=function(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=d.ert_request_messages;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:C&&C.length?C.map(function(h){return(0,e.createComponentVNode)(2,t.Section,{title:h.time,buttons:(0,e.createComponentVNode)(2,t.Button,{content:h.sender_real_name,onClick:function(){function v(){return s("view_player_panel",{uid:h.sender_uid})}return v}(),tooltip:"View player panel"}),children:h.message},(0,f.decodeHtmlEntities)(h.time))}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"broadcast-tower",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No ERT requests."]})})})})},i=function(m,l){var u=(0,a.useBackend)(l),s=u.act,d=u.data,C=(0,a.useLocalState)(l,"text",""),h=C[0],v=C[1];return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter ERT denial reason here,\nMultiline input is accepted.",rows:19,fluid:!0,multiline:1,value:h,onChange:function(){function p(N,V){return v(V)}return p}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Deny ERT",fluid:!0,icon:"times",center:!0,mt:2,textAlign:"center",onClick:function(){function p(){return s("deny_ert",{reason:h})}return p}()})]})})}},90217:function(T,r,n){"use strict";r.__esModule=!0,r.EconomyManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.EconomyManager=function(){function B(k,g){return(0,e.createComponentVNode)(2,o.Window,{width:600,height:325,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,e.createComponentVNode)(2,y)})]})}return B}(),y=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.next_payroll_time;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.4rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"coins",verticalAlign:"middle",size:3,mr:"1rem"}),"Economy Manager"]}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.LabeledList,{label:"Pay Bonuses and Deductions",children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Global",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Global Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"global"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Department Accounts",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Department Account Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"department"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Department Members",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Department Members Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"department_members"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Single Accounts",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Crew Member Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"crew_member"})}return u}()})})]}),(0,e.createVNode)(1,"hr"),(0,e.createComponentVNode)(2,t.Box,{mb:.5,children:["Next Payroll in: ",l," Minutes"]}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",width:"auto",color:"bad",content:"Delay Payroll",onClick:function(){function u(){return c("delay_payroll")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{width:"auto",content:"Set Payroll Time",onClick:function(){function u(){return c("set_payroll")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",width:"auto",color:"good",content:"Accelerate Payroll",onClick:function(){function u(){return c("accelerate_payroll")}return u}()})]}),(0,e.createComponentVNode)(2,t.NoticeBox,{children:[(0,e.createVNode)(1,"b",null,"WARNING:",16)," You take full responsibility for unbalancing the economy with these buttons!"]})],4)}},82565:function(T,r,n){"use strict";r.__esModule=!0,r.Electropack=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.Electropack=function(){function y(B,k){var g=(0,t.useBackend)(k),i=g.act,c=g.data,m=c.power,l=c.code,u=c.frequency,s=c.minFrequency,d=c.maxFrequency;return(0,e.createComponentVNode)(2,f.Window,{width:360,height:135,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,o.Button,{icon:m?"power-off":"times",content:m?"On":"Off",selected:m,onClick:function(){function C(){return i("power")}return C}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Reset",onClick:function(){function C(){return i("reset",{reset:"freq"})}return C}()}),children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:s/10,maxValue:d/10,value:u/10,format:function(){function C(h){return(0,a.toFixed)(h,1)}return C}(),width:"80px",onChange:function(){function C(h,v){return i("freq",{freq:v})}return C}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Reset",onClick:function(){function C(){return i("reset",{reset:"code"})}return C}()}),children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:"80px",onChange:function(){function C(h,v){return i("code",{code:v})}return C}()})})]})})})})}return y}()},11243:function(T,r,n){"use strict";r.__esModule=!0,r.Emojipedia=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=r.Emojipedia=function(){function B(k,g){var i=(0,t.useBackend)(g),c=i.data,m=c.emoji_list,l=(0,t.useLocalState)(g,"searchText",""),u=l[0],s=l[1],d=m.filter(function(C){return C.name.toLowerCase().includes(u.toLowerCase())});return(0,e.createComponentVNode)(2,f.Window,{width:325,height:400,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Emojipedia v1.0.1",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by name",value:u,onInput:function(){function C(h,v){return s(v)}return C}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"Click on an emoji to copy its tag!",tooltipPosition:"bottom",icon:"circle-question"})],4),children:d.map(function(C){return(0,e.createComponentVNode)(2,o.Button,{m:1,color:"transparent",className:(0,a.classes)(["emoji16x16","emoji-"+C.name]),style:{transform:"scale(1.5)"},tooltip:C.name,onClick:function(){function h(){y(C.name)}return h}()},C.name)})})})})}return B}(),y=function(k){var g=document.createElement("input"),i=":"+k+":";g.value=i,document.body.appendChild(g),g.select(),document.execCommand("copy"),document.body.removeChild(g)}},36730:function(T,r,n){"use strict";r.__esModule=!0,r.EvolutionMenu=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(64795),y=n(88510),B=r.EvolutionMenu=function(){function i(c,m){return(0,e.createComponentVNode)(2,f.Window,{width:480,height:580,theme:"changeling",children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g)]})})})}return i}(),k=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.evo_points,C=s.can_respec;return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Evolution Points",height:5.5,children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,color:"label",children:"Points remaining:"}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,ml:2,bold:!0,color:"#1b945c",children:d}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Button,{ml:2.5,disabled:!C,content:"Readapt",icon:"sync",onClick:function(){function h(){return u("readapt")}return h}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"By transforming a humanoid into a husk, we gain the ability to readapt our chosen evolutions.",tooltipPosition:"bottom",icon:"question-circle"})]})]})})})},g=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.evo_points,C=s.ability_tabs,h=s.purchased_abilities,v=s.view_mode,p=(0,t.useLocalState)(m,"selectedTab",C[0]),N=p[0],V=p[1],S=(0,t.useLocalState)(m,"searchText",""),I=S[0],L=S[1],w=(0,t.useLocalState)(m,"ability_tabs",C[0].abilities),A=w[0],x=w[1],E=function(R,O){if(O===void 0&&(O=""),!R||R.length===0)return[];var F=(0,a.createSearch)(O,function(_){return _.name+"|"+_.description});return(0,b.flow)([(0,y.filter)(function(_){return _==null?void 0:_.name}),(0,y.filter)(F),(0,y.sortBy)(function(_){return _==null?void 0:_.name})])(R)},P=function(R){if(L(R),R==="")return x(N.abilities);x(E(C.map(function(O){return O.abilities}).flat(),R))},D=function(R){V(R),x(R.abilities),L("")};return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Abilities",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Input,{width:"200px",placeholder:"Search Abilities",onInput:function(){function M(R,O){P(O)}return M}(),value:I}),(0,e.createComponentVNode)(2,o.Button,{icon:v?"square-o":"check-square-o",selected:!v,content:"Compact",onClick:function(){function M(){return u("set_view_mode",{mode:0})}return M}()}),(0,e.createComponentVNode)(2,o.Button,{icon:v?"check-square-o":"square-o",selected:v,content:"Expanded",onClick:function(){function M(){return u("set_view_mode",{mode:1})}return M}()})],4),children:[(0,e.createComponentVNode)(2,o.Tabs,{children:C.map(function(M){return(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:I===""&&N===M,onClick:function(){function R(){D(M)}return R}(),children:M.category},M)})}),A.map(function(M,R){return(0,e.createComponentVNode)(2,o.Box,{p:.5,mx:-1,className:"candystripe",children:[(0,e.createComponentVNode)(2,o.Stack,{align:"center",children:[(0,e.createComponentVNode)(2,o.Stack.Item,{ml:.5,color:"#dedede",children:M.name}),h.includes(M.power_path)&&(0,e.createComponentVNode)(2,o.Stack.Item,{ml:2,bold:!0,color:"#1b945c",children:"(Purchased)"}),(0,e.createComponentVNode)(2,o.Stack.Item,{mr:3,textAlign:"right",grow:1,children:[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:["Cost:"," "]}),(0,e.createComponentVNode)(2,o.Box,{as:"span",bold:!0,color:"#1b945c",children:M.cost})]}),(0,e.createComponentVNode)(2,o.Stack.Item,{textAlign:"right",children:(0,e.createComponentVNode)(2,o.Button,{mr:.5,disabled:M.cost>d||h.includes(M.power_path),content:"Evolve",onClick:function(){function O(){return u("purchase",{power_path:M.power_path})}return O}()})})]}),!!v&&(0,e.createComponentVNode)(2,o.Stack,{color:"#8a8a8a",my:1,ml:1.5,width:"95%",children:M.description+" "+M.helptext})]},R)})]})})}},17370:function(T,r,n){"use strict";r.__esModule=!0,r.ExosuitFabricator=void 0;var e=n(89005),a=n(35840),t=n(25328),o=n(72253),f=n(36036),b=n(73379),y=n(98595),B=["id","amount","lineDisplay","onClick"];function k(p,N){if(p==null)return{};var V={};for(var S in p)if({}.hasOwnProperty.call(p,S)){if(N.includes(S))continue;V[S]=p[S]}return V}var g=2e3,i={bananium:"clown",tranquillite:"mime"},c=r.ExosuitFabricator=function(){function p(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.building,A=L.linked;return A?(0,e.createComponentVNode)(2,y.Window,{width:950,height:625,children:(0,e.createComponentVNode)(2,y.Window.Content,{className:"Exofab",children:[(0,e.createComponentVNode)(2,v),(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,l)}),w&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,u)})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m)}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,s)})]})})]})]})}):(0,e.createComponentVNode)(2,h)}return p}(),m=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.materials,A=L.capacity,x=Object.values(w).reduce(function(E,P){return E+P},0);return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:"Materials",className:"Exofab__materials",buttons:(0,e.createComponentVNode)(2,f.Box,{color:"label",mt:"0.25rem",children:[(x/A*100).toPrecision(3),"% full"]}),children:["metal","glass","silver","gold","uranium","titanium","plasma","diamond","bluespace","bananium","tranquillite","plastic"].map(function(E){return(0,e.createComponentVNode)(2,d,{mt:-2,id:E,bold:E==="metal"||E==="glass",onClick:function(){function P(){return I("withdraw",{id:E})}return P}()},E)})})},l=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.curCategory,A=L.categories,x=L.designs,E=L.syncing,P=(0,o.useLocalState)(V,"searchText",""),D=P[0],M=P[1],R=(0,t.createSearch)(D,function(z){return z.name}),O=x.filter(R),F=(0,o.useLocalState)(V,"levelsModal",!1),_=F[0],U=F[1];return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,className:"Exofab__designs",title:(0,e.createComponentVNode)(2,f.Dropdown,{width:"19rem",className:"Exofab__dropdown",selected:w,options:A,onSelected:function(){function z($){return I("category",{cat:$})}return z}()}),buttons:(0,e.createComponentVNode)(2,f.Box,{mt:"2px",children:[(0,e.createComponentVNode)(2,f.Button,{icon:"plus",content:"Queue all",onClick:function(){function z(){return I("queueall")}return z}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"info",content:"Show current tech levels",onClick:function(){function z(){return U(!0)}return z}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"unlink",color:"red",tooltip:"Disconnect from R&D network",onClick:function(){function z(){return I("unlink")}return z}()})]}),children:[(0,e.createComponentVNode)(2,f.Input,{placeholder:"Search by name...",mb:"0.5rem",width:"100%",onInput:function(){function z($,G){return M(G)}return z}()}),O.map(function(z){return(0,e.createComponentVNode)(2,C,{design:z},z.id)}),O.length===0&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No designs found."})]})},u=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.building,A=L.buildStart,x=L.buildEnd,E=L.worldTime;return(0,e.createComponentVNode)(2,f.Section,{className:"Exofab__building",stretchContents:!0,children:(0,e.createComponentVNode)(2,f.ProgressBar.Countdown,{start:A,current:E,end:x,children:(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Icon,{name:"cog",spin:!0})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:["Building ",w,"\xA0(",(0,e.createComponentVNode)(2,b.Countdown,{current:E,timeLeft:x-E,format:function(){function P(D,M){return M.substr(3)}return P}()}),")"]})]})})})},s=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.queue,A=L.processingQueue,x=Object.entries(L.queueDeficit).filter(function(P){return P[1]<0}),E=w.reduce(function(P,D){return P+D.time},0);return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,className:"Exofab__queue",title:"Queue",buttons:(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,f.Button,{selected:A,icon:A?"toggle-on":"toggle-off",content:"Process",onClick:function(){function P(){return I("process")}return P}()}),(0,e.createComponentVNode)(2,f.Button,{disabled:w.length===0,icon:"eraser",content:"Clear",onClick:function(){function P(){return I("unqueueall")}return P}()})]}),children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:w.length===0?(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"The queue is empty."}):(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--queue",grow:!0,overflow:"auto",children:w.map(function(P,D){return(0,e.createComponentVNode)(2,f.Box,{color:P.notEnough&&"bad",children:[D+1,". ",P.name,D>0&&(0,e.createComponentVNode)(2,f.Button,{icon:"arrow-up",onClick:function(){function M(){return I("queueswap",{from:D+1,to:D})}return M}()}),D0&&(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--time",children:[(0,e.createComponentVNode)(2,f.Divider),"Processing time:",(0,e.createComponentVNode)(2,f.Icon,{name:"clock",mx:"0.5rem"}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,bold:!0,children:new Date(E/10*1e3).toISOString().substr(14,5)})]}),Object.keys(x).length>0&&(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--deficit",shrink:"0",children:[(0,e.createComponentVNode)(2,f.Divider),"Lacking materials to complete:",x.map(function(P){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,d,{id:P[0],amount:-P[1],lineDisplay:!0})},P[0])})]})],0)})})},d=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=N.id,A=N.amount,x=N.lineDisplay,E=N.onClick,P=k(N,B),D=L.materials[w]||0,M=A||D;if(!(M<=0&&!(w==="metal"||w==="glass"))){var R=A&&A>D;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.Stack,Object.assign({align:"center",className:(0,a.classes)(["Exofab__material",x&&"Exofab__material--line"])},P,{children:x?(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{className:(0,a.classes)(["materials32x32",w])}),(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__material--amount",color:R&&"bad",ml:0,mr:1,children:M.toLocaleString("en-US")})],4):(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{basis:"content",children:(0,e.createComponentVNode)(2,f.Button,{width:"85%",color:"transparent",onClick:E,children:(0,e.createComponentVNode)(2,f.Box,{mt:1,className:(0,a.classes)(["materials32x32",w])})})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:"1",children:[(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__material--name",children:w}),(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__material--amount",children:[M.toLocaleString("en-US")," cm\xB3 (",Math.round(M/g*10)/10," ","sheets)"]})]})],4)})))}},C=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=N.design;return(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__design",children:[(0,e.createComponentVNode)(2,f.Button,{disabled:w.notEnough||L.building,icon:"cog",content:w.name,onClick:function(){function A(){return I("build",{id:w.id})}return A}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"plus-circle",onClick:function(){function A(){return I("queue",{id:w.id})}return A}()}),(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__design--cost",children:Object.entries(w.cost).map(function(A){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,d,{id:A[0],amount:A[1],lineDisplay:!0})},A[0])})}),(0,e.createComponentVNode)(2,f.Stack,{className:"Exofab__design--time",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"clock"}),w.time>0?(0,e.createFragment)([w.time/10,(0,e.createTextVNode)(" seconds")],0):"Instant"]})})]})},h=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.controllers;return(0,e.createComponentVNode)(2,y.Window,{children:(0,e.createComponentVNode)(2,y.Window.Content,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Link"})]}),w.map(function(A){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:A.addr}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:A.net_id}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,f.Button,{content:"Link",icon:"link",onClick:function(){function x(){return I("linktonetworkcontroller",{target_controller:A.addr})}return x}()})})]},A.addr)})]})})})})},v=function(N,V){var S=(0,o.useBackend)(V),I=S.act,L=S.data,w=L.tech_levels,A=(0,o.useLocalState)(V,"levelsModal",!1),x=A[0],E=A[1];return x?(0,e.createComponentVNode)(2,f.Modal,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:window.innerHeight*.75+"px",mx:"auto",children:(0,e.createComponentVNode)(2,f.Section,{title:"Current tech levels",buttons:(0,e.createComponentVNode)(2,f.Button,{content:"Close",onClick:function(){function P(){E(!1)}return P}()}),children:(0,e.createComponentVNode)(2,f.LabeledList,{children:w.map(function(P){var D=P.name,M=P.level;return(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:D,children:M},D)})})})}):null}},59128:function(T,r,n){"use strict";r.__esModule=!0,r.ExperimentConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=new Map([[0,{text:"Conscious",color:"good"}],[1,{text:"Unconscious",color:"average"}],[2,{text:"Deceased",color:"bad"}]]),b=new Map([[0,{label:"Probe",icon:"thermometer"}],[1,{label:"Dissect",icon:"brain"}],[2,{label:"Analyze",icon:"search"}]]),y=r.ExperimentConsole=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.open,u=m.feedback,s=m.occupant,d=m.occupant_name,C=m.occupant_status,h=function(){function p(){if(!s)return(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No specimen detected."});var N=function(){function S(){return f.get(C)}return S}(),V=N();return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:d}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:V.color,children:V.text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Experiments",children:[0,1,2].map(function(S){return(0,e.createComponentVNode)(2,t.Button,{icon:b.get(S).icon,content:b.get(S).label,onClick:function(){function I(){return c("experiment",{experiment_type:S})}return I}()},S)})})]})}return p}(),v=h();return(0,e.createComponentVNode)(2,o.Window,{theme:"abductor",width:350,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:u})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Scanner",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){function p(){return c("door")}return p}()}),children:v})]})})}return B}()},97086:function(T,r,n){"use strict";r.__esModule=!0,r.ExternalAirlockController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=0,b=1013,y=function(g){var i="good",c=80,m=95,l=110,u=120;return gl?i="average":g>u&&(i="bad"),i},B=r.ExternalAirlockController=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.chamber_pressure,s=l.exterior_status,d=l.interior_status,C=l.processing;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:205,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Information",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Chamber Pressure",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:y(u),value:u,minValue:f,maxValue:b,children:[u," kPa"]})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Actions",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Abort",icon:"ban",color:"red",disabled:!C,onClick:function(){function h(){return m("abort")}return h}()}),children:[(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:C,onClick:function(){function h(){return m("cycle_ext")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Cycle to Interior",icon:"arrow-circle-right",disabled:C,onClick:function(){function h(){return m("cycle_int")}return h}()})]}),(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Force Exterior Door",icon:"exclamation-triangle",color:d==="open"?"red":C?"yellow":null,onClick:function(){function h(){return m("force_ext")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Force Interior Door",icon:"exclamation-triangle",color:d==="open"?"red":C?"yellow":null,onClick:function(){function h(){return m("force_int")}return h}()})]})]})]})})}return k}()},96142:function(T,r,n){"use strict";r.__esModule=!0,r.FaxMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.FaxMachine=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;return(0,e.createComponentVNode)(2,o.Window,{width:540,height:295,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Card",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.scan_name?"eject":"id-card",selected:i.scan_name,content:i.scan_name?i.scan_name:"-----",tooltip:i.scan_name?"Eject ID":"Insert ID",onClick:function(){function c(){return g("scan")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Authorize",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.authenticated?"sign-out-alt":"id-card",selected:i.authenticated,disabled:i.nologin,content:i.realauth?"Log Out":"Log In",onClick:function(){function c(){return g("auth")}return c}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Fax Menu",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network",children:i.network}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Document",children:[(0,e.createComponentVNode)(2,t.Button,{icon:i.paper?"eject":"paperclip",disabled:!i.authenticated&&!i.paper,content:i.paper?i.paper:"-----",onClick:function(){function c(){return g("paper")}return c}()}),!!i.paper&&(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){function c(){return g("rename")}return c}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sending To",children:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:i.destination?i.destination:"-----",disabled:!i.authenticated,onClick:function(){function c(){return g("dept")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Action",children:(0,e.createComponentVNode)(2,t.Button,{icon:"envelope",content:i.sendError?i.sendError:"Send",disabled:!i.paper||!i.destination||!i.authenticated||i.sendError,onClick:function(){function c(){return g("send")}return c}()})})]})})]})})}return b}()},74123:function(T,r,n){"use strict";r.__esModule=!0,r.FilingCabinet=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.FilingCabinet=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=k.config,m=i.contents,l=c.title;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:300,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Contents",children:[!m&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"folder-open",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"The ",l," is empty."]})}),!!m&&m.slice().map(function(u){return(0,e.createComponentVNode)(2,t.Stack,{mt:.5,className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"80%",children:u.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Retrieve",onClick:function(){function s(){return g("retrieve",{index:u.index})}return s}()})})]},u)})]})})})})}return b}()},83767:function(T,r,n){"use strict";r.__esModule=!0,r.FloorPainter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=k.icon_state,u=k.direction,s=k.isSelected,d=k.onSelect;return(0,e.createComponentVNode)(2,t.DmIcon,{icon:m.icon,icon_state:l,direction:u,onClick:d,style:{"border-style":s&&"solid"||"none","border-width":"2px","border-color":"orange",padding:s&&"0px"||"2px"}})},b={NORTH:1,SOUTH:2,EAST:4,WEST:8},y=r.FloorPainter=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.availableStyles,u=m.selectedStyle,s=m.selectedDir;return(0,e.createComponentVNode)(2,o.Window,{width:405,height:475,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Decal setup",children:[(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-left",onClick:function(){function d(){return c("cycle_style",{offset:-1})}return d}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Dropdown,{options:l,selected:u,width:"150px",nochevron:!0,onSelected:function(){function d(C){return c("select_style",{style:C})}return d}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",onClick:function(){function d(){return c("cycle_style",{offset:1})}return d}()})})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"5px",mb:"5px",children:(0,e.createComponentVNode)(2,t.Flex,{overflowY:"auto",maxHeight:"239px",wrap:"wrap",children:l.map(function(d){return(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,f,{icon_state:d,isSelected:u===d,onSelect:function(){function C(){return c("select_style",{style:d})}return C}()})},d)})})}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Direction",children:(0,e.createComponentVNode)(2,t.Table,{style:{display:"inline"},children:[b.NORTH,null,b.SOUTH].map(function(d){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[d+b.WEST,d,d+b.EAST].map(function(C){return(0,e.createComponentVNode)(2,t.Table.Cell,{style:{"vertical-align":"middle","text-align":"center"},children:C===null?(0,e.createComponentVNode)(2,t.Icon,{name:"arrows-alt",size:3}):(0,e.createComponentVNode)(2,f,{icon_state:u,direction:C,isSelected:C===s,onSelect:function(){function h(){return c("select_direction",{direction:C})}return h}()})},C)})},d)})})})})]})})})}return B}()},53424:function(T,r,n){"use strict";r.__esModule=!0,r.GPS=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=function(l){return l?"("+l.join(", ")+")":"ERROR"},y=function(l,u){if(!(!l||!u)){if(l[2]!==u[2])return null;var s=Math.atan2(u[1]-l[1],u[0]-l[0]),d=Math.sqrt(Math.pow(u[1]-l[1],2)+Math.pow(u[0]-l[0],2));return{angle:(0,a.rad2deg)(s),distance:d}}},B=r.GPS=function(){function m(l,u){var s=(0,t.useBackend)(u),d=s.data,C=d.emped,h=d.active,v=d.area,p=d.position,N=d.saved;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:C?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,k,{emp:!0})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,g)}),h?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,i,{area:v,position:p})}),N&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,i,{title:"Saved Position",position:N})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,c,{height:"100%"})})],0):(0,e.createComponentVNode)(2,k)],0)})})})}return m}(),k=function(l,u){var s=l.emp;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Box,{width:"100%",height:"100%",color:"label",textAlign:"center",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon,{name:s?"ban":"power-off",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),s?"ERROR: Device temporarily lost signal.":"Device is disabled."]})})})})},g=function(l,u){var s=(0,t.useBackend)(u),d=s.act,C=s.data,h=C.active,v=C.tag,p=C.same_z,N=(0,t.useLocalState)(u,"newTag",v),V=N[0],S=N[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Settings",buttons:(0,e.createComponentVNode)(2,o.Button,{selected:h,icon:h?"toggle-on":"toggle-off",content:h?"On":"Off",onClick:function(){function I(){return d("toggle")}return I}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Tag",children:[(0,e.createComponentVNode)(2,o.Input,{width:"5rem",value:v,onEnter:function(){function I(){return d("tag",{newtag:V})}return I}(),onInput:function(){function I(L,w){return S(w)}return I}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:v===V,width:"20px",mb:"0",ml:"0.25rem",onClick:function(){function I(){return d("tag",{newtag:V})}return I}(),children:(0,e.createComponentVNode)(2,o.Icon,{name:"pen"})})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Range",children:(0,e.createComponentVNode)(2,o.Button,{selected:!p,icon:p?"compress":"expand",content:p?"Local Sector":"Global",onClick:function(){function I(){return d("same_z")}return I}()})})]})})},i=function(l,u){var s=l.title,d=l.area,C=l.position;return(0,e.createComponentVNode)(2,o.Section,{title:s||"Position",children:(0,e.createComponentVNode)(2,o.Box,{fontSize:"1.5rem",children:[d&&(0,e.createFragment)([d,(0,e.createVNode)(1,"br")],0),b(C)]})})},c=function(l,u){var s=(0,t.useBackend)(u),d=s.data,C=d.position,h=d.signals;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,title:"Signals"},l,{children:(0,e.createComponentVNode)(2,o.Table,{children:h.map(function(v){return Object.assign({},v,y(C,v.position))}).map(function(v,p){return(0,e.createComponentVNode)(2,o.Table.Row,{backgroundColor:p%2===0&&"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,o.Table.Cell,{width:"30%",verticalAlign:"middle",color:"label",p:"0.25rem",bold:!0,children:v.tag}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",color:"grey",children:v.area}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",collapsing:!0,children:v.distance!==void 0&&(0,e.createComponentVNode)(2,o.Box,{opacity:Math.max(1-Math.min(v.distance,100)/100,.5),children:[(0,e.createComponentVNode)(2,o.Icon,{name:v.distance>0?"arrow-right":"circle",rotation:-v.angle}),"\xA0",Math.floor(v.distance)+"m"]})}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",pr:"0.25rem",collapsing:!0,children:b(v.position)})]},p)})})})))}},89124:function(T,r,n){"use strict";r.__esModule=!0,r.GeneModder=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(3939),f=n(98595),b=r.GeneModder=function(){function u(s,d){var C=(0,a.useBackend)(d),h=C.data,v=h.has_seed;return(0,e.createComponentVNode)(2,f.Window,{width:950,height:650,children:[(0,e.createVNode)(1,"div","GeneModder__left",(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,l,{scrollable:!0})}),2),(0,e.createVNode)(1,"div","GeneModder__right",(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,o.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),v===0?(0,e.createComponentVNode)(2,B):(0,e.createComponentVNode)(2,y)]})}),2)]})}return u}(),y=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.disk;return(0,e.createComponentVNode)(2,t.Section,{title:"Genes",fill:!0,scrollable:!0,children:[(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,c)]})},B=function(s,d){return(0,e.createComponentVNode)(2,t.Section,{fill:!0,height:"85%",children:(0,e.createComponentVNode)(2,t.Stack,{height:"100%",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"green",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"leaf",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),"The plant DNA manipulator is missing a seed."]})})})},k=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.has_seed,N=v.seed,V=v.has_disk,S=v.disk,I,L;return p?I=(0,e.createComponentVNode)(2,t.Stack.Item,{mb:"-6px",mt:"-4px",children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+N.image,style:{"vertical-align":"middle",width:"32px",margin:"-1px","margin-left":"-11px"}}),(0,e.createComponentVNode)(2,t.Button,{content:N.name,onClick:function(){function w(){return h("eject_seed")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{ml:"3px",icon:"pen",tooltip:"Name Variant",onClick:function(){function w(){return h("variant_name")}return w}()})]}):I=(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:3.3,content:"None",onClick:function(){function w(){return h("eject_seed")}return w}()})}),V?L=S.name:L="None",(0,e.createComponentVNode)(2,t.Section,{title:"Storage",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Plant Sample",children:I}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Disk",children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:3.3,content:L,tooltip:"Select Empty Disk",onClick:function(){function w(){return h("select_empty_disk")}return w}()})})})]})})},g=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.disk,N=v.core_genes;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Core Genes",open:!0,children:[N.map(function(V){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",ml:"2px",children:V.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract",disabled:!(p!=null&&p.can_extract),icon:"save",onClick:function(){function S(){return h("extract",{id:V.id})}return S}()})})]},V)})," ",(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract All",disabled:!(p!=null&&p.can_extract),icon:"save",onClick:function(){function V(){return h("bulk_extract_core")}return V}()})})})]},"Core Genes")},i=function(s,d){var C=(0,a.useBackend)(d),h=C.data,v=h.reagent_genes,p=h.has_reagent;return(0,e.createComponentVNode)(2,m,{title:"Reagent Genes",gene_set:v,do_we_show:p})},c=function(s,d){var C=(0,a.useBackend)(d),h=C.data,v=h.trait_genes,p=h.has_trait;return(0,e.createComponentVNode)(2,m,{title:"Trait Genes",gene_set:v,do_we_show:p})},m=function(s,d){var C=s.title,h=s.gene_set,v=s.do_we_show,p=(0,a.useBackend)(d),N=p.act,V=p.data,S=V.disk;return(0,e.createComponentVNode)(2,t.Collapsible,{title:C,open:!0,children:v?h.map(function(I){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",ml:"2px",children:I.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract",disabled:!(S!=null&&S.can_extract),icon:"save",onClick:function(){function L(){return N("extract",{id:I.id})}return L}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove",icon:"times",onClick:function(){function L(){return N("remove",{id:I.id})}return L}()})})]},I)}):(0,e.createComponentVNode)(2,t.Stack.Item,{children:"No Genes Detected"})},C)},l=function(s,d){var C=s.title,h=s.gene_set,v=s.do_we_show,p=(0,a.useBackend)(d),N=p.act,V=p.data,S=V.has_seed,I=V.empty_disks,L=V.stat_disks,w=V.trait_disks,A=V.reagent_disks;return(0,e.createComponentVNode)(2,t.Section,{title:"Disks",children:[(0,e.createVNode)(1,"br"),"Empty Disks: ",I,(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{width:12,icon:"arrow-down",tooltip:"Eject an Empty disk",content:"Eject Empty Disk",onClick:function(){function x(){return N("eject_empty_disk")}return x}()}),(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Stats",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[L.slice().sort(function(x,E){return x.display_name.localeCompare(E.display_name)}).map(function(x){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:x.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[x.stat==="All"?(0,e.createComponentVNode)(2,t.Button,{content:"Replace All",tooltip:"Write disk stats to seed",disabled:!(x!=null&&x.ready)||!S,icon:"arrow-circle-down",onClick:function(){function E(){return N("bulk_replace_core",{index:x.index})}return E}()}):(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",tooltip:"Write disk stat to seed",disabled:!x||!S,content:"Replace",onClick:function(){function E(){return N("replace",{index:x.index,stat:x.stat})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("select",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("eject_disk",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:x.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function E(){return N("set_read_only",{index:x.index,read_only:x.read_only})}return E}()})]})]},x)}),(0,e.createComponentVNode)(2,t.Button)]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Traits",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[w.slice().sort(function(x,E){return x.display_name.localeCompare(E.display_name)}).map(function(x){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:x.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",disabled:!x||!x.can_insert,tooltip:"Add disk trait to seed",content:"Insert",onClick:function(){function E(){return N("insert",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("select",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("eject_disk",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:x.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function E(){return N("set_read_only",{index:x.index,read_only:x.read_only})}return E}()})]})]},x)}),(0,e.createComponentVNode)(2,t.Button)]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Reagents",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[A.slice().sort(function(x,E){return x.display_name.localeCompare(E.display_name)}).map(function(x){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:x.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",disabled:!x||!x.can_insert,tooltip:"Add disk reagent to seed",content:"Insert",onClick:function(){function E(){return N("insert",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("select",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function E(){return N("eject_disk",{index:x.index})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:x.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function E(){return N("set_read_only",{index:x.index,read_only:x.read_only})}return E}()})]})]},x)}),(0,e.createComponentVNode)(2,t.Button)]})})]})]})}},73053:function(T,r,n){"use strict";r.__esModule=!0,r.GenericCrewManifest=void 0;var e=n(89005),a=n(36036),t=n(98595),o=n(41874),f=r.GenericCrewManifest=function(){function b(y,B){return(0,e.createComponentVNode)(2,t.Window,{theme:"nologo",width:588,height:510,children:(0,e.createComponentVNode)(2,t.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,a.Section,{noTopPadding:!0,children:(0,e.createComponentVNode)(2,o.CrewManifest)})})})}return b}()},42914:function(T,r,n){"use strict";r.__esModule=!0,r.GhostHudPanel=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GhostHudPanel=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.data,c=i.security,m=i.medical,l=i.diagnostic,u=i.pressure,s=i.radioactivity,d=i.ahud;return(0,e.createComponentVNode)(2,o.Window,{width:250,height:217,theme:"nologo",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,b,{label:"Medical",type:"medical",is_active:m}),(0,e.createComponentVNode)(2,b,{label:"Security",type:"security",is_active:c}),(0,e.createComponentVNode)(2,b,{label:"Diagnostic",type:"diagnostic",is_active:l}),(0,e.createComponentVNode)(2,b,{label:"Pressure",type:"pressure",is_active:u}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,b,{label:"Radioactivity",type:"radioactivity",is_active:s,act_on:"rads_on",act_off:"rads_off"}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,b,{label:"Antag HUD",is_active:d,act_on:"ahud_on",act_off:"ahud_off"})]})})})}return y}(),b=function(B,k){var g=(0,a.useBackend)(k),i=g.act,c=B.label,m=B.type,l=m===void 0?null:m,u=B.is_active,s=B.act_on,d=s===void 0?"hud_on":s,C=B.act_off,h=C===void 0?"hud_off":C;return(0,e.createComponentVNode)(2,t.Flex,{pt:.3,color:"label",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{pl:.5,align:"center",width:"80%",children:c}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Button,{mr:.6,content:u?"On":"Off",icon:u?"toggle-on":"toggle-off",selected:u,onClick:function(){function v(){return i(u?h:d,{hud_type:l})}return v}()})})]})}},25825:function(T,r,n){"use strict";r.__esModule=!0,r.GlandDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GlandDispenser=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.glands,m=c===void 0?[]:c;return(0,e.createComponentVNode)(2,o.Window,{width:300,height:338,theme:"abductor",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:m.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{width:"60px",height:"60px",m:.75,textAlign:"center",fontSize:"17px",lineHeight:"55px",icon:"eject",backgroundColor:l.color,content:l.amount||"0",disabled:!l.amount,onClick:function(){function u(){return g("dispense",{gland_id:l.id})}return u}()},l.id)})})})})}return b}()},10270:function(T,r,n){"use strict";r.__esModule=!0,r.GravityGen=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GravityGen=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.charging_state,m=i.charge_count,l=i.breaker,u=i.ext_power,s=function(){function C(h){return h>0?(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"average",children:["[ ",h===1?"Charging":"Discharging"," ]"]}):(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:u?"good":"bad",children:["[ ",u?"Powered":"Unpowered"," ]"]})}return C}(),d=function(){function C(h){if(h>0)return(0,e.createComponentVNode)(2,t.NoticeBox,{danger:!0,p:1.5,children:[(0,e.createVNode)(1,"b",null,"WARNING:",16)," Radiation Detected!"]})}return C}();return(0,e.createComponentVNode)(2,o.Window,{width:350,height:170,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[d(c),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Generator Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:l?"power-off":"times",content:l?"Online":"Offline",color:l?"green":"red",px:1.5,onClick:function(){function C(){return g("breaker")}return C}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Status",color:u?"good":"bad",children:s(c)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gravity Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:m/100,ranges:{good:[.9,1/0],average:[.5,.9],bad:[-1/0,.5]}})})]})})]})})})}return b}()},48657:function(T,r,n){"use strict";r.__esModule=!0,r.GuestPass=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49148),b=r.GuestPass=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:690,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"id-card",selected:!c.showlogs,onClick:function(){function m(){return i("mode",{mode:0})}return m}(),children:"Issue Pass"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"scroll",selected:c.showlogs,onClick:function(){function m(){return i("mode",{mode:1})}return m}(),children:["Records (",c.issue_log.length,")"]})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Card",children:(0,e.createComponentVNode)(2,t.Button,{icon:c.scan_name?"eject":"id-card",selected:c.scan_name,content:c.scan_name?c.scan_name:"-----",tooltip:c.scan_name?"Eject ID":"Insert ID",onClick:function(){function m(){return i("scan")}return m}()})})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:!c.showlogs&&(0,e.createComponentVNode)(2,t.Section,{title:"Issue Guest Pass",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Issue To",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.giv_name?c.giv_name:"-----",disabled:!c.scan_name,onClick:function(){function m(){return i("giv_name")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reason",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.reason?c.reason:"-----",disabled:!c.scan_name,onClick:function(){function m(){return i("reason")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Duration",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.duration?c.duration:"-----",disabled:!c.scan_name,onClick:function(){function m(){return i("duration")}return m}()})})]})})}),!c.showlogs&&(c.scan_name?(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.AccessList,{sectionButtons:(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",content:c.printmsg,disabled:!c.canprint,onClick:function(){function m(){return i("issue")}return m}()}),grantableList:c.grantableList,accesses:c.regions,selectedList:c.selectedAccess,accessMod:function(){function m(l){return i("access",{access:l})}return m}(),grantAll:function(){function m(){return i("grant_all")}return m}(),denyAll:function(){function m(){return i("clear_all")}return m}(),grantDep:function(){function m(l){return i("grant_region",{region:l})}return m}(),denyDep:function(){function m(l){return i("deny_region",{region:l})}return m}()})}):(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,fontSize:1.5,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"id-card",size:5,color:"gray",mb:5}),(0,e.createVNode)(1,"br"),"Please, insert ID Card"]})})})})),!!c.showlogs&&(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,m:0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Issuance Log",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print",disabled:!c.scan_name,onClick:function(){function m(){return i("print")}return m}()}),children:!!c.issue_log.length&&(0,e.createComponentVNode)(2,t.LabeledList,{children:c.issue_log.map(function(m,l){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:m},l)})})||(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,fontSize:1.5,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No logs"]})})})})]})})})}return y}()},67834:function(T,r,n){"use strict";r.__esModule=!0,r.HandheldChemDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[1,5,10,20,30,50],b=null,y=r.HandheldChemDispenser=function(){function g(i,c){return(0,e.createComponentVNode)(2,o.Window,{width:390,height:430,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,k)]})})})}return g}(),B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.amount,d=u.energy,C=u.maxEnergy,h=u.mode;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:d,minValue:0,maxValue:C,ranges:{good:[C*.5,1/0],average:[C*.25,C*.5],bad:[-1/0,C*.25]},children:[d," / ",C," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Amount",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{children:f.map(function(v,p){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"15%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"cog",selected:s===v,content:v,onClick:function(){function N(){return l("amount",{amount:v})}return N}()})},p)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mode",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{justify:"space-between",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:h==="dispense",content:"Dispense",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"dispense"})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:h==="remove",content:"Remove",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"remove"})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:h==="isolate",content:"Isolate",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"isolate"})}return v}()})]})})]})})})},k=function(i,c){for(var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.chemicals,d=s===void 0?[]:s,C=u.current_reagent,h=[],v=0;v<(d.length+1)%3;v++)h.push(!0);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,height:"18%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:u.glass?"Drink Selector":"Chemical Selector",children:[d.map(function(p,N){return(0,e.createComponentVNode)(2,t.Button,{width:"32%",icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",selected:C===p.id,content:p.title,style:{"margin-left":"2px"},onClick:function(){function V(){return l("dispense",{reagent:p.id})}return V}()},N)}),h.map(function(p,N){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:"1",basis:"25%"},N)})]})})}},46098:function(T,r,n){"use strict";r.__esModule=!0,r.HealthSensor=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.HealthSensor=function(){function B(k,g){var i=(0,t.useBackend)(g),c=i.act,m=i.data,l=m.on,u=m.user_health,s=m.minHealth,d=m.maxHealth,C=m.alarm_health;return(0,e.createComponentVNode)(2,f.Window,{width:300,height:125,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Scanning",children:(0,e.createComponentVNode)(2,o.Button,{icon:"power-off",content:l?"On":"Off",color:l?null:"red",selected:l,onClick:function(){function h(){return c("scan_toggle")}return h}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health activation",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:2,stepPixelSize:6,minValue:s,maxValue:d,value:C,format:function(){function h(v){return(0,a.toFixed)(v,1)}return h}(),width:"80px",onDrag:function(){function h(v,p){return c("alarm_health",{alarm_health:p})}return h}()})}),u!==null&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"User health",children:(0,e.createComponentVNode)(2,o.Box,{color:y(u),bold:u>=100,children:(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:u})})})]})})})})}return B}(),y=function(k){return k>50?"green":k>0?"orange":"red"}},36771:function(T,r,n){"use strict";r.__esModule=!0,r.Holodeck=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Holodeck=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=(0,a.useLocalState)(k,"currentDeck",""),l=m[0],u=m[1],s=(0,a.useLocalState)(k,"showReload",!1),d=s[0],C=s[1],h=c.decks,v=c.ai_override,p=c.emagged,N=function(){function V(S){i("select_deck",{deck:S}),u(S),C(!0),setTimeout(function(){C(!1)},3e3)}return V}();return(0,e.createComponentVNode)(2,o.Window,{width:400,height:320,children:[d&&(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Holodeck Control System",children:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createVNode)(1,"b",null,"Currently Loaded Program:",16)," ",l]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Available Programs",children:[h.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{width:15.5,color:"transparent",content:V,selected:V===l,onClick:function(){function S(){return N(V)}return S}()},V)}),(0,e.createVNode)(1,"hr",null,null,1,{color:"gray"}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!v&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Override Protocols",children:(0,e.createComponentVNode)(2,t.Button,{content:p?"Turn On":"Turn Off",color:p?"good":"bad",onClick:function(){function V(){return i("ai_override")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety Protocols",children:(0,e.createComponentVNode)(2,t.Box,{color:p?"bad":"good",children:[p?"Off":"On",!!p&&(0,e.createComponentVNode)(2,t.Button,{ml:9.5,width:15.5,color:"red",content:"Wildlife Simulation",onClick:function(){function V(){return i("wildlifecarp")}return V}()})]})})]})]})})]})})]})}return y}(),b=function(B,k){return(0,e.createComponentVNode)(2,t.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"spinner",size:"5",spin:!0}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{color:"white",children:(0,e.createVNode)(1,"h1",null,"\xA0Recalibrating projection apparatus.\xA0",16)}),(0,e.createComponentVNode)(2,t.Box,{color:"label",children:(0,e.createVNode)(1,"h3",null,"Please, wait for 3 seconds.",16)})]})}},25471:function(T,r,n){"use strict";r.__esModule=!0,r.Instrument=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.Instrument=function(){function i(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:505,children:[(0,e.createComponentVNode)(2,y),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,g)]})})]})}return i}(),y=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.help;if(d)return(0,e.createComponentVNode)(2,o.Modal,{maxWidth:"75%",height:window.innerHeight*.75+"px",mx:"auto",py:"0",px:"0.5rem",children:(0,e.createComponentVNode)(2,o.Section,{height:"100%",title:"Help",level:"2",overflow:"auto",children:(0,e.createComponentVNode)(2,o.Box,{px:"0.5rem",mt:"-0.5rem",children:[(0,e.createVNode)(1,"h1",null,"Making a Song",16),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Lines are a series of chords, separated by commas\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(,)"}),(0,e.createTextVNode)(", each with notes separated by hyphens\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(-)"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("as defined above.")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Notes are played by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"names of the note"}),(0,e.createTextVNode)(", and optionally, the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(", and/or the"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave number"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("By default, every note is\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"natural"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("and in\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave 3"}),(0,e.createTextVNode)(". Defining a different state for either is remembered for each"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"note"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Example:"}),(0,e.createTextVNode)("\xA0"),(0,e.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,e.createTextVNode)(" will play a\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"C"}),(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"major"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("scale.")],0),(0,e.createVNode)(1,"li",null,[(0,e.createTextVNode)("After a note has an\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("or\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("placed, it will be remembered:\xA0"),(0,e.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,e.createTextVNode)(" is "),(0,e.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],0)],4)],0),(0,e.createVNode)(1,"p",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Chords"}),(0,e.createTextVNode)("\xA0can be played simply by seperating each note with a hyphen: "),(0,e.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("A"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"pause"}),(0,e.createTextVNode)("\xA0may be denoted by an empty chord: "),(0,e.createVNode)(1,"i",null,"C,E,,C,G",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,e.createTextVNode)(",\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"eg:"}),(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,e.createTextVNode)(".")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Combined, an example line is: "),(0,e.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,e.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Lines are a series of chords, separated by commas\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(,)"}),(0,e.createTextVNode)(", each with notes separated by hyphens\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(-)"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("as defined above.")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Notes are played by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"names of the note"}),(0,e.createTextVNode)(", and optionally, the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(", and/or the"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave number"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("By default, every note is\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"natural"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("and in\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave 3"}),(0,e.createTextVNode)(". Defining a different state for either is remembered for each"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"note"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Example:"}),(0,e.createTextVNode)("\xA0"),(0,e.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,e.createTextVNode)(" will play a\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"C"}),(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"major"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("scale.")],0),(0,e.createVNode)(1,"li",null,[(0,e.createTextVNode)("After a note has an\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("or\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("placed, it will be remembered:\xA0"),(0,e.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,e.createTextVNode)(" is "),(0,e.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],0)],4)],0),(0,e.createVNode)(1,"p",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Chords"}),(0,e.createTextVNode)("\xA0can be played simply by seperating each note with a hyphen: "),(0,e.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("A"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"pause"}),(0,e.createTextVNode)("\xA0may be denoted by an empty chord: "),(0,e.createVNode)(1,"i",null,"C,E,,C,G",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,e.createTextVNode)(",\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"eg:"}),(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,e.createTextVNode)(".")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Combined, an example line is: "),(0,e.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,e.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,e.createVNode)(1,"h1",null,"Instrument Advanced Settings",16),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Type:"}),(0,e.createTextVNode)("\xA0Whether the instrument is legacy or synthesized."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Legacy instruments have a collection of sounds that are selectively used depending on the note to play."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Synthesized instruments use a base sound and change its pitch to match the note to play.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Current:"}),(0,e.createTextVNode)("\xA0Which instrument sample to play. Some instruments can be tuned to play different samples. Experiment!")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Note Shift/Note Transpose:"}),(0,e.createTextVNode)("\xA0The pitch to apply to all notes of the song.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Sustain Mode:"}),(0,e.createTextVNode)("\xA0How a played note fades out."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Linear sustain means a note will fade out at a constant rate."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Exponential sustain means a note will fade out at an exponential rate, sounding smoother.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Volume Dropoff Threshold:"}),(0,e.createTextVNode)("\xA0The volume threshold at which a note is fully stopped.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Sustain indefinitely last held note:"}),(0,e.createTextVNode)("\xA0Whether the last note should be sustained indefinitely.")],4)],4),(0,e.createComponentVNode)(2,o.Button,{color:"grey",content:"Close",onClick:function(){function C(){return u("help")}return C}()})]})})})},B=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.lines,C=s.playing,h=s.repeat,v=s.maxRepeats,p=s.tempo,N=s.minTempo,V=s.maxTempo,S=s.tickLag,I=s.volume,L=s.minVolume,w=s.maxVolume,A=s.ready;return(0,e.createComponentVNode)(2,o.Section,{title:"Instrument",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"info",content:"Help",onClick:function(){function x(){return u("help")}return x}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"file",content:"New",onClick:function(){function x(){return u("newsong")}return x}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"upload",content:"Import",onClick:function(){function x(){return u("import")}return x}()})],4),children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Playback",children:[(0,e.createComponentVNode)(2,o.Button,{selected:C,disabled:d.length===0||h<0,icon:"play",content:"Play",onClick:function(){function x(){return u("play")}return x}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!C,icon:"stop",content:"Stop",onClick:function(){function x(){return u("stop")}return x}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Repeat",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:0,maxValue:v,value:h,stepPixelSize:59,onChange:function(){function x(E,P){return u("repeat",{new:P})}return x}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Tempo",children:(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Button,{disabled:p>=V,content:"-",as:"span",mr:"0.5rem",onClick:function(){function x(){return u("tempo",{new:p+S})}return x}()}),(0,a.round)(600/p)," BPM",(0,e.createComponentVNode)(2,o.Button,{disabled:p<=N,content:"+",as:"span",ml:"0.5rem",onClick:function(){function x(){return u("tempo",{new:p-S})}return x}()})]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Volume",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:L,maxValue:w,value:I,stepPixelSize:6,onDrag:function(){function x(E,P){return u("setvolume",{new:P})}return x}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Status",children:A?(0,e.createComponentVNode)(2,o.Box,{color:"good",children:"Ready"}):(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"Instrument Definition Error!"})})]}),(0,e.createComponentVNode)(2,k)]})},k=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.allowedInstrumentNames,C=s.instrumentLoaded,h=s.instrument,v=s.canNoteShift,p=s.noteShift,N=s.noteShiftMin,V=s.noteShiftMax,S=s.sustainMode,I=s.sustainLinearDuration,L=s.sustainExponentialDropoff,w=s.legacy,A=s.sustainDropoffVolume,x=s.sustainHeldNote,E,P;return S===1?(E="Linear",P=(0,e.createComponentVNode)(2,o.Slider,{minValue:.1,maxValue:5,value:I,step:.5,stepPixelSize:85,format:function(){function D(M){return(0,a.round)(M*100)/100+" seconds"}return D}(),onChange:function(){function D(M,R){return u("setlinearfalloff",{new:R/10})}return D}()})):S===2&&(E="Exponential",P=(0,e.createComponentVNode)(2,o.Slider,{minValue:1.025,maxValue:10,value:L,step:.01,format:function(){function D(M){return(0,a.round)(M*1e3)/1e3+"% per decisecond"}return D}(),onChange:function(){function D(M,R){return u("setexpfalloff",{new:R})}return D}()})),d.sort(),(0,e.createComponentVNode)(2,o.Box,{my:-1,children:(0,e.createComponentVNode)(2,o.Collapsible,{mt:"1rem",mb:"0",title:"Advanced",children:(0,e.createComponentVNode)(2,o.Section,{mt:-1,children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Type",children:w?"Legacy":"Synthesized"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Current",children:C?(0,e.createComponentVNode)(2,o.Dropdown,{options:d,selected:h,width:"50%",onSelected:function(){function D(M){return u("switchinstrument",{name:M})}return D}()}):(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"None!"})}),!!(!w&&v)&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Note Shift/Note Transpose",children:(0,e.createComponentVNode)(2,o.Slider,{minValue:N,maxValue:V,value:p,stepPixelSize:2,format:function(){function D(M){return M+" keys / "+(0,a.round)(M/12*100)/100+" octaves"}return D}(),onChange:function(){function D(M,R){return u("setnoteshift",{new:R})}return D}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Sustain Mode",children:[(0,e.createComponentVNode)(2,o.Dropdown,{options:["Linear","Exponential"],selected:E,mb:"0.4rem",onSelected:function(){function D(M){return u("setsustainmode",{new:M})}return D}()}),P]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Volume Dropoff Threshold",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:.01,maxValue:100,value:A,stepPixelSize:6,onChange:function(){function D(M,R){return u("setdropoffvolume",{new:R})}return D}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Sustain indefinitely last held note",children:(0,e.createComponentVNode)(2,o.Button,{selected:x,icon:x?"toggle-on":"toggle-off",content:x?"Yes":"No",onClick:function(){function D(){return u("togglesustainhold")}return D}()})})],4)]}),(0,e.createComponentVNode)(2,o.Button,{icon:"redo",content:"Reset to Default",mt:"0.5rem",onClick:function(){function D(){return u("reset")}return D}()})]})})})},g=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,d=s.playing,C=s.lines,h=s.editing;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Editor",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:!h||d,icon:"plus",content:"Add Line",onClick:function(){function v(){return u("newline",{line:C.length+1})}return v}()}),(0,e.createComponentVNode)(2,o.Button,{selected:!h,icon:h?"chevron-up":"chevron-down",onClick:function(){function v(){return u("edit")}return v}()})],4),children:!!h&&(C.length>0?(0,e.createComponentVNode)(2,o.LabeledList,{children:C.map(function(v,p){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:p+1,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:d,icon:"pen",onClick:function(){function N(){return u("modifyline",{line:p+1})}return N}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:d,icon:"trash",onClick:function(){function N(){return u("deleteline",{line:p+1})}return N}()})],4),children:v},p)})}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"Song is empty."}))})}},13618:function(T,r,n){"use strict";r.__esModule=!0,r.KeyComboModal=void 0;var e=n(89005),a=n(70611),t=n(72253),o=n(36036),f=n(98595),b=n(19203),y=n(51057),B=function(l){return l.key!==a.KEY.Alt&&l.key!==a.KEY.Control&&l.key!==a.KEY.Shift&&l.key!==a.KEY.Escape},k={DEL:"Delete",DOWN:"South",END:"Southwest",HOME:"Northwest",INSERT:"Insert",LEFT:"West",PAGEDOWN:"Southeast",PAGEUP:"Northeast",RIGHT:"East",SPACEBAR:"Space",UP:"North"},g=3,i=function(l){var u="";if(l.altKey&&(u+="Alt"),l.ctrlKey&&(u+="Ctrl"),l.shiftKey&&!(l.keyCode>=48&&l.keyCode<=57)&&(u+="Shift"),l.location===g&&(u+="Numpad"),B(l))if(l.shiftKey&&l.keyCode>=48&&l.keyCode<=57){var s=l.keyCode-48;u+="Shift"+s}else{var d=l.key.toUpperCase();u+=k[d]||d}return u},c=r.KeyComboModal=function(){function m(l,u){var s=(0,t.useBackend)(u),d=s.act,C=s.data,h=C.init_value,v=C.large_buttons,p=C.message,N=p===void 0?"":p,V=C.title,S=C.timeout,I=(0,t.useLocalState)(u,"input",h),L=I[0],w=I[1],A=(0,t.useLocalState)(u,"binding",!0),x=A[0],E=A[1],P=function(){function R(O){if(!x){O.key===a.KEY.Enter&&d("submit",{entry:L}),(0,a.isEscape)(O.key)&&d("cancel");return}if(O.preventDefault(),B(O)){D(i(O)),E(!1);return}else if(O.key===a.KEY.Escape){D(h),E(!1);return}}return R}(),D=function(){function R(O){O!==L&&w(O)}return R}(),M=130+(N.length>30?Math.ceil(N.length/3):0)+(N.length&&v?5:0);return(0,e.createComponentVNode)(2,f.Window,{title:V,width:240,height:M,children:[S&&(0,e.createComponentVNode)(2,y.Loader,{value:S}),(0,e.createComponentVNode)(2,f.Window.Content,{onKeyDown:function(){function R(O){P(O)}return R}(),children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Autofocus),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:N})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{disabled:x,content:x&&x!==null?"Awaiting input...":""+L,width:"100%",textAlign:"center",onClick:function(){function R(){D(h),E(!0)}return R}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,b.InputButtons,{input:L})})]})]})})]})}return m}()},35655:function(T,r,n){"use strict";r.__esModule=!0,r.KeycardAuth=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.KeycardAuth=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=(0,e.createComponentVNode)(2,t.Section,{title:"Keycard Authentication Device",children:(0,e.createComponentVNode)(2,t.Box,{children:"This device is used to trigger certain high security events. It requires the simultaneous swipe of two high-level ID cards."})});if(!i.swiping&&!i.busy)return(0,e.createComponentVNode)(2,o.Window,{width:540,height:280,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[c,(0,e.createComponentVNode)(2,t.Section,{title:"Choose Action",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Red Alert",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-triangle",disabled:!i.redAvailable,onClick:function(){function l(){return g("triggerevent",{triggerevent:"Red Alert"})}return l}(),content:"Red Alert"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ERT",children:(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Emergency Response Team"})}return l}(),content:"Call ERT"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Maint Access",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"door-open",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Grant Emergency Maintenance Access"})}return l}(),content:"Grant"}),(0,e.createComponentVNode)(2,t.Button,{icon:"door-closed",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Revoke Emergency Maintenance Access"})}return l}(),content:"Revoke"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Station-Wide Access",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"door-open",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Activate Station-Wide Emergency Access"})}return l}(),content:"Grant"}),(0,e.createComponentVNode)(2,t.Button,{icon:"door-closed",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Deactivate Station-Wide Emergency Access"})}return l}(),content:"Revoke"})]})]})})]})});var m=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Waiting for YOU to swipe your ID..."});return!i.hasSwiped&&!i.ertreason&&i.event==="Emergency Response Team"?m=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Fill out the reason for your ERT request."}):i.hasConfirm?m=(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Request Confirmed!"}):i.isRemote?m=(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Swipe your card to CONFIRM the remote request."}):i.hasSwiped&&(m=(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Waiting for second person to confirm..."})),(0,e.createComponentVNode)(2,o.Window,{width:540,height:265,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[c,i.event==="Emergency Response Team"&&(0,e.createComponentVNode)(2,t.Section,{title:"Reason for ERT Call",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{color:i.ertreason?"":"red",icon:i.ertreason?"check":"pencil-alt",content:i.ertreason?i.ertreason:"-----",disabled:i.busy,onClick:function(){function l(){return g("ert")}return l}()})})}),(0,e.createComponentVNode)(2,t.Section,{title:i.event,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back",disabled:i.busy||i.hasConfirm,onClick:function(){function l(){return g("reset")}return l}()}),children:m})]})})}return b}()},62955:function(T,r,n){"use strict";r.__esModule=!0,r.KitchenMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(62411),b=r.KitchenMachine=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.data,m=i.config,l=c.ingredients,u=c.operating,s=m.title;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:320,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Operating,{operating:u,name:s}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,y)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Ingredients",children:(0,e.createComponentVNode)(2,t.Table,{className:"Ingredient__Table",children:l.map(function(d){return(0,e.createComponentVNode)(2,t.Table.Row,{tr:5,children:[(0,e.createVNode)(1,"td",null,(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:d.name}),2),(0,e.createVNode)(1,"td",null,(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:[d.amount," ",d.units]}),2)]},d.name)})})})})]})})})}return B}(),y=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.inactive,u=m.tooltip;return(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"power-off",disabled:l,tooltip:l?u:"",tooltipPosition:"bottom",content:"Activate",onClick:function(){function s(){return c("cook")}return s}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",disabled:l,tooltip:l?u:"",tooltipPosition:"bottom",content:"Eject Contents",onClick:function(){function s(){return c("eject")}return s}()})})]})})}},9525:function(T,r,n){"use strict";r.__esModule=!0,r.LawManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.LawManager=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.isAdmin,s=l.isSlaved,d=l.isMalf,C=l.isAIMalf,h=l.view;return(0,e.createComponentVNode)(2,o.Window,{width:800,height:d?620:365,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!(u&&s)&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:["This unit is slaved to ",s,"."]}),!!(d||C)&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Law Management",selected:h===0,onClick:function(){function v(){return m("set_view",{set_view:0})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Lawsets",selected:h===1,onClick:function(){function v(){return m("set_view",{set_view:1})}return v}()})]}),h===0&&(0,e.createComponentVNode)(2,b),h===1&&(0,e.createComponentVNode)(2,y)]})})}return k}(),b=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.has_zeroth_laws,s=l.zeroth_laws,d=l.has_ion_laws,C=l.ion_laws,h=l.ion_law_nr,v=l.has_inherent_laws,p=l.inherent_laws,N=l.has_supplied_laws,V=l.supplied_laws,S=l.channels,I=l.channel,L=l.isMalf,w=l.isAdmin,A=l.zeroth_law,x=l.ion_law,E=l.inherent_law,P=l.supplied_law,D=l.supplied_law_position;return(0,e.createFragment)([!!u&&(0,e.createComponentVNode)(2,B,{title:"ERR_NULL_VALUE",laws:s,ctx:i}),!!d&&(0,e.createComponentVNode)(2,B,{title:h,laws:C,ctx:i}),!!v&&(0,e.createComponentVNode)(2,B,{title:"Inherent",laws:p,ctx:i}),!!N&&(0,e.createComponentVNode)(2,B,{title:"Supplied",laws:V,ctx:i}),(0,e.createComponentVNode)(2,t.Section,{title:"Statement Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Statement Channel",children:S.map(function(M){return(0,e.createComponentVNode)(2,t.Button,{content:M.channel,selected:M.channel===I,onClick:function(){function R(){return m("law_channel",{law_channel:M.channel})}return R}()},M.channel)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"State Laws",children:(0,e.createComponentVNode)(2,t.Button,{content:"State Laws",onClick:function(){function M(){return m("state_laws")}return M}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Law Notification",children:(0,e.createComponentVNode)(2,t.Button,{content:"Notify",onClick:function(){function M(){return m("notify_laws")}return M}()})})]})}),!!L&&(0,e.createComponentVNode)(2,t.Section,{title:"Add Laws",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Type"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"60%",children:"Law"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Index"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"20%",children:"Actions"})]}),!!(w&&!u)&&(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Zero"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:A}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function M(){return m("change_zeroth_law")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function M(){return m("add_zeroth_law")}return M}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Ion"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:x}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function M(){return m("change_ion_law")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function M(){return m("add_ion_law")}return M}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Inherent"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:E}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function M(){return m("change_inherent_law")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function M(){return m("add_inherent_law")}return M}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Supplied"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:P}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:D,onClick:function(){function M(){return m("change_supplied_law_position")}return M}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function M(){return m("change_supplied_law")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function M(){return m("add_supplied_law")}return M}()})]})]})]})})],0)},y=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.law_sets;return(0,e.createComponentVNode)(2,t.Box,{children:u.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name+" - "+s.header,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Load Laws",icon:"download",onClick:function(){function d(){return m("transfer_laws",{transfer_laws:s.ref})}return d}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[s.laws.has_ion_laws>0&&s.laws.ion_laws.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.index,children:d.law},d.index)}),s.laws.has_zeroth_laws>0&&s.laws.zeroth_laws.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.index,children:d.law},d.index)}),s.laws.has_inherent_laws>0&&s.laws.inherent_laws.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.index,children:d.law},d.index)}),s.laws.has_supplied_laws>0&&s.laws.inherent_laws.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.index,children:d.law},d.index)})]})},s.name)})})},B=function(g,i){var c=(0,a.useBackend)(g.ctx),m=c.act,l=c.data,u=l.isMalf;return(0,e.createComponentVNode)(2,t.Section,{title:g.title+" Laws",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Index"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"69%",children:"Law"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"21%",children:"State?"})]}),g.laws.map(function(s){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:s.index}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s.law}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:s.state?"Yes":"No",selected:s.state,onClick:function(){function d(){return m("state_law",{ref:s.ref,state_law:s.state?0:1})}return d}()}),!!u&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function d(){return m("edit_law",{edit_law:s.ref})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Delete",icon:"trash",color:"red",onClick:function(){function d(){return m("delete_law",{delete_law:s.ref})}return d}()})],4)]})]},s.law)})]})})}},85066:function(T,r,n){"use strict";r.__esModule=!0,r.LibraryComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.LibraryComputer=function(){function h(v,p){return(0,e.createComponentVNode)(2,o.Window,{width:1050,height:600,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,c)]})})]})}return h}(),y=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=v.args,L=S.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:I.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:I.author}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:I.summary}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rating",children:[I.rating,(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",verticalAlign:"top"})]}),!I.isProgrammatic&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Categories",children:I.categories.join(", ")})]}),(0,e.createVNode)(1,"br"),L===I.ckey&&(0,e.createComponentVNode)(2,t.Button,{content:"Delete Book",icon:"trash",color:"red",disabled:I.isProgrammatic,onClick:function(){function w(){return V("delete_book",{bookid:I.id,user_ckey:L})}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Report Book",icon:"flag",color:"red",disabled:I.isProgrammatic,onClick:function(){function w(){return(0,f.modalOpen)(p,"report_book",{bookid:I.id})}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Rate Book",icon:"star",color:"caution",disabled:I.isProgrammatic,onClick:function(){function w(){return(0,f.modalOpen)(p,"rate_info",{bookid:I.id})}return w}()})]})},B=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=v.args,L=S.selected_report,w=S.report_categories,A=S.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{level:2,m:"-1rem",pb:"1.5rem",title:"Report this book for Rule Violations",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:I.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reasons",children:(0,e.createComponentVNode)(2,t.Box,{children:w.map(function(x,E){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:x.description,selected:x.category_id===L,onClick:function(){function P(){return V("set_report",{report_type:x.category_id})}return P}()}),(0,e.createVNode)(1,"br")],4,E)})})})]}),(0,e.createComponentVNode)(2,t.Button.Confirm,{bold:!0,icon:"paper-plane",content:"Submit Report",onClick:function(){function x(){return V("submit_report",{bookid:I.id,user_ckey:A})}return x}()})]})},k=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.selected_rating,L=Array(10).fill().map(function(w,A){return 1+A});return(0,e.createComponentVNode)(2,t.Stack,{children:[L.map(function(w,A){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{bold:!0,icon:"star",color:I>=w?"caution":"default",onClick:function(){function x(){return V("set_rating",{rating_value:w})}return x}()})},A)}),(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,ml:2,fontSize:"150%",children:[I+"/10",(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",ml:.5,verticalAlign:"top"})]})]})},g=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=v.args,L=S.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{level:2,m:"-1rem",pb:"1.5rem",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:I.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:I.author}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rating",children:[I.current_rating?I.current_rating:0,(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",ml:.5,verticalAlign:"middle"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Ratings",children:I.total_ratings?I.total_ratings:0})]}),(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,t.Button.Confirm,{mt:2,content:"Submit",icon:"paper-plane",onClick:function(){function w(){return V("rate_book",{bookid:I.id,user_ckey:L})}return w}()})]})},i=function(v,p){var N=(0,a.useBackend)(p),V=N.data,S=(0,a.useLocalState)(p,"tabIndex",0),I=S[0],L=S[1],w=V.login_state;return(0,e.createComponentVNode)(2,t.Stack.Item,{mb:1,children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:I===0,onClick:function(){function A(){return L(0)}return A}(),children:"Book Archives"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:I===1,onClick:function(){function A(){return L(1)}return A}(),children:"Corporate Literature"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:I===2,onClick:function(){function A(){return L(2)}return A}(),children:"Upload Book"}),w===1&&(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:I===3,onClick:function(){function A(){return L(3)}return A}(),children:"Patron Manager"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:I===4,onClick:function(){function A(){return L(4)}return A}(),children:"Inventory"})]})})},c=function(v,p){var N=(0,a.useLocalState)(p,"tabIndex",0),V=N[0];switch(V){case 0:return(0,e.createComponentVNode)(2,l);case 1:return(0,e.createComponentVNode)(2,u);case 2:return(0,e.createComponentVNode)(2,s);case 3:return(0,e.createComponentVNode)(2,d);case 4:return(0,e.createComponentVNode)(2,C);default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},m=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.searchcontent,L=S.book_categories,w=S.user_ckey,A=[];return L.map(function(x){return A[x.description]=x.category_id}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"35%",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"edit",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Search Inputs"]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:20,content:I.title||"Input Title",onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_search_title")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:20,content:I.author||"Input Author",onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_search_author")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Ratings",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{mr:1,width:"min-content",content:I.ratingmin,onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_search_ratingmin")}return x}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:"To"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:1,width:"min-content",content:I.ratingmax,onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_search_ratingmax")}return x}()})})]})})]})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"clipboard-list",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Book Categories"]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Dropdown,{mt:.6,width:"190px",options:L.map(function(x){return x.description}),onSelected:function(){function x(E){return V("toggle_search_category",{category_id:A[E]})}return x}()})})})}),(0,e.createVNode)(1,"br"),L.filter(function(x){return I.categories.includes(x.category_id)}).map(function(x){return(0,e.createComponentVNode)(2,t.Button,{content:x.description,selected:!0,icon:"unlink",onClick:function(){function E(){return V("toggle_search_category",{category_id:x.category_id})}return E}()},x.category_id)})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Search Actions"]}),(0,e.createComponentVNode)(2,t.Button,{content:"Clear Search",icon:"eraser",onClick:function(){function x(){return V("clear_search")}return x}()}),I.ckey?(0,e.createComponentVNode)(2,t.Button,{mb:.5,content:"Stop Showing My Books",color:"bad",icon:"search",onClick:function(){function x(){return V("clear_ckey_search")}return x}()}):(0,e.createComponentVNode)(2,t.Button,{content:"Find My Books",icon:"search",onClick:function(){function x(){return V("find_users_books",{user_ckey:w})}return x}()})]})]})},l=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.external_booklist,L=S.archive_pagenumber,w=S.num_pages,A=S.login_state;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Book System Access",buttons:(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",disabled:L===1,onClick:function(){function x(){return V("deincrementpagemax")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-left",disabled:L===1,onClick:function(){function x(){return V("deincrementpage")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{bold:!0,content:L,onClick:function(){function x(){return(0,f.modalOpen)(p,"setpagenumber")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",disabled:L===w,onClick:function(){function x(){return V("incrementpage")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",disabled:L===w,onClick:function(){function x(){return V("incrementpagemax")}return x}()})],4),children:[(0,e.createComponentVNode)(2,m),(0,e.createVNode)(1,"hr"),(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Ratings"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Category"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Actions"})]}),I.map(function(x){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:x.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book",mr:.5}),x.title.length>45?x.title.substr(0,45)+"...":x.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:x.author.length>30?x.author.substr(0,30)+"...":x.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[x.rating,(0,e.createComponentVNode)(2,t.Icon,{name:"star",ml:.5,color:"yellow",verticalAlign:"middle"})]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:x.categories.join(", ").substr(0,45)}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[A===1&&(0,e.createComponentVNode)(2,t.Button,{content:"Order",icon:"print",onClick:function(){function E(){return V("order_external_book",{bookid:x.id})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{content:"More...",onClick:function(){function E(){return(0,f.modalOpen)(p,"expand_info",{bookid:x.id})}return E}()})]})]},x.id)})]})]})},u=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.programmatic_booklist,L=S.login_state;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Corporate Book Catalog",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Actions"})]}),I.map(function(w,A){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:w.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book",mr:2}),w.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:w.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[L===1&&(0,e.createComponentVNode)(2,t.Button,{content:"Order",icon:"print",onClick:function(){function x(){return V("order_programmatic_book",{bookid:w.id})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{content:"More...",onClick:function(){function x(){return(0,f.modalOpen)(p,"expand_info",{bookid:w.id})}return x}()})]})]},A)})]})})},s=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.selectedbook,L=S.book_categories,w=S.user_ckey,A=[];return L.map(function(x){return A[x.description]=x.category_id}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Book System Upload",buttons:(0,e.createComponentVNode)(2,t.Button.Confirm,{bold:!0,width:9.5,icon:"upload",disabled:I.copyright,content:"Upload Book",onClick:function(){function x(){return V("uploadbook",{user_ckey:w})}return x}()}),children:[I.copyright?(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"WARNING: You cannot upload or modify the attributes of a copyrighted book"}):(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{ml:15,mb:3,fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:3,mr:2}),"Book Uploader"]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{width:20,textAlign:"left",icon:"pen",disabled:I.copyright,content:I.title,onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_selected_title")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{width:20,textAlign:"left",icon:"pen",disabled:I.copyright,content:I.author,onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_selected_author")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"240px",options:L.map(function(x){return x.description}),onSelected:function(){function x(E){return V("toggle_upload_category",{category_id:A[E]})}return x}()})})})]}),(0,e.createVNode)(1,"br"),L.filter(function(x){return I.categories.includes(x.category_id)}).map(function(x){return(0,e.createComponentVNode)(2,t.Button,{content:x.description,disabled:I.copyright,selected:!0,icon:"unlink",onClick:function(){function E(){return V("toggle_upload_category",{category_id:x.category_id})}return E}()},x.category_id)})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mr:75,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pen",width:"auto",disabled:I.copyright,content:"Edit Summary",onClick:function(){function x(){return(0,f.modalOpen)(p,"edit_selected_summary")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:I.summary})]})})]})]})},d=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.checkout_data;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Checked Out Books",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Patron"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Time Left"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actions"})]}),I.map(function(L,w){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-tag"}),L.patron_name]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.title}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.timeleft>=0?L.timeleft:"LATE"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:(0,e.createComponentVNode)(2,t.Button,{content:"Mark Lost",icon:"flag",color:"bad",disabled:L.timeleft>=0,onClick:function(){function A(){return V("reportlost",{libraryid:L.libraryid})}return A}()})})]},w)})]})})},C=function(v,p){var N=(0,a.useBackend)(p),V=N.act,S=N.data,I=S.inventory_list;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Library Inventory",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"LIB ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"})]}),I.map(function(L,w){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.libraryid}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"})," ",L.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.checked_out?"Checked Out":"Available"})]},w)})]})})};(0,f.modalRegisterBodyOverride)("expand_info",y),(0,f.modalRegisterBodyOverride)("report_book",B),(0,f.modalRegisterBodyOverride)("rate_info",g)},9516:function(T,r,n){"use strict";r.__esModule=!0,r.LibraryManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.LibraryManager=function(){function i(c,m){return(0,e.createComponentVNode)(2,o.Window,{width:600,height:600,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,e.createComponentVNode)(2,y)})]})}return i}(),y=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.pagestate;switch(d){case 1:return(0,e.createComponentVNode)(2,B);case 2:return(0,e.createComponentVNode)(2,g);case 3:return(0,e.createComponentVNode)(2,k);default:return"WE SHOULDN'T BE HERE!"}},B=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data;return(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.4rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-shield",verticalAlign:"middle",size:3,mr:"1rem"}),"Library Manager"]}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{icon:"trash",width:"auto",color:"danger",content:"Delete Book by SSID",onClick:function(){function d(){return(0,f.modalOpen)(m,"specify_ssid_delete")}return d}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"user-slash",width:"auto",color:"danger",content:"Delete All Books By CKEY",onClick:function(){function d(){return(0,f.modalOpen)(m,"specify_ckey_delete")}return d}()}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{icon:"search",width:"auto",content:"View All Books By CKEY",onClick:function(){function d(){return(0,f.modalOpen)(m,"specify_ckey_search")}return d}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"search",width:"auto",content:"View All Reported Books",onClick:function(){function d(){return u("view_reported_books")}return d}()})]})},k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.reports;return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-secret",verticalAlign:"middle",size:2,mr:"1rem"}),(0,e.createVNode)(1,"br"),"All Reported Books",(0,e.createVNode)(1,"br")]}),(0,e.createComponentVNode)(2,t.Button,{content:"Return to Main",icon:"arrow-alt-circle-left",onClick:function(){function C(){return u("return")}return C}()}),(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Uploader CKEY"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Report Type"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Reporter Ckey"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Administrative Actions"})]}),d.map(function(C){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:C.uploader_ckey}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"}),C.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:C.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:C.report_description}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:C.reporter_ckey}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Delete",icon:"trash",onClick:function(){function h(){return u("delete_book",{bookid:C.id})}return h}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Unflag",icon:"flag",color:"caution",onClick:function(){function h(){return u("unflag_book",{bookid:C.id})}return h}()}),(0,e.createComponentVNode)(2,t.Button,{content:"View",onClick:function(){function h(){return u("view_book",{bookid:C.id})}return h}()})]})]},C.id)})]})})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.ckey,C=s.booklist;return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user",verticalAlign:"middle",size:2,mr:"1rem"}),(0,e.createVNode)(1,"br"),"Books uploaded by ",d,(0,e.createVNode)(1,"br")]}),(0,e.createComponentVNode)(2,t.Button,{mt:1,content:"Return to Main",icon:"arrow-alt-circle-left",onClick:function(){function h(){return u("return")}return h}()}),(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Administrative Actions"})]}),C.map(function(h){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"}),h.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:h.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Delete",icon:"trash",color:"bad",onClick:function(){function v(){return u("delete_book",{bookid:h.id})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"View",onClick:function(){function v(){return u("view_book",{bookid:h.id})}return v}()})]})]},h.id)})]})})}},90447:function(T,r,n){"use strict";r.__esModule=!0,r.ListInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(36036),f=n(72253),b=n(92986),y=n(98595),B=r.ListInputModal=function(){function i(c,m){var l=(0,f.useBackend)(m),u=l.act,s=l.data,d=s.items,C=d===void 0?[]:d,h=s.message,v=h===void 0?"":h,p=s.init_value,N=s.timeout,V=s.title,S=(0,f.useLocalState)(m,"selected",C.indexOf(p)),I=S[0],L=S[1],w=(0,f.useLocalState)(m,"searchBarVisible",C.length>10),A=w[0],x=w[1],E=(0,f.useLocalState)(m,"searchQuery",""),P=E[0],D=E[1],M=function(){function G(X){var J=z.length-1;if(X===b.KEY_DOWN)if(I===null||I===J){var se;L(0),(se=document.getElementById("0"))==null||se.scrollIntoView()}else{var ie;L(I+1),(ie=document.getElementById((I+1).toString()))==null||ie.scrollIntoView()}else if(X===b.KEY_UP)if(I===null||I===0){var me;L(J),(me=document.getElementById(J.toString()))==null||me.scrollIntoView()}else{var q;L(I-1),(q=document.getElementById((I-1).toString()))==null||q.scrollIntoView()}}return G}(),R=function(){function G(X){X!==I&&L(X)}return G}(),O=function(){function G(){x(!1),x(!0)}return G}(),F=function(){function G(X){var J=String.fromCharCode(X),se=C.find(function(q){return q==null?void 0:q.toLowerCase().startsWith(J==null?void 0:J.toLowerCase())});if(se){var ie,me=C.indexOf(se);L(me),(ie=document.getElementById(me.toString()))==null||ie.scrollIntoView()}}return G}(),_=function(){function G(X){var J;X!==P&&(D(X),L(0),(J=document.getElementById("0"))==null||J.scrollIntoView())}return G}(),U=function(){function G(){x(!A),D("")}return G}(),z=C.filter(function(G){return G==null?void 0:G.toLowerCase().includes(P.toLowerCase())}),$=330+Math.ceil(v.length/3);return A||setTimeout(function(){var G;return(G=document.getElementById(I.toString()))==null?void 0:G.focus()},1),(0,e.createComponentVNode)(2,y.Window,{title:V,width:325,height:$,children:[N&&(0,e.createComponentVNode)(2,a.Loader,{value:N}),(0,e.createComponentVNode)(2,y.Window.Content,{onKeyDown:function(){function G(X){var J=window.event?X.which:X.keyCode;(J===b.KEY_DOWN||J===b.KEY_UP)&&(X.preventDefault(),M(J)),J===b.KEY_ENTER&&(X.preventDefault(),u("submit",{entry:z[I]})),!A&&J>=b.KEY_A&&J<=b.KEY_Z&&(X.preventDefault(),F(J)),J===b.KEY_ESCAPE&&(X.preventDefault(),u("cancel"))}return G}(),children:(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{compact:!0,icon:A?"search":"font",selected:!0,tooltip:A?"Search Mode. Type to search or use arrow keys to select manually.":"Hotkey Mode. Type a letter to jump to the first match. Enter to select.",tooltipPosition:"left",onClick:function(){function G(){return U()}return G}()}),className:"ListInput__Section",fill:!0,title:v,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,k,{filteredItems:z,onClick:R,onFocusSearch:O,searchBarVisible:A,selected:I})}),(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:A&&(0,e.createComponentVNode)(2,g,{filteredItems:z,onSearch:_,searchQuery:P,selected:I})}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,children:(0,e.createComponentVNode)(2,t.InputButtons,{input:z[I]})})]})})})]})}return i}(),k=function(c,m){var l=(0,f.useBackend)(m),u=l.act,s=c.filteredItems,d=c.onClick,C=c.onFocusSearch,h=c.searchBarVisible,v=c.selected;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,tabIndex:0,children:s.map(function(p,N){return(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:"transparent",id:N,onClick:function(){function V(){return d(N)}return V}(),onDblClick:function(){function V(S){S.preventDefault(),u("submit",{entry:s[v]})}return V}(),onKeyDown:function(){function V(S){var I=window.event?S.which:S.keyCode;h&&I>=b.KEY_A&&I<=b.KEY_Z&&(S.preventDefault(),C())}return V}(),selected:N===v,style:{animation:"none",transition:"none"},children:p.replace(/^\w/,function(V){return V.toUpperCase()})},N)})})},g=function(c,m){var l=(0,f.useBackend)(m),u=l.act,s=c.filteredItems,d=c.onSearch,C=c.searchQuery,h=c.selected;return(0,e.createComponentVNode)(2,o.Input,{width:"100%",autoFocus:!0,autoSelect:!0,onEnter:function(){function v(p){p.preventDefault(),u("submit",{entry:s[h]})}return v}(),onInput:function(){function v(p,N){return d(N)}return v}(),placeholder:"Search...",value:C})}},26826:function(T,r,n){"use strict";r.__esModule=!0,r.Loadout=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b={Default:function(){function c(m,l){return m.gear.gear_tier-l.gear.gear_tier}return c}(),Alphabetical:function(){function c(m,l){return m.gear.name.toLowerCase().localeCompare(l.gear.name.toLowerCase())}return c}(),Cost:function(){function c(m,l){return m.gear.cost-l.gear.cost}return c}()},y=r.Loadout=function(){function c(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=(0,t.useLocalState)(l,"search",!1),h=C[0],v=C[1],p=(0,t.useLocalState)(l,"searchText",""),N=p[0],V=p[1],S=(0,t.useLocalState)(l,"category",Object.keys(d.gears)[0]),I=S[0],L=S[1],w=(0,t.useLocalState)(l,"tweakedGear",""),A=w[0],x=w[1];return(0,e.createComponentVNode)(2,f.Window,{width:975,height:650,children:[A&&(0,e.createComponentVNode)(2,i,{tweakedGear:A,setTweakedGear:x}),(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,B,{category:I,setCategory:L})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"25%",children:(0,e.createComponentVNode)(2,g,{setTweakedGear:x})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"75%",children:(0,e.createComponentVNode)(2,k,{category:I,search:h,setSearch:v,searchText:N,setSearchText:V})})]})})]})})]})}return c}(),B=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=m.category,h=m.setCategory;return(0,e.createComponentVNode)(2,o.Tabs,{fluid:!0,textAlign:"center",style:{"flex-wrap":"wrap-reverse"},children:Object.keys(d.gears).map(function(v){return(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:v===C,style:{"white-space":"nowrap"},onClick:function(){function p(){return h(v)}return p}(),children:v},v)})})},k=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=d.user_tier,h=d.gear_slots,v=d.max_gear_slots,p=m.category,N=m.search,V=m.setSearch,S=m.searchText,I=m.setSearchText,L=(0,t.useLocalState)(l,"sortType","Default"),w=L[0],A=L[1],x=(0,t.useLocalState)(l,"sortReverse",!1),E=x[0],P=x[1],D=(0,a.createSearch)(S,function(R){return R.name}),M;return S.length>2?M=Object.entries(d.gears).reduce(function(R,O){var F=O[0],_=O[1];return R.concat(Object.entries(_).map(function(U){var z=U[0],$=U[1];return{key:z,gear:$}}))},[]).filter(function(R){var O=R.gear;return D(O)}):M=Object.entries(d.gears[p]).map(function(R){var O=R[0],F=R[1];return{key:O,gear:F}}),M.sort(b[w]),E&&(M=M.reverse()),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:p,buttons:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Dropdown,{height:1.66,selected:w,options:Object.keys(b),onSelected:function(){function R(O){return A(O)}return R}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:E?"arrow-down-wide-short":"arrow-down-short-wide",tooltip:E?"Ascending order":"Descending order",tooltipPosition:"bottom-end",onClick:function(){function R(){return P(!E)}return R}()})}),N&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Input,{width:20,placeholder:"Search...",value:S,onInput:function(){function R(O){return I(O.target.value)}return R}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"magnifying-glass",selected:N,tooltip:"Toggle search field",tooltipPosition:"bottom-end",onClick:function(){function R(){V(!N),I("")}return R}()})})]}),children:M.map(function(R){var O=R.key,F=R.gear,_=12,U=Object.keys(d.selected_gears).includes(O),z=F.cost===1?F.cost+" Point":F.cost+" Points",$=(0,e.createComponentVNode)(2,o.Box,{children:[F.name.length>_&&(0,e.createComponentVNode)(2,o.Box,{children:F.name}),F.gear_tier>C&&(0,e.createComponentVNode)(2,o.Box,{mt:F.name.length>_&&1.5,textColor:"red",children:"That gear is only available at a higher donation tier than you are on."})]}),G=(0,e.createFragment)([F.allowed_roles&&(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:"user",tooltip:(0,e.createComponentVNode)(2,o.Section,{m:-1,title:"Allowed Roles",children:F.allowed_roles.map(function(J){return(0,e.createComponentVNode)(2,o.Box,{children:J},J)})}),tooltipPosition:"left"}),Object.entries(F.tweaks).map(function(J){var se=J[0],ie=J[1];return ie.map(function(me){return(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:me.icon,tooltip:me.tooltip,tooltipPosition:"top"},se)})}),(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:"info",tooltip:F.desc,tooltipPosition:"top"})],0),X=(0,e.createComponentVNode)(2,o.Box,{class:"Loadout-InfoBox",children:[(0,e.createComponentVNode)(2,o.Box,{style:{"flex-grow":1},fontSize:1,color:"gold",opacity:.75,children:F.gear_tier>0&&"Tier "+F.gear_tier}),(0,e.createComponentVNode)(2,o.Box,{fontSize:.75,opacity:.66,children:z})]});return(0,e.createComponentVNode)(2,o.ImageButton,{m:.5,imageSize:84,dmIcon:F.icon,dmIconState:F.icon_state,tooltip:(F.name.length>_||F.gear_tier>0)&&$,tooltipPosition:"bottom",selected:U,disabled:F.gear_tier>C||h+F.cost>v&&!U,buttons:G,buttonsAlt:X,onClick:function(){function J(){return s("toggle_gear",{gear:O})}return J}(),children:F.name},O)})})},g=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=m.setTweakedGear,h=Object.entries(d.gears).reduce(function(v,p){var N=p[0],V=p[1],S=Object.entries(V).filter(function(I){var L=I[0];return Object.keys(d.selected_gears).includes(L)}).map(function(I){var L=I[0],w=I[1];return Object.assign({key:L},w)});return v.concat(S)},[]);return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Selected Equipment",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",tooltip:"Clear Loadout",tooltipPosition:"bottom-end",onClick:function(){function v(){return s("clear_loadout")}return v}()}),children:h.map(function(v){return(0,e.createComponentVNode)(2,o.ImageButton,{fluid:!0,imageSize:32,dmIcon:v.icon,dmIconState:v.icon_state,buttons:(0,e.createFragment)([Object.entries(v.tweaks).length>0&&(0,e.createComponentVNode)(2,o.Button,{translucent:!0,icon:"gears",iconColor:"gray",width:"33px",onClick:function(){function p(){return C(v)}return p}()}),(0,e.createComponentVNode)(2,o.Button,{translucent:!0,icon:"times",iconColor:"red",width:"32px",onClick:function(){function p(){return s("toggle_gear",{gear:v.key})}return p}()})],0),children:v.name},v.key)})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.ProgressBar,{value:d.gear_slots,maxValue:d.max_gear_slots,ranges:{bad:[d.max_gear_slots,1/0],average:[d.max_gear_slots*.66,d.max_gear_slots],good:[0,d.max_gear_slots*.66]},children:(0,e.createComponentVNode)(2,o.Box,{textAlign:"center",children:["Used points ",d.gear_slots,"/",d.max_gear_slots]})})})})]})},i=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=m.tweakedGear,h=m.setTweakedGear;return(0,e.createComponentVNode)(2,o.Dimmer,{children:(0,e.createComponentVNode)(2,o.Box,{className:"Loadout-Modal__background",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,width:20,height:20,title:C.name,buttons:(0,e.createComponentVNode)(2,o.Button,{color:"red",icon:"times",tooltip:"Close",tooltipPosition:"top",onClick:function(){function v(){return h("")}return v}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:Object.entries(C.tweaks).map(function(v){var p=v[0],N=v[1];return N.map(function(V){var S=d.selected_gears[C.key][p];return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:V.name,color:S?"":"gray",buttons:(0,e.createComponentVNode)(2,o.Button,{color:"transparent",icon:"pen",onClick:function(){function I(){return s("set_tweak",{gear:C.key,tweak:p})}return I}()}),children:[S||"Default",(0,e.createComponentVNode)(2,o.Box,{inline:!0,ml:1,width:1,height:1,verticalAlign:"middle",style:{"background-color":""+S}})]},p)})})})})})})}},77613:function(T,r,n){"use strict";r.__esModule=!0,r.MODsuitContent=r.MODsuit=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(I,L){var w=I.name,A=I.value,x=I.module_ref,E=(0,a.useBackend)(L),P=E.act;return(0,e.createComponentVNode)(2,t.NumberInput,{value:A,minValue:-50,maxValue:50,stepPixelSize:5,width:"39px",onChange:function(){function D(M,R){return P("configure",{key:w,value:R,ref:x})}return D}()})},b=function(I,L){var w=I.name,A=I.value,x=I.module_ref,E=(0,a.useBackend)(L),P=E.act;return(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:A,onClick:function(){function D(){return P("configure",{key:w,value:!A,ref:x})}return D}()})},y=function(I,L){var w=I.name,A=I.value,x=I.module_ref,E=(0,a.useBackend)(L),P=E.act;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"paint-brush",onClick:function(){function D(){return P("configure",{key:w,ref:x})}return D}()}),(0,e.createComponentVNode)(2,t.ColorBox,{color:A,mr:.5})],4)},B=function(I,L){var w=I.name,A=I.value,x=I.values,E=I.module_ref,P=(0,a.useBackend)(L),D=P.act;return(0,e.createComponentVNode)(2,t.Dropdown,{displayText:A,options:x,onSelected:function(){function M(R){return D("configure",{key:w,value:R,ref:E})}return M}()})},k=function(I,L){var w=I.name,A=I.display_name,x=I.type,E=I.value,P=I.values,D=I.module_ref,M={number:(0,e.normalizeProps)((0,e.createComponentVNode)(2,f,Object.assign({},I))),bool:(0,e.normalizeProps)((0,e.createComponentVNode)(2,b,Object.assign({},I))),color:(0,e.normalizeProps)((0,e.createComponentVNode)(2,y,Object.assign({},I))),list:(0,e.normalizeProps)((0,e.createComponentVNode)(2,B,Object.assign({},I)))};return(0,e.createComponentVNode)(2,t.Box,{children:[A,": ",M[x]]})},g=function(I,L){var w=I.active,A=I.userradiated,x=I.usertoxins,E=I.usermaxtoxins,P=I.threatlevel;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Radiation Level",color:w&&A?"bad":"good",children:w&&A?"IRRADIATED!":"RADIATION-FREE"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxins Level",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?x/E:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:x})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Hazard Level",color:w&&P?"bad":"good",bold:!0,children:w&&P?P:0})})]})},i=function(I,L){var w=I.active,A=I.userhealth,x=I.usermaxhealth,E=I.userbrute,P=I.userburn,D=I.usertoxin,M=I.useroxy;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?A/x:0,ranges:{good:[.5,1/0],average:[.2,.5],bad:[-1/0,.2]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?A:0})})}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Brute",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?E/x:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?E:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Burn",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?P/x:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?P:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxin",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?D/x:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?D:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Suffocation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?M/x:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?M:0})})})})]})],4)},c=function(I,L){var w=I.active,A=I.statustime,x=I.statusid,E=I.statushealth,P=I.statusmaxhealth,D=I.statusbrute,M=I.statusburn,R=I.statustoxin,O=I.statusoxy,F=I.statustemp,_=I.statusnutrition,U=I.statusfingerprints,z=I.statusdna,$=I.statusviruses;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Operation Time",children:w?A:"00:00:00"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Operation Number",children:w?x||"0":"???"})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?E/P:0,ranges:{good:[.5,1/0],average:[.2,.5],bad:[-1/0,.2]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?E:0})})}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Brute",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?D/P:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?D:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Burn",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?M/P:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?M:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxin",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?R/P:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:R})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Suffocation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?O/P:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:O})})})})]}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Body Temperature",children:w?F:0})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Nutrition Status",children:w?_:0})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"DNA",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fingerprints",children:w?U:"???"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unique Enzymes",children:w?z:"???"})]})}),!!w&&!!$&&(0,e.createComponentVNode)(2,t.Section,{title:"Diseases",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"signature",tooltip:"Name",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"wind",tooltip:"Type",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"bolt",tooltip:"Stage",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"flask",tooltip:"Cure",tooltipPosition:"top"})})]}),$.map(function(G){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.type}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[G.stage,"/",G.maxstage]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.cure})]},G.name)})]})})],0)},m={rad_counter:g,health_analyzer:i,status_readout:c},l=function(){return(0,e.createComponentVNode)(2,t.Section,{align:"center",fill:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{color:"red",name:"exclamation-triangle",size:15}),(0,e.createComponentVNode)(2,t.Box,{fontSize:"30px",color:"red",children:"ERROR: INTERFACE UNRESPONSIVE"})]})},u=function(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data;return(0,e.createComponentVNode)(2,t.Dimmer,{children:(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",color:"blue",children:"SUIT UNPOWERED"})})})},s=function(I,L){var w=I.configuration_data,A=I.module_ref,x=Object.keys(w);return(0,e.createComponentVNode)(2,t.Dimmer,{backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[x.map(function(E){var P=w[E];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,k,{name:E,display_name:P.display_name,type:P.type,value:P.value,values:P.values,module_ref:A})},P.key)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:I.onExit,icon:"times",textAlign:"center",children:"Exit"})})})]})})},d=function(I){switch(I){case 1:return"Use";case 2:return"Toggle";case 3:return"Select"}},C=function(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.active,P=x.malfunctioning,D=x.locked,M=x.open,R=x.selected_module,O=x.complexity,F=x.complexity_max,_=x.wearer_name,U=x.wearer_job,z=P?"Malfunctioning":E?"Active":"Inactive";return(0,e.createComponentVNode)(2,t.Section,{title:"Parameters",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:E?"Deactivate":"Activate",onClick:function(){function $(){return A("activate")}return $}()}),children:z}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Lock",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:D?"lock-open":"lock",content:D?"Unlock":"Lock",onClick:function(){function $(){return A("lock")}return $}()}),children:D?"Locked":"Unlocked"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cover",children:M?"Open":"Closed"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Selected Module",children:R||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Complexity",children:[O," (",F,")"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Occupant",children:[_,", ",U]})]})})},h=function(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.active,P=x.control,D=x.helmet,M=x.chestplate,R=x.gauntlets,O=x.boots,F=x.core,_=x.charge;return(0,e.createComponentVNode)(2,t.Section,{title:"Hardware",children:[(0,e.createComponentVNode)(2,t.Collapsible,{title:"Parts",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Control Unit",children:P}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Helmet",children:D||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Chestplate",children:M||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gauntlets",children:R||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Boots",children:O||"None"})]})}),(0,e.createComponentVNode)(2,t.Collapsible,{title:"Core",children:F&&(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Core Type",children:F}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Core Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:_/100,content:_+"%",ranges:{good:[.6,1/0],average:[.3,.6],bad:[-1/0,.3]}})})]})||(0,e.createComponentVNode)(2,t.Box,{color:"bad",textAlign:"center",children:"No Core Detected"})})]})},v=function(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.active,P=x.modules,D=P.filter(function(M){return!!M.id});return(0,e.createComponentVNode)(2,t.Section,{title:"Info",children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:D.length!==0&&D.map(function(M){var R=m[M.id];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[!E&&(0,e.createComponentVNode)(2,u),(0,e.normalizeProps)((0,e.createComponentVNode)(2,R,Object.assign({},M,{active:E})))]},M.ref)})||(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:"No Info Modules Detected"})})})},p=function(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.complexity_max,P=x.modules,D=(0,a.useLocalState)(L,"module_configuration",null),M=D[0],R=D[1];return(0,e.createComponentVNode)(2,t.Section,{title:"Modules",fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:P.length!==0&&P.map(function(O){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Collapsible,{title:O.module_name,children:(0,e.createComponentVNode)(2,t.Section,{children:[M===O.ref&&(0,e.createComponentVNode)(2,s,{configuration_data:O.configuration_data,module_ref:O.ref,onExit:function(){function F(){return R(null)}return F}()}),(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"save",tooltip:"Complexity",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"plug",tooltip:"Idle Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"lightbulb",tooltip:"Active Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"bolt",tooltip:"Use Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"hourglass-half",tooltip:"Cooldown",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"tasks",tooltip:"Actions",tooltipPosition:"top"})})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[O.module_complexity,"/",E]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:O.idle_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:O.active_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:O.use_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[O.cooldown>0&&O.cooldown/10||"0","/",O.cooldown_time/10,"s"]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function F(){return A("select",{ref:O.ref})}return F}(),icon:"bullseye",selected:O.module_active,tooltip:d(O.module_type),tooltipPosition:"left",disabled:!O.module_type}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function F(){return R(O.ref)}return F}(),icon:"cog",selected:M===O.ref,tooltip:"Configure",tooltipPosition:"left",disabled:O.configuration_data.length===0}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function F(){return A("pin",{ref:O.ref})}return F}(),icon:"thumbtack",selected:O.pinned,tooltip:"Pin",tooltipPosition:"left",disabled:!O.module_type})]})]})]}),(0,e.createComponentVNode)(2,t.Box,{children:O.description})]})})},O.ref)})||(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:"No Modules Detected"})})})})},N=r.MODsuitContent=function(){function S(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.ui_theme,P=x.interface_break;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!P,children:!!P&&(0,e.createComponentVNode)(2,l)||(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,C)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,h)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,v)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,p)})]})})}return S}(),V=r.MODsuit=function(){function S(I,L){var w=(0,a.useBackend)(L),A=w.act,x=w.data,E=x.ui_theme,P=x.interface_break;return(0,e.createComponentVNode)(2,o.Window,{theme:E,width:400,height:620,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,N)})})})}return S}()},78624:function(T,r,n){"use strict";r.__esModule=!0,r.MagnetController=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=n(3939),y=new Map([["n",{icon:"arrow-up",tooltip:"Move North"}],["e",{icon:"arrow-right",tooltip:"Move East"}],["s",{icon:"arrow-down",tooltip:"Move South"}],["w",{icon:"arrow-left",tooltip:"Move West"}],["c",{icon:"crosshairs",tooltip:"Move to Magnet"}],["r",{icon:"dice",tooltip:"Move Randomly"}]]),B=r.MagnetController=function(){function k(g,i){var c=(0,t.useBackend)(i),m=c.act,l=c.data,u=l.autolink,s=l.code,d=l.frequency,C=l.linkedMagnets,h=l.magnetConfiguration,v=l.path,p=l.pathPosition,N=l.probing,V=l.powerState,S=l.speed;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:600,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[!u&&(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{content:"Probe",icon:N?"spinner":"sync",iconSpin:!!N,disabled:N,onClick:function(){function I(){return m("probe_magnets")}return I}()}),title:"Magnet Linking",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:(0,a.toFixed)(d/10,1)}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",children:s})]})}),(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{icon:V?"power-off":"times",content:V?"On":"Off",selected:V,onClick:function(){function I(){return m("toggle_power")}return I}()}),title:"Controller Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Speed",children:(0,e.createComponentVNode)(2,o.Slider,{value:S.value,minValue:S.min,maxValue:S.max,onChange:function(){function I(L,w){return m("set_speed",{speed:w})}return I}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Path",children:[Array.from(y.entries()).map(function(I){var L=I[0],w=I[1],A=w.icon,x=w.tooltip;return(0,e.createComponentVNode)(2,o.Button,{icon:A,tooltip:x,onClick:function(){function E(){return m("path_add",{code:L})}return E}()},L)}),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",confirmIcon:"trash",confirmContent:"",float:"right",tooltip:"Reset Path",tooltipPosition:"left",onClick:function(){function I(){return m("path_clear")}return I}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"file-import",float:"right",tooltip:"Manually input path",tooltipPosition:"left",onClick:function(){function I(){return(0,b.modalOpen)(i,"path_custom_input")}return I}()}),(0,e.createComponentVNode)(2,o.BlockQuote,{children:v.map(function(I,L){var w=y.get(I)||{icon:"question"},A=w.icon,x=w.tooltip;return(0,e.createComponentVNode)(2,o.Button.Confirm,{selected:L+2===p,icon:A,confirmIcon:A,confirmContent:"",tooltip:x,onClick:function(){function E(){return m("path_remove",{index:L+1,code:I})}return E}()},L)})})]})]})}),C.map(function(I,L){var w=I.uid,A=I.powerState,x=I.electricityLevel,E=I.magneticField;return(0,e.createComponentVNode)(2,o.Section,{title:"Magnet #"+(L+1)+" Configuration",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:A?"power-off":"times",content:A?"On":"Off",selected:A,onClick:function(){function P(){return m("toggle_magnet_power",{id:w})}return P}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Move Speed",children:(0,e.createComponentVNode)(2,o.Slider,{value:x,minValue:h.electricityLevel.min,maxValue:h.electricityLevel.max,onChange:function(){function P(D,M){return m("set_electricity_level",{id:w,electricityLevel:M})}return P}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Field Size",children:(0,e.createComponentVNode)(2,o.Slider,{value:E,minValue:h.magneticField.min,maxValue:h.magneticField.max,onChange:function(){function P(D,M){return m("set_magnetic_field",{id:w,magneticField:M})}return P}()})})]})},w)})]})]})}return k}()},72106:function(T,r,n){"use strict";r.__esModule=!0,r.MechBayConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.MechBayConsole=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.recharge_port,m=c&&c.mech,l=m&&m.cell,u=m&&m.name;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:155,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:u?"Mech status: "+u:"Mech status",textAlign:"center",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Sync",onClick:function(){function s(){return g("reconnect")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No power port detected. Please re-sync."})||!m&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No mech detected."})||(0,e.createComponentVNode)(2,t.ProgressBar,{value:m.health/m.maxhealth,ranges:{good:[.7,1/0],average:[.3,.7],bad:[-1/0,.3]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No power port detected. Please re-sync."})||!m&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No mech detected."})||!l&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No cell is installed."})||(0,e.createComponentVNode)(2,t.ProgressBar,{value:l.charge/l.maxcharge,ranges:{good:[.7,1/0],average:[.3,.7],bad:[-1/0,.3]},children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:l.charge})," / "+l.maxcharge]})})]})})})})}return b}()},7466:function(T,r,n){"use strict";r.__esModule=!0,r.MechaControlConsole=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=n(25328),y=r.MechaControlConsole=function(){function B(k,g){var i=(0,t.useBackend)(g),c=i.act,m=i.data,l=m.beacons,u=m.stored_data;return u.length?(0,e.createComponentVNode)(2,f.Window,{width:420,height:500,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:"Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"window-close",onClick:function(){function s(){return c("clear_log")}return s}()}),children:u.map(function(s){return(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",children:["(",s.time,")"]}),(0,e.createComponentVNode)(2,o.Box,{children:(0,b.decodeHtmlEntities)(s.message)})]},s.time)})})})}):(0,e.createComponentVNode)(2,f.Window,{width:420,height:500,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:l.length&&l.map(function(s){return(0,e.createComponentVNode)(2,o.Section,{title:s.name,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function d(){return c("send_message",{mt:s.uid})}return d}(),children:"Message"}),(0,e.createComponentVNode)(2,o.Button,{icon:"eye",onClick:function(){function d(){return c("get_log",{mt:s.uid})}return d}(),children:"View Log"}),(0,e.createComponentVNode)(2,o.Button.Confirm,{color:"red",content:"Sabotage",icon:"bomb",onClick:function(){function d(){return c("shock",{mt:s.uid})}return d}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{good:[s.maxHealth*.75,1/0],average:[s.maxHealth*.5,s.maxHealth*.75],bad:[-1/0,s.maxHealth*.5]},value:s.health,maxValue:s.maxHealth})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cell Charge",children:s.cell&&(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{good:[s.cellMaxCharge*.75,1/0],average:[s.cellMaxCharge*.5,s.cellMaxCharge*.75],bad:[-1/0,s.cellMaxCharge*.5]},value:s.cellCharge,maxValue:s.cellMaxCharge})||(0,e.createComponentVNode)(2,o.NoticeBox,{children:"No Cell Installed"})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Air Tank",children:[s.airtank,"kPa"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pilot",children:s.pilot||"Unoccupied"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Location",children:(0,b.toTitleCase)(s.location)||"Unknown"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Active Equipment",children:s.active||"None"}),s.cargoMax&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cargo Space",children:(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{bad:[s.cargoMax*.75,1/0],average:[s.cargoMax*.5,s.cargoMax*.75],good:[-1/0,s.cargoMax*.5]},value:s.cargoUsed,maxValue:s.cargoMax})})||null]})},s.name)})||(0,e.createComponentVNode)(2,o.NoticeBox,{children:"No mecha beacons found."})})})}return B}()},79625:function(T,r,n){"use strict";r.__esModule=!0,r.MedicalRecords=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(3939),b=n(98595),y=n(321),B=n(5485),k=n(22091),g={Minor:"lightgray",Medium:"good",Harmful:"average","Dangerous!":"bad","BIOHAZARD THREAT!":"darkred"},i={"*Deceased*":"deceased","*SSD*":"ssd","Physically Unfit":"physically_unfit",Disabled:"disabled"},c=function(A,x){(0,f.modalOpen)(A,"edit",{field:x.edit,value:x.value})},m=function(A,x){var E=A.args;return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:E.name||"Virus",children:(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Number of stages",children:E.max_stages}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Spread",children:[E.spread_text," Transmission"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Possible cure",children:E.cure}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Notes",children:E.desc}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Severity",color:g[E.severity],children:E.severity})]})})})},l=r.MedicalRecords=function(){function w(A,x){var E=(0,t.useBackend)(x),P=E.data,D=P.loginState,M=P.screen;if(!D.logged_in)return(0,e.createComponentVNode)(2,b.Window,{width:800,height:900,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,B.LoginScreen)})});var R;return M===2?R=(0,e.createComponentVNode)(2,u):M===3?R=(0,e.createComponentVNode)(2,s):M===4?R=(0,e.createComponentVNode)(2,d):M===5?R=(0,e.createComponentVNode)(2,p):M===6?R=(0,e.createComponentVNode)(2,N):M===7&&(R=(0,e.createComponentVNode)(2,V)),(0,e.createComponentVNode)(2,b.Window,{width:800,height:900,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,y.LoginInfo),(0,e.createComponentVNode)(2,k.TemporaryNotice),(0,e.createComponentVNode)(2,L),R]})})]})}return w}(),u=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.records,R=(0,t.useLocalState)(x,"searchText",""),O=R[0],F=R[1],_=(0,t.useLocalState)(x,"sortId","name"),U=_[0],z=_[1],$=(0,t.useLocalState)(x,"sortOrder",!0),G=$[0],X=$[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Manage Records",icon:"wrench",ml:"0.25rem",onClick:function(){function J(){return P("screen",{screen:3})}return J}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{fluid:!0,placeholder:"Search by Name, ID, Physical Status, or Mental Status",onInput:function(){function J(se,ie){return F(ie)}return J}()})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,S,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,S,{id:"id",children:"ID"}),(0,e.createComponentVNode)(2,S,{id:"rank",children:"Assignment"}),(0,e.createComponentVNode)(2,S,{id:"p_stat",children:"Patient Status"}),(0,e.createComponentVNode)(2,S,{id:"m_stat",children:"Mental Status"})]}),M.filter((0,a.createSearch)(O,function(J){return J.name+"|"+J.id+"|"+J.rank+"|"+J.p_stat+"|"+J.m_stat})).sort(function(J,se){var ie=G?1:-1;return J[U].localeCompare(se[U])*ie}).map(function(J){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listRow--"+i[J.p_stat],onClick:function(){function se(){return P("view_record",{view_record:J.ref})}return se}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",J.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:J.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:J.rank}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:J.p_stat}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:J.m_stat})]},J.id)})]})})})],4)},s=function(A,x){var E=(0,t.useBackend)(x),P=E.act;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,translucent:!0,lineHeight:3,icon:"download",content:"Backup to Disk",disabled:!0})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:[(0,e.createComponentVNode)(2,o.Button,{fluid:!0,translucent:!0,lineHeight:3,icon:"upload",content:"Upload from Disk",my:"0.5rem",disabled:!0})," "]}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button.Confirm,{fluid:!0,translucent:!0,lineHeight:3,icon:"trash",content:"Delete All Medical Records",onClick:function(){function D(){return P("del_all_med_records")}return D}()})})]})})},d=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.medical,R=D.printing;return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{height:"235px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"General Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:R?"spinner":"print",disabled:R,iconSpin:!!R,content:"Print Record",ml:"0.5rem",onClick:function(){function O(){return P("print_record")}return O}()}),children:(0,e.createComponentVNode)(2,C)})}),!M||!M.fields?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Medical Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"pen",content:"Create New Record",onClick:function(){function O(){return P("new_med_record")}return O}()}),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"Medical records lost!"]})})})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Medical Data",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",disabled:!!M.empty,content:"Delete Medical Record",onClick:function(){function O(){return P("del_med_record")}return O}()}),children:(0,e.createComponentVNode)(2,h)})}),(0,e.createComponentVNode)(2,v)],4)],0)},C=function(A,x){var E=(0,t.useBackend)(x),P=E.data,D=P.general;return!D||!D.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"General records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:D.fields.map(function(M,R){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:M.field,children:[(0,e.createComponentVNode)(2,o.Box,{height:"20px",inline:!0,children:M.value}),!!M.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",onClick:function(){function O(){return c(x,M)}return O}()})]},R)})})}),!!D.has_photos&&D.photos.map(function(M,R){return(0,e.createComponentVNode)(2,o.Stack.Item,{inline:!0,textAlign:"center",color:"label",ml:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:M,style:{width:"96px","margin-top":"2.5rem","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createVNode)(1,"br"),"Photo #",R+1]},R)})]})},h=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.medical;return!M||!M.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"Medical records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:M.fields.map(function(R,O){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:R.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(R.value),!!R.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:R.line_break?"1rem":"initial",onClick:function(){function F(){return c(x,R)}return F}()})]},O)})})})})},v=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.medical;return(0,e.createComponentVNode)(2,o.Stack.Item,{height:"150px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Comments/Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"comment",content:"Add Entry",onClick:function(){function R(){return(0,f.modalOpen)(x,"add_comment")}return R}()}),children:M.comments.length===0?(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No comments found."}):M.comments.map(function(R,O){return(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:R.header}),(0,e.createVNode)(1,"br"),R.text,(0,e.createComponentVNode)(2,o.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){function F(){return P("del_comment",{del_comment:O+1})}return F}()})]},O)})})})},p=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.virus,R=(0,t.useLocalState)(x,"searchText",""),O=R[0],F=R[1],_=(0,t.useLocalState)(x,"sortId2","name"),U=_[0],z=_[1],$=(0,t.useLocalState)(x,"sortOrder2",!0),G=$[0],X=$[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{ml:"0.25rem",fluid:!0,placeholder:"Search by Name, Max Stages, or Severity",onInput:function(){function J(se,ie){return F(ie)}return J}()})}),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,I,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,I,{id:"max_stages",children:"Max Stages"}),(0,e.createComponentVNode)(2,I,{id:"severity",children:"Severity"})]}),M.filter((0,a.createSearch)(O,function(J){return J.name+"|"+J.max_stages+"|"+J.severity})).sort(function(J,se){var ie=G?1:-1;return J[U].localeCompare(se[U])*ie}).map(function(J){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listVirus--"+J.severity,onClick:function(){function se(){return P("vir",{vir:J.D})}return se}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"virus"})," ",J.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:J.max_stages}),(0,e.createComponentVNode)(2,o.Table.Cell,{color:g[J.severity],children:J.severity})]},J.id)})]})})})})],4)},N=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.goals;return(0,e.createComponentVNode)(2,o.Section,{title:"Virology Goals",fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:M.length!==0&&M.map(function(R){return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:R.name,children:[(0,e.createComponentVNode)(2,o.Table,{children:(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:(0,e.createComponentVNode)(2,o.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,o.ProgressBar,{value:R.delivered,minValue:0,maxValue:R.deliverygoal,ranges:{good:[R.deliverygoal*.5,1/0],average:[R.deliverygoal*.25,R.deliverygoal*.5],bad:[-1/0,R.deliverygoal*.25]},children:[R.delivered," / ",R.deliverygoal," Units"]})})})}),(0,e.createComponentVNode)(2,o.Box,{children:R.report})]})},R.id)})||(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Box,{textAlign:"center",children:"No Goals Detected"})})})})},V=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.medbots;return M.length===0?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"robot",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"There are no Medibots."]})})})}):(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Area"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Chemicals"})]}),M.map(function(R){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listMedbot--"+R.on,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"medical"})," ",R.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[R.area||"Unknown"," (",R.x,", ",R.y,")"]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:R.on?(0,e.createComponentVNode)(2,o.Box,{color:"good",children:"Online"}):(0,e.createComponentVNode)(2,o.Box,{color:"average",children:"Offline"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:R.use_beaker?"Reservoir: "+R.total_volume+"/"+R.maximum_volume:"Using internal synthesizer"})]},R.id)})]})})})},S=function(A,x){var E=(0,t.useLocalState)(x,"sortId","name"),P=E[0],D=E[1],M=(0,t.useLocalState)(x,"sortOrder",!0),R=M[0],O=M[1],F=A.id,_=A.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:P!==F&&"transparent",onClick:function(){function U(){P===F?O(!R):(D(F),O(!0))}return U}(),children:[_,P===F&&(0,e.createComponentVNode)(2,o.Icon,{name:R?"sort-up":"sort-down",ml:"0.25rem;"})]})})},I=function(A,x){var E=(0,t.useLocalState)(x,"sortId2","name"),P=E[0],D=E[1],M=(0,t.useLocalState)(x,"sortOrder2",!0),R=M[0],O=M[1],F=A.id,_=A.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:P!==F&&"transparent",onClick:function(){function U(){P===F?O(!R):(D(F),O(!0))}return U}(),children:[_,P===F&&(0,e.createComponentVNode)(2,o.Icon,{name:R?"sort-up":"sort-down",ml:"0.25rem;"})]})})},L=function(A,x){var E=(0,t.useBackend)(x),P=E.act,D=E.data,M=D.screen,R=D.general;return(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:M===2,onClick:function(){function O(){P("screen",{screen:2})}return O}(),children:"List Records"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"database",selected:M===5,onClick:function(){function O(){P("screen",{screen:5})}return O}(),children:"Virus Database"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"vial",selected:M===6,onClick:function(){function O(){P("screen",{screen:6})}return O}(),children:"Virology Goals"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"plus-square",selected:M===7,onClick:function(){function O(){return P("screen",{screen:7})}return O}(),children:"Medibot Tracking"}),M===3&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"wrench",selected:M===3,children:"Record Maintenance"}),M===4&&R&&!R.empty&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"file",selected:M===4,children:["Record: ",R.fields[0].value]})]})})};(0,f.modalRegisterBodyOverride)("virus",m)},54989:function(T,r,n){"use strict";r.__esModule=!0,r.MerchVendor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=g.product,s=g.productImage,d=g.productCategory,C=l.user_money;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+s,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}})}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:u.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{disabled:u.price>C,icon:"shopping-cart",content:u.price,textAlign:"left",onClick:function(){function h(){return m("purchase",{name:u.name,category:d})}return h}()})})]})},b=function(g,i){var c=(0,a.useBackend)(i),m=c.data,l=(0,a.useLocalState)(i,"tabIndex",1),u=l[0],s=m.products,d=m.imagelist,C=["apparel","toy","decoration"];return(0,e.createComponentVNode)(2,t.Table,{children:s[C[u]].map(function(h){return(0,e.createComponentVNode)(2,f,{product:h,productImage:d[h.path],productCategory:C[u]},h.name)})})},y=r.MerchVendor=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.user_cash,s=l.inserted_cash;return(0,e.createComponentVNode)(2,o.Window,{title:"Merch Computer",width:450,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"User",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{color:"light-grey",inline:!0,mr:"0.5rem",children:["There is ",(0,e.createVNode)(1,"b",null,s,0)," credits inserted."]}),(0,e.createComponentVNode)(2,t.Button,{disabled:!s,icon:"money-bill-wave-alt",content:"Dispense Change",textAlign:"left",onClick:function(){function d(){return m("change")}return d}()})],4),children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Doing your job and not getting any recognition at work? Well, welcome to the merch shop! Here, you can buy cool things in exchange for money you earn when you have completed your Job Objectives.",u!==null&&(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:["Your balance is ",(0,e.createVNode)(1,"b",null,[u||0,(0,e.createTextVNode)(" credits")],0),"."]})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Products",children:[(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,b)]})})]})})})}return k}(),B=function(g,i){var c=(0,a.useBackend)(i),m=c.data,l=(0,a.useLocalState)(i,"tabIndex",1),u=l[0],s=l[1],d=m.login_state;return(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"dice",selected:u===1,onClick:function(){function C(){return s(1)}return C}(),children:"Toys"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"flag",selected:u===2,onClick:function(){function C(){return s(2)}return C}(),children:"Decorations"})]})}},87684:function(T,r,n){"use strict";r.__esModule=!0,r.MiningVendor=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=["title","items","gridLayout"];function y(l,u){if(l==null)return{};var s={};for(var d in l)if({}.hasOwnProperty.call(l,d)){if(u.includes(d))continue;s[d]=l[d]}return s}var B={Alphabetical:function(){function l(u,s){return u-s}return l}(),Availability:function(){function l(u,s){return-(u.affordable-s.affordable)}return l}(),Price:function(){function l(u,s){return u.price-s.price}return l}()},k=r.MiningVendor=function(){function l(u,s){var d=(0,t.useLocalState)(s,"gridLayout",!1),C=d[0],h=d[1];return(0,e.createComponentVNode)(2,f.Window,{width:400,height:525,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,c,{gridLayout:C,setGridLayout:h}),(0,e.createComponentVNode)(2,i,{gridLayout:C})]})})})}return l}(),g=function(u,s){var d=(0,t.useBackend)(s),C=d.act,h=d.data,v=h.has_id,p=h.id;return(0,e.createComponentVNode)(2,o.NoticeBox,{success:v,children:v?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Box,{inline:!0,verticalAlign:"middle",style:{float:"left"},children:["Logged in as ",p.name,".",(0,e.createVNode)(1,"br"),"You have ",p.points.toLocaleString("en-US")," points."]}),(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject ID",style:{float:"right"},onClick:function(){function N(){return C("logoff")}return N}()}),(0,e.createComponentVNode)(2,o.Box,{style:{clear:"both"}})],4):"Please insert an ID in order to make purchases."})},i=function(u,s){var d=(0,t.useBackend)(s),C=d.act,h=d.data,v=h.has_id,p=h.id,N=h.items,V=u.gridLayout,S=(0,t.useLocalState)(s,"search",""),I=S[0],L=S[1],w=(0,t.useLocalState)(s,"sort","Alphabetical"),A=w[0],x=w[1],E=(0,t.useLocalState)(s,"descending",!1),P=E[0],D=E[1],M=(0,a.createSearch)(I,function(F){return F[0]}),R=!1,O=Object.entries(N).map(function(F,_){var U=Object.entries(F[1]).filter(M).map(function(z){return z[1].affordable=v&&p.points>=z[1].price,z[1]}).sort(B[A]);if(U.length!==0)return P&&(U=U.reverse()),R=!0,(0,e.createComponentVNode)(2,m,{title:F[0],items:U,gridLayout:V},F[0])});return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:R?O:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No items matching your criteria was found!"})})})},c=function(u,s){var d=u.gridLayout,C=u.setGridLayout,h=(0,t.useLocalState)(s,"search",""),v=h[0],p=h[1],N=(0,t.useLocalState)(s,"sort",""),V=N[0],S=N[1],I=(0,t.useLocalState)(s,"descending",!1),L=I[0],w=I[1];return(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{mt:.2,placeholder:"Search by item name..",width:"100%",onInput:function(){function A(x,E){return p(E)}return A}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:d?"list":"table-cells-large",height:1.75,tooltip:d?"Toggle List Layout":"Toggle Grid Layout",tooltipPosition:"bottom-start",onClick:function(){function A(){return C(!d)}return A}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"30%",children:(0,e.createComponentVNode)(2,o.Dropdown,{selected:"Alphabetical",options:Object.keys(B),width:"100%",onSelected:function(){function A(x){return S(x)}return A}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:L?"arrow-down":"arrow-up",height:1.75,tooltip:L?"Descending order":"Ascending order",tooltipPosition:"bottom-start",onClick:function(){function A(){return w(!L)}return A}()})})]})})},m=function(u,s){var d=(0,t.useBackend)(s),C=d.act,h=d.data,v=u.title,p=u.items,N=u.gridLayout,V=y(u,b);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Collapsible,Object.assign({open:!0,title:v},V,{children:p.map(function(S){return N?(0,e.createComponentVNode)(2,o.ImageButton,{mb:.5,imageSize:57.5,dmIcon:S.icon,dmIconState:S.icon_state,disabled:!h.has_id||h.id.points0&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--unread",children:ae>=10?"9+":ae})}),(0,e.createComponentVNode)(2,s,{icon:"briefcase",title:"Job Openings",selected:O===1,onClick:function(){function le(){return x("jobs")}return le}()}),(0,e.createComponentVNode)(2,o.Divider)]}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:F.map(function(le){return(0,e.createComponentVNode)(2,s,{icon:le.icon,title:le.name,selected:O===2&&F[U-1]===le,onClick:function(){function Z(){return x("channel",{uid:le.uid})}return Z}(),children:le.unread>0&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--unread",children:le.unread>=10?"9+":le.unread})},le)})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Divider),(!!P||!!D)&&(0,e.createFragment)([(0,e.createComponentVNode)(2,s,{security:!0,icon:"exclamation-circle",title:"Edit Wanted Notice",mb:"0.5rem",onClick:function(){function le(){return(0,y.modalOpen)(w,"wanted_notice")}return le}()}),(0,e.createComponentVNode)(2,s,{security:!0,icon:me?"minus-square":"minus-square-o",title:"Censor Mode: "+(me?"On":"Off"),mb:"0.5rem",onClick:function(){function le(){return q(!me)}return le}()}),(0,e.createComponentVNode)(2,o.Divider)],4),(0,e.createComponentVNode)(2,s,{icon:"pen-alt",title:"New Story",mb:"0.5rem",onClick:function(){function le(){return(0,y.modalOpen)(w,"create_story")}return le}()}),(0,e.createComponentVNode)(2,s,{icon:"plus-circle",title:"New Channel",onClick:function(){function le(){return(0,y.modalOpen)(w,"create_channel")}return le}()}),(0,e.createComponentVNode)(2,o.Divider),(0,e.createComponentVNode)(2,s,{icon:R?"spinner":"print",iconSpin:R,title:R?"Printing...":"Print Newspaper",onClick:function(){function le(){return x("print_newspaper")}return le}()}),(0,e.createComponentVNode)(2,s,{icon:M?"volume-mute":"volume-up",title:"Mute: "+(M?"On":"Off"),onClick:function(){function le(){return x("toggle_mute")}return le}()})]})]})}),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,width:"100%",children:[(0,e.createComponentVNode)(2,B.TemporaryNotice),re]})]})})]})}return I}(),s=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=L.icon,P=E===void 0?"":E,D=L.iconSpin,M=L.selected,R=M===void 0?!1:M,O=L.security,F=O===void 0?!1:O,_=L.onClick,U=L.title,z=L.children,$=i(L,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({className:(0,a.classes)(["Newscaster__menuButton",R&&"Newscaster__menuButton--selected",F&&"Newscaster__menuButton--security"]),onClick:_},$,{children:[R&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--selectedBar"}),(0,e.createComponentVNode)(2,o.Icon,{name:P,spin:D,size:"2"}),(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--title",children:U}),z]})))},d=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=E.screen,D=E.is_admin,M=E.channel_idx,R=E.channel_can_manage,O=E.channels,F=E.stories,_=E.wanted,U=(0,t.useLocalState)(w,"fullStories",[]),z=U[0],$=U[1],G=(0,t.useLocalState)(w,"censorMode",!1),X=G[0],J=G[1],se=P===2&&M>-1?O[M-1]:null;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[!!_&&(0,e.createComponentVNode)(2,h,{story:_,wanted:!0}),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:se?se.icon:"newspaper",mr:"0.5rem"}),se?se.name:"Headlines"],0),children:F.length>0?F.slice().reverse().map(function(ie){return!z.includes(ie.uid)&&ie.body.length+3>c?Object.assign({},ie,{body_short:ie.body.substr(0,c-4)+"..."}):ie}).map(function(ie,me){return(0,e.createComponentVNode)(2,h,{story:ie},me)}):(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__emptyNotice",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"times",size:"3"}),(0,e.createVNode)(1,"br"),"There are no stories at this time."]})}),!!se&&(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,height:"40%",title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"info-circle",mr:"0.5rem"}),(0,e.createTextVNode)("About")],4),buttons:(0,e.createFragment)([X&&(0,e.createComponentVNode)(2,o.Button,{disabled:!!se.admin&&!D,selected:se.censored,icon:se.censored?"comment-slash":"comment",content:se.censored?"Uncensor Channel":"Censor Channel",mr:"0.5rem",onClick:function(){function ie(){return x("censor_channel",{uid:se.uid})}return ie}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!R,icon:"cog",content:"Manage",onClick:function(){function ie(){return(0,y.modalOpen)(w,"manage_channel",{uid:se.uid})}return ie}()})],0),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description",children:se.description||"N/A"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",children:se.author||"N/A"}),!!D&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Ckey",children:se.author_ckey}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Public",children:se.public?"Yes":"No"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Total Views",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"eye",mr:"0.5rem"}),F.reduce(function(ie,me){return ie+me.view_count},0).toLocaleString()]})]})})]})},C=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=E.jobs,D=E.wanted,M=Object.entries(P).reduce(function(R,O){var F=O[0],_=O[1];return R+_.length},0);return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[!!D&&(0,e.createComponentVNode)(2,h,{story:D,wanted:!0}),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"briefcase",mr:"0.5rem"}),(0,e.createTextVNode)("Job Openings")],4),buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",color:"label",children:"Work for a better future at Nanotrasen"}),children:M>0?m.map(function(R){return Object.assign({},l[R],{id:R,jobs:P[R]})}).filter(function(R){return!!R&&R.jobs.length>0}).map(function(R){return(0,e.createComponentVNode)(2,o.Section,{className:(0,a.classes)(["Newscaster__jobCategory","Newscaster__jobCategory--"+R.id]),title:R.title,buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",color:"label",children:R.fluff_text}),children:R.jobs.map(function(O){return(0,e.createComponentVNode)(2,o.Box,{class:(0,a.classes)(["Newscaster__jobOpening",!!O.is_command&&"Newscaster__jobOpening--command"]),children:["\u2022 ",O.title]},O.title)})},R.id)}):(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__emptyNotice",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"times",size:"3"}),(0,e.createVNode)(1,"br"),"There are no openings at this time."]})}),(0,e.createComponentVNode)(2,o.Section,{height:"17%",children:["Interested in serving Nanotrasen?",(0,e.createVNode)(1,"br"),"Sign up for any of the above position now at the ",(0,e.createVNode)(1,"b",null,"Head of Personnel's Office!",16),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.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."})]})]})},h=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=L.story,D=L.wanted,M=D===void 0?!1:D,R=E.is_admin,O=(0,t.useLocalState)(w,"fullStories",[]),F=O[0],_=O[1],U=(0,t.useLocalState)(w,"censorMode",!1),z=U[0],$=U[1];return(0,e.createComponentVNode)(2,o.Section,{className:(0,a.classes)(["Newscaster__story",M&&"Newscaster__story--wanted"]),title:(0,e.createFragment)([M&&(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-circle",mr:"0.5rem"}),P.censor_flags&2&&"[REDACTED]"||P.title||"News from "+P.author],0),buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",children:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:[!M&&z&&(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:(0,e.createComponentVNode)(2,o.Button,{enabled:P.censor_flags&2,icon:P.censor_flags&2?"comment-slash":"comment",content:P.censor_flags&2?"Uncensor":"Censor",mr:"0.5rem",mt:"-0.25rem",onClick:function(){function G(){return x("censor_story",{uid:P.uid})}return G}()})}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",P.author," |\xA0",!!R&&(0,e.createFragment)([(0,e.createTextVNode)("ckey: "),P.author_ckey,(0,e.createTextVNode)(" |\xA0")],0),!M&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"eye"}),(0,e.createTextVNode)(" "),P.view_count.toLocaleString(),(0,e.createTextVNode)(" |\xA0")],0),(0,e.createComponentVNode)(2,o.Icon,{name:"clock"})," ",(0,f.timeAgo)(P.publish_time,E.world_time)]})]})}),children:(0,e.createComponentVNode)(2,o.Box,{children:P.censor_flags&2?"[REDACTED]":(0,e.createFragment)([!!P.has_photo&&(0,e.createComponentVNode)(2,v,{name:"story_photo_"+P.uid+".png",float:"right",ml:"0.5rem"}),(P.body_short||P.body).split("\n").map(function(G,X){return(0,e.createComponentVNode)(2,o.Box,{children:G||(0,e.createVNode)(1,"br")},X)}),P.body_short&&(0,e.createComponentVNode)(2,o.Button,{content:"Read more..",mt:"0.5rem",onClick:function(){function G(){return _([].concat(F,[P.uid]))}return G}()}),(0,e.createComponentVNode)(2,o.Box,{clear:"right"})],0)})})},v=function(L,w){var A=L.name,x=i(L,g),E=(0,t.useLocalState)(w,"viewingPhoto",""),P=E[0],D=E[1];return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({as:"img",className:"Newscaster__photo",src:A,onClick:function(){function M(){return D(A)}return M}()},x)))},p=function(L,w){var A=(0,t.useLocalState)(w,"viewingPhoto",""),x=A[0],E=A[1];return(0,e.createComponentVNode)(2,o.Modal,{className:"Newscaster__photoZoom",children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",src:x}),(0,e.createComponentVNode)(2,o.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){function P(){return E("")}return P}()})]})},N=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=!!L.args.uid&&E.channels.filter(function(te){return te.uid===L.args.uid}).pop();if(L.id==="manage_channel"&&!P){(0,y.modalClose)(w);return}var D=L.id==="manage_channel",M=!!L.args.is_admin,R=L.args.scanned_user,O=(0,t.useLocalState)(w,"author",(P==null?void 0:P.author)||R||"Unknown"),F=O[0],_=O[1],U=(0,t.useLocalState)(w,"name",(P==null?void 0:P.name)||""),z=U[0],$=U[1],G=(0,t.useLocalState)(w,"description",(P==null?void 0:P.description)||""),X=G[0],J=G[1],se=(0,t.useLocalState)(w,"icon",(P==null?void 0:P.icon)||"newspaper"),ie=se[0],me=se[1],q=(0,t.useLocalState)(w,"isPublic",D?!!(P!=null&&P.public):!1),re=q[0],ae=q[1],le=(0,t.useLocalState)(w,"adminLocked",(P==null?void 0:P.admin)===1||!1),Z=le[0],ne=le[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:D?"Manage "+P.name:"Create New Channel",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!M,width:"100%",value:F,onInput:function(){function te(fe,pe){return _(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",placeholder:"50 characters max.",maxLength:"50",value:z,onInput:function(){function te(fe,pe){return $(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description (optional)",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{multiline:!0,width:"100%",placeholder:"128 characters max.",maxLength:"128",value:X,onInput:function(){function te(fe,pe){return J(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Icon",children:[(0,e.createComponentVNode)(2,o.Input,{disabled:!M,value:ie,width:"35%",mr:"0.5rem",onInput:function(){function te(fe,pe){return me(pe)}return te}()}),(0,e.createComponentVNode)(2,o.Icon,{name:ie,size:"2",verticalAlign:"middle",mr:"0.5rem"})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Accept Public Stories?",children:(0,e.createComponentVNode)(2,o.Button,{selected:re,icon:re?"toggle-on":"toggle-off",content:re?"Yes":"No",onClick:function(){function te(){return ae(!re)}return te}()})}),M&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:Z,icon:Z?"lock":"lock-open",content:Z?"On":"Off",tooltip:"Locking this channel will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function te(){return ne(!Z)}return te}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:F.trim().length===0||z.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function te(){(0,y.modalAnswer)(w,L.id,"",{author:F,name:z.substr(0,49),description:X.substr(0,128),icon:ie,public:re?1:0,admin_locked:Z?1:0})}return te}()})]})},V=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=E.photo,D=E.channels,M=E.channel_idx,R=M===void 0?-1:M,O=!!L.args.is_admin,F=L.args.scanned_user,_=D.slice().sort(function(te,fe){if(R<0)return 0;var pe=D[R-1];if(pe.uid===te.uid)return-1;if(pe.uid===fe.uid)return 1}).filter(function(te){return O||!te.frozen&&(te.author===F||!!te.public)}),U=(0,t.useLocalState)(w,"author",F||"Unknown"),z=U[0],$=U[1],G=(0,t.useLocalState)(w,"channel",_.length>0?_[0].name:""),X=G[0],J=G[1],se=(0,t.useLocalState)(w,"title",""),ie=se[0],me=se[1],q=(0,t.useLocalState)(w,"body",""),re=q[0],ae=q[1],le=(0,t.useLocalState)(w,"adminLocked",!1),Z=le[0],ne=le[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:"Create New Story",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!O,width:"100%",value:z,onInput:function(){function te(fe,pe){return $(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Channel",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Dropdown,{selected:X,options:_.map(function(te){return te.name}),mb:"0",width:"100%",onSelected:function(){function te(fe){return J(fe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Divider),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",placeholder:"128 characters max.",maxLength:"128",value:ie,onInput:function(){function te(fe,pe){return me(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Story Text",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{fluid:!0,multiline:!0,placeholder:"1024 characters max.",maxLength:"1024",rows:"8",width:"100%",value:re,onInput:function(){function te(fe,pe){return ae(pe)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{icon:"image",selected:P,content:P?"Eject: "+P.name:"Insert Photo",tooltip:!P&&"Attach a photo to this story by holding the photograph in your hand.",onClick:function(){function te(){return x(P?"eject_photo":"attach_photo")}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Preview",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Section,{noTopPadding:!0,title:ie,maxHeight:"13.5rem",overflow:"auto",children:(0,e.createComponentVNode)(2,o.Box,{mt:"0.5rem",children:[!!P&&(0,e.createComponentVNode)(2,v,{name:"inserted_photo_"+P.uid+".png",float:"right"}),re.split("\n").map(function(te,fe){return(0,e.createComponentVNode)(2,o.Box,{children:te||(0,e.createVNode)(1,"br")},fe)}),(0,e.createComponentVNode)(2,o.Box,{clear:"right"})]})})}),O&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:Z,icon:Z?"lock":"lock-open",content:Z?"On":"Off",tooltip:"Locking this story will make it censorable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function te(){return ne(!Z)}return te}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:z.trim().length===0||X.trim().length===0||ie.trim().length===0||re.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function te(){(0,y.modalAnswer)(w,"create_story","",{author:z,channel:X,title:ie.substr(0,127),body:re.substr(0,1023),admin_locked:Z?1:0})}return te}()})]})},S=function(L,w){var A=(0,t.useBackend)(w),x=A.act,E=A.data,P=E.photo,D=E.wanted,M=!!L.args.is_admin,R=L.args.scanned_user,O=(0,t.useLocalState)(w,"author",(D==null?void 0:D.author)||R||"Unknown"),F=O[0],_=O[1],U=(0,t.useLocalState)(w,"name",(D==null?void 0:D.title.substr(8))||""),z=U[0],$=U[1],G=(0,t.useLocalState)(w,"description",(D==null?void 0:D.body)||""),X=G[0],J=G[1],se=(0,t.useLocalState)(w,"adminLocked",(D==null?void 0:D.admin_locked)===1||!1),ie=se[0],me=se[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:"Manage Wanted Notice",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Authority",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!M,width:"100%",value:F,onInput:function(){function q(re,ae){return _(ae)}return q}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",value:z,maxLength:"128",onInput:function(){function q(re,ae){return $(ae)}return q}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{multiline:!0,width:"100%",value:X,maxLength:"512",rows:"4",onInput:function(){function q(re,ae){return J(ae)}return q}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:[(0,e.createComponentVNode)(2,o.Button,{icon:"image",selected:P,content:P?"Eject: "+P.name:"Insert Photo",tooltip:!P&&"Attach a photo to this wanted notice by holding the photograph in your hand.",tooltipPosition:"top",onClick:function(){function q(){return x(P?"eject_photo":"attach_photo")}return q}()}),!!P&&(0,e.createComponentVNode)(2,v,{name:"inserted_photo_"+P.uid+".png",float:"right"})]}),M&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:ie,icon:ie?"lock":"lock-open",content:ie?"On":"Off",tooltip:"Locking this wanted notice will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function q(){return me(!ie)}return q}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:!D,icon:"eraser",color:"danger",content:"Clear",position:"absolute",right:"7.25rem",bottom:"-0.75rem",onClick:function(){function q(){x("clear_wanted_notice"),(0,y.modalClose)(w)}return q}()}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:F.trim().length===0||z.trim().length===0||X.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function q(){(0,y.modalAnswer)(w,L.id,"",{author:F,name:z.substr(0,127),description:X.substr(0,511),admin_locked:ie?1:0})}return q}()})]})};(0,y.modalRegisterBodyOverride)("create_channel",N),(0,y.modalRegisterBodyOverride)("manage_channel",N),(0,y.modalRegisterBodyOverride)("create_story",V),(0,y.modalRegisterBodyOverride)("wanted_notice",S)},48286:function(T,r,n){"use strict";r.__esModule=!0,r.Noticeboard=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=r.Noticeboard=function(){function y(B,k){var g=(0,t.useBackend)(k),i=g.act,c=g.data,m=c.papers;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:300,theme:"noticeboard",children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:m.map(function(l){return(0,e.createComponentVNode)(2,o.Stack.Item,{align:"center",width:"22.45%",height:"85%",onClick:function(){function u(){return i("interact",{paper:l.ref})}return u}(),onContextMenu:function(){function u(s){s.preventDefault(),i("showFull",{paper:l.ref})}return u}(),children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,fontSize:.75,title:l.name,children:(0,a.decodeHtmlEntities)(l.contents)})},l.ref)})})})})}return y}()},41166:function(T,r,n){"use strict";r.__esModule=!0,r.NuclearBomb=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.NuclearBomb=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;return i.extended?(0,e.createComponentVNode)(2,o.Window,{width:350,height:290,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auth Disk",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.authdisk?"eject":"id-card",selected:i.authdisk,content:i.diskname?i.diskname:"-----",tooltip:i.authdisk?"Eject Disk":"Insert Disk",onClick:function(){function c(){return g("auth")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auth Code",children:(0,e.createComponentVNode)(2,t.Button,{icon:"key",disabled:!i.authdisk,selected:i.authcode,content:i.codemsg,onClick:function(){function c(){return g("code")}return c}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Arming & Disarming",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Bolted to floor",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.anchored?"check":"times",selected:i.anchored,disabled:!i.authdisk,content:i.anchored?"YES":"NO",onClick:function(){function c(){return g("toggle_anchor")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Time Left",children:(0,e.createComponentVNode)(2,t.Button,{icon:"stopwatch",content:i.time,disabled:!i.authfull,tooltip:"Set Timer",onClick:function(){function c(){return g("set_time")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.safety?"check":"times",selected:i.safety,disabled:!i.authfull,content:i.safety?"ON":"OFF",tooltip:i.safety?"Disable Safety":"Enable Safety",onClick:function(){function c(){return g("toggle_safety")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Arm/Disarm",children:(0,e.createComponentVNode)(2,t.Button,{icon:(i.timer,"bomb"),disabled:i.safety||!i.authfull,color:"red",content:i.timer?"DISARM THE NUKE":"ARM THE NUKE",onClick:function(){function c(){return g("toggle_armed")}return c}()})})]})})]})}):(0,e.createComponentVNode)(2,o.Window,{width:350,height:115,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Deployment",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"exclamation-triangle",content:"Deploy Nuclear Device (will bolt device to floor)",onClick:function(){function c(){return g("deploy")}return c}()})})})})}return b}()},52416:function(T,r,n){"use strict";r.__esModule=!0,r.NumberInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(92986),f=n(72253),b=n(36036),y=n(98595),B=r.NumberInputModal=function(){function g(i,c){var m=(0,f.useBackend)(c),l=m.act,u=m.data,s=u.init_value,d=u.large_buttons,C=u.message,h=C===void 0?"":C,v=u.timeout,p=u.title,N=(0,f.useLocalState)(c,"input",s),V=N[0],S=N[1],I=function(){function A(x){x!==V&&S(x)}return A}(),L=function(){function A(x){x!==V&&S(x)}return A}(),w=140+Math.max(Math.ceil(h.length/3),h.length>0&&d?5:0);return(0,e.createComponentVNode)(2,y.Window,{title:p,width:270,height:w,children:[v&&(0,e.createComponentVNode)(2,a.Loader,{value:v}),(0,e.createComponentVNode)(2,y.Window.Content,{onKeyDown:function(){function A(x){var E=window.event?x.which:x.keyCode;E===o.KEY_ENTER&&l("submit",{entry:V}),E===o.KEY_ESCAPE&&l("cancel")}return A}(),children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Box,{color:"label",children:h})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,k,{input:V,onClick:L,onChange:I})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,t.InputButtons,{input:V})})]})})})]})}return g}(),k=function(i,c){var m=(0,f.useBackend)(c),l=m.act,u=m.data,s=u.min_value,d=u.max_value,C=u.init_value,h=u.round_value,v=i.input,p=i.onClick,N=i.onChange,V=Math.round(v!==s?Math.max(v/2,s):d/2),S=v===s&&s>0||v===1;return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===s,icon:"angle-double-left",onClick:function(){function I(){return p(s)}return I}(),tooltip:v===s?"Min":"Min ("+s+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.RestrictedInput,{autoFocus:!0,autoSelect:!0,fluid:!0,allowFloats:!h,minValue:s,maxValue:d,onChange:function(){function I(L,w){return N(w)}return I}(),onEnter:function(){function I(L,w){return l("submit",{entry:w})}return I}(),value:v})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===d,icon:"angle-double-right",onClick:function(){function I(){return p(d)}return I}(),tooltip:v===d?"Max":"Max ("+d+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:S,icon:"divide",onClick:function(){function I(){return p(V)}return I}(),tooltip:S?"Split":"Split ("+V+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===C,icon:"redo",onClick:function(){function I(){return p(C)}return I}(),tooltip:C?"Reset ("+C+")":"Reset"})})]})}},1218:function(T,r,n){"use strict";r.__esModule=!0,r.OperatingComputer=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(98595),f=n(36036),b=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],y=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],B={average:[.25,.5],bad:[.5,1/0]},k=["bad","average","average","good","average","average","bad"],g=r.OperatingComputer=function(){function l(u,s){var d=(0,t.useBackend)(s),C=d.act,h=d.data,v=h.hasOccupant,p=h.choice,N;return p?N=(0,e.createComponentVNode)(2,m):N=v?(0,e.createComponentVNode)(2,i):(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,o.Window,{width:650,height:455,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{selected:!p,icon:"user",onClick:function(){function V(){return C("choiceOff")}return V}(),children:"Patient"}),(0,e.createComponentVNode)(2,f.Tabs.Tab,{selected:!!p,icon:"cog",onClick:function(){function V(){return C("choiceOn")}return V}(),children:"Options"})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,children:N})})]})})})}return l}(),i=function(u,s){var d=(0,t.useBackend)(s),C=d.data,h=C.occupant;return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,title:"Patient",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Name",children:h.name}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Status",color:b[h.stat][0],children:b[h.stat][1]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:h.maxHealth,value:h.health/h.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),y.map(function(v,p){return(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:v[0]+" Damage",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:"100",value:h[v[1]]/100,ranges:B,children:(0,a.round)(h[v[1]])},p)},p)}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:h.maxTemp,value:h.bodyTemperature/h.maxTemp,color:k[h.temperatureSuitability+3],children:[(0,a.round)(h.btCelsius),"\xB0C, ",(0,a.round)(h.btFaren),"\xB0F"]})}),!!h.hasBlood&&(0,e.createFragment)([(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Blood Level",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:h.bloodMax,value:h.bloodLevel/h.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[h.bloodPercent,"%, ",h.bloodLevel,"cl"]})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Pulse",children:[h.pulse," BPM"]})],4)]})})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Current Procedure",level:"2",children:h.inSurgery?(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Procedure",children:h.surgeryName}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Next Step",children:h.stepName})]}):(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No procedure ongoing."})})})]})},c=function(){return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No patient detected."]})})},m=function(u,s){var d=(0,t.useBackend)(s),C=d.act,h=d.data,v=h.verbose,p=h.health,N=h.healthAlarm,V=h.oxy,S=h.oxyAlarm,I=h.crit;return(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Loudspeaker",children:(0,e.createComponentVNode)(2,f.Button,{selected:v,icon:v?"toggle-on":"toggle-off",content:v?"On":"Off",onClick:function(){function L(){return C(v?"verboseOff":"verboseOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health Announcer",children:(0,e.createComponentVNode)(2,f.Button,{selected:p,icon:p?"toggle-on":"toggle-off",content:p?"On":"Off",onClick:function(){function L(){return C(p?"healthOff":"healthOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health Announcer Threshold",children:(0,e.createComponentVNode)(2,f.Knob,{bipolar:!0,minValue:-100,maxValue:100,value:N,stepPixelSize:5,ml:"0",onChange:function(){function L(w,A){return C("health_adj",{new:A})}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Oxygen Alarm",children:(0,e.createComponentVNode)(2,f.Button,{selected:V,icon:V?"toggle-on":"toggle-off",content:V?"On":"Off",onClick:function(){function L(){return C(V?"oxyOff":"oxyOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Oxygen Alarm Threshold",children:(0,e.createComponentVNode)(2,f.Knob,{bipolar:!0,minValue:-100,maxValue:100,value:S,stepPixelSize:5,ml:"0",onChange:function(){function L(w,A){return C("oxy_adj",{new:A})}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Critical Alert",children:(0,e.createComponentVNode)(2,f.Button,{selected:I,icon:I?"toggle-on":"toggle-off",content:I?"On":"Off",onClick:function(){function L(){return C(I?"critOff":"critOn")}return L}()})})]})}},46892:function(T,r,n){"use strict";r.__esModule=!0,r.Orbit=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(35840);function y(d,C){var h=typeof Symbol!="undefined"&&d[Symbol.iterator]||d["@@iterator"];if(h)return(h=h.call(d)).next.bind(h);if(Array.isArray(d)||(h=B(d))||C&&d&&typeof d.length=="number"){h&&(d=h);var v=0;return function(){return v>=d.length?{done:!0}:{done:!1,value:d[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function B(d,C){if(d){if(typeof d=="string")return k(d,C);var h={}.toString.call(d).slice(8,-1);return h==="Object"&&d.constructor&&(h=d.constructor.name),h==="Map"||h==="Set"?Array.from(d):h==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(h)?k(d,C):void 0}}function k(d,C){(C==null||C>d.length)&&(C=d.length);for(var h=0,v=Array(C);hh},m=function(C,h){var v=C.name,p=h.name;if(!v||!p)return 0;var N=v.match(g),V=p.match(g);if(N&&V&&v.replace(g,"")===p.replace(g,"")){var S=parseInt(N[1],10),I=parseInt(V[1],10);return S-I}return c(v,p)},l=function(C,h){var v=C.searchText,p=C.source,N=C.title,V=C.color,S=C.sorted,I=p.filter(i(v));return S&&I.sort(m),p.length>0&&(0,e.createComponentVNode)(2,o.Section,{title:N+" - ("+p.length+")",children:I.map(function(L){return(0,e.createComponentVNode)(2,u,{thing:L,color:V},L.name)})})},u=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=C.color,V=C.thing;return(0,e.createComponentVNode)(2,o.Button,{color:N,tooltip:V.assigned_role?(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",mr:"0.5em",className:(0,b.classes)(["job_icons16x16",V.assigned_role_sprite])})," ",V.assigned_role]}):"",tooltipPosition:"bottom",onClick:function(){function S(){return p("orbit",{ref:V.ref})}return S}(),children:[V.name,V.orbiters&&(0,e.createComponentVNode)(2,o.Box,{inline:!0,ml:1,children:["(",V.orbiters," ",(0,e.createComponentVNode)(2,o.Icon,{name:"eye"}),")"]})]})},s=r.Orbit=function(){function d(C,h){for(var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.alive,S=N.antagonists,I=N.highlights,L=N.response_teams,w=N.tourist,A=N.auto_observe,x=N.dead,E=N.ssd,P=N.ghosts,D=N.misc,M=N.npcs,R=(0,t.useLocalState)(h,"searchText",""),O=R[0],F=R[1],_={},U=y(S),z;!(z=U()).done;){var $=z.value;_[$.antag]===void 0&&(_[$.antag]=[]),_[$.antag].push($)}var G=Object.entries(_);G.sort(function(J,se){return c(J[0],se[0])});var X=function(){function J(se){for(var ie=0,me=[G.map(function(ae){var le=ae[0],Z=ae[1];return Z}),w,I,V,P,E,x,M,D];ie0&&(0,e.createComponentVNode)(2,o.Section,{title:"Antagonists",children:G.map(function(J){var se=J[0],ie=J[1];return(0,e.createComponentVNode)(2,o.Section,{title:se+" - ("+ie.length+")",level:2,children:ie.filter(i(O)).sort(m).map(function(me){return(0,e.createComponentVNode)(2,u,{color:"bad",thing:me},me.name)})},se)})}),I.length>0&&(0,e.createComponentVNode)(2,l,{title:"Highlights",source:I,searchText:O,color:"teal"}),(0,e.createComponentVNode)(2,l,{title:"Response Teams",source:L,searchText:O,color:"purple"}),(0,e.createComponentVNode)(2,l,{title:"Tourists",source:w,searchText:O,color:"violet"}),(0,e.createComponentVNode)(2,l,{title:"Alive",source:V,searchText:O,color:"good"}),(0,e.createComponentVNode)(2,l,{title:"Ghosts",source:P,searchText:O,color:"grey"}),(0,e.createComponentVNode)(2,l,{title:"SSD",source:E,searchText:O,color:"grey"}),(0,e.createComponentVNode)(2,l,{title:"Dead",source:x,searchText:O,sorted:!1}),(0,e.createComponentVNode)(2,l,{title:"NPCs",source:M,searchText:O,sorted:!1}),(0,e.createComponentVNode)(2,l,{title:"Misc",source:D,searchText:O,sorted:!1})]})})}return d}()},15421:function(T,r,n){"use strict";r.__esModule=!0,r.OreRedemption=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=n(9394);function y(d){if(d==null)throw new TypeError("Cannot destructure "+d)}var B=(0,b.createLogger)("OreRedemption"),k=function(C){return C.toLocaleString("en-US")+" pts"},g=r.OreRedemption=function(){function d(C,h){return(0,e.createComponentVNode)(2,f.Window,{width:490,height:750,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,i,{height:"100%"})}),(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,m)]})})})}return d}(),i=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.id,S=N.points,I=N.disk,L=Object.assign({},(y(C),C));return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({},L,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"average",textAlign:"center",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"This machine only accepts ore. Gibtonite is not accepted."]}),(0,e.createComponentVNode)(2,o.Divider),(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Unclaimed Points",color:S>0?"good":"grey",bold:S>0&&"good",children:k(S)})}),(0,e.createComponentVNode)(2,o.Divider),I?(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Design disk",children:[(0,e.createComponentVNode)(2,o.Button,{selected:!0,bold:!0,icon:"eject",content:I.name,tooltip:"Ejects the design disk.",onClick:function(){function w(){return p("eject_disk")}return w}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!I.design||!I.compatible,icon:"upload",content:"Download",tooltip:"Downloads the design on the disk into the machine.",onClick:function(){function w(){return p("download")}return w}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Stored design",children:(0,e.createComponentVNode)(2,o.Box,{color:I.design&&(I.compatible?"good":"bad"),children:I.design||"N/A"})})]}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No design disk inserted."})]})))},c=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.sheets,S=Object.assign({},(y(C),C));return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,height:"20%",children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,className:"OreRedemption__Ores",p:"0"},S,{children:[(0,e.createComponentVNode)(2,l,{title:"Sheets",columns:[["Available","25%"],["Ore Value","15%"],["Smelt","20%"]]}),V.map(function(I){return(0,e.createComponentVNode)(2,u,{ore:I},I.id)})]})))})},m=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.alloys,S=Object.assign({},(y(C),C));return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,className:"OreRedemption__Ores",p:"0"},S,{children:[(0,e.createComponentVNode)(2,l,{title:"Alloys",columns:[["Recipe","50%"],["Available","11%"],["Smelt","20%"]]}),V.map(function(I){return(0,e.createComponentVNode)(2,s,{ore:I},I.id)})]})))})},l=function(C,h){var v;return(0,e.createComponentVNode)(2,o.Box,{className:"OreHeader",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:C.title}),(v=C.columns)==null?void 0:v.map(function(p){return(0,e.createComponentVNode)(2,o.Stack.Item,{basis:p[1],textAlign:"center",color:"label",bold:!0,children:p[0]},p)})]})})},u=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=C.ore;if(!(N.value&&N.amount<=0&&!(["metal","glass"].indexOf(N.id)>-1)))return(0,e.createComponentVNode)(2,o.Box,{className:"SheetLine",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"45%",align:"middle",children:(0,e.createComponentVNode)(2,o.Stack,{align:"center",children:[(0,e.createComponentVNode)(2,o.Stack.Item,{className:(0,a.classes)(["materials32x32",N.id])}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:N.name})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",color:N.amount>=1?"good":"gray",bold:N.amount>=1,align:"center",children:N.amount.toLocaleString("en-US")}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",children:N.value}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"40%",value:0,minValue:0,maxValue:Math.min(N.amount,50),stepPixelSize:6,onChange:function(){function V(S,I){return p(N.value?"sheet":"alloy",{id:N.id,amount:I})}return V}()})})]})})},s=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=C.ore;return(0,e.createComponentVNode)(2,o.Box,{className:"SheetLine",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"7%",align:"middle",children:(0,e.createComponentVNode)(2,o.Box,{className:(0,a.classes)(["alloys32x32",N.id])})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"30%",textAlign:"middle",align:"center",children:N.name}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"35%",textAlign:"middle",color:N.amount>=1?"good":"gray",align:"center",children:N.description}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"10%",textAlign:"center",color:N.amount>=1?"good":"gray",bold:N.amount>=1,align:"center",children:N.amount.toLocaleString("en-US")}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"40%",value:0,minValue:0,maxValue:Math.min(N.amount,50),stepPixelSize:6,onChange:function(){function V(S,I){return p(N.value?"sheet":"alloy",{id:N.id,amount:I})}return V}()})})]})})}},52754:function(T,r,n){"use strict";r.__esModule=!0,r.PAI=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(71253),b=n(70752),y=function(g){var i;try{i=b("./"+g+".js")}catch(m){if(m.code==="MODULE_NOT_FOUND")return(0,f.routingError)("notFound",g);throw m}var c=i[g];return c||(0,f.routingError)("missingExport",g)},B=r.PAI=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.app_template,s=l.app_icon,d=l.app_title,C=y(u);return(0,e.createComponentVNode)(2,o.Window,{width:600,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{p:1,fill:!0,scrollable:!0,title:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:s,mr:1}),d,u!=="pai_main_menu"&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{ml:2,mb:0,content:"Back",icon:"arrow-left",onClick:function(){function h(){return m("Back")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Home",icon:"arrow-up",onClick:function(){function h(){return m("MASTER_back")}return h}()})],4)]}),children:(0,e.createComponentVNode)(2,C)})})})})})}return k}()},85175:function(T,r,n){"use strict";r.__esModule=!0,r.PDA=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(71253),b=n(59395),y=function(c){var m;try{m=b("./"+c+".js")}catch(u){if(u.code==="MODULE_NOT_FOUND")return(0,f.routingError)("notFound",c);throw u}var l=m[c];return l||(0,f.routingError)("missingExport",c)},B=r.PDA=function(){function i(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.app,C=s.owner;if(!C)return(0,e.createComponentVNode)(2,o.Window,{width:350,height:105,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Error",children:"No user data found. Please swipe an ID card."})})});var h=y(d.template);return(0,e.createComponentVNode)(2,o.Window,{width:600,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,k)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,p:1,pb:0,title:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:d.icon,mr:1}),d.name]}),children:(0,e.createComponentVNode)(2,h)})}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:7.5,children:(0,e.createComponentVNode)(2,g)})]})})})}return i}(),k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.idInserted,C=s.idLink,h=s.stationTime,v=s.cartridge_name;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{ml:.5,children:(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",color:"transparent",onClick:function(){function p(){return u("Authenticate")}return p}(),content:d?C:"No ID Inserted"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"sd-card",color:"transparent",onClick:function(){function p(){return u("Eject")}return p}(),content:v?["Eject "+v]:"No Cartridge Inserted"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"right",bold:!0,mr:1,mt:.5,children:h})]})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.app;return(0,e.createComponentVNode)(2,t.Box,{height:"45px",className:"PDA__footer",backgroundColor:"#1b1b1b",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[!!d.has_back&&(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"33%",mr:-.5,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:d.has_back?"white":"disabled",icon:"arrow-alt-circle-left-o",onClick:function(){function C(){return u("Back")}return C}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{basis:d.has_back?"33%":"100%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:d.is_home?"disabled":"white",icon:"home",onClick:function(){function C(){u("Home")}return C}()})})]})})}},68654:function(T,r,n){"use strict";r.__esModule=!0,r.Pacman=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49968),b=r.Pacman=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.active,l=c.anchored,u=c.broken,s=c.emagged,d=c.fuel_type,C=c.fuel_usage,h=c.fuel_stored,v=c.fuel_cap,p=c.is_ai,N=c.tmp_current,V=c.tmp_max,S=c.tmp_overheat,I=c.output_max,L=c.power_gen,w=c.output_set,A=c.has_fuel,x=h/v,E=N/V,P=w*L,D=Math.round(h/C*2),M=Math.round(D/60),R=D>120?M+" minutes":D+" seconds";return(0,e.createComponentVNode)(2,o.Window,{width:500,height:225,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(u||!l)&&(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:[!!u&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"The generator is malfunctioning!"}),!u&&!l&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"The generator needs to be anchored to the floor with a wrench."})]}),!u&&!!l&&(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:m?"power-off":"times",content:m?"On":"Off",tooltip:"Toggles the generator on/off. Requires fuel.",tooltipPosition:"left",disabled:!A,selected:m,onClick:function(){function O(){return i("toggle_power")}return O}()}),children:(0,e.createComponentVNode)(2,t.Flex,{direction:"row",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",className:"ml-1",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power setting",children:[(0,e.createComponentVNode)(2,t.NumberInput,{value:w,minValue:1,maxValue:I*(s?2.5:1),step:1,className:"mt-1",onDrag:function(){function O(F,_){return i("change_power",{change_power:_})}return O}()}),"(",(0,f.formatPower)(P),")"]})})}),(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:E,ranges:{green:[-1/0,.33],orange:[.33,.66],red:[.66,1/0]},children:[N," \u2103"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[S>50&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"CRITICAL OVERHEAT!"}),S>20&&S<=50&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"WARNING: Overheating!"}),S>1&&S<=20&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Temperature High"}),S===0&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Optimal"})]})]})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Fuel",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject Fuel",tooltip:"Ejects fuel. Generator needs to be offline.",tooltipPosition:"left",disabled:m||p||!A,onClick:function(){function O(){return i("eject_fuel")}return O}()}),children:(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Type",children:d}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel level",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:x,ranges:{red:[-1/0,.33],orange:[.33,.66],green:[.66,1/0]},children:[Math.round(h/1e3)," dm\xB3"]})})]})}),(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel usage",children:[C/1e3," dm\xB3/s"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel depletion",children:[!!A&&(C?R:"N/A"),!A&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Out of fuel"})]})]})})]})})],4)]})})}return y}()},1701:function(T,r,n){"use strict";r.__esModule=!0,r.PanDEMIC=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PanDEMIC=function(){function l(u,s){var d=(0,a.useBackend)(s),C=d.data,h=C.beakerLoaded,v=C.beakerContainsBlood,p=C.beakerContainsVirus,N=C.resistances,V=N===void 0?[]:N,S;return h?v?v&&!p&&(S=(0,e.createFragment)([(0,e.createTextVNode)("No disease detected in provided blood sample.")],4)):S=(0,e.createFragment)([(0,e.createTextVNode)("No blood sample found in the loaded container.")],4):S=(0,e.createFragment)([(0,e.createTextVNode)("No container loaded.")],4),(0,e.createComponentVNode)(2,o.Window,{width:575,height:510,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[S&&!p?(0,e.createComponentVNode)(2,t.Section,{title:"Container Information",buttons:(0,e.createComponentVNode)(2,b,{fill:!0,vertical:!0}),children:(0,e.createComponentVNode)(2,t.NoticeBox,{children:S})}):(0,e.createComponentVNode)(2,k),(V==null?void 0:V.length)>0&&(0,e.createComponentVNode)(2,m,{align:"bottom"})]})})})}return l}(),b=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.beakerLoaded;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!v,onClick:function(){function p(){return C("eject_beaker")}return p}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash-alt",confirmIcon:"eraser",content:"Destroy",confirmContent:"Destroy",disabled:!v,onClick:function(){function p(){return C("destroy_eject_beaker")}return p}()})],4)},y=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.beakerContainsVirus,p=u.strain,N=p.commonName,V=p.description,S=p.diseaseAgent,I=p.bloodDNA,L=p.bloodType,w=p.possibleTreatments,A=p.transmissionRoute,x=p.isAdvanced,E=(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood DNA",children:I?(0,e.createVNode)(1,"span",null,I,0,{style:{"font-family":"'Courier New', monospace"}}):"Undetectable"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood Type",children:(0,e.createVNode)(1,"div",null,null,1,{dangerouslySetInnerHTML:{__html:L!=null?L:"Undetectable"}})})],4);if(!v)return(0,e.createComponentVNode)(2,t.LabeledList,{children:E});var P;return x&&(N!=null&&N!=="Unknown"?P=(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print Release Forms",onClick:function(){function D(){return C("print_release_forms",{strain_index:u.strainIndex})}return D}(),style:{"margin-left":"auto"}}):P=(0,e.createComponentVNode)(2,t.Button,{icon:"pen",content:"Name Disease",onClick:function(){function D(){return C("name_strain",{strain_index:u.strainIndex})}return D}(),style:{"margin-left":"auto"}})),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Common Name",className:"common-name-label",children:(0,e.createComponentVNode)(2,t.Stack,{horizontal:!0,align:"center",children:[N!=null?N:"Unknown",P]})}),V&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:V}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Disease Agent",children:S}),E,(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Spread Vector",children:A!=null?A:"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Possible Cures",children:w!=null?w:"None"})]})},B=function(u,s){var d,C=(0,a.useBackend)(s),h=C.act,v=C.data,p=!!v.synthesisCooldown,N=(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:p?"spinner":"clone",iconSpin:p,content:"Clone",disabled:p,onClick:function(){function V(){return h("clone_strain",{strain_index:u.strainIndex})}return V}()}),u.sectionButtons],0);return(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:(d=u.sectionTitle)!=null?d:"Strain Information",buttons:N,children:(0,e.createComponentVNode)(2,y,{strain:u.strain,strainIndex:u.strainIndex})})})},k=function(u,s){var d,C=(0,a.useBackend)(s),h=C.act,v=C.data,p=v.selectedStrainIndex,N=v.strains,V=N[p-1];if(N.length===0)return(0,e.createComponentVNode)(2,t.Section,{title:"Container Information",buttons:(0,e.createComponentVNode)(2,b),children:(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No disease detected in provided blood sample."})});if(N.length===1){var S;return(0,e.createFragment)([(0,e.createComponentVNode)(2,B,{strain:N[0],strainIndex:1,sectionButtons:(0,e.createComponentVNode)(2,b)}),((S=N[0].symptoms)==null?void 0:S.length)>0&&(0,e.createComponentVNode)(2,i,{strain:N[0]})],0)}var I=(0,e.createComponentVNode)(2,b);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Culture Information",fill:!0,buttons:I,children:(0,e.createComponentVNode)(2,t.Flex,{direction:"column",style:{height:"100%"},children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{children:N.map(function(L,w){var A;return(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"virus",selected:p-1===w,onClick:function(){function x(){return h("switch_strain",{strain_index:w+1})}return x}(),children:(A=L.commonName)!=null?A:"Unknown"},w)})})}),(0,e.createComponentVNode)(2,B,{strain:V,strainIndex:p}),((d=V.symptoms)==null?void 0:d.length)>0&&(0,e.createComponentVNode)(2,i,{className:"remove-section-bottom-padding",strain:V})]})})})},g=function(u){return u.reduce(function(s,d){return s+d},0)},i=function(u){var s=u.strain.symptoms;return(0,e.createComponentVNode)(2,t.Flex.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Infection Symptoms",fill:!0,className:u.className,children:(0,e.createComponentVNode)(2,t.Table,{className:"symptoms-table",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Stealth"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Resistance"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Stage Speed"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Transmissibility"})]}),s.map(function(d,C){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.stealth}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.resistance}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.stageSpeed}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.transmissibility})]},C)}),(0,e.createComponentVNode)(2,t.Table.Row,{className:"table-spacer"}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{style:{"font-weight":"bold"},children:"Total"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(d){return d.stealth}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(d){return d.resistance}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(d){return d.stageSpeed}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(d){return d.transmissibility}))})]})]})})})},c=["flask","vial","eye-dropper"],m=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.synthesisCooldown,p=h.beakerContainsVirus,N=h.resistances;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Antibodies",fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{horizontal:!0,wrap:!0,children:N.map(function(V,S){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:c[S%c.length],disabled:!!v,onClick:function(){function I(){return C("clone_vaccine",{resistance_index:S+1})}return I}(),mr:"0.5em"}),V]},S)})})})})}},67921:function(T,r,n){"use strict";r.__esModule=!0,r.ParticleAccelerator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(25328),f=n(79646),b=n(36352),y=n(98595),B=n(35840),k=n(38307),g=function(u){switch(u){case 1:return"north";case 2:return"south";case 4:return"east";case 8:return"west";case 5:return"northeast";case 6:return"southeast";case 9:return"northwest";case 10:return"southwest"}return""},i=r.ParticleAccelerator=function(){function l(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.assembled,p=h.power,N=h.strength,V=h.max_strength,S=h.icon,I=h.layout_1,L=h.layout_2,w=h.layout_3,A=h.orientation;return(0,e.createComponentVNode)(2,y.Window,{width:395,height:v?160:A==="north"||A==="south"?540:465,children:(0,e.createComponentVNode)(2,y.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Control Panel",buttons:(0,e.createComponentVNode)(2,t.Button,{dmIcon:"sync",content:"Connect",onClick:function(){function x(){return C("scan")}return x}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",mb:"5px",children:(0,e.createComponentVNode)(2,t.Box,{color:v?"good":"bad",children:v?"Operational":"Error: Verify Configuration"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:p?"power-off":"times",content:p?"On":"Off",selected:p,disabled:!v,onClick:function(){function x(){return C("power")}return x}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Strength",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:!v||N===0,onClick:function(){function x(){return C("remove_strength")}return x}(),mr:"4px"}),N,(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:!v||N===V,onClick:function(){function x(){return C("add_strength")}return x}(),ml:"4px"})]})]})}),v?"":(0,e.createComponentVNode)(2,t.Section,{title:A?"EM Acceleration Chamber Orientation: "+(0,o.capitalize)(A):"Place EM Acceleration Chamber Next To Console",children:A===0?"":A==="north"||A==="south"?(0,e.createComponentVNode)(2,m):(0,e.createComponentVNode)(2,c)})]})})}return l}(),c=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.assembled,p=h.power,N=h.strength,V=h.max_strength,S=h.icon,I=h.layout_1,L=h.layout_2,w=h.layout_3,A=h.orientation;return(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:(A==="east"?I:w).slice().map(function(x){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})}),(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:L.slice().map(function(x){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})}),(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:(A==="east"?w:I).slice().map(function(x){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})})]})},m=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.assembled,p=h.power,N=h.strength,V=h.max_strength,S=h.icon,I=h.layout_1,L=h.layout_2,w=h.layout_3,A=h.orientation;return(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,f.GridColumn,{width:"40px",children:(A==="north"?I:w).slice().map(function(x){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})}),(0,e.createComponentVNode)(2,f.GridColumn,{children:L.slice().map(function(x){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})}),(0,e.createComponentVNode)(2,f.GridColumn,{width:"40px",children:(A==="north"?w:I).slice().map(function(x){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,tooltip:x.status,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[x.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+x.status,(0,e.createVNode)(1,"br"),"Direction: "+g(x.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:S,dmIconState:x.icon_state,dmDirection:x.dir,style:{"border-style":"solid","border-width":"2px","border-color":x.status==="good"?"green":x.status==="Incomplete"?"orange":"red",padding:"2px"}})})},x.name)})})]})}},71432:function(T,r,n){"use strict";r.__esModule=!0,r.PdaPainter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PdaPainter=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.data,l=m.has_pda;return(0,e.createComponentVNode)(2,o.Window,{width:510,height:505,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:l?(0,e.createComponentVNode)(2,y):(0,e.createComponentVNode)(2,b)})})}return k}(),b=function(g,i){var c=(0,a.useBackend)(i),m=c.act;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"silver",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"download",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{width:"160px",textAlign:"center",content:"Insert PDA",onClick:function(){function l(){return m("insert_pda")}return l}()})]})})})},y=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.pda_colors;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,horizontal:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,B)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Table,{className:"PdaPainter__list",children:Object.keys(u).map(function(s){return(0,e.createComponentVNode)(2,t.Table.Row,{onClick:function(){function d(){return m("choose_pda",{selectedPda:s})}return d}(),children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/png;base64,"+u[s][0],style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s})]},s)})})})})]})},B=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.current_appearance,s=l.preview_appearance;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Current PDA",children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+u,style:{"vertical-align":"middle",width:"160px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",content:"Eject",color:"green",onClick:function(){function d(){return m("eject_pda")}return d}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"paint-roller",content:"Paint PDA",onClick:function(){function d(){return m("paint_pda")}return d}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Preview",children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+s,style:{"vertical-align":"middle",width:"160px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}})})]})}},33388:function(T,r,n){"use strict";r.__esModule=!0,r.PersonalCrafting=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PersonalCrafting=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.busy,u=m.category,s=m.display_craftable_only,d=m.display_compact,C=m.prev_cat,h=m.next_cat,v=m.subcategory,p=m.prev_subcat,N=m.next_subcat;return(0,e.createComponentVNode)(2,o.Window,{width:700,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!l&&(0,e.createComponentVNode)(2,t.Dimmer,{fontSize:"32px",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cog",spin:1})," Crafting..."]}),(0,e.createComponentVNode)(2,t.Section,{title:u,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Show Craftable Only",icon:s?"check-square-o":"square-o",selected:s,onClick:function(){function V(){return c("toggle_recipes")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Compact Mode",icon:d?"check-square-o":"square-o",selected:d,onClick:function(){function V(){return c("toggle_compact")}return V}()})],4),children:[(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:C,icon:"arrow-left",onClick:function(){function V(){return c("backwardCat")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:h,icon:"arrow-right",onClick:function(){function V(){return c("forwardCat")}return V}()})]}),v&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:p,icon:"arrow-left",onClick:function(){function V(){return c("backwardSubCat")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N,icon:"arrow-right",onClick:function(){function V(){return c("forwardSubCat")}return V}()})]}),d?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,y)]})]})})}return B}(),b=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.display_craftable_only,u=m.can_craft,s=m.cant_craft;return(0,e.createComponentVNode)(2,t.Box,{mt:1,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[u.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.name,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",onClick:function(){function C(){return c("make",{make:d.ref})}return C}()}),d.catalyst_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:d.catalyst_text,content:"Catalysts",color:"transparent"}),(0,e.createComponentVNode)(2,t.Button,{tooltip:d.req_text,content:"Requirements",color:"transparent"}),d.tool_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:d.tool_text,content:"Tools",color:"transparent"})]},d.name)}),!l&&s.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.name,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",disabled:!0}),d.catalyst_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:d.catalyst_text,content:"Catalysts",color:"transparent"}),(0,e.createComponentVNode)(2,t.Button,{tooltip:d.req_text,content:"Requirements",color:"transparent"}),d.tool_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:d.tool_text,content:"Tools",color:"transparent"})]},d.name)})]})})},y=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.display_craftable_only,u=m.can_craft,s=m.cant_craft;return(0,e.createComponentVNode)(2,t.Box,{mt:1,children:[u.map(function(d){return(0,e.createComponentVNode)(2,t.Section,{title:d.name,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",onClick:function(){function C(){return c("make",{make:d.ref})}return C}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[d.catalyst_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Catalysts",children:d.catalyst_text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Requirements",children:d.req_text}),d.tool_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tools",children:d.tool_text})]})},d.name)}),!l&&s.map(function(d){return(0,e.createComponentVNode)(2,t.Section,{title:d.name,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",disabled:!0}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[d.catalyst_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Catalysts",children:d.catalyst_text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Requirements",children:d.req_text}),d.tool_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tools",children:d.tool_text})]})},d.name)})]})}},56150:function(T,r,n){"use strict";r.__esModule=!0,r.Photocopier=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Photocopier=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:440,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Photocopier",color:"silver",children:[(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Copies:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"2em",bold:!0,children:m.copynumber}),(0,e.createComponentVNode)(2,t.Stack.Item,{float:"right",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"minus",textAlign:"center",content:"",onClick:function(){function l(){return c("minus")}return l}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"plus",textAlign:"center",content:"",onClick:function(){function l(){return c("add")}return l}()})]})]}),(0,e.createComponentVNode)(2,t.Stack,{mb:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Toner:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,children:m.toner})]}),(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Inserted Document:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!m.copyitem&&!m.mob,content:m.copyitem?m.copyitem:m.mob?m.mob+"'s ass!":"document",onClick:function(){function l(){return c("removedocument")}return l}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Inserted Folder:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!m.folder,content:m.folder?m.folder:"folder",onClick:function(){function l(){return c("removefolder")}return l}()})})]})]}),(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,b)}),(0,e.createComponentVNode)(2,y)]})})})}return B}(),b=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.issilicon;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"copy",float:"center",textAlign:"center",content:"Copy",onClick:function(){function u(){return c("copy")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file-import",float:"center",textAlign:"center",content:"Scan",onClick:function(){function u(){return c("scandocument")}return u}()}),!!l&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file",color:"green",float:"center",textAlign:"center",content:"Print Text",onClick:function(){function u(){return c("ai_text")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"image",color:"green",float:"center",textAlign:"center",content:"Print Image",onClick:function(){function u(){return c("ai_pic")}return u}()})],4)],0)},y=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Scanned Files",children:m.files.map(function(l){return(0,e.createComponentVNode)(2,t.Section,{title:l.name,buttons:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print",disabled:m.toner<=0,onClick:function(){function u(){return c("filecopy",{uid:l.uid})}return u}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash-alt",content:"Delete",color:"bad",onClick:function(){function u(){return c("deletefile",{uid:l.uid})}return u}()})]})},l.name)})})}},84676:function(T,r,n){"use strict";r.__esModule=!0,r.PoolController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=["tempKey"];function b(g,i){if(g==null)return{};var c={};for(var m in g)if({}.hasOwnProperty.call(g,m)){if(i.includes(m))continue;c[m]=g[m]}return c}var y={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}},B=function(i,c){var m=i.tempKey,l=b(i,f),u=y[m];if(!u)return null;var s=(0,a.useBackend)(c),d=s.data,C=s.act,h=d.currentTemp,v=u.label,p=u.icon,N=m===h,V=function(){C("setTemp",{temp:m})};return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Button,Object.assign({color:"transparent",selected:N,onClick:V},l,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:p}),v]})))},k=r.PoolController=function(){function g(i,c){for(var m=(0,a.useBackend)(c),l=m.data,u=l.emagged,s=l.currentTemp,d=y[s]||y.normal,C=d.label,h=d.color,v=[],p=0,N=Object.entries(y);p50?"battery-half":"battery-quarter")||h==="C"&&"bolt"||h==="F"&&"battery-full"||h==="M"&&"slash",color:h==="N"&&(v>50?"yellow":"red")||h==="C"&&"yellow"||h==="F"&&"green"||h==="M"&&"orange"}),(0,e.createComponentVNode)(2,B.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,o.toFixed)(v)+"%"})],4)};u.defaultHooks=f.pureComponentHooks;var s=function(C){var h,v,p=C.status;switch(p){case"AOn":h=!0,v=!0;break;case"AOff":h=!0,v=!1;break;case"On":h=!1,v=!0;break;case"Off":h=!1,v=!1;break}var N=(v?"On":"Off")+(" ["+(h?"auto":"manual")+"]");return(0,e.createComponentVNode)(2,B.ColorBox,{color:v?"good":"bad",content:h?void 0:"M",title:N})};s.defaultHooks=f.pureComponentHooks},50992:function(T,r,n){"use strict";r.__esModule=!0,r.PrisonerImplantManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(29319),f=n(3939),b=n(321),y=n(5485),B=n(98595),k=r.PrisonerImplantManager=function(){function g(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.loginState,d=u.prisonerInfo,C=u.chemicalInfo,h=u.trackingInfo,v;if(!s.logged_in)return(0,e.createComponentVNode)(2,B.Window,{theme:"security",width:500,height:850,children:(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,y.LoginScreen)})});var p=[1,5,10];return(0,e.createComponentVNode)(2,B.Window,{theme:"security",width:500,height:850,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.LoginInfo),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Prisoner Points Manager System",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Prisoner",children:(0,e.createComponentVNode)(2,t.Button,{icon:d.name?"eject":"id-card",selected:d.name,content:d.name?d.name:"-----",tooltip:d.name?"Eject ID":"Insert ID",onClick:function(){function N(){return l("id_card")}return N}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Points",children:[d.points!==null?d.points:"-/-",(0,e.createComponentVNode)(2,t.Button,{ml:2,icon:"minus-square",disabled:d.points===null,content:"Reset",onClick:function(){function N(){return l("reset_points")}return N}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Point Goal",children:[d.goal!==null?d.goal:"-/-",(0,e.createComponentVNode)(2,t.Button,{ml:2,icon:"pen",disabled:d.goal===null,content:"Edit",onClick:function(){function N(){return(0,f.modalOpen)(c,"set_points")}return N}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{children:(0,e.createVNode)(1,"box",null,[(0,e.createTextVNode)("1 minute of prison time should roughly equate to 150 points."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Sentences should not exceed 5000 points."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Permanent prisoners should not be given a point goal."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Prisoners who meet their point goal will be able to automatically access their locker and return to the station using the shuttle.")],4,{hidden:d.goal===null})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Tracking Implants",children:h.map(function(N){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{p:1,backgroundColor:"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:["Subject: ",N.subject]}),(0,e.createComponentVNode)(2,t.Box,{children:[" ",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Location",children:N.location}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:N.health}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Prisoner",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-triangle",content:"Warn",tooltip:"Broadcast a message to this poor sod",onClick:function(){function V(){return(0,f.modalOpen)(c,"warn",{uid:N.uid})}return V}()})})]})]},N.subject)]}),(0,e.createVNode)(1,"br")],4)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Chemical Implants",children:C.map(function(N){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{p:1,backgroundColor:"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:["Subject: ",N.name]}),(0,e.createComponentVNode)(2,t.Box,{children:[" ",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Remaining Reagents",children:N.volume})}),p.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{mt:2,disabled:N.volumec;return(0,e.createComponentVNode)(2,t.ImageButton,{fluid:!0,title:N.name,dmIcon:N.icon,dmIconState:N.icon_state,buttonsAlt:(0,e.createComponentVNode)(2,t.Button,{bold:!0,translucent:!0,fontSize:1.5,tooltip:V&&"Not enough tickets",disabled:V,onClick:function(){function S(){return g("purchase",{purchase:N.itemID})}return S}(),children:[N.cost,(0,e.createComponentVNode)(2,t.Icon,{m:0,mt:.25,name:"ticket",color:V?"bad":"good",size:1.6})]}),children:N.desc},N.name)})})})})})})}return b}()},94813:function(T,r,n){"use strict";r.__esModule=!0,r.RCD=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=n(49148),y=r.RCD=function(){function l(u,s){return(0,e.createComponentVNode)(2,o.Window,{width:480,height:670,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,c)]})})]})}return l}(),B=function(u,s){var d=(0,a.useBackend)(s),C=d.data,h=C.matter,v=C.max_matter,p=v*.7,N=v*.25;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Matter Storage",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[p,1/0],average:[N,p],bad:[-1/0,N]},value:h,maxValue:v,children:(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:h+" / "+v+" units"})})})})},k=function(){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Construction Type",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,g,{mode_type:"Floors and Walls"}),(0,e.createComponentVNode)(2,g,{mode_type:"Airlocks"}),(0,e.createComponentVNode)(2,g,{mode_type:"Windows"}),(0,e.createComponentVNode)(2,g,{mode_type:"Deconstruction"})]})})})},g=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=u.mode_type,p=h.mode;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"transparent",content:v,selected:p===v?1:0,onClick:function(){function N(){return C("mode",{mode:v})}return N}()})})},i=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.door_name,p=h.electrochromic,N=h.airlock_glass;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Airlock Settings",children:(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"transparent",icon:"pen-alt",content:(0,e.createFragment)([(0,e.createTextVNode)("Rename: "),(0,e.createVNode)(1,"b",null,v,0)],0),onClick:function(){function V(){return(0,f.modalOpen)(s,"renameAirlock")}return V}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:N===1&&(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:p?"toggle-on":"toggle-off",content:"Electrochromic",selected:p,onClick:function(){function V(){return C("electrochromic")}return V}()})})]})})})},c=function(u,s){var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.tab,p=h.locked,N=h.one_access,V=h.selected_accesses,S=h.regions;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"cog",selected:v===1,onClick:function(){function I(){return C("set_tab",{tab:1})}return I}(),children:"Airlock Types"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:v===2,icon:"list",onClick:function(){function I(){return C("set_tab",{tab:2})}return I}(),children:"Airlock Access"})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:v===1?(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Types",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m,{check_number:0})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m,{check_number:1})})]})}):v===2&&p?(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Access",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"lock-open",content:"Unlock",onClick:function(){function I(){return C("set_lock",{new_lock:"unlock"})}return I}()}),children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"lock",size:"5",mb:3}),(0,e.createVNode)(1,"br"),"Airlock access selection is currently locked."]})})}):(0,e.createComponentVNode)(2,b.AccessList,{sectionButtons:(0,e.createComponentVNode)(2,t.Button,{icon:"lock",content:"Lock",onClick:function(){function I(){return C("set_lock",{new_lock:"lock"})}return I}()}),usedByRcd:1,rcdButtons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:N,content:"One",onClick:function(){function I(){return C("set_one_access",{access:"one"})}return I}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!N,width:4,content:"All",onClick:function(){function I(){return C("set_one_access",{access:"all"})}return I}()})],4),accesses:S,selectedList:V,accessMod:function(){function I(L){return C("set",{access:L})}return I}(),grantAll:function(){function I(){return C("grant_all")}return I}(),denyAll:function(){function I(){return C("clear_all")}return I}(),grantDep:function(){function I(L){return C("grant_region",{region:L})}return I}(),denyDep:function(){function I(L){return C("deny_region",{region:L})}return I}()})})],4)},m=function(u,s){for(var d=(0,a.useBackend)(s),C=d.act,h=d.data,v=h.door_types_ui_list,p=h.door_type,N=u.check_number,V=[],S=0;Sf?w=(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,mb:1,children:"There are new messages"}):w=(0,e.createComponentVNode)(2,t.Box,{color:"label",mb:1,children:"There are no new messages"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Main Menu",buttons:(0,e.createComponentVNode)(2,t.Button,{width:9,content:L?"Speaker Off":"Speaker On",selected:!L,icon:L?"volume-mute":"volume-up",onClick:function(){function A(){return N("toggleSilent")}return A}()}),children:[w,(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"View Messages",icon:S>f?"envelope-open-text":"envelope",onClick:function(){function A(){return N("setScreen",{setScreen:6})}return A}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Assistance",icon:"hand-paper",onClick:function(){function A(){return N("setScreen",{setScreen:1})}return A}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Supplies",icon:"box",onClick:function(){function A(){return N("setScreen",{setScreen:2})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Secondary Goal",icon:"clipboard-list",onClick:function(){function A(){return N("setScreen",{setScreen:11})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Relay Anonymous Information",icon:"comment",onClick:function(){function A(){return N("setScreen",{setScreen:3})}return A}()})]})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Print Shipping Label",icon:"tag",onClick:function(){function A(){return N("setScreen",{setScreen:9})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"View Shipping Logs",icon:"clipboard-list",onClick:function(){function A(){return N("setScreen",{setScreen:10})}return A}()})]})}),!!I&&(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Send Station-Wide Announcement",icon:"bullhorn",onClick:function(){function A(){return N("setScreen",{setScreen:8})}return A}()})})]})})},i=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S=V.department,I=[],L;switch(h.purpose){case"ASSISTANCE":I=V.assist_dept,L="Request assistance from another department";break;case"SUPPLIES":I=V.supply_dept,L="Request supplies from another department";break;case"INFO":I=V.info_dept,L="Relay information to another department";break}return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:L,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function w(){return N("setScreen",{setScreen:0})}return w}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:I.filter(function(w){return w!==S}).map(function(w){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:w,textAlign:"right",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Message",icon:"envelope",onClick:function(){function A(){return N("writeInput",{write:w,priority:y})}return A}()}),(0,e.createComponentVNode)(2,t.Button,{content:"High Priority",icon:"exclamation-circle",onClick:function(){function A(){return N("writeInput",{write:w,priority:B})}return A}()})]},w)})})})})},c=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S;switch(h.type){case"SUCCESS":S="Message sent successfully";break;case"FAIL":S="Unable to contact messaging server";break}return(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:S,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function I(){return N("setScreen",{setScreen:0})}return I}()})})},m=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S,I;switch(h.type){case"MESSAGES":S=V.message_log,I="Message Log";break;case"SHIPPING":S=V.shipping_log,I="Shipping label print log";break}return S.reverse(),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:I,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()}),children:S.map(function(L){return(0,e.createComponentVNode)(2,t.Box,{textAlign:"left",children:[L.map(function(w,A){return(0,e.createVNode)(1,"div",null,w,0,null,A)}),(0,e.createVNode)(1,"hr")]},L)})})})},l=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S=V.recipient,I=V.message,L=V.msgVerified,w=V.msgStamped;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Message Authentication",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function A(){return N("setScreen",{setScreen:0})}return A}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Recipient",children:S}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message",children:I}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Validated by",color:"green",children:L}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stamped by",color:"blue",children:w})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",content:"Send Message",icon:"envelope",onClick:function(){function A(){return N("department",{department:S})}return A}()})})})],4)},u=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S=V.message,I=V.announceAuth;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Station-Wide Announcement",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Edit Message",icon:"edit",onClick:function(){function L(){return N("writeAnnouncement")}return L}()})],4),children:S})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:[I?(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"green",children:"ID verified. Authentication accepted."}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Swipe your ID card to authenticate yourself"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:2,textAlign:"center",content:"Send Announcement",icon:"bullhorn",disabled:!(I&&S),onClick:function(){function L(){return N("sendAnnouncement")}return L}()})]})})],4)},s=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S=V.shipDest,I=V.msgVerified,L=V.ship_dept;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{title:"Print Shipping Label",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function w(){return N("setScreen",{setScreen:0})}return w}()}),children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Destination",children:S}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Validated by",children:I})]}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:1,textAlign:"center",content:"Print Label",icon:"print",disabled:!(S&&I),onClick:function(){function w(){return N("printLabel")}return w}()})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Destinations",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:L.map(function(w){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:w,textAlign:"right",className:"candystripe",children:(0,e.createComponentVNode)(2,t.Button,{content:S===w?"Selected":"Select",selected:S===w,onClick:function(){function A(){return N("shipSelect",{shipSelect:w})}return A}()})},w)})})})})],4)},d=function(h,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,S=V.secondaryGoalAuth,I=V.secondaryGoalEnabled;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Request Secondary Goal",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:[I?S?(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"green",children:"ID verified. Authentication accepted."}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Swipe your ID card to authenticate yourself"}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Complete your current goal first!"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:2,textAlign:"center",content:"Request Secondary Goal",icon:"clipboard-list",disabled:!(S&&I),onClick:function(){function L(){return N("requestSecondaryGoal")}return L}()})]})})],4)}},9861:function(T,r,n){"use strict";r.__esModule=!0,r.RndBackupConsole=r.LinkMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.RndBackupConsole=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.network_name,l=c.has_disk,u=c.disk_name,s=c.linked,d=c.techs,C=c.last_timestamp;return(0,e.createComponentVNode)(2,o.Window,{width:900,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Device Info",children:[(0,e.createComponentVNode)(2,t.Box,{mb:2,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Network",children:s?(0,e.createComponentVNode)(2,t.Button,{content:m,icon:"unlink",selected:1,onClick:function(){function h(){return i("unlink")}return h}()}):"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Loaded Disk",children:l?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:u+" (Last backup: "+C+")",icon:"save",selected:1,onClick:function(){function h(){return i("eject_disk")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Save all",onClick:function(){function h(){return i("saveall2disk")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Load all",onClick:function(){function h(){return i("saveall2network")}return h}()})],4):"None"})]})}),!!s||(0,e.createComponentVNode)(2,b)]}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Section,{title:"Tech Info",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Tech Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Level"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Disk Level"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actions"})]}),Object.keys(d).map(function(h){return!(d[h].network_level>0||d[h].disk_level>0)||(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:d[h].name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d[h].network_level||"None"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d[h].disk_level||"None"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Load to network",disabled:!l||!s,onClick:function(){function v(){return i("savetech2network",{tech:h})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Load to disk",disabled:!l||!s,onClick:function(){function v(){return i("savetech2disk",{tech:h})}return v}()})]})]},h)})]})})})]})})}return y}(),b=r.LinkMenu=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.controllers;return(0,e.createComponentVNode)(2,t.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Link"})]}),m.map(function(l){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Link",icon:"link",onClick:function(){function u(){return i("linktonetworkcontroller",{target_controller:l.addr})}return u}()})})]},l.addr)})]})})}return y}()},68303:function(T,r,n){"use strict";r.__esModule=!0,r.AnalyzerMenu=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=r.AnalyzerMenu=function(){function y(B,k){var g=(0,t.useBackend)(k),i=g.data,c=g.act,m=i.tech_levels,l=i.loaded_item,u=i.linked_analyzer,s=i.can_discover;return u?l?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Section,{title:"Object Analysis",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{content:"Deconstruct",icon:"microscope",onClick:function(){function d(){c("deconstruct")}return d}()}),(0,e.createComponentVNode)(2,o.Button,{content:"Eject",icon:"eject",onClick:function(){function d(){c("eject_item")}return d}()}),!s||(0,e.createComponentVNode)(2,o.Button,{content:"Discover",icon:"atom",onClick:function(){function d(){c("discover")}return d}()})],0),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:l.name})})}),(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{id:"research-levels",children:[(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Research Field"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Current Level"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Object Level"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"New Level"})]}),m.map(function(d){return(0,e.createComponentVNode)(2,b,{techLevel:d},d.id)})]})})],4):(0,e.createComponentVNode)(2,o.Section,{title:"Analysis Menu",children:"No item loaded. Standing by..."}):(0,e.createComponentVNode)(2,o.Section,{title:"Analysis Menu",children:"NO SCIENTIFIC ANALYZER LINKED TO CONSOLE"})}return y}(),b=function(B,k){var g=B.techLevel,i=g.name,c=g.desc,m=g.level,l=g.object_level,u=g.ui_icon,s=l!=null,d=s&&l>=m?Math.max(l,m+1):m;return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"circle-info",tooltip:c})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:u})," ",i]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:m}),s?(0,e.createComponentVNode)(2,o.Table.Cell,{children:l}):(0,e.createComponentVNode)(2,o.Table.Cell,{className:"research-level-no-effect",children:"-"}),(0,e.createComponentVNode)(2,o.Table.Cell,{className:(0,a.classes)([d!==m&&"upgraded-level"]),children:d})]})}},37556:function(T,r,n){"use strict";r.__esModule=!0,r.DataDiskMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o="design",f="tech",b=function(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.act,d=u.disk_data;return d?(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:d.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:d.level}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:d.desc})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:(0,e.createComponentVNode)(2,t.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){function C(){return s("updt_tech")}return C}()})})]}):null},y=function(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.act,d=u.disk_data;if(!d)return null;var C=d.name,h=d.lathe_types,v=d.materials,p=h.join(", ");return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:C}),p?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lathe Types",children:p}):null,(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Required Materials"})]}),v.map(function(N){return(0,e.createComponentVNode)(2,t.Box,{children:["- ",(0,e.createVNode)(1,"span",null,N.name,0,{style:{"text-transform":"capitalize"}})," x ",N.amount]},N.name)}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:(0,e.createComponentVNode)(2,t.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){function N(){return s("updt_design")}return N}()})})]})},B=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,d=s.disk_data;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Section,Object.assign({buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Erase",icon:"eraser",disabled:!d,onClick:function(){function C(){return u("erase_disk")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject",icon:"eject",onClick:function(){function C(){u("eject_disk")}return C}()})],4)},c)))},k=function(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.act,d=u.disk_type,C=u.to_copy,h=c.title;return(0,e.createComponentVNode)(2,B,{title:h,children:(0,e.createComponentVNode)(2,t.Box,{overflowY:"auto",overflowX:"hidden",maxHeight:"450px",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:C.sort(function(v,p){return v.name.localeCompare(p.name)}).map(function(v){var p=v.name,N=v.id;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{noColon:!0,label:p,children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Copy to Disk",onClick:function(){function V(){d===f?s("copy_tech",{id:N}):s("copy_design",{id:N})}return V}()})},N)})})})})},g=r.DataDiskMenu=function(){function i(c,m){var l=(0,a.useBackend)(m),u=l.data,s=u.disk_type,d=u.disk_data;if(!s)return(0,e.createComponentVNode)(2,t.Section,{title:"Data Disk",children:"No disk loaded."});switch(s){case o:return d?(0,e.createComponentVNode)(2,B,{title:"Design Disk",children:(0,e.createComponentVNode)(2,y)}):(0,e.createComponentVNode)(2,k,{title:"Design Disk"});case f:return d?(0,e.createComponentVNode)(2,B,{title:"Technology Disk",children:(0,e.createComponentVNode)(2,b)}):(0,e.createComponentVNode)(2,k,{title:"Technology Disk"});default:return(0,e.createFragment)([(0,e.createTextVNode)("UNRECOGNIZED DISK TYPE")],4)}}return i}()},16830:function(T,r,n){"use strict";r.__esModule=!0,r.LatheCategory=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(52662),f=r.LatheCategory=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.data,i=k.act,c=g.category,m=g.matching_designs,l=g.menu,u=l===4,s=u?"build":"imprint";return(0,e.createComponentVNode)(2,t.Section,{title:c,children:[(0,e.createComponentVNode)(2,o.LatheMaterials),(0,e.createComponentVNode)(2,t.Table,{className:"RndConsole__LatheCategory__MatchingDesigns",children:m.map(function(d){var C=d.id,h=d.name,v=d.can_build,p=d.materials;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:h,disabled:v<1,onClick:function(){function N(){return i(s,{id:C,amount:1})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v>=5?(0,e.createComponentVNode)(2,t.Button,{content:"x5",onClick:function(){function N(){return i(s,{id:C,amount:5})}return N}()}):null}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v>=10?(0,e.createComponentVNode)(2,t.Button,{content:"x10",onClick:function(){function N(){return i(s,{id:C,amount:10})}return N}()}):null}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.map(function(N){return(0,e.createFragment)([" | ",(0,e.createVNode)(1,"span",N.is_red?"color-red":null,[N.amount,(0,e.createTextVNode)(" "),N.name],0)],0)})})]},C)})})]})}return b}()},70497:function(T,r,n){"use strict";r.__esModule=!0,r.LatheChemicalStorage=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheChemicalStorage=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.data,g=B.act,i=k.loaded_chemicals,c=k.menu===4;return(0,e.createComponentVNode)(2,t.Section,{title:"Chemical Storage",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Purge All",icon:"trash",onClick:function(){function m(){var l=c?"disposeallP":"disposeallI";g(l)}return m}()}),(0,e.createComponentVNode)(2,t.LabeledList,{children:i.map(function(m){var l=m.volume,u=m.name,s=m.id;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"* "+l+" of "+u,children:(0,e.createComponentVNode)(2,t.Button,{content:"Purge",icon:"trash",onClick:function(){function d(){var C=c?"disposeP":"disposeI";g(C,{id:s})}return d}()})},s)})})]})}return f}()},70864:function(T,r,n){"use strict";r.__esModule=!0,r.LatheMainMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(52662),f=n(68198),b=r.LatheMainMenu=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.data,c=g.act,m=i.menu,l=i.categories,u=m===4?"Protolathe":"Circuit Imprinter";return(0,e.createComponentVNode)(2,t.Section,{title:u+" Menu",children:[(0,e.createComponentVNode)(2,o.LatheMaterials),(0,e.createComponentVNode)(2,f.LatheSearch),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.Flex,{wrap:"wrap",children:l.map(function(s){return(0,e.createComponentVNode)(2,t.Flex,{style:{"flex-basis":"50%","margin-bottom":"6px"},children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-right",content:s,onClick:function(){function d(){c("setCategory",{category:s})}return d}()})},s)})})]})}return y}()},42878:function(T,r,n){"use strict";r.__esModule=!0,r.LatheMaterialStorage=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheMaterialStorage=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.data,g=B.act,i=k.loaded_materials;return(0,e.createComponentVNode)(2,t.Section,{className:"RndConsole__LatheMaterialStorage",title:"Material Storage",children:(0,e.createComponentVNode)(2,t.Table,{children:i.map(function(c){var m=c.id,l=c.amount,u=c.name,s=function(){function v(p){var N=k.menu===4?"lathe_ejectsheet":"imprinter_ejectsheet";g(N,{id:m,amount:p})}return v}(),d=Math.floor(l/2e3),C=l<1,h=d===1?"":"s";return(0,e.createComponentVNode)(2,t.Table.Row,{className:C?"color-grey":"color-yellow",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{minWidth:"210px",children:["* ",l," of ",u]}),(0,e.createComponentVNode)(2,t.Table.Cell,{minWidth:"110px",children:["(",d," sheet",h,")"]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l>=2e3?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"1x",icon:"eject",onClick:function(){function v(){return s(1)}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"C",icon:"eject",onClick:function(){function v(){return s("custom")}return v}()}),l>=2e3*5?(0,e.createComponentVNode)(2,t.Button,{content:"5x",icon:"eject",onClick:function(){function v(){return s(5)}return v}()}):null,(0,e.createComponentVNode)(2,t.Button,{content:"All",icon:"eject",onClick:function(){function v(){return s(50)}return v}()})],0):null})]},m)})})})}return f}()},52662:function(T,r,n){"use strict";r.__esModule=!0,r.LatheMaterials=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheMaterials=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.data,g=k.total_materials,i=k.max_materials,c=k.max_chemicals,m=k.total_chemicals;return(0,e.createComponentVNode)(2,t.Box,{className:"RndConsole__LatheMaterials",mb:"10px",children:(0,e.createComponentVNode)(2,t.Table,{width:"auto",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Material Amount:"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g}),i?(0,e.createComponentVNode)(2,t.Table.Cell,{children:" / "+i}):null]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Chemical Amount:"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:m}),c?(0,e.createComponentVNode)(2,t.Table.Cell,{children:" / "+c}):null]})]})})}return f}()},9681:function(T,r,n){"use strict";r.__esModule=!0,r.LatheMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(12644),f=n(70864),b=n(16830),y=n(42878),B=n(70497),k=["menu"];function g(u,s){if(u==null)return{};var d={};for(var C in u)if({}.hasOwnProperty.call(u,C)){if(s.includes(C))continue;d[C]=u[C]}return d}var i=t.Tabs.Tab,c=function(s,d){var C=(0,a.useBackend)(d),h=C.act,v=C.data,p=v.menu===o.MENU.LATHE?["nav_protolathe",v.submenu_protolathe]:["nav_imprinter",v.submenu_imprinter],N=p[0],V=p[1],S=s.menu,I=g(s,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,i,Object.assign({selected:V===S,onClick:function(){function L(){return h(N,{menu:S})}return L}()},I)))},m=function(s){switch(s){case o.PRINTER_MENU.MAIN:return(0,e.createComponentVNode)(2,f.LatheMainMenu);case o.PRINTER_MENU.SEARCH:return(0,e.createComponentVNode)(2,b.LatheCategory);case o.PRINTER_MENU.MATERIALS:return(0,e.createComponentVNode)(2,y.LatheMaterialStorage);case o.PRINTER_MENU.CHEMICALS:return(0,e.createComponentVNode)(2,B.LatheChemicalStorage)}},l=r.LatheMenu=function(){function u(s,d){var C=(0,a.useBackend)(d),h=C.data,v=h.menu,p=h.linked_lathe,N=h.linked_imprinter;return v===o.MENU.LATHE&&!p?(0,e.createComponentVNode)(2,t.Box,{children:"NO PROTOLATHE LINKED TO CONSOLE"}):v===o.MENU.IMPRINTER&&!N?(0,e.createComponentVNode)(2,t.Box,{children:"NO CIRCUIT IMPRITER LINKED TO CONSOLE"}):(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.MAIN,icon:"bars",children:"Main Menu"}),(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.MATERIALS,icon:"layer-group",children:"Materials"}),(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.CHEMICALS,icon:"flask-vial",children:"Chemicals"})]}),m(h.menu===o.MENU.LATHE?h.submenu_protolathe:h.submenu_imprinter)]})}return u}()},68198:function(T,r,n){"use strict";r.__esModule=!0,r.LatheSearch=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheSearch=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.act;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"Search...",onEnter:function(){function g(i,c){return k("search",{to_search:c})}return g}()})})}return f}()},81421:function(T,r,n){"use strict";r.__esModule=!0,r.LinkMenu=void 0;var e=n(89005),a=n(72253),t=n(98595),o=n(36036),f=r.LinkMenu=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.controllers;return(0,e.createComponentVNode)(2,t.Window,{width:800,height:550,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Link"})]}),c.map(function(m){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:m.addr}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:m.net_id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Link",icon:"link",onClick:function(){function l(){return g("linktonetworkcontroller",{target_controller:m.addr})}return l}()})})]},m.addr)})]})})})})}return b}()},6256:function(T,r,n){"use strict";r.__esModule=!0,r.SettingsMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.SettingsMenu=function(){function y(B,k){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,f),(0,e.createComponentVNode)(2,b)]})}return y}(),f=function(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.sync,l=c.admin;return(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.Flex,{direction:"column",align:"flex-start",children:(0,e.createComponentVNode)(2,t.Button,{color:"red",icon:"unlink",content:"Disconnect from Research Network",onClick:function(){function u(){i("unlink")}return u}()})})})},b=function(B,k){var g=(0,a.useBackend)(k),i=g.data,c=g.act,m=i.linked_analyzer,l=i.linked_lathe,u=i.linked_imprinter;return(0,e.createComponentVNode)(2,t.Section,{title:"Linked Devices",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"link",content:"Re-sync with Nearby Devices",onClick:function(){function s(){return c("find_device")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Scientific Analyzer",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!m,content:m?"Unlink":"Undetected",onClick:function(){function s(){return c("disconnect",{item:"analyze"})}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Protolathe",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!l,content:l?"Unlink":"Undetected",onClick:function(){function s(){c("disconnect",{item:"lathe"})}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Circuit Imprinter",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!u,content:u?"Unlink":"Undetected",onClick:function(){function s(){return c("disconnect",{item:"imprinter"})}return s}()})})]})})}},12644:function(T,r,n){"use strict";r.__esModule=!0,r.RndConsole=r.PRINTER_MENU=r.MENU=void 0;var e=n(89005),a=n(72253),t=n(98595),o=n(36036),f=n(35840),b=n(37556),y=n(9681),B=n(81421),k=n(6256),g=n(68303),i=["menu"];function c(p,N){if(p==null)return{};var V={};for(var S in p)if({}.hasOwnProperty.call(p,S)){if(N.includes(S))continue;V[S]=p[S]}return V}var m=o.Tabs.Tab,l=r.MENU={MAIN:0,DISK:2,ANALYZE:3,LATHE:4,IMPRINTER:5,SETTINGS:6},u=r.PRINTER_MENU={MAIN:0,SEARCH:1,MATERIALS:2,CHEMICALS:3},s=function(N){switch(N){case l.MAIN:return(0,e.createComponentVNode)(2,v);case l.DISK:return(0,e.createComponentVNode)(2,b.DataDiskMenu);case l.ANALYZE:return(0,e.createComponentVNode)(2,g.AnalyzerMenu);case l.LATHE:case l.IMPRINTER:return(0,e.createComponentVNode)(2,y.LatheMenu);case l.SETTINGS:return(0,e.createComponentVNode)(2,k.SettingsMenu);default:return"UNKNOWN MENU"}},d=function(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data,w=L.menu,A=N.menu,x=c(N,i);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,m,Object.assign({selected:w===A,onClick:function(){function E(){return I("nav",{menu:A})}return E}()},x)))},C=r.RndConsole=function(){function p(N,V){var S=(0,a.useBackend)(V),I=S.act,L=S.data;if(!L.linked)return(0,e.createComponentVNode)(2,B.LinkMenu);var w=L.menu,A=L.linked_analyzer,x=L.linked_lathe,E=L.linked_imprinter,P=L.wait_message;return(0,e.createComponentVNode)(2,t.Window,{width:800,height:550,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole",children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,d,{icon:"flask",menu:l.MAIN,children:"Research"}),!!A&&(0,e.createComponentVNode)(2,d,{icon:"microscope",menu:l.ANALYZE,children:"Analyze"}),!!x&&(0,e.createComponentVNode)(2,d,{icon:"print",menu:l.LATHE,children:"Protolathe"}),!!E&&(0,e.createComponentVNode)(2,d,{icon:"memory",menu:l.IMPRINTER,children:"Imprinter"}),(0,e.createComponentVNode)(2,d,{icon:"floppy-disk",menu:l.DISK,children:"Disk"}),(0,e.createComponentVNode)(2,d,{icon:"cog",menu:l.SETTINGS,children:"Settings"})]}),s(w),(0,e.createComponentVNode)(2,h)]})})})}return p}(),h=function(N,V){var S=(0,a.useBackend)(V),I=S.data,L=I.wait_message;return L?(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole__Overlay",children:(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole__Overlay__Wrapper",children:(0,e.createComponentVNode)(2,o.NoticeBox,{color:"black",children:L})})}):null},v=function(N,V){var S=(0,a.useBackend)(V),I=S.data,L=I.tech_levels;return(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{id:"research-levels",children:[(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Research Field"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Level"})]}),L.map(function(w){var A=w.id,x=w.name,E=w.desc,P=w.level,D=w.ui_icon;return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"circle-info",tooltip:E})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:D})," ",x]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P})]},A)})]})})}},29205:function(T,r,n){"use strict";r.__esModule=!0,r.RndNetController=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=r.RndNetController=function(){function k(g,i){var c=(0,t.useBackend)(i),m=c.act,l=c.data,u=l.ion,s=(0,t.useLocalState)(i,"mainTabIndex",0),d=s[0],C=s[1],h=function(){function v(p){switch(p){case 0:return(0,e.createComponentVNode)(2,y);case 1:return(0,e.createComponentVNode)(2,B);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}}return v}();return(0,e.createComponentVNode)(2,f.Window,{width:900,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"wrench",selected:d===0,onClick:function(){function v(){return C(0)}return v}(),children:"Network Management"},"ConfigPage"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"floppy-disk",selected:d===1,onClick:function(){function v(){return C(1)}return v}(),children:"Design Management"},"DesignPage")]}),h(d)]})})}return k}(),y=function(g,i){var c=(0,t.useBackend)(i),m=c.act,l=c.data,u=(0,t.useLocalState)(i,"filterType","ALL"),s=u[0],d=u[1],C=l.network_password,h=l.network_name,v=l.devices,p=[];p.push(s),s==="MSC"&&(p.push("BCK"),p.push("PGN"));var N=s==="ALL"?v:v.filter(function(V){return p.indexOf(V.dclass)>-1});return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Section,{title:"Network Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Network Name",children:(0,e.createComponentVNode)(2,o.Button,{content:h||"Unset",selected:h,icon:"edit",onClick:function(){function V(){return m("network_name")}return V}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Network Password",children:(0,e.createComponentVNode)(2,o.Button,{content:C||"Unset",selected:C,icon:"lock",onClick:function(){function V(){return m("network_password")}return V}()})})]})}),(0,e.createComponentVNode)(2,o.Section,{title:"Connected Devices",children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="ALL",onClick:function(){function V(){return d("ALL")}return V}(),icon:"network-wired",children:"All Devices"},"AllDevices"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="SRV",onClick:function(){function V(){return d("SRV")}return V}(),icon:"server",children:"R&D Servers"},"RNDServers"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="RDC",onClick:function(){function V(){return d("RDC")}return V}(),icon:"desktop",children:"R&D Consoles"},"RDConsoles"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="MFB",onClick:function(){function V(){return d("MFB")}return V}(),icon:"industry",children:"Exosuit Fabricators"},"Mechfabs"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="MSC",onClick:function(){function V(){return d("MSC")}return V}(),icon:"microchip",children:"Miscellaneous Devices"},"Misc")]}),(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Device Name"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Device ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Unlink"})]}),N.map(function(V){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:V.name}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:V.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function S(){return m("unlink_device",{dclass:V.dclass,uid:V.id})}return S}()})})]},V.id)})]})]})],4)},B=function(g,i){var c=(0,t.useBackend)(i),m=c.act,l=c.data,u=l.designs,s=(0,t.useLocalState)(i,"searchText",""),d=s[0],C=s[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Design Management",children:[(0,e.createComponentVNode)(2,o.Input,{fluid:!0,placeholder:"Search for designs",mb:2,onInput:function(){function h(v,p){return C(p)}return h}()}),u.filter((0,a.createSearch)(d,function(h){return h.name})).map(function(h){return(0,e.createComponentVNode)(2,o.Button.Checkbox,{fluid:!0,content:h.name,checked:!h.blacklisted,onClick:function(){function v(){return m(h.blacklisted?"unblacklist_design":"blacklist_design",{d_uid:h.uid})}return v}()},h.name)})]})}},63315:function(T,r,n){"use strict";r.__esModule=!0,r.RndServer=void 0;var e=n(89005),a=n(72253),t=n(44879),o=n(36036),f=n(98595),b=r.RndServer=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.active,s=l.network_name;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:500,resizable:!0,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,o.Section,{title:"Server Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Machine power",children:(0,e.createComponentVNode)(2,o.Button,{content:u?"On":"Off",selected:u,icon:"power-off",onClick:function(){function d(){return m("toggle_active")}return d}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Link status",children:s===null?(0,e.createComponentVNode)(2,o.Box,{color:"red",children:"Unlinked"}):(0,e.createComponentVNode)(2,o.Box,{color:"green",children:"Linked"})})]})}),s===null?(0,e.createComponentVNode)(2,B):(0,e.createComponentVNode)(2,y)]})})}return k}(),y=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.network_name;return(0,e.createComponentVNode)(2,o.Section,{title:"Network Info",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Connected network ID",children:u}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Unlink",children:(0,e.createComponentVNode)(2,o.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function s(){return m("unlink")}return s}()})})]})})},B=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.controllers;return(0,e.createComponentVNode)(2,o.Section,{title:"Detected Cores",children:(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Link"})]}),u.map(function(s){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:s.netname}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Link",icon:"link",onClick:function(){function d(){return m("link",{addr:s.addr})}return d}()})})]},s.addr)})]})})}},26109:function(T,r,n){"use strict";r.__esModule=!0,r.RobotSelfDiagnosis=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=function(k,g){var i=k/g;return i<=.2?"good":i<=.5?"average":"bad"},y=r.RobotSelfDiagnosis=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.data,m=c.component_data;return(0,e.createComponentVNode)(2,o.Window,{width:280,height:480,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:m.map(function(l,u){return(0,e.createComponentVNode)(2,t.Section,{title:(0,f.capitalize)(l.name),children:l.installed<=0?(0,e.createComponentVNode)(2,t.NoticeBox,{m:-.5,height:3.5,color:"red",style:{"font-style":"normal"},children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",children:(0,e.createComponentVNode)(2,t.Flex.Item,{grow:1,textAlign:"center",align:"center",color:"#e8e8e8",children:l.installed===-1?"Destroyed":"Missing"})})}):(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{width:"72%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Brute Damage",color:b(l.brute_damage,l.max_damage),children:l.brute_damage}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Burn Damage",color:b(l.electronic_damage,l.max_damage),children:l.electronic_damage})]})}),(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Powered",color:l.powered?"good":"bad",children:l.powered?"Yes":"No"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Enabled",color:l.status?"good":"bad",children:l.status?"Yes":"No"})]})})]})},u)})})})}return B}()},97997:function(T,r,n){"use strict";r.__esModule=!0,r.RoboticsControlConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.RoboticsControlConsole=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.can_hack,l=c.safety,u=c.show_lock_all,s=c.cyborgs,d=s===void 0?[]:s;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:460,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!u&&(0,e.createComponentVNode)(2,t.Section,{title:"Emergency Lock Down",children:[(0,e.createComponentVNode)(2,t.Button,{icon:l?"lock":"unlock",content:l?"Disable Safety":"Enable Safety",selected:l,onClick:function(){function C(){return i("arm",{})}return C}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"lock",disabled:l,content:"Lock ALL Cyborgs",color:"bad",onClick:function(){function C(){return i("masslock",{})}return C}()})]}),(0,e.createComponentVNode)(2,b,{cyborgs:d,can_hack:m})]})})}return y}(),b=function(B,k){var g=B.cyborgs,i=B.can_hack,c=(0,a.useBackend)(k),m=c.act,l=c.data,u="Detonate";return l.detonate_cooldown>0&&(u+=" ("+l.detonate_cooldown+"s)"),g.length?g.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name,buttons:(0,e.createFragment)([!!s.hackable&&!s.emagged&&(0,e.createComponentVNode)(2,t.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){function d(){return m("hackbot",{uid:s.uid})}return d}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:s.locked_down?"unlock":"lock",color:s.locked_down?"good":"default",content:s.locked_down?"Release":"Lockdown",disabled:!l.auth,onClick:function(){function d(){return m("stopbot",{uid:s.uid})}return d}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"bomb",content:u,disabled:!l.auth||l.detonate_cooldown>0,color:"bad",onClick:function(){function d(){return m("killbot",{uid:s.uid})}return d}()})],0),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:(0,e.createComponentVNode)(2,t.Box,{color:s.status?"bad":s.locked_down?"average":"good",children:s.status?"Not Responding":s.locked_down?"Locked Down":"Nominal"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:(0,e.createComponentVNode)(2,t.Box,{children:s.locstring})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:s.health>50?"good":"bad",value:s.health/100})}),typeof s.charge=="number"&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:s.charge>30?"good":"bad",value:s.charge/100})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell Capacity",children:(0,e.createComponentVNode)(2,t.Box,{color:s.cell_capacity<3e4?"average":"good",children:s.cell_capacity})})],4)||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"No Power Cell"})}),!!s.is_hacked&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safeties",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"DISABLED"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Module",children:s.module}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Master AI",children:(0,e.createComponentVNode)(2,t.Box,{color:s.synchronization?"default":"average",children:s.synchronization||"None"})})]})},s.uid)}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No cyborg units detected within access parameters."})}},54431:function(T,r,n){"use strict";r.__esModule=!0,r.Safe=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Safe=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.dial,s=l.open,d=l.locked,C=l.contents;return(0,e.createComponentVNode)(2,o.Window,{theme:"safe",width:600,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving",children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving--hinge",top:"25%"}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving--hinge",top:"75%"})]}),(0,e.createComponentVNode)(2,t.Icon,{className:"Safe--engraving--arrow",name:"long-arrow-alt-down",size:"3"}),(0,e.createVNode)(1,"br"),s?(0,e.createComponentVNode)(2,y):(0,e.createComponentVNode)(2,t.Box,{as:"img",className:"Safe--dial",src:"safe_dial.png",style:{transform:"rotate(-"+3.6*u+"deg)","z-index":0}})]}),!s&&(0,e.createComponentVNode)(2,B)]})})}return k}(),b=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.dial,s=l.open,d=l.locked,C=function(v,p){return(0,e.createComponentVNode)(2,t.Button,{disabled:s||p&&!d,icon:"arrow-"+(p?"right":"left"),content:(p?"Right":"Left")+" "+v,iconRight:p,onClick:function(){function N(){return m(p?"turnleft":"turnright",{num:v})}return N}(),style:{"z-index":10}})};return(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer",children:[(0,e.createComponentVNode)(2,t.Button,{disabled:d,icon:s?"lock":"lock-open",content:s?"Close":"Open",mb:"0.5rem",onClick:function(){function h(){return m("open")}return h}()}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{position:"absolute",children:[C(50),C(10),C(1)]}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer--right",position:"absolute",right:"5px",children:[C(1,!0),C(10,!0),C(50,!0)]}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer--number",children:u})]})},y=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.contents;return(0,e.createComponentVNode)(2,t.Box,{className:"Safe--contents",overflow:"auto",children:u.map(function(s,d){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{mb:"0.5rem",onClick:function(){function C(){return m("retrieve",{index:d+1})}return C}(),children:[(0,e.createComponentVNode)(2,t.Box,{as:"img",src:s.sprite+".png",verticalAlign:"middle",ml:"-6px",mr:"0.5rem"}),s.name]}),(0,e.createVNode)(1,"br")],4,s)})})},B=function(g,i){return(0,e.createComponentVNode)(2,t.Section,{className:"Safe--help",title:"Safe opening instructions (because you all keep forgetting)",children:[(0,e.createComponentVNode)(2,t.Box,{children:["1. Turn the dial left to the first number.",(0,e.createVNode)(1,"br"),"2. Turn the dial right to the second number.",(0,e.createVNode)(1,"br"),"3. Continue repeating this process for each number, switching between left and right each time.",(0,e.createVNode)(1,"br"),"4. Open the safe."]}),(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:"To lock fully, turn the dial to the left after closing the safe."})]})}},29740:function(T,r,n){"use strict";r.__esModule=!0,r.SatelliteControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SatelliteControl=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.satellites,m=i.notice,l=i.meteor_shield,u=i.meteor_shield_coverage,s=i.meteor_shield_coverage_max,d=i.meteor_shield_coverage_percentage;return(0,e.createComponentVNode)(2,o.Window,{width:475,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[l&&(0,e.createComponentVNode)(2,t.Section,{title:"Station Shield Coverage",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:d>=100?"good":"average",value:u,maxValue:s,children:[d," %"]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Satellite Network Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alert",color:"red",children:i.notice}),c.map(function(C){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"#"+C.id,children:[C.mode," ",(0,e.createComponentVNode)(2,t.Button,{content:C.active?"Deactivate":"Activate",icon:"arrow-circle-right",onClick:function(){function h(){return g("toggle",{id:C.id})}return h}()})]},C.id)})]})})]})})}return b}()},44162:function(T,r,n){"use strict";r.__esModule=!0,r.SecureStorage=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=n(36352),y=n(92986),B=r.SecureStorage=function(){function c(m,l){return(0,e.createComponentVNode)(2,f.Window,{theme:"securestorage",height:500,width:280,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,g)})})})})}return c}(),k=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=window.event?m.which:m.keyCode;if(d===y.KEY_ENTER){m.preventDefault(),s("keypad",{digit:"E"});return}if(d===y.KEY_ESCAPE){m.preventDefault(),s("keypad",{digit:"C"});return}if(d===y.KEY_BACKSPACE){m.preventDefault(),s("backspace");return}if(d>=y.KEY_0&&d<=y.KEY_9){m.preventDefault(),s("keypad",{digit:d-y.KEY_0});return}if(d>=y.KEY_NUMPAD_0&&d<=y.KEY_NUMPAD_9){m.preventDefault(),s("keypad",{digit:d-y.KEY_NUMPAD_0});return}},g=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=d.locked,h=d.no_passcode,v=d.emagged,p=d.user_entered_code,N=[["1","2","3"],["4","5","6"],["7","8","9"],["C","0","E"]],V=h?"":C?"bad":"good";return(0,e.createComponentVNode)(2,o.Section,{fill:!0,onKeyDown:function(){function S(I){return k(I,l)}return S}(),children:[(0,e.createComponentVNode)(2,o.Stack.Item,{height:7.3,children:(0,e.createComponentVNode)(2,o.Box,{className:(0,a.classes)(["SecureStorage__displayBox","SecureStorage__displayBox--"+V]),height:"100%",children:v?"ERROR":p})}),(0,e.createComponentVNode)(2,o.Table,{children:N.map(function(S){return(0,e.createComponentVNode)(2,b.TableRow,{children:S.map(function(I){return(0,e.createComponentVNode)(2,b.TableCell,{children:(0,e.createComponentVNode)(2,i,{number:I})},I)})},S[0])})})]})},i=function(m,l){var u=(0,t.useBackend)(l),s=u.act,d=u.data,C=m.number;return(0,e.createComponentVNode)(2,o.Button,{fluid:!0,bold:!0,mb:"6px",content:C,textAlign:"center",fontSize:"60px",lineHeight:1.25,width:"80px",className:(0,a.classes)(["SecureStorage__Button","SecureStorage__Button--keypad","SecureStorage__Button--"+C]),onClick:function(){function h(){return s("keypad",{digit:C})}return h}()})}},6272:function(T,r,n){"use strict";r.__esModule=!0,r.SecurityRecords=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(3939),y=n(321),B=n(5485),k=n(22091),g={"*Execute*":"execute","*Arrest*":"arrest",Incarcerated:"incarcerated",Parolled:"parolled",Released:"released",Demote:"demote",Search:"search",Monitor:"monitor"},i=function(p,N){(0,b.modalOpen)(p,"edit",{field:N.edit,value:N.value})},c=r.SecurityRecords=function(){function v(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.loginState,w=I.currentPage,A;if(L.logged_in)w===1?A=(0,e.createComponentVNode)(2,l):w===2&&(A=(0,e.createComponentVNode)(2,d));else return(0,e.createComponentVNode)(2,f.Window,{theme:"security",width:800,height:900,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,B.LoginScreen)})});return(0,e.createComponentVNode)(2,f.Window,{theme:"security",width:800,height:900,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,y.LoginInfo),(0,e.createComponentVNode)(2,k.TemporaryNotice),(0,e.createComponentVNode)(2,m),A]})})]})}return v}(),m=function(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.currentPage,w=I.general;return(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:L===1,onClick:function(){function A(){return S("page",{page:1})}return A}(),children:"List Records"}),L===2&&w&&!w.empty&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"file",selected:L===2,children:["Record: ",w.fields[0].value]})]})})},l=function(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.records,w=(0,t.useLocalState)(N,"searchText",""),A=w[0],x=w[1],E=(0,t.useLocalState)(N,"sortId","name"),P=E[0],D=E[1],M=(0,t.useLocalState)(N,"sortOrder",!0),R=M[0],O=M[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,s)}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"SecurityRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,u,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,u,{id:"id",children:"ID"}),(0,e.createComponentVNode)(2,u,{id:"rank",children:"Assignment"}),(0,e.createComponentVNode)(2,u,{id:"fingerprint",children:"Fingerprint"}),(0,e.createComponentVNode)(2,u,{id:"status",children:"Criminal Status"})]}),L.filter((0,a.createSearch)(A,function(F){return F.name+"|"+F.id+"|"+F.rank+"|"+F.fingerprint+"|"+F.status})).sort(function(F,_){var U=R?1:-1;return F[P].localeCompare(_[P])*U}).map(function(F){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"SecurityRecords__listRow--"+g[F.status],onClick:function(){function _(){return S("view",{uid_gen:F.uid_gen,uid_sec:F.uid_sec})}return _}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",F.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:F.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:F.rank}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:F.fingerprint}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:F.status})]},F.id)})]})})})],4)},u=function(p,N){var V=(0,t.useLocalState)(N,"sortId","name"),S=V[0],I=V[1],L=(0,t.useLocalState)(N,"sortOrder",!0),w=L[0],A=L[1],x=p.id,E=p.children;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:S!==x&&"transparent",fluid:!0,onClick:function(){function P(){S===x?A(!w):(I(x),A(!0))}return P}(),children:[E,S===x&&(0,e.createComponentVNode)(2,o.Icon,{name:w?"sort-up":"sort-down",ml:"0.25rem;"})]})})})},s=function(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.isPrinting,w=(0,t.useLocalState)(N,"searchText",""),A=w[0],x=w[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{ml:"0.25rem",content:"New Record",icon:"plus",onClick:function(){function E(){return S("new_general")}return E}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{disabled:L,icon:L?"spinner":"print",iconSpin:!!L,content:"Print Cell Log",onClick:function(){function E(){return(0,b.modalOpen)(N,"print_cell_log")}return E}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by Name, ID, Assignment, Fingerprint, Status",fluid:!0,onInput:function(){function E(P,D){return x(D)}return E}()})})]})},d=function(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.isPrinting,w=I.general,A=I.security;return!w||!w.fields?(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"General records lost!"}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"General Data",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:L,icon:L?"spinner":"print",iconSpin:!!L,content:"Print Record",onClick:function(){function x(){return S("print_record")}return x}()}),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",tooltip:"WARNING: This will also delete the Security and Medical records associated with this crew member!",tooltipPosition:"bottom-start",content:"Delete Record",onClick:function(){function x(){return S("delete_general")}return x}()})],4),children:(0,e.createComponentVNode)(2,C)})}),!A||!A.fields?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Security Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"pen",content:"Create New Record",onClick:function(){function x(){return S("new_security")}return x}()}),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"Security records lost!"]})})})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Security Data",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",disabled:A.empty,content:"Delete Record",onClick:function(){function x(){return S("delete_security")}return x}()}),children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:A.fields.map(function(x,E){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:x.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(x.value),!!x.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:x.line_break?"1rem":"initial",onClick:function(){function P(){return i(N,x)}return P}()})]},E)})})})})}),(0,e.createComponentVNode)(2,h)],4)],0)},C=function(p,N){var V=(0,t.useBackend)(N),S=V.data,I=S.general;return!I||!I.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"General records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:I.fields.map(function(L,w){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:L.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(""+L.value),!!L.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:L.line_break?"1rem":"initial",onClick:function(){function A(){return i(N,L)}return A}()})]},w)})})}),!!I.has_photos&&I.photos.map(function(L,w){return(0,e.createComponentVNode)(2,o.Stack.Item,{inline:!0,textAlign:"center",color:"label",ml:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:L,style:{width:"96px","margin-top":"5rem","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createVNode)(1,"br"),"Photo #",w+1]},w)})]})},h=function(p,N){var V=(0,t.useBackend)(N),S=V.act,I=V.data,L=I.security;return(0,e.createComponentVNode)(2,o.Stack.Item,{height:"150px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Comments/Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"comment",content:"Add Entry",onClick:function(){function w(){return(0,b.modalOpen)(N,"comment_add")}return w}()}),children:L.comments.length===0?(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No comments found."}):L.comments.map(function(w,A){return(0,e.createComponentVNode)(2,o.Box,{preserveWhitespace:!0,children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:w.header||"Auto-generated"}),(0,e.createVNode)(1,"br"),w.text||w,(0,e.createComponentVNode)(2,o.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){function x(){return S("comment_delete",{id:A+1})}return x}()})]},A)})})})}},5099:function(T,r,n){"use strict";r.__esModule=!0,r.SeedExtractor=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(3939);function y(u,s){var d=typeof Symbol!="undefined"&&u[Symbol.iterator]||u["@@iterator"];if(d)return(d=d.call(u)).next.bind(d);if(Array.isArray(u)||(d=B(u))||s&&u&&typeof u.length=="number"){d&&(u=d);var C=0;return function(){return C>=u.length?{done:!0}:{done:!1,value:u[C++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function B(u,s){if(u){if(typeof u=="string")return k(u,s);var d={}.toString.call(u).slice(8,-1);return d==="Object"&&u.constructor&&(d=u.constructor.name),d==="Map"||d==="Set"?Array.from(u):d==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(d)?k(u,s):void 0}}function k(u,s){(s==null||s>u.length)&&(s=u.length);for(var d=0,C=Array(s);d=A},h=function(w,A){return w<=A},v=s.split(" "),p=[],N=function(){var w=I.value,A=w.split(":");if(A.length===0)return 0;if(A.length===1)return p.push(function(P){return(P.name+" ("+P.variant+")").toLocaleLowerCase().includes(A[0].toLocaleLowerCase())}),0;if(A.length>2)return{v:function(){function P(D){return!1}return P}()};var x,E=d;if(A[1][A[1].length-1]==="-"?(E=h,x=Number(A[1].substring(0,A[1].length-1))):A[1][A[1].length-1]==="+"?(E=C,x=Number(A[1].substring(0,A[1].length-1))):x=Number(A[1]),isNaN(x))return{v:function(){function P(D){return!1}return P}()};switch(A[0].toLocaleLowerCase()){case"l":case"life":case"lifespan":p.push(function(P){return E(P.lifespan,x)});break;case"e":case"end":case"endurance":p.push(function(P){return E(P.endurance,x)});break;case"m":case"mat":case"maturation":p.push(function(P){return E(P.maturation,x)});break;case"pr":case"prod":case"production":p.push(function(P){return E(P.production,x)});break;case"y":case"yield":p.push(function(P){return E(P.yield,x)});break;case"po":case"pot":case"potency":p.push(function(P){return E(P.potency,x)});break;case"s":case"stock":case"c":case"count":case"a":case"amount":p.push(function(P){return E(P.amount,x)});break;default:return{v:function(){function P(D){return!1}return P}()}}},V,S=y(v),I;!(I=S()).done;)if(V=N(),V!==0&&V)return V.v;return function(L){for(var w=0,A=p;w=1?Number(E):1)}return A}()})]})]})}},2916:function(T,r,n){"use strict";r.__esModule=!0,r.ShuttleConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ShuttleConsole=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:150,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:i.status?i.status:(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"Shuttle Missing"})}),!!i.shuttle&&(!!i.docking_ports_len&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Send to ",children:i.docking_ports.map(function(c){return(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",content:c.name,onClick:function(){function m(){return g("move",{move:c.id})}return m}()},c.name)})})||(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:"red",children:(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"Shuttle Locked"})}),!!i.admin_controlled&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Authorization",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-circle",content:"Request Authorization",disabled:!i.status,onClick:function(){function c(){return g("request")}return c}()})})],0))]})})})})}return b}()},39401:function(T,r,n){"use strict";r.__esModule=!0,r.ShuttleManipulator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ShuttleManipulator=function(){function k(g,i){var c=(0,a.useLocalState)(i,"tabIndex",0),m=c[0],l=c[1],u=function(){function s(d){switch(d){case 0:return(0,e.createComponentVNode)(2,b);case 1:return(0,e.createComponentVNode)(2,y);case 2:return(0,e.createComponentVNode)(2,B);default:return"WE SHOULDN'T BE HERE!"}}return s}();return(0,e.createComponentVNode)(2,o.Window,{width:650,height:700,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===0,onClick:function(){function s(){return l(0)}return s}(),icon:"info-circle",children:"Status"},"Status"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===1,onClick:function(){function s(){return l(1)}return s}(),icon:"file-import",children:"Templates"},"Templates"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===2,onClick:function(){function s(){return l(2)}return s}(),icon:"tools",children:"Modification"},"Modification")]}),u(m)]})})})}return k}(),b=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.shuttles;return(0,e.createComponentVNode)(2,t.Box,{children:u.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID",children:s.id}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Timer",children:s.timeleft}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Mode",children:s.mode}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Status",children:s.status}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){function d(){return m("jump_to",{type:"mobile",id:s.id})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Fast Travel",icon:"fast-forward",onClick:function(){function d(){return m("fast_travel",{id:s.id})}return d}()})]})]})},s.name)})})},y=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.templates_tabs,s=l.existing_shuttle,d=l.templates;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Tabs,{children:u.map(function(C){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===s.id,icon:"file",onClick:function(){function h(){return m("select_template_category",{cat:C})}return h}(),children:C},C)})}),!!s&&d[s.id].templates.map(function(C){return(0,e.createComponentVNode)(2,t.Section,{title:C.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[C.description&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:C.description}),C.admin_notes&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Admin Notes",children:C.admin_notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{content:"Load Template",icon:"download",onClick:function(){function h(){return m("select_template",{shuttle_id:C.shuttle_id})}return h}()})})]})},C.name)})]})},B=function(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.existing_shuttle,s=l.selected;return(0,e.createComponentVNode)(2,t.Box,{children:[u?(0,e.createComponentVNode)(2,t.Section,{title:"Selected Shuttle: "+u.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:u.status}),u.timer&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Timer",children:u.timeleft}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){function d(){return m("jump_to",{type:"mobile",id:u.id})}return d}()})})]})}):(0,e.createComponentVNode)(2,t.Section,{title:"Selected Shuttle: None"}),s?(0,e.createComponentVNode)(2,t.Section,{title:"Selected Template: "+s.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[s.description&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:s.description}),s.admin_notes&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Admin Notes",children:s.admin_notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Preview",icon:"eye",onClick:function(){function d(){return m("preview",{shuttle_id:s.shuttle_id})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Load",icon:"download",onClick:function(){function d(){return m("load",{shuttle_id:s.shuttle_id})}return d}()})]})]})}):(0,e.createComponentVNode)(2,t.Section,{title:"Selected Template: None"})]})}},86013:function(T,r,n){"use strict";r.__esModule=!0,r.SingularityMonitor=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(44879),f=n(72253),b=n(36036),y=n(76910),B=n(98595),k=n(36352),g=r.SingularityMonitor=function(){function l(u,s){var d=(0,f.useBackend)(s),C=d.act,h=d.data;return h.active===0?(0,e.createComponentVNode)(2,c):(0,e.createComponentVNode)(2,m)}return l}(),i=function(u){return Math.log2(16+Math.max(0,u))-4},c=function(u,s){var d=(0,f.useBackend)(s),C=d.act,h=d.data,v=h.singularities,p=v===void 0?[]:v;return(0,e.createComponentVNode)(2,B.Window,{width:450,height:185,children:(0,e.createComponentVNode)(2,B.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,title:"Detected Singularities",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"sync",content:"Refresh",onClick:function(){function N(){return C("refresh")}return N}()}),children:(0,e.createComponentVNode)(2,b.Table,{children:p.map(function(N){return(0,e.createComponentVNode)(2,b.Table.Row,{children:[(0,e.createComponentVNode)(2,b.Table.Cell,{children:N.singularity_id+". "+N.area_name}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,color:"label",children:"Stage:"}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,width:"120px",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N.stage,minValue:0,maxValue:6,ranges:{good:[1,2],average:[3,4],bad:[5,6]},children:(0,o.toFixed)(N.stage)})}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,b.Button,{content:"Details",onClick:function(){function V(){return C("view",{view:N.singularity_id})}return V}()})})]},N.singularity_id)})})})})})},m=function(u,s){var d=(0,f.useBackend)(s),C=d.act,h=d.data,v=h.active,p=h.singulo_stage,N=h.singulo_potential_stage,V=h.singulo_energy,S=h.singulo_high,I=h.singulo_low,L=h.generators,w=L===void 0?[]:L;return(0,e.createComponentVNode)(2,B.Window,{width:550,height:185,children:(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"270px",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Metrics",children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Stage",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:p,minValue:0,maxValue:6,ranges:{good:[1,2],average:[3,4],bad:[5,6]},children:(0,o.toFixed)(p)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Potential Stage",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N,minValue:0,maxValue:6,ranges:{good:[1,p+.5],average:[p+.5,p+1.5],bad:[p+1.5,p+2]},children:(0,o.toFixed)(N)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:V,minValue:I,maxValue:S,ranges:{good:[.67*S+.33*I,S],average:[.33*S+.67*I,.67*S+.33*I],bad:[I,.33*S+.67*I]},children:(0,o.toFixed)(V)+"MJ"})})]})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Field Generators",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"arrow-left",content:"Back",onClick:function(){function A(){return C("back")}return A}()}),children:(0,e.createComponentVNode)(2,b.LabeledList,{children:w.map(function(A){return(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Remaining Charge",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:A.charge,minValue:0,maxValue:125,ranges:{good:[80,125],average:[30,80],bad:[0,30]},children:(0,o.toFixed)(A.charge)})},A.gen_index)})})})})]})})})}},88284:function(T,r,n){"use strict";r.__esModule=!0,r.Sleeper=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=[["good","Alive"],["average","Critical"],["bad","DEAD"]],y=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],B={average:[.25,.5],bad:[.5,1/0]},k=["bad","average","average","good","average","average","bad"],g=r.Sleeper=function(){function d(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.hasOccupant,S=V?(0,e.createComponentVNode)(2,i):(0,e.createComponentVNode)(2,s);return(0,e.createComponentVNode)(2,f.Window,{width:550,height:760,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:S}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,l)})]})})})}return d}(),i=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.occupant;return(0,e.createFragment)([(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,u)],4)},c=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.occupant,S=N.auto_eject_dead;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:"Auto-eject if dead:\xA0"}),(0,e.createComponentVNode)(2,o.Button,{icon:S?"toggle-on":"toggle-off",selected:S,content:S?"On":"Off",onClick:function(){function I(){return p("auto_eject_dead_"+(S?"off":"on"))}return I}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"user-slash",content:"Eject",onClick:function(){function I(){return p("ejectify")}return I}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:V.name}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.maxHealth,value:V.health/V.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]},children:(0,a.round)(V.health,0)})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Status",color:b[V.stat][0],children:b[V.stat][1]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.maxTemp,value:V.bodyTemperature/V.maxTemp,color:k[V.temperatureSuitability+3],children:[(0,a.round)(V.btCelsius,0),"\xB0C,",(0,a.round)(V.btFaren,0),"\xB0F"]})}),!!V.hasBlood&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Blood Level",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.bloodMax,value:V.bloodLevel/V.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[V.bloodPercent,"%, ",V.bloodLevel,"cl"]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pulse",verticalAlign:"middle",children:[V.pulse," BPM"]})],4)]})})},m=function(C,h){var v=(0,t.useBackend)(h),p=v.data,N=p.occupant;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant Damage",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:y.map(function(V,S){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:V[0],children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:"100",value:N[V[1]]/100,ranges:B,children:(0,a.round)(N[V[1]],0)},S)},S)})})})},l=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.hasOccupant,S=N.isBeakerLoaded,I=N.beakerMaxSpace,L=N.beakerFreeSpace,w=N.dialysis,A=w&&L>0;return(0,e.createComponentVNode)(2,o.Section,{title:"Dialysis",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:!S||L<=0||!V,selected:A,icon:A?"toggle-on":"toggle-off",content:A?"Active":"Inactive",onClick:function(){function x(){return p("togglefilter")}return x}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!S,icon:"eject",content:"Eject",onClick:function(){function x(){return p("removebeaker")}return x}()})],4),children:S?(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Remaining Space",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:I,value:L/I,ranges:{good:[.5,1/0],average:[.25,.5],bad:[-1/0,.25]},children:[L,"u"]})})}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No beaker loaded."})})},u=function(C,h){var v=(0,t.useBackend)(h),p=v.act,N=v.data,V=N.occupant,S=N.chemicals,I=N.maxchem,L=N.amounts;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant Chemicals",children:S.map(function(w,A){var x="",E;return w.overdosing?(x="bad",E=(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-circle"}),"\xA0 Overdosing!"]})):w.od_warning&&(x="average",E=(0,e.createComponentVNode)(2,o.Box,{color:"average",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle"}),"\xA0 Close to overdosing"]})),(0,e.createComponentVNode)(2,o.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.createComponentVNode)(2,o.Section,{title:w.title,level:"3",mx:"0",lineHeight:"18px",buttons:E,children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:I,value:w.occ_amount/I,color:x,title:"Amount of chemicals currently inside the occupant / Total amount injectable by this machine",mr:"0.5rem",children:[w.pretty_amount,"/",I,"u"]}),L.map(function(P,D){return(0,e.createComponentVNode)(2,o.Button,{disabled:!w.injectable||w.occ_amount+P>I||V.stat===2,icon:"syringe",content:"Inject "+P+"u",title:"Inject "+P+"u of "+w.title+" into the occupant",mb:"0",height:"19px",onClick:function(){function M(){return p("chemical",{chemid:w.id,amount:P})}return M}()},D)})]})})},A)})})},s=function(C,h){return(0,e.createComponentVNode)(2,o.Section,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}},21597:function(T,r,n){"use strict";r.__esModule=!0,r.SlotMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SlotMachine=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;if(i.money===null)return(0,e.createComponentVNode)(2,o.Window,{width:350,height:90,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{children:"Could not scan your card or could not find account!"}),(0,e.createComponentVNode)(2,t.Box,{children:"Please wear or hold your ID and try again."})]})})});var c;return i.plays===1?c=i.plays+" player has tried their luck today!":c=i.plays+" players have tried their luck today!",(0,e.createComponentVNode)(2,o.Window,{width:300,height:151,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{lineHeight:2,children:c}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Credits Remaining",children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:i.money})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"10 credits to spin",children:(0,e.createComponentVNode)(2,t.Button,{icon:"coins",disabled:i.working,content:i.working?"Spinning...":"Spin",onClick:function(){function m(){return g("spin")}return m}()})})]}),(0,e.createComponentVNode)(2,t.Box,{bold:!0,lineHeight:2,color:i.resultlvl,children:i.result})]})})})}return b}()},46348:function(T,r,n){"use strict";r.__esModule=!0,r.Smartfridge=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Smartfridge=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.secure,m=i.can_dry,l=i.drying,u=i.contents;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[!!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"Secure Access: Please have your identification ready."}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:m?"Drying rack":"Contents",buttons:!!m&&(0,e.createComponentVNode)(2,t.Button,{width:4,icon:l?"power-off":"times",content:l?"On":"Off",selected:l,onClick:function(){function s(){return g("drying")}return s}()}),children:[!u&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cookie-bite",size:5,color:"brown"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No products loaded."]})}),!!u&&u.slice().sort(function(s,d){return s.display_name.localeCompare(d.display_name)}).map(function(s){return(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"55%",children:s.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"25%",children:["(",s.quantity," in stock)"]}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:13,children:[(0,e.createComponentVNode)(2,t.Button,{width:3,icon:"arrow-down",tooltip:"Dispense one.",content:"1",onClick:function(){function d(){return g("vend",{index:s.vend,amount:1})}return d}()}),(0,e.createComponentVNode)(2,t.NumberInput,{width:"40px",minValue:0,value:0,maxValue:s.quantity,step:1,stepPixelSize:3,onChange:function(){function d(C,h){return g("vend",{index:s.vend,amount:h})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{width:4,icon:"arrow-down",content:"All",tooltip:"Dispense all.",tooltipPosition:"bottom-start",onClick:function(){function d(){return g("vend",{index:s.vend,amount:s.quantity})}return d}()})]})]},s)})]})]})})})}return b}()},86162:function(T,r,n){"use strict";r.__esModule=!0,r.Smes=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(49968),f=n(98595),b=1e3,y=r.Smes=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.capacityPercent,u=m.capacity,s=m.charge,d=m.inputAttempt,C=m.inputting,h=m.inputLevel,v=m.inputLevelMax,p=m.inputAvailable,N=m.outputPowernet,V=m.outputAttempt,S=m.outputting,I=m.outputLevel,L=m.outputLevelMax,w=m.outputUsed,A=l>=100&&"good"||C&&"average"||"bad",x=S&&"good"||s>0&&"average"||"bad";return(0,e.createComponentVNode)(2,f.Window,{width:340,height:345,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Stored Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:l*.01,ranges:{good:[.5,1/0],average:[.15,.5],bad:[-1/0,.15]}})}),(0,e.createComponentVNode)(2,t.Section,{title:"Input",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Charge Mode",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:d?"sync-alt":"times",selected:d,onClick:function(){function E(){return c("tryinput")}return E}(),children:d?"Auto":"Off"}),children:(0,e.createComponentVNode)(2,t.Box,{color:A,children:l>=100&&"Fully Charged"||C&&"Charging"||"Not Charging"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Input",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:h===0,onClick:function(){function E(){return c("input",{target:"min"})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:h===0,onClick:function(){function E(){return c("input",{adjust:-1e4})}return E}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Slider,{value:h/b,fillValue:p/b,minValue:0,maxValue:v/b,step:5,stepPixelSize:4,format:function(){function E(P){return(0,o.formatPower)(P*b,1)}return E}(),onChange:function(){function E(P,D){return c("input",{target:D*b})}return E}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:h===v,onClick:function(){function E(){return c("input",{adjust:1e4})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:h===v,onClick:function(){function E(){return c("input",{target:"max"})}return E}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available",children:(0,o.formatPower)(p)})]})}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Output",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Output Mode",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:V?"power-off":"times",selected:V,onClick:function(){function E(){return c("tryoutput")}return E}(),children:V?"On":"Off"}),children:(0,e.createComponentVNode)(2,t.Box,{color:x,children:N?S?"Sending":s>0?"Not Sending":"No Charge":"Not Connected"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Output",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:I===0,onClick:function(){function E(){return c("output",{target:"min"})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:I===0,onClick:function(){function E(){return c("output",{adjust:-1e4})}return E}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Slider,{value:I/b,minValue:0,maxValue:L/b,step:5,stepPixelSize:4,format:function(){function E(P){return(0,o.formatPower)(P*b,1)}return E}(),onChange:function(){function E(P,D){return c("output",{target:D*b})}return E}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:I===L,onClick:function(){function E(){return c("output",{adjust:1e4})}return E}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:I===L,onClick:function(){function E(){return c("output",{target:"max"})}return E}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Outputting",children:(0,o.formatPower)(w)})]})})]})})})}return B}()},63584:function(T,r,n){"use strict";r.__esModule=!0,r.SolarControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SolarControl=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=0,m=1,l=2,u=i.generated,s=i.generated_ratio,d=i.tracking_state,C=i.tracking_rate,h=i.connected_panels,v=i.connected_tracker,p=i.cdir,N=i.direction,V=i.rotating_direction;return(0,e.createComponentVNode)(2,o.Window,{width:490,height:277,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Scan for new hardware",onClick:function(){function S(){return g("refresh")}return S}()}),children:(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Solar tracker",color:v?"good":"bad",children:v?"OK":"N/A"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Solar panels",color:h>0?"good":"bad",children:h})]})}),(0,e.createComponentVNode)(2,t.Grid.Column,{size:2,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power output",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[.66,1/0],average:[.33,.66],bad:[-1/0,.33]},minValue:0,maxValue:1,value:s,children:u+" W"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Panel orientation",children:[p,"\xB0 (",N,")"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker rotation",children:[d===l&&(0,e.createComponentVNode)(2,t.Box,{children:" Automated "}),d===m&&(0,e.createComponentVNode)(2,t.Box,{children:[" ",C,"\xB0/h (",V,")"," "]}),d===c&&(0,e.createComponentVNode)(2,t.Box,{children:" Tracker offline "})]})]})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Panel orientation",children:[d!==l&&(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0",step:1,stepPixelSize:1,minValue:0,maxValue:359,value:p,onDrag:function(){function S(I,L){return g("cdir",{cdir:L})}return S}()}),d===l&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Automated "})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker status",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Off",selected:d===c,onClick:function(){function S(){return g("track",{track:c})}return S}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"clock-o",content:"Timed",selected:d===m,onClick:function(){function S(){return g("track",{track:m})}return S}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Auto",selected:d===l,disabled:!v,onClick:function(){function S(){return g("track",{track:l})}return S}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker rotation",children:[d===m&&(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0/h",step:1,stepPixelSize:1,minValue:-7200,maxValue:7200,value:C,format:function(){function S(I){var L=Math.sign(I)>0?"+":"-";return L+Math.abs(I)}return S}(),onDrag:function(){function S(I,L){return g("tdir",{tdir:L})}return S}()}),d===c&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Tracker offline "}),d===l&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Automated "})]})]})})]})})}return b}()},38096:function(T,r,n){"use strict";r.__esModule=!0,r.SpawnersMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SpawnersMenu=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.spawners||[];return(0,e.createComponentVNode)(2,o.Window,{width:700,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{children:c.map(function(m){return(0,e.createComponentVNode)(2,t.Section,{mb:.5,title:m.name+" ("+m.amount_left+" left)",level:2,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-circle-right",content:"Jump",onClick:function(){function l(){return g("jump",{ID:m.uids})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-circle-right",content:"Spawn",onClick:function(){function l(){return g("spawn",{ID:m.uids})}return l}()})],4),children:[(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},mb:1,fontSize:"16px",children:m.desc}),!!m.fluff&&(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},textColor:"#878787",fontSize:"14px",children:m.fluff}),!!m.important_info&&(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},mt:1,bold:!0,color:"red",fontSize:"18px",children:m.important_info})]},m.name)})})})})}return b}()},30586:function(T,r,n){"use strict";r.__esModule=!0,r.SpecMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SpecMenu=function(){function g(i,c){return(0,e.createComponentVNode)(2,o.Window,{width:1100,height:600,theme:"nologo",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,y),(0,e.createComponentVNode)(2,B),(0,e.createComponentVNode)(2,k)]})})})}return g}(),b=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Hemomancer",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function d(){return l("hemomancer")}return d}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on blood magic and the manipulation of blood around you.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Vampiric claws",16),(0,e.createTextVNode)(": Unlocked at 150 blood, allows you to summon a robust pair of claws that attack rapidly, drain a targets blood, and heal you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood Barrier",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to select two turfs and create a wall between them.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood tendrils",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to slow everyone in a targeted 3x3 area after a short delay.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Sanguine pool",16),(0,e.createTextVNode)(": Unlocked at 400 blood, allows you to travel at high speeds for a short duration. Doing this leaves behind blood splatters. You can move through anything but walls and space when doing this.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Predator senses",16),(0,e.createTextVNode)(": Unlocked at 600 blood, allows you to sniff out anyone within the same sector as you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood eruption",16),(0,e.createTextVNode)(": Unlocked at 800 blood, allows you to manipulate all nearby blood splatters, in 4 tiles around you, into spikes that impale anyone stood ontop of them.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"The blood bringers rite",16),(0,e.createTextVNode)(": When toggled you will rapidly drain the blood of everyone who is nearby and use it to heal yourself slightly and remove any incapacitating effects rapidly.")],4)]})})},y=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Umbrae",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function d(){return l("umbrae")}return d}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on darkness, stealth ambushing and mobility.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Cloak of darkness",16),(0,e.createTextVNode)(": Unlocked at 150 blood, when toggled, allows you to become nearly invisible and move rapidly when in dark regions. While active, burn damage is more effective against you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Shadow anchor",16),(0,e.createTextVNode)(": Unlocked at 250 blood, casting it will create an anchor at the cast location after a short delay. If you then cast the ability again, you are teleported back to the anchor. If you do not cast again within 2 minutes, you will do a fake recall, causing a clone to appear at the anchor and making yourself invisible. It will not teleport you between Z levels.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Shadow snare",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to summon a trap that when crossed blinds and ensnares the victim. This trap is hard to see, but withers in the light.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Dark passage",16),(0,e.createTextVNode)(": Unlocked at 400 blood, allows you to target a turf on screen, you will then teleport to that turf.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Extinguish",16),(0,e.createTextVNode)(": Unlocked at 600 blood, allows you to snuff out nearby electronic light sources and glowshrooms.")],4),(0,e.createVNode)(1,"b",null,"Shadow boxing",16),": Unlocked at 800 blood, sends out shadow clones towards a target, damaging them while you remain in range.",(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Eternal darkness",16),(0,e.createTextVNode)(": When toggled, you consume yourself in unholy darkness, only the strongest of lights will be able to see through it. Inside the radius, nearby creatures will freeze and energy projectiles will deal less damage.")],4),(0,e.createVNode)(1,"p",null,"In addition, you also gain permanent X-ray vision.",16)]})})},B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Gargantua",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function d(){return l("gargantua")}return d}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on tenacity and melee damage.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Rejuvenate",16),(0,e.createTextVNode)(": Will heal you at an increased rate based on how much damage you have taken.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood swell",16),(0,e.createTextVNode)(": Unlocked at 150 blood, increases your resistance to physical damage, stuns and stamina for 30 seconds. While it is active you cannot fire guns.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Seismic stomp",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to stomp the ground to send out a shockwave, knocking people back.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood rush",16),(0,e.createTextVNode)(": Unlocked at 250 blood, gives you a short speed boost when cast.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood swell II",16),(0,e.createTextVNode)(": Unlocked at 400 blood, increases all melee damage by 10.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Overwhelming force",16),(0,e.createTextVNode)(": Unlocked at 600 blood, when toggled, if you bump into a door that you do not have access to, it will force it open. In addition, you cannot be pushed or pulled while it is active.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Demonic grasp",16),(0,e.createTextVNode)(": Unlocked at 800 blood, allows you to send out a demonic hand to snare someone. If you are on disarm/grab intent you will push/pull the target, respectively.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Charge",16),(0,e.createTextVNode)(": Unlocked at 800 blood, you gain the ability to charge at a target. Destroying and knocking back pretty much anything you collide with.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full Power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Desecrated Duel",16),(0,e.createTextVNode)(": Leap towards a visible enemy, creating an arena upon landing, infusing you with increased regeneration, and granting you resistance to internal damages.")],4)]})})},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Dantalion",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function d(){return l("dantalion")}return d}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on thralling and illusions.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Enthrall",16),(0,e.createTextVNode)(": Unlocked at 150 blood, Thralls your target to your will, requires you to stand still. Does not work on mindshielded or already enthralled/mindslaved people.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Thrall cap",16),(0,e.createTextVNode)(": You can only thrall a max of 1 person at a time. This can be increased at 400 blood, 600 blood and at full power to a max of 4 thralls.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Thrall commune",16),(0,e.createTextVNode)(": Unlocked at 150 blood, Allows you to talk to your thralls, your thralls can talk back in the same way.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Subspace swap",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to swap positions with a target.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Pacify",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to pacify a target, preventing them from causing harm for 40 seconds.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Decoy",16),(0,e.createTextVNode)(": Unlocked at 400 blood, briefly turn invisible and send out an illusion to fool everyone nearby.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Rally thralls",16),(0,e.createTextVNode)(": Unlocked at 600 blood, removes all incapacitating effects from nearby thralls.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood bond",16),(0,e.createTextVNode)(": Unlocked at 800 blood, when cast, all nearby thralls become linked to you. If anyone in the network takes damage, it is shared equally between everyone in the network. If a thrall goes out of range, they will be removed from the network.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full Power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Mass Hysteria",16),(0,e.createTextVNode)(": Casts a powerful illusion that blinds and then makes everyone nearby perceive others as random animals.")],4)]})})}},95152:function(T,r,n){"use strict";r.__esModule=!0,r.StackCraft=void 0;var e=n(89005),a=n(72253),t=n(88510),o=n(64795),f=n(25328),b=n(98595),y=n(36036),B=r.StackCraft=function(){function s(){return(0,e.createComponentVNode)(2,b.Window,{width:350,height:500,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,k)})})}return s}(),k=function(d,C){var h=(0,a.useBackend)(C),v=h.data,p=v.amount,N=v.recipes,V=(0,a.useLocalState)(C,"searchText",""),S=V[0],I=V[1],L=g(N,(0,f.createSearch)(S)),w=(0,a.useLocalState)(C,"",!1),A=w[0],x=w[1];return(0,e.createComponentVNode)(2,y.Section,{fill:!0,scrollable:!0,title:"Amount: "+p,buttons:(0,e.createFragment)([A&&(0,e.createComponentVNode)(2,y.Input,{width:12.5,value:S,placeholder:"Find recipe",onInput:function(){function E(P,D){return I(D)}return E}()}),(0,e.createComponentVNode)(2,y.Button,{ml:.5,tooltip:"Search",tooltipPosition:"bottom-end",icon:"magnifying-glass",selected:A,onClick:function(){function E(){return x(!A)}return E}()})],0),children:L?(0,e.createComponentVNode)(2,l,{recipes:L}):(0,e.createComponentVNode)(2,y.NoticeBox,{children:"No recipes found!"})})},g=function s(d,C){var h=(0,o.flow)([(0,t.map)(function(v){var p=v[0],N=v[1];return i(N)?C(p)?v:[p,s(N,C)]:C(p)?v:[p,void 0]}),(0,t.filter)(function(v){var p=v[0],N=v[1];return N!==void 0}),(0,t.sortBy)(function(v){var p=v[0],N=v[1];return p}),(0,t.sortBy)(function(v){var p=v[0],N=v[1];return!i(N)}),(0,t.reduce)(function(v,p){var N=p[0],V=p[1];return v[N]=V,v},{})])(Object.entries(d));return Object.keys(h).length?h:void 0},i=function(d){return d.uid===void 0},c=function(d,C){return d.required_amount>C?0:Math.floor(C/d.required_amount)},m=function(d,C){for(var h=(0,a.useBackend)(C),v=h.act,p=d.recipe,N=d.max_possible_multiplier,V=Math.min(N,Math.floor(p.max_result_amount/p.result_amount)),S=[5,10,25],I=[],L=function(){var E=A[w];V>=E&&I.push((0,e.createComponentVNode)(2,y.Button,{bold:!0,translucent:!0,fontSize:.85,width:"32px",content:E*p.result_amount+"x",onClick:function(){function P(){return v("make",{recipe_uid:p.uid,multiplier:E})}return P}()}))},w=0,A=S;w1?I+"x ":"",M=L>1?"s":"",R=""+D+V,O=L+" sheet"+M,F=c(S,N);return(0,e.createComponentVNode)(2,y.ImageButton,{fluid:!0,base64:P,dmIcon:x,dmIconState:E,imageSize:32,disabled:!F,tooltip:O,buttons:w>1&&F>1&&(0,e.createComponentVNode)(2,m,{recipe:S,max_possible_multiplier:F}),onClick:function(){function _(){return v("make",{recipe_uid:A,multiplier:1})}return _}(),children:R})}},38307:function(T,r,n){"use strict";r.__esModule=!0,r.StationAlertConsoleContent=r.StationAlertConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.StationAlertConsole=function(){function y(){return(0,e.createComponentVNode)(2,o.Window,{width:325,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b)})})}return y}(),b=r.StationAlertConsoleContent=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.data,c=i.alarms||[],m=c.Fire||[],l=c.Atmosphere||[],u=c.Power||[];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Fire Alarms",children:(0,e.createVNode)(1,"ul",null,[m.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),m.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Atmospherics Alarms",children:(0,e.createVNode)(1,"ul",null,[l.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),l.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Alarms",children:(0,e.createVNode)(1,"ul",null,[u.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),u.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)})],4)}return y}()},96091:function(T,r,n){"use strict";r.__esModule=!0,r.StationTraitsPanel=void 0;var e=n(89005),a=n(88510),t=n(42127),o=n(72253),f=n(36036),b=n(98595),y=function(i){return i[i.SetupFutureStationTraits=0]="SetupFutureStationTraits",i[i.ViewStationTraits=1]="ViewStationTraits",i}(y||{}),B=function(c,m){var l=(0,o.useBackend)(m),u=l.act,s=l.data,d=s.future_station_traits,C=(0,o.useLocalState)(m,"selectedFutureTrait",null),h=C[0],v=C[1],p=Object.fromEntries(s.valid_station_traits.map(function(V){return[V.name,V.path]})),N=Object.keys(p);return N.sort(),(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Dropdown,{displayText:!h&&"Select trait to add...",onSelected:v,options:N,selected:h,width:"100%"})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"green",icon:"plus",onClick:function(){function V(){if(h){var S=p[h],I=[S];if(d){var L,w=d.map(function(A){return A.path});if(w.indexOf(S)!==-1)return;I=(L=I).concat.apply(L,w)}u("setup_future_traits",{station_traits:I})}}return V}(),children:"Add"})})]}),(0,e.createComponentVNode)(2,f.Divider),Array.isArray(d)?d.length>0?(0,e.createComponentVNode)(2,f.Stack,{vertical:!0,fill:!0,children:d.map(function(V){return(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:V.name}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"red",icon:"times",onClick:function(){function S(){u("setup_future_traits",{station_traits:(0,a.filterMap)(d,function(I){if(I.path!==V.path)return I.path})})}return S}(),children:"Delete"})})]})},V.path)})}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Box,{children:"No station traits will run next round."}),(0,e.createComponentVNode)(2,f.Button,{mt:1,fluid:!0,color:"good",icon:"times",tooltip:"The next round will roll station traits randomly, just like normal",onClick:function(){function V(){return u("clear_future_traits")}return V}(),children:"Run Station Traits Normally"})]}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Box,{children:"No future station traits are planned."}),(0,e.createComponentVNode)(2,f.Button,{mt:1,fluid:!0,color:"red",icon:"times",onClick:function(){function V(){return u("setup_future_traits",{station_traits:[]})}return V}(),children:"Prevent station traits from running next round"})]})]})},k=function(c,m){var l=(0,o.useBackend)(m),u=l.act,s=l.data;return s.current_traits.length>0?(0,e.createComponentVNode)(2,f.Stack,{vertical:!0,fill:!0,children:s.current_traits.map(function(d){return(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:d.name}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button.Confirm,{content:"Revert",color:"red",disabled:s.too_late_to_revert||!d.can_revert,tooltip:!d.can_revert&&"This trait is not revertable."||s.too_late_to_revert&&"It's too late to revert station traits, the round has already started.",icon:"times",onClick:function(){function C(){return u("revert",{ref:d.ref})}return C}()})})]})},d.ref)})}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:"There are no active station traits."})},g=r.StationTraitsPanel=function(){function i(c,m){var l=(0,o.useLocalState)(m,"station_traits_tab",y.ViewStationTraits),u=l[0],s=l[1],d;switch(u){case y.SetupFutureStationTraits:d=(0,e.createComponentVNode)(2,B);break;case y.ViewStationTraits:d=(0,e.createComponentVNode)(2,k);break;default:(0,t.exhaustiveCheck)(u)}return(0,e.createComponentVNode)(2,b.Window,{title:"Modify Station Traits",height:350,width:350,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"eye",selected:u===y.ViewStationTraits,onClick:function(){function C(){return s(y.ViewStationTraits)}return C}(),children:"View"}),(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"edit",selected:u===y.SetupFutureStationTraits,onClick:function(){function C(){return s(y.SetupFutureStationTraits)}return C}(),children:"Edit"})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{m:0,children:[(0,e.createComponentVNode)(2,f.Divider),d]})]})})})}return i}()},39409:function(T,r,n){"use strict";r.__esModule=!0,r.StripMenu=void 0;var e=n(89005),a=n(88510),t=n(79140),o=n(72253),f=n(36036),b=n(98595),y=5,B=9,k=function(h){return h===0?5:9},g="64px",i=function(h){return h[0]+"/"+h[1]},c=function(h){var v=h.align,p=h.children;return(0,e.createComponentVNode)(2,f.Box,{style:{position:"absolute",left:v==="left"?"6px":"48px","text-align":v,"text-shadow":"2px 2px 2px #000",top:"2px"},children:p})},m={enable_internals:{icon:"lungs",text:"Enable internals"},disable_internals:{icon:"lungs",text:"Disable internals"},enable_lock:{icon:"lock",text:"Enable lock"},disable_lock:{icon:"unlock",text:"Disable lock"},suit_sensors:{icon:"tshirt",text:"Adjust suit sensors"},remove_accessory:{icon:"medal",text:"Remove accessory"},dislodge_headpocket:{icon:"head-side-virus",text:"Dislodge headpocket"}},l={eyes:{displayName:"eyewear",gridSpot:i([0,0]),image:"inventory-glasses.png"},head:{displayName:"headwear",gridSpot:i([0,1]),image:"inventory-head.png"},mask:{displayName:"mask",gridSpot:i([1,1]),image:"inventory-mask.png"},neck:{displayName:"neck",gridSpot:i([1,0]),image:"inventory-neck.png"},pet_collar:{displayName:"collar",gridSpot:i([1,1]),image:"inventory-collar.png"},right_ear:{displayName:"right ear",gridSpot:i([0,2]),image:"inventory-ears.png"},left_ear:{displayName:"left ear",gridSpot:i([1,2]),image:"inventory-ears.png"},parrot_headset:{displayName:"headset",gridSpot:i([1,2]),image:"inventory-ears.png"},handcuffs:{displayName:"handcuffs",gridSpot:i([1,3])},legcuffs:{displayName:"legcuffs",gridSpot:i([1,4])},jumpsuit:{displayName:"uniform",gridSpot:i([2,0]),image:"inventory-uniform.png"},suit:{displayName:"suit",gridSpot:i([2,1]),image:"inventory-suit.png"},gloves:{displayName:"gloves",gridSpot:i([2,2]),image:"inventory-gloves.png"},right_hand:{displayName:"right hand",gridSpot:i([2,3]),image:"inventory-hand_r.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"left",children:"R"})},left_hand:{displayName:"left hand",gridSpot:i([2,4]),image:"inventory-hand_l.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"right",children:"L"})},shoes:{displayName:"shoes",gridSpot:i([3,1]),image:"inventory-shoes.png"},suit_storage:{displayName:"suit storage",gridSpot:i([4,0]),image:"inventory-suit_storage.png"},id:{displayName:"ID",gridSpot:i([4,1]),image:"inventory-id.png"},belt:{displayName:"belt",gridSpot:i([4,2]),image:"inventory-belt.png"},back:{displayName:"backpack",gridSpot:i([4,3]),image:"inventory-back.png"},left_pocket:{displayName:"left pocket",gridSpot:i([3,4]),image:"inventory-pocket.png"},right_pocket:{displayName:"right pocket",gridSpot:i([3,3]),image:"inventory-pocket.png"},pda:{displayName:"PDA",gridSpot:i([4,4]),image:"inventory-pda.png"}},u={eyes:{displayName:"eyewear",gridSpot:i([0,0]),image:"inventory-glasses.png"},head:{displayName:"headwear",gridSpot:i([0,1]),image:"inventory-head.png"},mask:{displayName:"mask",gridSpot:i([1,1]),image:"inventory-mask.png"},neck:{displayName:"neck",gridSpot:i([1,0]),image:"inventory-neck.png"},pet_collar:{displayName:"collar",gridSpot:i([1,1]),image:"inventory-collar.png"},right_ear:{displayName:"right ear",gridSpot:i([0,2]),image:"inventory-ears.png"},left_ear:{displayName:"left ear",gridSpot:i([1,2]),image:"inventory-ears.png"},parrot_headset:{displayName:"headset",gridSpot:i([1,2]),image:"inventory-ears.png"},handcuffs:{displayName:"handcuffs",gridSpot:i([1,3])},legcuffs:{displayName:"legcuffs",gridSpot:i([1,4])},jumpsuit:{displayName:"uniform",gridSpot:i([2,0]),image:"inventory-uniform.png"},suit:{displayName:"suit",gridSpot:i([2,1]),image:"inventory-suit.png"},gloves:{displayName:"gloves",gridSpot:i([2,2]),image:"inventory-gloves.png"},right_hand:{displayName:"right hand",gridSpot:i([4,4]),image:"inventory-hand_r.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"left",children:"R"})},left_hand:{displayName:"left hand",gridSpot:i([4,5]),image:"inventory-hand_l.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"right",children:"L"})},shoes:{displayName:"shoes",gridSpot:i([3,1]),image:"inventory-shoes.png"},suit_storage:{displayName:"suit storage",gridSpot:i([4,0]),image:"inventory-suit_storage.png"},id:{displayName:"ID",gridSpot:i([4,1]),image:"inventory-id.png"},belt:{displayName:"belt",gridSpot:i([4,2]),image:"inventory-belt.png"},back:{displayName:"backpack",gridSpot:i([4,3]),image:"inventory-back.png"},left_pocket:{displayName:"left pocket",gridSpot:i([4,7]),image:"inventory-pocket.png"},right_pocket:{displayName:"right pocket",gridSpot:i([4,6]),image:"inventory-pocket.png"},pda:{displayName:"PDA",gridSpot:i([4,8]),image:"inventory-pda.png"}},s=function(C){return C[C.Completely=1]="Completely",C[C.Hidden=2]="Hidden",C}(s||{}),d=r.StripMenu=function(){function C(h,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,S=new Map;if(V.show_mode===0)for(var I=0,L=Object.keys(V.items);I=.01})},(0,a.sortBy)(function(x){return-x.amount})])(h.gases||[]),A=Math.max.apply(Math,[1].concat(w.map(function(x){return x.portion})));return(0,e.createComponentVNode)(2,B.Window,{width:550,height:250,children:(0,e.createComponentVNode)(2,B.Window.Content,{children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"270px",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Metrics",children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:p/100,ranges:{good:[.9,1/0],average:[.5,.9],bad:[-1/0,.5]}})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Relative EER",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N,minValue:0,maxValue:5e3,ranges:{good:[-1/0,5e3],average:[5e3,7e3],bad:[7e3,1/0]},children:(0,o.toFixed)(N)+" MeV/cm3"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Gas Coefficient",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:L,minValue:1,maxValue:5.25,ranges:{bad:[1,1.55],average:[1.55,5.25],good:[5.25,1/0]},children:L.toFixed(2)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:i(V),minValue:0,maxValue:i(1e4),ranges:{teal:[-1/0,i(80)],good:[i(80),i(373)],average:[i(373),i(1e3)],bad:[i(1e3),1/0]},children:(0,o.toFixed)(V)+" K"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Mole Per Tile",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:I,minValue:0,maxValue:12e3,ranges:{teal:[-1/0,100],average:[100,11333],good:[11333,12e3],bad:[12e3,1/0]},children:(0,o.toFixed)(I)+" mol"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Pressure",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:i(S),minValue:0,maxValue:i(5e4),ranges:{good:[i(1),i(300)],average:[-1/0,i(1e3)],bad:[i(1e3),1/0]},children:(0,o.toFixed)(S)+" kPa"})})]})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Gases",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"arrow-left",content:"Back",onClick:function(){function x(){return C("back")}return x}()}),children:(0,e.createComponentVNode)(2,b.LabeledList,{children:w.map(function(x){return(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:(0,y.getGasLabel)(x.name),children:(0,e.createComponentVNode)(2,b.ProgressBar,{color:(0,y.getGasColor)(x.name),value:x.portion,minValue:0,maxValue:A,children:(0,o.toFixed)(x.amount)+" mol ("+x.portion+"%)"})},x.name)})})})})]})})})}},46029:function(T,r,n){"use strict";r.__esModule=!0,r.SyndicateComputerSimple=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SyndicateComputerSimple=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data;return(0,e.createComponentVNode)(2,o.Window,{theme:"syndicate",width:400,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:i.rows.map(function(c){return(0,e.createComponentVNode)(2,t.Section,{title:c.title,buttons:(0,e.createComponentVNode)(2,t.Button,{content:c.buttontitle,disabled:c.buttondisabled,tooltip:c.buttontooltip,tooltipPosition:"left",onClick:function(){function m(){return g(c.buttonact)}return m}()}),children:[c.status,!!c.bullets&&(0,e.createComponentVNode)(2,t.Box,{children:c.bullets.map(function(m){return(0,e.createComponentVNode)(2,t.Box,{children:m},m)})})]},c.title)})})})}return b}()},36372:function(T,r,n){"use strict";r.__esModule=!0,r.TEG=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(B){return B.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,")},b=r.TEG=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data;return c.error?(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Error",children:[c.error,(0,e.createComponentVNode)(2,t.Button,{icon:"circle",content:"Recheck",onClick:function(){function m(){return i("check")}return m}()})]})})}):(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Cold Loop ("+c.cold_dir+")",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cold Inlet",children:[f(c.cold_inlet_temp)," K, ",f(c.cold_inlet_pressure)," kPa"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cold Outlet",children:[f(c.cold_outlet_temp)," K, ",f(c.cold_outlet_pressure)," kPa"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Hot Loop ("+c.hot_dir+")",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hot Inlet",children:[f(c.hot_inlet_temp)," K, ",f(c.hot_inlet_pressure)," kPa"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hot Outlet",children:[f(c.hot_outlet_temp)," K, ",f(c.hot_outlet_pressure)," kPa"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Output",children:[f(c.output_power)," W",!!c.warning_switched&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Cold inlet temperature exceeds hot inlet temperature."}),!!c.warning_cold_pressure&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Cold circulator inlet pressure is under 1,000 kPa."}),!!c.warning_hot_pressure&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Hot circulator inlet pressure is under 1,000 kPa."})]})]})})}return y}()},56441:function(T,r,n){"use strict";r.__esModule=!0,r.TachyonArrayContent=r.TachyonArray=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TachyonArray=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.records,l=m===void 0?[]:m,u=c.explosion_target,s=c.toxins_tech,d=c.printing;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shift's Target",children:u}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Toxins Level",children:s}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Administration",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print All Logs",disabled:!l.length||d,align:"center",onClick:function(){function C(){return i("print_logs")}return C}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash",content:"Delete All Logs",disabled:!l.length,color:"bad",align:"center",onClick:function(){function C(){return i("delete_logs")}return C}()})]})]})}),l.length?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No Records"})]})})}return y}(),b=r.TachyonArrayContent=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.records,l=m===void 0?[]:m;return(0,e.createComponentVNode)(2,t.Section,{title:"Logged Explosions",children:(0,e.createComponentVNode)(2,t.Flex,{children:(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Time"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Epicenter"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actual Size"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Theoretical Size"})]}),l.map(function(u){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.logged_time}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.epicenter}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.actual_size_message}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.theoretical_size_message}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash",content:"Delete",color:"bad",onClick:function(){function s(){return i("delete_record",{index:u.index})}return s}()})})]},u.index)})]})})})})}return y}()},1754:function(T,r,n){"use strict";r.__esModule=!0,r.Tank=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Tank=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c;return i.has_mask?c=(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mask",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,width:"76%",icon:i.connected?"check":"times",content:i.connected?"Internals On":"Internals Off",selected:i.connected,onClick:function(){function m(){return g("internals")}return m}()})}):c=(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mask",color:"red",children:"No Mask Equipped"}),(0,e.createComponentVNode)(2,o.Window,{width:325,height:135,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tank Pressure",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:i.tankPressure/1013,ranges:{good:[.35,1/0],average:[.15,.35],bad:[-1/0,.15]},children:i.tankPressure+" kPa"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Release Pressure",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:i.ReleasePressure===i.minReleasePressure,tooltip:"Min",onClick:function(){function m(){return g("pressure",{pressure:"min"})}return m}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,value:parseFloat(i.releasePressure),width:"65px",unit:"kPa",minValue:i.minReleasePressure,maxValue:i.maxReleasePressure,onChange:function(){function m(l,u){return g("pressure",{pressure:u})}return m}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:i.ReleasePressure===i.maxReleasePressure,tooltip:"Max",onClick:function(){function m(){return g("pressure",{pressure:"max"})}return m}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"undo",content:"",disabled:i.ReleasePressure===i.defaultReleasePressure,tooltip:"Reset",onClick:function(){function m(){return g("pressure",{pressure:"reset"})}return m}()})]}),c]})})})})}return b}()},7579:function(T,r,n){"use strict";r.__esModule=!0,r.TankDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TankDispenser=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.o_tanks,m=i.p_tanks;return(0,e.createComponentVNode)(2,o.Window,{width:250,height:105,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Dispense Oxygen Tank ("+c+")",disabled:c===0,icon:"arrow-circle-down",onClick:function(){function l(){return g("oxygen")}return l}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{mt:1,fluid:!0,content:"Dispense Plasma Tank ("+m+")",disabled:m===0,icon:"arrow-circle-down",onClick:function(){function l(){return g("plasma")}return l}()})})]})})})}return b}()},16136:function(T,r,n){"use strict";r.__esModule=!0,r.TcommsCore=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TcommsCore=function(){function g(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.ion,d=(0,a.useLocalState)(c,"tabIndex",0),C=d[0],h=d[1],v=function(){function p(N){switch(N){case 0:return(0,e.createComponentVNode)(2,y);case 1:return(0,e.createComponentVNode)(2,B);case 2:return(0,e.createComponentVNode)(2,k);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}}return p}();return(0,e.createComponentVNode)(2,o.Window,{width:900,height:520,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[s===1&&(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"wrench",selected:C===0,onClick:function(){function p(){return h(0)}return p}(),children:"Configuration"},"ConfigPage"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"link",selected:C===1,onClick:function(){function p(){return h(1)}return p}(),children:"Device Linkage"},"LinkagePage"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"user-times",selected:C===2,onClick:function(){function p(){return h(2)}return p}(),children:"User Filtering"},"FilterPage")]}),v(C)]})})}return g}(),b=function(){return(0,e.createComponentVNode)(2,t.NoticeBox,{children:"ERROR: An Ionospheric overload has occured. Please wait for the machine to reboot. This cannot be manually done."})},y=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.active,d=u.sectors_available,C=u.nttc_toggle_jobs,h=u.nttc_toggle_job_color,v=u.nttc_toggle_name_color,p=u.nttc_toggle_command_bold,N=u.nttc_job_indicator_type,V=u.nttc_setting_language,S=u.network_id;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Machine Power",children:(0,e.createComponentVNode)(2,t.Button,{content:s?"On":"Off",selected:s,icon:"power-off",onClick:function(){function I(){return l("toggle_active")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sector Coverage",children:d})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Radio Configuration",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Announcements",children:(0,e.createComponentVNode)(2,t.Button,{content:C?"On":"Off",selected:C,icon:"user-tag",onClick:function(){function I(){return l("nttc_toggle_jobs")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Departmentalisation",children:(0,e.createComponentVNode)(2,t.Button,{content:h?"On":"Off",selected:h,icon:"clipboard-list",onClick:function(){function I(){return l("nttc_toggle_job_color")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name Departmentalisation",children:(0,e.createComponentVNode)(2,t.Button,{content:v?"On":"Off",selected:v,icon:"user-tag",onClick:function(){function I(){return l("nttc_toggle_name_color")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Command Amplification",children:(0,e.createComponentVNode)(2,t.Button,{content:p?"On":"Off",selected:p,icon:"volume-up",onClick:function(){function I(){return l("nttc_toggle_command_bold")}return I}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Advanced",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Announcement Format",children:(0,e.createComponentVNode)(2,t.Button,{content:N||"Unset",selected:N,icon:"pencil-alt",onClick:function(){function I(){return l("nttc_job_indicator_type")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Language Conversion",children:(0,e.createComponentVNode)(2,t.Button,{content:V||"Unset",selected:V,icon:"globe",onClick:function(){function I(){return l("nttc_setting_language")}return I}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network ID",children:(0,e.createComponentVNode)(2,t.Button,{content:S||"Unset",selected:S,icon:"server",onClick:function(){function I(){return l("network_id")}return I}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Maintenance",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Import Configuration",icon:"file-import",onClick:function(){function I(){return l("import")}return I}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Export Configuration",icon:"file-export",onClick:function(){function I(){return l("export")}return I}()})]})],4)},B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.link_password,d=u.relay_entries;return(0,e.createComponentVNode)(2,t.Section,{title:"Device Linkage",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linkage Password",children:(0,e.createComponentVNode)(2,t.Button,{content:s||"Unset",selected:s,icon:"lock",onClick:function(){function C(){return l("change_password")}return C}()})})}),(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Sector"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Unlink"})]}),d.map(function(C){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.sector}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.status===1?(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Online"}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Offline"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Unlink",icon:"unlink",onClick:function(){function h(){return l("unlink",{addr:C.addr})}return h}()})})]},C.addr)})]})]})},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.filtered_users;return(0,e.createComponentVNode)(2,t.Section,{title:"User Filtering",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Add User",icon:"user-plus",onClick:function(){function d(){return l("add_filter")}return d}()}),children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{style:{width:"90%"},children:"User"}),(0,e.createComponentVNode)(2,t.Table.Cell,{style:{width:"10%"},children:"Actions"})]}),s.map(function(d){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:d}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove",icon:"user-times",onClick:function(){function C(){return l("remove_filter",{user:d})}return C}()})})]},d)})]})})}},88046:function(T,r,n){"use strict";r.__esModule=!0,r.TcommsRelay=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TcommsRelay=function(){function B(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.linked,u=m.active,s=m.network_id;return(0,e.createComponentVNode)(2,o.Window,{width:600,height:292,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Relay Configuration",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Machine Power",children:(0,e.createComponentVNode)(2,t.Button,{content:u?"On":"Off",selected:u,icon:"power-off",onClick:function(){function d(){return c("toggle_active")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network ID",children:(0,e.createComponentVNode)(2,t.Button,{content:s||"Unset",selected:s,icon:"server",onClick:function(){function d(){return c("network_id")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Link Status",children:l===1?(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Linked"}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Unlinked"})})]})}),l===1?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,y)]})})}return B}(),b=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.linked_core_id,u=m.linked_core_addr,s=m.hidden_link;return(0,e.createComponentVNode)(2,t.Section,{title:"Link Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linked Core ID",children:l}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linked Core Address",children:u}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hidden Link",children:(0,e.createComponentVNode)(2,t.Button,{content:s?"Yes":"No",icon:s?"eye-slash":"eye",selected:s,onClick:function(){function d(){return c("toggle_hidden_link")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unlink",children:(0,e.createComponentVNode)(2,t.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function d(){return c("unlink")}return d}()})})]})})},y=function(k,g){var i=(0,a.useBackend)(g),c=i.act,m=i.data,l=m.cores;return(0,e.createComponentVNode)(2,t.Section,{title:"Detected Cores",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Sector"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Link"})]}),l.map(function(u){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.sector}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Link",icon:"link",onClick:function(){function s(){return c("link",{addr:u.addr})}return s}()})})]},u.addr)})]})})}},20802:function(T,r,n){"use strict";r.__esModule=!0,r.Teleporter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Teleporter=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.targetsTeleport?i.targetsTeleport:{},m=0,l=1,u=2,s=i.calibrated,d=i.calibrating,C=i.powerstation,h=i.regime,v=i.teleporterhub,p=i.target,N=i.locked,V=i.adv_beacon_allowed,S=i.advanced_beacon_locking;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:270,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:[(!C||!v)&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Error",children:[v,!C&&(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:" Powerstation not linked "}),C&&!v&&(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:" Teleporter hub not linked "})]}),C&&v&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Status",buttons:(0,e.createFragment)(!!V&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"label",children:"Advanced Beacon Locking:\xA0"}),(0,e.createComponentVNode)(2,t.Button,{selected:S,icon:S?"toggle-on":"toggle-off",content:S?"Enabled":"Disabled",onClick:function(){function I(){return g("advanced_beacon_locking",{on:S?0:1})}return I}()})],4),0),children:[(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Teleport target:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[h===m&&(0,e.createComponentVNode)(2,t.Dropdown,{width:18.2,selected:p,disabled:d,options:Object.keys(c),color:p!=="None"?"default":"bad",onSelected:function(){function I(L){return g("settarget",{x:c[L].x,y:c[L].y,z:c[L].z,tptarget:c[L].pretarget})}return I}()}),h===l&&(0,e.createComponentVNode)(2,t.Dropdown,{width:18.2,selected:p,disabled:d,options:Object.keys(c),color:p!=="None"?"default":"bad",onSelected:function(){function I(L){return g("settarget",{x:c[L].x,y:c[L].y,z:c[L].z,tptarget:c[L].pretarget})}return I}()}),h===u&&(0,e.createComponentVNode)(2,t.Box,{children:p})]})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Regime:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Gate",tooltip:"Teleport to another teleport hub.",tooltipPosition:"top",color:h===l?"good":null,onClick:function(){function I(){return g("setregime",{regime:l})}return I}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Teleporter",tooltip:"One-way teleport.",tooltipPosition:"top",color:h===m?"good":null,onClick:function(){function I(){return g("setregime",{regime:m})}return I}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"GPS",tooltip:"Teleport to a location stored in a GPS device.",tooltipPosition:"top-end",color:h===u?"good":null,disabled:!N,onClick:function(){function I(){return g("setregime",{regime:u})}return I}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{label:"Calibration",mt:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Calibration:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[p!=="None"&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:15.8,textAlign:"center",mt:.5,children:d&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"In Progress"})||s&&(0,e.createComponentVNode)(2,t.Box,{color:"good",children:"Optimal"})||(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Sub-Optimal"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{icon:"sync-alt",tooltip:"Calibrates the hub. Accidents may occur when the calibration is not optimal.",tooltipPosition:"bottom-end",disabled:!!(s||d),onClick:function(){function I(){return g("calibrate")}return I}()})})]}),p==="None"&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"21px",children:"No target set"})]})]})]}),!!(N&&C&&v&&h===u)&&(0,e.createComponentVNode)(2,t.Section,{title:"GPS",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Upload GPS data",tooltip:"Loads the GPS data from the device.",icon:"upload",onClick:function(){function I(){return g("load")}return I}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject",tooltip:"Ejects the GPS device",icon:"eject",onClick:function(){function I(){return g("eject")}return I}()})]})})]})})})})}return b}()},48517:function(T,r,n){"use strict";r.__esModule=!0,r.TelescienceConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TelescienceConsole=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.last_msg,m=i.linked_pad,l=i.held_gps,u=i.lastdata,s=i.power_levels,d=i.current_max_power,C=i.current_power,h=i.current_bearing,v=i.current_elevation,p=i.current_sector,N=i.working,V=i.max_z,S=(0,a.useLocalState)(B,"dummyrot",h),I=S[0],L=S[1];return(0,e.createComponentVNode)(2,o.Window,{width:400,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:(0,e.createFragment)([c,!(u.length>0)||(0,e.createVNode)(1,"ul",null,u.map(function(w){return(0,e.createVNode)(1,"li",null,w,0,null,w)}),0)],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Telepad Status",children:m===1?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Bearing",children:(0,e.createComponentVNode)(2,t.Box,{inline:!0,position:"relative",children:[(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0",width:6.1,lineHeight:1.5,step:.1,minValue:0,maxValue:360,disabled:N,value:h,onDrag:function(){function w(A,x){return L(x)}return w}(),onChange:function(){function w(A,x){return g("setbear",{bear:x})}return w}()}),(0,e.createComponentVNode)(2,t.Icon,{ml:1,size:1,name:"arrow-up",rotation:I})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Elevation",children:(0,e.createComponentVNode)(2,t.NumberInput,{width:6.1,lineHeight:1.5,step:.1,minValue:0,maxValue:100,disabled:N,value:v,onChange:function(){function w(A,x){return g("setelev",{elev:x})}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Level",children:s.map(function(w,A){return(0,e.createComponentVNode)(2,t.Button,{content:w,selected:C===w,disabled:A>=d-1||N,onClick:function(){function x(){return g("setpwr",{pwr:A+1})}return x}()},w)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Sector",children:(0,e.createComponentVNode)(2,t.NumberInput,{width:6.1,lineHeight:1.5,step:1,minValue:2,maxValue:V,value:p,disabled:N,onChange:function(){function w(A,x){return g("setz",{newz:x})}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Telepad Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Send",disabled:N,onClick:function(){function w(){return g("pad_send")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Receive",disabled:N,onClick:function(){function w(){return g("pad_receive")}return w}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Crystal Maintenance",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Recalibrate Crystals",disabled:N,onClick:function(){function w(){return g("recal_crystals")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject Crystals",disabled:N,onClick:function(){function w(){return g("eject_crystals")}return w}()})]})]}):(0,e.createFragment)([(0,e.createTextVNode)("No pad linked to console. Please use a multitool to link a pad.")],4)}),(0,e.createComponentVNode)(2,t.Section,{title:"GPS Actions",children:l===1?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{disabled:l===0||N,content:"Eject GPS",onClick:function(){function w(){return g("eject_gps")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:l===0||N,content:"Store Coordinates",onClick:function(){function w(){return g("store_to_gps")}return w}()})],4):(0,e.createFragment)([(0,e.createTextVNode)("Please insert a GPS to store coordinates to it.")],4)})]})})}return b}()},21800:function(T,r,n){"use strict";r.__esModule=!0,r.TempGun=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.TempGun=function(){function g(i,c){var m=(0,t.useBackend)(c),l=m.act,u=m.data,s=u.target_temperature,d=u.temperature,C=u.max_temp,h=u.min_temp;return(0,e.createComponentVNode)(2,f.Window,{width:250,height:121,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target Temperature",children:[(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:10,stepPixelSize:6,minValue:h,maxValue:C,value:s,format:function(){function v(p){return(0,a.toFixed)(p,2)}return v}(),width:"50px",onDrag:function(){function v(p,N){return l("target_temperature",{target_temperature:N})}return v}()}),"\xB0C"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Current Temperature",children:(0,e.createComponentVNode)(2,o.Box,{color:y(d),bold:d>500-273.15,children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:(0,a.round)(d,2)}),"\xB0C"]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Power Cost",children:(0,e.createComponentVNode)(2,o.Box,{color:k(d),children:B(d)})})]})})})})}return g}(),y=function(i){return i<=-100?"blue":i<=0?"teal":i<=100?"green":i<=200?"orange":"red"},B=function(i){return i<=100-273.15?"High":i<=250-273.15?"Medium":i<=300-273.15?"Low":i<=400-273.15?"Medium":"High"},k=function(i){return i<=100-273.15?"red":i<=250-273.15?"orange":i<=300-273.15?"green":i<=400-273.15?"orange":"red"}},24410:function(T,r,n){"use strict";r.__esModule=!0,r.sanitizeMultiline=r.removeAllSkiplines=r.TextInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(72253),f=n(92986),b=n(36036),y=n(98595),B=r.sanitizeMultiline=function(){function c(m){return m.replace(/(\n|\r\n){3,}/,"\n\n")}return c}(),k=r.removeAllSkiplines=function(){function c(m){return m.replace(/[\r\n]+/,"")}return c}(),g=r.TextInputModal=function(){function c(m,l){var u=(0,o.useBackend)(l),s=u.act,d=u.data,C=d.max_length,h=d.message,v=h===void 0?"":h,p=d.multiline,N=d.placeholder,V=d.timeout,S=d.title,I=(0,o.useLocalState)(l,"input",N||""),L=I[0],w=I[1],A=function(){function P(D){if(D!==L){var M=p?B(D):k(D);w(M)}}return P}(),x=p||L.length>=40,E=130+(v.length>40?Math.ceil(v.length/4):0)+(x?80:0);return(0,e.createComponentVNode)(2,y.Window,{title:S,width:325,height:E,children:[V&&(0,e.createComponentVNode)(2,a.Loader,{value:V}),(0,e.createComponentVNode)(2,y.Window.Content,{onKeyDown:function(){function P(D){var M=window.event?D.which:D.keyCode;M===f.KEY_ENTER&&(!x||!D.shiftKey)&&s("submit",{entry:L}),M===f.KEY_ESCAPE&&s("cancel")}return P}(),children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Box,{color:"label",children:v})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,i,{input:L,onType:A})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,t.InputButtons,{input:L,message:L.length+"/"+C})})]})})})]})}return c}(),i=function(m,l){var u=(0,o.useBackend)(l),s=u.act,d=u.data,C=d.max_length,h=d.multiline,v=m.input,p=m.onType,N=h||v.length>=40;return(0,e.createComponentVNode)(2,b.TextArea,{autoFocus:!0,autoSelect:!0,height:h||v.length>=40?"100%":"1.8rem",maxLength:C,onEscape:function(){function V(){return s("cancel")}return V}(),onEnter:function(){function V(S){N&&S.shiftKey||(S.preventDefault(),s("submit",{entry:v}))}return V}(),onInput:function(){function V(S,I){return p(I)}return V}(),placeholder:"Type something...",value:v})}},25036:function(T,r,n){"use strict";r.__esModule=!0,r.ThermoMachine=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.ThermoMachine=function(){function y(B,k){var g=(0,t.useBackend)(k),i=g.act,c=g.data;return(0,e.createComponentVNode)(2,f.Window,{width:300,height:225,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:[(0,e.createComponentVNode)(2,o.Section,{title:"Status",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:c.temperature,format:function(){function m(l){return(0,a.toFixed)(l,2)}return m}()})," K"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pressure",children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:c.pressure,format:function(){function m(l){return(0,a.toFixed)(l,2)}return m}()})," kPa"]})]})}),(0,e.createComponentVNode)(2,o.Section,{title:"Controls",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){function m(){return i("power")}return m}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Setting",textAlign:"center",children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:c.cooling?"temperature-low":"temperature-high",content:c.cooling?"Cooling":"Heating",selected:c.cooling,onClick:function(){function m(){return i("cooling")}return m}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target Temperature",children:[(0,e.createComponentVNode)(2,o.Button,{icon:"fast-backward",disabled:c.target===c.min,title:"Minimum temperature",onClick:function(){function m(){return i("target",{target:c.min})}return m}()}),(0,e.createComponentVNode)(2,o.NumberInput,{animated:!0,value:Math.round(c.target),unit:"K",width:5.4,lineHeight:1.4,minValue:Math.round(c.min),maxValue:Math.round(c.max),step:5,stepPixelSize:3,onDrag:function(){function m(l,u){return i("target",{target:u})}return m}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"fast-forward",disabled:c.target===c.max,title:"Maximum Temperature",onClick:function(){function m(){return i("target",{target:c.max})}return m}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"sync",disabled:c.target===c.initial,title:"Room Temperature",onClick:function(){function m(){return i("target",{target:c.initial})}return m}()})]})]})})]})})}return y}()},20035:function(T,r,n){"use strict";r.__esModule=!0,r.TransferValve=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TransferValve=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.tank_one,m=i.tank_two,l=i.attached_device,u=i.valve;return(0,e.createComponentVNode)(2,o.Window,{width:460,height:285,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Valve Status",children:(0,e.createComponentVNode)(2,t.Button,{icon:u?"unlock":"lock",content:u?"Open":"Closed",disabled:!c||!m,onClick:function(){function s(){return g("toggle")}return s}()})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Assembly",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Configure Assembly",disabled:!l,onClick:function(){function s(){return g("device")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:l?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:l,disabled:!l,onClick:function(){function s(){return g("remove_device")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Assembly"})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Attachment One",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:c?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:c,disabled:!c,onClick:function(){function s(){return g("tankone")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Tank"})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Attachment Two",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:m?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:m,disabled:!m,onClick:function(){function s(){return g("tanktwo")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Tank"})})})})]})})}return b}()},78166:function(T,r,n){"use strict";r.__esModule=!0,r.TurbineComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(44879),b=r.TurbineComputer=function(){function k(g,i){var c=(0,a.useBackend)(i),m=c.act,l=c.data,u=l.compressor,s=l.compressor_broken,d=l.turbine,C=l.turbine_broken,h=l.online,v=!!(u&&!s&&d&&!C);return(0,e.createComponentVNode)(2,o.Window,{width:400,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:h?"power-off":"times",content:h?"Online":"Offline",selected:h,disabled:!v,onClick:function(){function p(){return m("toggle_power")}return p}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Disconnect",onClick:function(){function p(){return m("disconnect")}return p}()})],4),children:v?(0,e.createComponentVNode)(2,B):(0,e.createComponentVNode)(2,y)})})})}return k}(),y=function(g,i){var c=(0,a.useBackend)(i),m=c.data,l=m.compressor,u=m.compressor_broken,s=m.turbine,d=m.turbine_broken,C=m.online;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Compressor Status",color:!l||u?"bad":"good",children:u?l?"Offline":"Missing":"Online"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Turbine Status",color:!s||d?"bad":"good",children:d?s?"Offline":"Missing":"Online"})]})},B=function(g,i){var c=(0,a.useBackend)(i),m=c.data,l=m.rpm,u=m.temperature,s=m.power,d=m.bearing_heat;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Turbine Speed",children:[l," RPM"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Internal Temp",children:[u," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Generated Power",children:[s," W"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Bearing Heat",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:d,minValue:0,maxValue:100,ranges:{good:[-1/0,60],average:[60,90],bad:[90,1/0]},children:(0,f.toFixed)(d)+"%"})})]})}},52847:function(T,r,n){"use strict";r.__esModule=!0,r.Uplink=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(25328),f=n(72253),b=n(36036),y=n(98595),B=n(3939),k=function(h){switch(h){case 0:return(0,e.createComponentVNode)(2,i);case 1:return(0,e.createComponentVNode)(2,c);case 2:return(0,e.createComponentVNode)(2,d);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}},g=r.Uplink=function(){function C(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=V.cart,I=(0,f.useLocalState)(v,"tabIndex",0),L=I[0],w=I[1],A=(0,f.useLocalState)(v,"searchText",""),x=A[0],E=A[1];return(0,e.createComponentVNode)(2,y.Window,{width:900,height:600,theme:"syndicate",children:[(0,e.createComponentVNode)(2,B.ComplexModal),(0,e.createComponentVNode)(2,y.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Tabs,{children:[(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===0,onClick:function(){function P(){w(0),E("")}return P}(),icon:"store",children:"View Market"},"PurchasePage"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===1,onClick:function(){function P(){w(1),E("")}return P}(),icon:"shopping-cart",children:["View Shopping Cart ",S&&S.length?"("+S.length+")":""]},"Cart"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===2,onClick:function(){function P(){w(2),E("")}return P}(),icon:"user",children:"Exploitable Information"},"ExploitableInfo"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{onClick:function(){function P(){return N("lock")}return P}(),icon:"lock",children:"Lock Uplink"},"LockUplink")]})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:k(L)})]})})]})}return C}(),i=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=V.crystals,I=V.cats,L=(0,f.useLocalState)(v,"uplinkItems",I[0].items),w=L[0],A=L[1],x=(0,f.useLocalState)(v,"searchText",""),E=x[0],P=x[1],D=function(U,z){z===void 0&&(z="");var $=(0,o.createSearch)(z,function(G){var X=G.hijack_only===1?"|hijack":"";return G.name+"|"+G.desc+"|"+G.cost+"tc"+X});return(0,t.flow)([(0,a.filter)(function(G){return G==null?void 0:G.name}),z&&(0,a.filter)($),(0,a.sortBy)(function(G){return G==null?void 0:G.name})])(U)},M=function(U){if(P(U),U==="")return A(I[0].items);A(D(I.map(function(z){return z.items}).flat(),U))},R=(0,f.useLocalState)(v,"showDesc",1),O=R[0],F=R[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Section,{title:"Current Balance: "+S+"TC",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"Show Descriptions",checked:O,onClick:function(){function _(){return F(!O)}return _}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Random Item",icon:"question",onClick:function(){function _(){return N("buyRandom")}return _}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Refund Currently Held Item",icon:"undo",onClick:function(){function _(){return N("refund")}return _}()})],4),children:(0,e.createComponentVNode)(2,b.Input,{fluid:!0,placeholder:"Search Equipment",onInput:function(){function _(U,z){M(z)}return _}(),value:E})})})}),(0,e.createComponentVNode)(2,b.Stack,{fill:!0,mt:.3,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:I.map(function(_){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:E!==""?!1:_.items===w,onClick:function(){function U(){A(_.items),P("")}return U}(),children:_.cat},_)})})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:w.map(function(_){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,l,{i:_,showDecription:O},(0,o.decodeHtmlEntities)(_.name))},(0,o.decodeHtmlEntities)(_.name))})})})})]})]})},c=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=V.cart,I=V.crystals,L=V.cart_price,w=(0,f.useLocalState)(v,"showDesc",0),A=w[0],x=w[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Current Balance: "+I+"TC",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"Show Descriptions",checked:A,onClick:function(){function E(){return x(!A)}return E}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Empty Cart",icon:"trash",onClick:function(){function E(){return N("empty_cart")}return E}(),disabled:!S}),(0,e.createComponentVNode)(2,b.Button,{content:"Purchase Cart ("+L+"TC)",icon:"shopping-cart",onClick:function(){function E(){return N("purchase_cart")}return E}(),disabled:!S||L>I})],4),children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:S?S.map(function(E){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,mr:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,l,{i:E,showDecription:A,buttons:(0,e.createComponentVNode)(2,s,{i:E})})},(0,o.decodeHtmlEntities)(E.name))}):(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:"Your Shopping Cart is empty!"})})})}),(0,e.createComponentVNode)(2,m)]})},m=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=V.cats,I=V.lucky_numbers;return(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Suggested Purchases",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"dice",content:"See more suggestions",onClick:function(){function L(){return N("shuffle_lucky_numbers")}return L}()}),children:(0,e.createComponentVNode)(2,b.Stack,{wrap:!0,children:I.map(function(L){return S[L.cat].items[L.item]}).filter(function(L){return L!=null}).map(function(L,w){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,mb:1,ml:1,width:34,backgroundColor:"rgba(255, 0, 0, 0.15)",children:(0,e.createComponentVNode)(2,l,{grow:!0,i:L})},w)})})})})},l=function(h,v){var p=h.i,N=h.showDecription,V=N===void 0?1:N,S=h.buttons,I=S===void 0?(0,e.createComponentVNode)(2,u,{i:p}):S;return(0,e.createComponentVNode)(2,b.Section,{title:(0,o.decodeHtmlEntities)(p.name),showBottom:V,buttons:I,children:V?(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:(0,o.decodeHtmlEntities)(p.desc)}):null})},u=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=h.i,I=V.crystals;return(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button,{icon:"shopping-cart",color:S.hijack_only===1&&"red",tooltip:"Add to cart.",tooltipPosition:"left",onClick:function(){function L(){return N("add_to_cart",{item:S.obj_path})}return L}(),disabled:S.cost>I}),(0,e.createComponentVNode)(2,b.Button,{content:"Buy ("+S.cost+"TC)"+(S.refundable?" [Refundable]":""),color:S.hijack_only===1&&"red",tooltip:S.hijack_only===1&&"Hijack Agents Only!",tooltipPosition:"left",onClick:function(){function L(){return N("buyItem",{item:S.obj_path})}return L}(),disabled:S.cost>I})],4)},s=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=h.i,I=V.exploitable;return(0,e.createComponentVNode)(2,b.Stack,{children:[(0,e.createComponentVNode)(2,b.Button,{icon:"times",content:"("+S.cost*S.amount+"TC)",tooltip:"Remove from cart.",tooltipPosition:"left",onClick:function(){function L(){return N("remove_from_cart",{item:S.obj_path})}return L}()}),(0,e.createComponentVNode)(2,b.Button,{icon:"minus",tooltip:S.limit===0&&"Discount already redeemed!",ml:"5px",onClick:function(){function L(){return N("set_cart_item_quantity",{item:S.obj_path,quantity:--S.amount})}return L}(),disabled:S.amount<=0}),(0,e.createComponentVNode)(2,b.Button.Input,{content:S.amount,width:"45px",tooltipPosition:"bottom-end",tooltip:S.limit===0&&"Discount already redeemed!",onCommit:function(){function L(w,A){return N("set_cart_item_quantity",{item:S.obj_path,quantity:A})}return L}(),disabled:S.limit!==-1&&S.amount>=S.limit&&S.amount<=0}),(0,e.createComponentVNode)(2,b.Button,{mb:.3,icon:"plus",tooltipPosition:"bottom-start",tooltip:S.limit===0&&"Discount already redeemed!",onClick:function(){function L(){return N("set_cart_item_quantity",{item:S.obj_path,quantity:++S.amount})}return L}(),disabled:S.limit!==-1&&S.amount>=S.limit})]})},d=function(h,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,S=V.exploitable,I=(0,f.useLocalState)(v,"selectedRecord",S[0]),L=I[0],w=I[1],A=(0,f.useLocalState)(v,"searchText",""),x=A[0],E=A[1],P=function(R,O){O===void 0&&(O="");var F=(0,o.createSearch)(O,function(_){return _.name});return(0,t.flow)([(0,a.filter)(function(_){return _==null?void 0:_.name}),O&&(0,a.filter)(F),(0,a.sortBy)(function(_){return _.name})])(R)},D=P(S,x);return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Exploitable Records",children:[(0,e.createComponentVNode)(2,b.Input,{fluid:!0,mb:1,placeholder:"Search Crew",onInput:function(){function M(R,O){return E(O)}return M}()}),(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:D.map(function(M){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:M===L,onClick:function(){function R(){return w(M)}return R}(),children:M.name},M)})})]})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:L.name,children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Age",children:L.age}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Fingerprint",children:L.fingerprint}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Rank",children:L.rank}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Sex",children:L.sex}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Species",children:L.species})]})})})]})}},12261:function(T,r,n){"use strict";r.__esModule=!0,r.Vending=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=B.product,l=B.productStock,u=B.productIcon,s=B.productIconState,d=c.chargesMoney,C=c.user,h=c.usermoney,v=c.inserted_cash,p=c.vend_ready,N=c.inserted_item_name,V=!d||m.price===0,S="ERROR!",I="";V?(S="FREE",I="arrow-circle-down"):(S=m.price,I="shopping-cart");var L=!p||l===0||!V&&m.price>h&&m.price>v;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,t.DmIcon,{verticalAlign:"middle",icon:u,icon_state:s,fallback:(0,e.createComponentVNode)(2,t.Icon,{p:.66,name:"spinner",size:2,spin:!0})})}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:m.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Box,{color:l<=0&&"bad"||l<=m.max_amount/2&&"average"||"good",children:[l," in stock"]})}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,disabled:L,icon:I,content:S,textAlign:"left",onClick:function(){function w(){return i("vend",{inum:m.inum})}return w}()})})]})},b=r.Vending=function(){function y(B,k){var g=(0,a.useBackend)(k),i=g.act,c=g.data,m=c.user,l=c.usermoney,u=c.inserted_cash,s=c.chargesMoney,d=c.product_records,C=d===void 0?[]:d,h=c.hidden_records,v=h===void 0?[]:h,p=c.stock,N=c.vend_ready,V=c.inserted_item_name,S=c.panel_open,I=c.speaker,L;return L=[].concat(C),c.extended_inventory&&(L=[].concat(L,v)),L=L.filter(function(w){return!!w}),(0,e.createComponentVNode)(2,o.Window,{title:"Vending Machine",width:450,height:Math.min((s?171:89)+L.length*32,585),children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[!!s&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"User",buttons:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:!!V&&(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:(0,e.createVNode)(1,"span",null,V,0,{style:{"text-transform":"capitalize"}}),onClick:function(){function w(){return i("eject_item",{})}return w}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{disabled:!u,icon:"money-bill-wave-alt",content:u?(0,e.createFragment)([(0,e.createVNode)(1,"b",null,u,0),(0,e.createTextVNode)(" credits")],0):"Dispense Change",tooltip:u?"Dispense Change":null,textAlign:"left",onClick:function(){function w(){return i("change")}return w}()})})]}),children:m&&(0,e.createComponentVNode)(2,t.Box,{children:["Welcome, ",(0,e.createVNode)(1,"b",null,m.name,0),", ",(0,e.createVNode)(1,"b",null,m.job||"Unemployed",0),"!",(0,e.createVNode)(1,"br"),"Your balance is ",(0,e.createVNode)(1,"b",null,[l,(0,e.createTextVNode)(" credits")],0),".",(0,e.createVNode)(1,"br")]})})}),!!S&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Maintenance",children:(0,e.createComponentVNode)(2,t.Button,{icon:I?"check":"volume-mute",selected:I,content:"Speaker",textAlign:"left",onClick:function(){function w(){return i("toggle_voice",{})}return w}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Products",children:(0,e.createComponentVNode)(2,t.Table,{children:L.map(function(w){return(0,e.createComponentVNode)(2,f,{product:w,productStock:p[w.name],productIcon:w.icon,productIconState:w.icon_state},w.name)})})})})]})})})}return y}()},68971:function(T,r,n){"use strict";r.__esModule=!0,r.VolumeMixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.VolumeMixer=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.channels;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:Math.min(95+c.length*50,565),children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:c.map(function(m,l){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.25rem",color:"label",mt:l>0&&"0.5rem",children:m.name}),(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:.5,children:(0,e.createComponentVNode)(2,t.Button,{width:"24px",color:"transparent",children:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-off",size:"1.5",mt:"0.1rem",onClick:function(){function u(){return g("volume",{channel:m.num,volume:0})}return u}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mx:"0.5rem",children:(0,e.createComponentVNode)(2,t.Slider,{minValue:0,maxValue:100,stepPixelSize:3.13,value:m.volume,onChange:function(){function u(s,d){return g("volume",{channel:m.num,volume:d})}return u}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{width:"24px",color:"transparent",children:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-up",size:"1.5",mt:"0.1rem",onClick:function(){function u(){return g("volume",{channel:m.num,volume:100})}return u}()})})})]})})],4,m.num)})})})})}return b}()},2510:function(T,r,n){"use strict";r.__esModule=!0,r.VotePanel=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.VotePanel=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.remaining,m=i.question,l=i.choices,u=i.user_vote,s=i.counts,d=i.show_counts;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:360,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:m,children:[(0,e.createComponentVNode)(2,t.Box,{mb:1.5,ml:.5,children:["Time remaining: ",Math.round(c/10),"s"]}),l.map(function(C){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{mb:1,fluid:!0,translucent:!0,lineHeight:3,multiLine:C,content:C+(d?" ("+(s[C]||0)+")":""),onClick:function(){function h(){return g("vote",{target:C})}return h}(),selected:C===u})},C)})]})})})}return b}()},30138:function(T,r,n){"use strict";r.__esModule=!0,r.Wires=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Wires=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.wires||[],m=i.status||[],l=56+c.length*23+(status?0:15+m.length*17);return(0,e.createComponentVNode)(2,o.Window,{width:350,height:l,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:c.map(function(u){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{className:"candystripe",label:u.color_name,labelColor:u.seen_color,color:u.seen_color,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:u.cut?"Mend":"Cut",onClick:function(){function s(){return g("cut",{wire:u.color})}return s}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Pulse",onClick:function(){function s(){return g("pulse",{wire:u.color})}return s}()}),(0,e.createComponentVNode)(2,t.Button,{content:u.attached?"Detach":"Attach",onClick:function(){function s(){return g("attach",{wire:u.color})}return s}()})],4),children:!!u.wire&&(0,e.createVNode)(1,"i",null,[(0,e.createTextVNode)("("),u.wire,(0,e.createTextVNode)(")")],0)},u.seen_color)})})})}),!!m.length&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:m.map(function(u){return(0,e.createComponentVNode)(2,t.Box,{color:"lightgray",children:u},u)})})})]})})})}return b}()},21400:function(T,r,n){"use strict";r.__esModule=!0,r.WizardApprenticeContract=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.WizardApprenticeContract=function(){function b(y,B){var k=(0,a.useBackend)(B),g=k.act,i=k.data,c=i.used;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:555,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Contract of Apprenticeship",children:["Using this contract, you may summon an apprentice to aid you on your mission.",(0,e.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),c?(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"red",children:"You've already summoned an apprentice or you are in process of summoning one."}):""]}),(0,e.createComponentVNode)(2,t.Section,{title:"Which school of magic is your apprentice studying?",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fire",children:["Your apprentice is skilled in bending fire. ",(0,e.createVNode)(1,"br"),"They know Fireball, Sacred Flame, and Ethereal Jaunt.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("fire")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Translocation",children:["Your apprentice is able to defy physics, learning how to move through bluespace. ",(0,e.createVNode)(1,"br"),"They know Teleport, Blink and Ethereal Jaunt.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("translocation")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Restoration",children:["Your apprentice is dedicated to supporting your magical prowess.",(0,e.createVNode)(1,"br"),"They come equipped with a Staff of Healing, have the unique ability to teleport back to you, and know Charge and Knock.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("restoration")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stealth",children:["Your apprentice is learning the art of infiltrating mundane facilities. ",(0,e.createVNode)(1,"br"),"They know Mindswap, Knock, Homing Toolbox, and Disguise Self, all of which can be cast without robes. They also join you in a Maintenance Dweller disguise, complete with Gloves of Shock Immunity and a Belt of Tools.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("stealth")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Honk",children:["Your apprentice is here to spread the Honkmother's blessings.",(0,e.createVNode)(1,"br"),"They know Banana Touch, Instant Summons, Ethereal Jaunt, and come equipped with a Staff of Slipping."," ",(0,e.createVNode)(1,"br"),"While under your tutelage, they have been 'blessed' with clown shoes that are impossible to remove.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("honk")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider)]})})]})})}return b}()},49148:function(T,r,n){"use strict";r.__esModule=!0,r.AccessList=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036);function f(g,i){var c=typeof Symbol!="undefined"&&g[Symbol.iterator]||g["@@iterator"];if(c)return(c=c.call(g)).next.bind(c);if(Array.isArray(g)||(c=b(g))||i&&g&&typeof g.length=="number"){c&&(g=c);var m=0;return function(){return m>=g.length?{done:!0}:{done:!1,value:g[m++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(g,i){if(g){if(typeof g=="string")return y(g,i);var c={}.toString.call(g).slice(8,-1);return c==="Object"&&g.constructor&&(c=g.constructor.name),c==="Map"||c==="Set"?Array.from(g):c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?y(g,i):void 0}}function y(g,i){(i==null||i>g.length)&&(i=g.length);for(var c=0,m=Array(i);c0&&!V.includes(O.ref)&&!p.includes(O.ref),checked:p.includes(O.ref),onClick:function(){function F(){return S(O.ref)}return F}()},O.desc)})]})]})})}return g}()},26991:function(T,r,n){"use strict";r.__esModule=!0,r.AtmosScan=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036),f=function(B,k,g,i,c){return Bi?"average":B>c?"bad":"good"},b=r.AtmosScan=function(){function y(B,k){var g=B.data.aircontents;return(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,a.filter)(function(i){return i.val!=="0"||i.entry==="Pressure"||i.entry==="Temperature"})(g).map(function(i){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:i.entry,color:f(i.val,i.bad_low,i.poor_low,i.poor_high,i.bad_high),children:[i.val,i.units]},i.entry)})})})}return y}()},85870:function(T,r,n){"use strict";r.__esModule=!0,r.BeakerContents=void 0;var e=n(89005),a=n(36036),t=n(15964),o=function(y){return y+" unit"+(y===1?"":"s")},f=r.BeakerContents=function(){function b(y){var B=y.beakerLoaded,k=y.beakerContents,g=k===void 0?[]:k,i=y.buttons;return(0,e.createComponentVNode)(2,a.Stack,{vertical:!0,children:[!B&&(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",children:"No beaker loaded."})||g.length===0&&(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",children:"Beaker is empty."}),g.map(function(c,m){return(0,e.createComponentVNode)(2,a.Stack,{children:[(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",grow:!0,children:[o(c.volume)," of ",c.name]},c.name),!!i&&(0,e.createComponentVNode)(2,a.Stack.Item,{children:i(c,m)})]},c.name)})]})}return b}();f.propTypes={beakerLoaded:t.bool,beakerContents:t.array,buttons:t.arrayOf(t.element)}},92963:function(T,r,n){"use strict";r.__esModule=!0,r.BotStatus=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.BotStatus=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.act,g=B.data,i=g.locked,c=g.noaccess,m=g.maintpanel,l=g.on,u=g.autopatrol,s=g.canhack,d=g.emagged,C=g.remote_disabled;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.NoticeBox,{children:["Swipe an ID card to ",i?"unlock":"lock"," this interface."]}),(0,e.createComponentVNode)(2,t.Section,{title:"General Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:(0,e.createComponentVNode)(2,t.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,disabled:c,onClick:function(){function h(){return k("power")}return h}()})}),u!==null&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Patrol",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:u,content:"Auto Patrol",disabled:c,onClick:function(){function h(){return k("autopatrol")}return h}()})}),!!m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Maintenance Panel",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Panel Open!"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety System",children:(0,e.createComponentVNode)(2,t.Box,{color:d?"bad":"good",children:d?"DISABLED!":"Enabled"})}),!!s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hacking",children:(0,e.createComponentVNode)(2,t.Button,{icon:"terminal",content:d?"Restore Safties":"Hack",disabled:c,color:"bad",onClick:function(){function h(){return k("hack")}return h}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Remote Access",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:!C,content:"AI Remote Control",disabled:c,onClick:function(){function h(){return k("disableremote")}return h}()})})]})})],4)}return f}()},3939:function(T,r,n){"use strict";r.__esModule=!0,r.modalRegisterBodyOverride=r.modalOpen=r.modalClose=r.modalAnswer=r.ComplexModal=void 0;var e=n(89005),a=n(72253),t=n(36036),o={},f=r.modalOpen=function(){function g(i,c,m){var l=(0,a.useBackend)(i),u=l.act,s=l.data,d=Object.assign(s.modal?s.modal.args:{},m||{});u("modal_open",{id:c,arguments:JSON.stringify(d)})}return g}(),b=r.modalRegisterBodyOverride=function(){function g(i,c){o[i]=c}return g}(),y=r.modalAnswer=function(){function g(i,c,m,l){var u=(0,a.useBackend)(i),s=u.act,d=u.data;if(d.modal){var C=Object.assign(d.modal.args||{},l||{});s("modal_answer",{id:c,answer:m,arguments:JSON.stringify(C)})}}return g}(),B=r.modalClose=function(){function g(i,c){var m=(0,a.useBackend)(i),l=m.act;l("modal_close",{id:c})}return g}(),k=r.ComplexModal=function(){function g(i,c){var m=(0,a.useBackend)(c),l=m.data;if(l.modal){var u=l.modal,s=u.id,d=u.text,C=u.type,h,v=(0,e.createComponentVNode)(2,t.Button,{className:"Button--modal",icon:"arrow-left",content:"Cancel",onClick:function(){function L(){return B(c)}return L}()}),p,N,V="auto";if(o[s])p=o[s](l.modal,c);else if(C==="input"){var S=l.modal.value;h=function(){function L(w){return y(c,s,S)}return L}(),p=(0,e.createComponentVNode)(2,t.Input,{value:l.modal.value,placeholder:"ENTER to submit",width:"100%",my:"0.5rem",autofocus:!0,onChange:function(){function L(w,A){S=A}return L}()}),N=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){function L(){return B(c)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:"Confirm",color:"good",float:"right",m:"0",onClick:function(){function L(){return y(c,s,S)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]})}else if(C==="choice"){var I=typeof l.modal.choices=="object"?Object.values(l.modal.choices):l.modal.choices;p=(0,e.createComponentVNode)(2,t.Dropdown,{options:I,selected:l.modal.value,width:"100%",my:"0.5rem",onSelected:function(){function L(w){return y(c,s,w)}return L}()}),V="initial"}else C==="bento"?p=(0,e.createComponentVNode)(2,t.Stack,{spacingPrecise:"1",wrap:"wrap",my:"0.5rem",maxHeight:"1%",children:l.modal.choices.map(function(L,w){return(0,e.createComponentVNode)(2,t.Stack.Item,{flex:"1 1 auto",children:(0,e.createComponentVNode)(2,t.Button,{selected:w+1===parseInt(l.modal.value,10),onClick:function(){function A(){return y(c,s,w+1)}return A}(),children:(0,e.createVNode)(1,"img",null,null,1,{src:L})})},w)})}):C==="boolean"&&(N=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:l.modal.no_text,color:"bad",float:"left",mb:"0",onClick:function(){function L(){return y(c,s,0)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:l.modal.yes_text,color:"good",float:"right",m:"0",onClick:function(){function L(){return y(c,s,1)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]}));return(0,e.createComponentVNode)(2,t.Modal,{maxWidth:i.maxWidth||window.innerWidth/2+"px",maxHeight:i.maxHeight||window.innerHeight/2+"px",onEnter:h,mx:"auto",overflowY:V,"padding-bottom":"5px",children:[d&&(0,e.createComponentVNode)(2,t.Box,{inline:!0,children:d}),o[s]&&v,p,N]})}}return g}()},41874:function(T,r,n){"use strict";r.__esModule=!0,r.CrewManifest=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(25328),f=n(76910),b=f.COLORS.department,y=["Captain","Head of Security","Chief Engineer","Chief Medical Officer","Research Director","Head of Personnel","Quartermaster"],B=function(m){return y.indexOf(m)!==-1?"green":"orange"},k=function(m){if(y.indexOf(m)!==-1)return!0},g=function(m){return m.length>0&&(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,color:"white",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"50%",children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"35%",children:"Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"15%",children:"Active"})]}),m.map(function(l){return(0,e.createComponentVNode)(2,t.Table.Row,{color:B(l.rank),bold:k(l.rank),children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(l.name)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(l.rank)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.active})]},l.name+l.rank)})]})},i=r.CrewManifest=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,d;if(m.data)d=m.data;else{var C=(0,a.useBackend)(l),h=C.data;d=h}var v=d,p=v.manifest,N=p.heads,V=p.sec,S=p.eng,I=p.med,L=p.sci,w=p.ser,A=p.sup,x=p.misc;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.command,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Command"})}),level:2,children:g(N)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.security,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Security"})}),level:2,children:g(V)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.engineering,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Engineering"})}),level:2,children:g(S)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.medical,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Medical"})}),level:2,children:g(I)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.science,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Science"})}),level:2,children:g(L)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.service,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Service"})}),level:2,children:g(w)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.supply,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Supply"})}),level:2,children:g(A)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Misc"})}),level:2,children:g(x)})]})}return c}()},19203:function(T,r,n){"use strict";r.__esModule=!0,r.InputButtons=void 0;var e=n(89005),a=n(36036),t=n(72253),o=r.InputButtons=function(){function f(b,y){var B=(0,t.useBackend)(y),k=B.act,g=B.data,i=g.large_buttons,c=g.swapped_buttons,m=b.input,l=b.message,u=b.disabled,s=(0,e.createComponentVNode)(2,a.Button,{color:"good",content:"Submit",bold:!!i,fluid:!!i,onClick:function(){function C(){return k("submit",{entry:m})}return C}(),textAlign:"center",tooltip:i&&l,disabled:u,width:!i&&6}),d=(0,e.createComponentVNode)(2,a.Button,{color:"bad",content:"Cancel",bold:!!i,fluid:!!i,onClick:function(){function C(){return k("cancel")}return C}(),textAlign:"center",width:!i&&6});return(0,e.createComponentVNode)(2,a.Flex,{fill:!0,align:"center",direction:c?"row-reverse":"row",justify:"space-around",children:[i?(0,e.createComponentVNode)(2,a.Flex.Item,{grow:!0,ml:c?.5:0,mr:c?0:.5,children:d}):(0,e.createComponentVNode)(2,a.Flex.Item,{children:d}),!i&&l&&(0,e.createComponentVNode)(2,a.Flex.Item,{children:(0,e.createComponentVNode)(2,a.Box,{color:"label",textAlign:"center",children:l})}),i?(0,e.createComponentVNode)(2,a.Flex.Item,{grow:!0,mr:c?.5:0,ml:c?0:.5,children:s}):(0,e.createComponentVNode)(2,a.Flex.Item,{children:s})]})}return f}()},195:function(T,r,n){"use strict";r.__esModule=!0,r.InterfaceLockNoticeBox=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.InterfaceLockNoticeBox=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.act,g=B.data,i=b.siliconUser,c=i===void 0?g.siliconUser:i,m=b.locked,l=m===void 0?g.locked:m,u=b.normallyLocked,s=u===void 0?g.normallyLocked:u,d=b.onLockStatusChange,C=d===void 0?function(){return k("lock")}:d,h=b.accessText,v=h===void 0?"an ID card":h;return c?(0,e.createComponentVNode)(2,t.NoticeBox,{color:c&&"grey",children:(0,e.createComponentVNode)(2,t.Flex,{align:"center",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:"Interface lock status:"}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:"1"}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Button,{m:"0",color:s?"red":"green",icon:s?"lock":"unlock",content:s?"Locked":"Unlocked",onClick:function(){function p(){C&&C(!l)}return p}()})})]})}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:["Swipe ",v," to ",l?"unlock":"lock"," this interface."]})}return f}()},51057:function(T,r,n){"use strict";r.__esModule=!0,r.Loader=void 0;var e=n(89005),a=n(44879),t=n(36036),o=r.Loader=function(){function f(b){var y=b.value;return(0,e.createVNode)(1,"div","AlertModal__Loader",(0,e.createComponentVNode)(2,t.Box,{className:"AlertModal__LoaderProgress",style:{width:(0,a.clamp01)(y)*100+"%"}}),2)}return f}()},321:function(T,r,n){"use strict";r.__esModule=!0,r.LoginInfo=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LoginInfo=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.act,g=B.data,i=g.loginState;if(g)return(0,e.createComponentVNode)(2,t.NoticeBox,{info:!0,children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:.5,children:["Logged in as: ",i.name," (",i.rank,")"]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!i.id,content:"Eject ID",color:"good",onClick:function(){function c(){return k("login_eject")}return c}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Logout",color:"good",onClick:function(){function c(){return k("login_logout")}return c}()})]})]})})}return f}()},5485:function(T,r,n){"use strict";r.__esModule=!0,r.LoginScreen=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LoginScreen=function(){function f(b,y){var B=(0,a.useBackend)(y),k=B.act,g=B.data,i=g.loginState,c=g.isAI,m=g.isRobot,l=g.isAdmin;return(0,e.createComponentVNode)(2,t.Section,{title:"Welcome",fill:!0,stretchContents:!0,children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",align:"center",justify:"center",children:(0,e.createComponentVNode)(2,t.Flex.Item,{textAlign:"center",mt:"-2rem",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.5rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-circle",verticalAlign:"middle",size:3,mr:"1rem"}),"Guest"]}),(0,e.createComponentVNode)(2,t.Box,{color:"label",my:"1rem",children:["ID:",(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",content:i.id?i.id:"----------",ml:"0.5rem",onClick:function(){function u(){return k("login_insert")}return u}()})]}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",disabled:!i.id,content:"Login",onClick:function(){function u(){return k("login_login",{login_type:1})}return u}()}),!!c&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as AI",onClick:function(){function u(){return k("login_login",{login_type:2})}return u}()}),!!m&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as Cyborg",onClick:function(){function u(){return k("login_login",{login_type:3})}return u}()}),!!l&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"CentComm Secure Login",onClick:function(){function u(){return k("login_login",{login_type:4})}return u}()})]})})})}return f}()},62411:function(T,r,n){"use strict";r.__esModule=!0,r.Operating=void 0;var e=n(89005),a=n(36036),t=n(15964),o=r.Operating=function(){function f(b){var y=b.operating,B=b.name;if(y)return(0,e.createComponentVNode)(2,a.Dimmer,{children:(0,e.createComponentVNode)(2,a.Flex,{mb:"30px",children:(0,e.createComponentVNode)(2,a.Flex.Item,{bold:!0,color:"silver",textAlign:"center",children:[(0,e.createComponentVNode)(2,a.Icon,{name:"spinner",spin:!0,size:4,mb:"15px"}),(0,e.createVNode)(1,"br"),"The ",B," is processing..."]})})})}return f}();o.propTypes={operating:t.bool,name:t.string}},13545:function(T,r,n){"use strict";r.__esModule=!0,r.Signaler=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=r.Signaler=function(){function b(y,B){var k=(0,t.useBackend)(B),g=k.act,i=y.data,c=i.code,m=i.frequency,l=i.minFrequency,u=i.maxFrequency;return(0,e.createComponentVNode)(2,o.Section,{children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:l/10,maxValue:u/10,value:m/10,format:function(){function s(d){return(0,a.toFixed)(d,1)}return s}(),width:"80px",onDrag:function(){function s(d,C){return g("freq",{freq:C})}return s}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:c,width:"80px",onDrag:function(){function s(d,C){return g("code",{code:C})}return s}()})})]}),(0,e.createComponentVNode)(2,o.Button,{mt:1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){function s(){return g("signal")}return s}()})]})}return b}()},41984:function(T,r,n){"use strict";r.__esModule=!0,r.SimpleRecords=void 0;var e=n(89005),a=n(72253),t=n(25328),o=n(64795),f=n(88510),b=n(36036),y=r.SimpleRecords=function(){function g(i,c){var m=i.data.records;return(0,e.createComponentVNode)(2,b.Box,{children:m?(0,e.createComponentVNode)(2,k,{data:i.data,recordType:i.recordType}):(0,e.createComponentVNode)(2,B,{data:i.data})})}return g}(),B=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=i.data.recordsList,s=(0,a.useLocalState)(c,"searchText",""),d=s[0],C=s[1],h=function(N,V){V===void 0&&(V="");var S=(0,t.createSearch)(V,function(I){return I.Name});return(0,o.flow)([(0,f.filter)(function(I){return I==null?void 0:I.Name}),V&&(0,f.filter)(S),(0,f.sortBy)(function(I){return I.Name})])(u)},v=h(u,d);return(0,e.createComponentVNode)(2,b.Box,{children:[(0,e.createComponentVNode)(2,b.Input,{fluid:!0,mb:1,placeholder:"Search records...",onInput:function(){function p(N,V){return C(V)}return p}()}),v.map(function(p){return(0,e.createComponentVNode)(2,b.Box,{children:(0,e.createComponentVNode)(2,b.Button,{mb:.5,content:p.Name,icon:"user",onClick:function(){function N(){return l("Records",{target:p.uid})}return N}()})},p)})]})},k=function(i,c){var m=(0,a.useBackend)(c),l=m.act,u=i.data.records,s=u.general,d=u.medical,C=u.security,h;switch(i.recordType){case"MED":h=(0,e.createComponentVNode)(2,b.Section,{level:2,title:"Medical Data",children:d?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Blood Type",children:d.blood_type}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Minor Disabilities",children:d.mi_dis}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:d.mi_dis_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Major Disabilities",children:d.ma_dis}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:d.ma_dis_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Allergies",children:d.alg}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:d.alg_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Current Diseases",children:d.cdi}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:d.cdi_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:d.notes})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"Medical record lost!"})});break;case"SEC":h=(0,e.createComponentVNode)(2,b.Section,{level:2,title:"Security Data",children:C?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Criminal Status",children:C.criminal}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Minor Crimes",children:C.mi_crim}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:C.mi_crim_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Major Crimes",children:C.ma_crim}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:C.ma_crim_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:C.notes})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"Security record lost!"})});break}return(0,e.createComponentVNode)(2,b.Box,{children:[(0,e.createComponentVNode)(2,b.Section,{title:"General Data",children:s?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Name",children:s.name}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Sex",children:s.sex}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Species",children:s.species}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Age",children:s.age}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Rank",children:s.rank}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Fingerprint",children:s.fingerprint}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Physical Status",children:s.p_stat}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Mental Status",children:s.m_stat})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"General record lost!"})}),h]})}},22091:function(T,r,n){"use strict";r.__esModule=!0,r.TemporaryNotice=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.TemporaryNotice=function(){function f(b,y){var B,k=(0,a.useBackend)(y),g=k.act,i=k.data,c=i.temp;if(c){var m=(B={},B[c.style]=!0,B);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.NoticeBox,Object.assign({},m,{children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:.5,children:c.text}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"times-circle",onClick:function(){function l(){return g("cleartemp")}return l}()})})]})})))}}return f}()},95213:function(T,r,n){"use strict";r.__esModule=!0,r.goonstation_PTL=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(49968),f=n(98595);/** * @file * @copyright 2020 * @author Sovexe (https://github.com/Sovexe) diff --git a/tools/ci/librustlibs_ci.so b/tools/ci/librustlibs_ci.so index 32ff2a40325..c118a9c4a6f 100644 Binary files a/tools/ci/librustlibs_ci.so and b/tools/ci/librustlibs_ci.so differ