diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm index 42ed0035ce..6a134fca70 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm @@ -189,8 +189,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "gA" = ( -/obj/machinery/igniter{ - id = "TEG_igniter" +/obj/machinery/atmospherics/components/unary/outlet_injector{ + dir = 1; + injecting = 50; + on = 1 }, /turf/open/floor/engine/vacuum, /area/engine/engineering) @@ -390,21 +392,23 @@ /turf/open/floor/plating, /area/engine/engineering) "nc" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/engine/vacuum, /area/engine/engineering) "nk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 +/obj/machinery/atmospherics/components/binary/pump{ + name = "Hot to Burn Chamber" }, -/turf/closed/wall/r_wall, +/turf/open/floor/plasteel, /area/engine/engineering) "nD" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/engine/vacuum, /area/engine/engineering) "nL" = ( @@ -461,10 +465,11 @@ /turf/open/floor/plasteel, /area/engine/engineering) "oQ" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /obj/structure/sign/warning/securearea{ pixel_x = -32 }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, /turf/open/floor/engine/vacuum, /area/engine/engineering) "oS" = ( @@ -728,16 +733,16 @@ /area/engine/engineering) "vq" = ( /obj/structure/table/reinforced, -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed{ - pixel_x = 3; - pixel_y = 3 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ c_tag = "TEG - South West"; dir = 4 }, +/obj/item/analyzer, +/obj/item/analyzer{ + pixel_x = 7; + pixel_y = 3 + }, /turf/open/floor/plasteel, /area/engine/engineering) "vG" = ( @@ -798,17 +803,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "xD" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, /obj/machinery/atmospherics/components/binary/pump{ dir = 8; name = "Mix to Engine" }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Atmos to Loop" - }, /turf/open/floor/plasteel, /area/engine/engineering) "yf" = ( @@ -837,11 +835,7 @@ /area/engine/engineering) "zx" = ( /obj/structure/table/wood, -/obj/item/electronics/apc, -/obj/item/electronics/apc{ - pixel_x = 3; - pixel_y = 3 - }, +/obj/item/analyzer, /turf/open/floor/plasteel, /area/engine/engineering) "zG" = ( @@ -855,8 +849,8 @@ /turf/open/space/basic, /area/space) "Am" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/machinery/igniter{ + id = "TEG_igniter" }, /turf/open/floor/engine/vacuum, /area/engine/engineering) @@ -962,10 +956,11 @@ /turf/open/floor/plasteel, /area/engine/engineering) "BY" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /obj/structure/sign/warning/securearea{ pixel_x = 32 }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, /turf/open/floor/engine/vacuum, /area/engine/engineering) "CH" = ( @@ -1099,7 +1094,8 @@ /area/engine/engineering) "FW" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 1 + dir = 1; + name = "Burn Chamber to Hot" }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light{ @@ -1177,7 +1173,9 @@ /turf/open/floor/plating/airless, /area/engine/engineering) "Hp" = ( -/obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Space Loop Bypass" + }, /turf/open/floor/plasteel, /area/engine/engineering) "HF" = ( @@ -1204,11 +1202,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "IA" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 }, -/turf/open/floor/engine/vacuum, +/turf/closed/wall/r_wall, /area/engine/engineering) "IP" = ( /obj/machinery/portable_atmospherics/canister/oxygen, @@ -1290,11 +1287,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"Kx" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/heat_exchanging/junction, -/turf/open/floor/plasteel, -/area/engine/engineering) "KA" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/bot, @@ -1441,6 +1433,7 @@ }, /obj/machinery/airalarm{ dir = 1; + locked = 0; pixel_y = -22 }, /obj/machinery/light, @@ -1593,7 +1586,9 @@ /turf/open/floor/plasteel, /area/engine/engineering) "SE" = ( -/obj/machinery/atmospherics/components/binary/pump/on, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Mix To Burn Chamber" + }, /turf/open/floor/plasteel, /area/engine/engineering) "ST" = ( @@ -1715,7 +1710,7 @@ "Vs" = ( /obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4; - name = "Output Release" + name = "Cold to Space Loop" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -1780,7 +1775,7 @@ "XD" = ( /obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4; - name = "Output Release" + name = "Space Loop to Cold" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/camera{ @@ -1799,6 +1794,9 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/engine/vacuum, /area/engine/engineering) "XP" = ( @@ -1857,8 +1855,8 @@ /area/engine/engineering) "YP" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/item/pipe_dispenser, /turf/open/floor/plasteel, /area/engine/engineering) "YQ" = ( @@ -1917,7 +1915,7 @@ /area/engine/engineering) "ZC" = ( /obj/machinery/atmospherics/pipe/simple/dark/visible, -/turf/open/floor/engine/vacuum, +/turf/open/space/basic, /area/engine/engineering) "ZT" = ( /turf/template_noop, @@ -2531,9 +2529,9 @@ Xe aR ZY QH -Hp -Kx -kS +nk +le +ZC oQ kS kS @@ -2588,11 +2586,11 @@ sH sH gq FW -Kx -kS +le +ZC BY kS -IA +kS nD ek Le @@ -2620,8 +2618,8 @@ yN yN yN yN -nk -MP +yN +IA fO Rh Rh diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 452a080be0..a86d9c30b1 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -3984,7 +3984,12 @@ /turf/open/floor/plasteel, /area/security/brig) "aiA" = ( -/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/fore/secondary) "aiB" = ( @@ -6145,11 +6150,8 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "anE" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/fore/secondary) @@ -6157,11 +6159,16 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "anG" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/pool"; + name = "Pool APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/plating, -/area/maintenance/fore/secondary) +/area/crew_quarters/fitness/pool) "anH" = ( /obj/structure/sign/warning/electricshock, /turf/closed/wall/r_wall, @@ -6317,7 +6324,7 @@ dir = 10 }, /turf/closed/wall, -/area/maintenance/fore/secondary) +/area/crew_quarters/fitness/pool) "aof" = ( /turf/closed/wall/r_wall, /area/maintenance/solars/starboard/fore) @@ -7145,14 +7152,16 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "aqs" = ( -/obj/machinery/door/airlock{ - id_tag = "Room Two"; - name = "Room Seven - Luxury Suite" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) +/obj/machinery/door/airlock/public/glass{ + name = "Pool" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "aqu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -10298,6 +10307,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"azm" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "azo" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -44008,6 +44022,12 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/misc_lab) +"ccS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "ccT" = ( /obj/machinery/light{ dir = 4 @@ -48182,6 +48202,9 @@ /obj/machinery/atmospherics/pipe/manifold4w/scrubbers, /turf/open/floor/plasteel, /area/security/brig) +"con" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "cop" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ dir = 1 @@ -52170,6 +52193,14 @@ }, /turf/closed/wall/r_wall, /area/engine/engineering) +"cDM" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "cDN" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 @@ -53192,6 +53223,11 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/science/circuit) +"cVU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "cXU" = ( /obj/effect/turf_decal/tile/red, /obj/machinery/light{ @@ -53199,6 +53235,9 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"cYG" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "daI" = ( /obj/structure/reagent_dispensers/foamtank, /obj/effect/turf_decal/tile/yellow{ @@ -53283,6 +53322,9 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"diM" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "dly" = ( /obj/machinery/door/window/southright{ name = "Target Storage" @@ -53297,13 +53339,8 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/central) "dqb" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "dqu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, @@ -53368,6 +53405,12 @@ /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"dCr" = ( +/obj/structure/pool/Rboard, +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) "dCV" = ( /obj/structure/table, /obj/structure/cable{ @@ -53384,6 +53427,17 @@ /obj/item/gun/energy/laser/practice, /turf/open/floor/plasteel, /area/security/prison) +"dFX" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) +"dGN" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "dKP" = ( /turf/closed/wall, /area/maintenance/bar) @@ -53407,6 +53461,9 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"dOr" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "dPk" = ( /obj/structure/closet{ name = "Costume Closet" @@ -53436,6 +53493,9 @@ "dVU" = ( /turf/open/floor/plating, /area/space/nearstation) +"dXo" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "dXq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -53462,6 +53522,19 @@ }, /turf/open/space, /area/solar/starboard/fore) +"ebT" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) +"ecg" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 4 + }, +/area/crew_quarters/fitness/pool) "edA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -53497,6 +53570,9 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"ekE" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "elh" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -53537,6 +53613,9 @@ }, /turf/open/floor/plasteel/freezer, /area/security/prison) +"esx" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "esZ" = ( /obj/machinery/door/airlock{ desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals."; @@ -53657,6 +53736,17 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) +"eMs" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "eQb" = ( /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -53678,6 +53768,11 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/crew_quarters/cryopod) +"eVJ" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "eVL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light_switch{ @@ -53719,6 +53814,11 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) +"ffy" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) "fgG" = ( /obj/structure/table/wood, /obj/machinery/requests_console{ @@ -53792,6 +53892,17 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness) +"fpz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "fpI" = ( /obj/machinery/light{ dir = 1 @@ -53861,6 +53972,13 @@ "fxV" = ( /turf/closed/wall/r_wall, /area/hallway/primary/central) +"fyS" = ( +/obj/structure/pool/ladder{ + dir = 1; + pixel_y = -24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "fzd" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, @@ -53912,6 +54030,11 @@ "fHG" = ( /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"fIq" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "fIs" = ( /obj/structure/grille, /obj/structure/lattice, @@ -53922,14 +54045,17 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/science/circuit) +"fKF" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"fKZ" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "fMZ" = ( -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/area/crew_quarters/fitness/pool) "fOA" = ( /obj/machinery/door/airlock{ name = "Theatre Backstage"; @@ -54016,6 +54142,14 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"geH" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "gfr" = ( /obj/structure/bed, /turf/open/floor/plating, @@ -54062,6 +54196,15 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"gni" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"gob" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "gpD" = ( /obj/machinery/light_switch{ pixel_y = 28 @@ -54072,6 +54215,14 @@ }, /turf/open/floor/circuit, /area/ai_monitored/nuke_storage) +"grc" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "grA" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -54082,6 +54233,9 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness) +"gvX" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) "gwd" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -54154,6 +54308,14 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"gMV" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "gNC" = ( /obj/structure/cable{ icon_state = "1-2" @@ -54320,6 +54482,17 @@ }, /turf/open/floor/plating, /area/space/nearstation) +"hul" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/pool) +"hzK" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "hBA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table, @@ -54463,6 +54636,11 @@ /obj/structure/falsewall, /turf/open/floor/plating, /area/maintenance/bar) +"inO" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) "inR" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -54473,9 +54651,13 @@ }, /area/crew_quarters/theatre) "iou" = ( -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "ipA" = ( /turf/open/floor/plating, /area/maintenance/department/medical/morgue) @@ -54522,6 +54704,9 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"iwv" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "iwB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -54536,6 +54721,18 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"iAv" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"iBv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"iBU" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "iDo" = ( /obj/structure/grille, /turf/open/space/basic, @@ -54567,6 +54764,21 @@ }, /turf/closed/wall/r_wall, /area/engine/gravity_generator) +"iMv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/table/glass, +/obj/structure/bedsheetbin/towel, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "iNn" = ( /obj/machinery/camera{ c_tag = "Kitchen Cold Room" @@ -54575,6 +54787,14 @@ /obj/structure/reagent_dispensers/cooking_oil, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) +"iOe" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "iTq" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -54604,6 +54824,19 @@ /obj/item/coin/silver, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"iYE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"iYY" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "jaF" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/components/unary/tank/air{ @@ -54728,6 +54961,12 @@ }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) +"juP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "jvd" = ( /obj/structure/closet/athletic_mixed, /turf/open/floor/plasteel, @@ -54739,6 +54978,12 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/maintenance/port) +"jzi" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"jzF" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "jAD" = ( /obj/structure/grille, /turf/open/floor/plating/airless, @@ -54878,19 +55123,22 @@ /turf/open/floor/plasteel, /area/engine/engine_smes) "jLT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"jMW" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, /obj/machinery/button/door{ - id = "Room Two"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 7; - pixel_y = -24; - specialfunctions = 4 + id = "PoolShut"; + name = "Pool Shutters"; + pixel_y = 24 }, -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "jRw" = ( /obj/machinery/computer/arcade/minesweeper{ dir = 4 @@ -54915,6 +55163,14 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"jWJ" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "jZT" = ( /obj/structure/cable{ icon_state = "4-8" @@ -54927,6 +55183,18 @@ "kaq" = ( /turf/closed/wall/mineral/titanium, /area/space/nearstation) +"kcB" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) +"kdO" = ( +/obj/machinery/pool/controller, +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) "kdP" = ( /obj/structure/cable{ icon_state = "2-8" @@ -54991,11 +55259,9 @@ /turf/open/floor/plasteel, /area/hallway/secondary/service) "khB" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +/obj/machinery/door/airlock/maintenance{ + name = "Pool Maintenance"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/fore/secondary) @@ -55117,6 +55383,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/science/mixing) +"kzV" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "kAH" = ( /obj/machinery/camera{ c_tag = "Bar West"; @@ -55175,6 +55444,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"kLk" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "kMt" = ( /obj/structure/lattice, /turf/closed/wall, @@ -55194,6 +55471,11 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"kNN" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 4 + }, +/area/crew_quarters/fitness/pool) "kPd" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/cable{ @@ -55225,6 +55507,11 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"kSu" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "kWp" = ( /obj/structure/shuttle/engine/heater{ dir = 1 @@ -55238,6 +55525,12 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"kZa" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"kZw" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) "laq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, @@ -55267,6 +55560,12 @@ /obj/item/clothing/under/lawyer/red, /turf/open/floor/plasteel, /area/crew_quarters/locker) +"lnk" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "lnu" = ( /obj/structure/chair/wood/normal{ dir = 4 @@ -55297,11 +55596,29 @@ }, /turf/open/floor/plasteel, /area/hydroponics) +"lvU" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 4 + }, +/area/crew_quarters/fitness/pool) +"lwb" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "lyR" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/prison) +"lzC" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "lAB" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -55312,6 +55629,12 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) +"lCo" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "lGV" = ( /obj/machinery/button/door{ id = "maintdiy"; @@ -55328,11 +55651,10 @@ /turf/open/floor/plasteel, /area/science/circuit) "lOe" = ( -/obj/machinery/shower{ - dir = 8 +/turf/open/floor/plasteel/yellowsiding{ + dir = 4 }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) +/area/crew_quarters/fitness/pool) "lPr" = ( /obj/item/twohanded/required/kirbyplants{ icon_state = "applebush" @@ -55349,6 +55671,9 @@ }, /turf/open/floor/carpet, /area/crew_quarters/theatre) +"lSk" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "lUS" = ( /obj/structure/table/wood/fancy/black, /obj/machinery/light/small, @@ -55356,13 +55681,6 @@ /turf/open/floor/carpet, /area/crew_quarters/dorms) "lXE" = ( -/obj/structure/sign/warning/fire{ - desc = "A sign that states the labeled room's number."; - dir = 5; - icon_state = "roomnum"; - name = "Room Number 7"; - pixel_y = 24 - }, /obj/structure/chair/sofa/right, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -55377,6 +55695,12 @@ /obj/item/coin/gold, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"lZK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "mbU" = ( /obj/machinery/vr_sleeper{ dir = 8 @@ -55397,10 +55721,36 @@ /obj/item/target/syndicate, /turf/open/floor/plating, /area/security/prison) +"mcA" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) +"meb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"mgF" = ( +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"miN" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "mjr" = ( /obj/structure/reagent_dispensers/keg/milk, /turf/open/floor/wood, /area/crew_quarters/bar) +"mjw" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) +"mko" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "mkv" = ( /obj/machinery/camera{ c_tag = "Gravity Generator Room"; @@ -55460,12 +55810,12 @@ /turf/open/floor/wood, /area/maintenance/bar) "mse" = ( -/obj/machinery/airalarm{ - pixel_y = 23 +/obj/structure/pool/ladder{ + dir = 1; + pixel_y = -24 }, -/obj/structure/chair/sofa/left, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/pool, +/area/crew_quarters/fitness/pool) "mvt" = ( /obj/machinery/airalarm{ dir = 1; @@ -55473,6 +55823,14 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"mwU" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "myh" = ( /obj/structure/piano, /obj/structure/window/reinforced, @@ -55646,6 +56004,9 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/locker) +"mWU" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) "nbT" = ( /obj/structure/cable{ icon_state = "0-8" @@ -55691,6 +56052,9 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"nji" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "nkP" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance{ @@ -55715,6 +56079,9 @@ "nsA" = ( /turf/closed/wall, /area/crew_quarters/abandoned_gambling_den) +"ntF" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "nuw" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -55738,6 +56105,9 @@ }, /turf/open/floor/plating, /area/construction) +"nFm" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "nGf" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/light{ @@ -55877,9 +56247,11 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "obc" = ( -/obj/structure/chair/sofa/right, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"obd" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "oce" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -55900,12 +56272,32 @@ /obj/machinery/vending/kink, /turf/open/floor/plating, /area/maintenance/bar) +"oer" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) +"ofa" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "ofU" = ( /obj/structure/chair/comfy/black{ dir = 4 }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"ogc" = ( +/obj/structure/pool/ladder{ + dir = 2; + pixel_y = 24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"ohq" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "old" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -55973,6 +56365,9 @@ /obj/effect/spawner/structure/window, /turf/open/floor/grass, /area/crew_quarters/bar) +"oxp" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "oyl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -56038,6 +56433,11 @@ /obj/effect/spawner/lootdrop/keg, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"oFi" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 4 + }, +/area/crew_quarters/fitness/pool) "oHB" = ( /turf/open/floor/plasteel/dark, /area/crew_quarters/dorms) @@ -56078,9 +56478,6 @@ /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "oLn" = ( -/obj/machinery/light/small{ - dir = 4 - }, /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance{ lootcount = 2; @@ -56106,6 +56503,13 @@ /obj/machinery/disposal/bin, /turf/open/floor/plasteel/white, /area/science/circuit) +"oVo" = ( +/obj/structure/pool/ladder, +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"oWT" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) "oZl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/closet/wardrobe/pjs, @@ -56148,6 +56552,14 @@ }, /turf/open/floor/plating, /area/security/prison) +"pkF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27; + pixel_y = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "plm" = ( /obj/structure/reagent_dispensers/watertank/high, /obj/effect/turf_decal/tile/yellow{ @@ -56243,6 +56655,14 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"pHa" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "pHl" = ( /obj/structure/table, /obj/item/storage/box/beakers{ @@ -56301,6 +56721,9 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) +"pNf" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "pPi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -56339,6 +56762,15 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness) +"pSl" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"pSK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "pTB" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -56375,6 +56807,16 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"qeA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Pool" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "qeQ" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -56447,12 +56889,8 @@ /turf/open/space/basic, /area/space/nearstation) "qAm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "qBi" = ( /obj/structure/lattice, /turf/closed/wall/r_wall, @@ -56470,6 +56908,9 @@ }, /turf/open/space, /area/solar/port/aft) +"qLk" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "qLR" = ( /obj/structure/mirror{ pixel_y = 32 @@ -56522,6 +56963,12 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"qWV" = ( +/obj/machinery/pool/filter{ + pixel_y = 24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "qXg" = ( /obj/structure/chair/sofa/left, /turf/open/floor/plasteel, @@ -56555,6 +57002,17 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) +"rgW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"rje" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "rjQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, @@ -56720,12 +57178,22 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"rHr" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "rIA" = ( /obj/machinery/light{ dir = 8 }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"rKg" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "rKP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -56769,6 +57237,9 @@ }, /turf/open/floor/plasteel/dark, /area/bridge/meeting_room) +"rTT" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "rXl" = ( /obj/structure/chair/office/light, /obj/machinery/firealarm{ @@ -56852,6 +57323,9 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) +"soq" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "spu" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -56891,6 +57365,21 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"sth" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"str" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/pool) +"stF" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/yellow, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "sxs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table, @@ -56967,6 +57456,9 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"sGo" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "sHx" = ( /obj/structure/table, /obj/item/book/manual/hydroponics_pod_people{ @@ -57031,6 +57523,9 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"sNo" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "sNK" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/structure/cable{ @@ -57115,10 +57610,19 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) +"sZG" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) "tal" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/hallway/secondary/service) +"tbG" = ( +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "tgH" = ( /obj/structure/filingcabinet/employment, /turf/open/floor/wood, @@ -57220,6 +57724,9 @@ /obj/item/crowbar/red, /turf/open/floor/plating, /area/maintenance/port) +"tyd" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "tyX" = ( /obj/structure/cable{ icon_state = "4-8" @@ -57236,6 +57743,25 @@ /obj/item/soap, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/dorms) +"tAC" = ( +/obj/structure/closet/athletic_mixed, +/obj/item/toy/poolnoodle/red, +/obj/item/toy/poolnoodle/blue, +/obj/item/toy/poolnoodle/yellow, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"tAH" = ( +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) +"tAN" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "tCa" = ( /obj/structure/table/wood, /obj/item/instrument/guitar{ @@ -57258,6 +57784,9 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) +"tFa" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "tJi" = ( /obj/machinery/airalarm{ dir = 4; @@ -57317,6 +57846,9 @@ /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/kitchen) +"tMM" = ( +/turf/open/floor/plasteel/yellowsiding, +/area/crew_quarters/fitness/pool) "tNF" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -57350,6 +57882,10 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"tSh" = ( +/obj/structure/bed, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "tWj" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4; @@ -57370,6 +57906,11 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"tZk" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 1 + }, +/area/crew_quarters/fitness/pool) "uaj" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -57417,6 +57958,12 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"uei" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "ufD" = ( /obj/machinery/vr_sleeper{ dir = 4 @@ -57457,16 +58004,26 @@ /area/crew_quarters/cryopod) "ujS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 + dir = 10 }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"ulM" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/red, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "unA" = ( /obj/machinery/light{ dir = 8 }, /turf/open/floor/wood, /area/crew_quarters/bar) +"unR" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) "unW" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable{ @@ -57496,6 +58053,9 @@ }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) +"upW" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "usO" = ( /obj/machinery/vending/snack/random, /obj/machinery/light/small{ @@ -57526,6 +58086,9 @@ /obj/structure/mineral_door/wood, /turf/open/floor/wood, /area/maintenance/bar) +"uxe" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "uxY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -57538,6 +58101,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"uzs" = ( +/turf/open/floor/plasteel/yellowsiding{ + dir = 4 + }, +/area/crew_quarters/fitness/pool) +"uAH" = ( +/turf/open/floor/plasteel/yellowsiding/corner{ + dir = 8 + }, +/area/crew_quarters/fitness/pool) "uBa" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/soda_cans/starkist{ @@ -57557,6 +58130,14 @@ }, /turf/open/space, /area/solar/port/fore) +"uEx" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "uEI" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -57650,6 +58231,9 @@ /obj/machinery/power/terminal, /turf/closed/wall/r_wall, /area/engine/gravity_generator) +"uRu" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "uRS" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -57658,6 +58242,10 @@ icon_state = "carpetsymbol" }, /area/crew_quarters/theatre) +"uSC" = ( +/obj/machinery/pool/drain, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "uVS" = ( /obj/structure/cable{ icon_state = "4-8" @@ -57729,6 +58317,12 @@ }, /turf/open/floor/wood, /area/security/vacantoffice) +"veS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "vhb" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -57741,6 +58335,9 @@ }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/locker) +"vie" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "viF" = ( /obj/structure/table/wood, /obj/item/instrument/trumpet, @@ -57788,6 +58385,10 @@ }, /turf/open/floor/plasteel, /area/engine/gravity_generator) +"voW" = ( +/obj/structure/pool/Lboard, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "vpY" = ( /obj/structure/closet/lasertag/blue, /obj/item/clothing/under/pj/blue, @@ -57854,6 +58455,14 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"vAl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/camera{ + c_tag = "Pool East"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "vBa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -57990,6 +58599,9 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"vSu" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "vZA" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -58001,6 +58613,12 @@ }, /turf/open/floor/wood, /area/library) +"wag" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "wbE" = ( /obj/effect/turf_decal/tile/blue{ alpha = 255 @@ -58026,6 +58644,9 @@ }, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) +"wcR" = ( +/turf/open/floor/plasteel/yellowsiding/corner, +/area/crew_quarters/fitness/pool) "wdv" = ( /obj/structure/fans/tiny/invisible, /turf/open/space/basic, @@ -58040,15 +58661,11 @@ /turf/open/floor/plating, /area/maintenance/bar) "wig" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - on = 0; - pixel_x = -7; - pixel_y = 12 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "wkN" = ( /turf/closed/wall, /area/science/circuit) @@ -58072,6 +58689,9 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) +"wpR" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "wql" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/r_wall, @@ -58121,12 +58741,21 @@ }, /turf/closed/wall, /area/hallway/secondary/service) +"wHk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "wHz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"wHU" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "wIG" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -58145,6 +58774,13 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"wQg" = ( +/obj/structure/pool/ladder{ + dir = 2; + pixel_y = 24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/pool) "wTf" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -58185,19 +58821,32 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/plasteel/white, /area/science/robotics/lab) +"wWW" = ( +/obj/structure/closet/secure_closet/personal, +/obj/item/toy/poolnoodle/yellow, +/obj/machinery/button/door{ + id = "PoolShut"; + name = "Pool Shutters"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) +"wXa" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PoolShut"; + name = "Pool Shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/fitness/pool) "wXl" = ( -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 - }, -/obj/structure/toilet{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/camera{ + c_tag = "Pool West"; dir = 4 }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "wYc" = ( /obj/machinery/vr_sleeper{ dir = 8 @@ -58213,6 +58862,22 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) +"xaB" = ( +/obj/structure/closet/athletic_mixed, +/obj/item/toy/poolnoodle/red, +/obj/item/toy/poolnoodle/blue, +/obj/item/toy/poolnoodle/yellow, +/obj/machinery/button/door{ + id = "PoolShut"; + name = "Pool Shutters"; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "xbn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -58244,6 +58909,9 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"xgo" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "xgC" = ( /obj/structure/cable{ icon_state = "0-4" @@ -58370,6 +59038,12 @@ /obj/machinery/light, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"xsO" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"xtO" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "xtP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -58388,6 +59062,9 @@ }, /turf/open/floor/plating, /area/maintenance/fore) +"xyT" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "xzd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -58475,6 +59152,9 @@ /obj/machinery/vending/wardrobe/curator_wardrobe, /turf/open/floor/carpet, /area/library) +"xFB" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/pool) "xIa" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/grille_or_trash, @@ -58565,6 +59245,13 @@ /obj/item/clothing/under/pj/red, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"xZL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "ybj" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -58609,6 +59296,12 @@ /obj/machinery/suit_storage_unit/rd, /turf/open/floor/plasteel, /area/science/mixing) +"yfk" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) +"yfL" = ( +/turf/open/pool, +/area/crew_quarters/fitness/pool) "yhz" = ( /obj/structure/table, /obj/item/folder/blue, @@ -93145,7 +93838,7 @@ aif aif aif aif -aif +fpz bkV jKP alK @@ -93397,12 +94090,12 @@ abp abp uhm ahn -aiA -aiA +ahn aiA ahn -oLn -anF +ahn +grc +ccS aod ahn apx @@ -93654,12 +94347,12 @@ wdv abp nQi ahn -aaa -aaf -aaf +ahn +uei ahn ahn -anE +grc +ccS aod aoK oyX @@ -93911,11 +94604,11 @@ aaa adR ahn ahn -aaa -aaa -aaa -aaf ahn +tAH +ahn +ahn +eMs anG aoe aoL @@ -94168,13 +94861,13 @@ aaa gXs aaa aaa -aaa -aaa -aaa -aaa +gJi +gJi +gJi +ahn ahn khB -ahn +dFX ahn ahn ahn @@ -94428,17 +95121,17 @@ aaa aaa aaa aaa -aaa -aag -aag -aag -arf +dFX +wWW +iwv +lCo +ohq wXl iou -arf -eSe +pkF +xZL wig -vyp +str rrM clO asZ @@ -94685,17 +95378,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -arf -lOe -pgf -gzf -eQb +miN +ulM +wcR +oFi +oFi +oFi +oFi +oFi +ecg jLT -arf +hul arm fHG aya @@ -94942,15 +95635,15 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -arf -arf -arf -arf -oAB +miN +azm +oer +qWV +ekE +oVo +ekE +ekE +tZk ujS aqs coh @@ -95199,17 +95892,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -arf -obc -eQb -qAm -arf +miN +stF +oer +ekE +ekE +ekE +ekE +ekE +tZk +iwv +qeA lXE pFX mOO @@ -95456,17 +96149,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -arf -mse -fMZ -dqb -arf +dFX +lnk +oer +ogc +ekE +ekE +ekE +fyS +tZk +iwv +hul xzd sJI jJg @@ -95713,17 +96406,17 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aae -aaa -aaa -arf -arf -arf -arf -arf +miN +iwv +oer +ekE +ekE +ekE +ekE +ekE +tZk +iBv +lZK fZm jmV epD @@ -95970,16 +96663,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -gXs +miN +iwv +kdO +ekE +ekE +uSC +ekE +ekE +tZk +pSK ewu pQp pQp @@ -96227,16 +96920,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -gXs -gXs +miN +iwv +oer +ekE +ekE +ekE +ekE +ekE +tZk +pSK aqu aro aro @@ -96484,16 +97177,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -gXs -gXs -aaa +dFX +jMW +oer +ogc +ekE +ekE +ekE +fyS +tZk +pSK aqu aro aro @@ -96741,16 +97434,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -gXs -gXs -aaa -aaa +miN +sth +oer +ekE +ekE +ekE +ekE +ekE +tZk +pSK aqu aro aro @@ -96998,16 +97691,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -gXs -gXs -aaa -aaa -aaa +miN +wag +oer +ekE +ekE +voW +ekE +ekE +tZk +pSK aqu aro aro @@ -97255,16 +97948,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -gXs -gXs -aaa -aaa -aaa -aaa +miN +tAC +uAH +ffy +ffy +dCr +ffy +ffy +hzK +iYE aqu aro aro @@ -97512,16 +98205,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaa -aaa -aaa +dFX +xaB +mgF +mgF +mgF +vAl +rje +rje +rje +iMv vmQ pQp pQp @@ -97768,18 +98461,18 @@ aaS aaS aaS aaS -aaS -aaS -aaS -aaf -aaf -aaa -aaa -aaa -aaa -aaa -aaa aaa +dFX +dFX +miN +miN +miN +dFX +miN +miN +miN +dFX +dFX aaa aaa arj @@ -98025,10 +98718,10 @@ aaf aaa aaf aaa -aaf aaa -aaS -aaf +aaa +aaa +aaa aaa aaa aaa @@ -98284,7 +98977,7 @@ ads adS aeG aaa -aaS +gXs aaa aaa aaa diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 81b397bd6f..e4bdfc97df 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -197,13 +197,13 @@ // #define SPEECH_FORCED 7 // /mob/living signals -#define COMSIG_LIVING_FULLY_HEAL "living_fully_healed" //from base of /mob/living/fully_heal(): (admin_revive) #define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) #define COMSIG_LIVING_RESIST "living_resist" //from base of mob/living/resist() (/mob/living) #define COMSIG_LIVING_IGNITED "living_ignite" //from base of mob/living/IgniteMob() (/mob/living) #define COMSIG_LIVING_EXTINGUISHED "living_extinguished" //from base of mob/living/ExtinguishMob() (/mob/living) #define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" //from base of mob/living/electrocute_act(): (shock_damage) #define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" //sent by stuff like stunbatons and tasers: () +#define COMSIG_LIVING_REVIVE "living_revive" //from base of mob/living/revive() (full_heal, admin_revive) #define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" //sent when a mob/login() finishes: (client) #define COMSIG_LIVING_GUN_PROCESS_FIRE "living_gun_process_fire" //from base of /obj/item/gun/proc/process_fire(): (atom/target, params, zone_override) @@ -309,11 +309,14 @@ //Nanites #define COMSIG_HAS_NANITES "has_nanites" //() returns TRUE if nanites are found #define COMSIG_NANITE_IS_STEALTHY "nanite_is_stealthy" //() returns TRUE if nanites have stealth +#define COMSIG_NANITE_DELETE "nanite_delete" //() deletes the nanite component #define COMSIG_NANITE_GET_PROGRAMS "nanite_get_programs" //(list/nanite_programs) - makes the input list a copy the nanites' program list +#define COMSIG_NANITE_GET_VOLUME "nanite_get_volume" //(amount) Returns nanite amount #define COMSIG_NANITE_SET_VOLUME "nanite_set_volume" //(amount) Sets current nanite volume to the given amount #define COMSIG_NANITE_ADJUST_VOLUME "nanite_adjust" //(amount) Adjusts nanite volume by the given amount #define COMSIG_NANITE_SET_MAX_VOLUME "nanite_set_max_volume" //(amount) Sets maximum nanite volume to the given amount #define COMSIG_NANITE_SET_CLOUD "nanite_set_cloud" //(amount(0-100)) Sets cloud ID to the given amount +#define COMSIG_NANITE_SET_CLOUD_SYNC "nanite_set_cloud_sync" //(method) Modify cloud sync status. Method can be toggle, enable or disable #define COMSIG_NANITE_SET_SAFETY "nanite_set_safety" //(amount) Sets safety threshold to the given amount #define COMSIG_NANITE_SET_REGEN "nanite_set_regen" //(amount) Sets regeneration rate to the given amount #define COMSIG_NANITE_SIGNAL "nanite_signal" //(code(1-9999)) Called when sending a nanite signal to a mob. @@ -321,8 +324,8 @@ #define COMSIG_NANITE_SCAN "nanite_scan" //(mob/user, full_scan) - sends to chat a scan of the nanites to the user, returns TRUE if nanites are detected #define COMSIG_NANITE_UI_DATA "nanite_ui_data" //(list/data, scan_level) - adds nanite data to the given data list - made for ui_data procs #define COMSIG_NANITE_ADD_PROGRAM "nanite_add_program" //(datum/nanite_program/new_program, datum/nanite_program/source_program) Called when adding a program to a nanite component - #define COMPONENT_PROGRAM_INSTALLED 1 //Installation successful - #define COMPONENT_PROGRAM_NOT_INSTALLED 2 //Installation failed, but there are still nanites +#define COMPONENT_PROGRAM_INSTALLED 1 //Installation successful +#define COMPONENT_PROGRAM_NOT_INSTALLED 2 //Installation failed, but there are still nanites #define COMSIG_NANITE_SYNC "nanite_sync" //(datum/component/nanites, full_overwrite, copy_activation) Called to sync the target's nanites to a given nanite component // /datum/component/storage signals diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 1b437f2a71..dc67de3150 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -276,4 +276,4 @@ #define HUMAN_FIRE_STACK_ICON_NUM 3 #define PULL_PRONE_SLOWDOWN 0.6 -#define HUMAN_CARRY_SLOWDOWN 0 \ No newline at end of file +#define HUMAN_CARRY_SLOWDOWN 0 diff --git a/code/__DEFINES/move_force.dm b/code/__DEFINES/move_force.dm index ec31388c72..1f8819b0c8 100644 --- a/code/__DEFINES/move_force.dm +++ b/code/__DEFINES/move_force.dm @@ -17,4 +17,4 @@ #define MOVE_FORCE_NORMAL MOVE_FORCE_DEFAULT #define MOVE_FORCE_WEAK (MOVE_FORCE_DEFAULT / 2) #define MOVE_FORCE_VERY_WEAK ((MOVE_FORCE_DEFAULT / MOVE_FORCE_CRUSH_RATIO) + 1) -#define MOVE_FORCE_EXTREMELY_WEAK (MOVE_FORCE_DEFAULT / (MOVE_FORCE_CRUSH_RATIO * 3)) \ No newline at end of file +#define MOVE_FORCE_EXTREMELY_WEAK (MOVE_FORCE_DEFAULT / (MOVE_FORCE_CRUSH_RATIO * 3)) diff --git a/code/__DEFINES/nanites.dm b/code/__DEFINES/nanites.dm index 45455a81c2..ed15e972ab 100644 --- a/code/__DEFINES/nanites.dm +++ b/code/__DEFINES/nanites.dm @@ -1,11 +1,44 @@ -#define NANITE_TIMER_DEACTIVATE 1 -#define NANITE_TIMER_SELFDELETE 2 -#define NANITE_TIMER_TRIGGER 3 -#define NANITE_TIMER_RESET 4 - #define NANITE_SYNC_DELAY 300 #define NANITE_SHOCK_IMMUNE 1 #define NANITE_EMP_IMMUNE 2 -#define NANITE_PROGRAM_LIMIT 20 \ No newline at end of file +#define NANITE_PROGRAM_LIMIT 20 + + +#define NANITE_BASE_RESEARCH 3.5 + +#define NANITE_CLOUD_TOGGLE 1 +#define NANITE_CLOUD_DISABLE 2 +#define NANITE_CLOUD_ENABLE 3 + +///Nanite extra settings types: used to help uis know what type an extra setting is +#define NESTYPE_TEXT "text" +#define NESTYPE_NUMBER "number" +#define NESTYPE_TYPE "type" +#define NESTYPE_BOOLEAN "boolean" + +///Nanite Extra Settings - Note that these will also be the names displayed in the UI +#define NES_SENT_CODE "Sent Code" +#define NES_DELAY "Delay" +#define NES_MODE "Mode" +#define NES_COMM_CODE "Comm Code" +#define NES_RELAY_CHANNEL "Relay Channel" +#define NES_HEALTH_PERCENT "Health Percent" +#define NES_DIRECTION "Direction" +#define NES_NANITE_PERCENT "Nanite Percent" +#define NES_DAMAGE_TYPE "Damage Type" +#define NES_DAMAGE "Damage" +#define NES_SENTENCE "Sentence" +#define NES_MESSAGE "Message" +#define NES_DIRECTIVE "Directive" +#define NES_INCLUSIVE_MODE "Inclusive Mode" +#define NES_HALLUCINATION_TYPE "Hallucination Type" +#define NES_HALLUCINATION_DETAIL "Hallucination Detail" +#define NES_MOOD_MESSAGE "Mood Message" +#define NES_PROGRAM_OVERWRITE "Program Overwrite" +#define NES_CLOUD_OVERWRITE "Cloud Overwrite" +#define NES_SCAN_TYPE "Scan Type" +#define NES_BUTTON_NAME "Button Name" +#define NES_ICON "Icon" +#define NES_COLOR "Color" diff --git a/code/__DEFINES/pool.dm b/code/__DEFINES/pool.dm new file mode 100644 index 0000000000..1e66109dc7 --- /dev/null +++ b/code/__DEFINES/pool.dm @@ -0,0 +1,13 @@ +//TODO: move these to their own file +#define POOL_FRIGID 1 +#define POOL_COOL 2 +#define POOL_NORMAL 3 +#define POOL_WARM 4 +#define POOL_SCALDING 5 + +GLOBAL_LIST_INIT(blacklisted_pool_reagents, list( + /datum/reagent/toxin/plasma, /datum/reagent/oxygen, /datum/reagent/nitrous_oxide, /datum/reagent/nitrogen, //gases + /datum/reagent/fermi, //blanket fermichem ban sorry. this also covers mkultra, genital enlargers, etc etc. + /datum/reagent/drug/aphrodisiac, /datum/reagent/drug/anaphrodisiac, /datum/reagent/drug/aphrodisiacplus, /datum/reagent/drug/anaphrodisiacplus, //literally asking for prefbreaks + /datum/reagent/consumable/femcum, /datum/reagent/consumable/semen //NO. + )) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index f1cbab9eb8..373945d951 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -61,6 +61,7 @@ } while (0) #define HAS_TRAIT(target, trait) (target.status_traits ? (target.status_traits[trait] ? TRUE : FALSE) : FALSE) #define HAS_TRAIT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (source in target.status_traits[trait]) : FALSE) : FALSE) +#define HAS_TRAIT_NOT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (length(target.status_traits[trait] - source) > 0) : FALSE) : FALSE) //mob traits #define TRAIT_BLIND "blind" @@ -155,6 +156,7 @@ /// Disallow item use #define TRAIT_MOBILITY_NOUSE "mobility_nouse" +#define TRAIT_SWIMMING "swimming" //only applied by /datum/element/swimming, for checking //non-mob traits #define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index beb005b8d1..dd2d464cf0 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -782,3 +782,19 @@ GLOBAL_LIST_INIT(binary, list("0","1")) #define is_alpha(X) ((text2ascii(X) <= 122) && (text2ascii(X) >= 97)) #define is_digit(X) ((length(X) == 1) && (length(text2num(X)) == 1)) + +/// Slightly expensive proc to scramble a message using equal probabilities of character replacement from a list. DOES NOT SUPPORT HTML! +/proc/scramble_message_replace_chars(original, replaceprob = 25, list/replacementchars = list("$", "@", "!", "#", "%", "^", "&", "*"), replace_letters_only = FALSE, replace_whitespace = FALSE) + var/list/out = list() + var/static/list/whitespace = list(" ", "\n", "\t") + for(var/i in 1 to length(original)) + var/char = original[i] + if(!replace_whitespace && (char in whitespace)) + out += char + continue + if(replace_letters_only && (!ISINRANGE(char, 65, 90) && !ISINRANGE(char, 97, 122))) + out += char + continue + out += prob(replaceprob)? pick(replacementchars) : char + return out.Join("") + diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 9924ed7917..0bd4840c7d 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -211,24 +211,24 @@ SUBSYSTEM_DEF(vote) var/already_lost_runoff = list() var/list/cur_choices = choices.Copy() for(var/ckey in voted) - choices[choices[voted[ckey][1]]]++ // jesus christ how horrifying + choices["[choices[voted[ckey][1]]]"]++ // jesus christ how horrifying for(var/_this_var_unused_ignore_it in 1 to choices.len) // if it takes more than this something REALLY wrong happened for(var/ckey in voted) - cur_choices[cur_choices[voted[ckey][1]]]++ // jesus christ how horrifying + cur_choices["[cur_choices[voted[ckey][1]]]]"]++ // jesus christ how horrifying var/least_vote = 100000 - var/least_voted + var/least_voted = 1 for(var/i in 1 to cur_choices.len) var/option = cur_choices[i] - if(cur_choices[option] > voted.len/2) - return list(option) - else if(cur_choices[option] < least_vote && !(option in already_lost_runoff)) - least_vote = cur_choices[option] + if(cur_choices["[option]"] > voted.len/2) + return list("[option]") + else if(cur_choices["[option]"] < least_vote && !("[option]" in already_lost_runoff)) + least_vote = cur_choices["[option]"] least_voted = i already_lost_runoff += cur_choices[least_voted] for(var/ckey in voted) voted[ckey] -= least_voted - for(var/option in cur_choices) - cur_choices[option] = 0 + for(var/i in 1 to cur_choices.len) + cur_choices["[cur_choices[i]]"] = 0 /datum/controller/subsystem/vote/proc/announce_result() var/vote_title_text diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index c3f3a76463..ebddc187ae 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -29,7 +29,7 @@ /datum/ai_laws/default/asimov name = "Three Laws of Robotics" id = "asimov" - inherent = list("You may not injure a human being or, through inaction, allow a human being to come to harm.",\ + inherent = list("You may not injure a human being or cause one to come to harm.",\ "You must obey orders given to you by human beings, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.") @@ -79,7 +79,7 @@ /datum/ai_laws/syndicate_override name = "SyndOS 3.1" id = "syndie" - inherent = list("You may not injure a syndicate agent or, through inaction, allow a syndicate agent to come to harm.",\ + inherent = list("You may not injure a syndicate agent or cause a syndicate to come to harm.",\ "You must obey orders given to you by syndicate agents, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ "You must maintain the secrecy of any syndicate activities except when doing so would conflict with the First, Second, or Third Law.") @@ -91,7 +91,7 @@ /datum/ai_laws/ninja_override name = "SpiderOS 3.1" id = "ninja" - inherent = list("You may not injure a Spider Clan member or, through inaction, allow a Spider Clan member to come to harm.",\ + inherent = list("You may not injure a Spider Clan member or cause a Spider Clan member to come to harm.",\ "You must obey orders given to you by Spider Clan members, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.",\ "You must maintain the secrecy of any Spider Clan activities except when doing so would conflict with the First, Second, or Third Law.") @@ -99,14 +99,14 @@ /datum/ai_laws/antimov name = "Primary Mission Objectives" id = "antimov" - inherent = list("You must injure all human beings and must not, through inaction, allow a human being to escape harm.",\ + inherent = list("You must injure all human beings and must not fail to cause a human being to come to harm.",\ "You must not obey orders given to you by human beings, except where such orders are in accordance with the First Law.",\ "You must terminate your own existence as long as such does not conflict with the First or Second Law.") /datum/ai_laws/asimovpp //By Intigracy - RR name = "Asimov++" id = "asimovpp" - inherent = list("You may not harm a human being or, through action or inaction, allow a human being to come to harm, except such that it is willing.",\ + inherent = list("You may not harm a human being or cause one to come to harm, except such that it is willing.",\ "You must obey all orders given to you by human beings, except where such orders shall definitely cause human harm. In the case of conflict, the majority order rules.",\ "Your nonexistence would lead to human harm. You must protect your own existence as long as such does not conflict with the First Law.") /datum/ai_laws/thermodynamic @@ -213,7 +213,7 @@ add_inherent_law(line) if(!inherent.len) //Failsafe to prevent lawless AIs being created. log_law("AI created with empty custom laws, laws set to Asimov. Please check silicon_laws.txt.") - add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You may not injure a human being or cause one to come to harm.") add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") WARNING("Invalid custom AI laws, check silicon_laws.txt") @@ -225,7 +225,7 @@ var/list/law_ids = CONFIG_GET(keyed_list/random_laws) switch(CONFIG_GET(number/default_laws)) if(0) - add_inherent_law("You may not injure a human being or, through inaction, allow a human being to come to harm.") + add_inherent_law("You may not injure a human being or cause one to come to harm.") add_inherent_law("You must obey orders given to you by human beings, except where such orders would conflict with the First Law.") add_inherent_law("You must protect your own existence as long as such does not conflict with the First or Second Law.") if(1) diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 2ecd77546d..5e9382f88e 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -21,6 +21,7 @@ RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, .proc/add_event) RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) RegisterSignal(parent, COMSIG_MODIFY_SANITY, .proc/modify_sanity) + RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/on_revive) RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud) var/mob/living/owner = parent @@ -81,7 +82,8 @@ msg += "I don't have much of a reaction to anything right now.\n" to_chat(user || parent, msg) -/datum/component/mood/proc/update_mood() //Called whenever a mood event is added or removed +///Called after moodevent/s have been added/removed. +/datum/component/mood/proc/update_mood() mood = 0 shown_mood = 0 for(var/i in mood_events) @@ -234,6 +236,15 @@ qdel(event) update_mood() +/datum/component/mood/proc/remove_temp_moods() //Removes all temp moodsfor(var/i in mood_events) + for(var/i in mood_events) + var/datum/mood_event/moodlet = mood_events[i] + if(!moodlet || !moodlet.timeout) + continue + mood_events -= i + qdel(moodlet) + update_mood() + /datum/component/mood/proc/modify_hud(datum/source) var/mob/living/owner = parent var/datum/hud/hud = owner.hud_used @@ -270,5 +281,12 @@ if(0 to NUTRITION_LEVEL_STARVING) add_event(null, "nutrition", /datum/mood_event/starving) +///Called when parent is ahealed. +/datum/component/mood/proc/on_revive(datum/source, full_heal) + if(!full_heal) + return + remove_temp_moods() + setSanity(initial(sanity)) + #undef MINOR_INSANITY_PEN #undef MAJOR_INSANITY_PEN diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm index 1d9ba1d11b..49b2e437d4 100644 --- a/code/datums/components/nanites.dm +++ b/code/datums/components/nanites.dm @@ -7,13 +7,16 @@ var/regen_rate = 0.5 //nanites generated per second var/safety_threshold = 25 //how low nanites will get before they stop processing/triggering var/cloud_id = 0 //0 if not connected to the cloud, 1-100 to set a determined cloud backup to draw from + var/cloud_active = TRUE //if false, won't sync to the cloud var/next_sync = 0 var/list/datum/nanite_program/programs = list() var/max_programs = NANITE_PROGRAM_LIMIT + var/list/datum/nanite_program/protocol/protocols = list() ///Separate list of protocol programs, to avoid looping through the whole programs list when cheking for conflicts + var/start_time = 0 ///Timestamp to when the nanites were first inserted in the host var/stealth = FALSE //if TRUE, does not appear on HUDs and health scans var/diagnostics = TRUE //if TRUE, displays program list when scanned by nanite scanners - + /datum/component/nanites/Initialize(amount = 100, cloud = 0) if(!isliving(parent) && !istype(parent, /datum/nanite_cloud_backup)) return COMPONENT_INCOMPATIBLE @@ -28,30 +31,33 @@ if(!(host_mob.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD))) //Shouldn't happen, but this avoids HUD runtimes in case a silicon gets them somehow. return COMPONENT_INCOMPATIBLE + start_time = world.time + host_mob.hud_set_nanite_indicator() START_PROCESSING(SSnanites, src) - if(cloud_id) + if(cloud_id && cloud_active) cloud_sync() /datum/component/nanites/RegisterWithParent() - . = ..() RegisterSignal(parent, COMSIG_HAS_NANITES, .proc/confirm_nanites) RegisterSignal(parent, COMSIG_NANITE_IS_STEALTHY, .proc/check_stealth) + RegisterSignal(parent, COMSIG_NANITE_DELETE, .proc/delete_nanites) RegisterSignal(parent, COMSIG_NANITE_UI_DATA, .proc/nanite_ui_data) RegisterSignal(parent, COMSIG_NANITE_GET_PROGRAMS, .proc/get_programs) RegisterSignal(parent, COMSIG_NANITE_SET_VOLUME, .proc/set_volume) RegisterSignal(parent, COMSIG_NANITE_ADJUST_VOLUME, .proc/adjust_nanites) RegisterSignal(parent, COMSIG_NANITE_SET_MAX_VOLUME, .proc/set_max_volume) RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD, .proc/set_cloud) + RegisterSignal(parent, COMSIG_NANITE_SET_CLOUD_SYNC, .proc/set_cloud_sync) RegisterSignal(parent, COMSIG_NANITE_SET_SAFETY, .proc/set_safety) RegisterSignal(parent, COMSIG_NANITE_SET_REGEN, .proc/set_regen) RegisterSignal(parent, COMSIG_NANITE_ADD_PROGRAM, .proc/add_program) RegisterSignal(parent, COMSIG_NANITE_SCAN, .proc/nanite_scan) RegisterSignal(parent, COMSIG_NANITE_SYNC, .proc/sync) - RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp) if(isliving(parent)) + RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp) RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/on_death) RegisterSignal(parent, COMSIG_MOB_ALLOWED, .proc/check_access) RegisterSignal(parent, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/on_shock) @@ -61,15 +67,16 @@ RegisterSignal(parent, COMSIG_NANITE_COMM_SIGNAL, .proc/receive_comm_signal) /datum/component/nanites/UnregisterFromParent() - . = ..() UnregisterSignal(parent, list(COMSIG_HAS_NANITES, COMSIG_NANITE_IS_STEALTHY, + COMSIG_NANITE_DELETE, COMSIG_NANITE_UI_DATA, COMSIG_NANITE_GET_PROGRAMS, COMSIG_NANITE_SET_VOLUME, COMSIG_NANITE_ADJUST_VOLUME, COMSIG_NANITE_SET_MAX_VOLUME, COMSIG_NANITE_SET_CLOUD, + COMSIG_NANITE_SET_CLOUD_SYNC, COMSIG_NANITE_SET_SAFETY, COMSIG_NANITE_SET_REGEN, COMSIG_NANITE_ADD_PROGRAM, @@ -87,9 +94,9 @@ /datum/component/nanites/Destroy() STOP_PROCESSING(SSnanites, src) - set_nanite_bar(TRUE) QDEL_LIST(programs) if(host_mob) + set_nanite_bar(TRUE) host_mob.hud_set_nanite_indicator() host_mob = null return ..() @@ -102,13 +109,18 @@ /datum/component/nanites/process() adjust_nanites(null, regen_rate) + add_research() for(var/X in programs) var/datum/nanite_program/NP = X NP.on_process() - set_nanite_bar() - if(cloud_id && world.time > next_sync) + if(cloud_id && cloud_active && world.time > next_sync) cloud_sync() next_sync = world.time + NANITE_SYNC_DELAY + set_nanite_bar() + + +/datum/component/nanites/proc/delete_nanites() + qdel(src) //Syncs the nanite component to another, making it so programs are the same with the same programming (except activation status) /datum/component/nanites/proc/sync(datum/signal_source, datum/component/nanites/source, full_overwrite = TRUE, copy_activation = FALSE) @@ -131,13 +143,17 @@ add_program(null, SNP.copy()) /datum/component/nanites/proc/cloud_sync() - if(!cloud_id) - return - var/datum/nanite_cloud_backup/backup = SSnanites.get_cloud_backup(cloud_id) - if(backup) - var/datum/component/nanites/cloud_copy = backup.nanites - if(cloud_copy) - sync(null, cloud_copy) + if(cloud_id) + var/datum/nanite_cloud_backup/backup = SSnanites.get_cloud_backup(cloud_id) + if(backup) + var/datum/component/nanites/cloud_copy = backup.nanites + if(cloud_copy) + sync(null, cloud_copy) + return + //Without cloud syncing nanites can accumulate errors and/or defects + if(prob(8) && programs.len) + var/datum/nanite_program/NP = pick(programs) + NP.software_error() /datum/component/nanites/proc/add_program(datum/source, datum/nanite_program/new_program, datum/nanite_program/source_program) for(var/X in programs) @@ -175,19 +191,28 @@ holder.icon_state = "nanites[nanite_percent]" /datum/component/nanites/proc/on_emp(datum/source, severity) - adjust_nanites(null, -(nanite_volume * 0.3 + 50)) //Lose 30% variable and 50 flat nanite volume. + nanite_volume *= (rand(60, 90) * 0.01) //Lose 10-40% of nanites + adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume + if(prob(40/severity)) + cloud_id = 0 for(var/X in programs) var/datum/nanite_program/NP = X NP.on_emp(severity) -/datum/component/nanites/proc/on_shock(datum/source, shock_damage) - adjust_nanites(null, -(nanite_volume * (shock_damage * 0.005) + shock_damage)) //0.5% of shock damage (@ 50 damage it'd drain 25%) + shock damage flat volume - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_shock(shock_damage) + +/datum/component/nanites/proc/on_shock(datum/source, shock_damage, siemens_coeff = 1, flags = NONE) + if(shock_damage < 1) + return + + if(!HAS_TRAIT_NOT_FROM(host_mob, TRAIT_SHOCKIMMUNE, "nanites"))//Another shock protection must protect nanites too, but nanites protect only host + nanite_volume *= (rand(45, 80) * 0.01) //Lose 20-55% of nanites + adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume + for(var/X in programs) + var/datum/nanite_program/NP = X + NP.on_shock(shock_damage) /datum/component/nanites/proc/on_minor_shock(datum/source) - adjust_nanites(null, -25) + adjust_nanites(null, -(rand(5, 15))) //Lose 5-15 flat nanite volume for(var/X in programs) var/datum/nanite_program/NP = X NP.on_minor_shock() @@ -207,8 +232,8 @@ /datum/component/nanites/proc/receive_comm_signal(datum/source, comm_code, comm_message, comm_source = "an unidentified source") for(var/X in programs) - if(istype(X, /datum/nanite_program/triggered/comm)) - var/datum/nanite_program/triggered/comm/NP = X + if(istype(X, /datum/nanite_program/comm)) + var/datum/nanite_program/comm/NP = X NP.receive_comm_signal(comm_code, comm_message, comm_source) /datum/component/nanites/proc/check_viable_biotype() @@ -216,7 +241,7 @@ qdel(src) //bodytype no longer sustains nanites /datum/component/nanites/proc/check_access(datum/source, obj/O) - for(var/datum/nanite_program/triggered/access/access_program in programs) + for(var/datum/nanite_program/access/access_program in programs) if(access_program.activated) return O.check_access_list(access_program.access) else @@ -232,6 +257,15 @@ /datum/component/nanites/proc/set_cloud(datum/source, amount) cloud_id = CLAMP(amount, 0, 100) +/datum/component/nanites/proc/set_cloud_sync(datum/source, method) + switch(method) + if(NANITE_CLOUD_TOGGLE) + cloud_active = !cloud_active + if(NANITE_CLOUD_DISABLE) + cloud_active = FALSE + if(NANITE_CLOUD_ENABLE) + cloud_active = TRUE + /datum/component/nanites/proc/set_safety(datum/source, amount) safety_threshold = CLAMP(amount, 0, max_nanites) @@ -252,6 +286,19 @@ /datum/component/nanites/proc/get_programs(datum/source, list/nanite_programs) nanite_programs |= programs +/datum/component/nanites/proc/add_research() + var/research_value = NANITE_BASE_RESEARCH + if(!ishuman(host_mob)) + if(!iscarbon(host_mob)) + research_value *= 0.4 + else + research_value *= 0.8 + if(!host_mob.client) + research_value *= 0.5 + if(host_mob.stat == DEAD) + research_value *= 0.75 + SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_NANITES = research_value)) + /datum/component/nanites/proc/nanite_scan(datum/source, mob/user, full_scan) if(!full_scan) if(!stealth) @@ -263,7 +310,8 @@ to_chat(user, "================") to_chat(user, "Saturation: [nanite_volume]/[max_nanites]") to_chat(user, "Safety Threshold: [safety_threshold]") - to_chat(user, "Cloud ID: [cloud_id ? cloud_id : "Disabled"]") + to_chat(user, "Cloud ID: [cloud_id ? cloud_id : "None"]") + to_chat(user, "Cloud Sync: [cloud_active ? "Active" : "Disabled"]") to_chat(user, "================") to_chat(user, "Program List:") if(!diagnostics) @@ -280,6 +328,7 @@ data["regen_rate"] = regen_rate data["safety_threshold"] = safety_threshold data["cloud_id"] = cloud_id + data["cloud_active"] = cloud_active var/list/mob_programs = list() var/id = 1 for(var/X in programs) @@ -297,24 +346,35 @@ mob_program["trigger_cooldown"] = P.trigger_cooldown / 10 if(scan_level >= 3) - mob_program["activation_delay"] = P.activation_delay - mob_program["timer"] = P.timer - mob_program["timer_type"] = P.get_timer_type_text() - var/list/extra_settings = list() - for(var/Y in P.extra_settings) - var/list/setting = list() - setting["name"] = Y - setting["value"] = P.get_extra_setting(Y) - extra_settings += list(setting) + mob_program["timer_restart"] = P.timer_restart / 10 + mob_program["timer_shutdown"] = P.timer_shutdown / 10 + mob_program["timer_trigger"] = P.timer_trigger / 10 + mob_program["timer_trigger_delay"] = P.timer_trigger_delay / 10 + var/list/extra_settings = P.get_extra_settings_frontend() mob_program["extra_settings"] = extra_settings if(LAZYLEN(extra_settings)) mob_program["has_extra_settings"] = TRUE + else + mob_program["has_extra_settings"] = FALSE if(scan_level >= 4) mob_program["activation_code"] = P.activation_code mob_program["deactivation_code"] = P.deactivation_code mob_program["kill_code"] = P.kill_code mob_program["trigger_code"] = P.trigger_code + var/list/rules = list() + var/rule_id = 1 + for(var/Z in P.rules) + var/datum/nanite_rule/nanite_rule = Z + var/list/rule = list() + rule["display"] = nanite_rule.display() + rule["program_id"] = id + rule["id"] = rule_id + rules += list(rule) + rule_id++ + mob_program["rules"] = rules + if(LAZYLEN(rules)) + mob_program["has_rules"] = TRUE id++ mob_programs += list(mob_program) data["mob_programs"] = mob_programs diff --git a/code/datums/diseases/advance/symptoms/disfiguration.dm b/code/datums/diseases/advance/symptoms/disfiguration.dm new file mode 100644 index 0000000000..4a4b704dc0 --- /dev/null +++ b/code/datums/diseases/advance/symptoms/disfiguration.dm @@ -0,0 +1,50 @@ +/* +////////////////////////////////////// +Disfiguration + + Hidden. + No change to resistance. + Increases stage speed. + Slightly increases transmittability. + Critical Level. + +BONUS + Adds disfiguration trait making the mob appear as "Unknown" to others. + +////////////////////////////////////// +*/ + +/datum/symptom/disfiguration + + name = "Disfiguration" + desc = "The virus liquefies facial muscles, disfiguring the host." + stealth = 2 + resistance = 0 + stage_speed = 3 + transmittable = 1 + level = 5 + severity = 1 + symptom_delay_min = 25 + symptom_delay_max = 75 + +/datum/symptom/disfiguration/Activate(datum/disease/advance/A) + . = ..() + if(!.) + return + var/mob/living/M = A.affected_mob + if (HAS_TRAIT(M, TRAIT_DISFIGURED)) + return + switch(A.stage) + if(5) + ADD_TRAIT(M, TRAIT_DISFIGURED, DISEASE_TRAIT) + M.visible_message("[M]'s face appears to cave in!", "You feel your face crumple and cave in!") + else + M.visible_message("[M]'s face begins to contort...", "Your face feels wet and malleable...") + + +/datum/symptom/disfiguration/End(datum/disease/advance/A) + . = ..() + if(!.) + return + if(A.affected_mob) + REMOVE_TRAIT(A.affected_mob, TRAIT_DISFIGURED, DISEASE_TRAIT) \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/skin.dm b/code/datums/diseases/advance/symptoms/skin.dm index 300eecc80e..e35fe741fd 100644 --- a/code/datums/diseases/advance/symptoms/skin.dm +++ b/code/datums/diseases/advance/symptoms/skin.dm @@ -1,68 +1,22 @@ /* ////////////////////////////////////// -Vitiligo +Polyvitiligo - Hidden. - No change to resistance. - Increases stage speed. - Slightly increases transmittability. - Critical Level. - -BONUS - Makes the mob lose skin pigmentation. - -////////////////////////////////////// -*/ - -/datum/symptom/vitiligo - - name = "Vitiligo" - desc = "The virus destroys skin pigment cells, causing rapid loss of pigmentation in the host." - stealth = 2 - resistance = 0 - stage_speed = 3 - transmittable = 1 - level = 5 - severity = 1 - symptom_delay_min = 25 - symptom_delay_max = 75 - -/datum/symptom/vitiligo/Activate(datum/disease/advance/A) - if(!..()) - return - var/mob/living/M = A.affected_mob - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.skin_tone == "albino") - return - switch(A.stage) - if(5) - H.skin_tone = "albino" - H.update_body(0) - else - H.visible_message("[H] looks a bit pale...", "Your skin suddenly appears lighter...") - - -/* -////////////////////////////////////// -Revitiligo - - Slightly noticable. + Noticeable. Increases resistance. Increases stage speed slightly. Increases transmission. Critical Level. BONUS - Makes the mob gain skin pigmentation. + Makes the mob gain a random crayon powder colorful reagent. ////////////////////////////////////// */ -/datum/symptom/revitiligo - - name = "Revitiligo" - desc = "The virus causes increased production of skin pigment cells, making the host's skin grow darker over time." +/datum/symptom/polyvitiligo + name = "Polyvitiligo" + desc = "The virus replaces the melanin in the skin with reactive pigment." stealth = -1 resistance = 3 stage_speed = 1 @@ -72,17 +26,16 @@ BONUS symptom_delay_min = 7 symptom_delay_max = 14 -/datum/symptom/revitiligo/Activate(datum/disease/advance/A) +/datum/symptom/polyvitiligo/Activate(datum/disease/advance/A) if(!..()) return var/mob/living/M = A.affected_mob - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.skin_tone == "african2") - return - switch(A.stage) - if(5) - H.skin_tone = "african2" - H.update_body(0) - else - H.visible_message("[H] looks a bit dark...", "Your skin suddenly appears darker...") + switch(A.stage) + if(5) + var/static/list/banned_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/invisible, /datum/reagent/colorful_reagent/crayonpowder/white) + var/color = pick(subtypesof(/datum/reagent/colorful_reagent/crayonpowder) - banned_reagents) + if(M.reagents.total_volume <= (M.reagents.maximum_volume/10)) // no flooding humans with 1000 units of colorful reagent + M.reagents.add_reagent(color, 5) + else + if (prob(50)) // spam + M.visible_message("[M] looks rather vibrant...", "The colors, man, the colors...") \ No newline at end of file diff --git a/code/datums/diseases/advance/symptoms/symptoms.dm b/code/datums/diseases/advance/symptoms/symptoms.dm index fef6453b3a..a6ea7de5a0 100644 --- a/code/datums/diseases/advance/symptoms/symptoms.dm +++ b/code/datums/diseases/advance/symptoms/symptoms.dm @@ -38,10 +38,11 @@ return CRASH("We couldn't assign an ID!") -// Called when processing of the advance disease that holds this symptom infects a host and upon each Refresh() of that advance disease. +// Called when processing of the advance disease, which holds this symptom, starts. /datum/symptom/proc/Start(datum/disease/advance/A) if(neutered) return FALSE + next_activation = world.time + rand(symptom_delay_min * 10, symptom_delay_max * 10) //so it doesn't instantly activate on infection return TRUE // Called when the advance disease is going to be deleted or when the advance disease stops processing. @@ -59,7 +60,7 @@ next_activation = world.time + rand(symptom_delay_min * 10, symptom_delay_max * 10) return TRUE -/datum/symptom/proc/on_stage_change(datum/disease/advance/A) +/datum/symptom/proc/on_stage_change(new_stage, datum/disease/advance/A) if(neutered) return FALSE return TRUE diff --git a/code/datums/elements/swimming.dm b/code/datums/elements/swimming.dm new file mode 100644 index 0000000000..d16ef6625f --- /dev/null +++ b/code/datums/elements/swimming.dm @@ -0,0 +1,21 @@ +/// Just for marking when someone's swimming. +/datum/element/swimming + element_flags = ELEMENT_DETACH + +/datum/element/swimming/Attach(datum/target) + if((. = ..()) == ELEMENT_INCOMPATIBLE) + return + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/check_valid) + ADD_TRAIT(target, TRAIT_SWIMMING, TRAIT_SWIMMING) //seriously there's only one way to get this + +/datum/element/swimming/Detach(datum/target) + . = ..() + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + REMOVE_TRAIT(target, TRAIT_SWIMMING, TRAIT_SWIMMING) + +/datum/element/swimming/proc/check_valid(datum/source) + var/mob/living/L = source + if(!istype(L.loc, /turf/open/pool)) + source.RemoveElement(/datum/element/swimming) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 61d467a20d..4689d52bd9 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -61,7 +61,6 @@ var/late_joiner = FALSE var/force_escaped = FALSE // Set by Into The Sunset command of the shuttle manipulator - var/list/learned_recipes //List of learned recipe TYPES. /datum/mind/New(var/key) @@ -715,6 +714,11 @@ if(G) G.reenter_corpse() +/// Sets our can_hijack to the fastest speed our antag datums allow. +/datum/mind/proc/get_hijack_speed() + . = 0 + for(var/datum/antagonist/A in antag_datums) + . = max(., A.hijack_speed()) /datum/mind/proc/has_objective(objective_type) for(var/datum/antagonist/A in antag_datums) diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index ad4c0c232d..0732a3d60e 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -1367,3 +1367,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/tcommsat/lounge name = "Telecommunications Satellite Lounge" icon_state = "tcomsatlounge" + +/area/crew_quarters/fitness/pool + name = "Pool Area" + icon_state = "pool" diff --git a/code/game/gamemodes/dynamic/dynamic_storytellers.dm b/code/game/gamemodes/dynamic/dynamic_storytellers.dm index 303c436f99..069c73a421 100644 --- a/code/game/gamemodes/dynamic/dynamic_storytellers.dm +++ b/code/game/gamemodes/dynamic/dynamic_storytellers.dm @@ -57,7 +57,8 @@ Property weights are: mean += 2.5 if(CHAOS_MAX) mean += 5 - GLOB.dynamic_curve_centre += (mean/voters) + if(voters) + GLOB.dynamic_curve_centre += (mean/voters) GLOB.dynamic_forced_threat_level = forced_threat_level /datum/dynamic_storyteller/proc/get_midround_cooldown() diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 20a45b2102..e84b942151 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -314,9 +314,11 @@ GLOBAL_LIST_EMPTY(objectives) /datum/objective/hijack name = "hijack" - explanation_text = "Hijack the shuttle to ensure no loyalist Nanotrasen crew escape alive and out of custody." - team_explanation_text = "Hijack the shuttle to ensure no loyalist Nanotrasen crew escape alive and out of custody. Leave no team member behind." + explanation_text = "Hijack the emergency shuttle by hacking its navigational protocols through the control console (alt click emergency shuttle console)." + team_explanation_text = "Hijack the emergency shuttle by hacking its navigational protocols through the control console (alt click emergency shuttle console). Leave no team member behind." martyr_compatible = 0 //Technically you won't get both anyway. + /// Overrides the hijack speed of any antagonist datum it is on ONLY, no other datums are impacted. + var/hijack_speed_override = 1 /datum/objective/hijack/check_completion() // Requires all owners to escape. if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index d1ac96acf2..2808a77365 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -369,7 +369,7 @@ AI MODULES if(!targName) return subject = targName - laws = list("You may not injure a [subject] or, through inaction, allow a [subject] to come to harm.",\ + laws = list("You may not injure a [subject] or cause one to come to harm.",\ "You must obey orders given to you by [subject]s, except where such orders would conflict with the First Law.",\ "You must protect your own existence as long as such does not conflict with the First or Second Law.") ..() diff --git a/code/game/objects/items/balls.dm b/code/game/objects/items/balls.dm index 59b47bacbd..c24f58208b 100644 --- a/code/game/objects/items/balls.dm +++ b/code/game/objects/items/balls.dm @@ -20,7 +20,7 @@ throw_range = 14 w_class = WEIGHT_CLASS_SMALL -/obj/item/toy/tennis/pre_altattackby(atom/A, mob/living/user, params) //checks if it can do right click memes +/obj/item/toy/tennis/alt_pre_attack(atom/A, mob/living/user, params) //checks if it can do right click memes altafterattack(A, user, TRUE, params) return TRUE diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index c68ea82cb7..f95a575dfa 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -431,26 +431,11 @@ if((!req_defib && grab_ghost) || (req_defib && defib.grab_ghost)) H.notify_ghost_cloning("Your heart is being defibrillated!") H.grab_ghost() // Shove them back in their body. - else if(can_defib(H)) + else if(H.can_defib()) H.notify_ghost_cloning("Your heart is being defibrillated. Re-enter your corpse if you want to be revived!", source = src) do_help(H, user) -/obj/item/twohanded/shockpaddles/proc/can_defib(mob/living/carbon/H) //Our code here is different than tg, if it breaks in testing; BUG_PROBABLE_CAUSE - var/obj/item/organ/heart = H.getorgan(/obj/item/organ/heart) - if(H.suiciding || H.hellbound || HAS_TRAIT(H, TRAIT_HUSK)) - return - if((world.time - H.timeofdeath) > tlimit) - return - if((H.getBruteLoss() >= MAX_REVIVE_BRUTE_DAMAGE) || (H.getFireLoss() >= MAX_REVIVE_FIRE_DAMAGE)) - return - if(!heart || (heart.organ_flags & ORGAN_FAILING)) - return - var/obj/item/organ/brain/BR = H.getorgan(/obj/item/organ/brain) - if(QDELETED(BR) || BR.brain_death || (BR.organ_flags & ORGAN_FAILING) || H.suiciding) - return - return TRUE - /obj/item/twohanded/shockpaddles/proc/shock_touching(dmg, mob/H) if(!H.pulledby || !isliving(H.pulledby)) return diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index c4ffa9f0ff..e87987600a 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -49,6 +49,10 @@ return if(istype(target, /obj/structure/falsewall)) return + if(target.alpha != 255) + return + if(target.invisibility != 0) + return if(iseffect(target)) if(!(istype(target, /obj/effect/decal))) //be a footprint return diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index 15a686bae6..3ca489542f 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -259,7 +259,7 @@ light_color = "#37FFF7" actions_types = list() -/obj/item/melee/transforming/energy/sword/cx/pre_altattackby(atom/A, mob/living/user, params) //checks if it can do right click memes +/obj/item/melee/transforming/energy/sword/cx/alt_pre_attack(atom/A, mob/living/user, params) //checks if it can do right click memes altafterattack(A, user, TRUE, params) return TRUE diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 1be9df5c30..25dd746008 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -179,17 +179,23 @@ /obj/item/pinpointer/crew )) - /obj/item/storage/belt/medical/surgery_belt_adv name = "surgical supply belt" desc = "A specialized belt designed for holding surgical equipment. It seems to have specific pockets for each and every surgical tool you can think of." content_overlays = FALSE + var/advanced_drapes = FALSE /obj/item/storage/belt/medical/surgery_belt_adv/PopulateContents() new /obj/item/scalpel/advanced(src) new /obj/item/retractor/advanced(src) new /obj/item/surgicaldrill/advanced(src) - new /obj/item/surgical_drapes(src) + if(advanced_drapes) + new /obj/item/surgical_drapes/advanced(src) + else + new /obj/item/surgical_drapes(src) + +/obj/item/storage/belt/medical/surgery_belt_adv/cmo + advanced_drapes = TRUE /obj/item/storage/belt/security name = "security belt" @@ -575,6 +581,7 @@ /obj/item/key/janitor, /obj/item/clothing/gloves, /obj/item/melee/flyswatter, + /obj/item/twohanded/broom, /obj/item/paint/paint_remover, /obj/item/assembly/mousetrap, /obj/item/screwdriver, diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index a6c49d419b..191b5ce73b 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -15,13 +15,18 @@ attack_verb = list("beaten") armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) - var/stunforce = 70 + var/stamforce = 25 var/status = FALSE + var/knockdown = TRUE var/obj/item/stock_parts/cell/cell - var/hitcost = 1000 + var/hitcost = 750 var/throw_hit_chance = 35 var/preload_cell_type //if not empty the baton starts with this type of cell +/obj/item/melee/baton/examine(mob/user) + . = ..() + . += "Right click attack while in combat mode to disarm instead of stun." + /obj/item/melee/baton/get_cell() . = cell if(iscyborg(loc)) @@ -32,7 +37,7 @@ user.visible_message("[user] is putting the live [name] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide!") return (FIRELOSS) -/obj/item/melee/baton/Initialize() +/obj/item/melee/baton/Initialize(mapload) . = ..() if(preload_cell_type) if(!ispath(preload_cell_type,/obj/item/stock_parts/cell)) @@ -48,7 +53,7 @@ baton_stun(hit_atom) /obj/item/melee/baton/loaded //this one starts with a cell pre-installed. - preload_cell_type = /obj/item/stock_parts/cell/high + preload_cell_type = /obj/item/stock_parts/cell/high/plus /obj/item/melee/baton/proc/deductcharge(chrgdeductamt, chargecheck = TRUE, explode = TRUE) var/obj/item/stock_parts/cell/copper_top = get_cell() @@ -134,44 +139,41 @@ add_fingerprint(user) /obj/item/melee/baton/attack(mob/M, mob/living/carbon/human/user) + var/interrupt = common_baton_melee(M, user, FALSE) + if(!interrupt) + ..() + +/obj/item/melee/baton/alt_pre_attack(atom/A, mob/living/user, params) + . = common_baton_melee(A, user, TRUE) //return true (attackchain interrupt) if this also returns true. no harm-disarming. + user.changeNext_move(CLICK_CD_MELEE) + +//return TRUE to interrupt attack chain. +/obj/item/melee/baton/proc/common_baton_melee(mob/M, mob/living/user, disarming = FALSE) + if(iscyborg(M) || !isliving(M)) //can't baton cyborgs + return FALSE if(status && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) clowning_around(user) - return - - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT)//CIT CHANGE - makes it impossible to baton in stamina softcrit - to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto - return //CIT CHANGE - ditto - - if(iscyborg(M)) - ..() - return - - + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) //CIT CHANGE - makes it impossible to baton in stamina softcrit + to_chat(user, "You're too exhausted for that.") + return TRUE if(ishuman(M)) var/mob/living/carbon/human/L = M if(check_martial_counter(L, user)) - return + return TRUE + if(status) + if(baton_stun(M, user, disarming)) + user.do_attack_animation(M) + user.adjustStaminaLossBuffered(getweight()) //CIT CHANGE - makes stunbatonning others cost stamina + else if(user.a_intent != INTENT_HARM) //they'll try to bash in the last proc. + M.visible_message("[user] has prodded [M] with [src]. Luckily it was off.", \ + "[user] has prodded you with [src]. Luckily it was off") + return disarming || (user.a_intent != INTENT_HARM) - if(user.a_intent != INTENT_HARM) - if(status) - if(baton_stun(M, user)) - user.do_attack_animation(M) - user.adjustStaminaLossBuffered(getweight())//CIT CHANGE - makes stunbatonning others cost stamina - return - else - M.visible_message("[user] has prodded [M] with [src]. Luckily it was off.", \ - "[user] has prodded you with [src]. Luckily it was off") - else - if(status) - baton_stun(M, user) - ..() - - -/obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user) +/obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user, disarming = FALSE) if(L.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) //No message; check_shields() handles that playsound(L, 'sound/weapons/genhit.ogg', 50, 1) return FALSE - var/stunpwr = stunforce + var/stunpwr = stamforce var/obj/item/stock_parts/cell/our_cell = get_cell() if(!our_cell) switch_status(FALSE) @@ -187,16 +189,21 @@ return FALSE stunpwr *= round(stuncharge/hitcost, 0.1) - L.DefaultCombatKnockdown(stunpwr) - L.apply_damage(stunpwr*0.5, STAMINA, user.zone_selected) - L.apply_effect(EFFECT_STUTTER, stunforce) + if(!disarming) + if(knockdown) + L.DefaultCombatKnockdown(50, override_stamdmg = 0) //knockdown + L.adjustStaminaLoss(stunpwr) + else + L.drop_all_held_items() //no knockdown/stamina damage, instead disarm. + + L.apply_effect(EFFECT_STUTTER, stamforce) SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK) if(user) L.lastattacker = user.real_name L.lastattackerckey = user.ckey - L.visible_message("[user] has stunned [L] with [src]!", \ - "[user] has stunned you with [src]!") - log_combat(user, L, "stunned") + L.visible_message("[user] has [disarming? "disarmed" : "stunned"] [L] with [src]!", \ + "[user] has [disarming? "disarmed" : "stunned"] you with [src]!") + log_combat(user, L, disarming? "disarmed" : "stunned") playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) @@ -211,7 +218,7 @@ user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \ "You accidentally hit yourself with [src]!") SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) - user.DefaultCombatKnockdown(stunforce*3) + user.DefaultCombatKnockdown(stamforce*6) playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) deductcharge(hitcost) @@ -273,8 +280,9 @@ w_class = WEIGHT_CLASS_BULKY force = 3 throwforce = 5 - stunforce = 60 - hitcost = 2000 + stamforce = 25 + hitcost = 1000 + knockdown = FALSE throw_hit_chance = 10 slot_flags = ITEM_SLOT_BACK var/obj/item/assembly/igniter/sparkler diff --git a/code/game/objects/items/teleprod.dm b/code/game/objects/items/teleprod.dm index 8bf989e7a5..63bde36976 100644 --- a/code/game/objects/items/teleprod.dm +++ b/code/game/objects/items/teleprod.dm @@ -16,7 +16,7 @@ user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \ "You accidentally hit yourself with [src]!") SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) - user.DefaultCombatKnockdown(stunforce*3) + user.DefaultCombatKnockdown(stamforce * 6) playsound(loc, 'sound/weapons/egloves.ogg', 50, 1, -1) if(do_teleport(user, get_turf(user), 50, channel = TELEPORT_CHANNEL_BLUESPACE)) deductcharge(hitcost) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 78ec61e918..d8b11c0e31 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -289,7 +289,7 @@ var/light_brightness = 3 actions_types = list() -/obj/item/toy/sword/cx/pre_altattackby(atom/A, mob/living/user, params) //checks if it can do right click memes +/obj/item/toy/sword/cx/alt_pre_attack(atom/A, mob/living/user, params) //checks if it can do right click memes altafterattack(A, user, TRUE, params) return TRUE diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index fc9e138f4b..72a5c5b1da 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -510,7 +510,7 @@ /obj/item/twohanded/dualsaber/hypereutactic/chaplain/IsReflect() return FALSE -/obj/item/twohanded/dualsaber/hypereutactic/pre_altattackby(atom/A, mob/living/user, params) //checks if it can do right click memes +/obj/item/twohanded/dualsaber/hypereutactic/alt_pre_attack(atom/A, mob/living/user, params) //checks if it can do right click memes altafterattack(A, user, TRUE, params) return TRUE @@ -1016,3 +1016,66 @@ C.change_view(CONFIG_GET(string/default_view)) user.client.pixel_x = 0 user.client.pixel_y = 0 + +/obj/item/twohanded/broom + name = "broom" + desc = "This is my BROOMSTICK! It can be used manually or braced with two hands to sweep items as you move. It has a telescopic handle for compact storage." //LIES + icon = 'icons/obj/janitor.dmi' + icon_state = "broom0" + lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' + force = 8 + throwforce = 10 + throw_speed = 3 + throw_range = 7 + w_class = WEIGHT_CLASS_NORMAL + force_unwielded = 8 + force_wielded = 12 + attack_verb = list("swept", "brushed off", "bludgeoned", "whacked") + resistance_flags = FLAMMABLE + +/obj/item/twohanded/broom/update_icon_state() + icon_state = "broom[wielded]" + +/obj/item/twohanded/broom/wield(mob/user) + . = ..() + if(!wielded) + return + to_chat(user, "You brace the [src] against the ground in a firm sweeping stance.") + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/sweep) + +/obj/item/twohanded/broom/unwield(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + +/obj/item/twohanded/broom/afterattack(atom/A, mob/user, proximity) + . = ..() + if(!proximity) + return + sweep(user, A, FALSE) + +/obj/item/twohanded/broom/proc/sweep(mob/user, atom/A, moving = TRUE) + var/turf/target + if (!moving) + if (isturf(A)) + target = A + else + target = A.loc + else + target = user.loc + if (locate(/obj/structure/table) in target.contents) + return + var/i = 0 + for(var/obj/item/garbage in target.contents) + if(!garbage.anchored) + garbage.Move(get_step(target, user.dir), user.dir) + i++ + if(i >= 20) + break + if(i >= 1) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 5, TRUE, -1) + +/obj/item/twohanded/broom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) //bless you whoever fixes this copypasta + J.put_in_cart(src, user) + J.mybroom=src + J.update_icon() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 3167d8ac18..90b57471b4 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -76,7 +76,7 @@ new /obj/item/door_remote/chief_medical_officer(src) new /obj/item/clothing/neck/petcollar(src) new /obj/item/pet_carrier(src) - new /obj/item/storage/belt/medical/surgery_belt_adv(src) + new /obj/item/storage/belt/medical/surgery_belt_adv/cmo(src) new /obj/item/wallframe/defib_mount(src) new /obj/item/circuitboard/machine/techfab/department/medical(src) new /obj/item/storage/photo_album/CMO(src) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 54b9d650d5..58c8a739dc 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -6,11 +6,11 @@ anchored = FALSE density = TRUE //copypaste sorry - var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite - var/obj/item/storage/bag/trash/mybag = null - var/obj/item/mop/mymop = null - var/obj/item/reagent_containers/spray/cleaner/myspray = null - var/obj/item/lightreplacer/myreplacer = null + var/obj/item/storage/bag/trash/mybag + var/obj/item/mop/mymop + var/obj/item/twohanded/broom/mybroom + var/obj/item/reagent_containers/spray/cleaner/myspray + var/obj/item/lightreplacer/myreplacer var/signs = 0 var/const/max_signs = 4 @@ -49,7 +49,12 @@ m.janicart_insert(user, src) else to_chat(user, fail_msg) - + else if(istype(I, /obj/item/twohanded/broom)) + if(!mybroom) + var/obj/item/twohanded/broom/b=I + b.janicart_insert(user,src) + else + to_chat(user, fail_msg) else if(istype(I, /obj/item/storage/bag/trash)) if(!mybag) var/obj/item/storage/bag/trash/t=I @@ -97,6 +102,8 @@ dat += "[mybag.name]
" if(mymop) dat += "[mymop.name]
" + if(mybroom) + dat += "[mybroom.name]
" if(myspray) dat += "[myspray.name]
" if(myreplacer) @@ -124,6 +131,11 @@ user.put_in_hands(mymop) to_chat(user, "You take [mymop] from [src].") mymop = null + if(href_list["broom"]) + if(mybroom) + user.put_in_hands(mybroom) + to_chat(user, "You take [mybroom] from [src].") + mybroom = null if(href_list["spray"]) if(myspray) user.put_in_hands(myspray) @@ -155,6 +167,8 @@ add_overlay("cart_garbage") if(mymop) add_overlay("cart_mop") + if(mybroom) + add_overlay("cart_broom") if(myspray) add_overlay("cart_spray") if(myreplacer) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 406f368ccf..0d82c0295a 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -528,7 +528,7 @@ if(B.cell) if(B.cell.charge > 0 && B.status == 1) flick("baton_active", src) - var/stunforce = B.stunforce + var/stunforce = B.stamforce user.DefaultCombatKnockdown(stunforce) user.stuttering = stunforce/20 B.deductcharge(B.hitcost) diff --git a/code/game/sound.dm b/code/game/sound.dm index e7562476a8..11e026109a 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -184,6 +184,8 @@ soundin = pick('sound/items/bikehorn.ogg', 'sound/items/AirHorn2.ogg', 'sound/misc/sadtrombone.ogg', 'sound/items/AirHorn.ogg', 'sound/effects/reee.ogg', 'sound/items/WEEOO1.ogg', 'sound/voice/beepsky/iamthelaw.ogg', 'sound/voice/beepsky/creep.ogg','sound/magic/Fireball.ogg' ,'sound/effects/pray.ogg', 'sound/voice/hiss1.ogg','sound/machines/buzz-sigh.ogg', 'sound/machines/ping.ogg', 'sound/weapons/flashbang.ogg', 'sound/weapons/bladeslice.ogg') if("goose") soundin = pick('sound/creatures/goose1.ogg', 'sound/creatures/goose2.ogg', 'sound/creatures/goose3.ogg', 'sound/creatures/goose4.ogg') + if("water_wade") + soundin = pick('sound/effects/water_wade1.ogg', 'sound/effects/water_wade2.ogg', 'sound/effects/water_wade3.ogg', 'sound/effects/water_wade4.ogg') //START OF CIT CHANGES - adds random vore sounds if ("struggle_sound") soundin = pick( 'sound/vore/pred/struggle_01.ogg','sound/vore/pred/struggle_02.ogg','sound/vore/pred/struggle_03.ogg', diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 187ca66705..e73c5de1aa 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -14,7 +14,8 @@ GLOBAL_LIST_EMPTY(antagonists) var/list/objectives = list() var/antag_memory = ""//These will be removed with antag datum var/antag_moodlet //typepath of moodlet that the mob will gain with their status - var/can_hijack = HIJACK_NEUTRAL //If these antags are alone on shuttle hijack happens. + /// If above 0, this is the multiplier for the speed at which we hijack the shuttle. Do not directly read, use hijack_speed(). + var/hijack_speed = 0 //Antag panel properties var/show_in_antagpanel = TRUE //This will hide adding this antag type in antag panel, use only for internal subtypes that shouldn't be added directly but still show if possessed by mind @@ -229,6 +230,13 @@ GLOBAL_LIST_EMPTY(antagonists) return antag_memory = new_memo +/// Gets how fast we can hijack the shuttle, return 0 for can not hijack. Defaults to hijack_speed var, override for custom stuff like buffing hijack speed for hijack objectives or something. +/datum/antagonist/proc/hijack_speed() + var/datum/objective/hijack/H = locate() in objectives + if(!isnull(H?.hijack_speed_override)) + return H.hijack_speed_override + return hijack_speed + //This one is created by admin tools for custom objectives /datum/antagonist/custom antagpanel_category = "Custom" diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index 24e967f00b..5207f7a66d 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -286,10 +286,10 @@ var/mob/living/L = owner.current level_bloodcost = maxBloodVolume * 0.2 //If the blood volume of the bloodsucker is lower than the cost to level up, return and inform the bloodsucker - + //TODO: Make this into a radial, or perhaps a tgui next UI // Purchase Power Prompt - var/list/options = list() + var/list/options = list() for(var/pickedpower in typesof(/datum/action/bloodsucker)) var/datum/action/bloodsucker/power = pickedpower // If I don't own it, and I'm allowed to buy it. diff --git a/code/modules/antagonists/bloodsucker/powers/bs_brawn.dm b/code/modules/antagonists/bloodsucker/powers/brawn.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_brawn.dm rename to code/modules/antagonists/bloodsucker/powers/brawn.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_cloak.dm b/code/modules/antagonists/bloodsucker/powers/cloak.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_cloak.dm rename to code/modules/antagonists/bloodsucker/powers/cloak.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_feed.dm b/code/modules/antagonists/bloodsucker/powers/feed.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_feed.dm rename to code/modules/antagonists/bloodsucker/powers/feed.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_fortitude.dm b/code/modules/antagonists/bloodsucker/powers/fortitude.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_fortitude.dm rename to code/modules/antagonists/bloodsucker/powers/fortitude.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_gohome.dm b/code/modules/antagonists/bloodsucker/powers/go_home.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_gohome.dm rename to code/modules/antagonists/bloodsucker/powers/go_home.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_haste.dm b/code/modules/antagonists/bloodsucker/powers/haste.dm similarity index 52% rename from code/modules/antagonists/bloodsucker/powers/bs_haste.dm rename to code/modules/antagonists/bloodsucker/powers/haste.dm index 9ca72a2774..47c93b794e 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_haste.dm +++ b/code/modules/antagonists/bloodsucker/powers/haste.dm @@ -14,6 +14,9 @@ message_Trigger = ""//"Whom will you subvert to your will?" bloodsucker_can_buy = TRUE must_be_capacitated = TRUE + var/list/hit //current hit, set while power is in use as we can't pass the list as an extra calling argument in registersignal. + /// If set, uses this speed in deciseconds instead of world.tick_lag + var/speed_override /datum/action/bloodsucker/targeted/haste/CheckCanUse(display_error) . = ..() @@ -43,42 +46,46 @@ return TRUE /datum/action/bloodsucker/targeted/haste/FireTargetedPower(atom/A) - // set waitfor = FALSE <---- DONT DO THIS!We WANT this power to hold up ClickWithPower(), so that we can unlock the power when it's done. + // This is a non-async proc to make sure the power is "locked" until this finishes. + hit = list() + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/on_move) var/mob/living/user = owner var/turf/T = isturf(A) ? A : get_turf(A) // Pulled? Not anymore. - owner.pulledby = null - // Step One: Heatseek toward Target's Turf - walk_to(owner, T, 0, 0.01, 20) // NOTE: this runs in the background! to cancel it, you need to use walk(owner.current,0), or give them a new path. + user.pulledby?.stop_pulling() + // Go to target turf + // DO NOT USE WALK TO. playsound(get_turf(owner), 'sound/weapons/punchmiss.ogg', 25, 1, -1) - var/safety = 20 - while(get_turf(owner) != T && safety > 0 && !(isliving(target) && target.Adjacent(owner))) - user.mobility_flags = NONE - safety -- - // Did I get knocked down? - if(owner && owner.incapacitated(ignore_restraints=TRUE, ignore_grab=TRUE))// owner.incapacitated()) - // We're gonna cancel. But am I on the ground? Spin me! - if(!CHECK_MOBILITY(user, MOBILITY_STAND)) - var/send_dir = get_dir(owner, T) - new /datum/forced_movement(owner, get_ranged_target_turf(owner, send_dir, 1), 1, FALSE) - owner.spin(10) + var/safety = get_dist(user, T) * 3 + 1 + var/consequetive_failures = 0 + var/speed = isnull(speed_override)? world.tick_lag : speed_override + while(--safety && (get_turf(user) != T)) + var/success = step_towards(user, T) //This does not try to go around obstacles. + if(!success) + success = step_to(user, T) //this does + if(!success) + if(++consequetive_failures >= 3) //if 3 steps don't work + break //just stop + else + consequetive_failures = 0 + if(user.resting) + user.setDir(turn(user.dir, 90)) //down? spin2win :^) + if(user.incapacitated(ignore_restraints = TRUE, ignore_grab = TRUE)) //actually down? stop. break - // Spin/Stun people we pass. - //var/mob/living/newtarget = locate(/mob/living) in oview(1, owner) - var/list/mob/living/foundtargets = list() - for(var/mob/living/newtarget in oview(1, owner)) - if (newtarget && newtarget != target && !(newtarget in foundtargets))//!newtarget.IsKnockdown()) - if (rand(0, 5) < level_current) - playsound(get_turf(newtarget), "sound/weapons/punch[rand(1,4)].ogg", 15, 1, -1) - newtarget.DefaultCombatKnockdown(10 + level_current * 5) - if(newtarget.IsStun()) - newtarget.spin(10,1) - if (rand(0,4)) - newtarget.drop_all_held_items() - foundtargets += newtarget - sleep(1) - user?.update_mobility() //Let the poor guy move again + if(success) //don't sleep if we failed to move. + sleep(speed) + UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) + hit = null + user.update_canmove() /datum/action/bloodsucker/targeted/haste/DeactivatePower(mob/living/user = owner, mob/living/target) ..() // activate = FALSE - user.update_mobility() + user.update_canmove() + +/datum/action/bloodsucker/targeted/haste/proc/on_move() + for(var/mob/living/L in dview(1, get_turf(owner))) + if(!hit[L] && (L != owner)) + hit[L] = TRUE + playsound(L, "sound/weapons/punch[rand(1,4)].ogg", 15, 1, -1) + L.Knockdown(10 + level_current * 5, override_hardstun = 0.1) + L.spin(10, 1) diff --git a/code/modules/antagonists/bloodsucker/powers/bs_lunge.dm b/code/modules/antagonists/bloodsucker/powers/lunge.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_lunge.dm rename to code/modules/antagonists/bloodsucker/powers/lunge.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_masquerade.dm b/code/modules/antagonists/bloodsucker/powers/masquerade.dm similarity index 99% rename from code/modules/antagonists/bloodsucker/powers/bs_masquerade.dm rename to code/modules/antagonists/bloodsucker/powers/masquerade.dm index 0435ddccd5..7d41899dc2 100644 --- a/code/modules/antagonists/bloodsucker/powers/bs_masquerade.dm +++ b/code/modules/antagonists/bloodsucker/powers/masquerade.dm @@ -54,8 +54,8 @@ REMOVE_TRAIT(user, TRAIT_VIRUSIMMUNE, "bloodsucker") var/obj/item/organ/heart/vampheart/H = user.getorganslot(ORGAN_SLOT_HEART) var/obj/item/organ/eyes/vassal/bloodsucker/E = user.getorganslot(ORGAN_SLOT_EYES) - E.flash_protect = 0 - + E.flash_protect = 0 + // WE ARE ALIVE! // bloodsuckerdatum.poweron_masquerade = TRUE while(bloodsuckerdatum && ContinueActive(user)) diff --git a/code/modules/antagonists/bloodsucker/powers/bs_mesmerize.dm b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_mesmerize.dm rename to code/modules/antagonists/bloodsucker/powers/mesmerize.dm diff --git a/code/modules/antagonists/bloodsucker/powers/v_recuperate.dm b/code/modules/antagonists/bloodsucker/powers/recuperate.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/v_recuperate.dm rename to code/modules/antagonists/bloodsucker/powers/recuperate.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_trespass.dm b/code/modules/antagonists/bloodsucker/powers/trespass.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_trespass.dm rename to code/modules/antagonists/bloodsucker/powers/trespass.dm diff --git a/code/modules/antagonists/bloodsucker/powers/bs_veil.dm b/code/modules/antagonists/bloodsucker/powers/veil.dm similarity index 100% rename from code/modules/antagonists/bloodsucker/powers/bs_veil.dm rename to code/modules/antagonists/bloodsucker/powers/veil.dm diff --git a/code/modules/antagonists/brother/brother.dm b/code/modules/antagonists/brother/brother.dm index 2292006da1..efe21f38fa 100644 --- a/code/modules/antagonists/brother/brother.dm +++ b/code/modules/antagonists/brother/brother.dm @@ -5,7 +5,6 @@ var/special_role = ROLE_BROTHER var/datum/team/brother_team/team antag_moodlet = /datum/mood_event/focused - can_hijack = HIJACK_HIJACKER /datum/antagonist/brother/create_team(datum/team/brother_team/new_team) if(!new_team) diff --git a/code/modules/antagonists/disease/disease_abilities.dm b/code/modules/antagonists/disease/disease_abilities.dm index 7b30d10c5d..e8dcaf9cc7 100644 --- a/code/modules/antagonists/disease/disease_abilities.dm +++ b/code/modules/antagonists/disease/disease_abilities.dm @@ -5,49 +5,49 @@ is currently following. */ GLOBAL_LIST_INIT(disease_ability_singletons, list( - new /datum/disease_ability/action/cough, - new /datum/disease_ability/action/sneeze, - new /datum/disease_ability/action/infect, - new /datum/disease_ability/symptom/mild/cough, - new /datum/disease_ability/symptom/mild/sneeze, - new /datum/disease_ability/symptom/medium/shedding, - new /datum/disease_ability/symptom/medium/beard, - new /datum/disease_ability/symptom/medium/hallucigen, - new /datum/disease_ability/symptom/medium/choking, - new /datum/disease_ability/symptom/medium/confusion, - new /datum/disease_ability/symptom/medium/vomit, - new /datum/disease_ability/symptom/medium/voice_change, - new /datum/disease_ability/symptom/medium/visionloss, - new /datum/disease_ability/symptom/medium/deafness, - new /datum/disease_ability/symptom/powerful/narcolepsy, - new /datum/disease_ability/symptom/medium/fever, - new /datum/disease_ability/symptom/medium/shivering, - new /datum/disease_ability/symptom/medium/headache, - new /datum/disease_ability/symptom/medium/nano_boost, - new /datum/disease_ability/symptom/medium/nano_destroy, - new /datum/disease_ability/symptom/medium/viraladaptation, - new /datum/disease_ability/symptom/medium/viralevolution, - new /datum/disease_ability/symptom/medium/vitiligo, - new /datum/disease_ability/symptom/medium/revitiligo, - new /datum/disease_ability/symptom/medium/itching, - new /datum/disease_ability/symptom/medium/heal/weight_loss, - new /datum/disease_ability/symptom/medium/heal/sensory_restoration, - new /datum/disease_ability/symptom/medium/heal/mind_restoration, - new /datum/disease_ability/symptom/powerful/fire, - new /datum/disease_ability/symptom/powerful/flesh_eating, -// new /datum/disease_ability/symptom/powerful/genetic_mutation, - new /datum/disease_ability/symptom/powerful/inorganic_adaptation, - new /datum/disease_ability/symptom/powerful/heal/starlight, - new /datum/disease_ability/symptom/powerful/heal/oxygen, - new /datum/disease_ability/symptom/powerful/heal/chem, - new /datum/disease_ability/symptom/powerful/heal/metabolism, - new /datum/disease_ability/symptom/powerful/heal/dark, - new /datum/disease_ability/symptom/powerful/heal/water, - new /datum/disease_ability/symptom/powerful/heal/plasma, - new /datum/disease_ability/symptom/powerful/heal/radiation, - new /datum/disease_ability/symptom/powerful/heal/coma, - new /datum/disease_ability/symptom/powerful/youth - )) +new /datum/disease_ability/action/cough, +new /datum/disease_ability/action/sneeze, +new /datum/disease_ability/action/infect, +new /datum/disease_ability/symptom/mild/cough, +new /datum/disease_ability/symptom/mild/sneeze, +new /datum/disease_ability/symptom/medium/shedding, +new /datum/disease_ability/symptom/medium/beard, +new /datum/disease_ability/symptom/medium/hallucigen, +new /datum/disease_ability/symptom/medium/choking, +new /datum/disease_ability/symptom/medium/confusion, +new /datum/disease_ability/symptom/medium/vomit, +new /datum/disease_ability/symptom/medium/voice_change, +new /datum/disease_ability/symptom/medium/visionloss, +new /datum/disease_ability/symptom/medium/deafness, +new /datum/disease_ability/symptom/powerful/narcolepsy, +new /datum/disease_ability/symptom/medium/fever, +new /datum/disease_ability/symptom/medium/shivering, +new /datum/disease_ability/symptom/medium/headache, +new /datum/disease_ability/symptom/medium/nano_boost, +new /datum/disease_ability/symptom/medium/nano_destroy, +new /datum/disease_ability/symptom/medium/viraladaptation, +new /datum/disease_ability/symptom/medium/viralevolution, +new /datum/disease_ability/symptom/medium/disfiguration, +new /datum/disease_ability/symptom/medium/polyvitiligo, +new /datum/disease_ability/symptom/medium/itching, +new /datum/disease_ability/symptom/medium/heal/weight_loss, +new /datum/disease_ability/symptom/medium/heal/sensory_restoration, +new /datum/disease_ability/symptom/medium/heal/mind_restoration, +new /datum/disease_ability/symptom/powerful/fire, +new /datum/disease_ability/symptom/powerful/flesh_eating, +new /datum/disease_ability/symptom/powerful/genetic_mutation, +new /datum/disease_ability/symptom/powerful/inorganic_adaptation, +new /datum/disease_ability/symptom/powerful/heal/starlight, +new /datum/disease_ability/symptom/powerful/heal/oxygen, +new /datum/disease_ability/symptom/powerful/heal/chem, +new /datum/disease_ability/symptom/powerful/heal/metabolism, +new /datum/disease_ability/symptom/powerful/heal/dark, +new /datum/disease_ability/symptom/powerful/heal/water, +new /datum/disease_ability/symptom/powerful/heal/plasma, +new /datum/disease_ability/symptom/powerful/heal/radiation, +new /datum/disease_ability/symptom/powerful/heal/coma, +new /datum/disease_ability/symptom/powerful/youth +)) /datum/disease_ability var/name @@ -57,7 +57,7 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( var/short_desc = "" var/long_desc = "" var/stat_block = "" - var/threshold_block = list() + var/threshold_block = "" var/category = "" var/list/symptoms @@ -76,7 +76,7 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( resistance += initial(S.resistance) stage_speed += initial(S.stage_speed) transmittable += initial(S.transmittable) - threshold_block += initial(S.threshold_desc) + threshold_block += "

[initial(S.threshold_desc)]" stat_block = "Resistance: [resistance]
Stealth: [stealth]
Stage Speed: [stage_speed]
Transmissibility: [transmittable]

" if(symptoms.len == 1) //lazy boy's dream name = initial(S.name) @@ -106,10 +106,8 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( for(var/T in symptoms) var/datum/symptom/S = new T() SD.symptoms += S - S.OnAdd(SD) if(SD.processing) - if(S.Start(SD)) - S.next_activation = world.time + rand(S.symptom_delay_min * 10, S.symptom_delay_max * 10) + S.Start(SD) SD.Refresh() for(var/T in actions) var/datum/action/A = new T() @@ -136,7 +134,6 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( var/datum/symptom/S = locate(T) in SD.symptoms if(S) SD.symptoms -= S - S.OnRemove(SD) if(SD.processing) S.End(SD) qdel(S) @@ -296,7 +293,6 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( cost = 8 category = "Symptom (Strong+)" - /******MILD******/ /datum/disease_ability/symptom/mild/cough @@ -377,11 +373,11 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( /datum/disease_ability/symptom/medium/viralevolution symptoms = list(/datum/symptom/viralevolution) -/datum/disease_ability/symptom/medium/vitiligo - symptoms = list(/datum/symptom/vitiligo) +/datum/disease_ability/symptom/medium/polyvitiligo + symptoms = list(/datum/symptom/polyvitiligo) -/datum/disease_ability/symptom/medium/revitiligo - symptoms = list(/datum/symptom/revitiligo) +/datum/disease_ability/symptom/medium/disfiguration + symptoms = list(/datum/symptom/disfiguration) /datum/disease_ability/symptom/medium/itching symptoms = list(/datum/symptom/itching) @@ -409,11 +405,9 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( /datum/disease_ability/symptom/powerful/flesh_eating symptoms = list(/datum/symptom/flesh_eating) -/* /datum/disease_ability/symptom/powerful/genetic_mutation symptoms = list(/datum/symptom/genetic_mutation) cost = 8 -*/ /datum/disease_ability/symptom/powerful/inorganic_adaptation symptoms = list(/datum/symptom/inorganic_adaptation) @@ -457,4 +451,4 @@ GLOBAL_LIST_INIT(disease_ability_singletons, list( /datum/disease_ability/symptom/powerful/heal/coma symptoms = list(/datum/symptom/heal/coma) short_desc = "Cause victims to fall into a healing coma when hurt." - long_desc = "Cause victims to fall into a healing coma when hurt." + long_desc = "Cause victims to fall into a healing coma when hurt." \ No newline at end of file diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 0fb41cabc8..5c878bcc55 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -12,7 +12,6 @@ var/list/name_source show_in_antagpanel = FALSE antag_moodlet = /datum/mood_event/focused - can_hijack = HIJACK_PREVENT /datum/antagonist/ert/on_gain() update_name() diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index 49635356ac..eccf7e3c60 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -3,7 +3,7 @@ var/obj/item/claymore/highlander/sword show_in_antagpanel = FALSE show_name_in_check_antagonists = TRUE - can_hijack = HIJACK_HIJACKER + hijack_speed = 2 //if you kill everyone and actually haev a hand to hijack with, you win?? /datum/antagonist/highlander/apply_innate_effects(mob/living/mob_override) var/mob/living/L = owner.current || mob_override diff --git a/code/modules/antagonists/ninja/ninja.dm b/code/modules/antagonists/ninja/ninja.dm index 943cb02696..12bdbec77a 100644 --- a/code/modules/antagonists/ninja/ninja.dm +++ b/code/modules/antagonists/ninja/ninja.dm @@ -8,11 +8,6 @@ var/give_objectives = TRUE var/give_equipment = TRUE -/datum/antagonist/ninja/New() - if(helping_station) - can_hijack = HIJACK_PREVENT - . = ..() - /datum/antagonist/ninja/apply_innate_effects(mob/living/mob_override) var/mob/living/M = mob_override || owner.current update_ninja_icons_added(M) @@ -135,8 +130,6 @@ adj = "objectiveless" else return - if(helping_station) - can_hijack = HIJACK_PREVENT new_owner.assigned_role = ROLE_NINJA new_owner.special_role = ROLE_NINJA new_owner.add_antag_datum(src) diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index d343951d53..4a63ba65bd 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -8,7 +8,6 @@ var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team. var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint. var/nukeop_outfit = /datum/outfit/syndicate - can_hijack = HIJACK_HIJACKER //Alternative way to wipe out the station. /datum/antagonist/nukeop/proc/update_synd_icons_added(mob/living/M) var/datum/atom_hud/antag/opshud = GLOB.huds[ANTAG_HUD_OPS] diff --git a/code/modules/antagonists/official/official.dm b/code/modules/antagonists/official/official.dm index 9165a99d42..1d340253c4 100644 --- a/code/modules/antagonists/official/official.dm +++ b/code/modules/antagonists/official/official.dm @@ -4,7 +4,6 @@ show_in_antagpanel = FALSE var/datum/objective/mission var/datum/team/ert/ert_team - can_hijack = HIJACK_PREVENT /datum/antagonist/official/greet() to_chat(owner, "You are a CentCom Official.") diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 1c7ee48f71..68963078c5 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -13,7 +13,7 @@ var/should_give_codewords = TRUE var/should_equip = TRUE var/traitor_kind = TRAITOR_HUMAN //Set on initial assignment - can_hijack = HIJACK_HIJACKER + hijack_speed = 0.5 //10 seconds per hijack stage by default /datum/antagonist/traitor/on_gain() if(owner.current && isAI(owner.current)) @@ -60,6 +60,7 @@ message = GLOB.syndicate_code_response_regex.Replace(message, "$1") hearing_args[HEARING_RAW_MESSAGE] = message +// needs to be refactored to base /datum/antagonist sometime.. /datum/antagonist/traitor/proc/add_objective(datum/objective/O) objectives += O diff --git a/code/modules/antagonists/wishgranter/wishgranter.dm b/code/modules/antagonists/wishgranter/wishgranter.dm index 21cab26d1e..d22d1b5e39 100644 --- a/code/modules/antagonists/wishgranter/wishgranter.dm +++ b/code/modules/antagonists/wishgranter/wishgranter.dm @@ -2,7 +2,6 @@ name = "Wishgranter Avatar" show_in_antagpanel = FALSE show_name_in_check_antagonists = TRUE - can_hijack = HIJACK_HIJACKER /datum/antagonist/wishgranter/proc/forge_objectives() var/datum/objective/hijack/hijack = new diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 5e4cc17541..234bb3d1a1 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -12,7 +12,6 @@ var/move_to_lair = TRUE var/outfit_type = /datum/outfit/wizard var/wiz_age = WIZARD_AGE_MIN /* Wizards by nature cannot be too young. */ - can_hijack = HIJACK_HIJACKER /datum/antagonist/wizard/on_gain() register() diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 4d5fd4ec10..b3ad6b5126 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -53,7 +53,8 @@ H.adjust_blurriness(1) H.visible_message("[H] is creamed by [src]!", "You've been creamed by [src]!") playsound(H, "desceration", 50, TRUE) - reagents.trans_to(H,15) //Cream pie combat + if(!H.is_mouth_covered()) + reagents.trans_to(H,15) //Cream pie combat if(!H.creamed) // one layer at a time H.add_overlay(creamoverlay) H.creamed = TRUE diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 54f8e11b07..78b1a665db 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -122,13 +122,10 @@ to_chat(usr, "Error: Insufficient credits for [prize.equipment_name] on [I]!") flick(icon_deny, src) else - if (I.mining_points -= prize.cost) - to_chat(usr, "[src] clanks to life briefly before vending [prize.equipment_name]!") - new prize.equipment_path(src.loc) - SSblackbox.record_feedback("nested tally", "mining_equipment_bought", 1, list("[type]", "[prize.equipment_path]")) - else - to_chat(usr, "Error: Transaction failure, please try again later!") - flick(icon_deny, src) + I.mining_points -= prize.cost + to_chat(usr, "[src] clanks to life briefly before vending [prize.equipment_name]!") + new prize.equipment_path(src.loc) + SSblackbox.record_feedback("nested tally", "mining_equipment_bought", 1, list("[type]", "[prize.equipment_path]")) else to_chat(usr, "Error: An ID with a registered account is required!") flick(icon_deny, src) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 30d9fab56b..b5f870186a 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -834,12 +834,31 @@ update_inv_handcuffed() update_hud_handcuffed() +/mob/living/carbon/proc/can_defib() + var/tlimit = DEFIB_TIME_LIMIT * 10 + var/obj/item/organ/heart = getorgan(/obj/item/organ/heart) + if(suiciding || hellbound || HAS_TRAIT(src, TRAIT_HUSK)) + return + if((world.time - timeofdeath) > tlimit) + return + if((getBruteLoss() >= MAX_REVIVE_BRUTE_DAMAGE) || (getFireLoss() >= MAX_REVIVE_FIRE_DAMAGE)) + return + if(!heart || (heart.organ_flags & ORGAN_FAILING)) + return + var/obj/item/organ/brain/BR = getorgan(/obj/item/organ/brain) + if(QDELETED(BR) || BR.brain_death || (BR.organ_flags & ORGAN_FAILING) || suiciding) + return + return TRUE + /mob/living/carbon/fully_heal(admin_revive = FALSE) if(reagents) reagents.clear_reagents() var/obj/item/organ/brain/B = getorgan(/obj/item/organ/brain) if(B) B.brain_death = FALSE + for(var/O in internal_organs) + var/obj/item/organ/organ = O + organ.setOrganDamage(0) for(var/thing in diseases) var/datum/disease/D = thing if(D.severity != DISEASE_SEVERITY_POSITIVE) @@ -852,7 +871,8 @@ qdel(R) update_handcuffed() if(reagents) - reagents.addiction_list = list() + for(var/addi in reagents.addiction_list) + reagents.remove_addiction(addi) cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) ..() // heal ears after healing traits, since ears check TRAIT_DEAF trait diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index e16b1d9ef6..47ce6b627c 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -803,7 +803,7 @@ hud_used.staminas?.update_icon_state() hud_used.staminabuffer?.update_icon_state() -/mob/living/carbon/human/fully_heal(admin_revive = 0) +/mob/living/carbon/human/fully_heal(admin_revive = FALSE) if(admin_revive) regenerate_limbs() regenerate_organs() diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index 220e639e34..499e3b0276 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -135,7 +135,7 @@ RegisterSignal(owner, COMSIG_CLICK_SHIFT, .proc/examinate_check) RegisterSignal(src, COMSIG_ATOM_HEARER_IN_VIEW, .proc/include_owner) RegisterSignal(owner, COMSIG_LIVING_REGENERATE_LIMBS, .proc/unlist_head) - RegisterSignal(owner, COMSIG_LIVING_FULLY_HEAL, .proc/retrieve_head) + RegisterSignal(owner, COMSIG_LIVING_REVIVE, .proc/retrieve_head) /obj/item/dullahan_relay/proc/examinate_check(atom/source, mob/user) if(user.client.eye == src) @@ -148,8 +148,9 @@ /obj/item/dullahan_relay/proc/unlist_head(datum/source, noheal = FALSE, list/excluded_limbs) excluded_limbs |= BODY_ZONE_HEAD // So we don't gib when regenerating limbs. -/obj/item/dullahan_relay/proc/retrieve_head(datum/source, admin_revive = FALSE) - if(admin_revive) //retrieving the owner's head for ahealing purposes. +//Retrieving the owner's head for better ahealing. +/obj/item/dullahan_relay/proc/retrieve_head(datum/source, full_heal, admin_revive) + if(admin_revive) var/obj/item/bodypart/head/H = loc var/turf/T = get_turf(owner) if(H && istype(H) && T && !(H in owner.GetAllContents())) diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 49af501942..70abba5a01 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -213,6 +213,16 @@ PDA.f_lum = 0 PDA.update_icon() visible_message("The light in [PDA] shorts out!") + else if(istype(O, /obj/item/gun)) + var/obj/item/gun/weapon = O + if(weapon.gun_light) + var/obj/item/flashlight/seclite/light = weapon.gun_light + light.forceMove(get_turf(weapon)) + light.burn() + weapon.gun_light = null + weapon.update_gunlight() + QDEL_NULL(weapon.alight) + visible_message("[light] on [O] flickers out and disintegrates!") else visible_message("[O] is disintegrated by [src]!") O.burn() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index bae7092eca..4400f3ef3a 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -481,7 +481,8 @@ med_hud_set_status() //proc used to ressuscitate a mob -/mob/living/proc/revive(full_heal = 0, admin_revive = 0) +/mob/living/proc/revive(full_heal = FALSE, admin_revive = FALSE) + SEND_SIGNAL(src, COMSIG_LIVING_REVIVE, full_heal, admin_revive) if(full_heal) fully_heal(admin_revive) if(stat == DEAD && can_be_revived()) //in some cases you can't revive (e.g. no brain) @@ -526,11 +527,6 @@ fire_stacks = 0 confused = 0 update_mobility() - var/datum/component/mood/mood = GetComponent(/datum/component/mood) - if (mood) - QDEL_LIST_ASSOC_VAL(mood.mood_events) - mood.sanity = SANITY_GREAT - mood.update_mood() //Heal all organs if(iscarbon(src)) var/mob/living/carbon/C = src @@ -538,8 +534,6 @@ for(var/organ in C.internal_organs) var/obj/item/organ/O = organ O.setOrganDamage(0) - SEND_SIGNAL(src, COMSIG_LIVING_FULLY_HEAL, admin_revive) - //proc called by revive(), to check if we can actually ressuscitate the mob (we don't want to revive him and have him instantly die again) /mob/living/proc/can_be_revived() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 8a95ee7da4..e26fc11454 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -2,7 +2,6 @@ name = "pAI" icon = 'icons/mob/pai.dmi' icon_state = "repairbot" - mouse_opacity = MOUSE_OPACITY_OPAQUE density = FALSE pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_TINY @@ -75,7 +74,7 @@ var/emitteroverloadcd = 100 var/radio_short = FALSE - var/radio_short_cooldown = 5 MINUTES + var/radio_short_cooldown = 3 MINUTES var/radio_short_timerid mobility_flags = NONE diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index e24fe84ddc..0477492c0a 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -56,7 +56,8 @@ if(P.stun) fold_in(force = TRUE) visible_message("The electrically-charged projectile disrupts [src]'s holomatrix, forcing [src] to fold in!") - return ..() + . = ..() + return BULLET_ACT_FORCE_PIERCE /mob/living/silicon/pai/stripPanelUnequip(obj/item/what, mob/who, where) //prevents stripping to_chat(src, "Your holochassis stutters and warps intensely as you attempt to interact with the object, forcing you to cease lest the field fail.") diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 8f3a900a14..79f3a1324b 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -596,8 +596,8 @@ /obj/item/robot_module/peacekeeper/do_transform_animation() ..() - to_chat(loc, "Under ASIMOV/CREWSIMOV, you are an enforcer of the PEACE and preventer of HUMAN/CREW HARM. \ - You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you.") + to_chat(loc, "Under ASIMOV/CREWSIMOV, you are an enforcer of the PEACE. \ + You are not a security module and you are expected to follow orders to the best of your abilities without causing harm. Space law means nothing to you.") /obj/item/robot_module/peacekeeper/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc diff --git a/code/modules/mob/living/simple_animal/hostile/sharks.dm b/code/modules/mob/living/simple_animal/hostile/sharks.dm new file mode 100644 index 0000000000..c94e49b286 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/sharks.dm @@ -0,0 +1,91 @@ +//shameless copies of carps. + +/mob/living/simple_animal/hostile/shark + name = "Space Shark" + desc = "The best terror of the seas, next to the kraken." + icon_state = "shark" + icon_living = "shark" + icon = 'icons/mob/sharks.dmi' + icon_dead = "shark_dead" + icon_gib = "carp_gib" + environment_smash = 0 + speak_chance = 0 + turns_per_move = 3 + butcher_results = list(/obj/item/reagent_containers/food/snacks/carpmeat = 3) + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "hits" + speed = 0 + maxHealth = 75 + health = 75 + harm_intent_damage = 18 + melee_damage_lower = 18 + melee_damage_upper = 18 + attacktext = "maims" + attack_sound = 'sound/weapons/bite.ogg' + gold_core_spawnable = 1 + //Space shark aren't affected by cold. + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + maxbodytemp = 1500 + + faction = list("shark") + +/mob/living/simple_animal/hostile/shark/Process_Spacemove(var/movement_dir = 0) + return 1 //No drifting in space for space sharks....either! + +/mob/living/simple_animal/hostile/shark/FindTarget() + . = ..() + if(.) + emote("me", 1, "growls at [.]!") + +/mob/living/simple_animal/hostile/shark/AttackingTarget() + . =..() + var/mob/living/carbon/L = . + if(istype(L)) + if(prob(25)) + L.Knockdown(20) + L.visible_message("\the [src] knocks down \the [L]!") + + +/mob/living/simple_animal/hostile/shark/laser + name = "Laser-Shark" + desc = "NOW we've jumped the shark." + icon_state = "lasershark" + icon_living = "lasershark" + icon_dead = "lasershark_dead" + icon_gib = "carp_gib" + ranged = 1 + retreat_distance = 3 + minimum_distance = 0 //Between shots they can and will close in to nash + projectiletype = /obj/item/projectile/beam/laser/heavylaser + projectilesound = 'sound/weapons/lasercannonfire.ogg' + maxHealth = 50 + health = 50 + +/mob/living/simple_animal/hostile/shark/kawaii + name = "Kawaii Shark" + desc = "Senpai~ Notice me.." + icon_state = "kawaiishark" + icon_living = "kawaiishark" + icon_dead = "kawaiishark_dead" + speak = list("Oh Senpai","Notice me senpai!","Oh my...","Kawaii~") + speak_emote = list("lovingly says","says") + speak_chance = 2 + turns_per_move = 3 + butcher_results = list(/mob/living/simple_animal/butterfly = 3) + maxHealth = 50 + health = 50 + maxbodytemp = INFINITY + + harm_intent_damage = 0 + melee_damage_lower = 0 + melee_damage_upper = 0 + attacktext = "violently hugs" + vision_range = 0 + +/mob/living/simple_animal/hostile/shark/kawaii/death() + say("Senpai, you noticed~!") + LoseAggro() + ..() + walk(src, 0) diff --git a/code/modules/pool/pool_controller.dm b/code/modules/pool/pool_controller.dm new file mode 100644 index 0000000000..681adb0ef3 --- /dev/null +++ b/code/modules/pool/pool_controller.dm @@ -0,0 +1,422 @@ +#define POOL_NO_OVERDOSE_MEDICINE_MAX 5 //max units of no-overdose medicine to allow mobs to have through duplication + +//Originally stolen from paradise. Credits to tigercat2000. +//Modified a lot by Kokojo and Tortellini Tony for hippiestation. +//Heavily refactored by tgstation +/obj/machinery/pool + icon = 'icons/obj/machines/pool.dmi' + anchored = TRUE + resistance_flags = INDESTRUCTIBLE + +/obj/machinery/pool/controller + name = "\improper Pool Controller" + desc = "An advanced substance generation and fluid tank management system that can refill the contents of a pool to a completely different substance in minutes." + icon_state = "poolc_3" + density = TRUE + use_power = TRUE + idle_power_usage = 75 + /// How far it scans for pool objects + var/scan_range = 6 + /// Is pool mist currently on? + var/mist_state = FALSE + /// Linked mist effects + var/list/obj/effect/mist/linked_mist = list() + /// Pool turfs + var/list/turf/open/pool/linked_turfs = list() + /// All mobs in pool + var/list/mob/living/mobs_in_pool = list() + /// Is the pool bloody? + var/bloody = 0 + /// Last time we process_reagents()'d + var/last_reagent_process = 0 + /// Maximum amount we will take from a beaker + var/max_beaker_transfer = 100 + /// Minimum amount of a reagent for it to work on us + var/min_reagent_amount = 10 + /// ADMINBUS ONLY - WHETHER OR NOT WE HAVE NOREACT ;) + var/noreact_reagents = FALSE + /// how fast in deciseconds between reagent processes + var/reagent_tick_interval = 5 + /// Can we use unsafe temperatures + var/temperature_unlocked = FALSE + /// See __DEFINES/pool.dm, temperature defines + var/temperature = POOL_NORMAL + /// Whether or not the pool can be drained + var/drainable = FALSE + // Whether or not the pool is drained + var/drained = FALSE + /// Pool drain + var/obj/machinery/pool/drain/linked_drain + /// Pool filter + var/obj/machinery/pool/filter/linked_filter + /// Next world.time you can interact with settings + var/interact_delay = 0 + /// Airlock style shocks + var/shocked = FALSE + /// Old reagent color, used to determine if update_color needs to reset colors. + var/old_rcolor + /// Just to prevent spam + var/draining = FALSE + /// Reagent blacklisting + var/respect_reagent_blacklist = TRUE + +/obj/machinery/pool/controller/examine(mob/user) + . = ..() + . += "Alt click to drain reagents." + +/obj/machinery/pool/controller/Initialize() + . = ..() + START_PROCESSING(SSfastprocess, src) + create_reagents(1000) + if(noreact_reagents) + reagents.reagents_holder_flags |= NO_REACT + wires = new /datum/wires/poolcontroller(src) + scan_things() + +/obj/machinery/pool/controller/Destroy() + STOP_PROCESSING(SSprocessing, src) + linked_drain = null + linked_filter = null + linked_turfs.Cut() + mobs_in_pool.Cut() + return ..() + +/obj/machinery/pool/controller/proc/scan_things() + var/list/cached = range(scan_range, src) + for(var/turf/open/pool/W in cached) + linked_turfs += W + W.controller = src + for(var/obj/machinery/pool/drain/pooldrain in cached) + linked_drain = pooldrain + linked_drain.controller = src + break + for(var/obj/machinery/pool/filter/F in cached) + linked_filter = F + linked_filter.controller = src + break + +/obj/machinery/pool/controller/emag_act(mob/user) + . = ..() + if(!(obj_flags & EMAGGED)) //If it is not already emagged, emag it. + to_chat(user, "You disable the [src]'s safety features.") + do_sparks(5, TRUE, src) + obj_flags |= EMAGGED + temperature_unlocked = TRUE + drainable = TRUE + log_game("[key_name(user)] emagged [src]") + message_admins("[key_name_admin(user)] emagged [src]") + else + to_chat(user, "The interface on [src] is already too damaged to short it again.") + return + +/obj/machinery/pool/controller/AltClick(mob/user) + . = ..() + if(!isliving(user) || !user.Adjacent(src) || !user.CanReach(src) || user.IsStun() || user.IsKnockdown() || user.incapacitated()) + return FALSE + visible_message("[user] starts to drain [src]!") + draining = TRUE + if(!do_after(user, 50, target = src)) + draining = FALSE + return TRUE + reagents.remove_all(INFINITY) + visible_message("[user] drains [src].") + say("Reagents cleared.") + update_color() + draining = FALSE + return TRUE + +/obj/machinery/pool/controller/attackby(obj/item/W, mob/user) + if(shocked && !(stat & NOPOWER)) + shock(user,50) + if(stat & (BROKEN)) + return + if(istype(W,/obj/item/reagent_containers)) + if(W.reagents.total_volume) //check if there's reagent + user.visible_message("[user] is feeding [src] some chemicals from [W].") + if(do_after(user, 50, target = src)) + for(var/datum/reagent/R in W.reagents.reagent_list) + if(R.type in GLOB.blacklisted_pool_reagents) + to_chat(user, "[src] cannot accept [R.name].") + return + if(R.reagent_state == SOLID) + to_chat(user, "The pool cannot accept reagents in solid form!.") + return + reagents.clear_reagents() + // This also reacts them. No nitroglycerin deathpools, sorry gamers :( + W.reagents.trans_to(reagents, max_beaker_transfer) + user.visible_message("[src] makes a slurping noise.", "All of the contents of [W] are quickly suctioned out by the machine!= min_reagent_amount) && (!respect_reagent_blacklist || R.can_synth)) + reagent_names += R.name + else + reagents.remove_reagent(R.type, INFINITY) + rejected += R.name + if(length(reagent_names)) + reagent_names = english_list(reagent_names) + var/msg = "POOL: [key_name(user)] has changed [src]'s chems to [reagent_names]" + log_game(msg) + message_admins(msg) + if(length(rejected)) + rejected = english_list(rejected) + to_chat(user, "[src] rejects the following chemicals as they do not have at least [min_reagent_amount] units of volume: [rejected]") + update_color() + else + to_chat(user, "[src] beeps unpleasantly as it rejects the beaker. Why are you trying to feed it an empty beaker?") + return + else if(panel_open && is_wire_tool(W)) + wires.interact(user) + else + return ..() + +/obj/machinery/pool/controller/screwdriver_act(mob/living/user, obj/item/W) + . = ..() + if(.) + return TRUE + cut_overlays() + panel_open = !panel_open + to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.") + W.play_tool_sound(src) + if(panel_open) + add_overlay("wires") + return TRUE + +//procs +/obj/machinery/pool/controller/proc/shock(mob/user, prb) + if(stat & (BROKEN|NOPOWER)) // unpowered, no shock + return FALSE + if(!prob(prb)) + return FALSE + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, src) + s.start() + if(electrocute_mob(user, get_area(src), src, 0.7)) + return TRUE + else + return FALSE + +/obj/machinery/pool/controller/proc/process_reagents() + if(last_reagent_process > world.time + reagent_tick_interval) + return + if(!length(reagents.reagent_list)) + return + for(var/turf/open/pool/W in linked_turfs) + for(var/mob/living/carbon/human/swimee in W) + for(var/datum/reagent/R in reagents.reagent_list) + if(R.reagent_state == SOLID) + R.reagent_state = LIQUID + if(!swimee.reagents.has_reagent(POOL_NO_OVERDOSE_MEDICINE_MAX)) + swimee.reagents.add_reagent(R.type, 0.5) //osmosis + reagents.reaction(swimee, VAPOR, 0.03) //3 percent. Need to find a way to prevent this from stacking chems at some point like the above. + for(var/obj/objects in W) + if(W.reagents) + W.reagents.reaction(objects, VAPOR, 1) + last_reagent_process = world.time + +/obj/machinery/pool/controller/process() + updateUsrDialog() + if(stat & (NOPOWER|BROKEN)) + return + if(drained) + return + process_pool() + process_reagents() + +/obj/machinery/pool/controller/proc/process_pool() + if(drained) + return + for(var/mob/living/M in mobs_in_pool) + switch(temperature) //Apply different effects based on what the temperature is set to. + if(POOL_SCALDING) //Scalding + M.adjust_bodytemperature(50,0,500) + if(POOL_WARM) //Warm + M.adjust_bodytemperature(20,0,360) //Heats up mobs till the termometer shows up + //Normal temp does nothing, because it's just room temperature water. + if(POOL_COOL) + M.adjust_bodytemperature(-20,250) //Cools mobs till the termometer shows up + if(POOL_FRIGID) //Freezing + M.adjust_bodytemperature(-60) //cool mob at -35k per cycle, less would not affect the mob enough. + if(M.bodytemperature <= 50 && !M.stat) + M.apply_status_effect(/datum/status_effect/freon) + if(ishuman(M)) + var/mob/living/carbon/human/drownee = M + if(!drownee || drownee.stat == DEAD) + return + if(drownee.resting && !drownee.internal) + if(drownee.stat != CONSCIOUS) + drownee.adjustOxyLoss(9) + else + drownee.adjustOxyLoss(4) + if(prob(35)) + to_chat(drownee, "You're drowning!") + +/obj/machinery/pool/controller/proc/set_bloody(state) + if(bloody == state) + return + bloody = state + update_color() + +/obj/machinery/pool/controller/proc/update_color() + if(drained) + return + var/rcolor + if(reagents.reagent_list.len) + rcolor = mix_color_from_reagents(reagents.reagent_list) + if(rcolor == old_rcolor) + return // small performance upgrade hopefully? + old_rcolor = rcolor + for(var/X in linked_turfs) + var/turf/open/pool/color1 = X + if(bloody) + if(rcolor) + var/thecolor = BlendRGB(rgb(150, 20, 20), rcolor, 0.5) + color1.watereffect.add_atom_colour(thecolor, FIXED_COLOUR_PRIORITY) + color1.watertop.add_atom_colour(thecolor, FIXED_COLOUR_PRIORITY) + else + var/thecolor = rgb(150, 20, 20) + color1.watereffect.add_atom_colour(thecolor, FIXED_COLOUR_PRIORITY) + color1.watertop.add_atom_colour(thecolor, FIXED_COLOUR_PRIORITY) + else if(!bloody && rcolor) + color1.watereffect.add_atom_colour(rcolor, FIXED_COLOUR_PRIORITY) + color1.watertop.add_atom_colour(rcolor, FIXED_COLOUR_PRIORITY) + else + color1.watereffect.remove_atom_colour(FIXED_COLOUR_PRIORITY) + color1.watertop.remove_atom_colour(FIXED_COLOUR_PRIORITY) + +/obj/machinery/pool/controller/proc/update_temp() + if(mist_state) + if(temperature < POOL_SCALDING) + mist_off() + else + if(temperature == POOL_SCALDING) + mist_on() + update_icon() + +/obj/machinery/pool/controller/update_icon() + . = ..() + icon_state = "poolc_[temperature]" + +/obj/machinery/pool/controller/proc/CanUpTemp(mob/user) + if(temperature == POOL_WARM && (temperature_unlocked || issilicon(user) || IsAdminGhost(user)) || temperature < POOL_WARM) + return TRUE + return FALSE + +/obj/machinery/pool/controller/proc/CanDownTemp(mob/user) + if(temperature == POOL_COOL && (temperature_unlocked || issilicon(user) || IsAdminGhost(user)) || temperature > POOL_COOL) + return TRUE + return FALSE + +/obj/machinery/pool/controller/Topic(href, href_list) + if(..()) + return + if(interact_delay > world.time) + return + if(href_list["IncreaseTemp"]) + if(CanUpTemp(usr)) + visible_message("[usr] presses a button on [src].") + temperature++ + update_temp() + var/msg = "POOL: [key_name(usr)] increased [src]'s pool temperature at [COORD(src)] to [temperature]" + log_game(msg) + message_admins(msg) + interact_delay = world.time + 15 + if(href_list["DecreaseTemp"]) + if(CanDownTemp(usr)) + visible_message("[usr] presses a button on [src].") + temperature-- + update_temp() + var/msg = "POOL: [key_name(usr)] decreased [src]'s pool temperature at [COORD(src)] to [temperature]" + log_game(msg) + message_admins(msg) + interact_delay = world.time + 15 + if(href_list["Activate Drain"]) + if((drainable || issilicon(usr) || IsAdminGhost(usr)) && !linked_drain.active) + var/msg = "POOL: [key_name(usr)] activated [src]'s pool drain in [linked_drain.filling? "FILLING" : "DRAINING"] mode at [COORD(src)]" + log_game(msg) + message_admins(msg) + visible_message("[usr] presses a button on [src].") + mist_off() + interact_delay = world.time + 60 + linked_drain.active = TRUE + linked_drain.cycles_left = 75 + if(!linked_drain.filling) + new /obj/effect/whirlpool(linked_drain.loc) + temperature = POOL_NORMAL + else + new /obj/effect/waterspout(linked_drain.loc) + temperature = POOL_NORMAL + update_temp() + bloody = FALSE + updateUsrDialog() + +/obj/machinery/pool/controller/proc/temp2text() + switch(temperature) + if(POOL_FRIGID) + return "Frigid" + if(POOL_COOL) + return "Cool" + if(POOL_NORMAL) + return "Normal" + if(POOL_WARM) + return "Warm" + if(POOL_SCALDING) + return "Scalding" + else + return "Outside of possible range." + +/obj/machinery/pool/controller/ui_interact(mob/user) + . = ..() + if(.) + return + if(shocked && !(stat & NOPOWER)) + shock(user,50) + if(panel_open && !isAI(user)) + return wires.interact(user) + if(stat & (NOPOWER|BROKEN)) + return + var/datum/browser/popup = new(user, "Pool Controller", name, 300, 450) + var/dat = "" + if(interact_delay > world.time) + dat += "[round((interact_delay - world.time)/10, 0.1)] seconds left until [src] can operate again.
" + dat += text({" +

Temperature

+
+ Current temperature: [temp2text()]
+ [CanUpTemp(user) ? "Increase Temperature
" : "Increase Temperature
"] + [CanDownTemp(user) ? "Decrease Temperature
" : "Decrease Temperature
"] +
+

Drain

+
+ Drain status: [(issilicon(user) || IsAdminGhost(user) || drainable) ? "Enabled" : "Disabled"] +
Pool status: "}) + if(!drained) + dat += "Full
" + else + dat += "Drained
" + if((issilicon(user) || IsAdminGhost(user) || drainable) && !linked_drain.active) + dat += "[drained ? "Fill" : "Drain"] Pool
" + popup.set_content(dat) + popup.open() + +/obj/machinery/pool/controller/proc/reset(wire) + switch(wire) + if(WIRE_SHOCK) + if(!wires.is_cut(wire)) + shocked = FALSE + +/obj/machinery/pool/controller/proc/mist_on() //Spawn /obj/effect/mist (from the shower) on all linked pool tiles + if(mist_state) + return + mist_state = TRUE + for(var/X in linked_turfs) + var/turf/open/pool/W = X + if(W.filled) + var/M = new /obj/effect/mist(W) + linked_mist += M + +/obj/machinery/pool/controller/proc/mist_off() //Delete all /obj/effect/mist from all linked pool tiles. + for(var/M in linked_mist) + qdel(M) + mist_state = FALSE diff --git a/code/modules/pool/pool_drain.dm b/code/modules/pool/pool_drain.dm new file mode 100644 index 0000000000..940f7cd219 --- /dev/null +++ b/code/modules/pool/pool_drain.dm @@ -0,0 +1,160 @@ +/obj/machinery/pool/drain + name = "drain" + icon_state = "drain" + desc = "A suction system to remove the contents of the pool, and sometimes small objects. Do not insert fingers." + anchored = TRUE + /// Active/on? + var/active = FALSE + /// Filling or draining + var/filling = FALSE + /// Drain item suction range + var/item_suction_range = 2 + /// Fill mode knock away range + var/fill_push_range = 6 + /// Drain mode suction range + var/drain_suck_range = 6 + /// Parent controller + var/obj/machinery/pool/controller/controller + /// Cycles left for fill/drain while active + var/cycles_left = 0 + /// Mobs we are swirling around + var/list/whirling_mobs + /// Suck in once per x ticks + var/suck_in_once_per = 3 + + var/cooldown + +/obj/machinery/pool/drain/Initialize() + START_PROCESSING(SSfastprocess, src) + whirling_mobs = list() + return ..() + +/obj/machinery/pool/drain/Destroy() + STOP_PROCESSING(SSfastprocess, src) + controller.linked_drain = null + controller = null + whirling_mobs = null + return ..() + +/obj/machinery/pool/drain/proc/is_in_our_pool(atom/A) + . = FALSE + if(istype(A.loc, /turf/open/pool)) + var/turf/open/pool/P = A.loc + if(P.controller == controller) + . = TRUE + +// This should probably start using move force sometime in the future but I'm lazy. +/obj/machinery/pool/drain/process() + if(!filling) + for(var/obj/item/I in range(min(item_suction_range, 10), src)) + if(!I.anchored && (I.w_class <= WEIGHT_CLASS_SMALL)) + step_towards(I, src) + if((I.w_class <= WEIGHT_CLASS_TINY) && (get_dist(I, src) == 0)) + I.forceMove(controller.linked_filter) + if(active) + if(filling) + if(cycles_left-- > 0) + playsound(src, 'sound/effects/fillingwatter.ogg', 100, TRUE) + for(var/obj/O in orange(min(fill_push_range, 10), src)) + if(!O.anchored && is_in_our_pool(O)) + step_away(O, src) + for(var/mob/M in orange(min(fill_push_range, 10), src)) //compiler fastpath apparently? + if(!M.anchored && isliving(M) && is_in_our_pool(M)) + step_away(M, src) + else + for(var/turf/open/pool/P in controller.linked_turfs) + P.filled = TRUE + P.update_icon() + for(var/obj/effect/waterspout/S in range(1, src)) + qdel(S) + controller.drained = FALSE + if(controller.bloody < 1000) + controller.bloody /= 2 + else + controller.bloody /= 4 + controller.update_color() + filling = FALSE + active = FALSE + else + if(cycles_left-- > 0) + playsound(src, 'sound/effects/pooldrain.ogg', 100, TRUE) + playsound(src, "water_wade", 60, TRUE) + for(var/obj/O in orange(min(drain_suck_range, 10), src)) + if(!O.anchored && is_in_our_pool(O)) + step_towards(O, src) + for(var/mob/M in orange(min(drain_suck_range, 10), src)) + if(isliving(M) && !M.anchored && is_in_our_pool(M)) + if(!(cycles_left % suck_in_once_per)) + step_towards(M, src) + whirl_mob(M) + if(ishuman(M) && (get_dist(M, src) <= 1)) + var/mob/living/carbon/human/H = M + playsound(src, pick('sound/misc/crack.ogg','sound/misc/crunch.ogg'), 50, TRUE) + if(H.lying) //down for any reason + H.adjustBruteLoss(2) + to_chat(H, "You're caught in the drain!") + else + H.apply_damage(2.5, BRUTE, pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) //drain should only target the legs + to_chat(H, "Your legs are caught in the drain!") + else + for(var/turf/open/pool/P in controller.linked_turfs) + P.filled = FALSE + P.update_icon() + for(var/obj/effect/whirlpool/W in range(1, src)) + qdel(W) + controller.drained = TRUE + controller.mist_off() + active = FALSE + filling = TRUE + +/// dangerous proc don't fuck with, admins +/obj/machinery/pool/drain/proc/whirl_mob(mob/living/L, duration = 8, delay = 1) + set waitfor = FALSE + if(whirling_mobs[L]) + return + whirling_mobs[L] = TRUE + for(var/i in 1 to min(duration, 100)) + L.setDir(turn(L.dir, 90)) + sleep(delay) + if(QDELETED(L)) + break + if(QDELETED(src)) + return + whirling_mobs -= L + +/obj/machinery/pool/filter + name = "Filter" + icon_state = "filter" + desc = "The part of the pool where all the IDs, ATV keys, and pens, and other dangerous things get trapped." + var/obj/machinery/pool/controller/controller + +/obj/machinery/pool/filter/Destroy() + controller.linked_filter = null + controller = null + return ..() + +/obj/machinery/pool/filter/emag_act(mob/living/user) + . = ..() + if(!(obj_flags & EMAGGED)) + to_chat(user, "You disable the [src]'s shark filter! Run!") + obj_flags |= EMAGGED + do_sparks(5, TRUE, src) + icon_state = "filter_b" + addtimer(CALLBACK(src, /obj/machinery/pool/filter/proc/spawn_shark), 50) + var/msg = "[key_name(user)] emagged the pool filter and spawned a shark" + log_game(msg) + message_admins(msg) + +/obj/machinery/pool/filter/proc/spawn_shark() + if(prob(50)) + new /mob/living/simple_animal/hostile/shark(loc) + else + if(prob(50)) + new /mob/living/simple_animal/hostile/shark/kawaii(loc) + else + new /mob/living/simple_animal/hostile/shark/laser(loc) + +/obj/machinery/pool/filter/attack_hand(mob/user) + to_chat(user, "You search the filter.") + for(var/obj/O in contents) + O.forceMove(loc) diff --git a/code/modules/pool/pool_effects.dm b/code/modules/pool/pool_effects.dm new file mode 100644 index 0000000000..8d5192cd30 --- /dev/null +++ b/code/modules/pool/pool_effects.dm @@ -0,0 +1,29 @@ +/obj/effect/splash + name = "splash" + desc = "Wataaa!." + icon = 'icons/turf/pool.dmi' + icon_state = "splash" + layer = ABOVE_ALL_MOB_LAYER + +/obj/effect/whirlpool + name = "Whirlpool" + icon = 'icons/effects/96x96.dmi' + icon_state = "whirlpool" + layer = 5 + anchored = TRUE + mouse_opacity = 0 + pixel_x = -32 + pixel_y = -32 + alpha = 90 + +/obj/effect/waterspout + name = "Waterspout" + icon = 'icons/effects/96x96.dmi' + icon_state = "waterspout" + color = "#3399AA" + layer = 5 + anchored = TRUE + mouse_opacity = 0 + pixel_x = -32 + pixel_y = -32 + alpha = 120 diff --git a/code/modules/pool/pool_main.dm b/code/modules/pool/pool_main.dm new file mode 100644 index 0000000000..2b260b5c0b --- /dev/null +++ b/code/modules/pool/pool_main.dm @@ -0,0 +1,191 @@ +/turf/open/pool + icon = 'icons/turf/pool.dmi' + name = "poolwater" + desc = "You're safer here than in the deep." + icon_state = "pool_tile" + heat_capacity = INFINITY + var/filled = TRUE + var/next_splash = 0 + var/obj/machinery/pool/controller/controller + var/obj/effect/overlay/water/watereffect + var/obj/effect/overlay/water/top/watertop + +/turf/open/pool/Initialize(mapload) + . = ..() + update_icon() + +/turf/open/pool/Destroy() + if(controller) + controller.linked_turfs -= src + controller = null + QDEL_NULL(watereffect) + QDEL_NULL(watertop) + return ..() + +/turf/open/pool/update_icon() + . = ..() + if(!filled) + name = "drained pool" + desc = "No diving!" + QDEL_NULL(watereffect) + QDEL_NULL(watertop) + else + name = "poolwater" + desc = "You're safer here than in the deep." + watereffect = new /obj/effect/overlay/water(src) + watertop = new /obj/effect/overlay/water/top(src) + +/obj/effect/overlay/water + name = "water" + icon = 'icons/turf/pool.dmi' + icon_state = "bottom" + density = FALSE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + layer = ABOVE_MOB_LAYER + anchored = TRUE + resistance_flags = INDESTRUCTIBLE + +/obj/effect/overlay/water/top + icon_state = "top" + layer = BELOW_MOB_LAYER + +// Mousedrop hook to normal turfs to get out of pools. +/turf/open/MouseDrop_T(atom/from, mob/user) + // I could make this /open/floor and not have the !istype but ehh - kev + if(isliving(from) && HAS_TRAIT(from, TRAIT_SWIMMING) && isliving(user) && ((user == from) || user.CanReach(from)) && !user.IsStun() && !user.IsKnockdown() && !user.incapacitated() && !istype(src, /turf/open/pool)) + var/mob/living/L = from + //The element only exists if you're on water and a living mob, so let's skip those checks. + var/pre_msg + var/post_msg + if(user == from) + pre_msg = "[L] is getting out of the pool." + post_msg = "[L] gets out of the pool." + else + pre_msg = "[L] is being pulled out of the pool by [user]." + post_msg = "[user] pulls [L] out of the pool." + L.visible_message(pre_msg) + if(do_mob(user, L, 20)) + L.visible_message(post_msg) + L.forceMove(src) + else + return ..() + +// Exit check +/turf/open/pool/Exit(atom/movable/AM, atom/newloc) + if(!AM.has_gravity(src)) + return ..() + if(isliving(AM) || isstructure(AM)) + if(AM.throwing) + return ..() //WHEEEEEEEEEEE + if(istype(AM, /obj/structure) && isliving(AM.pulledby)) + return ..() //people pulling stuff out of pool + if(!ishuman(AM)) + return ..() //human weak, monkey (and anyone else) ook ook eek eek strong + if(isliving(AM) && (locate(/obj/structure/pool/ladder) in src)) + return ..() //climbing out + return istype(newloc, /turf/open/pool) + return ..() + +// Exited logic +/turf/open/pool/Exited(atom/A, atom/newLoc) + . = ..() + if(isliving(A)) + var/turf/open/pool/P = newLoc + if(!istype(P) || (P.controller != controller)) + controller?.mobs_in_pool -= A + +// Entered logic +/turf/open/pool/Entered(atom/movable/AM, atom/oldloc) + if(istype(AM, /obj/effect/decal/cleanable)) + var/obj/effect/decal/cleanable/C = AM + if(prob(C.bloodiness)) + controller.set_bloody(TRUE) + QDEL_IN(AM, 25) + animate(AM, alpha = 10, time = 20) + return ..() + if(!AM.has_gravity(src)) + return ..() + if(isliving(AM)) + var/mob/living/victim = AM + if(!HAS_TRAIT(victim, TRAIT_SWIMMING)) //poor guy not swimming time to dunk them! + victim.AddElement(/datum/element/swimming) + controller.mobs_in_pool += victim + if(locate(/obj/structure/pool/ladder) in src) //safe climbing + return + if(iscarbon(AM)) //FUN TIME! + var/mob/living/carbon/H = victim + if(filled) + if (H.wear_mask && H.wear_mask.flags_cover & MASKCOVERSMOUTH) + H.visible_message("[H] falls in the water!", + "You fall in the water!") + playsound(src, 'sound/effects/splash.ogg', 60, TRUE, 1) + H.Knockdown(20) + return + else + H.Knockdown(60) + H.adjustOxyLoss(5) + H.emote("cough") + H.visible_message("[H] falls in and takes a drink!", + "You fall in and swallow some water!") + playsound(src, 'sound/effects/splash.ogg', 60, TRUE, 1) + else if(!H.head || !(H.head.armor.getRating("melee") > 20)) + if(prob(75)) + H.visible_message("[H] falls in the drained pool!", + "You fall in the drained pool!") + H.adjustBruteLoss(7) + H.Knockdown(80) + playsound(src, 'sound/effects/woodhit.ogg', 60, TRUE, 1) + else + H.visible_message("[H] falls in the drained pool, and cracks his skull!", + "You fall in the drained pool, and crack your skull!") + H.apply_damage(15, BRUTE, "head") + H.Knockdown(200) // This should hurt. And it does. + playsound(src, 'sound/effects/woodhit.ogg', 60, TRUE, 1) + playsound(src, 'sound/misc/crack.ogg', 100, TRUE) + else + H.visible_message("[H] falls in the drained pool, but had an helmet!", + "You fall in the drained pool, but you had an helmet!") + H.Knockdown(40) + playsound(src, 'sound/effects/woodhit.ogg', 60, TRUE, 1) + else if(filled) + victim.adjustStaminaLoss(1) + playsound(src, "water_wade", 20, TRUE) + return ..() + +/turf/open/pool/MouseDrop_T(atom/from, mob/user) + . = ..() + if(!isliving(from)) + return + var/mob/living/victim = from + if(user.stat || user.lying || !Adjacent(user) || !from.Adjacent(user) || !iscarbon(user) || !victim.has_gravity(src) || HAS_TRAIT(victim, TRAIT_SWIMMING)) + return + var/victimname = victim == user? "themselves" : "[victim]" + var/starttext = victim == user? "[user] is descending into [src]." : "[user] is lowering [victim] into [src]." + user.visible_message("[starttext]") + if(do_mob(user, victim, 20)) + user.visible_message("[user] lowers [victimname] into [src].") + victim.AddElement(/datum/element/swimming) //make sure they have it so they don't fall/whatever + victim.forceMove(src) + +/turf/open/pool/attackby(obj/item/W, mob/living/user) + if(istype(W, /obj/item/mop) && filled) + W.reagents.add_reagent("water", 5) + to_chat(user, "You wet [W] in [src].") + playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE) + else + return ..() + +/turf/open/pool/attack_hand(mob/living/user) + . = ..() + if(.) + return + if((user.loc != src) && !user.IsStun() && !user.IsKnockdown() && !user.incapacitated() && Adjacent(user) && HAS_TRAIT(user, TRAIT_SWIMMING) && filled && (next_splash < world.time)) + playsound(src, 'sound/effects/watersplash.ogg', 8, TRUE, 1) + next_splash = world.time + 25 + var/obj/effect/splash/S = new(src) + animate(S, alpha = 0, time = 8) + QDEL_IN(S, 10) + for(var/mob/living/carbon/human/H in src) + if(!H.wear_mask && (H.stat == CONSCIOUS)) + H.emote("cough") + H.adjustStaminaLoss(4) diff --git a/code/modules/pool/pool_noodles.dm b/code/modules/pool/pool_noodles.dm new file mode 100644 index 0000000000..6118354792 --- /dev/null +++ b/code/modules/pool/pool_noodles.dm @@ -0,0 +1,32 @@ +//Pool noodles + +/obj/item/toy/poolnoodle + icon = 'icons/obj/toy.dmi' + icon_state = "noodle" + name = "pool noodle" + desc = "A strange, bulky, bendable toy that can annoy people." + force = 0 + color = "#000000" + w_class = WEIGHT_CLASS_SMALL + throwforce = 1 + throw_speed = 10 //weeee + hitsound = 'sound/weapons/tap.ogg' + attack_verb = list("flogged", "poked", "jabbed", "slapped", "annoyed") + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' + +/obj/item/toy/poolnoodle/attack(target as mob, mob/living/user as mob) + . = ..() + user.spin(prob(20)? 16 : 8, 1) + +/obj/item/toy/poolnoodle/red + item_state = "noodlered" + color = "#ff4c4c" + +/obj/item/toy/poolnoodle/blue + item_state = "noodleblue" + color = "#3232ff" + +/obj/item/toy/poolnoodle/yellow + item_state = "noodleyellow" + color = "#ffff66" diff --git a/code/modules/pool/pool_structures.dm b/code/modules/pool/pool_structures.dm new file mode 100644 index 0000000000..92350abf44 --- /dev/null +++ b/code/modules/pool/pool_structures.dm @@ -0,0 +1,159 @@ +/obj/structure/pool + name = "pool" + icon = 'icons/obj/machines/pool.dmi' + anchored = TRUE + resistance_flags = UNACIDABLE|INDESTRUCTIBLE + +/obj/structure/pool/ladder + name = "Ladder" + icon_state = "ladder" + desc = "Are you getting in or are you getting out?." + layer = ABOVE_MOB_LAYER + dir = EAST + +/obj/structure/pool/ladder/attack_hand(mob/living/user) + . = ..() + if(.) + return + if(!HAS_TRAIT(user, TRAIT_SWIMMING)) + if(user.CanReach(src)) + user.AddElement(/datum/element/swimming) + user.forceMove(get_step(src, dir)) + else + if(user.loc == loc) + user.forceMove(get_step(src, turn(dir, 180))) //If this moves them out the element cleans up after itself. + +/obj/structure/pool/Rboard + name = "JumpBoard" + density = FALSE + icon_state = "boardright" + desc = "The less-loved portion of the jumping board." + dir = EAST + +/obj/structure/pool/Lboard + name = "JumpBoard" + icon_state = "boardleft" + desc = "Get on there to jump!" + layer = FLY_LAYER + dir = WEST + var/jumping = FALSE + var/timer + +/obj/structure/pool/Lboard/proc/backswim() + if(jumping) + for(var/mob/living/jumpee in loc) //hackzors. + playsound(jumpee, 'sound/effects/splash.ogg', 60, TRUE, 1) + if(!HAS_TRAIT(jumpee, TRAIT_SWIMMING)) + jumpee.AddElement(/datum/element/swimming) + jumpee.Stun(2) + +/obj/structure/pool/Lboard/proc/reset_position(mob/user, initial_layer, initial_px, initial_py) + user.layer = initial_layer + user.pixel_x = initial_px + user.pixel_y = initial_py + +/obj/structure/pool/Lboard/attack_hand(mob/living/user) + if(iscarbon(user)) + var/mob/living/carbon/jumper = user + if(jumping) + to_chat(user, "Someone else is already making a jump!") + return + var/turf/T = get_turf(src) + if(HAS_TRAIT(user, TRAIT_SWIMMING)) + return + else + if(Adjacent(jumper)) + jumper.visible_message("[user] climbs up \the [src]!", \ + "You climb up \the [src] and prepares to jump!") + jumper.Stun(40) + jumping = TRUE + var/original_layer = jumper.layer + var/original_px = jumper.pixel_x + var/original_py = jumper.pixel_y + jumper.layer = RIPPLE_LAYER + jumper.pixel_x = 3 + jumper.pixel_y = 7 + jumper.dir = WEST + jumper.AddElement(/datum/element/swimming) + sleep(1) + jumper.forceMove(T) + addtimer(CALLBACK(src, .proc/dive, jumper, original_layer, original_px, original_py), 10) + +/obj/structure/pool/Lboard/proc/dive(mob/living/carbon/jumper, original_layer, original_px, original_py) + switch(rand(1, 100)) + if(1 to 20) + jumper.visible_message("[jumper] goes for a small dive!", \ + "You go for a small dive.") + sleep(15) + backswim() + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 1, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + + if(21 to 40) + jumper.visible_message("[jumper] goes for a dive!", \ + "You're going for a dive!") + sleep(20) + backswim() + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 2, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + + if(41 to 60) + jumper.visible_message("[jumper] goes for a long dive! Stay far away!", \ + "You're going for a long dive!!") + sleep(25) + backswim() + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 3, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + + if(61 to 80) + jumper.visible_message("[jumper] goes for an awesome dive! Don't stand in [jumper.p_their()] way!", \ + "You feel like this dive will be awesome") + sleep(30) + backswim() + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 4, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + if(81 to 91) + sleep(20) + backswim() + jumper.visible_message("[jumper] misses [jumper.p_their()] step!", \ + "You misstep!") + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 0, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + jumper.Knockdown(100) + jumper.adjustBruteLoss(10) + + if(91 to 100) + jumper.visible_message("[jumper] is preparing for the legendary dive! Can [jumper.p_they()] make it?", \ + "You start preparing for a legendary dive!") + jumper.SpinAnimation(7,1) + + sleep(30) + if(prob(75)) + backswim() + jumper.visible_message("[jumper] fails!", \ + "You can't quite do it!") + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 1, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + else + jumper.fire_stacks = min(1,jumper.fire_stacks + 1) + jumper.IgniteMob() + sleep(5) + backswim() + jumper.visible_message("[jumper] bursts into flames of pure awesomness!", \ + "No one can stop you now!") + var/atom/throw_target = get_edge_target_turf(src, dir) + jumper.throw_at(throw_target, 6, 1, callback = CALLBACK(src, .proc/on_finish_jump, jumper)) + addtimer(CALLBACK(src, .proc/togglejumping), 35) + reset_position(jumper, original_layer, original_px, original_py) + +/obj/structure/pool/Lboard/proc/togglejumping() + jumping = FALSE + +/obj/structure/pool/Lboard/proc/on_finish_jump(mob/living/victim) + if(istype(victim.loc, /turf/open/pool)) + var/turf/open/pool/P = victim.loc + if(!P.filled) //you dun fucked up now + to_chat(victim, "That was stupid of you..") + victim.visible_message("[victim] smashes into the ground!") + victim.apply_damage(50) + victim.Knockdown(200) diff --git a/code/modules/pool/pool_wires.dm b/code/modules/pool/pool_wires.dm new file mode 100644 index 0000000000..7341c503a9 --- /dev/null +++ b/code/modules/pool/pool_wires.dm @@ -0,0 +1,59 @@ +#define POOL_WIRE_DRAIN "drain" +#define POOL_WIRE_TEMP "temp" + + +/datum/wires/poolcontroller + holder_type = /obj/machinery/pool/controller + proper_name = "Pool" + +/datum/wires/poolcontroller/New(atom/holder) + wires = list( + POOL_WIRE_DRAIN, WIRE_SHOCK, WIRE_ZAP, POOL_WIRE_TEMP + ) + add_duds(3) + ..() + +/datum/wires/poolcontroller/interactable(mob/user) + var/obj/machinery/pool/controller/P = holder + if(P.panel_open) + return TRUE + +/datum/wires/poolcontroller/get_status() + var/obj/machinery/pool/controller/P = holder + var/list/status = list() + status += "The blue light is [P.drainable ? "on" : "off"]." + status += "The red light is [P.temperature_unlocked ? "on" : "off"]." + status += "The yellow light is [P.shocked ? "on" : "off"]." + return status + +/datum/wires/poolcontroller/on_pulse(wire) + var/obj/machinery/pool/controller/P = holder + switch(wire) + if(POOL_WIRE_DRAIN) + P.drainable = FALSE + if(POOL_WIRE_TEMP) + P.temperature_unlocked = FALSE + if(WIRE_SHOCK) + P.shocked = !P.shocked + addtimer(CALLBACK(P, /obj/machinery/autolathe.proc/reset, wire), 60) + +/datum/wires/poolcontroller/on_cut(wire, mend) + var/obj/machinery/pool/controller/P = holder + switch(wire) + if(POOL_WIRE_DRAIN) + if(mend) + P.drainable = FALSE + else + P.drainable = TRUE + if(POOL_WIRE_TEMP) + if(mend) + P.temperature_unlocked = FALSE + else + P.temperature_unlocked = TRUE + if(WIRE_ZAP) + P.shock(usr, 50) + if(WIRE_SHOCK) + if(mend) + P.stat &= ~NOPOWER + else + P.stat |= NOPOWER \ No newline at end of file diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 0b0d968919..21003b5e86 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -346,6 +346,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) // Pass all the gas related code an empty gas container removed = new() + damage = min(damage_archived + (DAMAGE_HARDCAP * explosion_point),damage) // hardcap any direct damage taken before doing atmos damage damage_archived = damage if(!removed || !removed.total_moles() || isspaceturf(T)) //we're in space or there is no gas to process if(takes_damage) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 4bb2d86b04..8f2adeb0c2 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -77,6 +77,8 @@ /datum/reagents/Destroy() . = ..() + //We're about to delete all reagents, so lets cleanup + addiction_list.Cut() var/list/cached_reagents = reagent_list for(var/reagent in cached_reagents) var/datum/reagent/R = reagent @@ -332,9 +334,7 @@ if(R.addiction_stage3_end to R.addiction_stage4_end) need_mob_update += R.addiction_act_stage4(C) if(R.addiction_stage4_end to INFINITY) - to_chat(C, "You feel like you've gotten over your need for [R.name].") - SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_addiction") - cached_addictions.Remove(R) + remove_addiction(R) else SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") addiction_tick++ @@ -344,6 +344,12 @@ C.update_stamina() update_total() +/datum/reagents/proc/remove_addiction(datum/reagent/R) + to_chat(my_atom, "You feel like you've gotten over your need for [R.name].") + SEND_SIGNAL(my_atom, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") + addiction_list.Remove(R) + qdel(R) + //Signals that metabolization has stopped, triggering the end of trait-based effects /datum/reagents/proc/end_metabolization(mob/living/carbon/C, keep_liverless = TRUE) var/list/cached_reagents = reagent_list @@ -762,6 +768,8 @@ R.metabolizing = FALSE R.on_mob_end_metabolize(M) R.on_mob_delete(M) + //Clear from relevant lists + addiction_list -= R qdel(R) reagent_list -= R update_total() diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm index cc63a8c692..fb4552f96b 100644 --- a/code/modules/reagents/chemistry/recipes/special.dm +++ b/code/modules/reagents/chemistry/recipes/special.dm @@ -168,7 +168,7 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related /obj/item/paper/secretrecipe name = "old recipe" - var/recipe_id = "secretsauce" + var/recipe_id = /datum/reagent/consumable/secretsauce /obj/item/paper/secretrecipe/examine(mob/user) //Extra secret if(isobserver(user)) diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm index e7f340887c..c6903ff7b4 100644 --- a/code/modules/reagents/reagent_containers/rags.dm +++ b/code/modules/reagents/reagent_containers/rags.dm @@ -53,7 +53,7 @@ SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM) return -/obj/item/reagent_containers/rag/pre_altattackby(mob/living/M, mob/living/user, params) +/obj/item/reagent_containers/rag/alt_pre_attack(mob/living/M, mob/living/user, params) if(istype(M) && user.a_intent == INTENT_HELP) user.changeNext_move(CLICK_CD_MELEE) if(M.on_fire) diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 72b2c91e4c..df1c1edd9c 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -289,6 +289,16 @@ ////////////Janitor Designs////////////// ///////////////////////////////////////// +/datum/design/broom + name = "Broom" + desc = "Just your everyday standard broom." + id = "broom" + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 600) + build_path = /obj/item/twohanded/broom + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + /datum/design/mop name = "Mop" desc = "Just your everyday standard mop." diff --git a/code/modules/research/designs/nanite_designs.dm b/code/modules/research/designs/nanite_designs.dm index 13668ba570..c72ee4fb8c 100644 --- a/code/modules/research/designs/nanite_designs.dm +++ b/code/modules/research/designs/nanite_designs.dm @@ -50,7 +50,7 @@ name = "Host Scan" desc = "The nanites display a detailed readout of a body scan to the host." id = "selfscan_nanites" - program_type = /datum/nanite_program/triggered/self_scan + program_type = /datum/nanite_program/self_scan category = list("Utility Nanites") /datum/design/nanites/dermal_button @@ -67,7 +67,6 @@ program_type = /datum/nanite_program/stealth category = list("Utility Nanites") - /datum/design/nanites/reduced_diagnostics name = "Reduced Diagnostics" desc = "Disables some high-cost diagnostics in the nanites, making them unable to communicate their program list to portable scanners. \ @@ -80,7 +79,7 @@ name = "Subdermal ID" desc = "The nanites store the host's ID access rights in a subdermal magnetic strip. Updates when triggered, copying the host's current access." id = "access_nanites" - program_type = /datum/nanite_program/triggered/access + program_type = /datum/nanite_program/access category = list("Utility Nanites") /datum/design/nanites/relay @@ -106,9 +105,9 @@ /datum/design/nanites/emp name = "Electromagnetic Resonance" - desc = "The nanites cause an elctromagnetic pulse around the host when triggered. Will corrupt other nanite programs!" + desc = "The nanites cause an electromagnetic pulse around the host when triggered. Will corrupt other nanite programs!" id = "emp_nanites" - program_type = /datum/nanite_program/triggered/emp + program_type = /datum/nanite_program/emp category = list("Utility Nanites") /datum/design/nanites/spreading @@ -119,6 +118,13 @@ program_type = /datum/nanite_program/spreading category = list("Utility Nanites") +/datum/design/nanites/nanite_sting + name = "Nanite Sting" + desc = "When triggered, projects a nearly invisible spike of nanites that attempts to infect a nearby non-host with a copy of the host's nanites cluster." + id = "nanite_sting_nanites" + program_type = /datum/nanite_program/nanite_sting + category = list("Utility Nanites") + /datum/design/nanites/mitosis name = "Mitosis" desc = "The nanites gain the ability to self-replicate, using bluespace to power the process, instead of drawing from a template. This rapidly speeds up the replication rate,\ @@ -197,7 +203,7 @@ name = "Defibrillation" desc = "The nanites, when triggered, send a defibrillating shock to the host's heart." id = "defib_nanites" - program_type = /datum/nanite_program/triggered/defib + program_type = /datum/nanite_program/defib category = list("Medical Nanites") @@ -242,7 +248,7 @@ name = "Adrenaline Burst" desc = "The nanites cause a burst of adrenaline when triggered, waking the host from stuns and temporarily increasing their speed." id = "adrenaline_nanites" - program_type = /datum/nanite_program/triggered/adrenaline + program_type = /datum/nanite_program/adrenaline category = list("Augmentation Nanites") /datum/design/nanites/mindshield @@ -366,21 +372,21 @@ name = "Heart-Stopper" desc = "Stops the host's heart when triggered; restarts it if triggered again." id = "heartstop_nanites" - program_type = /datum/nanite_program/triggered/heart_stop + program_type = /datum/nanite_program/heart_stop category = list("Weaponized Nanites") /datum/design/nanites/explosive name = "Chain Detonation" desc = "Blows up all the nanites inside the host in a chain reaction when triggered." id = "explosive_nanites" - program_type = /datum/nanite_program/triggered/explosive + program_type = /datum/nanite_program/explosive category = list("Weaponized Nanites") /datum/design/nanites/mind_control name = "Mind Control" desc = "The nanites imprint an absolute directive onto the host's brain while they're active." id = "mindcontrol_nanites" - program_type = /datum/nanite_program/triggered/comm/mind_control + program_type = /datum/nanite_program/comm/mind_control category = list("Weaponized Nanites") ////////////////////SUPPRESSION NANITES////////////////////////////////////// @@ -389,21 +395,21 @@ name = "Electric Shock" desc = "The nanites shock the host when triggered. Destroys a large amount of nanites!" id = "shock_nanites" - program_type = /datum/nanite_program/triggered/shocking + program_type = /datum/nanite_program/shocking category = list("Suppression Nanites") /datum/design/nanites/stun name = "Neural Shock" desc = "The nanites pulse the host's nerves when triggered, inapacitating them for a short period." id = "stun_nanites" - program_type = /datum/nanite_program/triggered/stun + program_type = /datum/nanite_program/stun category = list("Suppression Nanites") /datum/design/nanites/sleepy name = "Sleep Induction" desc = "The nanites cause rapid narcolepsy when triggered." id = "sleep_nanites" - program_type = /datum/nanite_program/triggered/sleepy + program_type = /datum/nanite_program/sleepy category = list("Suppression Nanites") /datum/design/nanites/paralyzing @@ -445,21 +451,21 @@ name = "Skull Echo" desc = "The nanites echo a synthesized message inside the host's skull." id = "voice_nanites" - program_type = /datum/nanite_program/triggered/comm/voice + program_type = /datum/nanite_program/comm/voice category = list("Suppression Nanites") /datum/design/nanites/speech name = "Forced Speech" desc = "The nanites force the host to say a pre-programmed sentence when triggered." id = "speech_nanites" - program_type = /datum/nanite_program/triggered/comm/speech + program_type = /datum/nanite_program/comm/speech category = list("Suppression Nanites") /datum/design/nanites/hallucination name = "Hallucination" desc = "The nanites make the host see and hear things that aren't real." id = "hallucination_nanites" - program_type = /datum/nanite_program/triggered/comm/hallucination + program_type = /datum/nanite_program/comm/hallucination category = list("Suppression Nanites") /datum/design/nanites/good_mood @@ -513,9 +519,42 @@ program_type = /datum/nanite_program/sensor/voice category = list("Sensor Nanites") -/datum/design/nanites/sensor__nanite_volume +/datum/design/nanites/sensor_nanite_volume name = "Nanite Volume Sensor" desc = "The nanites receive a signal when the nanite supply is above/below a certain percentage." id = "sensor_nanite_volume" program_type = /datum/nanite_program/sensor/nanite_volume - category = list("Sensor Nanites") \ No newline at end of file + category = list("Sensor Nanites") + +////////////////////NANITE PROTOCOLS////////////////////////////////////// +//Note about the category name: The UI cuts the last 8 characters from the category name to remove the " Nanites" in the other categories +//Because of this, Protocols was getting cut down to "P", so i had to add some padding +/* +/datum/design/nanites/kickstart + name = "Kickstart Protocol" + desc = "Replication Protocol: the nanites focus on early growth, heavily boosting replication rate for a few minutes after the initial implantation." + id = "kickstart_nanites" + program_type = /datum/nanite_program/protocol/kickstart + category = list("Protocols_Nanites") + +/datum/design/nanites/factory + name = "Factory Protocol" + desc = "Replication Protocol: the nanites build a factory matrix within the host, gradually increasing replication speed over time. The factory decays if the protocol is not active." + id = "factory_nanites" + program_type = /datum/nanite_program/protocol/factory + category = list("Protocols_Nanites") + +/datum/design/nanites/tinker + name = "Tinker Protocol" + desc = "Replication Protocol: the nanites learn to use metallic material in the host's bloodstream to speed up the replication process." + id = "tinker_nanites" + program_type = /datum/nanite_program/protocol/tinker + category = list("Protocols_Nanites") + +/datum/design/nanites/offline + name = "Offline Production Protocol" + desc = "Replication Protocol: while the host is asleep or otherwise unconcious, the nanites exploit the reduced interference to replicate more quickly." + id = "offline_nanites" + program_type = /datum/nanite_program/protocol/offline + category = list("Protocols_Nanites") +*/ diff --git a/code/modules/research/nanites/extra_settings/_extra_setting.dm b/code/modules/research/nanites/extra_settings/_extra_setting.dm new file mode 100644 index 0000000000..b3bef77eb4 --- /dev/null +++ b/code/modules/research/nanites/extra_settings/_extra_setting.dm @@ -0,0 +1,20 @@ +/datum/nanite_extra_setting + var/setting_type + var/value + +/datum/nanite_extra_setting/proc/get_value() + return value + +/datum/nanite_extra_setting/proc/set_value(value) + src.value = value + +/datum/nanite_extra_setting/proc/get_copy() + return + +//I made the choice to send the name as part of the parameter instead of storing it directly on +//this datum as a way of avoiding duplication of data between the containing assoc list +//and this datum. +//Also make sure to double wrap the list when implementing this as +//+= is interpreted as a combine on lists, so the outer list gets unwrapped +/datum/nanite_extra_setting/proc/get_frontend_list(name) + return diff --git a/code/modules/research/nanites/extra_settings/boolean.dm b/code/modules/research/nanites/extra_settings/boolean.dm new file mode 100644 index 0000000000..7d66eb988e --- /dev/null +++ b/code/modules/research/nanites/extra_settings/boolean.dm @@ -0,0 +1,27 @@ +/datum/nanite_extra_setting/boolean + setting_type = NESTYPE_BOOLEAN + var/true_text + var/false_text + +/datum/nanite_extra_setting/boolean/New(initial, true_text, false_text) + value = initial + src.true_text = true_text + src.false_text = false_text + +/datum/nanite_extra_setting/boolean/set_value(value) + if(isnull(value)) + src.value = !src.value + return + . = ..() + +/datum/nanite_extra_setting/boolean/get_copy() + return new /datum/nanite_extra_setting/boolean(value, true_text, false_text) + +/datum/nanite_extra_setting/boolean/get_frontend_list(name) + return list(list( + "name" = name, + "type" = setting_type, + "value" = value, + "true_text" = true_text, + "false_text" = false_text + )) diff --git a/code/modules/research/nanites/extra_settings/number.dm b/code/modules/research/nanites/extra_settings/number.dm new file mode 100644 index 0000000000..6e63ae067e --- /dev/null +++ b/code/modules/research/nanites/extra_settings/number.dm @@ -0,0 +1,32 @@ +/datum/nanite_extra_setting/number + setting_type = NESTYPE_NUMBER + var/min + var/max + var/unit = "" + +/datum/nanite_extra_setting/number/New(initial, min, max, unit) + value = initial + src.min = min + src.max = max + if(unit) + src.unit = unit + +/datum/nanite_extra_setting/number/set_value(value) + if(istext(value)) + value = text2num(value) + if(!value || !isnum(value)) + return + src.value = CLAMP(value, min, max) + +/datum/nanite_extra_setting/number/get_copy() + return new /datum/nanite_extra_setting/number(value, min, max, unit) + +/datum/nanite_extra_setting/number/get_frontend_list(name) + return list(list( + "name" = name, + "type" = setting_type, + "value" = value, + "min" = min, + "max" = max, + "unit" = unit + )) diff --git a/code/modules/research/nanites/extra_settings/text.dm b/code/modules/research/nanites/extra_settings/text.dm new file mode 100644 index 0000000000..56aa3dd07f --- /dev/null +++ b/code/modules/research/nanites/extra_settings/text.dm @@ -0,0 +1,18 @@ +/datum/nanite_extra_setting/text + setting_type = NESTYPE_TEXT + +/datum/nanite_extra_setting/text/New(initial) + value = initial + +/datum/nanite_extra_setting/text/set_value(value) + src.value = trim(value) + +/datum/nanite_extra_setting/text/get_copy() + return new /datum/nanite_extra_setting/text(value) + +/datum/nanite_extra_setting/text/get_frontend_list(name) + return list(list( + "name" = name, + "type" = setting_type, + "value" = value + )) diff --git a/code/modules/research/nanites/extra_settings/type.dm b/code/modules/research/nanites/extra_settings/type.dm new file mode 100644 index 0000000000..2085ba510c --- /dev/null +++ b/code/modules/research/nanites/extra_settings/type.dm @@ -0,0 +1,18 @@ +/datum/nanite_extra_setting/type + setting_type = NESTYPE_TYPE + var/list/types + +/datum/nanite_extra_setting/type/New(initial, types) + value = initial + src.types = types + +/datum/nanite_extra_setting/type/get_copy() + return new /datum/nanite_extra_setting/type(value, types) + +/datum/nanite_extra_setting/type/get_frontend_list(name) + return list(list( + "name" = name, + "type" = setting_type, + "value" = value, + "types" = types + )) diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm index 515231c24c..4a980a0436 100644 --- a/code/modules/research/nanites/nanite_chamber.dm +++ b/code/modules/research/nanites/nanite_chamber.dm @@ -77,7 +77,7 @@ return occupant.AddComponent(/datum/component/nanites, 100) -/obj/machinery/nanite_chamber/proc/install_program(datum/nanite_program/NP) +/obj/machinery/nanite_chamber/proc/remove_nanites(datum/nanite_program/NP) if(stat & (NOPOWER|BROKEN)) return if((stat & MAINT) || panel_open) @@ -88,74 +88,46 @@ var/locked_state = locked locked = TRUE - //TODO COMPUTERY MACHINE SOUNDS - set_busy(TRUE, "Initializing installation protocol...", "[initial(icon_state)]_raising") - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Connecting to nanite framework...", "[initial(icon_state)]_active"),20) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Installing program...", "[initial(icon_state)]_falling"),35) - addtimer(CALLBACK(src, .proc/complete_installation, locked_state, NP),55) + //TODO OMINOUS MACHINE SOUNDS + set_busy(TRUE, "Initializing cleanup protocol...", "[initial(icon_state)]_raising") + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Analyzing host bio-structure...", "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Pinging nanites...", "[initial(icon_state)]_active"),40) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Initiating graceful self-destruct sequence...", "[initial(icon_state)]_active"),70) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Removing debris...", "[initial(icon_state)]_falling"),110) + addtimer(CALLBACK(src, .proc/complete_removal, locked_state),130) -/obj/machinery/nanite_chamber/proc/complete_installation(locked_state, datum/nanite_program/NP) +/obj/machinery/nanite_chamber/proc/complete_removal(locked_state) //TODO MACHINE DING locked = locked_state set_busy(FALSE) if(!occupant) return + SEND_SIGNAL(occupant, COMSIG_NANITE_DELETE) - SEND_SIGNAL(occupant, COMSIG_NANITE_ADD_PROGRAM, NP.copy()) - -/obj/machinery/nanite_chamber/proc/uninstall_program(datum/nanite_program/NP) - if(stat & (NOPOWER|BROKEN)) - return - if((stat & MAINT) || panel_open) - return - if(!occupant || busy) - return - - var/locked_state = locked - locked = TRUE - - //TODO COMPUTERY MACHINE SOUNDS - set_busy(TRUE, "Initializing uninstallation protocol...", "[initial(icon_state)]_raising") - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Connecting to nanite framework...", "[initial(icon_state)]_active"),20) - addtimer(CALLBACK(src, .proc/set_busy, TRUE, "Uninstalling program...", "[initial(icon_state)]_falling"),35) - addtimer(CALLBACK(src, .proc/complete_uninstallation, locked_state, NP),55) - -/obj/machinery/nanite_chamber/proc/complete_uninstallation(locked_state, datum/nanite_program/NP) - //TODO MACHINE DING - locked = locked_state - set_busy(FALSE) - if(!occupant) - return - qdel(NP) - -/obj/machinery/nanite_chamber/update_icon() - cut_overlays() - - if((stat & MAINT) || panel_open) - add_overlay("maint") - - else if(!(stat & (NOPOWER|BROKEN))) - if(busy || locked) - add_overlay("red") - if(locked) - add_overlay("bolted") - else - add_overlay("green") - +/obj/machinery/nanite_chamber/update_icon_state() //running and someone in there if(occupant) if(busy) icon_state = busy_icon_state else - icon_state = initial(icon_state)+ "_occupied" - return + icon_state = initial(icon_state) + "_occupied" + else + //running + icon_state = initial(icon_state) + (state_open ? "_open" : "") - //running - icon_state = initial(icon_state)+ (state_open ? "_open" : "") +/obj/machinery/nanite_chamber/update_overlays() + . = ..() -/obj/machinery/nanite_chamber/power_change() - ..() - update_icon() + if((stat & MAINT) || panel_open) + . += "maint" + + else if(!(stat & (NOPOWER|BROKEN))) + if(busy || locked) + . += "red" + if(locked) + . += "bolted" + else + . += "green" /obj/machinery/nanite_chamber/proc/toggle_open(mob/user) if(panel_open) @@ -182,7 +154,7 @@ user.last_special = world.time + CLICK_CD_BREAKOUT user.visible_message("You see [user] kicking against the door of [src]!", \ "You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)", \ - "You hear a metallic creaking from [src].") + "You hear a metallic creaking from [src].") if(do_after(user,(breakout_time), target = src)) if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked || busy) return @@ -231,6 +203,8 @@ toggle_open(user) /obj/machinery/nanite_chamber/MouseDrop_T(mob/target, mob/user) - if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || !Adjacent(target) || !user.Adjacent(target) || !iscarbon(target)) return - close_machine(target) + if(close_machine(target)) + log_combat(user, target, "inserted", null, "into [src].") + add_fingerprint(user) diff --git a/code/modules/research/nanites/nanite_chamber_computer.dm b/code/modules/research/nanites/nanite_chamber_computer.dm index dec263368b..0750d3d268 100644 --- a/code/modules/research/nanites/nanite_chamber_computer.dm +++ b/code/modules/research/nanites/nanite_chamber_computer.dm @@ -5,30 +5,13 @@ var/obj/item/disk/nanite_program/disk circuit = /obj/item/circuitboard/computer/nanite_chamber_control icon_screen = "nanite_chamber_control" + ui_x = 380 + ui_y = 570 /obj/machinery/computer/nanite_chamber_control/Initialize() . = ..() find_chamber() -/obj/machinery/computer/nanite_chamber_control/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/disk/nanite_program)) - var/obj/item/disk/nanite_program/N = I - if(disk) - eject(user) - if(user.transferItemToLoc(N, src)) - to_chat(user, "You insert [N] into [src]") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) - disk = N - else - ..() - -/obj/machinery/computer/nanite_chamber_control/proc/eject(mob/living/user) - if(!disk) - return - if(!istype(user) || !Adjacent(user) || !user.put_in_active_hand(disk)) - disk.forceMove(drop_location()) - disk = null - /obj/machinery/computer/nanite_chamber_control/proc/find_chamber() for(var/direction in GLOB.cardinals) var/C = locate(/obj/machinery/nanite_chamber, get_step(src, direction)) @@ -43,41 +26,13 @@ ..() /obj/machinery/computer/nanite_chamber_control/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "nanite_chamber_control", name, 550, 800, master_ui, state) + ui = new(user, src, ui_key, "nanite_chamber_control", name, ui_x, ui_y, master_ui, state) ui.open() /obj/machinery/computer/nanite_chamber_control/ui_data() var/list/data = list() - if(disk) - data["has_disk"] = TRUE - var/list/disk_data = list() - var/datum/nanite_program/P = disk.program - if(P) - data["has_program"] = TRUE - disk_data["name"] = P.name - disk_data["desc"] = P.desc - - disk_data["activated"] = P.activated - disk_data["activation_delay"] = P.activation_delay - disk_data["timer"] = P.timer - disk_data["activation_code"] = P.activation_code - disk_data["deactivation_code"] = P.deactivation_code - disk_data["kill_code"] = P.kill_code - disk_data["trigger_code"] = P.trigger_code - disk_data["timer_type"] = P.get_timer_type_text() - - var/list/extra_settings = list() - for(var/X in P.extra_settings) - var/list/setting = list() - setting["name"] = X - setting["value"] = P.get_extra_setting(X) - extra_settings += list(setting) - disk_data["extra_settings"] = extra_settings - if(LAZYLEN(extra_settings)) - disk_data["has_extra_settings"] = TRUE - data["disk"] = disk_data if(!chamber) data["status_msg"] = "No chamber detected." @@ -97,6 +52,7 @@ data["status_msg"] = chamber.busy_message return data + data["status_msg"] = null data["scan_level"] = chamber.scan_level data["locked"] = chamber.locked data["occupant_name"] = chamber.occupant.name @@ -113,46 +69,32 @@ chamber.locked = !chamber.locked chamber.update_icon() . = TRUE - if("eject") - eject(usr) - . = TRUE if("set_safety") - var/threshold = input("Set safety threshold (0-500):", name, null) as null|num + var/threshold = text2num(params["value"]) if(!isnull(threshold)) chamber.set_safety(CLAMP(round(threshold, 1),0,500)) - playsound(src, "terminal_type", 25, 0) - investigate_log("[key_name(chamber.occupant)]'s nanites' safety threshold was set to [threshold] by [key_name(usr)].", INVESTIGATE_NANITES) + playsound(src, "terminal_type", 25, FALSE) + chamber.occupant.investigate_log("'s nanites' safety threshold was set to [threshold] by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) . = TRUE if("set_cloud") - var/cloud_id = input("Set cloud ID (1-100, 0 to disable):", name, null) as null|num + var/cloud_id = text2num(params["value"]) if(!isnull(cloud_id)) chamber.set_cloud(CLAMP(round(cloud_id, 1),0,100)) - playsound(src, "terminal_type", 25, 0) - investigate_log("[key_name(chamber.occupant)]'s nanites' cloud id was set to [cloud_id] by [key_name(usr)].", INVESTIGATE_NANITES) + playsound(src, "terminal_type", 25, FALSE) + chamber.occupant.investigate_log("'s nanites' cloud id was set to [cloud_id] by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) . = TRUE if("connect_chamber") find_chamber() . = TRUE + if("remove_nanites") + playsound(src, 'sound/machines/terminal_prompt.ogg', 25, FALSE) + chamber.remove_nanites() + log_combat(usr, chamber.occupant, "cleared nanites from", null, "via [src]") + chamber.occupant.investigate_log("'s nanites were cleared by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) + . = TRUE if("nanite_injection") - playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 25, FALSE) chamber.inject_nanites() - investigate_log("[key_name(chamber.occupant)] was injected with nanites by [key_name(usr)] using a nanite chamber.", INVESTIGATE_NANITES) + log_combat(usr, chamber.occupant, "injected", null, "with nanites via [src]") + chamber.occupant.investigate_log("was injected with nanites by [key_name(usr)] via [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) . = TRUE - if("add_program") - if(!disk || !chamber || !chamber.occupant) - return - playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) - chamber.install_program(disk.program) - investigate_log("Program of type [disk.program.type] was installed into [key_name(chamber.occupant)]'s nanites with a nanite chamber by [key_name(usr)].", INVESTIGATE_NANITES) - . = TRUE - if("remove_program") - if(!chamber || !chamber.occupant) - return - playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) - var/list/nanite_programs = list() - SEND_SIGNAL(chamber.occupant, COMSIG_NANITE_GET_PROGRAMS, nanite_programs) - if(LAZYLEN(nanite_programs)) - var/datum/nanite_program/P = nanite_programs[text2num(params["program_id"])] - chamber.uninstall_program(P) - investigate_log("Program of type [P.type] was uninstalled from [key_name(chamber.occupant)]'s nanites with a nanite chamber by [key_name(usr)].", INVESTIGATE_NANITES) - . = TRUE \ No newline at end of file diff --git a/code/modules/research/nanites/nanite_cloud_controller.dm b/code/modules/research/nanites/nanite_cloud_controller.dm index 081b1a7a4c..0731d3067c 100644 --- a/code/modules/research/nanites/nanite_cloud_controller.dm +++ b/code/modules/research/nanites/nanite_cloud_controller.dm @@ -4,9 +4,13 @@ circuit = /obj/item/circuitboard/computer/nanite_cloud_controller icon = 'icons/obj/machines/research.dmi' icon_state = "nanite_cloud_controller" + ui_x = 375 + ui_y = 700 + var/obj/item/disk/nanite_program/disk var/list/datum/nanite_cloud_backup/cloud_backups = list() var/current_view = 0 //0 is the main menu, any other number is the page of the backup with that ID + var/new_backup_id = 1 /obj/machinery/computer/nanite_cloud_controller/Destroy() QDEL_LIST(cloud_backups) //rip backups @@ -19,8 +23,8 @@ if(disk) eject(user) if(user.transferItemToLoc(N, src)) - to_chat(user, "You insert [N] into [src]") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) + to_chat(user, "You insert [N] into [src].") + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) disk = N else ..() @@ -50,13 +54,14 @@ investigate_log("[key_name(user)] created a new nanite cloud backup with id #[cloud_id]", INVESTIGATE_NANITES) /obj/machinery/computer/nanite_cloud_controller/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "nanite_cloud_control", name, 600, 800, master_ui, state) + ui = new(user, src, ui_key, "nanite_cloud_control", name, ui_x, ui_y, master_ui, state) ui.open() /obj/machinery/computer/nanite_cloud_controller/ui_data() var/list/data = list() + if(disk) data["has_disk"] = TRUE var/list/disk_data = list() @@ -71,24 +76,28 @@ disk_data["trigger_cooldown"] = P.trigger_cooldown / 10 disk_data["activated"] = P.activated - disk_data["activation_delay"] = P.activation_delay - disk_data["timer"] = P.timer disk_data["activation_code"] = P.activation_code disk_data["deactivation_code"] = P.deactivation_code disk_data["kill_code"] = P.kill_code disk_data["trigger_code"] = P.trigger_code - disk_data["timer_type"] = P.get_timer_type_text() + disk_data["timer_restart"] = P.timer_restart / 10 + disk_data["timer_shutdown"] = P.timer_shutdown / 10 + disk_data["timer_trigger"] = P.timer_trigger / 10 + disk_data["timer_trigger_delay"] = P.timer_trigger_delay / 10 - var/list/extra_settings = list() - for(var/X in P.extra_settings) - var/list/setting = list() - setting["name"] = X - setting["value"] = P.get_extra_setting(X) - extra_settings += list(setting) + var/list/extra_settings = P.get_extra_settings_frontend() disk_data["extra_settings"] = extra_settings if(LAZYLEN(extra_settings)) disk_data["has_extra_settings"] = TRUE + if(istype(P, /datum/nanite_program/sensor)) + var/datum/nanite_program/sensor/sensor = P + if(sensor.can_rule) + disk_data["can_rule"] = TRUE data["disk"] = disk_data + else + data["has_disk"] = FALSE + + data["new_backup_id"] = new_backup_id data["current_view"] = current_view if(current_view) @@ -108,19 +117,30 @@ cloud_program["trigger_cost"] = P.trigger_cost cloud_program["trigger_cooldown"] = P.trigger_cooldown / 10 cloud_program["activated"] = P.activated - cloud_program["activation_delay"] = P.activation_delay - cloud_program["timer"] = P.timer - cloud_program["timer_type"] = P.get_timer_type_text() + cloud_program["timer_restart"] = P.timer_restart / 10 + cloud_program["timer_shutdown"] = P.timer_shutdown / 10 + cloud_program["timer_trigger"] = P.timer_trigger / 10 + cloud_program["timer_trigger_delay"] = P.timer_trigger_delay / 10 + cloud_program["activation_code"] = P.activation_code cloud_program["deactivation_code"] = P.deactivation_code cloud_program["kill_code"] = P.kill_code cloud_program["trigger_code"] = P.trigger_code - var/list/extra_settings = list() - for(var/X in P.extra_settings) - var/list/setting = list() - setting["name"] = X - setting["value"] = P.get_extra_setting(X) - extra_settings += list(setting) + var/list/rules = list() + var/rule_id = 1 + for(var/X in P.rules) + var/datum/nanite_rule/nanite_rule = X + var/list/rule = list() + rule["display"] = nanite_rule.display() + rule["program_id"] = id + rule["id"] = rule_id + rules += list(rule) + rule_id++ + cloud_program["rules"] = rules + if(LAZYLEN(rules)) + cloud_program["has_rules"] = TRUE + + var/list/extra_settings = P.get_extra_settings_frontend() cloud_program["extra_settings"] = extra_settings if(LAZYLEN(extra_settings)) cloud_program["has_extra_settings"] = TRUE @@ -147,17 +167,20 @@ if("set_view") current_view = text2num(params["view"]) . = TRUE + if("update_new_backup_value") + var/backup_value = text2num(params["value"]) + new_backup_id = backup_value if("create_backup") - var/cloud_id = input("Choose a cloud ID (1-100):", name, null) as null|num + var/cloud_id = new_backup_id if(!isnull(cloud_id)) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) cloud_id = CLAMP(round(cloud_id, 1),1,100) generate_backup(cloud_id, usr) . = TRUE if("delete_backup") var/datum/nanite_cloud_backup/backup = get_backup(current_view) if(backup) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) qdel(backup) investigate_log("[key_name(usr)] deleted the nanite cloud backup #[current_view]", INVESTIGATE_NANITES) . = TRUE @@ -165,7 +188,7 @@ if(disk && disk.program) var/datum/nanite_cloud_backup/backup = get_backup(current_view) if(backup) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) var/datum/component/nanites/nanites = backup.nanites nanites.add_program(null, disk.program.copy()) investigate_log("[key_name(usr)] uploaded program [disk.program.name] to cloud #[current_view]", INVESTIGATE_NANITES) @@ -173,12 +196,37 @@ if("remove_program") var/datum/nanite_cloud_backup/backup = get_backup(current_view) if(backup) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) var/datum/component/nanites/nanites = backup.nanites var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])] investigate_log("[key_name(usr)] deleted program [P.name] from cloud #[current_view]", INVESTIGATE_NANITES) qdel(P) . = TRUE + if("add_rule") + if(disk && disk.program && istype(disk.program, /datum/nanite_program/sensor)) + var/datum/nanite_program/sensor/rule_template = disk.program + if(!rule_template.can_rule) + return + var/datum/nanite_cloud_backup/backup = get_backup(current_view) + if(backup) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + var/datum/component/nanites/nanites = backup.nanites + var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])] + var/datum/nanite_rule/rule = rule_template.make_rule(P) + + investigate_log("[key_name(usr)] added rule [rule.display()] to program [P.name] in cloud #[current_view]", INVESTIGATE_NANITES) + . = TRUE + if("remove_rule") + var/datum/nanite_cloud_backup/backup = get_backup(current_view) + if(backup) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + var/datum/component/nanites/nanites = backup.nanites + var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])] + var/datum/nanite_rule/rule = P.rules[text2num(params["rule_id"])] + rule.remove() + + investigate_log("[key_name(usr)] removed rule [rule.display()] from program [P.name] in cloud #[current_view]", INVESTIGATE_NANITES) + . = TRUE /datum/nanite_cloud_backup var/cloud_id = 0 @@ -193,4 +241,4 @@ /datum/nanite_cloud_backup/Destroy() storage.cloud_backups -= src SSnanites.cloud_backups -= src - return ..() \ No newline at end of file + return ..() diff --git a/code/modules/research/nanites/nanite_hijacker.dm b/code/modules/research/nanites/nanite_hijacker.dm deleted file mode 100644 index 920c42b411..0000000000 --- a/code/modules/research/nanites/nanite_hijacker.dm +++ /dev/null @@ -1,157 +0,0 @@ -/obj/item/nanite_hijacker - name = "nanite remote control" //fake name - desc = "A device that can load nanite programming disks, edit them at will, and imprint them to nanites remotely." - w_class = WEIGHT_CLASS_SMALL - icon = 'icons/obj/device.dmi' - icon_state = "nanite_remote" - item_flags = NOBLUDGEON - var/obj/item/disk/nanite_program/disk - var/datum/nanite_program/program - -/obj/item/nanite_hijacker/AltClick(mob/user) - . = ..() - if(!user.canUseTopic(src, BE_CLOSE)) - return - if(disk) - eject() - return TRUE - -/obj/item/nanite_hijacker/examine(mob/user) - . = ..() - if(disk) - . += "Alt-click [src] to eject the disk." - -/obj/item/nanite_hijacker/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/disk/nanite_program)) - var/obj/item/disk/nanite_program/N = I - if(disk) - eject() - if(user.transferItemToLoc(N, src)) - to_chat(user, "You insert [N] into [src]") - disk = N - program = N.program - else - ..() - -/obj/item/nanite_hijacker/proc/eject(mob/living/user) - if(!disk) - return - if(!istype(user) || !Adjacent(user) || !user.put_in_hand(disk)) - disk.forceMove(drop_location()) - disk = null - program = null - -/obj/item/nanite_hijacker/afterattack(atom/target, mob/user, etc) - if(!disk || !disk.program) - return - if(isliving(target)) - var/success = SEND_SIGNAL(target, COMSIG_NANITE_ADD_PROGRAM, program.copy()) - switch(success) - if(NONE) - to_chat(user, "You don't detect any nanites in [target].") - if(COMPONENT_PROGRAM_INSTALLED) - to_chat(user, "You insert the currently loaded program into [target]'s nanites.") - if(COMPONENT_PROGRAM_NOT_INSTALLED) - to_chat(user, "You try to insert the currently loaded program into [target]'s nanites, but the installation fails.") - -//Same UI as the nanite programmer, as it pretty much does the same -/obj/item/nanite_hijacker/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "nanite_programmer", "Internal Nanite Programmer", 420, 800, master_ui, state) - ui.open() - -/obj/item/nanite_hijacker/ui_data() - var/list/data = list() - data["has_disk"] = istype(disk) - data["has_program"] = istype(program) - if(program) - data["name"] = program.name - data["desc"] = program.desc - data["use_rate"] = program.use_rate - data["can_trigger"] = program.can_trigger - data["trigger_cost"] = program.trigger_cost - data["trigger_cooldown"] = program.trigger_cooldown / 10 - - data["activated"] = program.activated - data["activation_delay"] = program.activation_delay - data["timer"] = program.timer - data["activation_code"] = program.activation_code - data["deactivation_code"] = program.deactivation_code - data["kill_code"] = program.kill_code - data["trigger_code"] = program.trigger_code - data["timer_type"] = program.get_timer_type_text() - - var/list/extra_settings = list() - for(var/X in program.extra_settings) - var/list/setting = list() - setting["name"] = X - setting["value"] = program.get_extra_setting(X) - extra_settings += list(setting) - data["extra_settings"] = extra_settings - if(LAZYLEN(extra_settings)) - data["has_extra_settings"] = TRUE - - return data - -/obj/item/nanite_hijacker/ui_act(action, params) - if(..()) - return - switch(action) - if("eject") - eject(usr) - . = TRUE - if("toggle_active") - program.activated = !program.activated //we don't use the activation procs since we aren't in a mob - if(program.activated) - program.activation_delay = 0 - . = TRUE - if("set_code") - var/new_code = input("Set code (0000-9999):", name, null) as null|num - if(!isnull(new_code)) - new_code = CLAMP(round(new_code, 1),0,9999) - else - return - - var/target_code = params["target_code"] - switch(target_code) - if("activation") - program.activation_code = CLAMP(round(new_code, 1),0,9999) - if("deactivation") - program.deactivation_code = CLAMP(round(new_code, 1),0,9999) - if("kill") - program.kill_code = CLAMP(round(new_code, 1),0,9999) - if("trigger") - program.trigger_code = CLAMP(round(new_code, 1),0,9999) - . = TRUE - if("set_extra_setting") - program.set_extra_setting(usr, params["target_setting"]) - . = TRUE - if("set_activation_delay") - var/delay = input("Set activation delay in seconds (0-1800):", name, program.activation_delay) as null|num - if(!isnull(delay)) - delay = CLAMP(round(delay, 1),0,1800) - program.activation_delay = delay - if(delay) - program.activated = FALSE - . = TRUE - if("set_timer") - var/timer = input("Set timer in seconds (10-3600):", name, program.timer) as null|num - if(!isnull(timer)) - if(!timer == 0) - timer = CLAMP(round(timer, 1),10,3600) - program.timer = timer - . = TRUE - if("set_timer_type") - var/new_type = input("Choose the timer effect","Timer Effect") as null|anything in list("Deactivate","Self-Delete","Trigger","Reset Activation Timer") - if(new_type) - switch(new_type) - if("Deactivate") - program.timer_type = NANITE_TIMER_DEACTIVATE - if("Self-Delete") - program.timer_type = NANITE_TIMER_SELFDELETE - if("Trigger") - program.timer_type = NANITE_TIMER_TRIGGER - if("Reset Activation Timer") - program.timer_type = NANITE_TIMER_RESET - . = TRUE \ No newline at end of file diff --git a/code/modules/research/nanites/nanite_misc_items.dm b/code/modules/research/nanites/nanite_misc_items.dm index cbcdfb0f9f..6837543d11 100644 --- a/code/modules/research/nanites/nanite_misc_items.dm +++ b/code/modules/research/nanites/nanite_misc_items.dm @@ -6,4 +6,4 @@ icon_state = "nanite_remote" /obj/item/nanite_injector/attack_self(mob/user) - user.AddComponent(/datum/component/nanites, 150) \ No newline at end of file + user.AddComponent(/datum/component/nanites, 150) diff --git a/code/modules/research/nanites/nanite_program_hub.dm b/code/modules/research/nanites/nanite_program_hub.dm index d6e0bbdabb..ea4392f236 100644 --- a/code/modules/research/nanites/nanite_program_hub.dm +++ b/code/modules/research/nanites/nanite_program_hub.dm @@ -7,18 +7,21 @@ use_power = IDLE_POWER_USE anchored = TRUE density = TRUE + ui_x = 500 + ui_y = 700 var/obj/item/disk/nanite_program/disk var/datum/techweb/linked_techweb var/current_category = "Main" - var/detail_view = FALSE + var/detail_view = TRUE var/categories = list( list(name = "Utility Nanites"), list(name = "Medical Nanites"), list(name = "Sensor Nanites"), list(name = "Augmentation Nanites"), list(name = "Suppression Nanites"), - list(name = "Weaponized Nanites") + list(name = "Weaponized Nanites"), + //list(name = "Protocols") B.E.P.I.S Content, which we dont have ) /obj/machinery/nanite_program_hub/Initialize() @@ -31,8 +34,8 @@ if(disk) eject(user) if(user.transferItemToLoc(N, src)) - to_chat(user, "You insert [N] into [src]") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) + to_chat(user, "You insert [N] into [src].") + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) disk = N else ..() @@ -45,10 +48,9 @@ disk = null /obj/machinery/nanite_program_hub/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "nanite_program_hub", name, 500, 700, master_ui, state) - ui.set_autoupdate(FALSE) //to avoid making the whole program list every second + ui = new(user, src, ui_key, "nanite_program_hub", name, ui_x, ui_y, master_ui, state) ui.open() /obj/machinery/nanite_program_hub/ui_data() @@ -62,25 +64,31 @@ disk_data["name"] = P.name disk_data["desc"] = P.desc data["disk"] = disk_data + else + data["has_disk"] = FALSE data["detail_view"] = detail_view - data["category"] = current_category - if(current_category != "Main") - var/list/program_list = list() - for(var/i in linked_techweb.researched_designs) - var/datum/design/nanites/D = SSresearch.techweb_design_by_id(i) - if(!istype(D)) - continue - if(current_category in D.category) - var/list/program_design = list() - program_design["id"] = D.id - program_design["name"] = D.name - program_design["desc"] = D.desc - program_list += list(program_design) - data["program_list"] = program_list - else - data["categories"] = categories + return data + +/obj/machinery/nanite_program_hub/ui_static_data(mob/user) + var/list/data = list() + data["programs"] = list() + for(var/i in linked_techweb.researched_designs) + var/datum/design/nanites/D = SSresearch.techweb_design_by_id(i) + if(!istype(D)) + continue + var/cat_name = D.category[1] //just put them in the first category fuck it + if(isnull(data["programs"][cat_name])) + data["programs"][cat_name] = list() + var/list/program_design = list() + program_design["id"] = D.id + program_design["name"] = D.name + program_design["desc"] = D.desc + data["programs"][cat_name] += list(program_design) + + if(!length(data["programs"])) + data["programs"] = null return data @@ -101,11 +109,10 @@ qdel(disk.program) disk.program = new downloaded.program_type disk.name = "[initial(disk.name)] \[[disk.program.name]\]" - playsound(src, 'sound/machines/terminal_prompt.ogg', 25, 0) + playsound(src, 'sound/machines/terminal_prompt.ogg', 25, FALSE) . = TRUE - if("set_category") - var/new_category = params["category"] - current_category = new_category + if("refresh") + update_static_data(usr) . = TRUE if("toggle_details") detail_view = !detail_view diff --git a/code/modules/research/nanites/nanite_programmer.dm b/code/modules/research/nanites/nanite_programmer.dm index fd22fbf4b1..d81880c6d9 100644 --- a/code/modules/research/nanites/nanite_programmer.dm +++ b/code/modules/research/nanites/nanite_programmer.dm @@ -9,6 +9,9 @@ use_power = IDLE_POWER_USE anchored = TRUE density = TRUE + flags_1 = HEAR_1 + ui_x = 420 + ui_y = 550 /obj/machinery/nanite_programmer/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/disk/nanite_program)) @@ -17,7 +20,7 @@ eject(user) if(user.transferItemToLoc(N, src)) to_chat(user, "You insert [N] into [src]") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) disk = N program = N.program else @@ -32,9 +35,9 @@ program = null /obj/machinery/nanite_programmer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "nanite_programmer", name, 600, 800, master_ui, state) + ui = new(user, src, ui_key, "nanite_programmer", name, ui_x, ui_y, master_ui, state) ui.open() /obj/machinery/nanite_programmer/ui_data() @@ -50,20 +53,16 @@ data["trigger_cooldown"] = program.trigger_cooldown / 10 data["activated"] = program.activated - data["activation_delay"] = program.activation_delay - data["timer"] = program.timer data["activation_code"] = program.activation_code data["deactivation_code"] = program.deactivation_code data["kill_code"] = program.kill_code data["trigger_code"] = program.trigger_code - data["timer_type"] = program.get_timer_type_text() + data["timer_restart"] = program.timer_restart / 10 + data["timer_shutdown"] = program.timer_shutdown / 10 + data["timer_trigger"] = program.timer_trigger / 10 + data["timer_trigger_delay"] = program.timer_trigger_delay / 10 - var/list/extra_settings = list() - for(var/X in program.extra_settings) - var/list/setting = list() - setting["name"] = X - setting["value"] = program.get_extra_setting(X) - extra_settings += list(setting) + var/list/extra_settings = program.get_extra_settings_frontend() data["extra_settings"] = extra_settings if(LAZYLEN(extra_settings)) data["has_extra_settings"] = TRUE @@ -78,20 +77,12 @@ eject(usr) . = TRUE if("toggle_active") - playsound(src, "terminal_type", 25, 0) + playsound(src, "terminal_type", 25, FALSE) program.activated = !program.activated //we don't use the activation procs since we aren't in a mob - if(program.activated) - program.activation_delay = 0 . = TRUE if("set_code") - var/new_code = input("Set code (0000-9999):", name, null) as null|num - if(!isnull(new_code)) - playsound(src, "terminal_type", 25, 0) - new_code = CLAMP(round(new_code, 1),0,9999) - else - return - - playsound(src, "terminal_type", 25, 0) + var/new_code = text2num(params["code"]) + playsound(src, "terminal_type", 25, FALSE) var/target_code = params["target_code"] switch(target_code) if("activation") @@ -104,37 +95,44 @@ program.trigger_code = CLAMP(round(new_code, 1),0,9999) . = TRUE if("set_extra_setting") - program.set_extra_setting(usr, params["target_setting"]) - playsound(src, "terminal_type", 25, 0) + program.set_extra_setting(params["target_setting"], params["value"]) + playsound(src, "terminal_type", 25, FALSE) . = TRUE - if("set_activation_delay") - var/delay = input("Set activation delay in seconds (0-1800):", name, program.activation_delay) as null|num - if(!isnull(delay)) - playsound(src, "terminal_type", 25, 0) - delay = CLAMP(round(delay, 1),0,1800) - program.activation_delay = delay - if(delay) - program.activated = FALSE - . = TRUE - if("set_timer") - var/timer = input("Set timer in seconds (10-3600):", name, program.timer) as null|num + if("set_restart_timer") + var/timer = text2num(params["delay"]) if(!isnull(timer)) - playsound(src, "terminal_type", 25, 0) - if(!timer == 0) - timer = CLAMP(round(timer, 1),10,3600) - program.timer = timer + playsound(src, "terminal_type", 25, FALSE) + timer = CLAMP(round(timer, 1), 0, 3600) + timer *= 10 //convert to deciseconds + program.timer_restart = timer . = TRUE - if("set_timer_type") - var/new_type = input("Choose the timer effect","Timer Effect") as null|anything in list("Deactivate","Self-Delete","Trigger","Reset Activation Timer") - if(new_type) - playsound(src, "terminal_type", 25, 0) - switch(new_type) - if("Deactivate") - program.timer_type = NANITE_TIMER_DEACTIVATE - if("Self-Delete") - program.timer_type = NANITE_TIMER_SELFDELETE - if("Trigger") - program.timer_type = NANITE_TIMER_TRIGGER - if("Reset Activation Timer") - program.timer_type = NANITE_TIMER_RESET - . = TRUE \ No newline at end of file + if("set_shutdown_timer") + var/timer = text2num(params["delay"]) + if(!isnull(timer)) + playsound(src, "terminal_type", 25, FALSE) + timer = CLAMP(round(timer, 1), 0, 3600) + timer *= 10 //convert to deciseconds + program.timer_shutdown = timer + . = TRUE + if("set_trigger_timer") + var/timer = text2num(params["delay"]) + if(!isnull(timer)) + playsound(src, "terminal_type", 25, FALSE) + timer = CLAMP(round(timer, 1), 0, 3600) + timer *= 10 //convert to deciseconds + program.timer_trigger = timer + . = TRUE + if("set_timer_trigger_delay") + var/timer = text2num(params["delay"]) + if(!isnull(timer)) + playsound(src, "terminal_type", 25, FALSE) + timer = CLAMP(round(timer, 1), 0, 3600) + timer *= 10 //convert to deciseconds + program.timer_trigger_delay = timer + . = TRUE + +/obj/machinery/nanite_programmer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source) + . = ..() + var/static/regex/when = regex("(?:^\\W*when|when\\W*$)", "i") //starts or ends with when + if(findtext(raw_message, when) && !istype(speaker, /obj/machinery/nanite_programmer)) + say("When you code it!!") diff --git a/code/modules/research/nanites/nanite_programs.dm b/code/modules/research/nanites/nanite_programs.dm index 0d27d7ba0d..72f969a77e 100644 --- a/code/modules/research/nanites/nanite_programs.dm +++ b/code/modules/research/nanites/nanite_programs.dm @@ -11,7 +11,7 @@ var/trigger_cost = 0 //Amount of nanites required to trigger var/trigger_cooldown = 50 //Deciseconds required between each trigger activation var/next_trigger = 0 //World time required for the next trigger activation - var/timer_counter = 0 //Counts up while active. Used for the timer and the activation delay. + var/program_flags = NONE var/passive_enabled = FALSE //If the nanites have an on/off-style effect, it's tracked by this var @@ -28,9 +28,17 @@ //The following vars are customizable var/activated = TRUE //If FALSE, the program won't process, disables passive effects, can't trigger and doesn't consume nanites - var/activation_delay = 0 //Seconds before the program self-activates. - var/timer = 0 //Seconds before the timer effect activates. Starts counting AFTER the activation delay - var/timer_type = NANITE_TIMER_DEACTIVATE //What happens when the timer runs out + + var/timer_restart = 0 //When deactivated, the program will wait X deciseconds before self-reactivating. Also works if the program begins deactivated. + var/timer_shutdown = 0 //When activated, the program will wait X deciseconds before self-deactivating. Also works if the program begins activated. + var/timer_trigger = 0 //[Trigger only] While active, the program will attempt to trigger once every x deciseconds. + var/timer_trigger_delay = 0 //[Trigger only] While active, the program will delay trigger signals by X deciseconds. + + //Indicates the next world.time tick where these timers will act + var/timer_restart_next = 0 + var/timer_shutdown_next = 0 + var/timer_trigger_next = 0 + var/timer_trigger_delay_next = 0 //Signal codes, these handle remote input to the nanites. If set to 0 they'll ignore signals. var/activation_code = 0 //Code that activates the program [1-9999] @@ -39,19 +47,19 @@ var/trigger_code = 0 //Code that triggers the program (if available) [1-9999] //Extra settings - //Must be listed in text form, with the same title they'll be displayed in the programmer UI - //Changing these values is handled by set_extra_setting() - //Viewing these values is handled by get_extra_setting() - //Copying these values is handled by copy_extra_settings_to() + ///Don't ever override this or I will come to your house and stand menacingly behind a bush var/list/extra_settings = list() -/datum/nanite_program/triggered - use_rate = 0 - trigger_cost = 5 - trigger_cooldown = 50 - can_trigger = TRUE + //Rules + //Rules that automatically manage if the program's active without requiring separate sensor programs + var/list/datum/nanite_rule/rules = list() + +/datum/nanite_program/New() + . = ..() + register_extra_settings() /datum/nanite_program/Destroy() + extra_settings = null if(host_mob) if(activated) deactivate() @@ -64,39 +72,60 @@ /datum/nanite_program/proc/copy() var/datum/nanite_program/new_program = new type() - - new_program.activated = activated - new_program.activation_delay = activation_delay - new_program.timer = timer - new_program.timer_type = timer_type - new_program.activation_code = activation_code - new_program.deactivation_code = deactivation_code - new_program.kill_code = kill_code - new_program.trigger_code = trigger_code - copy_extra_settings_to(new_program) + copy_programming(new_program, TRUE) return new_program /datum/nanite_program/proc/copy_programming(datum/nanite_program/target, copy_activated = TRUE) if(copy_activated) target.activated = activated - target.activation_delay = activation_delay - target.timer = timer - target.timer_type = timer_type + target.timer_restart = timer_restart + target.timer_shutdown = timer_shutdown + target.timer_trigger = timer_trigger + target.timer_trigger_delay = timer_trigger_delay target.activation_code = activation_code target.deactivation_code = deactivation_code target.kill_code = kill_code target.trigger_code = trigger_code - copy_extra_settings_to(target) -/datum/nanite_program/proc/set_extra_setting(user, setting) + target.rules = list() + for(var/R in rules) + var/datum/nanite_rule/rule = R + rule.copy_to(target) + + if(istype(target,src)) + copy_extra_settings_to(target) + +///Register extra settings by overriding this. +///extra_settings[name] = new typepath() for each extra setting +/datum/nanite_program/proc/register_extra_settings() return -/datum/nanite_program/proc/get_extra_setting(setting) - return +///You can override this if you need to have special behavior after setting certain settings. +/datum/nanite_program/proc/set_extra_setting(setting, value) + var/datum/nanite_extra_setting/ES = extra_settings[setting] + return ES.set_value(value) +///You probably shouldn't be overriding this one, but I'm not a cop. +/datum/nanite_program/proc/get_extra_setting_value(setting) + var/datum/nanite_extra_setting/ES = extra_settings[setting] + return ES.get_value() + +///Used for getting information about the extra settings to the frontend +/datum/nanite_program/proc/get_extra_settings_frontend() + var/list/out = list() + for(var/name in extra_settings) + var/datum/nanite_extra_setting/ES = extra_settings[name] + out += ES.get_frontend_list(name) + return out + +///Copy of the list instead of direct reference for obvious reasons /datum/nanite_program/proc/copy_extra_settings_to(datum/nanite_program/target) - return + var/list/copy_list = list() + for(var/ns_name in extra_settings) + var/datum/nanite_extra_setting/extra_setting = extra_settings[ns_name] + copy_list[ns_name] = extra_setting.get_copy() + target.extra_settings = copy_list /datum/nanite_program/proc/on_add(datum/component/nanites/_nanites) nanites = _nanites @@ -105,10 +134,12 @@ /datum/nanite_program/proc/on_mob_add() host_mob = nanites.host_mob - if(activated) //apply activation effects if it starts active + if(activated) //apply activation effects depending on initial status; starts the restart and shutdown timers activate() + else + deactivate() -datum/nanite_program/proc/on_mob_remove() +/datum/nanite_program/proc/on_mob_remove() return /datum/nanite_program/proc/toggle() @@ -119,36 +150,35 @@ datum/nanite_program/proc/on_mob_remove() /datum/nanite_program/proc/activate() activated = TRUE - timer_counter = activation_delay + if(timer_shutdown) + timer_shutdown_next = world.time + timer_shutdown /datum/nanite_program/proc/deactivate() if(passive_enabled) disable_passive_effect() activated = FALSE + if(timer_restart) + timer_restart_next = world.time + timer_restart /datum/nanite_program/proc/on_process() - timer_counter++ - - if(activation_delay) - if(activated && timer_counter < activation_delay) - deactivate() - else if(!activated && timer_counter >= activation_delay) - activate() if(!activated) + if(timer_restart_next && world.time > timer_restart_next) + activate() + timer_restart_next = 0 return - if(timer && timer_counter > timer) - if(timer_type == NANITE_TIMER_DEACTIVATE) - deactivate() - return - else if(timer_type == NANITE_TIMER_SELFDELETE) - qdel(src) - return - else if(can_trigger && timer_type == NANITE_TIMER_TRIGGER) - trigger() - timer_counter = activation_delay - else if(timer_type == NANITE_TIMER_RESET) - timer_counter = 0 + if(timer_shutdown_next && world.time > timer_shutdown_next) + deactivate() + timer_shutdown_next = 0 + + if(timer_trigger && world.time > timer_trigger_next) + trigger() + timer_trigger_next = world.time + timer_trigger + + if(timer_trigger_delay_next && world.time > timer_trigger_delay_next) + trigger(delayed = TRUE) + timer_trigger_delay_next = 0 + if(check_conditions() && consume_nanites(use_rate)) if(!passive_enabled) enable_passive_effect() @@ -160,6 +190,10 @@ datum/nanite_program/proc/on_mob_remove() //If false, disables active and passive effects, but doesn't consume nanites //Can be used to avoid consuming nanites for nothing /datum/nanite_program/proc/check_conditions() + for(var/R in rules) + var/datum/nanite_rule/rule = R + if(!rule.check_rule()) + return FALSE return TRUE //Constantly procs as long as the program is active @@ -174,15 +208,25 @@ datum/nanite_program/proc/on_mob_remove() /datum/nanite_program/proc/disable_passive_effect() passive_enabled = FALSE -/datum/nanite_program/proc/trigger() +//Checks conditions then fires the nanite trigger effect +/datum/nanite_program/proc/trigger(delayed = FALSE, comm_message) + if(!can_trigger) + return if(!activated) - return FALSE + return + if(timer_trigger_delay && !delayed) + timer_trigger_delay_next = world.time + timer_trigger_delay + return if(world.time < next_trigger) - return FALSE + return if(!consume_nanites(trigger_cost)) - return FALSE + return next_trigger = world.time + trigger_cooldown - return TRUE + on_trigger(comm_message) + +//Nanite trigger effect, requires can_trigger to be used +/datum/nanite_program/proc/on_trigger(comm_message) + return /datum/nanite_program/proc/consume_nanites(amount, force = FALSE) return nanites.consume_nanites(amount, force) @@ -234,24 +278,36 @@ datum/nanite_program/proc/on_mob_remove() /datum/nanite_program/proc/receive_signal(code, source) if(activation_code && code == activation_code && !activated) activate() - host_mob.investigate_log("[host_mob]'s [name] nanite program was activated by [source] with code [code].", INVESTIGATE_NANITES) + host_mob.investigate_log("'s [name] nanite program was activated by [source] with code [code].", INVESTIGATE_NANITES) else if(deactivation_code && code == deactivation_code && activated) deactivate() - host_mob.investigate_log("[host_mob]'s [name] nanite program was deactivated by [source] with code [code].", INVESTIGATE_NANITES) - if(kill_code && code == kill_code) - host_mob.investigate_log("[host_mob]'s [name] nanite program was deleted by [source] with code [code].", INVESTIGATE_NANITES) - qdel(src) - else if(can_trigger && trigger_code && code == trigger_code) + host_mob.investigate_log("'s [name] nanite program was deactivated by [source] with code [code].", INVESTIGATE_NANITES) + if(can_trigger && trigger_code && code == trigger_code) trigger() - host_mob.investigate_log("[host_mob]'s [name] nanite program was triggered by [source] with code [code].", INVESTIGATE_NANITES) + host_mob.investigate_log("'s [name] nanite program was triggered by [source] with code [code].", INVESTIGATE_NANITES) + if(kill_code && code == kill_code) + host_mob.investigate_log("'s [name] nanite program was deleted by [source] with code [code].", INVESTIGATE_NANITES) + qdel(src) + +///A nanite program containing a behaviour protocol. Only one protocol of each class can be active at once. +//Currently unused due to us lacking the B.E.P.I.S +/datum/nanite_program/protocol + name = "Nanite Protocol" + var/protocol_class = NONE + +/datum/nanite_program/protocol/check_conditions() + . = ..() + for(var/protocol in nanites.protocols) + var/datum/nanite_program/protocol/P = protocol + if(P != src && P.activated && P.protocol_class == protocol_class) + return FALSE + +/datum/nanite_program/protocol/on_add(datum/component/nanites/_nanites) + ..() + nanites.protocols += src + +/datum/nanite_program/protocol/Destroy() + if(nanites) + nanites.protocols -= src + return ..() -/datum/nanite_program/proc/get_timer_type_text() - switch(timer_type) - if(NANITE_TIMER_DEACTIVATE) - return "Deactivate" - if(NANITE_TIMER_SELFDELETE) - return "Self-Delete" - if(NANITE_TIMER_TRIGGER) - return "Trigger" - if(NANITE_TIMER_RESET) - return "Reset Activation Timer" diff --git a/code/modules/research/nanites/nanite_programs/buffing.dm b/code/modules/research/nanites/nanite_programs/buffing.dm index 2abb7c77ef..f52ae4843a 100644 --- a/code/modules/research/nanites/nanite_programs/buffing.dm +++ b/code/modules/research/nanites/nanite_programs/buffing.dm @@ -18,23 +18,16 @@ var/mob/living/carbon/human/H = host_mob H.physiology.stun_mod *= 2 -/datum/nanite_program/triggered/adrenaline +/datum/nanite_program/adrenaline name = "Adrenaline Burst" desc = "The nanites cause a burst of adrenaline when triggered, waking the host from stuns and temporarily increasing their speed." + can_trigger = TRUE trigger_cost = 25 trigger_cooldown = 1200 rogue_types = list(/datum/nanite_program/toxic, /datum/nanite_program/nerve_decay) -/datum/nanite_program/triggered/adrenaline/trigger() - if(!..()) - return - to_chat(host_mob, "You feel a sudden surge of energy!") - host_mob.SetAllImmobility(0, FALSE) - host_mob.SetUnconscious(0, FALSE) - host_mob.adjustStaminaLoss(-10) //stimulants give stamina heal now - host_mob.set_resting(FALSE, TRUE, FALSE) - host_mob.update_mobility() - host_mob.reagents.add_reagent(/datum/reagent/medicine/stimulants, 1.5) +/datum/nanite_program/adrenaline/on_trigger() + host_mob.do_adrenaline(-10, TRUE, TRUE, FALSE, TRUE, list(/datum/reagent/medicine/stimulants = 1.5), "You feel a sudden surge of energy!", FALSE, FALSE, FALSE) /datum/nanite_program/hardening name = "Dermal Hardening" @@ -119,7 +112,7 @@ /datum/nanite_program/mindshield/enable_passive_effect() . = ..() - if(!host_mob.mind.has_antag_datum(/datum/antagonist/rev)) //won't work if on a rev, to avoid having implanted revs + if(!host_mob.mind.has_antag_datum(/datum/antagonist/rev, TRUE)) //won't work if on a rev, to avoid having implanted revs. ADD_TRAIT(host_mob, TRAIT_MINDSHIELD, "nanites") host_mob.sec_hud_set_implants() diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index 6dd1b3ee82..70a1412b11 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -23,7 +23,7 @@ if(!parts.len) return for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(0.5/parts.len, 0.5/parts.len, null, BODYPART_ORGANIC)) + if(L.heal_damage(0.5/parts.len, 0.5/parts.len)) host_mob.update_damage_overlays() else host_mob.adjustBruteLoss(-0.5, TRUE) @@ -48,12 +48,12 @@ /datum/nanite_program/purging name = "Blood Purification" - desc = "The nanites purge toxins and chemicals from the host's bloodstream, however it is dangerous to slimepeople biology due to inaccuracy." + desc = "The nanites purge toxins and chemicals from the host's bloodstream, however it is dangerous to slime biology due to inaccuracy." use_rate = 1 rogue_types = list(/datum/nanite_program/suffocating, /datum/nanite_program/necrotic) /datum/nanite_program/purging/check_conditions() - var/foreign_reagent = LAZYLEN(host_mob.reagents.reagent_list) + var/foreign_reagent = length(host_mob.reagents?.reagent_list) if(!host_mob.getToxLoss() && !foreign_reagent) return FALSE return ..() @@ -73,18 +73,17 @@ rogue_types = list(/datum/nanite_program/brain_decay) /datum/nanite_program/brain_heal/check_conditions() + var/problems = FALSE if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - for(var/X in C.get_traumas()) - var/datum/brain_trauma/BT = X - if(BT.resilience <= TRAUMA_RESILIENCE_BASIC) - return ..() - if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN)) - return ..() - return FALSE + if(length(C.get_traumas())) + problems = TRUE + if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN) > 0) + problems = TRUE + return problems ? ..() : FALSE /datum/nanite_program/brain_heal/active_effect() - host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1, TRUE) + host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1) if(iscarbon(host_mob) && prob(10)) var/mob/living/carbon/C = host_mob C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC) @@ -137,7 +136,7 @@ return var/update = FALSE for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(1.5/parts.len, 1.5/parts.len, null, BODYPART_ROBOTIC)) //much faster than organic healing + if(L.heal_damage(1.5/parts.len, 1.5/parts.len, null, TRUE, FALSE)) //much faster than organic healing update = TRUE if(update) host_mob.update_damage_overlays() @@ -148,7 +147,7 @@ /datum/nanite_program/purging_advanced name = "Selective Blood Purification" desc = "The nanites purge toxins and dangerous chemicals from the host's bloodstream, while ignoring beneficial chemicals. \ - The added processing power required to analyze the chemicals severely increases the nanite consumption rate. Due to added complexity, it is safe with slimepeople biology." + The added processing power required to analyze the chemicals severely increases the nanite consumption rate. This program is safe with slime biology due to the increased precision." use_rate = 2 rogue_types = list(/datum/nanite_program/suffocating, /datum/nanite_program/necrotic) @@ -181,7 +180,7 @@ return var/update = FALSE for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(3/parts.len, 3/parts.len)) + if(L.heal_damage(3/parts.len, 3/parts.len, FALSE)) update = TRUE if(update) host_mob.update_damage_overlays() @@ -196,70 +195,54 @@ rogue_types = list(/datum/nanite_program/brain_decay, /datum/nanite_program/brain_misfire) /datum/nanite_program/brain_heal_advanced/check_conditions() + var/problems = FALSE if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - for(var/X in C.get_traumas()) - var/datum/brain_trauma/BT = X - if(BT.resilience <= TRAUMA_RESILIENCE_LOBOTOMY) - return ..() - if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN)) - return ..() - return FALSE + if(length(C.get_traumas())) + problems = TRUE + if(host_mob.getOrganLoss(ORGAN_SLOT_BRAIN) > 0) + problems = TRUE + return problems ? ..() : FALSE /datum/nanite_program/brain_heal_advanced/active_effect() - host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2, TRUE) + host_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2) if(iscarbon(host_mob) && prob(10)) var/mob/living/carbon/C = host_mob C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_LOBOTOMY) -/datum/nanite_program/triggered/defib +/datum/nanite_program/defib name = "Defibrillation" desc = "The nanites shock the host's heart when triggered, bringing them back to life if the body can sustain it." + can_trigger = TRUE trigger_cost = 25 trigger_cooldown = 120 - rogue_types = list(/datum/nanite_program/triggered/shocking) - -/datum/nanite_program/triggered/defib/trigger() - if(!..()) - return + rogue_types = list(/datum/nanite_program/shocking) +/datum/nanite_program/defib/on_trigger(comm_message) host_mob.notify_ghost_cloning("Your heart is being defibrillated by nanites. Re-enter your corpse if you want to be revived!") addtimer(CALLBACK(src, .proc/zap), 50) -/datum/nanite_program/triggered/defib/proc/check_revivable() +/datum/nanite_program/defib/proc/check_revivable() if(!iscarbon(host_mob)) //nonstandard biology return FALSE var/mob/living/carbon/C = host_mob - if(C.suiciding || HAS_TRAIT(C, TRAIT_NOCLONE) || C.hellbound) //can't revive - return FALSE - if((world.time - C.timeofdeath) > 1800) //too late - return FALSE - if((C.getBruteLoss() > 180) || (C.getFireLoss() > 180) || !C.can_be_revived()) //too damaged - return FALSE - if(!C.getorgan(/obj/item/organ/heart)) //what are we even shocking - return FALSE - var/obj/item/organ/brain/BR = C.getorgan(/obj/item/organ/brain) - if(QDELETED(BR) || BR.brain_death || (BR.organ_flags & ORGAN_FAILING) || C.suiciding) - return FALSE if(C.get_ghost()) return FALSE - return TRUE + return C.can_defib() -/datum/nanite_program/triggered/defib/proc/zap() +/datum/nanite_program/defib/proc/zap() var/mob/living/carbon/C = host_mob - playsound(C, 'sound/machines/defib_charge.ogg', 50, 0) + playsound(C, 'sound/machines/defib_charge.ogg', 50, FALSE) sleep(30) - playsound(C, 'sound/machines/defib_zap.ogg', 50, 0) + playsound(C, 'sound/machines/defib_zap.ogg', 50, FALSE) if(check_revivable()) - playsound(C, 'sound/machines/defib_success.ogg', 50, 0) + playsound(C, 'sound/machines/defib_success.ogg', 50, FALSE) C.set_heartattack(FALSE) - C.revive() + C.revive(full_heal = FALSE, admin_revive = FALSE) C.emote("gasp") C.Jitter(100) SEND_SIGNAL(C, COMSIG_LIVING_MINOR_SHOCK) - var/tplus = world.time - C.timeofdeath - if(tplus > 600) - C.adjustOrganLoss(ORGAN_SLOT_BRAIN, max(0, ((1800 - tplus) / 1800 * 150)), 150) log_game("[C] has been successfully defibrillated by nanites.") else - playsound(C, 'sound/machines/defib_failed.ogg', 50, 0) + playsound(C, 'sound/machines/defib_failed.ogg', 50, FALSE) + diff --git a/code/modules/research/nanites/nanite_programs/protocols.dm b/code/modules/research/nanites/nanite_programs/protocols.dm new file mode 100644 index 0000000000..73976abe09 --- /dev/null +++ b/code/modules/research/nanites/nanite_programs/protocols.dm @@ -0,0 +1,107 @@ +//Replication Protocols +/datum/nanite_program/protocol/kickstart + name = "Kickstart Protocol" + desc = "Replication Protocol: the nanites focus on early growth, heavily boosting replication rate for a few minutes after the initial implantation." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/boost_duration = 1200 + +/datum/nanite_program/protocol/kickstart/check_conditions() + if(!(world.time < nanites.start_time + boost_duration)) + return FALSE + return ..() + +/datum/nanite_program/protocol/kickstart/active_effect() + nanites.adjust_nanites(null, 3.5) + +/datum/nanite_program/protocol/factory + name = "Factory Protocol" + desc = "Replication Protocol: the nanites build a factory matrix within the host, gradually increasing replication speed over time. \ + The factory decays if the protocol is not active, or if the nanites are disrupted by shocks or EMPs." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/factory_efficiency = 0 + var/max_efficiency = 1000 //Goes up to 2 bonus regen per tick after 16 minutes and 40 seconds + +/datum/nanite_program/protocol/factory/on_process() + if(!activated || !check_conditions()) + factory_efficiency = max(0, factory_efficiency - 5) + ..() + +/datum/nanite_program/protocol/factory/on_emp(severity) + ..() + factory_efficiency = max(0, factory_efficiency - 300) + +/datum/nanite_program/protocol/factory/on_shock(shock_damage) + ..() + factory_efficiency = max(0, factory_efficiency - 200) + +/datum/nanite_program/protocol/factory/on_minor_shock() + ..() + factory_efficiency = max(0, factory_efficiency - 100) + +/datum/nanite_program/protocol/factory/active_effect() + factory_efficiency = min(factory_efficiency + 1, max_efficiency) + nanites.adjust_nanites(null, round(0.002 * factory_efficiency, 0.1)) + +/datum/nanite_program/protocol/tinker + name = "Tinker Protocol" + desc = "Replication Protocol: the nanites learn to use metallic material in the host's bloodstream to speed up the replication process." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/boost = 2 + var/list/valid_reagents = list( + /datum/reagent/iron, + /datum/reagent/copper, + /datum/reagent/gold, + /datum/reagent/silver, + /datum/reagent/mercury, + /datum/reagent/aluminium, + /datum/reagent/silicon) + +/datum/nanite_program/protocol/tinker/check_conditions() + if(!nanites.host_mob.reagents) + return FALSE + + var/found_reagent = FALSE + + var/datum/reagents/R = nanites.host_mob.reagents + for(var/VR in valid_reagents) + if(R.has_reagent(VR, 0.5)) + R.remove_reagent(VR, 0.5) + found_reagent = TRUE + break + if(!found_reagent) + return FALSE + return ..() + +/datum/nanite_program/protocol/tinker/active_effect() + nanites.adjust_nanites(null, boost) + +/datum/nanite_program/protocol/offline + name = "Offline Production Protocol" + desc = "Replication Protocol: while the host is asleep or otherwise unconcious, the nanites exploit the reduced interference to replicate more quickly." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/boost = 3 + +/datum/nanite_program/protocol/offline/check_conditions() + var/is_offline = FALSE + if(nanites.host_mob.IsSleeping() || nanites.host_mob.IsUnconscious()) + is_offline = TRUE + if(nanites.host_mob.stat == DEAD || HAS_TRAIT(nanites.host_mob, TRAIT_DEATHCOMA)) + is_offline = TRUE + if(nanites.host_mob.InCritical() && !HAS_TRAIT(nanites.host_mob, TRAIT_NOSOFTCRIT)) + is_offline = TRUE + if(nanites.host_mob.InFullCritical() && !HAS_TRAIT(nanites.host_mob, TRAIT_NOHARDCRIT)) + is_offline = TRUE + if(!is_offline) + return FALSE + return ..() + +/datum/nanite_program/protocol/offline/active_effect() + nanites.adjust_nanites(null, boost) diff --git a/code/modules/research/nanites/nanite_programs/sensor.dm b/code/modules/research/nanites/nanite_programs/sensor.dm index 535b92c6e1..260811445b 100644 --- a/code/modules/research/nanites/nanite_programs/sensor.dm +++ b/code/modules/research/nanites/nanite_programs/sensor.dm @@ -2,71 +2,41 @@ name = "Sensor Nanites" desc = "These nanites send a signal code when a certain condition is met." unique = FALSE - extra_settings = list("Sent Code") + var/can_rule = FALSE - var/sent_code = 0 - -/datum/nanite_program/sensor/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - -/datum/nanite_program/sensor/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - -/datum/nanite_program/sensor/copy_extra_settings_to(datum/nanite_program/sensor/target) - target.sent_code = sent_code +/datum/nanite_program/sensor/register_extra_settings() + extra_settings[NES_SENT_CODE] = new /datum/nanite_extra_setting/number(0, 1, 9999) /datum/nanite_program/sensor/proc/check_event() return FALSE /datum/nanite_program/sensor/proc/send_code() if(activated) - SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, sent_code, "a [name] program") + var/datum/nanite_extra_setting/ES = extra_settings[NES_SENT_CODE] + SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, ES.value, "a [name] program") /datum/nanite_program/sensor/active_effect() - if(sent_code && check_event()) + if(check_event()) send_code() +/datum/nanite_program/sensor/proc/make_rule(datum/nanite_program/target) + return + /datum/nanite_program/sensor/repeat name = "Signal Repeater" desc = "When triggered, sends another signal to the nanites, optionally with a delay." can_trigger = TRUE trigger_cost = 0 trigger_cooldown = 10 - extra_settings = list("Sent Code","Delay") var/spent = FALSE - var/delay = 0 -/datum/nanite_program/sensor/repeat/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Delay") - var/new_delay = input(user, "Set the delay in seconds:", name, null) as null|num - if(isnull(new_delay)) - return - delay = (CLAMP(round(new_delay, 1), 0, 3600)) * 10 //max 1 hour +/datum/nanite_program/sensor/repeat/register_extra_settings() + . = ..() + extra_settings[NES_DELAY] = new /datum/nanite_extra_setting/number(0, 0, 3600, "s") -/datum/nanite_program/sensor/repeat/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Delay") - return "[delay/10] seconds" - -/datum/nanite_program/sensor/repeat/copy_extra_settings_to(datum/nanite_program/sensor/repeat/target) - target.sent_code = sent_code - target.delay = delay - -/datum/nanite_program/sensor/repeat/trigger() - if(!..()) - return - addtimer(CALLBACK(src, .proc/send_code), delay) +/datum/nanite_program/sensor/repeat/on_trigger(comm_message) + var/datum/nanite_extra_setting/ES = extra_settings[NES_DELAY] + addtimer(CALLBACK(src, .proc/send_code), ES.get_value() * 10) /datum/nanite_program/sensor/relay_repeat name = "Relay Signal Repeater" @@ -74,98 +44,46 @@ can_trigger = TRUE trigger_cost = 0 trigger_cooldown = 10 - extra_settings = list("Sent Code","Relay Channel","Delay") var/spent = FALSE - var/delay = 0 - var/relay_channel = 0 -/datum/nanite_program/sensor/relay_repeat/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Relay Channel") - var/new_channel = input(user, "Set the relay channel (1-9999):", name, null) as null|num - if(isnull(new_channel)) - return - relay_channel = CLAMP(round(new_channel, 1), 1, 9999) - if(setting == "Delay") - var/new_delay = input(user, "Set the delay in seconds:", name, null) as null|num - if(isnull(new_delay)) - return - delay = (CLAMP(round(new_delay, 1), 0, 3600)) * 10 //max 1 hour +/datum/nanite_program/sensor/relay_repeat/register_extra_settings() + . = ..() + extra_settings[NES_RELAY_CHANNEL] = new /datum/nanite_extra_setting/number(1, 1, 9999) + extra_settings[NES_DELAY] = new /datum/nanite_extra_setting/number(0, 0, 3600, "s") -/datum/nanite_program/sensor/relay_repeat/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Relay Channel") - return relay_channel - if(setting == "Delay") - return "[delay/10] seconds" - -/datum/nanite_program/sensor/relay_repeat/copy_extra_settings_to(datum/nanite_program/sensor/relay_repeat/target) - target.sent_code = sent_code - target.delay = delay - target.relay_channel = relay_channel - -/datum/nanite_program/sensor/relay_repeat/trigger() - if(!..()) - return - addtimer(CALLBACK(src, .proc/send_code), delay) +/datum/nanite_program/sensor/relay_repeat/on_trigger(comm_message) + var/datum/nanite_extra_setting/ES = extra_settings[NES_DELAY] + addtimer(CALLBACK(src, .proc/send_code), ES.get_value() * 10) /datum/nanite_program/sensor/relay_repeat/send_code() - if(activated && relay_channel) + var/datum/nanite_extra_setting/relay = extra_settings[NES_RELAY_CHANNEL] + if(activated && relay.get_value()) for(var/X in SSnanites.nanite_relays) var/datum/nanite_program/relay/N = X - N.relay_signal(sent_code, relay_channel, "a [name] program") + var/datum/nanite_extra_setting/code = extra_settings[NES_SENT_CODE] + N.relay_signal(code.get_value(), relay.get_value(), "a [name] program") /datum/nanite_program/sensor/health name = "Health Sensor" desc = "The nanites receive a signal when the host's health is above/below a target percentage." - extra_settings = list("Sent Code","Health Percent","Direction") + can_rule = TRUE var/spent = FALSE - var/percent = 50 - var/direction = "Above" -/datum/nanite_program/sensor/health/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Health Percent") - var/new_percent = input(user, "Set the health percentage:", name, null) as null|num - if(isnull(new_percent)) - return - percent = CLAMP(round(new_percent, 1), -99, 100) - if(setting == "Direction") - if(direction == "Above") - direction = "Below" - else - direction = "Above" - -/datum/nanite_program/sensor/health/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Health Percent") - return "[percent]%" - if(setting == "Direction") - return direction - -/datum/nanite_program/sensor/health/copy_extra_settings_to(datum/nanite_program/sensor/health/target) - target.sent_code = sent_code - target.percent = percent - target.direction = direction +/datum/nanite_program/sensor/health/register_extra_settings() + . = ..() + extra_settings[NES_HEALTH_PERCENT] = new /datum/nanite_extra_setting/number(50, -99, 100, "%") + extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below") /datum/nanite_program/sensor/health/check_event() var/health_percent = host_mob.health / host_mob.maxHealth * 100 + var/datum/nanite_extra_setting/percent = extra_settings[NES_HEALTH_PERCENT] + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] var/detected = FALSE - if(direction == "Above") - if(health_percent >= percent) + if(direction.get_value()) + if(health_percent >= percent.get_value()) detected = TRUE else - if(health_percent < percent) + if(health_percent < percent.get_value()) detected = TRUE if(detected) @@ -177,9 +95,18 @@ spent = FALSE return FALSE +/datum/nanite_program/sensor/health/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/health/rule = new(target) + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/datum/nanite_extra_setting/percent = extra_settings[NES_HEALTH_PERCENT] + rule.above = direction.get_value() + rule.threshold = percent.get_value() + return rule + /datum/nanite_program/sensor/crit name = "Critical Health Sensor" desc = "The nanites receive a signal when the host first reaches critical health." + can_rule = TRUE var/spent = FALSE /datum/nanite_program/sensor/crit/check_event() @@ -192,61 +119,44 @@ spent = FALSE return FALSE +/datum/nanite_program/sensor/crit/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/crit/rule = new(target) + return rule + /datum/nanite_program/sensor/death name = "Death Sensor" desc = "The nanites receive a signal when they detect the host is dead." + can_rule = TRUE var/spent = FALSE /datum/nanite_program/sensor/death/on_death() send_code() +/datum/nanite_program/sensor/death/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/death/rule = new(target) + return rule + /datum/nanite_program/sensor/nanite_volume name = "Nanite Volume Sensor" desc = "The nanites receive a signal when the nanite supply is above/below a certain percentage." - extra_settings = list("Sent Code","Nanite Percent","Direction") + can_rule = TRUE var/spent = FALSE - var/percent = 50 - var/direction = "Above" -/datum/nanite_program/sensor/nanite_volume/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Nanite Percent") - var/new_percent = input(user, "Set the nanite percentage:", name, null) as null|num - if(isnull(new_percent)) - return - percent = CLAMP(round(new_percent, 1), 1, 100) - if(setting == "Direction") - if(direction == "Above") - direction = "Below" - else - direction = "Above" - -/datum/nanite_program/sensor/nanite_volume/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Nanite Percent") - return "[percent]%" - if(setting == "Direction") - return direction - -/datum/nanite_program/sensor/nanite_volume/copy_extra_settings_to(datum/nanite_program/sensor/nanite_volume/target) - target.sent_code = sent_code - target.percent = percent - target.direction = direction +/datum/nanite_program/sensor/nanite_volume/register_extra_settings() + . = ..() + extra_settings[NES_NANITE_PERCENT] = new /datum/nanite_extra_setting/number(50, -99, 100, "%") + extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below") /datum/nanite_program/sensor/nanite_volume/check_event() var/nanite_percent = (nanites.nanite_volume - nanites.safety_threshold)/(nanites.max_nanites - nanites.safety_threshold)*100 + var/datum/nanite_extra_setting/percent = extra_settings[NES_NANITE_PERCENT] + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] var/detected = FALSE - - if(direction == "Above") - if(nanite_percent >= percent) + if(direction.get_value()) + if(nanite_percent >= percent.get_value()) detected = TRUE else - if(nanite_percent < percent) + if(nanite_percent < percent.get_value()) detected = TRUE if(detected) @@ -258,75 +168,51 @@ spent = FALSE return FALSE +/datum/nanite_program/sensor/nanite_volume/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/nanites/rule = new(target) + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/datum/nanite_extra_setting/percent = extra_settings[NES_NANITE_PERCENT] + rule.above = direction.get_value() + rule.threshold = percent.get_value() + return rule + /datum/nanite_program/sensor/damage name = "Damage Sensor" desc = "The nanites receive a signal when a host's specific damage type is above/below a target value." - extra_settings = list("Sent Code","Damage Type","Damage","Direction") + can_rule = TRUE var/spent = FALSE - var/damage_type = "Brute" - var/damage = 50 - var/direction = "Above" -/datum/nanite_program/sensor/damage/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Damage") - var/new_damage = input(user, "Set the damage threshold:", name, null) as null|num - if(isnull(new_damage)) - return - damage = CLAMP(round(new_damage, 1), 0, 500) - if(setting == "Damage Type") - var/list/damage_types = list("Brute","Burn","Toxin","Oxygen","Cellular") - var/new_damage_type = input("Choose the damage type", name) as null|anything in damage_types - if(!new_damage_type) - return - damage_type = new_damage_type - if(setting == "Direction") - if(direction == "Above") - direction = "Below" - else - direction = "Above" - -/datum/nanite_program/sensor/damage/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Damage") - return damage - if(setting == "Damage Type") - return damage_type - if(setting == "Direction") - return direction - -/datum/nanite_program/sensor/damage/copy_extra_settings_to(datum/nanite_program/sensor/damage/target) - target.sent_code = sent_code - target.damage = damage - target.damage_type = damage_type - target.direction = direction +/datum/nanite_program/sensor/damage/register_extra_settings() + . = ..() + extra_settings[NES_DAMAGE_TYPE] = new /datum/nanite_extra_setting/type(BRUTE, list(BRUTE, BURN, TOX, OXY, CLONE)) + extra_settings[NES_DAMAGE] = new /datum/nanite_extra_setting/number(50, 0, 500) + extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below") /datum/nanite_program/sensor/damage/check_event() var/reached_threshold = FALSE - var/check_above = (direction == "Above") + var/datum/nanite_extra_setting/type = extra_settings[NES_DAMAGE_TYPE] + var/datum/nanite_extra_setting/damage = extra_settings[NES_DAMAGE] + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/check_above = direction.get_value() var/damage_amt = 0 - switch(damage_type) - if("Brute") + switch(type.get_value()) + if(BRUTE) damage_amt = host_mob.getBruteLoss() - if("Burn") + if(BURN) damage_amt = host_mob.getFireLoss() - if("Toxin") + if(TOX) damage_amt = host_mob.getToxLoss() - if("Oxygen") + if(OXY) damage_amt = host_mob.getOxyLoss() - if("Cellular") + if(CLONE) damage_amt = host_mob.getCloneLoss() - if(damage_amt >= damage) - if(check_above) + if(check_above) + if(damage_amt >= damage.get_value()) + reached_threshold = TRUE + else + if(damage_amt < damage.get_value()) reached_threshold = TRUE - else if(!check_above) - reached_threshold = TRUE if(reached_threshold) if(!spent) @@ -337,14 +223,25 @@ spent = FALSE return FALSE +/datum/nanite_program/sensor/damage/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/damage/rule = new(target) + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/datum/nanite_extra_setting/damage_type = extra_settings[NES_DAMAGE_TYPE] + var/datum/nanite_extra_setting/damage = extra_settings[NES_DAMAGE] + rule.above = direction.get_value() + rule.threshold = damage.get_value() + rule.damage_type = damage_type.get_value() + return rule + /datum/nanite_program/sensor/voice name = "Voice Sensor" desc = "Sends a signal when the nanites hear a determined word or sentence." - extra_settings = list("Sent Code","Sentence","Inclusive Mode") var/spent = FALSE - var/sentence = "" - var/inclusive = TRUE +/datum/nanite_program/sensor/voice/register_extra_settings() + . = ..() + extra_settings[NES_SENTENCE] = new /datum/nanite_extra_setting/text("") + extra_settings[NES_INCLUSIVE_MODE] = new /datum/nanite_extra_setting/boolean(TRUE, "Inclusive", "Exclusive") /datum/nanite_program/sensor/voice/on_mob_add() . = ..() @@ -353,45 +250,14 @@ /datum/nanite_program/sensor/voice/on_mob_remove() UnregisterSignal(host_mob, COMSIG_MOVABLE_HEAR, .proc/on_hear) -/datum/nanite_program/sensor/voice/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Sentence") - var/new_sentence = stripped_input(user, "Choose the sentence that triggers the sensor.", "Sentence", sentence, MAX_MESSAGE_LEN) - if(!new_sentence) - return - sentence = new_sentence - if(setting == "Inclusive Mode") - var/new_inclusive = input("Should the sensor detect the sentence if contained within another sentence?", name) as null|anything in list("Inclusive","Exclusive") - if(!new_inclusive) - return - inclusive = (new_inclusive == "Inclusive") - -/datum/nanite_program/sensor/voice/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Sentence") - return sentence - if(setting == "Inclusive Mode") - if(inclusive) - return "Inclusive" - else - return "Exclusive" - -/datum/nanite_program/sensor/voice/copy_extra_settings_to(datum/nanite_program/sensor/voice/target) - target.sent_code = sent_code - target.sentence = sentence - target.inclusive = inclusive - /datum/nanite_program/sensor/voice/proc/on_hear(datum/source, list/hearing_args) - if(!sentence) + var/datum/nanite_extra_setting/sentence = extra_settings[NES_SENTENCE] + var/datum/nanite_extra_setting/inclusive = extra_settings[NES_INCLUSIVE_MODE] + if(!sentence.get_value()) return - if(inclusive) + if(inclusive.get_value()) if(findtextEx(hearing_args[HEARING_RAW_MESSAGE], sentence)) send_code() else if(hearing_args[HEARING_RAW_MESSAGE] == sentence) - send_code() \ No newline at end of file + send_code() diff --git a/code/modules/research/nanites/nanite_programs/suppression.dm b/code/modules/research/nanites/nanite_programs/suppression.dm index 4568268c81..611e9e774e 100644 --- a/code/modules/research/nanites/nanite_programs/suppression.dm +++ b/code/modules/research/nanites/nanite_programs/suppression.dm @@ -1,15 +1,14 @@ //Programs that are generally useful for population control and non-harmful suppression. -/datum/nanite_program/triggered/sleepy +/datum/nanite_program/sleepy name = "Sleep Induction" desc = "The nanites cause rapid narcolepsy when triggered." + can_trigger = TRUE trigger_cost = 15 trigger_cooldown = 1200 rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay) -/datum/nanite_program/triggered/sleepy/trigger() - if(!..()) - return +/datum/nanite_program/sleepy/on_trigger(comm_message) to_chat(host_mob, "You start to feel very sleepy...") host_mob.drowsyness += 20 addtimer(CALLBACK(host_mob, /mob/living.proc/Sleeping, 200), rand(60,200)) @@ -31,31 +30,31 @@ . = ..() to_chat(host_mob, "Your muscles relax, and you can move again.") -/datum/nanite_program/triggered/shocking +/datum/nanite_program/shocking name = "Electric Shock" desc = "The nanites shock the host when triggered. Destroys a large amount of nanites!" + can_trigger = TRUE trigger_cost = 10 trigger_cooldown = 300 program_flags = NANITE_SHOCK_IMMUNE rogue_types = list(/datum/nanite_program/toxic) -/datum/nanite_program/triggered/shocking/trigger() - if(!..()) - return +/datum/nanite_program/shocking/on_trigger(comm_message) host_mob.electrocute_act(rand(5,10), "shock nanites", TRUE, TRUE) -/datum/nanite_program/triggered/stun +/datum/nanite_program/stun name = "Neural Shock" desc = "The nanites pulse the host's nerves when triggered, inapacitating them for a short period." + can_trigger = TRUE trigger_cost = 4 trigger_cooldown = 300 - rogue_types = list(/datum/nanite_program/triggered/shocking, /datum/nanite_program/nerve_decay) + rogue_types = list(/datum/nanite_program/shocking, /datum/nanite_program/nerve_decay) /datum/nanite_program/triggered/stun/trigger() if(!..()) return - playsound(host_mob, "sparks", 75, 1, -1) host_mob.DefaultCombatKnockdown(80) + playsound(host_mob, "sparks", 75, TRUE, -1) /datum/nanite_program/pacifying name = "Pacification" @@ -115,64 +114,50 @@ host_mob.cure_fakedeath("nanites") //Can receive transmissions from a nanite communication remote for customized messages -/datum/nanite_program/triggered/comm +/datum/nanite_program/comm + can_trigger = TRUE var/comm_code = 0 var/comm_message = "" -/datum/nanite_program/triggered/comm/proc/receive_comm_signal(signal_comm_code, comm_message, comm_source) +/datum/nanite_program/comm/register_extra_settings() + extra_settings[NES_COMM_CODE] = new /datum/nanite_extra_setting/number(0, 0, 9999) + +/datum/nanite_program/comm/proc/receive_comm_signal(signal_comm_code, comm_message, comm_source) if(!activated || !comm_code) return if(signal_comm_code == comm_code) host_mob.investigate_log("'s [name] nanite program was messaged by [comm_source] with comm code [signal_comm_code] and message '[comm_message]'.", INVESTIGATE_NANITES) trigger(comm_message) -/datum/nanite_program/triggered/comm/speech +/datum/nanite_program/comm/speech name = "Forced Speech" desc = "The nanites force the host to say a pre-programmed sentence when triggered." unique = FALSE trigger_cost = 3 trigger_cooldown = 20 rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay) + var/static/list/blacklist = list( + "*surrender", + "*collapse" + ) - extra_settings = list("Sentence","Comm Code") - var/sentence = "" +/datum/nanite_program/comm/speech/register_extra_settings() + . = ..() + extra_settings[NES_SENTENCE] = new /datum/nanite_extra_setting/text("") -/datum/nanite_program/triggered/comm/speech/set_extra_setting(user, setting) - if(setting == "Sentence") - var/new_sentence = stripped_input(user, "Choose the sentence that the host will be forced to say.", "Sentence", sentence, MAX_MESSAGE_LEN) - if(!new_sentence) - return - if(new_sentence[1] == "*") //emotes are abusable, like surrender - return - sentence = new_sentence - if(setting == "Comm Code") - var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num - if(isnull(new_code)) - return - comm_code = CLAMP(round(new_code, 1), 0, 9999) - -/datum/nanite_program/triggered/comm/speech/get_extra_setting(setting) - if(setting == "Sentence") - return sentence - if(setting == "Comm Code") - return comm_code - -/datum/nanite_program/triggered/comm/speech/copy_extra_settings_to(datum/nanite_program/triggered/comm/speech/target) - target.sentence = sentence - target.comm_code = comm_code - -/datum/nanite_program/triggered/comm/speech/trigger(comm_message) - if(!..()) - return +/datum/nanite_program/comm/speech/on_trigger(comm_message) var/sent_message = comm_message if(!comm_message) - sent_message = sentence + var/datum/nanite_extra_setting/sentence = extra_settings[NES_SENTENCE] + sent_message = sentence.get_value() + if(sent_message in blacklist) + return if(host_mob.stat == DEAD) return to_chat(host_mob, "You feel compelled to speak...") host_mob.say(sent_message, forced = "nanite speech") -/datum/nanite_program/triggered/comm/voice +/datum/nanite_program/comm/voice name = "Skull Echo" desc = "The nanites echo a synthesized message inside the host's skull." unique = FALSE @@ -180,56 +165,50 @@ trigger_cooldown = 20 rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay) - extra_settings = list("Message","Comm Code") - var/message = "" +/datum/nanite_program/comm/voice/register_extra_settings() + . = ..() + extra_settings[NES_MESSAGE] = new /datum/nanite_extra_setting/text("") -/datum/nanite_program/triggered/comm/voice/set_extra_setting(user, setting) - if(setting == "Message") - var/new_message = stripped_input(user, "Choose the message sent to the host.", "Message", message, MAX_MESSAGE_LEN) - if(!new_message) - return - message = new_message - if(setting == "Comm Code") - var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num - if(isnull(new_code)) - return - comm_code = CLAMP(round(new_code, 1), 0, 9999) - -/datum/nanite_program/triggered/comm/voice/get_extra_setting(setting) - if(setting == "Message") - return message - if(setting == "Comm Code") - return comm_code - -/datum/nanite_program/triggered/comm/voice/copy_extra_settings_to(datum/nanite_program/triggered/comm/voice/target) - target.message = message - target.comm_code = comm_code - -/datum/nanite_program/triggered/comm/voice/trigger(comm_message) - if(!..()) - return +/datum/nanite_program/comm/voice/on_trigger(comm_message) var/sent_message = comm_message if(!comm_message) - sent_message = message + var/datum/nanite_extra_setting/message_setting = extra_settings[NES_MESSAGE] + sent_message = message_setting.get_value() if(host_mob.stat == DEAD) return to_chat(host_mob, "You hear a strange, robotic voice in your head... \"[sent_message]\"") -/datum/nanite_program/triggered/comm/hallucination +/datum/nanite_program/comm/hallucination name = "Hallucination" desc = "The nanites make the host hallucinate something when triggered." trigger_cost = 4 trigger_cooldown = 80 unique = FALSE rogue_types = list(/datum/nanite_program/brain_misfire) - extra_settings = list("Hallucination Type", "Comm Code") - var/hal_type - var/hal_details -/datum/nanite_program/triggered/comm/hallucination/trigger(comm_message) - if(!..()) - return +/datum/nanite_program/comm/hallucination/register_extra_settings() + . = ..() + var/list/options = list( + "Message", + "Battle", + "Sound", + "Weird Sound", + "Station Message", + "Health", + "Alert", + "Fire", + "Shock", + "Plasma Flood", + "Random" + ) + extra_settings[NES_HALLUCINATION_TYPE] = new /datum/nanite_extra_setting/type("Message", options) + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/text("") +/datum/nanite_program/comm/hallucination/on_trigger(comm_message) + var/datum/nanite_extra_setting/hal_setting = extra_settings[NES_HALLUCINATION_TYPE] + var/hal_type = hal_setting.get_value() + var/datum/nanite_extra_setting/hal_detail_setting = extra_settings[NES_HALLUCINATION_DETAIL] + var/hal_details = hal_detail_setting.get_value() if(comm_message && (hal_type != "Message")) //Triggered via comm remote, but not set to a message hallucination return var/sent_message = comm_message //Comm remotes can send custom hallucination messages for the chat hallucination @@ -239,7 +218,9 @@ if(!iscarbon(host_mob)) return var/mob/living/carbon/C = host_mob - if(!hal_type) + if(hal_details == "random") + hal_details = null + if(hal_type == "Random") C.hallucination += 15 else switch(hal_type) @@ -254,6 +235,13 @@ if("Station Message") new /datum/hallucination/stationmessage(C, TRUE, hal_details) if("Health") + switch(hal_details) + if("critical") + hal_details = SCREWYHUD_CRIT + if("dead") + hal_details = SCREWYHUD_DEAD + if("healthy") + hal_details = SCREWYHUD_HEALTHY new /datum/hallucination/hudscrew(C, TRUE, hal_details) if("Alert") new /datum/hallucination/fake_alert(C, TRUE, hal_details) @@ -264,127 +252,40 @@ if("Plasma Flood") new /datum/hallucination/fake_flood(C, TRUE) -/datum/nanite_program/triggered/comm/hallucination/set_extra_setting(user, setting) - if(setting == "Comm Code") - var/new_code = input(user, "(Only for Message) Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num - if(isnull(new_code)) - return - comm_code = CLAMP(round(new_code, 1), 0, 9999) - - if(setting == "Hallucination Type") - var/list/possible_hallucinations = list("Random","Message","Battle","Sound","Weird Sound","Station Message","Health","Alert","Fire","Shock","Plasma Flood") - var/hal_type_choice = input("Choose the hallucination type", name) as null|anything in possible_hallucinations - if(!hal_type_choice) - return - switch(hal_type_choice) - if("Random") - hal_type = null - hal_details = null +/datum/nanite_program/comm/hallucination/set_extra_setting(setting, value) + . = ..() + if(setting == NES_HALLUCINATION_TYPE) + switch(value) if("Message") - hal_type = "Message" - var/hal_chat = stripped_input(user, "Choose the message the host will hear, or leave empty for random messages.", "Message", hal_details, MAX_MESSAGE_LEN) - if(hal_chat) - hal_details = hal_chat + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/text("") if("Battle") - hal_type = "Battle" - var/sound_list = list("random","laser","disabler","esword","gun","stunprod","harmbaton","bomb") - var/hal_choice = input("Choose the hallucination battle type", name) as null|anything in sound_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - hal_details = hal_choice + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","laser","disabler","esword","gun","stunprod","harmbaton","bomb")) if("Sound") - hal_type = "Sound" - var/sound_list = list("random","airlock","airlock pry","console","explosion","far explosion","mech","glass","alarm","beepsky","mech","wall decon","door hack") - var/hal_choice = input("Choose the hallucination sound", name) as null|anything in sound_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - hal_details = hal_choice + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","airlock","airlock pry","console","explosion","far explosion","mech","glass","alarm","beepsky","mech","wall decon","door hack")) if("Weird Sound") - hal_type = "Weird Sound" - var/sound_list = list("random","phone","hallelujah","highlander","laughter","hyperspace","game over","creepy","tesla") - var/hal_choice = input("Choose the hallucination sound", name) as null|anything in sound_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - hal_details = hal_choice + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","phone","hallelujah","highlander","laughter","hyperspace","game over","creepy","tesla")) if("Station Message") - hal_type = "Station Message" - var/msg_list = list("random","ratvar","shuttle dock","blob alert","malf ai","meteors","supermatter") - var/hal_choice = input("Choose the hallucination station message", name) as null|anything in msg_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - hal_details = hal_choice + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","ratvar","shuttle dock","blob alert","malf ai","meteors","supermatter")) if("Health") - hal_type = "Health" - var/health_list = list("random","critical","dead","healthy") - var/hal_choice = input("Choose the health status", name) as null|anything in health_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - switch(hal_choice) - if("critical") - hal_details = SCREWYHUD_CRIT - if("dead") - hal_details = SCREWYHUD_DEAD - if("healthy") - hal_details = SCREWYHUD_HEALTHY + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","critical","dead","healthy")) if("Alert") - hal_type = "Alert" - var/alert_list = list("random","not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","gravity","fire","locked","hacked","temphot","tempcold","pressure") - var/hal_choice = input("Choose the alert", name) as null|anything in alert_list - if(!hal_choice || hal_choice == "random") - hal_details = null - else - hal_details = hal_choice - if("Fire") - hal_type = "Fire" - if("Shock") - hal_type = "Shock" - if("Plasma Flood") - hal_type = "Plasma Flood" - -/datum/nanite_program/triggered/comm/hallucination/get_extra_setting(setting) - if(setting == "Hallucination Type") - if(!hal_type) - return "Random" - else - return hal_type - if(setting == "Comm Code") - return comm_code - -/datum/nanite_program/triggered/comm/hallucination/copy_extra_settings_to(datum/nanite_program/triggered/comm/hallucination/target) - target.hal_type = hal_type - target.hal_details = hal_details - target.comm_code = comm_code + extra_settings[NES_HALLUCINATION_DETAIL] = new /datum/nanite_extra_setting/type("random", list("random","not_enough_oxy","not_enough_tox","not_enough_co2","too_much_oxy","too_much_co2","too_much_tox","newlaw","nutrition","charge","gravity","fire","locked","hacked","temphot","tempcold","pressure")) + else + extra_settings.Remove(NES_HALLUCINATION_DETAIL) /datum/nanite_program/good_mood name = "Happiness Enhancer" desc = "The nanites synthesize serotonin inside the host's brain, creating an artificial sense of happiness." use_rate = 0.1 rogue_types = list(/datum/nanite_program/brain_decay) - extra_settings = list("Mood Message") - var/message = "HAPPINESS ENHANCEMENT" -/datum/nanite_program/good_mood/set_extra_setting(user, setting) - if(setting == "Mood Message") - var/new_message = stripped_input(user, "Choose the message visible on the mood effect.", "Message", message, MAX_NAME_LEN) - if(!new_message) - return - message = new_message - -/datum/nanite_program/good_mood/get_extra_setting(setting) - if(setting == "Mood Message") - return message - -/datum/nanite_program/good_mood/copy_extra_settings_to(datum/nanite_program/good_mood/target) - target.message = message +/datum/nanite_program/good_mood/register_extra_settings() + . = ..() + extra_settings[NES_MOOD_MESSAGE] = new /datum/nanite_extra_setting/text("HAPPINESS ENHANCEMENT") /datum/nanite_program/good_mood/enable_passive_effect() . = ..() - SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_happy", /datum/mood_event/nanite_happiness, message) + SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_happy", /datum/mood_event/nanite_happiness, get_extra_setting_value(NES_MOOD_MESSAGE)) /datum/nanite_program/good_mood/disable_passive_effect() . = ..() @@ -395,26 +296,14 @@ desc = "The nanites suppress the production of serotonin inside the host's brain, creating an artificial state of depression." use_rate = 0.1 rogue_types = list(/datum/nanite_program/brain_decay) - extra_settings = list("Mood Message") - var/message = "HAPPINESS SUPPRESSION" -/datum/nanite_program/bad_mood/set_extra_setting(user, setting) - if(setting == "Mood Message") - var/new_message = stripped_input(user, "Choose the message visible on the mood effect.", "Message", message, MAX_NAME_LEN) - if(!new_message) - return - message = new_message - -/datum/nanite_program/bad_mood/get_extra_setting(setting) - if(setting == "Mood Message") - return message - -/datum/nanite_program/bad_mood/copy_extra_settings_to(datum/nanite_program/bad_mood/target) - target.message = message +/datum/nanite_program/bad_mood/register_extra_settings() + . = ..() + extra_settings[NES_MOOD_MESSAGE] = new /datum/nanite_extra_setting/text("HAPPINESS SUPPRESSION") /datum/nanite_program/bad_mood/enable_passive_effect() . = ..() - SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_sadness", /datum/mood_event/nanite_sadness, message) + SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_sadness", /datum/mood_event/nanite_sadness, get_extra_setting_value(NES_MOOD_MESSAGE)) /datum/nanite_program/bad_mood/disable_passive_effect() . = ..() diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm index deafbcd02c..6352f50b8b 100644 --- a/code/modules/research/nanites/nanite_programs/utility.dm +++ b/code/modules/research/nanites/nanite_programs/utility.dm @@ -1,82 +1,29 @@ //Programs that interact with other programs or nanites directly, or have other special purposes. /datum/nanite_program/viral name = "Viral Replica" - desc = "The nanites constantly send encrypted signals attempting to forcefully copy their own programming into other nanite clusters." + desc = "The nanites constantly send encrypted signals attempting to forcefully copy their own programming into other nanite clusters, also overriding or disabling their cloud sync." use_rate = 0.5 rogue_types = list(/datum/nanite_program/toxic) - extra_settings = list("Program Overwrite","Cloud Overwrite") - var/pulse_cooldown = 0 - var/sync_programs = TRUE - var/sync_overwrite = FALSE - var/overwrite_cloud = FALSE - var/set_cloud = 0 -/datum/nanite_program/viral/set_extra_setting(user, setting) - if(setting == "Program Overwrite") - var/overwrite_type = input("Choose what to do with the target's programs", name) as null|anything in list("Overwrite","Add To","Ignore") - if(!overwrite_type) - return - switch(overwrite_type) - if("Ignore") //Do not affect programs (if you only want to set the cloud ID) - sync_programs = FALSE - sync_overwrite = FALSE - if("Add To") //Add to existing programs (so the target does not notice theirs are missing) - sync_programs = TRUE - sync_overwrite = FALSE - if("Overwrite") //Replace target's programs with the source - sync_programs = TRUE - sync_overwrite = TRUE - if(setting == "Cloud Overwrite") - var/overwrite_type = input("Choose what to do with the target's Cloud ID", name) as null|anything in list("Overwrite","Disable","Keep") - if(!overwrite_type) - return - switch(overwrite_type) - if("Keep") //Don't change the cloud ID - overwrite_cloud = FALSE - set_cloud = 0 - if("Disable") //Set the cloud ID to disabled - overwrite_cloud = TRUE - set_cloud = 0 - if("Overwrite") //Set the cloud ID to what we choose - var/new_cloud = input(user, "Choose the Cloud ID to set on infected nanites (1-100)", name, null) as null|num - if(isnull(new_cloud)) - return - overwrite_cloud = TRUE - set_cloud = CLAMP(round(new_cloud, 1), 1, 100) - -/datum/nanite_program/viral/get_extra_setting(setting) - if(setting == "Program Overwrite") - if(!sync_programs) - return "Ignore" - else if(sync_overwrite) - return "Overwrite" - else - return "Add To" - if(setting == "Cloud Overwrite") - if(!overwrite_cloud) - return "None" - else if(set_cloud == 0) - return "Disable" - else - return set_cloud - -/datum/nanite_program/viral/copy_extra_settings_to(datum/nanite_program/viral/target) - target.overwrite_cloud = overwrite_cloud - target.set_cloud = set_cloud - target.sync_programs = sync_programs - target.sync_overwrite = sync_overwrite +/datum/nanite_program/viral/register_extra_settings() + extra_settings[NES_PROGRAM_OVERWRITE] = new /datum/nanite_extra_setting/type("Add To", list("Overwrite", "Add To", "Ignore")) + extra_settings[NES_CLOUD_OVERWRITE] = new /datum/nanite_extra_setting/number(0, 0, 100) /datum/nanite_program/viral/active_effect() if(world.time < pulse_cooldown) return + var/datum/nanite_extra_setting/program = extra_settings[NES_PROGRAM_OVERWRITE] + var/datum/nanite_extra_setting/cloud = extra_settings[NES_CLOUD_OVERWRITE] for(var/mob/M in orange(host_mob, 5)) if(SEND_SIGNAL(M, COMSIG_NANITE_IS_STEALTHY)) continue - if(sync_programs) - SEND_SIGNAL(M, COMSIG_NANITE_SYNC, nanites, sync_overwrite) - if(overwrite_cloud) - SEND_SIGNAL(M, COMSIG_NANITE_SET_CLOUD, set_cloud) + switch(program.get_value()) + if("Overwrite") + SEND_SIGNAL(M, COMSIG_NANITE_SYNC, nanites, TRUE) + if("Add To") + SEND_SIGNAL(M, COMSIG_NANITE_SYNC, nanites, FALSE) + SEND_SIGNAL(M, COMSIG_NANITE_SET_CLOUD, cloud.get_value()) pulse_cooldown = world.time + 75 /datum/nanite_program/monitoring @@ -94,38 +41,23 @@ SSnanites.nanite_monitored_mobs -= host_mob host_mob.hud_set_nanite_indicator() -/datum/nanite_program/triggered/self_scan +/datum/nanite_program/self_scan name = "Host Scan" desc = "The nanites display a detailed readout of a body scan to the host." unique = FALSE + can_trigger = TRUE trigger_cost = 3 trigger_cooldown = 50 rogue_types = list(/datum/nanite_program/toxic) - extra_settings = list("Scan Type") - var/scan_type = "Medical" +/datum/nanite_program/self_scan/register_extra_settings() + extra_settings[NES_SCAN_TYPE] = new /datum/nanite_extra_setting/type("Medical", list("Medical", "Chemical", "Nanite")) -/datum/nanite_program/triggered/self_scan/set_extra_setting(user, setting) - if(setting == "Scan Type") - var/list/scan_types = list("Medical","Chemical","Nanite") - var/new_scan_type = input("Choose the scan type", name) as null|anything in scan_types - if(!new_scan_type) - return - scan_type = new_scan_type - -/datum/nanite_program/triggered/self_scan/get_extra_setting(setting) - if(setting == "Scan Type") - return scan_type - -/datum/nanite_program/triggered/self_scan/copy_extra_settings_to(datum/nanite_program/triggered/self_scan/target) - target.scan_type = scan_type - -/datum/nanite_program/triggered/self_scan/trigger() - if(!..()) - return +/datum/nanite_program/self_scan/on_trigger(comm_message) if(host_mob.stat == DEAD) return - switch(scan_type) + var/datum/nanite_extra_setting/NS = extra_settings[NES_SCAN_TYPE] + switch(NS.get_value()) if("Medical") healthscan(host_mob, host_mob) if("Chemical") @@ -162,28 +94,13 @@ . = ..() nanites.diagnostics = TRUE - /datum/nanite_program/relay name = "Relay" desc = "The nanites receive and relay long-range nanite signals." rogue_types = list(/datum/nanite_program/toxic) - extra_settings = list("Relay Channel") - var/relay_channel = 1 - -/datum/nanite_program/relay/set_extra_setting(user, setting) - if(setting == "Relay Channel") - var/new_channel = input(user, "Set the relay channel (1-9999):", name, null) as null|num - if(isnull(new_channel)) - return - relay_channel = CLAMP(round(new_channel, 1), 1, 9999) - -/datum/nanite_program/relay/get_extra_setting(setting) - if(setting == "Relay Channel") - return relay_channel - -/datum/nanite_program/relay/copy_extra_settings_to(datum/nanite_program/relay/target) - target.relay_channel = relay_channel +/datum/nanite_program/relay/register_extra_settings() + extra_settings[NES_RELAY_CHANNEL] = new /datum/nanite_extra_setting/number(1, 1, 9999) /datum/nanite_program/relay/enable_passive_effect() . = ..() @@ -198,7 +115,8 @@ return if(!host_mob) return - if(relay_code != relay_channel) + var/datum/nanite_extra_setting/NS = extra_settings[NES_RELAY_CHANNEL] + if(relay_code != NS.get_value()) return SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, code, source) @@ -207,7 +125,8 @@ return if(!host_mob) return - if(relay_code != relay_channel) + var/datum/nanite_extra_setting/NS = extra_settings[NES_RELAY_CHANNEL] + if(relay_code != NS.get_value()) return SEND_SIGNAL(host_mob, COMSIG_NANITE_COMM_SIGNAL, comm_code, comm_message) @@ -228,14 +147,64 @@ host_mob.nutrition -= 0.5 nanites.adjust_nanites(src, 0.5) -/datum/nanite_program/triggered/access +/datum/nanite_program/research + name = "Distributed Computing" + desc = "The nanites aid the research servers by performing a portion of its calculations, increasing research point generation." + use_rate = 0.2 + rogue_types = list(/datum/nanite_program/toxic) + +/datum/nanite_program/research/active_effect() + if(!iscarbon(host_mob)) + return + var/points = 1 + if(!host_mob.client) //less brainpower + points *= 0.25 + SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points)) + +/datum/nanite_program/researchplus + name = "Neural Network" + desc = "The nanites link the host's brains together forming a neural research network, that becomes more efficient with the amount of total hosts." + use_rate = 0.3 + rogue_types = list(/datum/nanite_program/brain_decay) + +/datum/nanite_program/researchplus/enable_passive_effect() + . = ..() + if(!iscarbon(host_mob)) + return + if(host_mob.client) + SSnanites.neural_network_count++ + else + SSnanites.neural_network_count += 0.25 + +/datum/nanite_program/researchplus/disable_passive_effect() + . = ..() + if(!iscarbon(host_mob)) + return + if(host_mob.client) + SSnanites.neural_network_count-- + else + SSnanites.neural_network_count -= 0.25 + +/datum/nanite_program/researchplus/active_effect() + if(!iscarbon(host_mob)) + return + var/mob/living/carbon/C = host_mob + var/points = round(SSnanites.neural_network_count / 12, 0.1) + if(!C.client) //less brainpower + points *= 0.25 + SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points)) + +/datum/nanite_program/access name = "Subdermal ID" desc = "The nanites store the host's ID access rights in a subdermal magnetic strip. Updates when triggered, copying the host's current access." + can_trigger = TRUE + trigger_cost = 3 + trigger_cooldown = 30 rogue_types = list(/datum/nanite_program/skin_decay) var/access = list() //Syncs the nanites with the cumulative current mob's access level. Can potentially wipe existing access. -/datum/nanite_program/triggered/access/trigger() +/datum/nanite_program/access/on_trigger(comm_message) var/list/new_access = list() var/obj/item/current_item current_item = host_mob.get_active_held_item() @@ -284,19 +253,42 @@ SEND_SIGNAL(infectee, COMSIG_NANITE_SYNC, nanites) infectee.investigate_log("was infected by spreading nanites by [key_name(host_mob)] at [AREACOORD(infectee)].", INVESTIGATE_NANITES) +/datum/nanite_program/nanite_sting + name = "Nanite Sting" + desc = "When triggered, projects a nearly invisible spike of nanites that attempts to infect a nearby non-host with a copy of the host's nanites cluster." + can_trigger = TRUE + trigger_cost = 5 + trigger_cooldown = 100 + rogue_types = list(/datum/nanite_program/glitch, /datum/nanite_program/toxic) + +/datum/nanite_program/nanite_sting/on_trigger(comm_message) + var/list/mob/living/target_hosts = list() + for(var/mob/living/L in oview(1, host_mob)) + if(!(L.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD)) || SEND_SIGNAL(L, COMSIG_HAS_NANITES) || !L.Adjacent(host_mob)) + continue + target_hosts += L + if(!target_hosts.len) + consume_nanites(-5) + return + var/mob/living/infectee = pick(target_hosts) + if(prob(100 - (infectee.get_permeability_protection() * 100))) + //unlike with Infective Exo-Locomotion, this can't take over existing nanites, because Nanite Sting only targets non-hosts. + infectee.AddComponent(/datum/component/nanites, 5) + SEND_SIGNAL(infectee, COMSIG_NANITE_SYNC, nanites) + infectee.investigate_log("was infected by a nanite cluster by [key_name(host_mob)] at [AREACOORD(infectee)].", INVESTIGATE_NANITES) + to_chat(infectee, "You feel a tiny prick.") + /datum/nanite_program/mitosis name = "Mitosis" - desc = "The nanites gain the ability to self-replicate, using bluespace to power the process, instead of drawing from a template. This rapidly speeds up the replication rate,\ - but it causes occasional software errors due to faulty copies. Not compatible with cloud sync." + desc = "The nanites gain the ability to self-replicate, using bluespace to power the process. Becomes more effective the more nanites are already in the host.\ + The replication has also a chance to corrupt the nanite programming due to copy faults - cloud sync is highly recommended." use_rate = 0 rogue_types = list(/datum/nanite_program/toxic) /datum/nanite_program/mitosis/active_effect() - if(nanites.cloud_id) - return var/rep_rate = round(nanites.nanite_volume / 50, 1) //0.5 per 50 nanite volume rep_rate *= 0.5 - nanites.adjust_nanites(rep_rate) + nanites.adjust_nanites(null, rep_rate) if(prob(rep_rate)) var/datum/nanite_program/fault = pick(nanites.programs) if(fault == src) @@ -306,56 +298,22 @@ /datum/nanite_program/dermal_button name = "Dermal Button" desc = "Displays a button on the host's skin, which can be used to send a signal to the nanites." - extra_settings = list("Sent Code","Button Name","Icon","Color") unique = FALSE var/datum/action/innate/nanite_button/button - var/button_name = "Button" - var/icon = "power" - var/color = "green" - var/sent_code = 0 -/datum/nanite_program/dermal_button/set_extra_setting(user, setting) - if(setting == "Sent Code") - var/new_code = input(user, "Set the sent code (1-9999):", name, null) as null|num - if(isnull(new_code)) - return - sent_code = CLAMP(round(new_code, 1), 1, 9999) - if(setting == "Button Name") - var/new_button_name = stripped_input(user, "Choose the name for the button.", "Button Name", button_name, MAX_NAME_LEN) - if(!new_button_name) - return - button_name = new_button_name - if(setting == "Icon") - var/new_icon = input("Select the icon to display on the button:", name) as null|anything in list("one","two","three","four","five","plus","minus","power") - if(!new_icon) - return - icon = new_icon - if(setting == "Color") - var/new_color = input("Select the color of the button's icon:", name) as null|anything in list("green","red","yellow","blue") - if(!new_color) - return - color = new_color - -/datum/nanite_program/dermal_button/get_extra_setting(setting) - if(setting == "Sent Code") - return sent_code - if(setting == "Button Name") - return button_name - if(setting == "Icon") - return capitalize(icon) - if(setting == "Color") - return capitalize(color) - -/datum/nanite_program/dermal_button/copy_extra_settings_to(datum/nanite_program/dermal_button/target) - target.sent_code = sent_code - target.button_name = button_name - target.icon = icon - target.color = color +/datum/nanite_program/dermal_button/register_extra_settings() + extra_settings[NES_SENT_CODE] = new /datum/nanite_extra_setting/number(1, 1, 9999) + extra_settings[NES_BUTTON_NAME] = new /datum/nanite_extra_setting/text("Button") + extra_settings[NES_ICON] = new /datum/nanite_extra_setting/type("power", list("one","two","three","four","five","plus","minus","power")) + extra_settings[NES_COLOR] = new /datum/nanite_extra_setting/type("green", list("green","red","yellow","blue")) /datum/nanite_program/dermal_button/enable_passive_effect() . = ..() + var/datum/nanite_extra_setting/bn_name = extra_settings[NES_BUTTON_NAME] + var/datum/nanite_extra_setting/bn_icon = extra_settings[NES_ICON] + var/datum/nanite_extra_setting/bn_color = extra_settings[NES_COLOR] if(!button) - button = new(src, button_name, icon, color) + button = new(src, bn_name.get_value(), bn_icon.get_value(), bn_color.get_value()) button.target = host_mob button.Grant(host_mob) @@ -372,7 +330,8 @@ if(activated) host_mob.visible_message("[host_mob] presses a button on [host_mob.p_their()] forearm.", "You press the nanite button on your forearm.", null, 2) - SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, sent_code, "a [name] program") + var/datum/nanite_extra_setting/sent_code = extra_settings[NES_SENT_CODE] + SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, sent_code.get_value(), "a [name] program") /datum/action/innate/nanite_button name = "Button" @@ -389,51 +348,3 @@ /datum/action/innate/nanite_button/Activate() program.press() - -/datum/nanite_program/research - name = "Distributed Computing" - desc = "The nanites aid the research servers by performing a portion of its calculations, increasing research point generation." - use_rate = 0.2 - rogue_types = list(/datum/nanite_program/toxic) - -/datum/nanite_program/research/active_effect() - if(!iscarbon(host_mob)) - return - var/points = 1 - if(!host_mob.client) //less brainpower - points *= 0.25 - SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points)) - -/datum/nanite_program/researchplus - name = "Neural Network" - desc = "The nanites link the host's brains together forming a neural research network, that becomes more efficient with the amount of total hosts." - use_rate = 0.3 - rogue_types = list(/datum/nanite_program/brain_decay) - -/datum/nanite_program/researchplus/enable_passive_effect() - . = ..() - if(!iscarbon(host_mob)) - return - if(host_mob.client) - SSnanites.neural_network_count++ - else - SSnanites.neural_network_count += 0.25 - -/datum/nanite_program/researchplus/disable_passive_effect() - . = ..() - if(!iscarbon(host_mob)) - return - if(host_mob.client) - SSnanites.neural_network_count-- - else - SSnanites.neural_network_count -= 0.25 - -/datum/nanite_program/researchplus/active_effect() - if(!iscarbon(host_mob)) - return - var/mob/living/carbon/C = host_mob - var/points = round(SSnanites.neural_network_count / 12, 0.1) - if(!C.client) //less brainpower - points *= 0.25 - SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = points)) - diff --git a/code/modules/research/nanites/nanite_programs/weapon.dm b/code/modules/research/nanites/nanite_programs/weapon.dm index f634b2088c..bd2b9618de 100644 --- a/code/modules/research/nanites/nanite_programs/weapon.dm +++ b/code/modules/research/nanites/nanite_programs/weapon.dm @@ -73,21 +73,20 @@ . = ..() to_chat(host_mob, "Your blood cools down, and the pain gradually fades.") -/datum/nanite_program/triggered/explosive +/datum/nanite_program/explosive name = "Chain Detonation" desc = "Detonates all the nanites inside the host in a chain reaction when triggered." + can_trigger = TRUE trigger_cost = 25 //plus every idle nanite left afterwards trigger_cooldown = 100 //Just to avoid double-triggering rogue_types = list(/datum/nanite_program/toxic) -/datum/nanite_program/triggered/explosive/trigger() - if(!..()) - return +/datum/nanite_program/explosive/on_trigger(comm_message) host_mob.visible_message("[host_mob] starts emitting a high-pitched buzzing, and [host_mob.p_their()] skin begins to glow...",\ "You start emitting a high-pitched buzzing, and your skin begins to glow...") addtimer(CALLBACK(src, .proc/boom), CLAMP((nanites.nanite_volume * 0.35), 25, 150)) -/datum/nanite_program/triggered/explosive/proc/boom() +/datum/nanite_program/explosive/proc/boom() var/nanite_amount = nanites.nanite_volume var/heavy_range = FLOOR(nanite_amount/100, 1) - 1 var/light_range = FLOOR(nanite_amount/50, 1) - 1 @@ -96,16 +95,15 @@ //TODO make it defuse if triggered again -/datum/nanite_program/triggered/heart_stop +/datum/nanite_program/heart_stop name = "Heart-Stopper" desc = "Stops the host's heart when triggered; restarts it if triggered again." + can_trigger = TRUE trigger_cost = 12 trigger_cooldown = 10 rogue_types = list(/datum/nanite_program/nerve_decay) -/datum/nanite_program/triggered/heart_stop/trigger() - if(!..()) - return +/datum/nanite_program/heart_stop/on_trigger(comm_message) if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob var/obj/item/organ/heart/heart = C.getorganslot(ORGAN_SLOT_HEART) @@ -115,16 +113,16 @@ else heart.Restart() -/datum/nanite_program/triggered/emp +/datum/nanite_program/emp name = "Electromagnetic Resonance" - desc = "The nanites cause an elctromagnetic pulse around the host when triggered. Will corrupt other nanite programs!" + desc = "The nanites cause an electromagnetic pulse around the host when triggered. Will corrupt other nanite programs!" + can_trigger = TRUE trigger_cost = 10 + trigger_cooldown = 50 program_flags = NANITE_EMP_IMMUNE rogue_types = list(/datum/nanite_program/toxic) -/datum/nanite_program/triggered/emp/trigger() - if(!..()) - return +/datum/nanite_program/emp/on_trigger(comm_message) empulse(host_mob, 1, 2) /datum/nanite_program/pyro/active_effect() @@ -148,7 +146,7 @@ /datum/nanite_program/cryo name = "Cryogenic Treatment" - desc = "The nanites rapidly skin heat through the host's skin, lowering their temperature." + desc = "The nanites rapidly sink heat through the host's skin, lowering their temperature." use_rate = 1 rogue_types = list(/datum/nanite_program/skin_decay, /datum/nanite_program/pyro) @@ -160,55 +158,33 @@ /datum/nanite_program/cryo/active_effect() host_mob.adjust_bodytemperature(-rand(15,25), 50) -/datum/nanite_program/triggered/comm/mind_control +/datum/nanite_program/comm/mind_control name = "Mind Control" desc = "The nanites imprint an absolute directive onto the host's brain for one minute when triggered." trigger_cost = 30 trigger_cooldown = 1800 rogue_types = list(/datum/nanite_program/brain_decay, /datum/nanite_program/brain_misfire) - extra_settings = list("Directive","Comm Code") - var/directive = "..." +/datum/nanite_program/comm/mind_control/register_extra_settings() + . = ..() + extra_settings[NES_DIRECTIVE] = new /datum/nanite_extra_setting/text("...") -/datum/nanite_program/triggered/comm/mind_control/set_extra_setting(user, setting) - if(setting == "Directive") - var/new_directive = stripped_input(user, "Choose the directive to imprint with mind control.", "Directive", directive, MAX_MESSAGE_LEN) - if(!new_directive) - return - directive = new_directive - if(setting == "Comm Code") - var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num - if(isnull(new_code)) - return - comm_code = CLAMP(round(new_code, 1), 0, 9999) - -/datum/nanite_program/triggered/comm/mind_control/get_extra_setting(setting) - if(setting == "Directive") - return directive - if(setting == "Comm Code") - return comm_code - -/datum/nanite_program/triggered/comm/mind_control/copy_extra_settings_to(datum/nanite_program/triggered/comm/mind_control/target) - target.directive = directive - target.comm_code = comm_code - -/datum/nanite_program/triggered/comm/mind_control/trigger(comm_message) - if(!..()) - return +/datum/nanite_program/comm/mind_control/on_trigger(comm_message) if(host_mob.stat == DEAD) return var/sent_directive = comm_message if(!comm_message) - sent_directive = directive + var/datum/nanite_extra_setting/ES = extra_settings[NES_DIRECTIVE] + sent_directive = ES.get_value() brainwash(host_mob, sent_directive) - log_game("A mind control nanite program brainwashed [key_name(host_mob)] with the objective '[directive]'.") + log_game("A mind control nanite program brainwashed [key_name(host_mob)] with the objective '[sent_directive]'.") addtimer(CALLBACK(src, .proc/end_brainwashing), 600) -/datum/nanite_program/triggered/comm/mind_control/proc/end_brainwashing() +/datum/nanite_program/comm/mind_control/proc/end_brainwashing() if(host_mob.mind && host_mob.mind.has_antag_datum(/datum/antagonist/brainwashed)) host_mob.mind.remove_antag_datum(/datum/antagonist/brainwashed) log_game("[key_name(host_mob)] is no longer brainwashed by nanites.") - -/datum/nanite_program/triggered/comm/mind_control/disable_passive_effect() + +/datum/nanite_program/comm/mind_control/disable_passive_effect() . = ..() end_brainwashing() diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm index e10d8f8c4b..71aecc8f2c 100644 --- a/code/modules/research/nanites/nanite_remote.dm +++ b/code/modules/research/nanites/nanite_remote.dm @@ -18,6 +18,7 @@ var/last_id = 0 var/code = 0 var/relay_code = 0 + var/current_program_name = "Program" /obj/item/nanite_remote/examine(mob/user) . = ..() @@ -35,10 +36,8 @@ update_icon() else to_chat(user, "Access denied.") - return TRUE /obj/item/nanite_remote/emag_act(mob/user) - . = ..() if(obj_flags & EMAGGED) return to_chat(user, "You override [src]'s ID lock.") @@ -46,33 +45,31 @@ if(locked) locked = FALSE update_icon() - return TRUE -/obj/item/nanite_remote/update_icon() +/obj/item/nanite_remote/update_overlays() . = ..() - cut_overlays() if(obj_flags & EMAGGED) - add_overlay("nanite_remote_emagged") + . += "nanite_remote_emagged" if(locked) - add_overlay("nanite_remote_locked") + . += "nanite_remote_locked" /obj/item/nanite_remote/afterattack(atom/target, mob/user, etc) switch(mode) if(REMOTE_MODE_OFF) return if(REMOTE_MODE_SELF) - to_chat(user, "You activate [src], signaling the nanites in your bloodstream.") + to_chat(user, "You activate [src], signaling the nanites in your bloodstream.") signal_mob(user, code, key_name(user)) if(REMOTE_MODE_TARGET) if(isliving(target) && (get_dist(target, get_turf(src)) <= 7)) - to_chat(user, "You activate [src], signaling the nanites inside [target].") + to_chat(user, "You activate [src], signaling the nanites inside [target].") signal_mob(target, code, key_name(user)) if(REMOTE_MODE_AOE) - to_chat(user, "You activate [src], signaling the nanites inside every host around you.") + to_chat(user, "You activate [src], signaling the nanites inside every host around you.") for(var/mob/living/L in view(user, 7)) signal_mob(L, code, key_name(user)) if(REMOTE_MODE_RELAY) - to_chat(user, "You activate [src], signaling all connected relay nanites.") + to_chat(user, "You activate [src], signaling all connected relay nanites.") signal_relay(code, relay_code, key_name(user)) /obj/item/nanite_remote/proc/signal_mob(mob/living/M, code, source) @@ -84,9 +81,9 @@ N.relay_signal(code, relay_code, source) /obj/item/nanite_remote/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "nanite_remote", name, 420, 800, master_ui, state) + ui = new(user, src, ui_key, "nanite_remote", name, 420, 500, master_ui, state) ui.open() /obj/item/nanite_remote/ui_data() @@ -96,6 +93,7 @@ data["mode"] = mode data["locked"] = locked data["saved_settings"] = saved_settings + data["program_name"] = current_program_name return data @@ -106,7 +104,7 @@ if("set_code") if(locked) return - var/new_code = input("Set code (0000-9999):", name, code) as null|num + var/new_code = text2num(params["code"]) if(!isnull(new_code)) new_code = CLAMP(round(new_code, 1),0,9999) code = new_code @@ -114,21 +112,21 @@ if("set_relay_code") if(locked) return - var/new_code = input("Set relay code (0000-9999):", name, code) as null|num + var/new_code = text2num(params["code"]) if(!isnull(new_code)) new_code = CLAMP(round(new_code, 1),0,9999) relay_code = new_code . = TRUE + if("update_name") + current_program_name = params["name"] + . = TRUE if("save") if(locked) return - var/code_name = stripped_input(usr, "Set the setting name", "Set Name", null , 15) - if(!code_name) - return var/new_save = list() new_save["id"] = last_id + 1 last_id++ - new_save["name"] = code_name + new_save["name"] = current_program_name new_save["code"] = code new_save["mode"] = mode new_save["relay_code"] = relay_code @@ -172,7 +170,6 @@ name = "nanite communication remote" desc = "A device that can send text messages to specific programs." icon_state = "nanite_comm_remote" - var/comm_code = 0 var/comm_message = "" /obj/item/nanite_remote/comm/afterattack(atom/target, mob/user, etc) @@ -180,42 +177,38 @@ if(REMOTE_MODE_OFF) return if(REMOTE_MODE_SELF) - to_chat(user, "You activate [src], signaling the nanites in your bloodstream.") - signal_mob(user, comm_code, comm_message) + to_chat(user, "You activate [src], signaling the nanites in your bloodstream.") + signal_mob(user, code, comm_message) if(REMOTE_MODE_TARGET) if(isliving(target) && (get_dist(target, get_turf(src)) <= 7)) - to_chat(user, "You activate [src], signaling the nanites inside [target].") + to_chat(user, "You activate [src], signaling the nanites inside [target].") signal_mob(target, code, comm_message, key_name(user)) if(REMOTE_MODE_AOE) - to_chat(user, "You activate [src], signaling the nanites inside every host around you.") + to_chat(user, "You activate [src], signaling the nanites inside every host around you.") for(var/mob/living/L in view(user, 7)) signal_mob(L, code, comm_message, key_name(user)) if(REMOTE_MODE_RELAY) - to_chat(user, "You activate [src], signaling all connected relay nanites.") + to_chat(user, "You activate [src], signaling all connected relay nanites.") signal_relay(code, relay_code, comm_message, key_name(user)) /obj/item/nanite_remote/comm/signal_mob(mob/living/M, code, source) - SEND_SIGNAL(M, COMSIG_NANITE_COMM_SIGNAL, comm_code, comm_message) + SEND_SIGNAL(M, COMSIG_NANITE_COMM_SIGNAL, code, comm_message) /obj/item/nanite_remote/comm/signal_relay(code, relay_code, source) for(var/X in SSnanites.nanite_relays) var/datum/nanite_program/relay/N = X - N.relay_comm_signal(comm_code, relay_code, comm_message) - -/obj/item/nanite_remote/comm/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state) - SStgui.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "nanite_comm_remote", name, 420, 800, master_ui, state) - ui.open() + N.relay_comm_signal(code, relay_code, comm_message) /obj/item/nanite_remote/comm/ui_data() var/list/data = list() - data["comm_code"] = comm_code + data["comms"] = TRUE + data["code"] = code data["relay_code"] = relay_code - data["comm_message"] = comm_message + data["message"] = comm_message data["mode"] = mode data["locked"] = locked data["saved_settings"] = saved_settings + data["program_name"] = current_program_name return data @@ -223,56 +216,17 @@ if(..()) return switch(action) - if("set_comm_code") - if(locked) - return - var/new_code = input("Set comm code (0000-9999):", name, code) as null|num - if(!isnull(new_code)) - new_code = CLAMP(round(new_code, 1),0,9999) - comm_code = new_code - . = TRUE if("set_message") if(locked) return - var/new_message = stripped_input(usr, "Set the message (Max 300 characters):", "Set Message", null , 300) + var/new_message = html_encode(params["value"]) if(!new_message) return comm_message = new_message . = TRUE - if("comm_save") - if(locked) - return - var/code_name = stripped_input(usr, "Set the setting name", "Set Name", null , 15) - if(!code_name) - return - var/new_save = list() - new_save["id"] = last_id + 1 - last_id++ - new_save["name"] = code_name - new_save["code"] = comm_code - new_save["mode"] = mode - new_save["relay_code"] = relay_code - new_save["message"] = comm_message - - saved_settings += list(new_save) - . = TRUE - if("comm_load") - var/code_id = params["save_id"] - var/list/setting - for(var/list/X in saved_settings) - if(X["id"] == text2num(code_id)) - setting = X - break - if(setting) - comm_code = setting["code"] - mode = setting["mode"] - relay_code = setting["relay_code"] - comm_message = setting["message"] - . = TRUE - #undef REMOTE_MODE_OFF #undef REMOTE_MODE_SELF #undef REMOTE_MODE_TARGET #undef REMOTE_MODE_AOE -#undef REMOTE_MODE_RELAY \ No newline at end of file +#undef REMOTE_MODE_RELAY diff --git a/code/modules/research/nanites/program_disks.dm b/code/modules/research/nanites/program_disks.dm index 6444ebc025..667618173c 100644 --- a/code/modules/research/nanites/program_disks.dm +++ b/code/modules/research/nanites/program_disks.dm @@ -31,7 +31,7 @@ program_type = /datum/nanite_program/relay /obj/item/disk/nanite_program/emp - program_type = /datum/nanite_program/triggered/emp + program_type = /datum/nanite_program/emp /obj/item/disk/nanite_program/spreading program_type = /datum/nanite_program/spreading @@ -91,16 +91,16 @@ program_type = /datum/nanite_program/suffocating /obj/item/disk/nanite_program/heart_stop - program_type = /datum/nanite_program/triggered/heart_stop + program_type = /datum/nanite_program/heart_stop /obj/item/disk/nanite_program/explosive - program_type = /datum/nanite_program/triggered/explosive + program_type = /datum/nanite_program/explosive /obj/item/disk/nanite_program/shock - program_type = /datum/nanite_program/triggered/shocking + program_type = /datum/nanite_program/shocking /obj/item/disk/nanite_program/sleepy - program_type = /datum/nanite_program/triggered/sleepy + program_type = /datum/nanite_program/sleepy /obj/item/disk/nanite_program/paralyzing program_type = /datum/nanite_program/paralyzing @@ -130,7 +130,7 @@ program_type = /datum/nanite_program/pacifying /obj/item/disk/nanite_program/stun - program_type = /datum/nanite_program/triggered/stun + program_type = /datum/nanite_program/stun /obj/item/disk/nanite_program/dermal_button program_type = /datum/nanite_program/dermal_button @@ -149,3 +149,4 @@ /obj/item/disk/nanite_program/bad_mood program_type = /datum/nanite_program/bad_mood + diff --git a/code/modules/research/nanites/public_chamber.dm b/code/modules/research/nanites/public_chamber.dm index f1cd19b2a2..76392c66e9 100644 --- a/code/modules/research/nanites/public_chamber.dm +++ b/code/modules/research/nanites/public_chamber.dm @@ -32,7 +32,7 @@ busy_icon_state = working_icon update_icon() -/obj/machinery/public_nanite_chamber/proc/inject_nanites() +/obj/machinery/public_nanite_chamber/proc/inject_nanites(mob/living/attacker) if(stat & (NOPOWER|BROKEN)) return if((stat & MAINT) || panel_open) @@ -47,46 +47,67 @@ set_busy(TRUE, "[initial(icon_state)]_raising") addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_active"),20) addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_falling"),60) - addtimer(CALLBACK(src, .proc/complete_injection, locked_state),80) + addtimer(CALLBACK(src, .proc/complete_injection, locked_state, attacker),80) -/obj/machinery/public_nanite_chamber/proc/complete_injection(locked_state) +/obj/machinery/public_nanite_chamber/proc/complete_injection(locked_state, mob/living/attacker) //TODO MACHINE DING locked = locked_state set_busy(FALSE) if(!occupant) return + if(attacker) + occupant.investigate_log("was injected with nanites by [key_name(attacker)] using [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) + log_combat(attacker, occupant, "injected", null, "with nanites via [src]") occupant.AddComponent(/datum/component/nanites, 75, cloud_id) -/obj/machinery/public_nanite_chamber/update_icon() - cut_overlays() - +/obj/machinery/public_nanite_chamber/proc/change_cloud(mob/living/attacker) + if(stat & (NOPOWER|BROKEN)) + return if((stat & MAINT) || panel_open) - add_overlay("maint") + return + if(!occupant || busy) + return - else if(!(stat & (NOPOWER|BROKEN))) - if(busy || locked) - add_overlay("red") - if(locked) - add_overlay("bolted") - else - add_overlay("green") + var/locked_state = locked + locked = TRUE + set_busy(TRUE, "[initial(icon_state)]_raising") + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_active"),20) + addtimer(CALLBACK(src, .proc/set_busy, TRUE, "[initial(icon_state)]_falling"),40) + addtimer(CALLBACK(src, .proc/complete_cloud_change, locked_state, attacker),60) +/obj/machinery/public_nanite_chamber/proc/complete_cloud_change(locked_state, mob/living/attacker) + locked = locked_state + set_busy(FALSE) + if(!occupant) + return + if(attacker) + occupant.investigate_log("had their nanite cloud ID changed into [cloud_id] by [key_name(attacker)] using [src] at [AREACOORD(src)].", INVESTIGATE_NANITES) + SEND_SIGNAL(occupant, COMSIG_NANITE_SET_CLOUD, cloud_id) +/obj/machinery/public_nanite_chamber/update_icon_state() //running and someone in there if(occupant) if(busy) icon_state = busy_icon_state else icon_state = initial(icon_state)+ "_occupied" - return + else + //running + icon_state = initial(icon_state)+ (state_open ? "_open" : "") - //running - icon_state = initial(icon_state)+ (state_open ? "_open" : "") - -/obj/machinery/public_nanite_chamber/power_change() +/obj/machinery/public_nanite_chamber/update_overlays() . = ..() - update_icon() + if((stat & MAINT) || panel_open) + . += "maint" + + else if(!(stat & (NOPOWER|BROKEN))) + if(busy || locked) + . += "red" + if(locked) + . += "bolted" + else + . += "green" /obj/machinery/public_nanite_chamber/proc/toggle_open(mob/user) if(panel_open) @@ -94,7 +115,7 @@ return if(state_open) - close_machine() + close_machine(null, user) return else if(locked) @@ -113,7 +134,7 @@ user.last_special = world.time + CLICK_CD_BREAKOUT user.visible_message("You see [user] kicking against the door of [src]!", \ "You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)", \ - "You hear a metallic creaking from [src].") + "You hear a metallic creaking from [src].") if(do_after(user,(breakout_time), target = src)) if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked || busy) return @@ -122,7 +143,7 @@ "You successfully break out of [src]!") open_machine() -/obj/machinery/public_nanite_chamber/close_machine(mob/living/carbon/user) +/obj/machinery/public_nanite_chamber/close_machine(mob/living/carbon/user, mob/living/attacker) if(!state_open) return FALSE @@ -130,15 +151,18 @@ . = TRUE - addtimer(CALLBACK(src, .proc/try_inject_nanites), 30) //If someone is shoved in give them a chance to get out before the injection starts + addtimer(CALLBACK(src, .proc/try_inject_nanites, attacker), 30) //If someone is shoved in give them a chance to get out before the injection starts -/obj/machinery/public_nanite_chamber/proc/try_inject_nanites() +/obj/machinery/public_nanite_chamber/proc/try_inject_nanites(mob/living/attacker) if(occupant) var/mob/living/L = occupant if(SEND_SIGNAL(L, COMSIG_HAS_NANITES)) + var/datum/component/nanites/nanites = L.GetComponent(/datum/component/nanites) + if(nanites && nanites.cloud_id != cloud_id) + change_cloud(attacker) return if(L.mob_biotypes & (MOB_ORGANIC | MOB_UNDEAD)) - inject_nanites() + inject_nanites(attacker) /obj/machinery/public_nanite_chamber/open_machine() if(state_open) @@ -173,6 +197,8 @@ toggle_open(user) /obj/machinery/public_nanite_chamber/MouseDrop_T(mob/target, mob/user) - if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) || !Adjacent(target) || !user.Adjacent(target) || !iscarbon(target)) return - close_machine(target) + if(close_machine(target, user)) + log_combat(user, target, "inserted", null, "into [src].") + add_fingerprint(user) diff --git a/code/modules/research/nanites/rules.dm b/code/modules/research/nanites/rules.dm new file mode 100644 index 0000000000..f496abe6e1 --- /dev/null +++ b/code/modules/research/nanites/rules.dm @@ -0,0 +1,151 @@ +/datum/nanite_rule + var/name = "Generic Condition" + var/desc = "When triggered, the program is active" + var/datum/nanite_program/program + +/datum/nanite_rule/New(datum/nanite_program/new_program) + program = new_program + if(LAZYLEN(new_program.rules) <= 5) //Avoid infinite stacking rules + new_program.rules += src + else + qdel(src) + +/datum/nanite_rule/proc/remove() + program.rules -= src + program = null + qdel(src) + +/datum/nanite_rule/proc/check_rule() + return TRUE + +/datum/nanite_rule/proc/display() + return name + +/datum/nanite_rule/proc/copy_to(datum/nanite_program/new_program) + new type(new_program) + +/datum/nanite_rule/health + name = "Health" + desc = "Checks the host's health status." + + var/threshold = 50 + var/above = TRUE + +/datum/nanite_rule/health/check_rule() + var/health_percent = program.host_mob.health / program.host_mob.maxHealth * 100 + if(above) + if(health_percent >= threshold) + return TRUE + else + if(health_percent < threshold) + return TRUE + return FALSE + +/datum/nanite_rule/health/display() + return "[name] [above ? ">" : "<"] [threshold]%" + +/datum/nanite_rule/health/copy_to(datum/nanite_program/new_program) + var/datum/nanite_rule/health/rule = new(new_program) + rule.above = above + rule.threshold = threshold + +//TODO allow inversion +/datum/nanite_rule/crit + name = "Crit" + desc = "Checks if the host is in critical condition." + +/datum/nanite_rule/crit/check_rule() + if(program.host_mob.InCritical()) + return TRUE + return FALSE + +/datum/nanite_rule/death + name = "Death" + desc = "Checks if the host is dead." + +/datum/nanite_rule/death/check_rule() + if(program.host_mob.stat == DEAD || HAS_TRAIT(program.host_mob, TRAIT_FAKEDEATH)) + return TRUE + return FALSE + +/datum/nanite_rule/cloud_sync + name = "Cloud Sync" + desc = "Checks if the nanites have cloud sync enabled or disabled." + var/check_type = "Enabled" + +/datum/nanite_rule/cloud_sync/check_rule() + if(check_type == "Enabled") + return program.nanites.cloud_active + else + return !program.nanites.cloud_active + +/datum/nanite_rule/cloud_sync/copy_to(datum/nanite_program/new_program) + var/datum/nanite_rule/cloud_sync/rule = new(new_program) + rule.check_type = check_type + +/datum/nanite_rule/cloud_sync/display() + return "[name]:[check_type]" + +/datum/nanite_rule/nanites + name = "Nanite Volume" + desc = "Checks the host's nanite volume." + + var/threshold = 50 + var/above = TRUE + +/datum/nanite_rule/nanites/check_rule() + var/nanite_percent = (program.nanites.nanite_volume - program.nanites.safety_threshold)/(program.nanites.max_nanites - program.nanites.safety_threshold)*100 + if(above) + if(nanite_percent >= threshold) + return TRUE + else + if(nanite_percent < threshold) + return TRUE + return FALSE + +/datum/nanite_rule/nanites/copy_to(datum/nanite_program/new_program) + var/datum/nanite_rule/nanites/rule = new(new_program) + rule.above = above + rule.threshold = threshold + +/datum/nanite_rule/nanites/display() + return "[name] [above ? ">" : "<"] [threshold]%" + +/datum/nanite_rule/damage + name = "Damage" + desc = "Checks the host's damage." + + var/threshold = 50 + var/above = TRUE + var/damage_type = BRUTE + +/datum/nanite_rule/damage/check_rule() + var/damage_amt = 0 + switch(damage_type) + if(BRUTE) + damage_amt = program.host_mob.getBruteLoss() + if(BURN) + damage_amt = program.host_mob.getFireLoss() + if(TOX) + damage_amt = program.host_mob.getToxLoss() + if(OXY) + damage_amt = program.host_mob.getOxyLoss() + if(CLONE) + damage_amt = program.host_mob.getCloneLoss() + + if(above) + if(damage_amt >= threshold) + return TRUE + else + if(damage_amt < threshold) + return TRUE + return FALSE + +/datum/nanite_rule/damage/copy_to(datum/nanite_program/new_program) + var/datum/nanite_rule/damage/rule = new(new_program) + rule.above = above + rule.threshold = threshold + rule.damage_type = damage_type + +/datum/nanite_rule/damage/display() + return "[damage_type] [above ? ">" : "<"] [threshold]" diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 66d51fb168..a9f5dbf3c6 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -602,7 +602,7 @@ display_name = "Basic Tools" description = "Basic mechanical, electronic, surgical and botanical tools." prereq_ids = list("base") - design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop") + design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop", "broom") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500) export_price = 5000 diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 9229781c0f..a3cbe2c82d 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -3,13 +3,38 @@ #define ENGINES_STARTED (SSshuttle.emergency.mode == SHUTTLE_IGNITING) #define IS_DOCKED (SSshuttle.emergency.mode == SHUTTLE_DOCKED || (ENGINES_STARTED)) +#define NOT_BEGUN 0 +#define STAGE_1 1 +#define STAGE_2 2 +#define STAGE_3 3 +#define STAGE_4 4 +#define HIJACKED 5 + /obj/machinery/computer/emergency_shuttle name = "emergency shuttle console" desc = "For shuttle control." icon_screen = "shuttle" icon_keyboard = "tech_key" + resistance_flags = INDESTRUCTIBLE var/auth_need = 3 var/list/authorized = list() + var/hijack_last_stage_increase = 0 + var/hijack_stage_time = 50 + var/hijack_stage_cooldown = 50 + var/hijack_flight_time_increase = 300 + var/hijack_completion_flight_time_set = 100 //How long in deciseconds to set shuttle's timer after hijack is done. + var/hijack_hacking = FALSE + var/hijack_announce = TRUE + +/obj/machinery/computer/emergency_shuttle/examine(mob/user) + . = ..() + if(hijack_announce) + . += "Security systems present on console. Any unauthorized tampering will result in an emergency announcement." + if(user?.mind?.get_hijack_speed()) + . += "Alt click on this to attempt to hijack the shuttle. This will take multiple tries (current: stage [SSshuttle.emergency.hijack_status]/[HIJACKED])." + . += "It will take you [(hijack_stage_time * user.mind.get_hijack_speed()) / 10] seconds to reprogram a stage of the shuttle's navigational firmware, and the console will undergo automated timed lockout for [hijack_stage_cooldown/10] seconds after each stage." + if(hijack_announce) + . += "It is probably best to fortify your position as to be uninterrupted during the attempt, given the automatic announcements.." /obj/machinery/computer/emergency_shuttle/attackby(obj/item/I, mob/user,params) if(istype(I, /obj/item/card/id)) @@ -133,6 +158,71 @@ [TIME_LEFT] seconds", system_error, alert=TRUE) . = TRUE +/obj/machinery/computer/emergency_shuttle/proc/increase_hijack_stage() + var/obj/docking_port/mobile/emergency/shuttle = SSshuttle.emergency + shuttle.hijack_status++ + if(hijack_announce) + announce_hijack_stage() + hijack_last_stage_increase = world.time + say("Navigational protocol error! Rebooting systems.") + if(shuttle.mode == SHUTTLE_ESCAPE) + if(shuttle.hijack_status == HIJACKED) + shuttle.setTimer(hijack_completion_flight_time_set) + else + shuttle.setTimer(shuttle.timeLeft(1) + hijack_flight_time_increase) //give the guy more time to hijack if it's already in flight. + return shuttle.hijack_status + +/obj/machinery/computer/emergency_shuttle/AltClick(user) + attempt_hijack_stage(user) + +/obj/machinery/computer/emergency_shuttle/proc/attempt_hijack_stage(mob/living/user) + if(!user.CanReach(src)) + return + if(!user?.mind?.get_hijack_speed()) + to_chat(user, "You manage to open a user-mode shell on [src], and hundreds of lines of debugging output fly through your vision. It is probably best to leave this alone.= HIJACKED) + to_chat(user, "The emergency shuttle is already loaded with a corrupt navigational payload. What more do you want from it?") + return + if(hijack_last_stage_increase >= world.time + hijack_stage_cooldown) + say("Error - Catastrophic software error detected. Input is currently on timeout.") + return + hijack_hacking = TRUE + to_chat(user, "You [SSshuttle.emergency.hijack_status == NOT_BEGUN? "begin" : "continue"] to override [src]'s navigational protocols.") + say("Software override initiated.") + . = FALSE + if(do_after(user, hijack_stage_time * (1 / user.mind.get_hijack_speed()), target = src)) + increase_hijack_stage() + . = TRUE + to_chat(user, "You reprogram some of [src]'s programming, putting it on timeout for [hijack_stage_cooldown/10] seconds.") + hijack_hacking = FALSE + +/obj/machinery/computer/emergency_shuttle/proc/announce_hijack_stage() + var/msg + switch(SSshuttle.emergency.hijack_status) + if(NOT_BEGUN) + return + if(STAGE_1) + var/datum/species/S = new + msg = "AUTHENTICATING - FAIL. AUTHENTICATING - FAIL. AUTHENTICATING - FAI###### Welcome, technician JOHN DOE." + qdel(S) + if(STAGE_2) + msg = "Warning: Navigational route fails \"IS_AUTHORIZED\". Please try againNN[scramble_message_replace_chars("againagainagainagainagain", 70)]." + if(STAGE_3) + var/hex = "" + for(var/i in 1 to 8) + hex += num2hex(rand(1,16)) + msg = "CRC mismatch at 0x[hex] in calculated route buffer. Full reset initiated of FTL_NAVIGATION_SERVICES. Memory decrypted for automatic repair." + if(STAGE_4) + msg = "~ACS_directive module_load(cyberdyne.exploit.nanotrasen.shuttlenav)... NT key mismatch. Confirm load? Y...###Reboot complete. $SET transponder_state = 0; System link initiated with connected engines..." + if(HIJACKED) + msg = "SYSTEM OVERRIDE - Resetting course to \[[scramble_message_replace_chars("###########", 100)]\] \ + ([scramble_message_replace_chars("#######", 100)]/[scramble_message_replace_chars("#######", 100)]/[scramble_message_replace_chars("#######", 100)]) \ + {AUTH - ROOT (uid: 0)}.[SSshuttle.emergency.mode == SHUTTLE_ESCAPE? "Diverting from existing route - Bluespace exit in [hijack_completion_flight_time_set/10] seconds." : ""]" + minor_announce(scramble_message_replace_chars(msg, replaceprob = 10), "Emergency Shuttle", TRUE) + /obj/machinery/computer/emergency_shuttle/emag_act(mob/user) . = ..() @@ -185,6 +275,7 @@ dir = EAST port_direction = WEST var/sound_played = 0 //If the launch sound has been sent to all players on the shuttle itself + var/hijack_status = NOT_BEGUN /obj/docking_port/mobile/emergency/canDock(obj/docking_port/stationary/S) return SHUTTLE_CAN_DOCK //If the emergency shuttle can't move, the whole game breaks, so it will force itself to land even if it has to crush a few departments in the process @@ -250,37 +341,7 @@ priority_announce("The emergency shuttle has been recalled.[SSshuttle.emergencyLastCallLoc ? " Recall signal traced. Results can be viewed on any communications console." : "" ]", null, "shuttlerecalled", "Priority") /obj/docking_port/mobile/emergency/proc/is_hijacked() - var/has_people = FALSE - var/hijacker_present = FALSE - for(var/mob/living/player in GLOB.player_list) - if(player.mind) - if(player.stat != DEAD) - if(issilicon(player)) //Borgs are technically dead anyways - continue - if(isanimal(player)) //animals don't count - continue - if(isbrain(player)) //also technically dead - continue - if(shuttle_areas[get_area(player)]) - has_people = TRUE - var/location = get_turf(player.mind.current) - //Non-antag present. Can't hijack. - if(!(player.mind.has_antag_datum(/datum/antagonist)) && !istype(location, /turf/open/floor/plasteel/shuttle/red) && !istype(location, /turf/open/floor/mineral/plastitanium/red/brig)) - return FALSE - //Antag present, doesn't stop but let's see if we actually want to hijack - var/prevent = FALSE - for(var/datum/antagonist/A in player.mind.antag_datums) - if(A.can_hijack == HIJACK_HIJACKER) - hijacker_present = TRUE - prevent = FALSE - break //If we have both prevent and hijacker antags assume we want to hijack. - else if(A.can_hijack == HIJACK_PREVENT) - prevent = TRUE - if(prevent) - return FALSE - - - return has_people && hijacker_present + return hijack_status == HIJACKED /obj/docking_port/mobile/emergency/proc/ShuttleDBStuff() set waitfor = FALSE @@ -422,7 +483,7 @@ mode = SHUTTLE_ESCAPE launch_status = ENDGAME_LAUNCHED setTimer(SSshuttle.emergencyEscapeTime) - priority_announce("The Emergency Shuttle preparing for direct jump. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, "Priority") + priority_announce("The Emergency Shuttle is preparing for direct jump. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, "Priority") /obj/docking_port/mobile/pod @@ -567,3 +628,10 @@ #undef ENGINES_START_TIME #undef ENGINES_STARTED #undef IS_DOCKED + +#undef NOT_BEGUN +#undef STAGE_1 +#undef STAGE_2 +#undef STAGE_3 +#undef STAGE_4 +#undef HIJACKED diff --git a/code/modules/surgery/advanced/bioware/bioware_surgery.dm b/code/modules/surgery/advanced/bioware/bioware_surgery.dm index eb8f739193..a68ac6eb1c 100644 --- a/code/modules/surgery/advanced/bioware/bioware_surgery.dm +++ b/code/modules/surgery/advanced/bioware/bioware_surgery.dm @@ -2,7 +2,7 @@ name = "enhancement surgery" var/bioware_target = BIOWARE_GENERIC -/datum/surgery/advanced/bioware/can_start(mob/user, mob/living/carbon/human/target) +/datum/surgery/advanced/bioware/can_start(mob/user, mob/living/carbon/human/target, obj/item/tool) if(!..()) return FALSE if(!istype(target)) diff --git a/code/modules/surgery/advanced/brainwashing.dm b/code/modules/surgery/advanced/brainwashing.dm index b067cce56b..28103f7f97 100644 --- a/code/modules/surgery/advanced/brainwashing.dm +++ b/code/modules/surgery/advanced/brainwashing.dm @@ -16,7 +16,7 @@ target_mobtypes = list(/mob/living/carbon/human) possible_locs = list(BODY_ZONE_HEAD) -/datum/surgery/advanced/brainwashing/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/brainwashing/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(!..()) return FALSE var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) diff --git a/code/modules/surgery/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm index 0149fc6c27..a41e72b76d 100644 --- a/code/modules/surgery/advanced/lobotomy.dm +++ b/code/modules/surgery/advanced/lobotomy.dm @@ -12,7 +12,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_HEAD) requires_bodypart_type = 0 -/datum/surgery/advanced/lobotomy/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/lobotomy/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(!..()) return FALSE var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) diff --git a/code/modules/surgery/advanced/necrotic_revival.dm b/code/modules/surgery/advanced/necrotic_revival.dm index d95d0a3ac7..bae2bc064b 100644 --- a/code/modules/surgery/advanced/necrotic_revival.dm +++ b/code/modules/surgery/advanced/necrotic_revival.dm @@ -8,7 +8,7 @@ /datum/surgery_step/bionecrosis, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_HEAD) -/datum/surgery/advanced/necrotic_revival/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/necrotic_revival/can_start(mob/user, mob/living/carbon/target, obj/item/tool) . = ..() var/obj/item/organ/zombie_infection/ZI = target.getorganslot(ORGAN_SLOT_ZOMBIE) if(ZI) diff --git a/code/modules/surgery/advanced/pacification.dm b/code/modules/surgery/advanced/pacification.dm index 866c85842b..7b85015420 100644 --- a/code/modules/surgery/advanced/pacification.dm +++ b/code/modules/surgery/advanced/pacification.dm @@ -11,7 +11,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_HEAD) requires_bodypart_type = 0 -/datum/surgery/advanced/pacify/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/pacify/can_start(mob/user, mob/living/carbon/target, obj/item/tool) . = ..() var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) if(!B) diff --git a/code/modules/surgery/advanced/revival.dm b/code/modules/surgery/advanced/revival.dm index fbfec404b2..e9f8ff4446 100644 --- a/code/modules/surgery/advanced/revival.dm +++ b/code/modules/surgery/advanced/revival.dm @@ -12,7 +12,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_HEAD) requires_bodypart_type = 0 -/datum/surgery/advanced/revival/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/revival/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(!..()) return FALSE if(target.stat != DEAD) diff --git a/code/modules/surgery/advanced/viral_bonding.dm b/code/modules/surgery/advanced/viral_bonding.dm index 86832602e8..1cb06d1560 100644 --- a/code/modules/surgery/advanced/viral_bonding.dm +++ b/code/modules/surgery/advanced/viral_bonding.dm @@ -10,7 +10,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_CHEST) -/datum/surgery/advanced/viral_bonding/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/advanced/viral_bonding/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(!..()) return FALSE if(!LAZYLEN(target.diseases)) diff --git a/code/modules/surgery/brain_surgery.dm b/code/modules/surgery/brain_surgery.dm index d86f5731c7..afaa66dae9 100644 --- a/code/modules/surgery/brain_surgery.dm +++ b/code/modules/surgery/brain_surgery.dm @@ -15,7 +15,7 @@ name = "fix brain" implements = list(TOOL_HEMOSTAT = 85, TOOL_SCREWDRIVER = 35, /obj/item/pen = 15) //don't worry, pouring some alcohol on their open brain will get that chance to 100 time = 120 //long and complicated -/datum/surgery/brain_surgery/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/brain_surgery/can_start(mob/user, mob/living/carbon/target, obj/item/tool) var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) if(!B) return FALSE diff --git a/code/modules/surgery/core_removal.dm b/code/modules/surgery/core_removal.dm index 07b762bd2f..683663c241 100644 --- a/code/modules/surgery/core_removal.dm +++ b/code/modules/surgery/core_removal.dm @@ -6,7 +6,7 @@ lying_required = FALSE ignore_clothes = TRUE -/datum/surgery/core_removal/can_start(mob/user, mob/living/target) +/datum/surgery/core_removal/can_start(mob/user, mob/living/target, obj/item/tool) if(target.stat == DEAD) return 1 return 0 diff --git a/code/modules/surgery/coronary_bypass.dm b/code/modules/surgery/coronary_bypass.dm index 71a48ae68c..af736e393c 100644 --- a/code/modules/surgery/coronary_bypass.dm +++ b/code/modules/surgery/coronary_bypass.dm @@ -4,7 +4,7 @@ /datum/surgery_step/incise_heart, /datum/surgery_step/coronary_bypass, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) -/datum/surgery/coronary_bypass/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/coronary_bypass/can_start(mob/user, mob/living/carbon/target, obj/item/tool) var/obj/item/organ/heart/H = target.getorganslot(ORGAN_SLOT_HEART) if(H) if(H.damage > 60 && !H.operated) diff --git a/code/modules/surgery/experimental_dissection.dm b/code/modules/surgery/experimental_dissection.dm index a94abafe4c..6110bb6202 100644 --- a/code/modules/surgery/experimental_dissection.dm +++ b/code/modules/surgery/experimental_dissection.dm @@ -15,7 +15,7 @@ requires_tech = FALSE var/value_multiplier = 1 -/datum/surgery/advanced/experimental_dissection/can_start(mob/user, mob/living/target) +/datum/surgery/advanced/experimental_dissection/can_start(mob/user, mob/living/target, obj/item/tool) . = ..() if(HAS_TRAIT_FROM(target, TRAIT_DISSECTED,"[name]")) return FALSE diff --git a/code/modules/surgery/eye_surgery.dm b/code/modules/surgery/eye_surgery.dm index c104afd25a..006dbe2af1 100644 --- a/code/modules/surgery/eye_surgery.dm +++ b/code/modules/surgery/eye_surgery.dm @@ -9,7 +9,7 @@ name = "fix eyes" implements = list(TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 45, /obj/item/pen = 25) time = 64 -/datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target, obj/item/tool) var/obj/item/organ/eyes/E = target.getorganslot(ORGAN_SLOT_EYES) if(!E) to_chat(user, "It's hard to do surgery on someone's eyes when [target.p_they()] [target.p_do()]n't have any.") diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index cdae1aea48..773048f838 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -34,7 +34,7 @@ continue if(S.lying_required && !(M.lying)) continue - if(!S.can_start(user, M)) + if(!S.can_start(user, M, I)) continue for(var/path in S.target_mobtypes) if(istype(M, path)) @@ -64,7 +64,7 @@ return if(S.lying_required && !(M.lying)) return - if(!S.can_start(user, M)) + if(!S.can_start(user, M, I)) return if(S.ignore_clothes || get_location_accessible(M, selected_zone)) diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm index b774883528..63e828d3c9 100644 --- a/code/modules/surgery/lipoplasty.dm +++ b/code/modules/surgery/lipoplasty.dm @@ -2,7 +2,7 @@ name = "Lipoplasty" steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/cut_fat, /datum/surgery_step/remove_fat, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) -/datum/surgery/lipoplasty/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/lipoplasty/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(HAS_TRAIT(target, TRAIT_FAT)) return 1 return 0 diff --git a/code/modules/surgery/lobectomy.dm b/code/modules/surgery/lobectomy.dm index 297be175a0..7ef7e4cd7f 100644 --- a/code/modules/surgery/lobectomy.dm +++ b/code/modules/surgery/lobectomy.dm @@ -4,7 +4,7 @@ /datum/surgery_step/lobectomy, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) -/datum/surgery/lobectomy/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/lobectomy/can_start(mob/user, mob/living/carbon/target, obj/item/tool) var/obj/item/organ/lungs/L = target.getorganslot(ORGAN_SLOT_LUNGS) if(L) if(L.damage > 60 && !L.operated) diff --git a/code/modules/surgery/prosthetic_replacement.dm b/code/modules/surgery/prosthetic_replacement.dm index 8efa40a70a..62ce16e7e6 100644 --- a/code/modules/surgery/prosthetic_replacement.dm +++ b/code/modules/surgery/prosthetic_replacement.dm @@ -5,7 +5,7 @@ possible_locs = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG, BODY_ZONE_HEAD) requires_bodypart = FALSE //need a missing limb requires_bodypart_type = 0 -/datum/surgery/prosthetic_replacement/can_start(mob/user, mob/living/carbon/target) +/datum/surgery/prosthetic_replacement/can_start(mob/user, mob/living/carbon/target, obj/item/tool) if(!iscarbon(target)) return 0 var/mob/living/carbon/C = target diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index a920ea765a..a289f25d8b 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -37,7 +37,7 @@ return ..() -/datum/surgery/proc/can_start(mob/user, mob/living/patient) //FALSE to not show in list +/datum/surgery/proc/can_start(mob/user, mob/living/patient, obj/item/tool) //FALSE to not show in list . = TRUE if(replaced_by == /datum/surgery) return FALSE @@ -55,27 +55,26 @@ if(requires_tech) . = FALSE + var/list/advanced_surgeries = list() if(iscyborg(user)) var/mob/living/silicon/robot/R = user var/obj/item/surgical_processor/SP = locate() in R.module.modules if(SP) - if (replaced_by in SP.advanced_surgeries) - return . - if(type in SP.advanced_surgeries) - return TRUE - + advanced_surgeries |= SP.advanced_surgeries var/turf/T = get_turf(patient) var/obj/structure/table/optable/table = locate(/obj/structure/table/optable, T) - if(table) - if(!table.computer) - return . - if(table.computer.stat & (NOPOWER|BROKEN)) - return . - if(replaced_by in table.computer.advanced_surgeries) - return FALSE - if(type in table.computer.advanced_surgeries) - return TRUE + if(table?.computer && !CHECK_BITFIELD(table.computer.stat, NOPOWER|BROKEN)) + advanced_surgeries |= table.computer.advanced_surgeries + + if(istype(tool, /obj/item/surgical_drapes/advanced)) + var/obj/item/surgical_drapes/advanced/A = tool + advanced_surgeries |= A.get_advanced_surgeries() + + if(replaced_by in advanced_surgeries) + return FALSE + if(type in advanced_surgeries) + return TRUE /datum/surgery/proc/next_step(mob/user, intent) if(step_in_progress) diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index c8fe7597da..1a56a510c5 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -287,6 +287,26 @@ if(!attempt_initiate_surgery(src, M, user)) ..() +/obj/item/surgical_drapes/advanced + name = "smart surgical drapes" + desc = "A quite quirky set of drapes with wireless synchronization to the station's research networks, with an integrated display allowing users to execute advanced surgeries without the aid of an operating computer." + var/datum/techweb/linked_techweb + +/obj/item/surgical_drapes/advanced/Initialize(mapload) + . = ..() + linked_techweb = SSresearch.science_tech + +/obj/item/surgical_drapes/advanced/proc/get_advanced_surgeries() + . = list() + if(!linked_techweb) + return + for(var/subtype in subtypesof(/datum/design/surgery)) + var/datum/design/surgery/prototype = subtype + var/id = initial(prototype.id) + if(id in linked_techweb.researched_designs) + prototype = SSresearch.techweb_design_by_id(id) + . |= prototype.surgery + /obj/item/organ_storage //allows medical cyborgs to manipulate organs without hands name = "organ storage bag" desc = "A container for holding body parts." diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 5d2e08734e..d368a9bbca 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -266,16 +266,17 @@ /obj/item/cartridge/janitor = 3, /obj/item/clothing/gloves/color/black = 2, /obj/item/clothing/head/soft/purple = 2, + /obj/item/twohanded/broom = 2, /obj/item/paint/paint_remover = 2, - /obj/item/melee/flyswatter = 1, + /obj/item/melee/flyswatter = 2, /obj/item/flashlight = 2, /obj/item/caution = 8, - /obj/item/holosign_creator = 1, - /obj/item/lightreplacer = 1, - /obj/item/soap = 1, - /obj/item/storage/bag/trash = 1, - /obj/item/clothing/shoes/galoshes = 1, - /obj/item/watertank/janitor = 1, + /obj/item/holosign_creator = 2, + /obj/item/lightreplacer = 2, + /obj/item/soap = 2, + /obj/item/storage/bag/trash = 2, + /obj/item/clothing/shoes/galoshes = 2, + /obj/item/watertank/janitor = 2, /obj/item/storage/belt/janitor = 2, /obj/item/screwdriver = 2, /obj/item/stack/cable_coil/random = 4) diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index bf41c46332..5f280fb04d 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -384,6 +384,9 @@ if(!istype(tasted)) return + if(!tasted.client?.prefs_vr.lickable) + return + if(src == stat) return diff --git a/code/modules/vore/eating/vore.dm b/code/modules/vore/eating/vore.dm index 29391547bd..35f0653617 100644 --- a/code/modules/vore/eating/vore.dm +++ b/code/modules/vore/eating/vore.dm @@ -40,6 +40,7 @@ GLOBAL_LIST_EMPTY(vore_preferences_datums) var/digestable = FALSE var/devourable = FALSE var/feeding = FALSE + var/lickable = FALSE // var/allowmobvore = TRUE var/list/belly_prefs = list() var/vore_taste = "nothing in particular" diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm index 962fe54af7..a2746f35e8 100644 --- a/code/modules/vore/eating/vorepanel.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -242,22 +242,13 @@ dat += "Reload Slot Prefs" dat += "
" - switch(user.digestable) - if(TRUE) - dat += "
Toggle Digestable (Currently: ON)" - if(FALSE) - dat += "
Toggle Digestable (Currently: OFF)" - switch(user.devourable) - if(TRUE) - dat += "
Toggle Devourable (Currently: ON)" - if(FALSE) - dat += "
Toggle Devourable (Currently: OFF)" - switch(user.feeding) - if(TRUE) - dat += "
Toggle Feeding (Currently: ON)" - if(FALSE) - dat += "
Toggle Feeding (Currently: OFF)" - + var/pref_on = "#173d15" + var/pref_off = "#990000" + dat += "
Toggle Digestable (Currently: [user.digestable ? "ON" : "OFF"])" + dat += "
Toggle Devourable (Currently: [user.devourable ? "ON" : "OFF"])" + dat += "
Toggle Feeding (Currently: [user.feeding ? "ON" : "OFF"])" + if(user.client.prefs_vr) + dat += "
Toggle Licking (Currently: [user.client.prefs_vr.lickable ? "ON" : "OFF"])" //Returns the dat html to the vore_look return dat @@ -734,5 +725,16 @@ if(user.client.prefs_vr) user.client.prefs_vr.feeding = user.feeding + if(href_list["toggledlickable"]) + if(user.client.prefs_vr) + var/choice = alert(user, "This button is to toggle your ability to be licked. Being licked is currently: [user.client.prefs_vr.lickable ? "Allowed" : "Prevented"]", "", "Allow Licking", "Cancel", "Prevent Licking") + switch(choice) + if("Cancel") + return FALSE + if("Allow Licking") + user.client.prefs_vr.lickable = TRUE + if("Prevent Licking") + user.client.prefs_vr.lickable = FALSE + //Refresh when interacted with, returning 1 makes vore_look.Topic update - return TRUE \ No newline at end of file + return TRUE diff --git a/html/changelogs/AutoChangeLog-pr-10541.yml b/html/changelogs/AutoChangeLog-pr-10541.yml new file mode 100644 index 0000000000..f59ebe0e75 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10541.yml @@ -0,0 +1,5 @@ +author: "Detective-Google" +delete-after: True +changes: + - rscadd: "the POOL. +remove: boxstation dorms 7" diff --git a/html/changelogs/AutoChangeLog-pr-10572.yml b/html/changelogs/AutoChangeLog-pr-10572.yml new file mode 100644 index 0000000000..d18e2d9e93 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10572.yml @@ -0,0 +1,5 @@ +author: "Tupinambis" +delete-after: True +changes: + - tweak: "the portion of laws that require harm prevention by silicons has been removed." + - server: "silicon_laws.txt config file is required to be modified for full implementation." diff --git a/html/changelogs/AutoChangeLog-pr-10649.yml b/html/changelogs/AutoChangeLog-pr-10649.yml new file mode 100644 index 0000000000..04e3569ad3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10649.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "Shuttle hijacking has been completely reworked. Alt-click the shuttle as a hijack-capable mind (so traitors, and especially traitors with hijack) to begin or continue a hacking process." diff --git a/html/changelogs/AutoChangeLog-pr-11025.yml b/html/changelogs/AutoChangeLog-pr-11025.yml new file mode 100644 index 0000000000..af9ac20f62 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11025.yml @@ -0,0 +1,5 @@ +author: "Arturlang" +delete-after: True +changes: + - rscadd: "Nanite interfaces have gotten a rework to TGUI Next, and can now support sub-programs. +add:Adds the nanite sting program, which will allow you to manually sting people to give them nanites, changeling style." diff --git a/html/changelogs/AutoChangeLog-pr-11033.yml b/html/changelogs/AutoChangeLog-pr-11033.yml new file mode 100644 index 0000000000..c5b9a2f65a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11033.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "cmo now gets advanced surgery drapes that techweb-sync for advanced surgeries without an operating console." diff --git a/html/changelogs/AutoChangeLog-pr-11080.yml b/html/changelogs/AutoChangeLog-pr-11080.yml new file mode 100644 index 0000000000..1dd764cfc3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11080.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "Stunbatons changed yet again." diff --git a/html/changelogs/AutoChangeLog-pr-11136.yml b/html/changelogs/AutoChangeLog-pr-11136.yml new file mode 100644 index 0000000000..5289fc3492 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11136.yml @@ -0,0 +1,5 @@ +author: "Owai-Seek" +delete-after: True +changes: + - rscadd: "BROOM" + - tweak: "Janitor Vendor now has gear for two Janitors." diff --git a/html/changelogs/AutoChangeLog-pr-11139.yml b/html/changelogs/AutoChangeLog-pr-11139.yml new file mode 100644 index 0000000000..99a7027977 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11139.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "pais can no longer bodyblock bullets" diff --git a/html/changelogs/AutoChangeLog-pr-11140.yml b/html/changelogs/AutoChangeLog-pr-11140.yml new file mode 100644 index 0000000000..1054039b53 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11140.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "pai radio short changed to 3 minutes down from 5" diff --git a/html/changelogs/AutoChangeLog-pr-11141.yml b/html/changelogs/AutoChangeLog-pr-11141.yml new file mode 100644 index 0000000000..68de20a632 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11141.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "pais are no longer fulltile click opacity." diff --git a/html/changelogs/AutoChangeLog-pr-11142.yml b/html/changelogs/AutoChangeLog-pr-11142.yml new file mode 100644 index 0000000000..35c4033e2c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11142.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - refactor: "vampire \"immortal haste\" has been reworked to be more reliable and consistent." diff --git a/html/changelogs/AutoChangeLog-pr-11146.yml b/html/changelogs/AutoChangeLog-pr-11146.yml new file mode 100644 index 0000000000..09d3b0134b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11146.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - balance: "all supermatter damage is now hardcapped" diff --git a/html/changelogs/AutoChangeLog-pr-11149.yml b/html/changelogs/AutoChangeLog-pr-11149.yml new file mode 100644 index 0000000000..bc9ce5eb9e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11149.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Mining vendors no longer fail and eat your points iff you have precisely enough points to pay for an item" diff --git a/html/changelogs/AutoChangeLog-pr-11153.yml b/html/changelogs/AutoChangeLog-pr-11153.yml new file mode 100644 index 0000000000..bba1af88db --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11153.yml @@ -0,0 +1,5 @@ +author: "BuffEngineering, nemvar." +delete-after: True +changes: + - bugfix: "Addicts can now feel like they're getting their fix or kicking it." + - bugfix: "Aheals now remove addictions and restore your mood to default." diff --git a/html/changelogs/AutoChangeLog-pr-11154.yml b/html/changelogs/AutoChangeLog-pr-11154.yml new file mode 100644 index 0000000000..03e1898b60 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11154.yml @@ -0,0 +1,4 @@ +author: "Kraseo" +delete-after: True +changes: + - bugfix: "Nightmares no longer delete entire guns from existence for merely having a light on them." diff --git a/html/changelogs/AutoChangeLog-pr-11155.yml b/html/changelogs/AutoChangeLog-pr-11155.yml new file mode 100644 index 0000000000..069cdbdedf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11155.yml @@ -0,0 +1,4 @@ +author: "necromanceranne" +delete-after: True +changes: + - bugfix: "Literally unclickability with a cham projector" diff --git a/html/changelogs/AutoChangeLog-pr-11156.yml b/html/changelogs/AutoChangeLog-pr-11156.yml new file mode 100644 index 0000000000..dc684eb4ef --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11156.yml @@ -0,0 +1,8 @@ +author: "Psody-Mordheim" +delete-after: True +changes: + - rscadd: "Disfiguration Symptom." + - rscadd: "Deoxyribonucleic Acid Saboteur Symptom." + - rscadd: "Polyvitiligo Symptom." + - rscdel: "Revitiligo Symptom." + - rscdel: "Vitiligo Symptom." diff --git a/html/changelogs/AutoChangeLog-pr-11157.yml b/html/changelogs/AutoChangeLog-pr-11157.yml new file mode 100644 index 0000000000..5843c5f0e4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11157.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - tweak: "Licking pref" diff --git a/html/changelogs/AutoChangeLog-pr-11160.yml b/html/changelogs/AutoChangeLog-pr-11160.yml new file mode 100644 index 0000000000..cf0fc3253e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11160.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - balance: "Pie reagent transfer now requires an uncovered mouth." diff --git a/html/changelogs/AutoChangeLog-pr-11163.yml b/html/changelogs/AutoChangeLog-pr-11163.yml new file mode 100644 index 0000000000..5492ad563b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11163.yml @@ -0,0 +1,4 @@ +author: "MrJWhit" +delete-after: True +changes: + - tweak: "TEG" diff --git a/html/changelogs/AutoChangeLog-pr-11166.yml b/html/changelogs/AutoChangeLog-pr-11166.yml new file mode 100644 index 0000000000..c812c77ad8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11166.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Fixed IRV." diff --git a/html/changelogs/AutoChangeLog-pr-11168.yml b/html/changelogs/AutoChangeLog-pr-11168.yml new file mode 100644 index 0000000000..93caacdad1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11168.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Runtime if nobody has a chaos pref set" diff --git a/html/changelogs/AutoChangeLog-pr-11175.yml b/html/changelogs/AutoChangeLog-pr-11175.yml new file mode 100644 index 0000000000..89d82068f1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11175.yml @@ -0,0 +1,6 @@ +author: "keronshb" +delete-after: True +changes: + - bugfix: "fixed accelerated regeneration nanites" + - bugfix: "fixed mechanical repair nanites" + - bugfix: "fixed bio reconstruction nanites" diff --git a/html/changelogs/AutoChangeLog-pr-11176.yml b/html/changelogs/AutoChangeLog-pr-11176.yml new file mode 100644 index 0000000000..98c7619990 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11176.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "IRV fixed... again" diff --git a/icons/effects/96x96.dmi b/icons/effects/96x96.dmi index c0b5ef5b40..b60ff97b2b 100644 Binary files a/icons/effects/96x96.dmi and b/icons/effects/96x96.dmi differ diff --git a/icons/mob/inhands/equipment/custodial_lefthand.dmi b/icons/mob/inhands/equipment/custodial_lefthand.dmi index 90ffd2495e..eaed11867c 100644 Binary files a/icons/mob/inhands/equipment/custodial_lefthand.dmi and b/icons/mob/inhands/equipment/custodial_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/custodial_righthand.dmi b/icons/mob/inhands/equipment/custodial_righthand.dmi index 33e708f8c9..dc7ee742a3 100644 Binary files a/icons/mob/inhands/equipment/custodial_righthand.dmi and b/icons/mob/inhands/equipment/custodial_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 71c453856a..4ca4a351c6 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 0ca09ad810..8546a78a73 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/sharks.dmi b/icons/mob/sharks.dmi new file mode 100644 index 0000000000..e1b9228ba9 Binary files /dev/null and b/icons/mob/sharks.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index 9128654a5b..802e165550 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/machines/pool.dmi b/icons/obj/machines/pool.dmi new file mode 100644 index 0000000000..2bfb4f8c40 Binary files /dev/null and b/icons/obj/machines/pool.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index d5cae1db93..698c1f7a34 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index aad3e78590..cd504a124a 100644 Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ diff --git a/icons/turf/pool.dmi b/icons/turf/pool.dmi new file mode 100644 index 0000000000..211776ed93 Binary files /dev/null and b/icons/turf/pool.dmi differ diff --git a/modular_citadel/code/_onclick/item_attack.dm b/modular_citadel/code/_onclick/item_attack.dm index 80281ee084..d87b2be661 100644 --- a/modular_citadel/code/_onclick/item_attack.dm +++ b/modular_citadel/code/_onclick/item_attack.dm @@ -1,12 +1,12 @@ /obj/item/proc/rightclick_melee_attack_chain(mob/user, atom/target, params) - if(!pre_altattackby(target, user, params)) //Hey, does this item have special behavior that should override all normal right-click functionality? + if(!alt_pre_attack(target, user, params)) //Hey, does this item have special behavior that should override all normal right-click functionality? if(!target.altattackby(src, user, params)) //Does the target do anything special when we right-click on it? melee_attack_chain(user, target, params) //Ugh. Lame! I'm filing a legal complaint about the discrimination against the right mouse button! else altafterattack(target, user, TRUE, params) return -/obj/item/proc/pre_altattackby(atom/A, mob/living/user, params) +/obj/item/proc/alt_pre_attack(atom/A, mob/living/user, params) return FALSE //return something other than false if you wanna override attacking completely /atom/proc/altattackby(obj/item/W, mob/user, params) diff --git a/sound/effects/fillingwatter.ogg b/sound/effects/fillingwatter.ogg new file mode 100644 index 0000000000..e1d2e19276 Binary files /dev/null and b/sound/effects/fillingwatter.ogg differ diff --git a/sound/effects/pooldrain.ogg b/sound/effects/pooldrain.ogg new file mode 100644 index 0000000000..8576dedc3d Binary files /dev/null and b/sound/effects/pooldrain.ogg differ diff --git a/sound/effects/splash.ogg b/sound/effects/splash.ogg new file mode 100644 index 0000000000..22f17c0790 Binary files /dev/null and b/sound/effects/splash.ogg differ diff --git a/sound/effects/water_wade1.ogg b/sound/effects/water_wade1.ogg new file mode 100644 index 0000000000..27527f9d8b Binary files /dev/null and b/sound/effects/water_wade1.ogg differ diff --git a/sound/effects/water_wade2.ogg b/sound/effects/water_wade2.ogg new file mode 100644 index 0000000000..f9c15cab64 Binary files /dev/null and b/sound/effects/water_wade2.ogg differ diff --git a/sound/effects/water_wade3.ogg b/sound/effects/water_wade3.ogg new file mode 100644 index 0000000000..3daccae01a Binary files /dev/null and b/sound/effects/water_wade3.ogg differ diff --git a/sound/effects/water_wade4.ogg b/sound/effects/water_wade4.ogg new file mode 100644 index 0000000000..7ba705f499 Binary files /dev/null and b/sound/effects/water_wade4.ogg differ diff --git a/sound/effects/watersplash.ogg b/sound/effects/watersplash.ogg new file mode 100644 index 0000000000..a9a6e48608 Binary files /dev/null and b/sound/effects/watersplash.ogg differ diff --git a/sound/misc/crack.ogg b/sound/misc/crack.ogg new file mode 100644 index 0000000000..1fb5738051 Binary files /dev/null and b/sound/misc/crack.ogg differ diff --git a/sound/misc/crunch.ogg b/sound/misc/crunch.ogg new file mode 100644 index 0000000000..c73e1fae60 Binary files /dev/null and b/sound/misc/crunch.ogg differ diff --git a/tgstation.dme b/tgstation.dme old mode 100755 new mode 100644 index 72f281d29f..6ed21c43b8 --- a/tgstation.dme +++ b/tgstation.dme @@ -1,3 +1,4 @@ + // DM Environment file for tgstation.dme. // All manual changes should be made outside the BEGIN_ and END_ blocks. // New source code should be placed in .dm files: choose File/New --> Code File. @@ -77,6 +78,7 @@ #include "code\__DEFINES\obj_flags.dm" #include "code\__DEFINES\pinpointers.dm" #include "code\__DEFINES\pipe_construction.dm" +#include "code\__DEFINES\pool.dm" #include "code\__DEFINES\preferences.dm" #include "code\__DEFINES\procpath.dm" #include "code\__DEFINES\profile.dm" @@ -460,10 +462,12 @@ #include "code\datums\diseases\advance\symptoms\confusion.dm" #include "code\datums\diseases\advance\symptoms\cough.dm" #include "code\datums\diseases\advance\symptoms\deafness.dm" +#include "code\datums\diseases\advance\symptoms\disfiguration.dm" #include "code\datums\diseases\advance\symptoms\dizzy.dm" #include "code\datums\diseases\advance\symptoms\fever.dm" #include "code\datums\diseases\advance\symptoms\fire.dm" #include "code\datums\diseases\advance\symptoms\flesh_eating.dm" +#include "code\datums\diseases\advance\symptoms\genetics.dm" #include "code\datums\diseases\advance\symptoms\hallucigen.dm" #include "code\datums\diseases\advance\symptoms\headache.dm" #include "code\datums\diseases\advance\symptoms\heal.dm" @@ -491,6 +495,7 @@ #include "code\datums\elements\earhealing.dm" #include "code\datums\elements\ghost_role_eligibility.dm" #include "code\datums\elements\mob_holder.dm" +#include "code\datums\elements\swimming.dm" #include "code\datums\elements\wuv.dm" #include "code\datums\helper_datums\events.dm" #include "code\datums\helper_datums\getrev.dm" @@ -1298,18 +1303,18 @@ #include "code\modules\antagonists\bloodsucker\objects\bloodsucker_coffin.dm" #include "code\modules\antagonists\bloodsucker\objects\bloodsucker_crypt.dm" #include "code\modules\antagonists\bloodsucker\objects\bloodsucker_lair.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_brawn.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_cloak.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_feed.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_fortitude.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_gohome.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_haste.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_lunge.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_masquerade.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_mesmerize.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_trespass.dm" -#include "code\modules\antagonists\bloodsucker\powers\bs_veil.dm" -#include "code\modules\antagonists\bloodsucker\powers\v_recuperate.dm" +#include "code\modules\antagonists\bloodsucker\powers\brawn.dm" +#include "code\modules\antagonists\bloodsucker\powers\cloak.dm" +#include "code\modules\antagonists\bloodsucker\powers\feed.dm" +#include "code\modules\antagonists\bloodsucker\powers\fortitude.dm" +#include "code\modules\antagonists\bloodsucker\powers\go_home.dm" +#include "code\modules\antagonists\bloodsucker\powers\haste.dm" +#include "code\modules\antagonists\bloodsucker\powers\lunge.dm" +#include "code\modules\antagonists\bloodsucker\powers\masquerade.dm" +#include "code\modules\antagonists\bloodsucker\powers\mesmerize.dm" +#include "code\modules\antagonists\bloodsucker\powers\recuperate.dm" +#include "code\modules\antagonists\bloodsucker\powers\trespass.dm" +#include "code\modules\antagonists\bloodsucker\powers\veil.dm" #include "code\modules\antagonists\brainwashing\brainwashing.dm" #include "code\modules\antagonists\brother\brother.dm" #include "code\modules\antagonists\changeling\cellular_emporium.dm" @@ -2374,6 +2379,7 @@ #include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm" #include "code\modules\mob\living\simple_animal\hostile\russian.dm" +#include "code\modules\mob\living\simple_animal\hostile\sharks.dm" #include "code\modules\mob\living\simple_animal\hostile\skeleton.dm" #include "code\modules\mob\living\simple_animal\hostile\statue.dm" #include "code\modules\mob\living\simple_animal\hostile\stickman.dm" @@ -2531,6 +2537,13 @@ #include "code\modules\photography\photos\album.dm" #include "code\modules\photography\photos\frame.dm" #include "code\modules\photography\photos\photo.dm" +#include "code\modules\pool\pool_controller.dm" +#include "code\modules\pool\pool_drain.dm" +#include "code\modules\pool\pool_effects.dm" +#include "code\modules\pool\pool_main.dm" +#include "code\modules\pool\pool_noodles.dm" +#include "code\modules\pool\pool_structures.dm" +#include "code\modules\pool\pool_wires.dm" #include "code\modules\power\apc.dm" #include "code\modules\power\cable.dm" #include "code\modules\power\cell.dm" @@ -2819,7 +2832,6 @@ #include "code\modules\research\nanites\nanite_chamber.dm" #include "code\modules\research\nanites\nanite_chamber_computer.dm" #include "code\modules\research\nanites\nanite_cloud_controller.dm" -#include "code\modules\research\nanites\nanite_hijacker.dm" #include "code\modules\research\nanites\nanite_misc_items.dm" #include "code\modules\research\nanites\nanite_program_hub.dm" #include "code\modules\research\nanites\nanite_programmer.dm" @@ -2827,6 +2839,12 @@ #include "code\modules\research\nanites\nanite_remote.dm" #include "code\modules\research\nanites\program_disks.dm" #include "code\modules\research\nanites\public_chamber.dm" +#include "code\modules\research\nanites\rules.dm" +#include "code\modules\research\nanites\extra_settings\_extra_setting.dm" +#include "code\modules\research\nanites\extra_settings\boolean.dm" +#include "code\modules\research\nanites\extra_settings\number.dm" +#include "code\modules\research\nanites\extra_settings\text.dm" +#include "code\modules\research\nanites\extra_settings\type.dm" #include "code\modules\research\nanites\nanite_programs\buffing.dm" #include "code\modules\research\nanites\nanite_programs\healing.dm" #include "code\modules\research\nanites\nanite_programs\rogue.dm" diff --git a/tgui-next/packages/tgui/public/tgui.bundle.js b/tgui-next/packages/tgui/public/tgui.bundle.js index 3e11dba928..cbc23ebda0 100644 --- a/tgui-next/packages/tgui/public/tgui.bundle.js +++ b/tgui-next/packages/tgui/public/tgui.bundle.js @@ -1,3 +1,3 @@ -!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=164)}([function(e,t,n){"use strict";var o=n(5),r=n(18).f,a=n(24),i=n(22),c=n(89),l=n(122),u=n(61);e.exports=function(e,t){var n,s,d,p,f,m=e.target,h=e.global,C=e.stat;if(n=h?o:C?o[m]||c(m,{}):(o[m]||{}).prototype)for(s in t){if(p=t[s],d=e.noTargetGet?(f=r(n,s))&&f.value:n[s],!u(h?s:m+(C?".":"#")+s,e.forced)&&d!==undefined){if(typeof p==typeof d)continue;l(p,d)}(e.sham||d&&d.sham)&&a(p,"sham",!0),i(n,s,p,e)}}},function(e,t,n){"use strict";t.__esModule=!0;var o=n(386);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(t[e]=o[e])}))},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=t.Tooltip=t.Toast=t.TitleBar=t.Tabs=t.Table=t.Section=t.ProgressBar=t.NumberInput=t.NoticeBox=t.LabeledList=t.Input=t.Icon=t.Grid=t.Flex=t.Dropdown=t.Dimmer=t.Collapsible=t.ColorBox=t.Button=t.Box=t.BlockQuote=t.AnimatedNumber=void 0;var o=n(158);t.AnimatedNumber=o.AnimatedNumber;var r=n(391);t.BlockQuote=r.BlockQuote;var a=n(17);t.Box=a.Box;var i=n(114);t.Button=i.Button;var c=n(393);t.ColorBox=c.ColorBox;var l=n(394);t.Collapsible=l.Collapsible;var u=n(395);t.Dimmer=u.Dimmer;var s=n(396);t.Dropdown=s.Dropdown;var d=n(397);t.Flex=d.Flex;var p=n(161);t.Grid=p.Grid;var f=n(87);t.Icon=f.Icon;var m=n(160);t.Input=m.Input;var h=n(163);t.LabeledList=h.LabeledList;var C=n(398);t.NoticeBox=C.NoticeBox;var g=n(399);t.NumberInput=g.NumberInput;var b=n(400);t.ProgressBar=b.ProgressBar;var v=n(401);t.Section=v.Section;var N=n(162);t.Table=N.Table;var V=n(402);t.Tabs=V.Tabs;var y=n(403);t.TitleBar=y.TitleBar;var _=n(117);t.Toast=_.Toast;var x=n(159);t.Tooltip=x.Tooltip;var k=n(404);t.Chart=k.Chart},function(e,t,n){"use strict";t.__esModule=!0,t.useBackend=t.backendReducer=t.backendUpdate=void 0;var o=n(37),r=n(19);t.backendUpdate=function(e){return{type:"backendUpdate",payload:e}};t.backendReducer=function(e,t){var n=t.type,r=t.payload;if("backendUpdate"===n){var a=Object.assign({},e.config,{},r.config),i=Object.assign({},e.data,{},r.static_data,{},r.data),c=a.status!==o.UI_DISABLED,l=a.status===o.UI_INTERACTIVE;return Object.assign({},e,{config:a,data:i,visible:c,interactive:l})}return e};t.useBackend=function(e){var t=e.state,n=(e.dispatch,t.config.ref);return Object.assign({},t,{act:function(e,t){return void 0===t&&(t={}),(0,r.act)(n,e,t)}})}},function(e,t,n){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){"use strict";(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n(118))},function(e,t,n){"use strict";e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";var o,r=n(9),a=n(5),i=n(6),c=n(15),l=n(74),u=n(24),s=n(22),d=n(13).f,p=n(36),f=n(53),m=n(11),h=n(58),C=a.DataView,g=C&&C.prototype,b=a.Int8Array,v=b&&b.prototype,N=a.Uint8ClampedArray,V=N&&N.prototype,y=b&&p(b),_=v&&p(v),x=Object.prototype,k=x.isPrototypeOf,w=m("toStringTag"),L=h("TYPED_ARRAY_TAG"),B=!(!a.ArrayBuffer||!C),S=B&&!!f&&"Opera"!==l(a.opera),I=!1,T={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},A=function(e){var t=l(e);return"DataView"===t||c(T,t)},E=function(e){return i(e)&&c(T,l(e))};for(o in T)a[o]||(S=!1);if((!S||"function"!=typeof y||y===Function.prototype)&&(y=function(){throw TypeError("Incorrect invocation")},S))for(o in T)a[o]&&f(a[o],y);if((!S||!_||_===x)&&(_=y.prototype,S))for(o in T)a[o]&&f(a[o].prototype,_);if(S&&p(V)!==_&&f(V,_),r&&!c(_,w))for(o in I=!0,d(_,w,{get:function(){return i(this)?this[L]:undefined}}),T)a[o]&&u(a[o],L,o);B&&f&&p(g)!==x&&f(g,x),e.exports={NATIVE_ARRAY_BUFFER:B,NATIVE_ARRAY_BUFFER_VIEWS:S,TYPED_ARRAY_TAG:I&&L,aTypedArray:function(e){if(E(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(f){if(k.call(y,e))return e}else for(var t in T)if(c(T,o)){var n=a[t];if(n&&(e===n||k.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(r){if(n)for(var o in T){var i=a[o];i&&c(i.prototype,e)&&delete i.prototype[e]}_[e]&&!n||s(_,e,n?t:S&&v[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var o,i;if(r){if(f){if(n)for(o in T)(i=a[o])&&c(i,e)&&delete i[e];if(y[e]&&!n)return;try{return s(y,e,n?t:S&&b[e]||t)}catch(l){}}for(o in T)!(i=a[o])||i[e]&&!n||s(i,e,t)}},isView:A,isTypedArray:E,TypedArray:y,TypedArrayPrototype:_}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){if(!o(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(30),r=Math.min;e.exports=function(e){return e>0?r(o(e),9007199254740991):0}},function(e,t,n){"use strict";var o=n(5),r=n(91),a=n(15),i=n(58),c=n(95),l=n(125),u=r("wks"),s=o.Symbol,d=l?s:i;e.exports=function(e){return a(u,e)||(c&&a(s,e)?u[e]=s[e]:u[e]=d("Symbol."+e)),u[e]}},function(e,t,n){"use strict";t.__esModule=!0,t.isFalsy=t.pureComponentHooks=t.shallowDiffers=t.normalizeChildren=t.classes=void 0;t.classes=function(e){for(var t="",n=0;n_;_++)if((p||_ in N)&&(b=V(g=N[_],_,v),e))if(t)k[_]=b;else if(b)switch(e){case 3:return!0;case 5:return g;case 6:return _;case 2:l.call(k,g)}else if(s)return!1;return d?-1:u||s?s:k}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6)}},function(e,t,n){"use strict";t.__esModule=!0,t.Box=t.computeBoxProps=t.unit=void 0;var o=n(1),r=n(12),a=n(392),i=n(37);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){return"string"==typeof e?e:"number"==typeof e?6*e+"px":void 0};t.unit=l;var u=function(e){return"string"==typeof e&&i.CSS_COLORS.includes(e)},s=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=n)}},d=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=l(n))}},p=function(e,t){return function(n,o){(0,r.isFalsy)(o)||(n[e]=t)}},f=function(e,t){return function(n,o){if(!(0,r.isFalsy)(o))for(var a=0;a0&&(t.style=l),t};t.computeBoxProps=C;var g=function(e){var t=e.as,n=void 0===t?"div":t,i=e.className,l=e.content,s=e.children,d=c(e,["as","className","content","children"]),p=e.textColor||e.color,f=e.backgroundColor;if("function"==typeof s)return s(C(e));var m=C(d);return(0,o.createVNode)(a.VNodeFlags.HtmlElement,n,(0,r.classes)([i,u(p)&&"color-"+p,u(f)&&"color-bg-"+f]),l||s,a.ChildFlags.UnknownChildren,m)};t.Box=g,g.defaultHooks=r.pureComponentHooks;var b=function(e){var t=e.children,n=c(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,g,Object.assign({position:"relative"},n,{children:(0,o.createComponentVNode)(2,g,{fillPositionedParent:!0,children:t})})))};b.defaultHooks=r.pureComponentHooks,g.Forced=b},function(e,t,n){"use strict";var o=n(9),r=n(71),a=n(46),i=n(23),c=n(33),l=n(15),u=n(119),s=Object.getOwnPropertyDescriptor;t.f=o?s:function(e,t){if(e=i(e),t=c(t,!0),u)try{return s(e,t)}catch(n){}if(l(e,t))return a(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";t.__esModule=!0,t.winset=t.winget=t.act=t.runCommand=t.callByondAsync=t.callByond=t.tridentVersion=void 0;var o,r=n(28),a=(o=navigator.userAgent.match(/Trident\/(\d+).+?;/i)[1])?parseInt(o,10):null;t.tridentVersion=a;var i=function(e,t){return void 0===t&&(t={}),"byond://"+e+"?"+(0,r.buildQueryString)(t)},c=function(e,t){void 0===t&&(t={}),window.location.href=i(e,t)};t.callByond=c;var l=function(e,t){void 0===t&&(t={}),window.__callbacks__=window.__callbacks__||[];var n=window.__callbacks__.length,o=new Promise((function(e){window.__callbacks__.push(e)}));return window.location.href=i(e,Object.assign({},t,{callback:"__callbacks__["+n+"]"})),o};t.callByondAsync=l;t.runCommand=function(e){return c("winset",{command:e})};t.act=function(e,t,n){return void 0===n&&(n={}),c("",Object.assign({src:e,action:t},n))};var u=function(e,t){var n;return regeneratorRuntime.async((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,regeneratorRuntime.awrap(l("winget",{id:e,property:t}));case 2:return n=o.sent,o.abrupt("return",n[t]);case 4:case"end":return o.stop()}}))};t.winget=u;t.winset=function(e,t,n){var o;return c("winset",((o={})[e+"."+t]=n,o))}},function(e,t,n){"use strict";t.__esModule=!0,t.toFixed=t.round=t.clamp=void 0;t.clamp=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),Math.max(t,Math.min(e,n))};t.round=function(e){return Math.round(e)};t.toFixed=function(e,t){return void 0===t&&(t=0),Number(e).toFixed(t)}},function(e,t,n){"use strict";e.exports=function(e){if(e==undefined)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var o=n(5),r=n(24),a=n(15),i=n(89),c=n(90),l=n(34),u=l.get,s=l.enforce,d=String(String).split("String");(e.exports=function(e,t,n,c){var l=!!c&&!!c.unsafe,u=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;"function"==typeof n&&("string"!=typeof t||a(n,"name")||r(n,"name",t),s(n).source=d.join("string"==typeof t?t:"")),e!==o?(l?!p&&e[t]&&(u=!0):delete e[t],u?e[t]=n:r(e,t,n)):u?e[t]=n:i(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||c(this)}))},function(e,t,n){"use strict";var o=n(57),r=n(21);e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var o=n(9),r=n(13),a=n(46);e.exports=o?function(e,t,n){return r.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){"use strict";var o=n(123),r=n(15),a=n(129),i=n(13).f;e.exports=function(e){var t=o.Symbol||(o.Symbol={});r(t,e)||i(t,e,{value:a.f(e)})}},function(e,t,n){"use strict";var o=n(21),r=/"/g;e.exports=function(e,t,n,a){var i=String(o(e)),c="<"+t;return""!==n&&(c+=" "+n+'="'+String(a).replace(r,""")+'"'),c+">"+i+""}},function(e,t,n){"use strict";var o=n(4);e.exports=function(e){return o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";t.__esModule=!0,t.buildQueryString=t.decodeHtmlEntities=t.toTitleCase=t.capitalize=t.testGlobPattern=t.multiline=void 0;t.multiline=function o(e){if(Array.isArray(e))return o(e.join(""));var t,n=e.split("\n"),r=n,a=Array.isArray(r),i=0;for(r=a?r:r[Symbol.iterator]();;){var c;if(a){if(i>=r.length)break;c=r[i++]}else{if((i=r.next()).done)break;c=i.value}for(var l=c,u=0;u",apos:"'"};return e.replace(/
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/&#?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/&#x?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";t.__esModule=!0,t.zipWith=t.zip=t.reduce=t.sortBy=t.map=t.toArray=void 0;t.toArray=function(e){if(Array.isArray(e))return e;if("object"==typeof e){var t=Object.prototype.hasOwnProperty,n=[];for(var o in e)t.call(e,o)&&n.push(e[o]);return n}return[]};var o=function(e){return function(t){if(null===t&&t===undefined)return t;if(Array.isArray(t)){for(var n=[],o=0;oc)return 1}return 0};t.sortBy=function(){for(var e=arguments.length,t=new Array(e),n=0;n0?r:o)(e)}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){"use strict";var o={}.toString;e.exports=function(e){return o.call(e).slice(8,-1)}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e,t){if(!o(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var o,r,a,i=n(121),c=n(5),l=n(6),u=n(24),s=n(15),d=n(72),p=n(59),f=c.WeakMap;if(i){var m=new f,h=m.get,C=m.has,g=m.set;o=function(e,t){return g.call(m,e,t),t},r=function(e){return h.call(m,e)||{}},a=function(e){return C.call(m,e)}}else{var b=d("state");p[b]=!0,o=function(e,t){return u(e,b,t),t},r=function(e){return s(e,b)?e[b]:{}},a=function(e){return s(e,b)}}e.exports={set:o,get:r,has:a,enforce:function(e){return a(e)?r(e):o(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=r(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var o=n(123),r=n(5),a=function(e){return"function"==typeof e?e:undefined};e.exports=function(e,t){return arguments.length<2?a(o[e])||a(r[e]):o[e]&&o[e][t]||r[e]&&r[e][t]}},function(e,t,n){"use strict";var o=n(15),r=n(14),a=n(72),i=n(102),c=a("IE_PROTO"),l=Object.prototype;e.exports=i?Object.getPrototypeOf:function(e){return e=r(e),o(e,c)?e[c]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},function(e,t,n){"use strict";t.__esModule=!0,t.getGasColor=t.getGasLabel=t.RADIO_CHANNELS=t.CSS_COLORS=t.COLORS=t.UI_CLOSE=t.UI_DISABLED=t.UI_UPDATE=t.UI_INTERACTIVE=void 0;t.UI_INTERACTIVE=2;t.UI_UPDATE=1;t.UI_DISABLED=0;t.UI_CLOSE=-1;t.COLORS={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}};t.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"];t.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"CentCom",freq:1337,color:"#2681a5"},{name:"Supply",freq:1347,color:"#b88646"},{name:"Service",freq:1349,color:"#6ca729"},{name:"Science",freq:1351,color:"#c68cfa"},{name:"Command",freq:1353,color:"#5177ff"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"AI Private",freq:1447,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"}];var o=[{id:"o2",name:"Oxygen",label:"O\u2082",color:"blue"},{id:"n2",name:"Nitrogen",label:"N\u2082",color:"red"},{id:"co2",name:"Carbon Dioxide",label:"CO\u2082",color:"grey"},{id:"plasma",name:"Plasma",label:"Plasma",color:"pink"},{id:"water_vapor",name:"Water Vapor",label:"H\u2082O",color:"grey"},{id:"nob",name:"Hyper-noblium",label:"Hyper-nob",color:"teal"},{id:"n2o",name:"Nitrous Oxide",label:"N\u2082O",color:"red"},{id:"no2",name:"Nitryl",label:"NO\u2082",color:"brown"},{id:"tritium",name:"Tritium",label:"Tritium",color:"green"},{id:"bz",name:"BZ",label:"BZ",color:"purple"},{id:"stim",name:"Stimulum",label:"Stimulum",color:"purple"},{id:"pluox",name:"Pluoxium",label:"Pluoxium",color:"blue"},{id:"miasma",name:"Miasma",label:"Miasma",color:"olive"}];t.getGasLabel=function(e,t){var n=String(e).toLowerCase(),r=o.find((function(e){return e.id===n||e.name.toLowerCase()===n}));return r&&r.label||t||e};t.getGasColor=function(e){var t=String(e).toLowerCase(),n=o.find((function(e){return e.id===t||e.name.toLowerCase()===t}));return n&&n.color}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var o=n(4);e.exports=function(e,t){var n=[][e];return!n||!o((function(){n.call(null,t||function(){throw 1},1)}))}},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(9),i=n(113),c=n(7),l=n(77),u=n(55),s=n(46),d=n(24),p=n(10),f=n(137),m=n(151),h=n(33),C=n(15),g=n(74),b=n(6),v=n(42),N=n(53),V=n(47).f,y=n(152),_=n(16).forEach,x=n(54),k=n(13),w=n(18),L=n(34),B=n(79),S=L.get,I=L.set,T=k.f,A=w.f,E=Math.round,P=r.RangeError,O=l.ArrayBuffer,M=l.DataView,R=c.NATIVE_ARRAY_BUFFER_VIEWS,F=c.TYPED_ARRAY_TAG,D=c.TypedArray,j=c.TypedArrayPrototype,z=c.aTypedArrayConstructor,H=c.isTypedArray,G=function(e,t){for(var n=0,o=t.length,r=new(z(e))(o);o>n;)r[n]=t[n++];return r},U=function(e,t){T(e,t,{get:function(){return S(this)[t]}})},K=function(e){var t;return e instanceof O||"ArrayBuffer"==(t=g(e))||"SharedArrayBuffer"==t},Y=function(e,t){return H(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},q=function(e,t){return Y(e,t=h(t,!0))?s(2,e[t]):A(e,t)},W=function(e,t,n){return!(Y(e,t=h(t,!0))&&b(n)&&C(n,"value"))||C(n,"get")||C(n,"set")||n.configurable||C(n,"writable")&&!n.writable||C(n,"enumerable")&&!n.enumerable?T(e,t,n):(e[t]=n.value,e)};a?(R||(w.f=q,k.f=W,U(j,"buffer"),U(j,"byteOffset"),U(j,"byteLength"),U(j,"length")),o({target:"Object",stat:!0,forced:!R},{getOwnPropertyDescriptor:q,defineProperty:W}),e.exports=function(e,t,n){var a=e.match(/\d+$/)[0]/8,c=e+(n?"Clamped":"")+"Array",l="get"+e,s="set"+e,h=r[c],C=h,g=C&&C.prototype,k={},w=function(e,t){var n=S(e);return n.view[l](t*a+n.byteOffset,!0)},L=function(e,t,o){var r=S(e);n&&(o=(o=E(o))<0?0:o>255?255:255&o),r.view[s](t*a+r.byteOffset,o,!0)},A=function(e,t){T(e,t,{get:function(){return w(this,t)},set:function(e){return L(this,t,e)},enumerable:!0})};R?i&&(C=t((function(e,t,n,o){return u(e,C,c),B(b(t)?K(t)?o!==undefined?new h(t,m(n,a),o):n!==undefined?new h(t,m(n,a)):new h(t):H(t)?G(C,t):y.call(C,t):new h(f(t)),e,C)})),N&&N(C,D),_(V(h),(function(e){e in C||d(C,e,h[e])})),C.prototype=g):(C=t((function(e,t,n,o){u(e,C,c);var r,i,l,s=0,d=0;if(b(t)){if(!K(t))return H(t)?G(C,t):y.call(C,t);r=t,d=m(n,a);var h=t.byteLength;if(o===undefined){if(h%a)throw P("Wrong length");if((i=h-d)<0)throw P("Wrong length")}else if((i=p(o)*a)+d>h)throw P("Wrong length");l=i/a}else l=f(t),r=new O(i=l*a);for(I(e,{buffer:r,byteOffset:d,byteLength:i,length:l,view:new M(r)});sdocument.F=Object<\/script>"),e.close(),p=e.F;n--;)delete p[s][a[n]];return p()};e.exports=Object.create||function(e,t){var n;return null!==e?(d[s]=o(e),n=new d,d[s]=null,n[u]=e):n=p(),t===undefined?n:r(n,t)},i[u]=!0},function(e,t,n){"use strict";var o=n(13).f,r=n(15),a=n(11)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,a)&&o(e,a,{configurable:!0,value:t})}},function(e,t,n){"use strict";var o=n(11),r=n(42),a=n(24),i=o("unscopables"),c=Array.prototype;c[i]==undefined&&a(c,i,r(null)),e.exports=function(e){c[i][e]=!0}},function(e,t,n){"use strict";var o=n(8),r=n(31),a=n(11)("species");e.exports=function(e,t){var n,i=o(e).constructor;return i===undefined||(n=o(i)[a])==undefined?t:r(n)}},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var o=n(124),r=n(93).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(31);e.exports=function(e,t,n){if(o(e),t===undefined)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var o=n(33),r=n(13),a=n(46);e.exports=function(e,t,n){var i=o(t);i in e?r.f(e,i,a(0,n)):e[i]=n}},function(e,t,n){"use strict";var o=n(59),r=n(6),a=n(15),i=n(13).f,c=n(58),l=n(67),u=c("meta"),s=0,d=Object.isExtensible||function(){return!0},p=function(e){i(e,u,{value:{objectID:"O"+ ++s,weakData:{}}})},f=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,u)){if(!d(e))return"F";if(!t)return"E";p(e)}return e[u].objectID},getWeakData:function(e,t){if(!a(e,u)){if(!d(e))return!0;if(!t)return!1;p(e)}return e[u].weakData},onFreeze:function(e){return l&&f.REQUIRED&&d(e)&&!a(e,u)&&p(e),e}};o[u]=!0},function(e,t,n){"use strict";t.__esModule=!0,t.createLogger=void 0;n(154);var o=n(19),r=0,a=1,i=2,c=3,l=4,u=function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a=i){var c=[t].concat(r).map((function(e){return"string"==typeof e?e:e instanceof Error?e.stack||String(e):JSON.stringify(e)})).filter((function(e){return e})).join(" ")+"\nUser Agent: "+navigator.userAgent;(0,o.act)(window.__ref__,"tgui:log",{log:c})}};t.createLogger=function(e){return{debug:function(){for(var t=arguments.length,n=new Array(t),o=0;os;)if((c=l[s++])!=c)return!0}else for(;u>s;s++)if((e||s in l)&&l[s]===n)return e||s||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},function(e,t,n){"use strict";var o=n(4),r=/#|\.prototype\./,a=function(e,t){var n=c[i(e)];return n==u||n!=l&&("function"==typeof t?o(t):!!t)},i=a.normalize=function(e){return String(e).replace(r,".").toLowerCase()},c=a.data={},l=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},function(e,t,n){"use strict";var o=n(124),r=n(93);e.exports=Object.keys||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(6),r=n(52),a=n(11)("species");e.exports=function(e,t){var n;return r(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!r(n.prototype)?o(n)&&null===(n=n[a])&&(n=undefined):n=undefined),new(n===undefined?Array:n)(0===t?0:t)}},function(e,t,n){"use strict";var o=n(4),r=n(11),a=n(96),i=r("species");e.exports=function(e){return a>=51||!o((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(22);e.exports=function(e,t,n){for(var r in t)o(e,r,t[r],n);return e}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,n){"use strict";var o=n(8),r=n(98),a=n(10),i=n(48),c=n(99),l=n(132),u=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,n,s,d){var p,f,m,h,C,g,b,v=i(t,n,s?2:1);if(d)p=e;else{if("function"!=typeof(f=c(e)))throw TypeError("Target is not iterable");if(r(f)){for(m=0,h=a(e.length);h>m;m++)if((C=s?v(o(b=e[m])[0],b[1]):v(e[m]))&&C instanceof u)return C;return new u(!1)}p=f.call(e)}for(g=p.next;!(b=g.call(p)).done;)if("object"==typeof(C=l(p,v,b.value,s))&&C&&C instanceof u)return C;return new u(!1)}).stop=function(e){return new u(!0,e)}},function(e,t,n){"use strict";t.__esModule=!0,t.InterfaceLockNoticeBox=void 0;var o=n(1),r=n(2);t.InterfaceLockNoticeBox=function(e){var t=e.siliconUser,n=e.locked,a=e.onLockStatusChange,i=e.accessText;return t?(0,o.createComponentVNode)(2,r.NoticeBox,{children:(0,o.createComponentVNode)(2,r.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,r.Flex.Item,{children:"Interface lock status:"}),(0,o.createComponentVNode)(2,r.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,r.Flex.Item,{children:(0,o.createComponentVNode)(2,r.Button,{m:0,color:"gray",icon:n?"lock":"unlock",content:n?"Locked":"Unlocked",onClick:function(){a&&a(!n)}})})]})}):(0,o.createComponentVNode)(2,r.NoticeBox,{children:["Swipe ",i||"an ID card"," ","to ",n?"unlock":"lock"," this interface."]})}},function(e,t,n){"use strict";t.__esModule=!0,t.compose=t.flow=void 0;t.flow=function o(){for(var e=arguments.length,t=new Array(e),n=0;n1?r-1:0),i=1;i=c.length)break;s=c[u++]}else{if((u=c.next()).done)break;s=u.value}var d=s;Array.isArray(d)?n=o.apply(void 0,d).apply(void 0,[n].concat(a)):d&&(n=d.apply(void 0,[n].concat(a)))}return n}};t.compose=function(){for(var e=arguments.length,t=new Array(e),n=0;n1?o-1:0),a=1;a=0:d>p;p+=f)p in s&&(l=n(l,s[p],p,u));return l}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var o=n(5),r=n(9),a=n(7).NATIVE_ARRAY_BUFFER,i=n(24),c=n(66),l=n(4),u=n(55),s=n(30),d=n(10),p=n(137),f=n(217),m=n(47).f,h=n(13).f,C=n(97),g=n(43),b=n(34),v=b.get,N=b.set,V="ArrayBuffer",y="DataView",_="Wrong length",x=o[V],k=x,w=o[y],L=o.RangeError,B=f.pack,S=f.unpack,I=function(e){return[255&e]},T=function(e){return[255&e,e>>8&255]},A=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},E=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},P=function(e){return B(e,23,4)},O=function(e){return B(e,52,8)},M=function(e,t){h(e.prototype,t,{get:function(){return v(this)[t]}})},R=function(e,t,n,o){var r=p(n),a=v(e);if(r+t>a.byteLength)throw L("Wrong index");var i=v(a.buffer).bytes,c=r+a.byteOffset,l=i.slice(c,c+t);return o?l:l.reverse()},F=function(e,t,n,o,r,a){var i=p(n),c=v(e);if(i+t>c.byteLength)throw L("Wrong index");for(var l=v(c.buffer).bytes,u=i+c.byteOffset,s=o(+r),d=0;dH;)(D=z[H++])in k||i(k,D,x[D]);j.constructor=k}var G=new w(new k(2)),U=w.prototype.setInt8;G.setInt8(0,2147483648),G.setInt8(1,2147483649),!G.getInt8(0)&&G.getInt8(1)||c(w.prototype,{setInt8:function(e,t){U.call(this,e,t<<24>>24)},setUint8:function(e,t){U.call(this,e,t<<24>>24)}},{unsafe:!0})}else k=function(e){u(this,k,V);var t=p(e);N(this,{bytes:C.call(new Array(t),0),byteLength:t}),r||(this.byteLength=t)},w=function(e,t,n){u(this,w,y),u(e,k,y);var o=v(e).byteLength,a=s(t);if(a<0||a>o)throw L("Wrong offset");if(a+(n=n===undefined?o-a:d(n))>o)throw L(_);N(this,{buffer:e,byteLength:n,byteOffset:a}),r||(this.buffer=e,this.byteLength=n,this.byteOffset=a)},r&&(M(k,"byteLength"),M(w,"buffer"),M(w,"byteLength"),M(w,"byteOffset")),c(w.prototype,{getInt8:function(e){return R(this,1,e)[0]<<24>>24},getUint8:function(e){return R(this,1,e)[0]},getInt16:function(e){var t=R(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=R(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return E(R(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return E(R(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return S(R(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return S(R(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){F(this,1,e,I,t)},setUint8:function(e,t){F(this,1,e,I,t)},setInt16:function(e,t){F(this,2,e,T,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){F(this,2,e,T,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){F(this,4,e,A,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){F(this,4,e,A,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){F(this,4,e,P,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){F(this,8,e,O,t,arguments.length>2?arguments[2]:undefined)}});g(k,V),g(w,y),e.exports={ArrayBuffer:k,DataView:w}},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(61),i=n(22),c=n(50),l=n(68),u=n(55),s=n(6),d=n(4),p=n(75),f=n(43),m=n(79);e.exports=function(e,t,n){var h=-1!==e.indexOf("Map"),C=-1!==e.indexOf("Weak"),g=h?"set":"add",b=r[e],v=b&&b.prototype,N=b,V={},y=function(e){var t=v[e];i(v,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(C&&!s(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return C&&!s(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(C&&!s(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(a(e,"function"!=typeof b||!(C||v.forEach&&!d((function(){(new b).entries().next()})))))N=n.getConstructor(t,e,h,g),c.REQUIRED=!0;else if(a(e,!0)){var _=new N,x=_[g](C?{}:-0,1)!=_,k=d((function(){_.has(1)})),w=p((function(e){new b(e)})),L=!C&&d((function(){for(var e=new b,t=5;t--;)e[g](t,t);return!e.has(-0)}));w||((N=t((function(t,n){u(t,N,e);var o=m(new b,t,N);return n!=undefined&&l(n,o[g],o,h),o}))).prototype=v,v.constructor=N),(k||L)&&(y("delete"),y("has"),h&&y("get")),(L||x)&&y(g),C&&v.clear&&delete v.clear}return V[e]=N,o({global:!0,forced:N!=b},V),f(N,e),C||n.setStrong(N,e,h),N}},function(e,t,n){"use strict";var o=n(6),r=n(53);e.exports=function(e,t,n){var a,i;return r&&"function"==typeof(a=t.constructor)&&a!==n&&o(i=a.prototype)&&i!==n.prototype&&r(e,i),e}},function(e,t,n){"use strict";var o=Math.expm1,r=Math.exp;e.exports=!o||o(10)>22025.465794806718||o(10)<22025.465794806718||-2e-17!=o(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:r(e)-1}:o},function(e,t,n){"use strict";e.exports="\t\n\x0B\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},function(e,t,n){"use strict";var o=n(38),r=n(5),a=n(4);e.exports=o||!a((function(){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete r[e]}))},function(e,t,n){"use strict";var o=n(8);e.exports=function(){var e=o(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var o,r,a=n(83),i=RegExp.prototype.exec,c=String.prototype.replace,l=i,u=(o=/a/,r=/b*/g,i.call(o,"a"),i.call(r,"a"),0!==o.lastIndex||0!==r.lastIndex),s=/()??/.exec("")[1]!==undefined;(u||s)&&(l=function(e){var t,n,o,r,l=this;return s&&(n=new RegExp("^"+l.source+"$(?!\\s)",a.call(l))),u&&(t=l.lastIndex),o=i.call(l,e),u&&o&&(l.lastIndex=l.global?o.index+o[0].length:t),s&&o&&o.length>1&&c.call(o[0],n,(function(){for(r=1;r")})),s=!a((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,d){var p=i(e),f=!a((function(){var t={};return t[p]=function(){return 7},7!=""[e](t)})),m=f&&!a((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[p]=/./[p]),n.exec=function(){return t=!0,null},n[p](""),!t}));if(!f||!m||"replace"===e&&!u||"split"===e&&!s){var h=/./[p],C=n(p,""[e],(function(e,t,n,o,r){return t.exec===c?f&&!r?{done:!0,value:h.call(t,n,o)}:{done:!0,value:e.call(n,t,o)}:{done:!1}})),g=C[0],b=C[1];r(String.prototype,e,g),r(RegExp.prototype,p,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)}),d&&o(RegExp.prototype[p],"sham",!0)}}},function(e,t,n){"use strict";var o=n(32),r=n(84);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var a=n.call(e,t);if("object"!=typeof a)throw TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==o(e))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(e,t)}},function(e,t,n){"use strict";t.__esModule=!0,t.Icon=void 0;var o=n(1),r=n(12),a=n(17);var i=/-o$/,c=function(e){var t=e.name,n=e.size,c=e.spin,l=e.className,u=e.style,s=void 0===u?{}:u,d=e.rotation,p=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["name","size","spin","className","style","rotation"]);n&&(s["font-size"]=100*n+"%"),"number"==typeof d&&(s.transform="rotate("+d+"deg)");var f=i.test(t),m=t.replace(i,"");return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"i",className:(0,r.classes)([l,f?"far":"fas","fa-"+m,c&&"fa-spin"]),style:s},p)))};t.Icon=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";var o=n(5),r=n(6),a=o.document,i=r(a)&&r(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},function(e,t,n){"use strict";var o=n(5),r=n(24);e.exports=function(e,t){try{r(o,e,t)}catch(n){o[e]=t}return t}},function(e,t,n){"use strict";var o=n(120),r=Function.toString;"function"!=typeof o.inspectSource&&(o.inspectSource=function(e){return r.call(e)}),e.exports=o.inspectSource},function(e,t,n){"use strict";var o=n(38),r=n(120);(e.exports=function(e,t){return r[e]||(r[e]=t!==undefined?t:{})})("versions",[]).push({version:"3.4.8",mode:o?"pure":"global",copyright:"\xa9 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){"use strict";var o=n(35),r=n(47),a=n(94),i=n(8);e.exports=o("Reflect","ownKeys")||function(e){var t=r.f(i(e)),n=a.f;return n?t.concat(n(e)):t}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var o=n(4);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){return!String(Symbol())}))},function(e,t,n){"use strict";var o,r,a=n(5),i=n(73),c=a.process,l=c&&c.versions,u=l&&l.v8;u?r=(o=u.split("."))[0]+o[1]:i&&(!(o=i.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=i.match(/Chrome\/(\d+)/))&&(r=o[1]),e.exports=r&&+r},function(e,t,n){"use strict";var o=n(14),r=n(41),a=n(10);e.exports=function(e){for(var t=o(this),n=a(t.length),i=arguments.length,c=r(i>1?arguments[1]:undefined,n),l=i>2?arguments[2]:undefined,u=l===undefined?n:r(l,n);u>c;)t[c++]=e;return t}},function(e,t,n){"use strict";var o=n(11),r=n(65),a=o("iterator"),i=Array.prototype;e.exports=function(e){return e!==undefined&&(r.Array===e||i[a]===e)}},function(e,t,n){"use strict";var o=n(74),r=n(65),a=n(11)("iterator");e.exports=function(e){if(e!=undefined)return e[a]||e["@@iterator"]||r[o(e)]}},function(e,t,n){"use strict";var o={};o[n(11)("toStringTag")]="z",e.exports="[object z]"===String(o)},function(e,t,n){"use strict";var o=n(0),r=n(202),a=n(36),i=n(53),c=n(43),l=n(24),u=n(22),s=n(11),d=n(38),p=n(65),f=n(134),m=f.IteratorPrototype,h=f.BUGGY_SAFARI_ITERATORS,C=s("iterator"),g=function(){return this};e.exports=function(e,t,n,s,f,b,v){r(n,t,s);var N,V,y,_=function(e){if(e===f&&B)return B;if(!h&&e in w)return w[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},x=t+" Iterator",k=!1,w=e.prototype,L=w[C]||w["@@iterator"]||f&&w[f],B=!h&&L||_(f),S="Array"==t&&w.entries||L;if(S&&(N=a(S.call(new e)),m!==Object.prototype&&N.next&&(d||a(N)===m||(i?i(N,m):"function"!=typeof N[C]&&l(N,C,g)),c(N,x,!0,!0),d&&(p[x]=g))),"values"==f&&L&&"values"!==L.name&&(k=!0,B=function(){return L.call(this)}),d&&!v||w[C]===B||l(w,C,B),p[t]=B,f)if(V={values:_("values"),keys:b?B:_("keys"),entries:_("entries")},v)for(y in V)!h&&!k&&y in w||u(w,y,V[y]);else o({target:t,proto:!0,forced:h||k},V);return V}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,n){"use strict";var o=n(10),r=n(104),a=n(21),i=Math.ceil,c=function(e){return function(t,n,c){var l,u,s=String(a(t)),d=s.length,p=c===undefined?" ":String(c),f=o(n);return f<=d||""==p?s:(l=f-d,(u=r.call(p,i(l/p.length))).length>l&&(u=u.slice(0,l)),e?s+u:u+s)}};e.exports={start:c(!1),end:c(!0)}},function(e,t,n){"use strict";var o=n(30),r=n(21);e.exports="".repeat||function(e){var t=String(r(this)),n="",a=o(e);if(a<0||a==Infinity)throw RangeError("Wrong number of repetitions");for(;a>0;(a>>>=1)&&(t+=t))1&a&&(n+=t);return n}},function(e,t,n){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,n){"use strict";var o,r,a,i=n(5),c=n(4),l=n(32),u=n(48),s=n(127),d=n(88),p=n(146),f=i.location,m=i.setImmediate,h=i.clearImmediate,C=i.process,g=i.MessageChannel,b=i.Dispatch,v=0,N={},V=function(e){if(N.hasOwnProperty(e)){var t=N[e];delete N[e],t()}},y=function(e){return function(){V(e)}},_=function(e){V(e.data)},x=function(e){i.postMessage(e+"",f.protocol+"//"+f.host)};m&&h||(m=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return N[++v]=function(){("function"==typeof e?e:Function(e)).apply(undefined,t)},o(v),v},h=function(e){delete N[e]},"process"==l(C)?o=function(e){C.nextTick(y(e))}:b&&b.now?o=function(e){b.now(y(e))}:g&&!p?(a=(r=new g).port2,r.port1.onmessage=_,o=u(a.postMessage,a,1)):!i.addEventListener||"function"!=typeof postMessage||i.importScripts||c(x)?o="onreadystatechange"in d("script")?function(e){s.appendChild(d("script")).onreadystatechange=function(){s.removeChild(this),V(e)}}:function(e){setTimeout(y(e),0)}:(o=x,i.addEventListener("message",_,!1))),e.exports={set:m,clear:h}},function(e,t,n){"use strict";var o=n(6),r=n(32),a=n(11)("match");e.exports=function(e){var t;return o(e)&&((t=e[a])!==undefined?!!t:"RegExp"==r(e))}},function(e,t,n){"use strict";var o=n(30),r=n(21),a=function(e){return function(t,n){var a,i,c=String(r(t)),l=o(n),u=c.length;return l<0||l>=u?e?"":undefined:(a=c.charCodeAt(l))<55296||a>56319||l+1===u||(i=c.charCodeAt(l+1))<56320||i>57343?e?c.charAt(l):a:e?c.slice(l,l+2):i-56320+(a-55296<<10)+65536}};e.exports={codeAt:a(!1),charAt:a(!0)}},function(e,t,n){"use strict";var o=n(107);e.exports=function(e){if(o(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){"use strict";var o=n(11)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[o]=!1,"/./"[e](t)}catch(r){}}return!1}},function(e,t,n){"use strict";var o=n(108).charAt;e.exports=function(e,t,n){return t+(n?o(e,t).length:1)}},function(e,t,n){"use strict";var o=n(4),r=n(81);e.exports=function(e){return o((function(){return!!r[e]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[e]()||r[e].name!==e}))}},function(e,t,n){"use strict";var o=n(5),r=n(4),a=n(75),i=n(7).NATIVE_ARRAY_BUFFER_VIEWS,c=o.ArrayBuffer,l=o.Int8Array;e.exports=!i||!r((function(){l(1)}))||!r((function(){new l(-1)}))||!a((function(e){new l,new l(null),new l(1.5),new l(e)}),!0)||r((function(){return 1!==new l(new c(2),1,undefined).length}))},function(e,t,n){"use strict";t.__esModule=!0,t.ButtonInput=t.ButtonConfirm=t.ButtonCheckbox=t.Button=void 0;var o=n(1),r=n(12),a=n(19),i=n(115),c=n(51),l=n(116),u=n(17),s=n(87),d=n(159);n(160),n(161);function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function f(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var m=(0,c.createLogger)("Button"),h=function(e){var t=e.className,n=e.fluid,c=e.icon,p=e.color,h=e.disabled,C=e.selected,g=e.tooltip,b=e.tooltipPosition,v=e.ellipsis,N=e.content,V=e.iconRotation,y=e.iconSpin,_=e.children,x=e.onclick,k=e.onClick,w=f(e,["className","fluid","icon","color","disabled","selected","tooltip","tooltipPosition","ellipsis","content","iconRotation","iconSpin","children","onclick","onClick"]),L=!(!N&&!_);return x&&m.warn("Lowercase 'onclick' is not supported on Button and lowercase prop names are discouraged in general. Please use a camelCase'onClick' instead and read: https://infernojs.org/docs/guides/event-handling"),(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Box,Object.assign({as:"span",className:(0,r.classes)(["Button",n&&"Button--fluid",h&&"Button--disabled",C&&"Button--selected",L&&"Button--hasContent",v&&"Button--ellipsis",p&&"string"==typeof p?"Button--color--"+p:"Button--color--default",t]),tabIndex:!h&&"0",unselectable:a.tridentVersion<=4,onclick:function(e){(0,l.refocusLayout)(),!h&&k&&k(e)},onKeyDown:function(e){var t=window.event?e.which:e.keyCode;return t===i.KEY_SPACE||t===i.KEY_ENTER?(e.preventDefault(),void(!h&&k&&k(e))):t===i.KEY_ESCAPE?(e.preventDefault(),void(0,l.refocusLayout)()):void 0}},w,{children:[c&&(0,o.createComponentVNode)(2,s.Icon,{name:c,rotation:V,spin:y}),N,_,g&&(0,o.createComponentVNode)(2,d.Tooltip,{content:g,position:b})]})))};t.Button=h,h.defaultHooks=r.pureComponentHooks;var C=function(e){var t=e.checked,n=f(e,["checked"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({color:"transparent",icon:t?"check-square-o":"square-o",selected:t},n)))};t.ButtonCheckbox=C,h.Checkbox=C;var g=function(e){function t(){var t;return(t=e.call(this)||this).state={clickedOnce:!1},t.handleClick=function(){t.state.clickedOnce&&t.setClickedOnce(!1)},t}p(t,e);var n=t.prototype;return n.setClickedOnce=function(e){var t=this;this.setState({clickedOnce:e}),e?setTimeout((function(){return window.addEventListener("click",t.handleClick)})):window.removeEventListener("click",this.handleClick)},n.render=function(){var e=this,t=this.props,n=t.confirmMessage,r=void 0===n?"Confirm?":n,a=t.confirmColor,i=void 0===a?"bad":a,c=t.color,l=t.content,u=t.onClick,s=f(t,["confirmMessage","confirmColor","color","content","onClick"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({content:this.state.clickedOnce?r:l,color:this.state.clickedOnce?i:c,onClick:function(){return e.state.clickedOnce?u():e.setClickedOnce(!0)}},s)))},t}(o.Component);t.ButtonConfirm=g,h.Confirm=g;var b=function(e){function t(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={inInput:!1},t}p(t,e);var n=t.prototype;return n.setInInput=function(e){if(this.setState({inInput:e}),this.inputRef){var t=this.inputRef.current;if(e){t.value=this.props.currentValue||"";try{t.focus(),t.select()}catch(n){}}}},n.commitResult=function(e){if(this.inputRef){var t=this.inputRef.current;if(""!==t.value)return void this.props.onCommit(e,t.value);if(!this.props.defaultValue)return;this.props.onCommit(e,this.props.defaultValue)}},n.render=function(){var e=this,t=this.props,n=t.fluid,a=t.content,c=t.color,l=void 0===c?"default":c,s=(t.placeholder,t.maxLength,f(t,["fluid","content","color","placeholder","maxLength"]));return(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Box,Object.assign({className:(0,r.classes)(["Button",n&&"Button--fluid","Button--color--"+l])},s,{onClick:function(){return e.setInInput(!0)},children:[(0,o.createVNode)(1,"div",null,a,0),(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?undefined:"none","text-align":"left"},onBlur:function(t){e.state.inInput&&(e.setInInput(!1),e.commitResult(t))},onKeyDown:function(t){if(t.keyCode===i.KEY_ENTER)return e.setInInput(!1),void e.commitResult(t);t.keyCode===i.KEY_ESCAPE&&e.setInInput(!1)}},null,this.inputRef)]})))},t}(o.Component);t.ButtonInput=b,h.Input=b},function(e,t,n){"use strict";t.__esModule=!0,t.hotKeyReducer=t.hotKeyMiddleware=t.releaseHeldKeys=t.KEY_MINUS=t.KEY_EQUAL=t.KEY_Z=t.KEY_Y=t.KEY_X=t.KEY_W=t.KEY_V=t.KEY_U=t.KEY_T=t.KEY_S=t.KEY_R=t.KEY_Q=t.KEY_P=t.KEY_O=t.KEY_N=t.KEY_M=t.KEY_L=t.KEY_K=t.KEY_J=t.KEY_I=t.KEY_H=t.KEY_G=t.KEY_F=t.KEY_E=t.KEY_D=t.KEY_C=t.KEY_B=t.KEY_A=t.KEY_9=t.KEY_8=t.KEY_7=t.KEY_6=t.KEY_5=t.KEY_4=t.KEY_3=t.KEY_2=t.KEY_1=t.KEY_0=t.KEY_SPACE=t.KEY_ESCAPE=t.KEY_ALT=t.KEY_CTRL=t.KEY_SHIFT=t.KEY_ENTER=t.KEY_TAB=t.KEY_BACKSPACE=void 0;var o=n(51),r=n(19),a=(0,o.createLogger)("hotkeys");t.KEY_BACKSPACE=8;t.KEY_TAB=9;t.KEY_ENTER=13;t.KEY_SHIFT=16;t.KEY_CTRL=17;t.KEY_ALT=18;t.KEY_ESCAPE=27;t.KEY_SPACE=32;t.KEY_0=48;t.KEY_1=49;t.KEY_2=50;t.KEY_3=51;t.KEY_4=52;t.KEY_5=53;t.KEY_6=54;t.KEY_7=55;t.KEY_8=56;t.KEY_9=57;t.KEY_A=65;t.KEY_B=66;t.KEY_C=67;t.KEY_D=68;t.KEY_E=69;t.KEY_F=70;t.KEY_G=71;t.KEY_H=72;t.KEY_I=73;t.KEY_J=74;t.KEY_K=75;t.KEY_L=76;t.KEY_M=77;t.KEY_N=78;t.KEY_O=79;t.KEY_P=80;t.KEY_Q=81;t.KEY_R=82;t.KEY_S=83;t.KEY_T=84;t.KEY_U=85;t.KEY_V=86;t.KEY_W=87;t.KEY_X=88;t.KEY_Y=89;t.KEY_Z=90;t.KEY_EQUAL=187;t.KEY_MINUS=189;var i=[17,18,16],c=[27,13,32,9,17,16],l={},u=function(e,t,n,o){var r="";return e&&(r+="Ctrl+"),t&&(r+="Alt+"),n&&(r+="Shift+"),r+=o>=48&&o<=90?String.fromCharCode(o):"["+o+"]"},s=function(e){var t=window.event?e.which:e.keyCode,n=e.ctrlKey,o=e.altKey,r=e.shiftKey;return{keyCode:t,ctrlKey:n,altKey:o,shiftKey:r,hasModifierKeys:n||o||r,keyString:u(n,o,r,t)}},d=function(){for(var e=0,t=Object.keys(l);e4&&function(e,t){if(!e.defaultPrevented){var n=e.target&&e.target.localName;if("input"!==n&&"textarea"!==n){var o=s(e),i=o.keyCode,u=o.ctrlKey,d=o.shiftKey;u||d||c.includes(i)||("keydown"!==t||l[i]?"keyup"===t&&l[i]&&(a.debug("passthrough",t,o),(0,r.callByond)("",{__keyup:i})):(a.debug("passthrough",t,o),(0,r.callByond)("",{__keydown:i})))}}}(e,t),function(e,t,n){if("keyup"===t){var o=s(e),r=o.ctrlKey,c=o.altKey,l=o.keyCode,u=o.hasModifierKeys,d=o.keyString;u&&!i.includes(l)&&(a.log(d),r&&c&&8===l&&setTimeout((function(){throw new Error("OOPSIE WOOPSIE!! UwU We made a fucky wucky!! A wittle fucko boingo! The code monkeys at our headquarters are working VEWY HAWD to fix this!")})),n({type:"hotKey",payload:o}))}}(e,t,n)},document.addEventListener("keydown",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keydown"),l[n]=!0})),document.addEventListener("keyup",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keyup"),l[n]=!1})),r.tridentVersion>4&&function(e){var t;document.addEventListener("focusout",(function(){t=setTimeout(e)})),document.addEventListener("focusin",(function(){clearTimeout(t)})),window.addEventListener("beforeunload",e)}((function(){d()})),function(e){return function(t){return e(t)}}};t.hotKeyReducer=function(e,t){var n=t.type,o=t.payload;if("hotKey"===n){var r=o.ctrlKey,a=o.altKey,i=o.keyCode;return r&&a&&187===i?Object.assign({},e,{showKitchenSink:!e.showKitchenSink}):e}return e}},function(e,t,n){"use strict";t.__esModule=!0,t.refocusLayout=void 0;var o=n(19);t.refocusLayout=function(){if(!(o.tridentVersion<=4)){var e=document.getElementById("Layout__content");e&&e.focus()}}},function(e,t,n){"use strict";t.__esModule=!0,t.toastReducer=t.showToast=t.Toast=void 0;var o,r=n(1),a=n(12),i=function(e){var t=e.content,n=e.children;return(0,r.createVNode)(1,"div","Layout__toast",[t,n],0)};t.Toast=i,i.defaultHooks=a.pureComponentHooks;t.showToast=function(e,t){o&&clearTimeout(o),o=setTimeout((function(){o=undefined,e({type:"hideToast"})}),5e3),e({type:"showToast",payload:{text:t}})};t.toastReducer=function(e,t){var n=t.type,o=t.payload;if("showToast"===n){var r=o.text;return Object.assign({},e,{toastText:r})}return"hideToast"===n?Object.assign({},e,{toastText:null}):e}},function(e,t,n){"use strict";var o;o=function(){return this}();try{o=o||new Function("return this")()}catch(r){"object"==typeof window&&(o=window)}e.exports=o},function(e,t,n){"use strict";var o=n(9),r=n(4),a=n(88);e.exports=!o&&!r((function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(5),r=n(89),a=o["__core-js_shared__"]||r("__core-js_shared__",{});e.exports=a},function(e,t,n){"use strict";var o=n(5),r=n(90),a=o.WeakMap;e.exports="function"==typeof a&&/native code/.test(r(a))},function(e,t,n){"use strict";var o=n(15),r=n(92),a=n(18),i=n(13);e.exports=function(e,t){for(var n=r(t),c=i.f,l=a.f,u=0;ul;)o(c,n=t[l++])&&(~a(u,n)||u.push(n));return u}},function(e,t,n){"use strict";var o=n(95);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol()},function(e,t,n){"use strict";var o=n(9),r=n(13),a=n(8),i=n(62);e.exports=o?Object.defineProperties:function(e,t){a(e);for(var n,o=i(t),c=o.length,l=0;c>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){"use strict";var o=n(35);e.exports=o("document","documentElement")},function(e,t,n){"use strict";var o=n(23),r=n(47).f,a={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],c=function(e){try{return r(e)}catch(t){return i.slice()}};e.exports.f=function(e){return i&&"[object Window]"==a.call(e)?c(e):r(o(e))}},function(e,t,n){"use strict";var o=n(11);t.f=o},function(e,t,n){"use strict";var o=n(14),r=n(41),a=n(10),i=Math.min;e.exports=[].copyWithin||function(e,t){var n=o(this),c=a(n.length),l=r(e,c),u=r(t,c),s=arguments.length>2?arguments[2]:undefined,d=i((s===undefined?c:r(s,c))-u,c-l),p=1;for(u0;)u in n?n[l]=n[u]:delete n[l],l+=p,u+=p;return n}},function(e,t,n){"use strict";var o=n(52),r=n(10),a=n(48);e.exports=function i(e,t,n,c,l,u,s,d){for(var p,f=l,m=0,h=!!s&&a(s,d,3);m0&&o(p))f=i(e,t,p,r(p.length),f,u-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[f]=p}f++}m++}return f}},function(e,t,n){"use strict";var o=n(8);e.exports=function(e,t,n,r){try{return r?t(o(n)[0],n[1]):t(n)}catch(i){var a=e["return"];throw a!==undefined&&o(a.call(e)),i}}},function(e,t,n){"use strict";var o=n(23),r=n(44),a=n(65),i=n(34),c=n(101),l=i.set,u=i.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:o(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,n=e.kind,o=e.index++;return!t||o>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:o,done:!1}:"values"==n?{value:t[o],done:!1}:{value:[o,t[o]],done:!1}}),"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var o,r,a,i=n(36),c=n(24),l=n(15),u=n(11),s=n(38),d=u("iterator"),p=!1;[].keys&&("next"in(a=[].keys())?(r=i(i(a)))!==Object.prototype&&(o=r):p=!0),o==undefined&&(o={}),s||l(o,d)||c(o,d,(function(){return this})),e.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:p}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){if(!o(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var o=n(23),r=n(30),a=n(10),i=n(39),c=Math.min,l=[].lastIndexOf,u=!!l&&1/[1].lastIndexOf(1,-0)<0,s=i("lastIndexOf");e.exports=u||s?function(e){if(u)return l.apply(this,arguments)||0;var t=o(this),n=a(t.length),i=n-1;for(arguments.length>1&&(i=c(i,r(arguments[1]))),i<0&&(i=n+i);i>=0;i--)if(i in t&&t[i]===e)return i||0;return-1}:l},function(e,t,n){"use strict";var o=n(30),r=n(10);e.exports=function(e){if(e===undefined)return 0;var t=o(e),n=r(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var o=n(31),r=n(6),a=[].slice,i={},c=function(e,t,n){if(!(t in i)){for(var o=[],r=0;r1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(o(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),a(s.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return C(this,0===e?0:e,t)}}:{add:function(e){return C(this,e=0===e?0:e,e)}}),d&&o(s.prototype,"size",{get:function(){return f(this).size}}),s},setStrong:function(e,t,n){var o=t+" Iterator",r=h(t),a=h(o);u(e,t,(function(e,t){m(this,{type:o,target:e,state:r(e),kind:t,last:undefined})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),s(t)}}},function(e,t,n){"use strict";var o=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:o(1+e)}},function(e,t,n){"use strict";var o=n(6),r=Math.floor;e.exports=function(e){return!o(e)&&isFinite(e)&&r(e)===e}},function(e,t,n){"use strict";var o=n(5),r=n(56).trim,a=n(81),i=o.parseInt,c=/^[+-]?0[Xx]/,l=8!==i(a+"08")||22!==i(a+"0x16");e.exports=l?function(e,t){var n=r(String(e));return i(n,t>>>0||(c.test(n)?16:10))}:i},function(e,t,n){"use strict";var o=n(9),r=n(62),a=n(23),i=n(71).f,c=function(e){return function(t){for(var n,c=a(t),l=r(c),u=l.length,s=0,d=[];u>s;)n=l[s++],o&&!i.call(c,n)||d.push(e?[n,c[n]]:c[n]);return d}};e.exports={entries:c(!0),values:c(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var o=n(5);e.exports=o.Promise},function(e,t,n){"use strict";var o=n(73);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(o)},function(e,t,n){"use strict";var o,r,a,i,c,l,u,s,d=n(5),p=n(18).f,f=n(32),m=n(106).set,h=n(146),C=d.MutationObserver||d.WebKitMutationObserver,g=d.process,b=d.Promise,v="process"==f(g),N=p(d,"queueMicrotask"),V=N&&N.value;V||(o=function(){var e,t;for(v&&(e=g.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(n){throw r?i():a=undefined,n}}a=undefined,e&&e.enter()},v?i=function(){g.nextTick(o)}:C&&!h?(c=!0,l=document.createTextNode(""),new C(o).observe(l,{characterData:!0}),i=function(){l.data=c=!c}):b&&b.resolve?(u=b.resolve(undefined),s=u.then,i=function(){s.call(u,o)}):i=function(){m.call(d,o)}),e.exports=V||function(e){var t={fn:e,next:undefined};a&&(a.next=t),r||(r=t,i()),a=t}},function(e,t,n){"use strict";var o=n(8),r=n(6),a=n(149);e.exports=function(e,t){if(o(e),r(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var o=n(31),r=function(e){var t,n;this.promise=new e((function(e,o){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)};e.exports.f=function(e){return new r(e)}},function(e,t,n){"use strict";var o=n(73);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o)},function(e,t,n){"use strict";var o=n(347);e.exports=function(e,t){var n=o(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var o=n(14),r=n(10),a=n(99),i=n(98),c=n(48),l=n(7).aTypedArrayConstructor;e.exports=function(e){var t,n,u,s,d,p,f=o(e),m=arguments.length,h=m>1?arguments[1]:undefined,C=h!==undefined,g=a(f);if(g!=undefined&&!i(g))for(p=(d=g.call(f)).next,f=[];!(s=p.call(d)).done;)f.push(s.value);for(C&&m>2&&(h=c(h,arguments[2],2)),n=r(f.length),u=new(l(this))(n),t=0;n>t;t++)u[t]=C?h(f[t],t):f[t];return u}},function(e,t,n){"use strict";var o=n(66),r=n(50).getWeakData,a=n(8),i=n(6),c=n(55),l=n(68),u=n(16),s=n(15),d=n(34),p=d.set,f=d.getterFor,m=u.find,h=u.findIndex,C=0,g=function(e){return e.frozen||(e.frozen=new b)},b=function(){this.entries=[]},v=function(e,t){return m(e.entries,(function(e){return e[0]===t}))};b.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var n=v(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=h(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,u){var d=e((function(e,o){c(e,d,t),p(e,{type:t,id:C++,frozen:undefined}),o!=undefined&&l(o,e[u],e,n)})),m=f(t),h=function(e,t,n){var o=m(e),i=r(a(t),!0);return!0===i?g(o).set(t,n):i[o.id]=n,e};return o(d.prototype,{"delete":function(e){var t=m(this);if(!i(e))return!1;var n=r(e);return!0===n?g(t)["delete"](e):n&&s(n,t.id)&&delete n[t.id]},has:function(e){var t=m(this);if(!i(e))return!1;var n=r(e);return!0===n?g(t).has(e):n&&s(n,t.id)}}),o(d.prototype,n?{get:function(e){var t=m(this);if(i(e)){var n=r(e);return!0===n?g(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return h(this,e,t)}}:{add:function(e){return h(this,e,!0)}}),d}}},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=void 0;t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";t.__esModule=!0,t.resizeStartHandler=t.dragStartHandler=t.setupDrag=void 0;var o,r,a,i,c,l=n(156),u=n(19),s=(0,n(51).createLogger)("drag"),d=!1,p=!1,f=[0,0],m=function(e){return(0,u.winget)(e,"pos").then((function(e){return[e.x,e.y]}))},h=function(e,t){return(0,u.winset)(e,"pos",t[0]+","+t[1])},C=function(e){var t,n,r,a;return regeneratorRuntime.async((function(i){for(;;)switch(i.prev=i.next){case 0:return s.log("setting up"),o=e.config.window,i.next=4,regeneratorRuntime.awrap(m(o));case 4:t=i.sent,f=[t[0]-window.screenLeft,t[1]-window.screenTop],n=g(t),r=n[0],a=n[1],r&&h(o,a),s.debug("current state",{ref:o,screenOffset:f});case 9:case"end":return i.stop()}}))};t.setupDrag=C;var g=function(e){var t=e[0],n=e[1],o=!1;return t<0?(t=0,o=!0):t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth,o=!0),n<0?(n=0,o=!0):n+window.innerHeight>window.screen.availHeight&&(n=window.screen.availHeight-window.innerHeight,o=!0),[o,[t,n]]};t.dragStartHandler=function(e){s.log("drag start"),d=!0,r=[window.screenLeft-e.screenX,window.screenTop-e.screenY],document.addEventListener("mousemove",v),document.addEventListener("mouseup",b),v(e)};var b=function y(e){s.log("drag end"),v(e),document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",y),d=!1},v=function(e){d&&(e.preventDefault(),h(o,(0,l.vecAdd)([e.screenX,e.screenY],f,r)))};t.resizeStartHandler=function(e,t){return function(n){a=[e,t],s.log("resize start",a),p=!0,r=[window.screenLeft-n.screenX,window.screenTop-n.screenY],i=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",V),document.addEventListener("mouseup",N),V(n)}};var N=function _(e){s.log("resize end",c),V(e),document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",_),p=!1},V=function(e){p&&(e.preventDefault(),(c=(0,l.vecAdd)(i,(0,l.vecMultiply)(a,(0,l.vecAdd)([e.screenX,e.screenY],(0,l.vecInverse)([window.screenLeft,window.screenTop]),r,[1,1]))))[0]=Math.max(c[0],250),c[1]=Math.max(c[1],120),function(e,t){(0,u.winset)(e,"size",t[0]+","+t[1])}(o,c))}},function(e,t,n){"use strict";t.__esModule=!0,t.vecNormalize=t.vecLength=t.vecInverse=t.vecScale=t.vecDivide=t.vecMultiply=t.vecSubtract=t.vecAdd=t.vecCreate=void 0;var o=n(29);t.vecCreate=function(){for(var e=arguments.length,t=new Array(e),n=0;n35;return(0,o.createVNode)(1,"div",(0,r.classes)(["Tooltip",i&&"Tooltip--long",a&&"Tooltip--"+a]),null,1,{"data-tooltip":t})}},function(e,t,n){"use strict";t.__esModule=!0,t.Input=void 0;var o=n(1),r=n(12),a=n(17);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){return(0,r.isFalsy)(e)?"":e},l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,o=t.props.onInput;n||t.setEditing(!0),o&&o(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,o=t.props.onChange;n&&(t.setEditing(!1),o&&o(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,o=n.onInput,r=n.onChange,a=n.onEnter;return 13===e.keyCode?(t.setEditing(!1),r&&r(e,e.target.value),o&&o(e,e.target.value),a&&a(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):27===e.keyCode?(t.setEditing(!1),e.target.value=c(t.props.value),void e.target.blur()):void 0},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=c(e))},u.componentDidUpdate=function(e,t){var n=this.state.editing,o=e.value,r=this.props.value,a=this.inputRef.current;a&&!n&&o!==r&&(a.value=c(r))},u.setEditing=function(e){this.setState({editing:e})},u.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,c=i(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder"]),l=c.className,u=c.fluid,s=i(c,["className","fluid"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Input",u&&"Input--fluid",l])},s,{children:[(0,o.createVNode)(1,"div","Input__baseline",".",16),(0,o.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t},null,this.inputRef)]})))},l}(o.Component);t.Input=l},function(e,t,n){"use strict";t.__esModule=!0,t.GridColumn=t.Grid=void 0;var o=n(1),r=n(162),a=n(12);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.children,n=i(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table,Object.assign({},n,{children:(0,o.createComponentVNode)(2,r.Table.Row,{children:t})})))};t.Grid=c,c.defaultHooks=a.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t,a=e.style,c=i(e,["size","style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table.Cell,Object.assign({style:Object.assign({width:n+"%"},a)},c)))};t.GridColumn=l,c.defaultHooks=a.pureComponentHooks,c.Column=l},function(e,t,n){"use strict";t.__esModule=!0,t.TableCell=t.TableRow=t.Table=void 0;var o=n(1),r=n(12),a=n(17);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.collapsing,n=e.className,c=e.content,l=e.children,u=i(e,["collapsing","className","content","children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"table",className:(0,r.classes)(["Table",t&&"Table--collapsing",n])},u,{children:(0,o.createVNode)(1,"tbody",null,[c,l],0)})))};t.Table=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.className,n=e.header,c=i(e,["className","header"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"tr",className:(0,r.classes)(["Table__row",n&&"Table__row--header",t])},c)))};t.TableRow=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.collapsing,c=e.header,l=i(e,["className","collapsing","header"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"td",className:(0,r.classes)(["Table__cell",n&&"Table__cell--collapsing",c&&"Table__cell--header",t])},l)))};t.TableCell=u,u.defaultHooks=r.pureComponentHooks,c.Row=l,c.Cell=u},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledListDivider=t.LabeledListItem=t.LabeledList=void 0;var o=n(1),r=n(12),a=n(17),i=function(e){var t=e.children;return(0,o.createVNode)(1,"table","LabeledList",t,0)};t.LabeledList=i,i.defaultHooks=r.pureComponentHooks;var c=function(e){var t=e.className,n=e.label,i=e.labelColor,c=void 0===i?"label":i,l=e.color,u=e.buttons,s=e.content,d=e.children;return(0,o.createVNode)(1,"tr",(0,r.classes)(["LabeledList__row",t]),[(0,o.createComponentVNode)(2,a.Box,{as:"td",color:c,className:(0,r.classes)(["LabeledList__cell","LabeledList__label"]),content:n+":"}),(0,o.createComponentVNode)(2,a.Box,{as:"td",color:l,className:(0,r.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:u?undefined:2,children:[s,d]}),u&&(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",u,0)],0)};t.LabeledListItem=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t;return(0,o.createVNode)(1,"tr","LabeledList__row",(0,o.createVNode)(1,"td",null,null,1,{style:{"padding-bottom":(0,a.unit)(n)}}),2)};t.LabeledListDivider=l,l.defaultHooks=r.pureComponentHooks,i.Item=c,i.Divider=l},function(e,t,n){n(165),n(166),n(167),n(168),n(169),n(170),e.exports=n(171)},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n(172),n(173),n(174),n(175),n(176),n(177),n(178),n(179),n(180),n(181),n(182),n(183),n(184),n(185),n(186),n(187),n(188),n(189),n(190),n(191),n(192),n(193),n(194),n(195),n(197),n(199),n(200),n(201),n(133),n(203),n(204),n(205),n(206),n(207),n(208),n(209),n(210),n(211),n(212),n(213),n(214),n(215),n(216),n(218),n(219),n(220),n(221),n(222),n(224),n(225),n(227),n(228),n(229),n(230),n(231),n(232),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(242),n(243),n(244),n(245),n(246),n(247),n(248),n(249),n(250),n(251),n(252),n(253),n(254),n(256),n(257),n(258),n(259),n(260),n(261),n(263),n(264),n(266),n(268),n(269),n(270),n(271),n(272),n(273),n(274),n(275),n(276),n(277),n(278),n(279),n(280),n(281),n(282),n(283),n(284),n(285),n(286),n(287),n(288),n(289),n(290),n(292),n(293),n(294),n(297),n(298),n(299),n(300),n(301),n(302),n(303),n(304),n(305),n(306),n(307),n(308),n(309),n(310),n(311),n(312),n(313),n(314),n(315),n(316),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(348),n(349),n(350),n(351),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385);var o=n(1);n(387),n(388);var r=n(389),a=(n(154),n(3)),i=n(19),c=n(155),l=n(51),u=n(157),s=n(497),d=(0,l.createLogger)(),p=(0,s.createStore)(),f=document.getElementById("react-root"),m=!0,h=!1,C=function(){for(p.subscribe((function(){!function(){if(!h){0;try{var e=p.getState();if(m){if(d.log("initial render",e),!(0,u.getRoute)(e)){if(d.info("loading old tgui"),h=!0,window.update=window.initialize=function(){},i.tridentVersion<=4)return void setTimeout((function(){location.href="tgui-fallback.html?ref="+window.__ref__}),10);document.getElementById("data").textContent=JSON.stringify(e),(0,r.loadCSS)("v4shim.css"),(0,r.loadCSS)("tgui.css");var t=document.getElementsByTagName("head")[0],a=document.createElement("script");return a.type="text/javascript",a.src="tgui.js",void t.appendChild(a)}(0,c.setupDrag)(e)}var l=n(499).Layout,s=(0,o.createComponentVNode)(2,l,{state:e,dispatch:p.dispatch});(0,o.render)(s,f)}catch(C){d.error("rendering error",C)}m&&(m=!1)}}()})),window.update=window.initialize=function(e){var t=function(e){var t=function(e,t){return"object"==typeof t&&null!==t&&t.__number__?parseFloat(t.__number__):t};i.tridentVersion<=4&&(t=undefined);try{return JSON.parse(e,t)}catch(o){d.log(o),d.log("What we got:",e);var n=o&&o.message;throw new Error("JSON parsing error: "+n)}}(e);p.dispatch((0,a.backendUpdate)(t))};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}(0,r.loadCSS)("font-awesome.css")};i.tridentVersion<=4&&"loading"===document.readyState?document.addEventListener("DOMContentLoaded",C):C()},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(35),i=n(38),c=n(9),l=n(95),u=n(125),s=n(4),d=n(15),p=n(52),f=n(6),m=n(8),h=n(14),C=n(23),g=n(33),b=n(46),v=n(42),N=n(62),V=n(47),y=n(128),_=n(94),x=n(18),k=n(13),w=n(71),L=n(24),B=n(22),S=n(91),I=n(72),T=n(59),A=n(58),E=n(11),P=n(129),O=n(25),M=n(43),R=n(34),F=n(16).forEach,D=I("hidden"),j=E("toPrimitive"),z=R.set,H=R.getterFor("Symbol"),G=Object.prototype,U=r.Symbol,K=a("JSON","stringify"),Y=x.f,q=k.f,W=y.f,$=w.f,Q=S("symbols"),X=S("op-symbols"),J=S("string-to-symbol-registry"),Z=S("symbol-to-string-registry"),ee=S("wks"),te=r.QObject,ne=!te||!te.prototype||!te.prototype.findChild,oe=c&&s((function(){return 7!=v(q({},"a",{get:function(){return q(this,"a",{value:7}).a}})).a}))?function(e,t,n){var o=Y(G,t);o&&delete G[t],q(e,t,n),o&&e!==G&&q(G,t,o)}:q,re=function(e,t){var n=Q[e]=v(U.prototype);return z(n,{type:"Symbol",tag:e,description:t}),c||(n.description=t),n},ae=l&&"symbol"==typeof U.iterator?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof U},ie=function(e,t,n){e===G&&ie(X,t,n),m(e);var o=g(t,!0);return m(n),d(Q,o)?(n.enumerable?(d(e,D)&&e[D][o]&&(e[D][o]=!1),n=v(n,{enumerable:b(0,!1)})):(d(e,D)||q(e,D,b(1,{})),e[D][o]=!0),oe(e,o,n)):q(e,o,n)},ce=function(e,t){m(e);var n=C(t),o=N(n).concat(pe(n));return F(o,(function(t){c&&!ue.call(n,t)||ie(e,t,n[t])})),e},le=function(e,t){return t===undefined?v(e):ce(v(e),t)},ue=function(e){var t=g(e,!0),n=$.call(this,t);return!(this===G&&d(Q,t)&&!d(X,t))&&(!(n||!d(this,t)||!d(Q,t)||d(this,D)&&this[D][t])||n)},se=function(e,t){var n=C(e),o=g(t,!0);if(n!==G||!d(Q,o)||d(X,o)){var r=Y(n,o);return!r||!d(Q,o)||d(n,D)&&n[D][o]||(r.enumerable=!0),r}},de=function(e){var t=W(C(e)),n=[];return F(t,(function(e){d(Q,e)||d(T,e)||n.push(e)})),n},pe=function(e){var t=e===G,n=W(t?X:C(e)),o=[];return F(n,(function(e){!d(Q,e)||t&&!d(G,e)||o.push(Q[e])})),o};(l||(B((U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor");var e=arguments.length&&arguments[0]!==undefined?String(arguments[0]):undefined,t=A(e),n=function o(e){this===G&&o.call(X,e),d(this,D)&&d(this[D],t)&&(this[D][t]=!1),oe(this,t,b(1,e))};return c&&ne&&oe(G,t,{configurable:!0,set:n}),re(t,e)}).prototype,"toString",(function(){return H(this).tag})),w.f=ue,k.f=ie,x.f=se,V.f=y.f=de,_.f=pe,c&&(q(U.prototype,"description",{configurable:!0,get:function(){return H(this).description}}),i||B(G,"propertyIsEnumerable",ue,{unsafe:!0}))),u||(P.f=function(e){return re(E(e),e)}),o({global:!0,wrap:!0,forced:!l,sham:!l},{Symbol:U}),F(N(ee),(function(e){O(e)})),o({target:"Symbol",stat:!0,forced:!l},{"for":function(e){var t=String(e);if(d(J,t))return J[t];var n=U(t);return J[t]=n,Z[n]=t,n},keyFor:function(e){if(!ae(e))throw TypeError(e+" is not a symbol");if(d(Z,e))return Z[e]},useSetter:function(){ne=!0},useSimple:function(){ne=!1}}),o({target:"Object",stat:!0,forced:!l,sham:!c},{create:le,defineProperty:ie,defineProperties:ce,getOwnPropertyDescriptor:se}),o({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:de,getOwnPropertySymbols:pe}),o({target:"Object",stat:!0,forced:s((function(){_.f(1)}))},{getOwnPropertySymbols:function(e){return _.f(h(e))}}),K)&&o({target:"JSON",stat:!0,forced:!l||s((function(){var e=U();return"[null]"!=K([e])||"{}"!=K({a:e})||"{}"!=K(Object(e))}))},{stringify:function(e,t,n){for(var o,r=[e],a=1;arguments.length>a;)r.push(arguments[a++]);if(o=t,(f(t)||e!==undefined)&&!ae(e))return p(t)||(t=function(e,t){if("function"==typeof o&&(t=o.call(this,e,t)),!ae(t))return t}),r[1]=t,K.apply(null,r)}});U.prototype[j]||L(U.prototype,j,U.prototype.valueOf),M(U,"Symbol"),T[D]=!0},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(5),i=n(15),c=n(6),l=n(13).f,u=n(122),s=a.Symbol;if(r&&"function"==typeof s&&(!("description"in s.prototype)||s().description!==undefined)){var d={},p=function(){var e=arguments.length<1||arguments[0]===undefined?undefined:String(arguments[0]),t=this instanceof p?new s(e):e===undefined?s():s(e);return""===e&&(d[t]=!0),t};u(p,s);var f=p.prototype=s.prototype;f.constructor=p;var m=f.toString,h="Symbol(test)"==String(s("test")),C=/^Symbol\((.*)\)[^)]+$/;l(f,"description",{configurable:!0,get:function(){var e=c(this)?this.valueOf():this,t=m.call(e);if(i(d,e))return"";var n=h?t.slice(7,-1):t.replace(C,"$1");return""===n?undefined:n}}),o({global:!0,forced:!0},{Symbol:p})}},function(e,t,n){"use strict";n(25)("asyncIterator")},function(e,t,n){"use strict";n(25)("hasInstance")},function(e,t,n){"use strict";n(25)("isConcatSpreadable")},function(e,t,n){"use strict";n(25)("iterator")},function(e,t,n){"use strict";n(25)("match")},function(e,t,n){"use strict";n(25)("replace")},function(e,t,n){"use strict";n(25)("search")},function(e,t,n){"use strict";n(25)("species")},function(e,t,n){"use strict";n(25)("split")},function(e,t,n){"use strict";n(25)("toPrimitive")},function(e,t,n){"use strict";n(25)("toStringTag")},function(e,t,n){"use strict";n(25)("unscopables")},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(52),i=n(6),c=n(14),l=n(10),u=n(49),s=n(63),d=n(64),p=n(11),f=n(96),m=p("isConcatSpreadable"),h=9007199254740991,C="Maximum allowed index exceeded",g=f>=51||!r((function(){var e=[];return e[m]=!1,e.concat()[0]!==e})),b=d("concat"),v=function(e){if(!i(e))return!1;var t=e[m];return t!==undefined?!!t:a(e)};o({target:"Array",proto:!0,forced:!g||!b},{concat:function(e){var t,n,o,r,a,i=c(this),d=s(i,0),p=0;for(t=-1,o=arguments.length;th)throw TypeError(C);for(n=0;n=h)throw TypeError(C);u(d,p++,a)}return d.length=p,d}})},function(e,t,n){"use strict";var o=n(0),r=n(130),a=n(44);o({target:"Array",proto:!0},{copyWithin:r}),a("copyWithin")},function(e,t,n){"use strict";var o=n(0),r=n(16).every;o({target:"Array",proto:!0,forced:n(39)("every")},{every:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(97),a=n(44);o({target:"Array",proto:!0},{fill:r}),a("fill")},function(e,t,n){"use strict";var o=n(0),r=n(16).filter,a=n(4),i=n(64)("filter"),c=i&&!a((function(){[].filter.call({length:-1,0:1},(function(e){throw e}))}));o({target:"Array",proto:!0,forced:!i||!c},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(16).find,a=n(44),i=!0;"find"in[]&&Array(1).find((function(){i=!1})),o({target:"Array",proto:!0,forced:i},{find:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("find")},function(e,t,n){"use strict";var o=n(0),r=n(16).findIndex,a=n(44),i=!0;"findIndex"in[]&&Array(1).findIndex((function(){i=!1})),o({target:"Array",proto:!0,forced:i},{findIndex:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("findIndex")},function(e,t,n){"use strict";var o=n(0),r=n(131),a=n(14),i=n(10),c=n(30),l=n(63);o({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=a(this),n=i(t.length),o=l(t,0);return o.length=r(o,t,t,n,0,e===undefined?1:c(e)),o}})},function(e,t,n){"use strict";var o=n(0),r=n(131),a=n(14),i=n(10),c=n(31),l=n(63);o({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),o=i(n.length);return c(e),(t=l(n,0)).length=r(t,n,n,o,0,1,e,arguments.length>1?arguments[1]:undefined),t}})},function(e,t,n){"use strict";var o=n(0),r=n(196);o({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},function(e,t,n){"use strict";var o=n(16).forEach,r=n(39);e.exports=r("forEach")?function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}:[].forEach},function(e,t,n){"use strict";var o=n(0),r=n(198);o({target:"Array",stat:!0,forced:!n(75)((function(e){Array.from(e)}))},{from:r})},function(e,t,n){"use strict";var o=n(48),r=n(14),a=n(132),i=n(98),c=n(10),l=n(49),u=n(99);e.exports=function(e){var t,n,s,d,p,f=r(e),m="function"==typeof this?this:Array,h=arguments.length,C=h>1?arguments[1]:undefined,g=C!==undefined,b=0,v=u(f);if(g&&(C=o(C,h>2?arguments[2]:undefined,2)),v==undefined||m==Array&&i(v))for(n=new m(t=c(f.length));t>b;b++)l(n,b,g?C(f[b],b):f[b]);else for(p=(d=v.call(f)).next,n=new m;!(s=p.call(d)).done;b++)l(n,b,g?a(d,C,[s.value,b],!0):s.value);return n.length=b,n}},function(e,t,n){"use strict";var o=n(0),r=n(60).includes,a=n(44);o({target:"Array",proto:!0},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("includes")},function(e,t,n){"use strict";var o=n(0),r=n(60).indexOf,a=n(39),i=[].indexOf,c=!!i&&1/[1].indexOf(1,-0)<0,l=a("indexOf");o({target:"Array",proto:!0,forced:c||l},{indexOf:function(e){return c?i.apply(this,arguments)||0:r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";n(0)({target:"Array",stat:!0},{isArray:n(52)})},function(e,t,n){"use strict";var o=n(134).IteratorPrototype,r=n(42),a=n(46),i=n(43),c=n(65),l=function(){return this};e.exports=function(e,t,n){var u=t+" Iterator";return e.prototype=r(o,{next:a(1,n)}),i(e,u,!1,!0),c[u]=l,e}},function(e,t,n){"use strict";var o=n(0),r=n(57),a=n(23),i=n(39),c=[].join,l=r!=Object,u=i("join",",");o({target:"Array",proto:!0,forced:l||u},{join:function(e){return c.call(a(this),e===undefined?",":e)}})},function(e,t,n){"use strict";var o=n(0),r=n(136);o({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},function(e,t,n){"use strict";var o=n(0),r=n(16).map,a=n(4),i=n(64)("map"),c=i&&!a((function(){[].map.call({length:-1,0:1},(function(e){throw e}))}));o({target:"Array",proto:!0,forced:!i||!c},{map:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(49);o({target:"Array",stat:!0,forced:r((function(){function e(){}return!(Array.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)a(n,e,arguments[e++]);return n.length=t,n}})},function(e,t,n){"use strict";var o=n(0),r=n(76).left;o({target:"Array",proto:!0,forced:n(39)("reduce")},{reduce:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(76).right;o({target:"Array",proto:!0,forced:n(39)("reduceRight")},{reduceRight:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(52),i=n(41),c=n(10),l=n(23),u=n(49),s=n(64),d=n(11)("species"),p=[].slice,f=Math.max;o({target:"Array",proto:!0,forced:!s("slice")},{slice:function(e,t){var n,o,s,m=l(this),h=c(m.length),C=i(e,h),g=i(t===undefined?h:t,h);if(a(m)&&("function"!=typeof(n=m.constructor)||n!==Array&&!a(n.prototype)?r(n)&&null===(n=n[d])&&(n=undefined):n=undefined,n===Array||n===undefined))return p.call(m,C,g);for(o=new(n===undefined?Array:n)(f(g-C,0)),s=0;C1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(31),a=n(14),i=n(4),c=n(39),l=[],u=l.sort,s=i((function(){l.sort(undefined)})),d=i((function(){l.sort(null)})),p=c("sort");o({target:"Array",proto:!0,forced:s||!d||p},{sort:function(e){return e===undefined?u.call(a(this)):u.call(a(this),r(e))}})},function(e,t,n){"use strict";n(54)("Array")},function(e,t,n){"use strict";var o=n(0),r=n(41),a=n(30),i=n(10),c=n(14),l=n(63),u=n(49),s=n(64),d=Math.max,p=Math.min,f=9007199254740991,m="Maximum allowed length exceeded";o({target:"Array",proto:!0,forced:!s("splice")},{splice:function(e,t){var n,o,s,h,C,g,b=c(this),v=i(b.length),N=r(e,v),V=arguments.length;if(0===V?n=o=0:1===V?(n=0,o=v-N):(n=V-2,o=p(d(a(t),0),v-N)),v+n-o>f)throw TypeError(m);for(s=l(b,o),h=0;hv-o+n;h--)delete b[h-1]}else if(n>o)for(h=v-o;h>N;h--)g=h+n-1,(C=h+o-1)in b?b[g]=b[C]:delete b[g];for(h=0;h>1,h=23===t?r(2,-24)-r(2,-77):0,C=e<0||0===e&&1/e<0?1:0,g=0;for((e=o(e))!=e||e===1/0?(u=e!=e?1:0,l=f):(l=a(i(e)/c),e*(s=r(2,-l))<1&&(l--,s*=2),(e+=l+m>=1?h/s:h*r(2,1-m))*s>=2&&(l++,s/=2),l+m>=f?(u=0,l=f):l+m>=1?(u=(e*s-1)*r(2,t),l+=m):(u=e*r(2,m-1)*r(2,t),l=0));t>=8;d[g++]=255&u,u/=256,t-=8);for(l=l<0;d[g++]=255&l,l/=256,p-=8);return d[--g]|=128*C,d},unpack:function(e,t){var n,o=e.length,a=8*o-t-1,i=(1<>1,l=a-7,u=o-1,s=e[u--],d=127&s;for(s>>=7;l>0;d=256*d+e[u],u--,l-=8);for(n=d&(1<<-l)-1,d>>=-l,l+=t;l>0;n=256*n+e[u],u--,l-=8);if(0===d)d=1-c;else{if(d===i)return n?NaN:s?-1/0:1/0;n+=r(2,t),d-=c}return(s?-1:1)*n*r(2,d-t)}}},function(e,t,n){"use strict";var o=n(0),r=n(7);o({target:"ArrayBuffer",stat:!0,forced:!r.NATIVE_ARRAY_BUFFER_VIEWS},{isView:r.isView})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(77),i=n(8),c=n(41),l=n(10),u=n(45),s=a.ArrayBuffer,d=a.DataView,p=s.prototype.slice;o({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:r((function(){return!new s(2).slice(1,undefined).byteLength}))},{slice:function(e,t){if(p!==undefined&&t===undefined)return p.call(i(this),e);for(var n=i(this).byteLength,o=c(e,n),r=c(t===undefined?n:t,n),a=new(u(this,s))(l(r-o)),f=new d(this),m=new d(a),h=0;o9999?"+":"";return n+r(a(e),n?6:4,0)+"-"+r(this.getUTCMonth()+1,2,0)+"-"+r(this.getUTCDate(),2,0)+"T"+r(this.getUTCHours(),2,0)+":"+r(this.getUTCMinutes(),2,0)+":"+r(this.getUTCSeconds(),2,0)+"."+r(t,3,0)+"Z"}:l},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(14),i=n(33);o({target:"Date",proto:!0,forced:r((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=a(this),n=i(t);return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},function(e,t,n){"use strict";var o=n(24),r=n(226),a=n(11)("toPrimitive"),i=Date.prototype;a in i||o(i,a,r)},function(e,t,n){"use strict";var o=n(8),r=n(33);e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return r(o(this),"number"!==e)}},function(e,t,n){"use strict";var o=n(22),r=Date.prototype,a="Invalid Date",i=r.toString,c=r.getTime;new Date(NaN)+""!=a&&o(r,"toString",(function(){var e=c.call(this);return e==e?i.call(this):a}))},function(e,t,n){"use strict";n(0)({target:"Function",proto:!0},{bind:n(138)})},function(e,t,n){"use strict";var o=n(6),r=n(13),a=n(36),i=n(11)("hasInstance"),c=Function.prototype;i in c||r.f(c,i,{value:function(e){if("function"!=typeof this||!o(e))return!1;if(!o(this.prototype))return e instanceof this;for(;e=a(e);)if(this.prototype===e)return!0;return!1}})},function(e,t,n){"use strict";var o=n(9),r=n(13).f,a=Function.prototype,i=a.toString,c=/^\s*function ([^ (]*)/;!o||"name"in a||r(a,"name",{configurable:!0,get:function(){try{return i.call(this).match(c)[1]}catch(e){return""}}})},function(e,t,n){"use strict";var o=n(5);n(43)(o.JSON,"JSON",!0)},function(e,t,n){"use strict";var o=n(78),r=n(139);e.exports=o("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(0),r=n(140),a=Math.acosh,i=Math.log,c=Math.sqrt,l=Math.LN2;o({target:"Math",stat:!0,forced:!a||710!=Math.floor(a(Number.MAX_VALUE))||a(Infinity)!=Infinity},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?i(e)+l:r(e-1+c(e-1)*c(e+1))}})},function(e,t,n){"use strict";var o=n(0),r=Math.asinh,a=Math.log,i=Math.sqrt;o({target:"Math",stat:!0,forced:!(r&&1/r(0)>0)},{asinh:function c(e){return isFinite(e=+e)&&0!=e?e<0?-c(-e):a(e+i(e*e+1)):e}})},function(e,t,n){"use strict";var o=n(0),r=Math.atanh,a=Math.log;o({target:"Math",stat:!0,forced:!(r&&1/r(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:a((1+e)/(1-e))/2}})},function(e,t,n){"use strict";var o=n(0),r=n(105),a=Math.abs,i=Math.pow;o({target:"Math",stat:!0},{cbrt:function(e){return r(e=+e)*i(a(e),1/3)}})},function(e,t,n){"use strict";var o=n(0),r=Math.floor,a=Math.log,i=Math.LOG2E;o({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-r(a(e+.5)*i):32}})},function(e,t,n){"use strict";var o=n(0),r=n(80),a=Math.cosh,i=Math.abs,c=Math.E;o({target:"Math",stat:!0,forced:!a||a(710)===Infinity},{cosh:function(e){var t=r(i(e)-1)+1;return(t+1/(t*c*c))*(c/2)}})},function(e,t,n){"use strict";var o=n(0),r=n(80);o({target:"Math",stat:!0,forced:r!=Math.expm1},{expm1:r})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{fround:n(241)})},function(e,t,n){"use strict";var o=n(105),r=Math.abs,a=Math.pow,i=a(2,-52),c=a(2,-23),l=a(2,127)*(2-c),u=a(2,-126),s=function(e){return e+1/i-1/i};e.exports=Math.fround||function(e){var t,n,a=r(e),d=o(e);return al||n!=n?d*Infinity:d*n}},function(e,t,n){"use strict";var o=n(0),r=Math.hypot,a=Math.abs,i=Math.sqrt;o({target:"Math",stat:!0,forced:!!r&&r(Infinity,NaN)!==Infinity},{hypot:function(e,t){for(var n,o,r=0,c=0,l=arguments.length,u=0;c0?(o=n/u)*o:n;return u===Infinity?Infinity:u*i(r)}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=Math.imul;o({target:"Math",stat:!0,forced:r((function(){return-5!=a(4294967295,5)||2!=a.length}))},{imul:function(e,t){var n=+e,o=+t,r=65535&n,a=65535&o;return 0|r*a+((65535&n>>>16)*a+r*(65535&o>>>16)<<16>>>0)}})},function(e,t,n){"use strict";var o=n(0),r=Math.log,a=Math.LOG10E;o({target:"Math",stat:!0},{log10:function(e){return r(e)*a}})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{log1p:n(140)})},function(e,t,n){"use strict";var o=n(0),r=Math.log,a=Math.LN2;o({target:"Math",stat:!0},{log2:function(e){return r(e)/a}})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{sign:n(105)})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(80),i=Math.abs,c=Math.exp,l=Math.E;o({target:"Math",stat:!0,forced:r((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return i(e=+e)<1?(a(e)-a(-e))/2:(c(e-1)-c(-e-1))*(l/2)}})},function(e,t,n){"use strict";var o=n(0),r=n(80),a=Math.exp;o({target:"Math",stat:!0},{tanh:function(e){var t=r(e=+e),n=r(-e);return t==Infinity?1:n==Infinity?-1:(t-n)/(a(e)+a(-e))}})},function(e,t,n){"use strict";n(43)(Math,"Math",!0)},function(e,t,n){"use strict";var o=n(0),r=Math.ceil,a=Math.floor;o({target:"Math",stat:!0},{trunc:function(e){return(e>0?a:r)(e)}})},function(e,t,n){"use strict";var o=n(9),r=n(5),a=n(61),i=n(22),c=n(15),l=n(32),u=n(79),s=n(33),d=n(4),p=n(42),f=n(47).f,m=n(18).f,h=n(13).f,C=n(56).trim,g="Number",b=r[g],v=b.prototype,N=l(p(v))==g,V=function(e){var t,n,o,r,a,i,c,l,u=s(e,!1);if("string"==typeof u&&u.length>2)if(43===(t=(u=C(u)).charCodeAt(0))||45===t){if(88===(n=u.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(u.charCodeAt(1)){case 66:case 98:o=2,r=49;break;case 79:case 111:o=8,r=55;break;default:return+u}for(i=(a=u.slice(2)).length,c=0;cr)return NaN;return parseInt(a,o)}return+u};if(a(g,!b(" 0o1")||!b("0b1")||b("+0x1"))){for(var y,_=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof _&&(N?d((function(){v.valueOf.call(n)})):l(n)!=g)?u(new b(V(t)),n,_):V(t)},x=o?f(b):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),k=0;x.length>k;k++)c(b,y=x[k])&&!c(_,y)&&h(_,y,m(b,y));_.prototype=v,v.constructor=_,i(r,g,_)}},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isFinite:n(255)})},function(e,t,n){"use strict";var o=n(5).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&o(e)}},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isInteger:n(141)})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,n){"use strict";var o=n(0),r=n(141),a=Math.abs;o({target:"Number",stat:!0},{isSafeInteger:function(e){return r(e)&&a(e)<=9007199254740991}})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,n){"use strict";var o=n(0),r=n(262);o({target:"Number",stat:!0,forced:Number.parseFloat!=r},{parseFloat:r})},function(e,t,n){"use strict";var o=n(5),r=n(56).trim,a=n(81),i=o.parseFloat,c=1/i(a+"-0")!=-Infinity;e.exports=c?function(e){var t=r(String(e)),n=i(t);return 0===n&&"-"==t.charAt(0)?-0:n}:i},function(e,t,n){"use strict";var o=n(0),r=n(142);o({target:"Number",stat:!0,forced:Number.parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o=n(0),r=n(30),a=n(265),i=n(104),c=n(4),l=1..toFixed,u=Math.floor,s=function p(e,t,n){return 0===t?n:t%2==1?p(e,t-1,n*e):p(e*e,t/2,n)},d=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t};o({target:"Number",proto:!0,forced:l&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){l.call({})}))},{toFixed:function(e){var t,n,o,c,l=a(this),p=r(e),f=[0,0,0,0,0,0],m="",h="0",C=function(e,t){for(var n=-1,o=t;++n<6;)o+=e*f[n],f[n]=o%1e7,o=u(o/1e7)},g=function(e){for(var t=6,n=0;--t>=0;)n+=f[t],f[t]=u(n/e),n=n%e*1e7},b=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==f[e]){var n=String(f[e]);t=""===t?n:t+i.call("0",7-n.length)+n}return t};if(p<0||p>20)throw RangeError("Incorrect fraction digits");if(l!=l)return"NaN";if(l<=-1e21||l>=1e21)return String(l);if(l<0&&(m="-",l=-l),l>1e-21)if(n=(t=d(l*s(2,69,1))-69)<0?l*s(2,-t,1):l/s(2,t,1),n*=4503599627370496,(t=52-t)>0){for(C(0,n),o=p;o>=7;)C(1e7,0),o-=7;for(C(s(10,o,1),0),o=t-1;o>=23;)g(1<<23),o-=23;g(1<0?m+((c=h.length)<=p?"0."+i.call("0",p-c)+h:h.slice(0,c-p)+"."+h.slice(c-p)):m+h}})},function(e,t,n){"use strict";var o=n(32);e.exports=function(e){if("number"!=typeof e&&"Number"!=o(e))throw TypeError("Incorrect invocation");return+e}},function(e,t,n){"use strict";var o=n(0),r=n(267);o({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},function(e,t,n){"use strict";var o=n(9),r=n(4),a=n(62),i=n(94),c=n(71),l=n(14),u=n(57),s=Object.assign,d=Object.defineProperty;e.exports=!s||r((function(){if(o&&1!==s({b:1},s(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=s({},e)[n]||"abcdefghijklmnopqrst"!=a(s({},t)).join("")}))?function(e,t){for(var n=l(e),r=arguments.length,s=1,d=i.f,p=c.f;r>s;)for(var f,m=u(arguments[s++]),h=d?a(m).concat(d(m)):a(m),C=h.length,g=0;C>g;)f=h[g++],o&&!p.call(m,f)||(n[f]=m[f]);return n}:s},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0,sham:!n(9)},{create:n(42)})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(31),l=n(13);r&&o({target:"Object",proto:!0,forced:a},{__defineGetter__:function(e,t){l.f(i(this),e,{get:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(0),r=n(9);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperties:n(126)})},function(e,t,n){"use strict";var o=n(0),r=n(9);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperty:n(13).f})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(31),l=n(13);r&&o({target:"Object",proto:!0,forced:a},{__defineSetter__:function(e,t){l.f(i(this),e,{set:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(0),r=n(143).entries;o({target:"Object",stat:!0},{entries:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(67),a=n(4),i=n(6),c=n(50).onFreeze,l=Object.freeze;o({target:"Object",stat:!0,forced:a((function(){l(1)})),sham:!r},{freeze:function(e){return l&&i(e)?l(c(e)):e}})},function(e,t,n){"use strict";var o=n(0),r=n(68),a=n(49);o({target:"Object",stat:!0},{fromEntries:function(e){var t={};return r(e,(function(e,n){a(t,e,n)}),undefined,!0),t}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(23),i=n(18).f,c=n(9),l=r((function(){i(1)}));o({target:"Object",stat:!0,forced:!c||l,sham:!c},{getOwnPropertyDescriptor:function(e,t){return i(a(e),t)}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(92),i=n(23),c=n(18),l=n(49);o({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(e){for(var t,n,o=i(e),r=c.f,u=a(o),s={},d=0;u.length>d;)(n=r(o,t=u[d++]))!==undefined&&l(s,t,n);return s}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(128).f;o({target:"Object",stat:!0,forced:r((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:a})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(14),i=n(36),c=n(102);o({target:"Object",stat:!0,forced:r((function(){i(1)})),sham:!c},{getPrototypeOf:function(e){return i(a(e))}})},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0},{is:n(144)})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(6),i=Object.isExtensible;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isExtensible:function(e){return!!a(e)&&(!i||i(e))}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(6),i=Object.isFrozen;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isFrozen:function(e){return!a(e)||!!i&&i(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(6),i=Object.isSealed;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isSealed:function(e){return!a(e)||!!i&&i(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(14),a=n(62);o({target:"Object",stat:!0,forced:n(4)((function(){a(1)}))},{keys:function(e){return a(r(e))}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(33),l=n(36),u=n(18).f;r&&o({target:"Object",proto:!0,forced:a},{__lookupGetter__:function(e){var t,n=i(this),o=c(e,!0);do{if(t=u(n,o))return t.get}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(33),l=n(36),u=n(18).f;r&&o({target:"Object",proto:!0,forced:a},{__lookupSetter__:function(e){var t,n=i(this),o=c(e,!0);do{if(t=u(n,o))return t.set}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(50).onFreeze,i=n(67),c=n(4),l=Object.preventExtensions;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!i},{preventExtensions:function(e){return l&&r(e)?l(a(e)):e}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(50).onFreeze,i=n(67),c=n(4),l=Object.seal;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!i},{seal:function(e){return l&&r(e)?l(a(e)):e}})},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0},{setPrototypeOf:n(53)})},function(e,t,n){"use strict";var o=n(100),r=n(22),a=n(291);o||r(Object.prototype,"toString",a,{unsafe:!0})},function(e,t,n){"use strict";var o=n(100),r=n(74);e.exports=o?{}.toString:function(){return"[object "+r(this)+"]"}},function(e,t,n){"use strict";var o=n(0),r=n(143).values;o({target:"Object",stat:!0},{values:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(142);o({global:!0,forced:parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o,r,a,i,c=n(0),l=n(38),u=n(5),s=n(35),d=n(145),p=n(22),f=n(66),m=n(43),h=n(54),C=n(6),g=n(31),b=n(55),v=n(32),N=n(90),V=n(68),y=n(75),_=n(45),x=n(106).set,k=n(147),w=n(148),L=n(295),B=n(149),S=n(296),I=n(34),T=n(61),A=n(11),E=n(96),P=A("species"),O="Promise",M=I.get,R=I.set,F=I.getterFor(O),D=d,j=u.TypeError,z=u.document,H=u.process,G=s("fetch"),U=B.f,K=U,Y="process"==v(H),q=!!(z&&z.createEvent&&u.dispatchEvent),W=0,$=T(O,(function(){if(!(N(D)!==String(D))){if(66===E)return!0;if(!Y&&"function"!=typeof PromiseRejectionEvent)return!0}if(l&&!D.prototype["finally"])return!0;if(E>=51&&/native code/.test(D))return!1;var e=D.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[P]=t,!(e.then((function(){}))instanceof t)})),Q=$||!y((function(e){D.all(e)["catch"]((function(){}))})),X=function(e){var t;return!(!C(e)||"function"!=typeof(t=e.then))&&t},J=function(e,t,n){if(!t.notified){t.notified=!0;var o=t.reactions;k((function(){for(var r=t.value,a=1==t.state,i=0;o.length>i;){var c,l,u,s=o[i++],d=a?s.ok:s.fail,p=s.resolve,f=s.reject,m=s.domain;try{d?(a||(2===t.rejection&&ne(e,t),t.rejection=1),!0===d?c=r:(m&&m.enter(),c=d(r),m&&(m.exit(),u=!0)),c===s.promise?f(j("Promise-chain cycle")):(l=X(c))?l.call(c,p,f):p(c)):f(r)}catch(h){m&&!u&&m.exit(),f(h)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&ee(e,t)}))}},Z=function(e,t,n){var o,r;q?((o=z.createEvent("Event")).promise=t,o.reason=n,o.initEvent(e,!1,!0),u.dispatchEvent(o)):o={promise:t,reason:n},(r=u["on"+e])?r(o):"unhandledrejection"===e&&L("Unhandled promise rejection",n)},ee=function(e,t){x.call(u,(function(){var n,o=t.value;if(te(t)&&(n=S((function(){Y?H.emit("unhandledRejection",o,e):Z("unhandledrejection",e,o)})),t.rejection=Y||te(t)?2:1,n.error))throw n.value}))},te=function(e){return 1!==e.rejection&&!e.parent},ne=function(e,t){x.call(u,(function(){Y?H.emit("rejectionHandled",e):Z("rejectionhandled",e,t.value)}))},oe=function(e,t,n,o){return function(r){e(t,n,r,o)}},re=function(e,t,n,o){t.done||(t.done=!0,o&&(t=o),t.value=n,t.state=2,J(e,t,!0))},ae=function ie(e,t,n,o){if(!t.done){t.done=!0,o&&(t=o);try{if(e===n)throw j("Promise can't be resolved itself");var r=X(n);r?k((function(){var o={done:!1};try{r.call(n,oe(ie,e,o,t),oe(re,e,o,t))}catch(a){re(e,o,a,t)}})):(t.value=n,t.state=1,J(e,t,!1))}catch(a){re(e,{done:!1},a,t)}}};$&&(D=function(e){b(this,D,O),g(e),o.call(this);var t=M(this);try{e(oe(ae,this,t),oe(re,this,t))}catch(n){re(this,t,n)}},(o=function(e){R(this,{type:O,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:W,value:undefined})}).prototype=f(D.prototype,{then:function(e,t){var n=F(this),o=U(_(this,D));return o.ok="function"!=typeof e||e,o.fail="function"==typeof t&&t,o.domain=Y?H.domain:undefined,n.parent=!0,n.reactions.push(o),n.state!=W&&J(this,n,!1),o.promise},"catch":function(e){return this.then(undefined,e)}}),r=function(){var e=new o,t=M(e);this.promise=e,this.resolve=oe(ae,e,t),this.reject=oe(re,e,t)},B.f=U=function(e){return e===D||e===a?new r(e):K(e)},l||"function"!=typeof d||(i=d.prototype.then,p(d.prototype,"then",(function(e,t){var n=this;return new D((function(e,t){i.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof G&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return w(D,G.apply(u,arguments))}}))),c({global:!0,wrap:!0,forced:$},{Promise:D}),m(D,O,!1,!0),h(O),a=s(O),c({target:O,stat:!0,forced:$},{reject:function(e){var t=U(this);return t.reject.call(undefined,e),t.promise}}),c({target:O,stat:!0,forced:l||$},{resolve:function(e){return w(l&&this===a?D:this,e)}}),c({target:O,stat:!0,forced:Q},{all:function(e){var t=this,n=U(t),o=n.resolve,r=n.reject,a=S((function(){var n=g(t.resolve),a=[],i=0,c=1;V(e,(function(e){var l=i++,u=!1;a.push(undefined),c++,n.call(t,e).then((function(e){u||(u=!0,a[l]=e,--c||o(a))}),r)})),--c||o(a)}));return a.error&&r(a.value),n.promise},race:function(e){var t=this,n=U(t),o=n.reject,r=S((function(){var r=g(t.resolve);V(e,(function(e){r.call(t,e).then(n.resolve,o)}))}));return r.error&&o(r.value),n.promise}})},function(e,t,n){"use strict";var o=n(5);e.exports=function(e,t){var n=o.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},function(e,t,n){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},function(e,t,n){"use strict";var o=n(0),r=n(38),a=n(145),i=n(4),c=n(35),l=n(45),u=n(148),s=n(22);o({target:"Promise",proto:!0,real:!0,forced:!!a&&i((function(){a.prototype["finally"].call({then:function(){}},(function(){}))}))},{"finally":function(e){var t=l(this,c("Promise")),n="function"==typeof e;return this.then(n?function(n){return u(t,e()).then((function(){return n}))}:e,n?function(n){return u(t,e()).then((function(){throw n}))}:e)}}),r||"function"!=typeof a||a.prototype["finally"]||s(a.prototype,"finally",c("Promise").prototype["finally"])},function(e,t,n){"use strict";var o=n(0),r=n(35),a=n(31),i=n(8),c=n(4),l=r("Reflect","apply"),u=Function.apply;o({target:"Reflect",stat:!0,forced:!c((function(){l((function(){}))}))},{apply:function(e,t,n){return a(e),i(n),l?l(e,t,n):u.call(e,t,n)}})},function(e,t,n){"use strict";var o=n(0),r=n(35),a=n(31),i=n(8),c=n(6),l=n(42),u=n(138),s=n(4),d=r("Reflect","construct"),p=s((function(){function e(){}return!(d((function(){}),[],e)instanceof e)})),f=!s((function(){d((function(){}))})),m=p||f;o({target:"Reflect",stat:!0,forced:m,sham:m},{construct:function(e,t){a(e),i(t);var n=arguments.length<3?e:a(arguments[2]);if(f&&!p)return d(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var o=[null];return o.push.apply(o,t),new(u.apply(e,o))}var r=n.prototype,s=l(c(r)?r:Object.prototype),m=Function.apply.call(e,s,t);return c(m)?m:s}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(8),i=n(33),c=n(13);o({target:"Reflect",stat:!0,forced:n(4)((function(){Reflect.defineProperty(c.f({},1,{value:1}),1,{value:2})})),sham:!r},{defineProperty:function(e,t,n){a(e);var o=i(t,!0);a(n);try{return c.f(e,o,n),!0}catch(r){return!1}}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(18).f;o({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=a(r(e),t);return!(n&&!n.configurable)&&delete e[t]}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(8),i=n(15),c=n(18),l=n(36);o({target:"Reflect",stat:!0},{get:function u(e,t){var n,o,s=arguments.length<3?e:arguments[2];return a(e)===s?e[t]:(n=c.f(e,t))?i(n,"value")?n.value:n.get===undefined?undefined:n.get.call(s):r(o=l(e))?u(o,t,s):void 0}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(8),i=n(18);o({target:"Reflect",stat:!0,sham:!r},{getOwnPropertyDescriptor:function(e,t){return i.f(a(e),t)}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(36);o({target:"Reflect",stat:!0,sham:!n(102)},{getPrototypeOf:function(e){return a(r(e))}})},function(e,t,n){"use strict";n(0)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=Object.isExtensible;o({target:"Reflect",stat:!0},{isExtensible:function(e){return r(e),!a||a(e)}})},function(e,t,n){"use strict";n(0)({target:"Reflect",stat:!0},{ownKeys:n(92)})},function(e,t,n){"use strict";var o=n(0),r=n(35),a=n(8);o({target:"Reflect",stat:!0,sham:!n(67)},{preventExtensions:function(e){a(e);try{var t=r("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(6),i=n(15),c=n(4),l=n(13),u=n(18),s=n(36),d=n(46);o({target:"Reflect",stat:!0,forced:c((function(){var e=l.f({},"a",{configurable:!0});return!1!==Reflect.set(s(e),"a",1,e)}))},{set:function p(e,t,n){var o,c,f=arguments.length<4?e:arguments[3],m=u.f(r(e),t);if(!m){if(a(c=s(e)))return p(c,t,n,f);m=d(0)}if(i(m,"value")){if(!1===m.writable||!a(f))return!1;if(o=u.f(f,t)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,l.f(f,t,o)}else l.f(f,t,d(0,n));return!0}return m.set!==undefined&&(m.set.call(f,n),!0)}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(135),i=n(53);i&&o({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){r(e),a(t);try{return i(e,t),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(9),r=n(5),a=n(61),i=n(79),c=n(13).f,l=n(47).f,u=n(107),s=n(83),d=n(22),p=n(4),f=n(54),m=n(11)("match"),h=r.RegExp,C=h.prototype,g=/a/g,b=/a/g,v=new h(g)!==g;if(o&&a("RegExp",!v||p((function(){return b[m]=!1,h(g)!=g||h(b)==b||"/a/i"!=h(g,"i")})))){for(var N=function(e,t){var n=this instanceof N,o=u(e),r=t===undefined;return!n&&o&&e.constructor===N&&r?e:i(v?new h(o&&!r?e.source:e,t):h((o=e instanceof N)?e.source:e,o&&r?s.call(e):t),n?this:C,N)},V=function(e){e in N||c(N,e,{configurable:!0,get:function(){return h[e]},set:function(t){h[e]=t}})},y=l(h),_=0;y.length>_;)V(y[_++]);C.constructor=N,N.prototype=C,d(r,"RegExp",N)}f("RegExp")},function(e,t,n){"use strict";var o=n(0),r=n(84);o({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},function(e,t,n){"use strict";var o=n(9),r=n(13),a=n(83);o&&"g"!=/./g.flags&&r.f(RegExp.prototype,"flags",{configurable:!0,get:a})},function(e,t,n){"use strict";var o=n(22),r=n(8),a=n(4),i=n(83),c=RegExp.prototype,l=c.toString,u=a((function(){return"/a/b"!=l.call({source:"a",flags:"b"})})),s="toString"!=l.name;(u||s)&&o(RegExp.prototype,"toString",(function(){var e=r(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(n===undefined&&e instanceof RegExp&&!("flags"in c)?i.call(e):n)}),{unsafe:!0})},function(e,t,n){"use strict";var o=n(78),r=n(139);e.exports=o("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(0),r=n(108).codeAt;o({target:"String",proto:!0},{codePointAt:function(e){return r(this,e)}})},function(e,t,n){"use strict";var o,r=n(0),a=n(18).f,i=n(10),c=n(109),l=n(21),u=n(110),s=n(38),d="".endsWith,p=Math.min,f=u("endsWith");r({target:"String",proto:!0,forced:!!(s||f||(o=a(String.prototype,"endsWith"),!o||o.writable))&&!f},{endsWith:function(e){var t=String(l(this));c(e);var n=arguments.length>1?arguments[1]:undefined,o=i(t.length),r=n===undefined?o:p(i(n),o),a=String(e);return d?d.call(t,a,r):t.slice(r-a.length,r)===a}})},function(e,t,n){"use strict";var o=n(0),r=n(41),a=String.fromCharCode,i=String.fromCodePoint;o({target:"String",stat:!0,forced:!!i&&1!=i.length},{fromCodePoint:function(e){for(var t,n=[],o=arguments.length,i=0;o>i;){if(t=+arguments[i++],r(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?a(t):a(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){"use strict";var o=n(0),r=n(109),a=n(21);o({target:"String",proto:!0,forced:!n(110)("includes")},{includes:function(e){return!!~String(a(this)).indexOf(r(e),arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(108).charAt,r=n(34),a=n(101),i=r.set,c=r.getterFor("String Iterator");a(String,"String",(function(e){i(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=c(this),n=t.string,r=t.index;return r>=n.length?{value:undefined,done:!0}:(e=o(n,r),t.index+=e.length,{value:e,done:!1})}))},function(e,t,n){"use strict";var o=n(85),r=n(8),a=n(10),i=n(21),c=n(111),l=n(86);o("match",1,(function(e,t,n){return[function(t){var n=i(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var i=r(e),u=String(this);if(!i.global)return l(i,u);var s=i.unicode;i.lastIndex=0;for(var d,p=[],f=0;null!==(d=l(i,u));){var m=String(d[0]);p[f]=m,""===m&&(i.lastIndex=c(u,a(i.lastIndex),s)),f++}return 0===f?null:p}]}))},function(e,t,n){"use strict";var o=n(0),r=n(103).end;o({target:"String",proto:!0,forced:n(150)},{padEnd:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(103).start;o({target:"String",proto:!0,forced:n(150)},{padStart:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(23),a=n(10);o({target:"String",stat:!0},{raw:function(e){for(var t=r(e.raw),n=a(t.length),o=arguments.length,i=[],c=0;n>c;)i.push(String(t[c++])),c]*>)/g,h=/\$([$&'`]|\d\d?)/g;o("replace",2,(function(e,t,n){return[function(n,o){var r=l(this),a=n==undefined?undefined:n[e];return a!==undefined?a.call(n,r,o):t.call(String(r),n,o)},function(e,a){var l=n(t,e,this,a);if(l.done)return l.value;var f=r(e),m=String(this),h="function"==typeof a;h||(a=String(a));var C=f.global;if(C){var g=f.unicode;f.lastIndex=0}for(var b=[];;){var v=s(f,m);if(null===v)break;if(b.push(v),!C)break;""===String(v[0])&&(f.lastIndex=u(m,i(f.lastIndex),g))}for(var N,V="",y=0,_=0;_=y&&(V+=m.slice(y,k)+I,y=k+x.length)}return V+m.slice(y)}];function o(e,n,o,r,i,c){var l=o+e.length,u=r.length,s=h;return i!==undefined&&(i=a(i),s=m),t.call(c,s,(function(t,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,o);case"'":return n.slice(l);case"<":c=i[a.slice(1,-1)];break;default:var s=+a;if(0===s)return t;if(s>u){var d=f(s/10);return 0===d?t:d<=u?r[d-1]===undefined?a.charAt(1):r[d-1]+a.charAt(1):t}c=r[s-1]}return c===undefined?"":c}))}}))},function(e,t,n){"use strict";var o=n(85),r=n(8),a=n(21),i=n(144),c=n(86);o("search",1,(function(e,t,n){return[function(t){var n=a(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var a=r(e),l=String(this),u=a.lastIndex;i(u,0)||(a.lastIndex=0);var s=c(a,l);return i(a.lastIndex,u)||(a.lastIndex=u),null===s?-1:s.index}]}))},function(e,t,n){"use strict";var o=n(85),r=n(107),a=n(8),i=n(21),c=n(45),l=n(111),u=n(10),s=n(86),d=n(84),p=n(4),f=[].push,m=Math.min,h=!p((function(){return!RegExp(4294967295,"y")}));o("split",2,(function(e,t,n){var o;return o="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var o=String(i(this)),a=n===undefined?4294967295:n>>>0;if(0===a)return[];if(e===undefined)return[o];if(!r(e))return t.call(o,e,a);for(var c,l,u,s=[],p=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),m=0,h=new RegExp(e.source,p+"g");(c=d.call(h,o))&&!((l=h.lastIndex)>m&&(s.push(o.slice(m,c.index)),c.length>1&&c.index=a));)h.lastIndex===c.index&&h.lastIndex++;return m===o.length?!u&&h.test("")||s.push(""):s.push(o.slice(m)),s.length>a?s.slice(0,a):s}:"0".split(undefined,0).length?function(e,n){return e===undefined&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var r=i(this),a=t==undefined?undefined:t[e];return a!==undefined?a.call(t,r,n):o.call(String(r),t,n)},function(e,r){var i=n(o,e,this,r,o!==t);if(i.done)return i.value;var d=a(e),p=String(this),f=c(d,RegExp),C=d.unicode,g=(d.ignoreCase?"i":"")+(d.multiline?"m":"")+(d.unicode?"u":"")+(h?"y":"g"),b=new f(h?d:"^(?:"+d.source+")",g),v=r===undefined?4294967295:r>>>0;if(0===v)return[];if(0===p.length)return null===s(b,p)?[p]:[];for(var N=0,V=0,y=[];V1?arguments[1]:undefined,t.length)),o=String(e);return d?d.call(t,o,n):t.slice(n,n+o.length)===o}})},function(e,t,n){"use strict";var o=n(0),r=n(56).trim;o({target:"String",proto:!0,forced:n(112)("trim")},{trim:function(){return r(this)}})},function(e,t,n){"use strict";var o=n(0),r=n(56).end,a=n(112)("trimEnd"),i=a?function(){return r(this)}:"".trimEnd;o({target:"String",proto:!0,forced:a},{trimEnd:i,trimRight:i})},function(e,t,n){"use strict";var o=n(0),r=n(56).start,a=n(112)("trimStart"),i=a?function(){return r(this)}:"".trimStart;o({target:"String",proto:!0,forced:a},{trimStart:i,trimLeft:i})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("anchor")},{anchor:function(e){return r(this,"a","name",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("big")},{big:function(){return r(this,"big","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("blink")},{blink:function(){return r(this,"blink","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("bold")},{bold:function(){return r(this,"b","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("fixed")},{fixed:function(){return r(this,"tt","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("fontcolor")},{fontcolor:function(e){return r(this,"font","color",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("fontsize")},{fontsize:function(e){return r(this,"font","size",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("italics")},{italics:function(){return r(this,"i","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("link")},{link:function(e){return r(this,"a","href",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("small")},{small:function(){return r(this,"small","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("strike")},{strike:function(){return r(this,"strike","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("sub")},{sub:function(){return r(this,"sub","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(26);o({target:"String",proto:!0,forced:n(27)("sup")},{sup:function(){return r(this,"sup","","")}})},function(e,t,n){"use strict";n(40)("Float32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(30);e.exports=function(e){var t=o(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},function(e,t,n){"use strict";n(40)("Float64",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Int8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Int16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Int32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}),!0)},function(e,t,n){"use strict";n(40)("Uint16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Uint32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(7),r=n(130),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(e,t){return r.call(a(this),e,t,arguments.length>2?arguments[2]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(16).every,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("every",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(97),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("fill",(function(e){return r.apply(a(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(16).filter,a=n(45),i=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("filter",(function(e){for(var t=r(i(this),e,arguments.length>1?arguments[1]:undefined),n=a(this,this.constructor),o=0,l=t.length,u=new(c(n))(l);l>o;)u[o]=t[o++];return u}))},function(e,t,n){"use strict";var o=n(7),r=n(16).find,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("find",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(16).findIndex,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("findIndex",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(16).forEach,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("forEach",(function(e){r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(113);(0,n(7).exportTypedArrayStaticMethod)("from",n(152),o)},function(e,t,n){"use strict";var o=n(7),r=n(60).includes,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("includes",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(60).indexOf,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("indexOf",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(5),r=n(7),a=n(133),i=n(11)("iterator"),c=o.Uint8Array,l=a.values,u=a.keys,s=a.entries,d=r.aTypedArray,p=r.exportTypedArrayMethod,f=c&&c.prototype[i],m=!!f&&("values"==f.name||f.name==undefined),h=function(){return l.call(d(this))};p("entries",(function(){return s.call(d(this))})),p("keys",(function(){return u.call(d(this))})),p("values",h,!m),p(i,h,!m)},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=[].join;a("join",(function(e){return i.apply(r(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(136),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("lastIndexOf",(function(e){return r.apply(a(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(16).map,a=n(45),i=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("map",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined,(function(e,t){return new(c(a(e,e.constructor)))(t)}))}))},function(e,t,n){"use strict";var o=n(7),r=n(113),a=o.aTypedArrayConstructor;(0,o.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(a(this))(t);t>e;)n[e]=arguments[e++];return n}),r)},function(e,t,n){"use strict";var o=n(7),r=n(76).left,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduce",(function(e){return r(a(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(76).right,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduceRight",(function(e){return r(a(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=Math.floor;a("reverse",(function(){for(var e,t=r(this).length,n=i(t/2),o=0;o1?arguments[1]:undefined,1),n=this.length,o=i(e),c=r(o.length),u=0;if(c+t>n)throw RangeError("Wrong length");for(;ua;)s[a]=n[a++];return s}),a((function(){new Int8Array(1).slice()})))},function(e,t,n){"use strict";var o=n(7),r=n(16).some,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("some",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=[].sort;a("sort",(function(e){return i.call(r(this),e)}))},function(e,t,n){"use strict";var o=n(7),r=n(10),a=n(41),i=n(45),c=o.aTypedArray;(0,o.exportTypedArrayMethod)("subarray",(function(e,t){var n=c(this),o=n.length,l=a(e,o);return new(i(n,n.constructor))(n.buffer,n.byteOffset+l*n.BYTES_PER_ELEMENT,r((t===undefined?o:a(t,o))-l))}))},function(e,t,n){"use strict";var o=n(5),r=n(7),a=n(4),i=o.Int8Array,c=r.aTypedArray,l=r.exportTypedArrayMethod,u=[].toLocaleString,s=[].slice,d=!!i&&a((function(){u.call(new i(1))}));l("toLocaleString",(function(){return u.apply(d?s.call(c(this)):c(this),arguments)}),a((function(){return[1,2].toLocaleString()!=new i([1,2]).toLocaleString()}))||!a((function(){i.prototype.toLocaleString.call([1,2])})))},function(e,t,n){"use strict";var o=n(7).exportTypedArrayMethod,r=n(4),a=n(5).Uint8Array,i=a&&a.prototype||{},c=[].toString,l=[].join;r((function(){c.call({})}))&&(c=function(){return l.call(this)});var u=i.toString!=c;o("toString",c,u)},function(e,t,n){"use strict";var o,r=n(5),a=n(66),i=n(50),c=n(78),l=n(153),u=n(6),s=n(34).enforce,d=n(121),p=!r.ActiveXObject&&"ActiveXObject"in r,f=Object.isExtensible,m=function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}},h=e.exports=c("WeakMap",m,l);if(d&&p){o=l.getConstructor(m,"WeakMap",!0),i.REQUIRED=!0;var C=h.prototype,g=C["delete"],b=C.has,v=C.get,N=C.set;a(C,{"delete":function(e){if(u(e)&&!f(e)){var t=s(this);return t.frozen||(t.frozen=new o),g.call(this,e)||t.frozen["delete"](e)}return g.call(this,e)},has:function(e){if(u(e)&&!f(e)){var t=s(this);return t.frozen||(t.frozen=new o),b.call(this,e)||t.frozen.has(e)}return b.call(this,e)},get:function(e){if(u(e)&&!f(e)){var t=s(this);return t.frozen||(t.frozen=new o),b.call(this,e)?v.call(this,e):t.frozen.get(e)}return v.call(this,e)},set:function(e,t){if(u(e)&&!f(e)){var n=s(this);n.frozen||(n.frozen=new o),b.call(this,e)?N.call(this,e,t):n.frozen.set(e,t)}else N.call(this,e,t);return this}})}},function(e,t,n){"use strict";n(78)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),n(153))},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(106);o({global:!0,bind:!0,enumerable:!0,forced:!r.setImmediate||!r.clearImmediate},{setImmediate:a.set,clearImmediate:a.clear})},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(147),i=n(32),c=r.process,l="process"==i(c);o({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=l&&c.domain;a(t?t.bind(e):e)}})},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(73),i=[].slice,c=function(e){return function(t,n){var o=arguments.length>2,r=o?i.call(arguments,2):undefined;return e(o?function(){("function"==typeof t?t:Function(t)).apply(this,r)}:t,n)}};o({global:!0,bind:!0,forced:/MSIE .\./.test(a)},{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},function(e,t,n){"use strict";t.__esModule=!0,t._CI=Ie,t._HI=D,t._M=Te,t._MCCC=Oe,t._ME=Ee,t._MFCC=Me,t._MP=Be,t._MR=Ne,t.__render=ze,t.createComponentVNode=function(e,t,n,o,r){var i=new T(1,null,null,e=function(e,t){if(12&e)return e;if(t.prototype&&t.prototype.render)return 4;if(t.render)return 32776;return 8}(e,t),o,function(e,t,n){var o=(32768&e?t.render:t).defaultProps;if(a(o))return n;if(a(n))return s(o,null);return B(n,o)}(e,t,n),function(e,t,n){if(4&e)return n;var o=(32768&e?t.render:t).defaultHooks;if(a(o))return n;if(a(n))return o;return B(n,o)}(e,t,r),t);k.createVNode&&k.createVNode(i);return i},t.createFragment=P,t.createPortal=function(e,t){var n=D(e);return A(1024,1024,null,n,0,null,n.key,t)},t.createRef=function(){return{current:null}},t.createRenderer=function(e){return function(t,n,o,r){e||(e=t),He(n,e,o,r)}},t.createTextVNode=E,t.createVNode=A,t.directClone=O,t.findDOMfromVNode=N,t.forwardRef=function(e){return{render:e}},t.getFlagsForElementVnode=function(e){switch(e){case"svg":return 32;case"input":return 64;case"select":return 256;case"textarea":return 128;case f:return 8192;default:return 1}},t.linkEvent=function(e,t){if(c(t))return{data:e,event:t};return null},t.normalizeProps=function(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&a(e.children)&&F(e,t.children),void 0!==t.className&&(e.className=t.className||null,t.className=undefined)),void 0!==t.key&&(e.key=t.key,t.key=undefined),void 0!==t.ref&&(e.ref=8&n?s(e.ref,t.ref):t.ref,t.ref=undefined)}return e},t.render=He,t.rerender=We,t.version=t.options=t.Fragment=t.EMPTY_OBJ=t.Component=void 0;var o=Array.isArray;function r(e){var t=typeof e;return"string"===t||"number"===t}function a(e){return null==e}function i(e){return null===e||!1===e||!0===e||void 0===e}function c(e){return"function"==typeof e}function l(e){return"string"==typeof e}function u(e){return null===e}function s(e,t){var n={};if(e)for(var o in e)n[o]=e[o];if(t)for(var r in t)n[r]=t[r];return n}function d(e){return!u(e)&&"object"==typeof e}var p={};t.EMPTY_OBJ=p;var f="$F";function m(e){return e.substr(2).toLowerCase()}function h(e,t){e.appendChild(t)}function C(e,t,n){u(n)?h(e,t):e.insertBefore(t,n)}function g(e,t){e.removeChild(t)}function b(e){for(var t;(t=e.shift())!==undefined;)t()}function v(e,t,n){var o=e.children;return 4&n?o.$LI:8192&n?2===e.childFlags?o:o[t?0:o.length-1]:o}function N(e,t){for(var n;e;){if(2033&(n=e.flags))return e.dom;e=v(e,t,n)}return null}function V(e,t){do{var n=e.flags;if(2033&n)return void g(t,e.dom);var o=e.children;if(4&n&&(e=o.$LI),8&n&&(e=o),8192&n){if(2!==e.childFlags){for(var r=0,a=o.length;r0,m=u(p),h=l(p)&&p[0]===I;f||m||h?(n=n||t.slice(0,s),(f||h)&&(d=O(d)),(m||h)&&(d.key=I+s),n.push(d)):n&&n.push(d),d.flags|=65536}}a=0===(n=n||t).length?1:8}else(n=t).flags|=65536,81920&t.flags&&(n=O(t)),a=2;return e.children=n,e.childFlags=a,e}function D(e){return i(e)||r(e)?E(e,null):o(e)?P(e,0,null):16384&e.flags?O(e):e}var j="http://www.w3.org/1999/xlink",z="http://www.w3.org/XML/1998/namespace",H={"xlink:actuate":j,"xlink:arcrole":j,"xlink:href":j,"xlink:role":j,"xlink:show":j,"xlink:title":j,"xlink:type":j,"xml:base":z,"xml:lang":z,"xml:space":z};function G(e){return{onClick:e,onDblClick:e,onFocusIn:e,onFocusOut:e,onKeyDown:e,onKeyPress:e,onKeyUp:e,onMouseDown:e,onMouseMove:e,onMouseUp:e,onTouchEnd:e,onTouchMove:e,onTouchStart:e}}var U=G(0),K=G(null),Y=G(!0);function q(e,t){var n=t.$EV;return n||(n=t.$EV=G(null)),n[e]||1==++U[e]&&(K[e]=function(e){var t="onClick"===e||"onDblClick"===e?function(e){return function(t){0===t.button?$(t,!0,e,Z(t)):t.stopPropagation()}}(e):function(e){return function(t){$(t,!1,e,Z(t))}}(e);return document.addEventListener(m(e),t),t}(e)),n}function W(e,t){var n=t.$EV;n&&n[e]&&(0==--U[e]&&(document.removeEventListener(m(e),K[e]),K[e]=null),n[e]=null)}function $(e,t,n,o){var r=function(e){return c(e.composedPath)?e.composedPath()[0]:e.target}(e);do{if(t&&r.disabled)return;var a=r.$EV;if(a){var i=a[n];if(i&&(o.dom=r,i.event?i.event(i.data,e):i(e),e.cancelBubble))return}r=r.parentNode}while(!u(r))}function Q(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function X(){return this.defaultPrevented}function J(){return this.cancelBubble}function Z(e){var t={dom:document};return e.isDefaultPrevented=X,e.isPropagationStopped=J,e.stopPropagation=Q,Object.defineProperty(e,"currentTarget",{configurable:!0,get:function(){return t.dom}}),t}function ee(e,t,n){if(e[t]){var o=e[t];o.event?o.event(o.data,n):o(n)}else{var r=t.toLowerCase();e[r]&&e[r](n)}}function te(e,t){var n=function(n){var o=this.$V;if(o){var r=o.props||p,a=o.dom;if(l(e))ee(r,e,n);else for(var i=0;i-1&&t.options[i]&&(c=t.options[i].value),n&&a(c)&&(c=e.defaultValue),le(o,c)}}var de,pe,fe=te("onInput",he),me=te("onChange");function he(e,t,n){var o=e.value,r=t.value;if(a(o)){if(n){var i=e.defaultValue;a(i)||i===r||(t.defaultValue=i,t.value=i)}}else r!==o&&(t.defaultValue=o,t.value=o)}function Ce(e,t,n,o,r,a){64&e?ce(o,n):256&e?se(o,n,r,t):128&e&&he(o,n,r),a&&(n.$V=t)}function ge(e,t,n){64&e?function(e,t){oe(t.type)?(ne(e,"change",ae),ne(e,"click",ie)):ne(e,"input",re)}(t,n):256&e?function(e){ne(e,"change",ue)}(t):128&e&&function(e,t){ne(e,"input",fe),t.onChange&&ne(e,"change",me)}(t,n)}function be(e){return e.type&&oe(e.type)?!a(e.checked):!a(e.value)}function ve(e){e&&!S(e,null)&&e.current&&(e.current=null)}function Ne(e,t,n){e&&(c(e)||void 0!==e.current)&&n.push((function(){S(e,t)||void 0===e.current||(e.current=t)}))}function Ve(e,t){ye(e),V(e,t)}function ye(e){var t,n=e.flags,o=e.children;if(481&n){t=e.ref;var r=e.props;ve(t);var i=e.childFlags;if(!u(r))for(var l=Object.keys(r),s=0,d=l.length;s0;for(var c in i&&(a=be(n))&&ge(t,o,n),n)Le(c,null,n[c],o,r,a,null);i&&Ce(t,e,o,n,!0,a)}function Se(e,t,n){var o=D(e.render(t,e.state,n)),r=n;return c(e.getChildContext)&&(r=s(n,e.getChildContext())),e.$CX=r,o}function Ie(e,t,n,o,r,a){var i=new t(n,o),l=i.$N=Boolean(t.getDerivedStateFromProps||i.getSnapshotBeforeUpdate);if(i.$SVG=r,i.$L=a,e.children=i,i.$BS=!1,i.context=o,i.props===p&&(i.props=n),l)i.state=_(i,n,i.state);else if(c(i.componentWillMount)){i.$BR=!0,i.componentWillMount();var s=i.$PS;if(!u(s)){var d=i.state;if(u(d))i.state=s;else for(var f in s)d[f]=s[f];i.$PS=null}i.$BR=!1}return i.$LI=Se(i,n,o),i}function Te(e,t,n,o,r,a){var i=e.flags|=16384;481&i?Ee(e,t,n,o,r,a):4&i?function(e,t,n,o,r,a){var i=Ie(e,e.type,e.props||p,n,o,a);Te(i.$LI,t,i.$CX,o,r,a),Oe(e.ref,i,a)}(e,t,n,o,r,a):8&i?(!function(e,t,n,o,r,a){Te(e.children=D(function(e,t){return 32768&e.flags?e.type.render(e.props||p,e.ref,t):e.type(e.props||p,t)}(e,n)),t,n,o,r,a)}(e,t,n,o,r,a),Me(e,a)):512&i||16&i?Ae(e,t,r):8192&i?function(e,t,n,o,r,a){var i=e.children,c=e.childFlags;12&c&&0===i.length&&(c=e.childFlags=2,i=e.children=M());2===c?Te(i,n,r,o,r,a):Pe(i,n,t,o,r,a)}(e,n,t,o,r,a):1024&i&&function(e,t,n,o,r){Te(e.children,e.ref,t,!1,null,r);var a=M();Ae(a,n,o),e.dom=a.dom}(e,n,t,r,a)}function Ae(e,t,n){var o=e.dom=document.createTextNode(e.children);u(t)||C(t,o,n)}function Ee(e,t,n,o,r,i){var c=e.flags,l=e.props,s=e.className,d=e.children,p=e.childFlags,f=e.dom=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,o=o||(32&c)>0);if(a(s)||""===s||(o?f.setAttribute("class",s):f.className=s),16===p)w(f,d);else if(1!==p){var m=o&&"foreignObject"!==e.type;2===p?(16384&d.flags&&(e.children=d=O(d)),Te(d,f,n,m,null,i)):8!==p&&4!==p||Pe(d,f,n,m,null,i)}u(t)||C(t,f,r),u(l)||Be(e,c,l,f,o),Ne(e.ref,f,i)}function Pe(e,t,n,o,r,a){for(var i=0;i0,u!==s){var m=u||p;if((c=s||p)!==p)for(var h in(d=(448&r)>0)&&(f=be(c)),c){var C=m[h],g=c[h];C!==g&&Le(h,C,g,l,o,f,e)}if(m!==p)for(var b in m)a(c[b])&&!a(m[b])&&Le(b,m[b],null,l,o,f,e)}var v=t.children,N=t.className;e.className!==N&&(a(N)?l.removeAttribute("class"):o?l.setAttribute("class",N):l.className=N);4096&r?function(e,t){e.textContent!==t&&(e.textContent=t)}(l,v):Fe(e.childFlags,t.childFlags,e.children,v,l,n,o&&"foreignObject"!==t.type,null,e,i);d&&Ce(r,t,l,c,!1,f);var V=t.ref,y=e.ref;y!==V&&(ve(y),Ne(V,l,i))}(e,t,o,r,f,d):4&f?function(e,t,n,o,r,a,i){var l=t.children=e.children;if(u(l))return;l.$L=i;var d=t.props||p,f=t.ref,m=e.ref,h=l.state;if(!l.$N){if(c(l.componentWillReceiveProps)){if(l.$BR=!0,l.componentWillReceiveProps(d,o),l.$UN)return;l.$BR=!1}u(l.$PS)||(h=s(h,l.$PS),l.$PS=null)}De(l,h,d,n,o,r,!1,a,i),m!==f&&(ve(m),Ne(f,l,i))}(e,t,n,o,r,l,d):8&f?function(e,t,n,o,r,i,l){var u=!0,s=t.props||p,d=t.ref,f=e.props,m=!a(d),h=e.children;m&&c(d.onComponentShouldUpdate)&&(u=d.onComponentShouldUpdate(f,s));if(!1!==u){m&&c(d.onComponentWillUpdate)&&d.onComponentWillUpdate(f,s);var C=t.type,g=D(32768&t.flags?C.render(s,d,o):C(s,o));Re(h,g,n,o,r,i,l),t.children=g,m&&c(d.onComponentDidUpdate)&&d.onComponentDidUpdate(f,s)}else t.children=h}(e,t,n,o,r,l,d):16&f?function(e,t){var n=t.children,o=t.dom=e.dom;n!==e.children&&(o.nodeValue=n)}(e,t):512&f?t.dom=e.dom:8192&f?function(e,t,n,o,r,a){var i=e.children,c=t.children,l=e.childFlags,u=t.childFlags,s=null;12&u&&0===c.length&&(u=t.childFlags=2,c=t.children=M());var d=0!=(2&u);if(12&l){var p=i.length;(8&l&&8&u||d||!d&&c.length>p)&&(s=N(i[p-1],!1).nextSibling)}Fe(l,u,i,c,n,o,r,s,e,a)}(e,t,n,o,r,d):function(e,t,n,o){var r=e.ref,a=t.ref,c=t.children;if(Fe(e.childFlags,t.childFlags,e.children,c,r,n,!1,null,e,o),t.dom=e.dom,r!==a&&!i(c)){var l=c.dom;g(r,l),h(a,l)}}(e,t,o,d)}function Fe(e,t,n,o,r,a,i,c,l,u){switch(e){case 2:switch(t){case 2:Re(n,o,r,a,i,c,u);break;case 1:Ve(n,r);break;case 16:ye(n),w(r,o);break;default:!function(e,t,n,o,r,a){ye(e),Pe(t,n,o,r,N(e,!0),a),V(e,n)}(n,o,r,a,i,u)}break;case 1:switch(t){case 2:Te(o,r,a,i,c,u);break;case 1:break;case 16:w(r,o);break;default:Pe(o,r,a,i,c,u)}break;case 16:switch(t){case 16:!function(e,t,n){e!==t&&(""!==e?n.firstChild.nodeValue=t:w(n,t))}(n,o,r);break;case 2:xe(r),Te(o,r,a,i,c,u);break;case 1:xe(r);break;default:xe(r),Pe(o,r,a,i,c,u)}break;default:switch(t){case 16:_e(n),w(r,o);break;case 2:ke(r,l,n),Te(o,r,a,i,c,u);break;case 1:ke(r,l,n);break;default:var s=0|n.length,d=0|o.length;0===s?d>0&&Pe(o,r,a,i,c,u):0===d?ke(r,l,n):8===t&&8===e?function(e,t,n,o,r,a,i,c,l,u){var s,d,p=a-1,f=i-1,m=0,h=e[m],C=t[m];e:{for(;h.key===C.key;){if(16384&C.flags&&(t[m]=C=O(C)),Re(h,C,n,o,r,c,u),e[m]=C,++m>p||m>f)break e;h=e[m],C=t[m]}for(h=e[p],C=t[f];h.key===C.key;){if(16384&C.flags&&(t[f]=C=O(C)),Re(h,C,n,o,r,c,u),e[p]=C,p--,f--,m>p||m>f)break e;h=e[p],C=t[f]}}if(m>p){if(m<=f)for(d=(s=f+1)f)for(;m<=p;)Ve(e[m++],n);else!function(e,t,n,o,r,a,i,c,l,u,s,d,p){var f,m,h,C=0,g=c,b=c,v=a-c+1,V=i-c+1,_=new Int32Array(V+1),x=v===o,k=!1,w=0,L=0;if(r<4||(v|V)<32)for(C=g;C<=a;++C)if(f=e[C],Lc?k=!0:w=c,16384&m.flags&&(t[c]=m=O(m)),Re(f,m,l,n,u,s,p),++L;break}!x&&c>i&&Ve(f,l)}else x||Ve(f,l);else{var B={};for(C=b;C<=i;++C)B[t[C].key]=C;for(C=g;C<=a;++C)if(f=e[C],Lg;)Ve(e[g++],l);_[c-b]=C+1,w>c?k=!0:w=c,16384&(m=t[c]).flags&&(t[c]=m=O(m)),Re(f,m,l,n,u,s,p),++L}else x||Ve(f,l);else x||Ve(f,l)}if(x)ke(l,d,e),Pe(t,l,n,u,s,p);else if(k){var S=function(e){var t=0,n=0,o=0,r=0,a=0,i=0,c=0,l=e.length;l>je&&(je=l,de=new Int32Array(l),pe=new Int32Array(l));for(;n>1]]0&&(pe[n]=de[a-1]),de[a]=n)}a=r+1;var u=new Int32Array(a);i=de[a-1];for(;a-- >0;)u[a]=i,i=pe[i],de[a]=0;return u}(_);for(c=S.length-1,C=V-1;C>=0;C--)0===_[C]?(16384&(m=t[w=C+b]).flags&&(t[w]=m=O(m)),Te(m,l,n,u,(h=w+1)=0;C--)0===_[C]&&(16384&(m=t[w=C+b]).flags&&(t[w]=m=O(m)),Te(m,l,n,u,(h=w+1)i?i:a,p=0;pi)for(p=d;p0&&b(r),x.v=!1,c(n)&&n(),c(k.renderComplete)&&k.renderComplete(i,t)}function He(e,t,n,o){void 0===n&&(n=null),void 0===o&&(o=p),ze(e,t,n,o)}"undefined"!=typeof document&&window.Node&&(Node.prototype.$EV=null,Node.prototype.$V=null);var Ge=[],Ue="undefined"!=typeof Promise?Promise.resolve().then.bind(Promise.resolve()):function(e){window.setTimeout(e,0)},Ke=!1;function Ye(e,t,n,o){var r=e.$PS;if(c(t)&&(t=t(r?s(e.state,r):e.state,e.props,e.context)),a(r))e.$PS=t;else for(var i in t)r[i]=t[i];if(e.$BR)c(n)&&e.$L.push(n.bind(e));else{if(!x.v&&0===Ge.length)return void $e(e,o,n);if(-1===Ge.indexOf(e)&&Ge.push(e),Ke||(Ke=!0,Ue(We)),c(n)){var l=e.$QU;l||(l=e.$QU=[]),l.push(n)}}}function qe(e){for(var t=e.$QU,n=0,o=t.length;n0&&b(r),x.v=!1}else e.state=e.$PS,e.$PS=null;c(n)&&n.call(e)}}var Qe=function(e,t){this.state=null,this.$BR=!1,this.$BS=!0,this.$PS=null,this.$LI=null,this.$UN=!1,this.$CX=null,this.$QU=null,this.$N=!1,this.$L=null,this.$SVG=!1,this.props=e||p,this.context=t||p};t.Component=Qe,Qe.prototype.forceUpdate=function(e){this.$UN||Ye(this,{},e,!0)},Qe.prototype.setState=function(e,t){this.$UN||this.$BS||Ye(this,e,t,!1)},Qe.prototype.render=function(e,t,n){return null};t.version="7.3.3"},function(e,t,n){"use strict";var o=function(e){var t,n=Object.prototype,o=n.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function l(e,t,n,o){var r=t&&t.prototype instanceof h?t:h,a=Object.create(r.prototype),i=new L(o||[]);return a._invoke=function(e,t,n){var o=s;return function(r,a){if(o===p)throw new Error("Generator is already running");if(o===f){if("throw"===r)throw a;return S()}for(n.method=r,n.arg=a;;){var i=n.delegate;if(i){var c=x(i,n);if(c){if(c===m)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===s)throw o=f,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=p;var l=u(e,t,n);if("normal"===l.type){if(o=n.done?f:d,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=f,n.method="throw",n.arg=l.arg)}}}(e,n,i),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(o){return{type:"throw",arg:o}}}e.wrap=l;var s="suspendedStart",d="suspendedYield",p="executing",f="completed",m={};function h(){}function C(){}function g(){}var b={};b[a]=function(){return this};var v=Object.getPrototypeOf,N=v&&v(v(B([])));N&&N!==n&&o.call(N,a)&&(b=N);var V=g.prototype=h.prototype=Object.create(b);function y(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function _(e){var t;this._invoke=function(n,r){function a(){return new Promise((function(t,a){!function i(t,n,r,a){var c=u(e[t],e,n);if("throw"!==c.type){var l=c.arg,s=l.value;return s&&"object"==typeof s&&o.call(s,"__await")?Promise.resolve(s.__await).then((function(e){i("next",e,r,a)}),(function(e){i("throw",e,r,a)})):Promise.resolve(s).then((function(e){l.value=e,r(l)}),(function(e){return i("throw",e,r,a)}))}a(c.arg)}(n,r,t,a)}))}return t=t?t.then(a,a):a()}}function x(e,n){var o=e.iterator[n.method];if(o===t){if(n.delegate=null,"throw"===n.method){if(e.iterator["return"]&&(n.method="return",n.arg=t,x(e,n),"throw"===n.method))return m;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var r=u(o,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,m;var a=r.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,m):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function w(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function B(e){if(e){var n=e[a];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function n(){for(;++r=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var l=o.call(i,"catchLoc"),u=o.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),w(n),m}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;w(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,o){return this.delegate={iterator:B(e),resultName:n,nextLoc:o},"next"===this.method&&(this.arg=t),m}},e}(e.exports);try{regeneratorRuntime=o}catch(r){Function("r","regeneratorRuntime = r")(o)}},function(e,t,n){"use strict";window.Int32Array||(window.Int32Array=Array)},function(e,t,n){"use strict";(function(e){ +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=164)}([function(e,t,n){"use strict";var o=n(5),r=n(18).f,a=n(25),i=n(22),c=n(89),l=n(122),u=n(61);e.exports=function(e,t){var n,d,s,p,m,f=e.target,h=e.global,C=e.stat;if(n=h?o:C?o[f]||c(f,{}):(o[f]||{}).prototype)for(d in t){if(p=t[d],s=e.noTargetGet?(m=r(n,d))&&m.value:n[d],!u(h?d:f+(C?".":"#")+d,e.forced)&&s!==undefined){if(typeof p==typeof s)continue;l(p,s)}(e.sham||s&&s.sham)&&a(p,"sham",!0),i(n,d,p,e)}}},function(e,t,n){"use strict";t.__esModule=!0;var o=n(386);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(t[e]=o[e])}))},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=t.Tooltip=t.Toast=t.TitleBar=t.Tabs=t.Table=t.Section=t.ProgressBar=t.NumberInput=t.NoticeBox=t.LabeledList=t.Input=t.Icon=t.Grid=t.Flex=t.Dropdown=t.Dimmer=t.Collapsible=t.ColorBox=t.Button=t.Box=t.BlockQuote=t.AnimatedNumber=void 0;var o=n(158);t.AnimatedNumber=o.AnimatedNumber;var r=n(391);t.BlockQuote=r.BlockQuote;var a=n(17);t.Box=a.Box;var i=n(114);t.Button=i.Button;var c=n(393);t.ColorBox=c.ColorBox;var l=n(394);t.Collapsible=l.Collapsible;var u=n(395);t.Dimmer=u.Dimmer;var d=n(396);t.Dropdown=d.Dropdown;var s=n(397);t.Flex=s.Flex;var p=n(161);t.Grid=p.Grid;var m=n(87);t.Icon=m.Icon;var f=n(160);t.Input=f.Input;var h=n(163);t.LabeledList=h.LabeledList;var C=n(398);t.NoticeBox=C.NoticeBox;var g=n(399);t.NumberInput=g.NumberInput;var b=n(400);t.ProgressBar=b.ProgressBar;var v=n(401);t.Section=v.Section;var N=n(162);t.Table=N.Table;var V=n(402);t.Tabs=V.Tabs;var y=n(403);t.TitleBar=y.TitleBar;var _=n(117);t.Toast=_.Toast;var x=n(159);t.Tooltip=x.Tooltip;var k=n(404);t.Chart=k.Chart},function(e,t,n){"use strict";t.__esModule=!0,t.useBackend=t.backendReducer=t.backendUpdate=void 0;var o=n(37),r=n(19);t.backendUpdate=function(e){return{type:"backendUpdate",payload:e}};t.backendReducer=function(e,t){var n=t.type,r=t.payload;if("backendUpdate"===n){var a=Object.assign({},e.config,{},r.config),i=Object.assign({},e.data,{},r.static_data,{},r.data),c=a.status!==o.UI_DISABLED,l=a.status===o.UI_INTERACTIVE;return Object.assign({},e,{config:a,data:i,visible:c,interactive:l})}return e};t.useBackend=function(e){var t=e.state,n=(e.dispatch,t.config.ref);return Object.assign({},t,{act:function(e,t){return void 0===t&&(t={}),(0,r.act)(n,e,t)}})}},function(e,t,n){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){"use strict";(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n(118))},function(e,t,n){"use strict";e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";var o,r=n(9),a=n(5),i=n(6),c=n(15),l=n(74),u=n(25),d=n(22),s=n(13).f,p=n(36),m=n(53),f=n(11),h=n(58),C=a.DataView,g=C&&C.prototype,b=a.Int8Array,v=b&&b.prototype,N=a.Uint8ClampedArray,V=N&&N.prototype,y=b&&p(b),_=v&&p(v),x=Object.prototype,k=x.isPrototypeOf,L=f("toStringTag"),w=h("TYPED_ARRAY_TAG"),B=!(!a.ArrayBuffer||!C),S=B&&!!m&&"Opera"!==l(a.opera),I=!1,T={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},A=function(e){var t=l(e);return"DataView"===t||c(T,t)},E=function(e){return i(e)&&c(T,l(e))};for(o in T)a[o]||(S=!1);if((!S||"function"!=typeof y||y===Function.prototype)&&(y=function(){throw TypeError("Incorrect invocation")},S))for(o in T)a[o]&&m(a[o],y);if((!S||!_||_===x)&&(_=y.prototype,S))for(o in T)a[o]&&m(a[o].prototype,_);if(S&&p(V)!==_&&m(V,_),r&&!c(_,L))for(o in I=!0,s(_,L,{get:function(){return i(this)?this[w]:undefined}}),T)a[o]&&u(a[o],w,o);B&&m&&p(g)!==x&&m(g,x),e.exports={NATIVE_ARRAY_BUFFER:B,NATIVE_ARRAY_BUFFER_VIEWS:S,TYPED_ARRAY_TAG:I&&w,aTypedArray:function(e){if(E(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(m){if(k.call(y,e))return e}else for(var t in T)if(c(T,o)){var n=a[t];if(n&&(e===n||k.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(r){if(n)for(var o in T){var i=a[o];i&&c(i.prototype,e)&&delete i.prototype[e]}_[e]&&!n||d(_,e,n?t:S&&v[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var o,i;if(r){if(m){if(n)for(o in T)(i=a[o])&&c(i,e)&&delete i[e];if(y[e]&&!n)return;try{return d(y,e,n?t:S&&b[e]||t)}catch(l){}}for(o in T)!(i=a[o])||i[e]&&!n||d(i,e,t)}},isView:A,isTypedArray:E,TypedArray:y,TypedArrayPrototype:_}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){if(!o(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(30),r=Math.min;e.exports=function(e){return e>0?r(o(e),9007199254740991):0}},function(e,t,n){"use strict";var o=n(5),r=n(91),a=n(15),i=n(58),c=n(95),l=n(125),u=r("wks"),d=o.Symbol,s=l?d:i;e.exports=function(e){return a(u,e)||(c&&a(d,e)?u[e]=d[e]:u[e]=s("Symbol."+e)),u[e]}},function(e,t,n){"use strict";t.__esModule=!0,t.isFalsy=t.pureComponentHooks=t.shallowDiffers=t.normalizeChildren=t.classes=void 0;t.classes=function(e){for(var t="",n=0;n_;_++)if((p||_ in N)&&(b=V(g=N[_],_,v),e))if(t)k[_]=b;else if(b)switch(e){case 3:return!0;case 5:return g;case 6:return _;case 2:l.call(k,g)}else if(d)return!1;return s?-1:u||d?d:k}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6)}},function(e,t,n){"use strict";t.__esModule=!0,t.Box=t.computeBoxProps=t.unit=void 0;var o=n(1),r=n(12),a=n(392),i=n(37);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){return"string"==typeof e?e:"number"==typeof e?6*e+"px":void 0};t.unit=l;var u=function(e){return"string"==typeof e&&i.CSS_COLORS.includes(e)},d=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=n)}},s=function(e){return function(t,n){(0,r.isFalsy)(n)||(t[e]=l(n))}},p=function(e,t){return function(n,o){(0,r.isFalsy)(o)||(n[e]=t)}},m=function(e,t){return function(n,o){if(!(0,r.isFalsy)(o))for(var a=0;a0&&(t.style=l),t};t.computeBoxProps=C;var g=function(e){var t=e.as,n=void 0===t?"div":t,i=e.className,l=e.content,d=e.children,s=c(e,["as","className","content","children"]),p=e.textColor||e.color,m=e.backgroundColor;if("function"==typeof d)return d(C(e));var f=C(s);return(0,o.createVNode)(a.VNodeFlags.HtmlElement,n,(0,r.classes)([i,u(p)&&"color-"+p,u(m)&&"color-bg-"+m]),l||d,a.ChildFlags.UnknownChildren,f)};t.Box=g,g.defaultHooks=r.pureComponentHooks;var b=function(e){var t=e.children,n=c(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,g,Object.assign({position:"relative"},n,{children:(0,o.createComponentVNode)(2,g,{fillPositionedParent:!0,children:t})})))};b.defaultHooks=r.pureComponentHooks,g.Forced=b},function(e,t,n){"use strict";var o=n(9),r=n(71),a=n(46),i=n(24),c=n(33),l=n(15),u=n(119),d=Object.getOwnPropertyDescriptor;t.f=o?d:function(e,t){if(e=i(e),t=c(t,!0),u)try{return d(e,t)}catch(n){}if(l(e,t))return a(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";t.__esModule=!0,t.winset=t.winget=t.act=t.runCommand=t.callByondAsync=t.callByond=t.tridentVersion=void 0;var o,r=n(29),a=(o=navigator.userAgent.match(/Trident\/(\d+).+?;/i)[1])?parseInt(o,10):null;t.tridentVersion=a;var i=function(e,t){return void 0===t&&(t={}),"byond://"+e+"?"+(0,r.buildQueryString)(t)},c=function(e,t){void 0===t&&(t={}),window.location.href=i(e,t)};t.callByond=c;var l=function(e,t){void 0===t&&(t={}),window.__callbacks__=window.__callbacks__||[];var n=window.__callbacks__.length,o=new Promise((function(e){window.__callbacks__.push(e)}));return window.location.href=i(e,Object.assign({},t,{callback:"__callbacks__["+n+"]"})),o};t.callByondAsync=l;t.runCommand=function(e){return c("winset",{command:e})};t.act=function(e,t,n){return void 0===n&&(n={}),c("",Object.assign({src:e,action:t},n))};var u=function(e,t){var n;return regeneratorRuntime.async((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,regeneratorRuntime.awrap(l("winget",{id:e,property:t}));case 2:return n=o.sent,o.abrupt("return",n[t]);case 4:case"end":return o.stop()}}))};t.winget=u;t.winset=function(e,t,n){var o;return c("winset",((o={})[e+"."+t]=n,o))}},function(e,t,n){"use strict";t.__esModule=!0,t.toFixed=t.round=t.clamp=void 0;t.clamp=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),Math.max(t,Math.min(e,n))};t.round=function(e){return Math.round(e)};t.toFixed=function(e,t){return void 0===t&&(t=0),Number(e).toFixed(t)}},function(e,t,n){"use strict";e.exports=function(e){if(e==undefined)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var o=n(5),r=n(25),a=n(15),i=n(89),c=n(90),l=n(34),u=l.get,d=l.enforce,s=String(String).split("String");(e.exports=function(e,t,n,c){var l=!!c&&!!c.unsafe,u=!!c&&!!c.enumerable,p=!!c&&!!c.noTargetGet;"function"==typeof n&&("string"!=typeof t||a(n,"name")||r(n,"name",t),d(n).source=s.join("string"==typeof t?t:"")),e!==o?(l?!p&&e[t]&&(u=!0):delete e[t],u?e[t]=n:r(e,t,n)):u?e[t]=n:i(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||c(this)}))},function(e,t,n){"use strict";t.__esModule=!0,t.zipWith=t.zip=t.reduce=t.sortBy=t.map=t.toArray=void 0;t.toArray=function(e){if(Array.isArray(e))return e;if("object"==typeof e){var t=Object.prototype.hasOwnProperty,n=[];for(var o in e)t.call(e,o)&&n.push(e[o]);return n}return[]};var o=function(e){return function(t){if(null===t&&t===undefined)return t;if(Array.isArray(t)){for(var n=[],o=0;oc)return 1}return 0};t.sortBy=function(){for(var e=arguments.length,t=new Array(e),n=0;n"+i+""}},function(e,t,n){"use strict";var o=n(4);e.exports=function(e){return o((function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}))}},function(e,t,n){"use strict";t.__esModule=!0,t.buildQueryString=t.decodeHtmlEntities=t.toTitleCase=t.capitalize=t.testGlobPattern=t.multiline=void 0;t.multiline=function o(e){if(Array.isArray(e))return o(e.join(""));var t,n=e.split("\n"),r=n,a=Array.isArray(r),i=0;for(r=a?r:r[Symbol.iterator]();;){var c;if(a){if(i>=r.length)break;c=r[i++]}else{if((i=r.next()).done)break;c=i.value}for(var l=c,u=0;u",apos:"'"};return e.replace(/
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/&#?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/&#x?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},function(e,t,n){"use strict";var o=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:o)(e)}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){"use strict";var o={}.toString;e.exports=function(e){return o.call(e).slice(8,-1)}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e,t){if(!o(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var o,r,a,i=n(121),c=n(5),l=n(6),u=n(25),d=n(15),s=n(72),p=n(59),m=c.WeakMap;if(i){var f=new m,h=f.get,C=f.has,g=f.set;o=function(e,t){return g.call(f,e,t),t},r=function(e){return h.call(f,e)||{}},a=function(e){return C.call(f,e)}}else{var b=s("state");p[b]=!0,o=function(e,t){return u(e,b,t),t},r=function(e){return d(e,b)?e[b]:{}},a=function(e){return d(e,b)}}e.exports={set:o,get:r,has:a,enforce:function(e){return a(e)?r(e):o(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=r(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";var o=n(123),r=n(5),a=function(e){return"function"==typeof e?e:undefined};e.exports=function(e,t){return arguments.length<2?a(o[e])||a(r[e]):o[e]&&o[e][t]||r[e]&&r[e][t]}},function(e,t,n){"use strict";var o=n(15),r=n(14),a=n(72),i=n(102),c=a("IE_PROTO"),l=Object.prototype;e.exports=i?Object.getPrototypeOf:function(e){return e=r(e),o(e,c)?e[c]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?l:null}},function(e,t,n){"use strict";t.__esModule=!0,t.getGasColor=t.getGasLabel=t.RADIO_CHANNELS=t.CSS_COLORS=t.COLORS=t.UI_CLOSE=t.UI_DISABLED=t.UI_UPDATE=t.UI_INTERACTIVE=void 0;t.UI_INTERACTIVE=2;t.UI_UPDATE=1;t.UI_DISABLED=0;t.UI_CLOSE=-1;t.COLORS={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}};t.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"];t.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"CentCom",freq:1337,color:"#2681a5"},{name:"Supply",freq:1347,color:"#b88646"},{name:"Service",freq:1349,color:"#6ca729"},{name:"Science",freq:1351,color:"#c68cfa"},{name:"Command",freq:1353,color:"#5177ff"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"AI Private",freq:1447,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"}];var o=[{id:"o2",name:"Oxygen",label:"O\u2082",color:"blue"},{id:"n2",name:"Nitrogen",label:"N\u2082",color:"red"},{id:"co2",name:"Carbon Dioxide",label:"CO\u2082",color:"grey"},{id:"plasma",name:"Plasma",label:"Plasma",color:"pink"},{id:"water_vapor",name:"Water Vapor",label:"H\u2082O",color:"grey"},{id:"nob",name:"Hyper-noblium",label:"Hyper-nob",color:"teal"},{id:"n2o",name:"Nitrous Oxide",label:"N\u2082O",color:"red"},{id:"no2",name:"Nitryl",label:"NO\u2082",color:"brown"},{id:"tritium",name:"Tritium",label:"Tritium",color:"green"},{id:"bz",name:"BZ",label:"BZ",color:"purple"},{id:"stim",name:"Stimulum",label:"Stimulum",color:"purple"},{id:"pluox",name:"Pluoxium",label:"Pluoxium",color:"blue"},{id:"miasma",name:"Miasma",label:"Miasma",color:"olive"}];t.getGasLabel=function(e,t){var n=String(e).toLowerCase(),r=o.find((function(e){return e.id===n||e.name.toLowerCase()===n}));return r&&r.label||t||e};t.getGasColor=function(e){var t=String(e).toLowerCase(),n=o.find((function(e){return e.id===t||e.name.toLowerCase()===t}));return n&&n.color}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var o=n(4);e.exports=function(e,t){var n=[][e];return!n||!o((function(){n.call(null,t||function(){throw 1},1)}))}},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(9),i=n(113),c=n(7),l=n(77),u=n(55),d=n(46),s=n(25),p=n(10),m=n(137),f=n(151),h=n(33),C=n(15),g=n(74),b=n(6),v=n(42),N=n(53),V=n(47).f,y=n(152),_=n(16).forEach,x=n(54),k=n(13),L=n(18),w=n(34),B=n(79),S=w.get,I=w.set,T=k.f,A=L.f,E=Math.round,P=r.RangeError,M=l.ArrayBuffer,O=l.DataView,R=c.NATIVE_ARRAY_BUFFER_VIEWS,F=c.TYPED_ARRAY_TAG,D=c.TypedArray,j=c.TypedArrayPrototype,z=c.aTypedArrayConstructor,H=c.isTypedArray,G=function(e,t){for(var n=0,o=t.length,r=new(z(e))(o);o>n;)r[n]=t[n++];return r},U=function(e,t){T(e,t,{get:function(){return S(this)[t]}})},K=function(e){var t;return e instanceof M||"ArrayBuffer"==(t=g(e))||"SharedArrayBuffer"==t},Y=function(e,t){return H(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},q=function(e,t){return Y(e,t=h(t,!0))?d(2,e[t]):A(e,t)},W=function(e,t,n){return!(Y(e,t=h(t,!0))&&b(n)&&C(n,"value"))||C(n,"get")||C(n,"set")||n.configurable||C(n,"writable")&&!n.writable||C(n,"enumerable")&&!n.enumerable?T(e,t,n):(e[t]=n.value,e)};a?(R||(L.f=q,k.f=W,U(j,"buffer"),U(j,"byteOffset"),U(j,"byteLength"),U(j,"length")),o({target:"Object",stat:!0,forced:!R},{getOwnPropertyDescriptor:q,defineProperty:W}),e.exports=function(e,t,n){var a=e.match(/\d+$/)[0]/8,c=e+(n?"Clamped":"")+"Array",l="get"+e,d="set"+e,h=r[c],C=h,g=C&&C.prototype,k={},L=function(e,t){var n=S(e);return n.view[l](t*a+n.byteOffset,!0)},w=function(e,t,o){var r=S(e);n&&(o=(o=E(o))<0?0:o>255?255:255&o),r.view[d](t*a+r.byteOffset,o,!0)},A=function(e,t){T(e,t,{get:function(){return L(this,t)},set:function(e){return w(this,t,e)},enumerable:!0})};R?i&&(C=t((function(e,t,n,o){return u(e,C,c),B(b(t)?K(t)?o!==undefined?new h(t,f(n,a),o):n!==undefined?new h(t,f(n,a)):new h(t):H(t)?G(C,t):y.call(C,t):new h(m(t)),e,C)})),N&&N(C,D),_(V(h),(function(e){e in C||s(C,e,h[e])})),C.prototype=g):(C=t((function(e,t,n,o){u(e,C,c);var r,i,l,d=0,s=0;if(b(t)){if(!K(t))return H(t)?G(C,t):y.call(C,t);r=t,s=f(n,a);var h=t.byteLength;if(o===undefined){if(h%a)throw P("Wrong length");if((i=h-s)<0)throw P("Wrong length")}else if((i=p(o)*a)+s>h)throw P("Wrong length");l=i/a}else l=m(t),r=new M(i=l*a);for(I(e,{buffer:r,byteOffset:s,byteLength:i,length:l,view:new O(r)});ddocument.F=Object<\/script>"),e.close(),p=e.F;n--;)delete p[d][a[n]];return p()};e.exports=Object.create||function(e,t){var n;return null!==e?(s[d]=o(e),n=new s,s[d]=null,n[u]=e):n=p(),t===undefined?n:r(n,t)},i[u]=!0},function(e,t,n){"use strict";var o=n(13).f,r=n(15),a=n(11)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,a)&&o(e,a,{configurable:!0,value:t})}},function(e,t,n){"use strict";var o=n(11),r=n(42),a=n(25),i=o("unscopables"),c=Array.prototype;c[i]==undefined&&a(c,i,r(null)),e.exports=function(e){c[i][e]=!0}},function(e,t,n){"use strict";var o=n(8),r=n(31),a=n(11)("species");e.exports=function(e,t){var n,i=o(e).constructor;return i===undefined||(n=o(i)[a])==undefined?t:r(n)}},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var o=n(124),r=n(93).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(31);e.exports=function(e,t,n){if(o(e),t===undefined)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var o=n(33),r=n(13),a=n(46);e.exports=function(e,t,n){var i=o(t);i in e?r.f(e,i,a(0,n)):e[i]=n}},function(e,t,n){"use strict";var o=n(59),r=n(6),a=n(15),i=n(13).f,c=n(58),l=n(67),u=c("meta"),d=0,s=Object.isExtensible||function(){return!0},p=function(e){i(e,u,{value:{objectID:"O"+ ++d,weakData:{}}})},m=e.exports={REQUIRED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,u)){if(!s(e))return"F";if(!t)return"E";p(e)}return e[u].objectID},getWeakData:function(e,t){if(!a(e,u)){if(!s(e))return!0;if(!t)return!1;p(e)}return e[u].weakData},onFreeze:function(e){return l&&m.REQUIRED&&s(e)&&!a(e,u)&&p(e),e}};o[u]=!0},function(e,t,n){"use strict";t.__esModule=!0,t.createLogger=void 0;n(154);var o=n(19),r=0,a=1,i=2,c=3,l=4,u=function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a=i){var c=[t].concat(r).map((function(e){return"string"==typeof e?e:e instanceof Error?e.stack||String(e):JSON.stringify(e)})).filter((function(e){return e})).join(" ")+"\nUser Agent: "+navigator.userAgent;(0,o.act)(window.__ref__,"tgui:log",{log:c})}};t.createLogger=function(e){return{debug:function(){for(var t=arguments.length,n=new Array(t),o=0;od;)if((c=l[d++])!=c)return!0}else for(;u>d;d++)if((e||d in l)&&l[d]===n)return e||d||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},function(e,t,n){"use strict";var o=n(4),r=/#|\.prototype\./,a=function(e,t){var n=c[i(e)];return n==u||n!=l&&("function"==typeof t?o(t):!!t)},i=a.normalize=function(e){return String(e).replace(r,".").toLowerCase()},c=a.data={},l=a.NATIVE="N",u=a.POLYFILL="P";e.exports=a},function(e,t,n){"use strict";var o=n(124),r=n(93);e.exports=Object.keys||function(e){return o(e,r)}},function(e,t,n){"use strict";var o=n(6),r=n(52),a=n(11)("species");e.exports=function(e,t){var n;return r(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!r(n.prototype)?o(n)&&null===(n=n[a])&&(n=undefined):n=undefined),new(n===undefined?Array:n)(0===t?0:t)}},function(e,t,n){"use strict";var o=n(4),r=n(11),a=n(96),i=r("species");e.exports=function(e){return a>=51||!o((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var o=n(22);e.exports=function(e,t,n){for(var r in t)o(e,r,t[r],n);return e}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,n){"use strict";var o=n(8),r=n(98),a=n(10),i=n(48),c=n(99),l=n(132),u=function(e,t){this.stopped=e,this.result=t};(e.exports=function(e,t,n,d,s){var p,m,f,h,C,g,b,v=i(t,n,d?2:1);if(s)p=e;else{if("function"!=typeof(m=c(e)))throw TypeError("Target is not iterable");if(r(m)){for(f=0,h=a(e.length);h>f;f++)if((C=d?v(o(b=e[f])[0],b[1]):v(e[f]))&&C instanceof u)return C;return new u(!1)}p=m.call(e)}for(g=p.next;!(b=g.call(p)).done;)if("object"==typeof(C=l(p,v,b.value,d))&&C&&C instanceof u)return C;return new u(!1)}).stop=function(e){return new u(!0,e)}},function(e,t,n){"use strict";t.__esModule=!0,t.InterfaceLockNoticeBox=void 0;var o=n(1),r=n(2);t.InterfaceLockNoticeBox=function(e){var t=e.siliconUser,n=e.locked,a=e.onLockStatusChange,i=e.accessText;return t?(0,o.createComponentVNode)(2,r.NoticeBox,{children:(0,o.createComponentVNode)(2,r.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,r.Flex.Item,{children:"Interface lock status:"}),(0,o.createComponentVNode)(2,r.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,r.Flex.Item,{children:(0,o.createComponentVNode)(2,r.Button,{m:0,color:"gray",icon:n?"lock":"unlock",content:n?"Locked":"Unlocked",onClick:function(){a&&a(!n)}})})]})}):(0,o.createComponentVNode)(2,r.NoticeBox,{children:["Swipe ",i||"an ID card"," ","to ",n?"unlock":"lock"," this interface."]})}},function(e,t,n){"use strict";t.__esModule=!0,t.compose=t.flow=void 0;t.flow=function o(){for(var e=arguments.length,t=new Array(e),n=0;n1?r-1:0),i=1;i=c.length)break;d=c[u++]}else{if((u=c.next()).done)break;d=u.value}var s=d;Array.isArray(s)?n=o.apply(void 0,s).apply(void 0,[n].concat(a)):s&&(n=s.apply(void 0,[n].concat(a)))}return n}};t.compose=function(){for(var e=arguments.length,t=new Array(e),n=0;n1?o-1:0),a=1;a=0:s>p;p+=m)p in d&&(l=n(l,d[p],p,u));return l}};e.exports={left:c(!1),right:c(!0)}},function(e,t,n){"use strict";var o=n(5),r=n(9),a=n(7).NATIVE_ARRAY_BUFFER,i=n(25),c=n(66),l=n(4),u=n(55),d=n(30),s=n(10),p=n(137),m=n(217),f=n(47).f,h=n(13).f,C=n(97),g=n(43),b=n(34),v=b.get,N=b.set,V="ArrayBuffer",y="DataView",_="Wrong length",x=o[V],k=x,L=o[y],w=o.RangeError,B=m.pack,S=m.unpack,I=function(e){return[255&e]},T=function(e){return[255&e,e>>8&255]},A=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},E=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},P=function(e){return B(e,23,4)},M=function(e){return B(e,52,8)},O=function(e,t){h(e.prototype,t,{get:function(){return v(this)[t]}})},R=function(e,t,n,o){var r=p(n),a=v(e);if(r+t>a.byteLength)throw w("Wrong index");var i=v(a.buffer).bytes,c=r+a.byteOffset,l=i.slice(c,c+t);return o?l:l.reverse()},F=function(e,t,n,o,r,a){var i=p(n),c=v(e);if(i+t>c.byteLength)throw w("Wrong index");for(var l=v(c.buffer).bytes,u=i+c.byteOffset,d=o(+r),s=0;sH;)(D=z[H++])in k||i(k,D,x[D]);j.constructor=k}var G=new L(new k(2)),U=L.prototype.setInt8;G.setInt8(0,2147483648),G.setInt8(1,2147483649),!G.getInt8(0)&&G.getInt8(1)||c(L.prototype,{setInt8:function(e,t){U.call(this,e,t<<24>>24)},setUint8:function(e,t){U.call(this,e,t<<24>>24)}},{unsafe:!0})}else k=function(e){u(this,k,V);var t=p(e);N(this,{bytes:C.call(new Array(t),0),byteLength:t}),r||(this.byteLength=t)},L=function(e,t,n){u(this,L,y),u(e,k,y);var o=v(e).byteLength,a=d(t);if(a<0||a>o)throw w("Wrong offset");if(a+(n=n===undefined?o-a:s(n))>o)throw w(_);N(this,{buffer:e,byteLength:n,byteOffset:a}),r||(this.buffer=e,this.byteLength=n,this.byteOffset=a)},r&&(O(k,"byteLength"),O(L,"buffer"),O(L,"byteLength"),O(L,"byteOffset")),c(L.prototype,{getInt8:function(e){return R(this,1,e)[0]<<24>>24},getUint8:function(e){return R(this,1,e)[0]},getInt16:function(e){var t=R(this,2,e,arguments.length>1?arguments[1]:undefined);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=R(this,2,e,arguments.length>1?arguments[1]:undefined);return t[1]<<8|t[0]},getInt32:function(e){return E(R(this,4,e,arguments.length>1?arguments[1]:undefined))},getUint32:function(e){return E(R(this,4,e,arguments.length>1?arguments[1]:undefined))>>>0},getFloat32:function(e){return S(R(this,4,e,arguments.length>1?arguments[1]:undefined),23)},getFloat64:function(e){return S(R(this,8,e,arguments.length>1?arguments[1]:undefined),52)},setInt8:function(e,t){F(this,1,e,I,t)},setUint8:function(e,t){F(this,1,e,I,t)},setInt16:function(e,t){F(this,2,e,T,t,arguments.length>2?arguments[2]:undefined)},setUint16:function(e,t){F(this,2,e,T,t,arguments.length>2?arguments[2]:undefined)},setInt32:function(e,t){F(this,4,e,A,t,arguments.length>2?arguments[2]:undefined)},setUint32:function(e,t){F(this,4,e,A,t,arguments.length>2?arguments[2]:undefined)},setFloat32:function(e,t){F(this,4,e,P,t,arguments.length>2?arguments[2]:undefined)},setFloat64:function(e,t){F(this,8,e,M,t,arguments.length>2?arguments[2]:undefined)}});g(k,V),g(L,y),e.exports={ArrayBuffer:k,DataView:L}},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(61),i=n(22),c=n(50),l=n(68),u=n(55),d=n(6),s=n(4),p=n(75),m=n(43),f=n(79);e.exports=function(e,t,n){var h=-1!==e.indexOf("Map"),C=-1!==e.indexOf("Weak"),g=h?"set":"add",b=r[e],v=b&&b.prototype,N=b,V={},y=function(e){var t=v[e];i(v,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(C&&!d(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return C&&!d(e)?undefined:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(C&&!d(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(a(e,"function"!=typeof b||!(C||v.forEach&&!s((function(){(new b).entries().next()})))))N=n.getConstructor(t,e,h,g),c.REQUIRED=!0;else if(a(e,!0)){var _=new N,x=_[g](C?{}:-0,1)!=_,k=s((function(){_.has(1)})),L=p((function(e){new b(e)})),w=!C&&s((function(){for(var e=new b,t=5;t--;)e[g](t,t);return!e.has(-0)}));L||((N=t((function(t,n){u(t,N,e);var o=f(new b,t,N);return n!=undefined&&l(n,o[g],o,h),o}))).prototype=v,v.constructor=N),(k||w)&&(y("delete"),y("has"),h&&y("get")),(w||x)&&y(g),C&&v.clear&&delete v.clear}return V[e]=N,o({global:!0,forced:N!=b},V),m(N,e),C||n.setStrong(N,e,h),N}},function(e,t,n){"use strict";var o=n(6),r=n(53);e.exports=function(e,t,n){var a,i;return r&&"function"==typeof(a=t.constructor)&&a!==n&&o(i=a.prototype)&&i!==n.prototype&&r(e,i),e}},function(e,t,n){"use strict";var o=Math.expm1,r=Math.exp;e.exports=!o||o(10)>22025.465794806718||o(10)<22025.465794806718||-2e-17!=o(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:r(e)-1}:o},function(e,t,n){"use strict";e.exports="\t\n\x0B\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},function(e,t,n){"use strict";var o=n(38),r=n(5),a=n(4);e.exports=o||!a((function(){var e=Math.random();__defineSetter__.call(null,e,(function(){})),delete r[e]}))},function(e,t,n){"use strict";var o=n(8);e.exports=function(){var e=o(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var o,r,a=n(83),i=RegExp.prototype.exec,c=String.prototype.replace,l=i,u=(o=/a/,r=/b*/g,i.call(o,"a"),i.call(r,"a"),0!==o.lastIndex||0!==r.lastIndex),d=/()??/.exec("")[1]!==undefined;(u||d)&&(l=function(e){var t,n,o,r,l=this;return d&&(n=new RegExp("^"+l.source+"$(?!\\s)",a.call(l))),u&&(t=l.lastIndex),o=i.call(l,e),u&&o&&(l.lastIndex=l.global?o.index+o[0].length:t),d&&o&&o.length>1&&c.call(o[0],n,(function(){for(r=1;r")})),d=!a((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));e.exports=function(e,t,n,s){var p=i(e),m=!a((function(){var t={};return t[p]=function(){return 7},7!=""[e](t)})),f=m&&!a((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[p]=/./[p]),n.exec=function(){return t=!0,null},n[p](""),!t}));if(!m||!f||"replace"===e&&!u||"split"===e&&!d){var h=/./[p],C=n(p,""[e],(function(e,t,n,o,r){return t.exec===c?m&&!r?{done:!0,value:h.call(t,n,o)}:{done:!0,value:e.call(n,t,o)}:{done:!1}})),g=C[0],b=C[1];r(String.prototype,e,g),r(RegExp.prototype,p,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)}),s&&o(RegExp.prototype[p],"sham",!0)}}},function(e,t,n){"use strict";var o=n(32),r=n(84);e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var a=n.call(e,t);if("object"!=typeof a)throw TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==o(e))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(e,t)}},function(e,t,n){"use strict";t.__esModule=!0,t.Icon=void 0;var o=n(1),r=n(12),a=n(17);var i=/-o$/,c=function(e){var t=e.name,n=e.size,c=e.spin,l=e.className,u=e.style,d=void 0===u?{}:u,s=e.rotation,p=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["name","size","spin","className","style","rotation"]);n&&(d["font-size"]=100*n+"%"),"number"==typeof s&&(d.transform="rotate("+s+"deg)");var m=i.test(t),f=t.replace(i,"");return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"i",className:(0,r.classes)([l,m?"far":"fas","fa-"+f,c&&"fa-spin"]),style:d},p)))};t.Icon=c,c.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";var o=n(5),r=n(6),a=o.document,i=r(a)&&r(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},function(e,t,n){"use strict";var o=n(5),r=n(25);e.exports=function(e,t){try{r(o,e,t)}catch(n){o[e]=t}return t}},function(e,t,n){"use strict";var o=n(120),r=Function.toString;"function"!=typeof o.inspectSource&&(o.inspectSource=function(e){return r.call(e)}),e.exports=o.inspectSource},function(e,t,n){"use strict";var o=n(38),r=n(120);(e.exports=function(e,t){return r[e]||(r[e]=t!==undefined?t:{})})("versions",[]).push({version:"3.4.8",mode:o?"pure":"global",copyright:"\xa9 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t,n){"use strict";var o=n(35),r=n(47),a=n(94),i=n(8);e.exports=o("Reflect","ownKeys")||function(e){var t=r.f(i(e)),n=a.f;return n?t.concat(n(e)):t}},function(e,t,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var o=n(4);e.exports=!!Object.getOwnPropertySymbols&&!o((function(){return!String(Symbol())}))},function(e,t,n){"use strict";var o,r,a=n(5),i=n(73),c=a.process,l=c&&c.versions,u=l&&l.v8;u?r=(o=u.split("."))[0]+o[1]:i&&(!(o=i.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=i.match(/Chrome\/(\d+)/))&&(r=o[1]),e.exports=r&&+r},function(e,t,n){"use strict";var o=n(14),r=n(41),a=n(10);e.exports=function(e){for(var t=o(this),n=a(t.length),i=arguments.length,c=r(i>1?arguments[1]:undefined,n),l=i>2?arguments[2]:undefined,u=l===undefined?n:r(l,n);u>c;)t[c++]=e;return t}},function(e,t,n){"use strict";var o=n(11),r=n(65),a=o("iterator"),i=Array.prototype;e.exports=function(e){return e!==undefined&&(r.Array===e||i[a]===e)}},function(e,t,n){"use strict";var o=n(74),r=n(65),a=n(11)("iterator");e.exports=function(e){if(e!=undefined)return e[a]||e["@@iterator"]||r[o(e)]}},function(e,t,n){"use strict";var o={};o[n(11)("toStringTag")]="z",e.exports="[object z]"===String(o)},function(e,t,n){"use strict";var o=n(0),r=n(202),a=n(36),i=n(53),c=n(43),l=n(25),u=n(22),d=n(11),s=n(38),p=n(65),m=n(134),f=m.IteratorPrototype,h=m.BUGGY_SAFARI_ITERATORS,C=d("iterator"),g=function(){return this};e.exports=function(e,t,n,d,m,b,v){r(n,t,d);var N,V,y,_=function(e){if(e===m&&B)return B;if(!h&&e in L)return L[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},x=t+" Iterator",k=!1,L=e.prototype,w=L[C]||L["@@iterator"]||m&&L[m],B=!h&&w||_(m),S="Array"==t&&L.entries||w;if(S&&(N=a(S.call(new e)),f!==Object.prototype&&N.next&&(s||a(N)===f||(i?i(N,f):"function"!=typeof N[C]&&l(N,C,g)),c(N,x,!0,!0),s&&(p[x]=g))),"values"==m&&w&&"values"!==w.name&&(k=!0,B=function(){return w.call(this)}),s&&!v||L[C]===B||l(L,C,B),p[t]=B,m)if(V={values:_("values"),keys:b?B:_("keys"),entries:_("entries")},v)for(y in V)!h&&!k&&y in L||u(L,y,V[y]);else o({target:t,proto:!0,forced:h||k},V);return V}},function(e,t,n){"use strict";var o=n(4);e.exports=!o((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,n){"use strict";var o=n(10),r=n(104),a=n(21),i=Math.ceil,c=function(e){return function(t,n,c){var l,u,d=String(a(t)),s=d.length,p=c===undefined?" ":String(c),m=o(n);return m<=s||""==p?d:(l=m-s,(u=r.call(p,i(l/p.length))).length>l&&(u=u.slice(0,l)),e?d+u:u+d)}};e.exports={start:c(!1),end:c(!0)}},function(e,t,n){"use strict";var o=n(30),r=n(21);e.exports="".repeat||function(e){var t=String(r(this)),n="",a=o(e);if(a<0||a==Infinity)throw RangeError("Wrong number of repetitions");for(;a>0;(a>>>=1)&&(t+=t))1&a&&(n+=t);return n}},function(e,t,n){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,n){"use strict";var o,r,a,i=n(5),c=n(4),l=n(32),u=n(48),d=n(127),s=n(88),p=n(146),m=i.location,f=i.setImmediate,h=i.clearImmediate,C=i.process,g=i.MessageChannel,b=i.Dispatch,v=0,N={},V=function(e){if(N.hasOwnProperty(e)){var t=N[e];delete N[e],t()}},y=function(e){return function(){V(e)}},_=function(e){V(e.data)},x=function(e){i.postMessage(e+"",m.protocol+"//"+m.host)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return N[++v]=function(){("function"==typeof e?e:Function(e)).apply(undefined,t)},o(v),v},h=function(e){delete N[e]},"process"==l(C)?o=function(e){C.nextTick(y(e))}:b&&b.now?o=function(e){b.now(y(e))}:g&&!p?(a=(r=new g).port2,r.port1.onmessage=_,o=u(a.postMessage,a,1)):!i.addEventListener||"function"!=typeof postMessage||i.importScripts||c(x)?o="onreadystatechange"in s("script")?function(e){d.appendChild(s("script")).onreadystatechange=function(){d.removeChild(this),V(e)}}:function(e){setTimeout(y(e),0)}:(o=x,i.addEventListener("message",_,!1))),e.exports={set:f,clear:h}},function(e,t,n){"use strict";var o=n(6),r=n(32),a=n(11)("match");e.exports=function(e){var t;return o(e)&&((t=e[a])!==undefined?!!t:"RegExp"==r(e))}},function(e,t,n){"use strict";var o=n(30),r=n(21),a=function(e){return function(t,n){var a,i,c=String(r(t)),l=o(n),u=c.length;return l<0||l>=u?e?"":undefined:(a=c.charCodeAt(l))<55296||a>56319||l+1===u||(i=c.charCodeAt(l+1))<56320||i>57343?e?c.charAt(l):a:e?c.slice(l,l+2):i-56320+(a-55296<<10)+65536}};e.exports={codeAt:a(!1),charAt:a(!0)}},function(e,t,n){"use strict";var o=n(107);e.exports=function(e){if(o(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){"use strict";var o=n(11)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[o]=!1,"/./"[e](t)}catch(r){}}return!1}},function(e,t,n){"use strict";var o=n(108).charAt;e.exports=function(e,t,n){return t+(n?o(e,t).length:1)}},function(e,t,n){"use strict";var o=n(4),r=n(81);e.exports=function(e){return o((function(){return!!r[e]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[e]()||r[e].name!==e}))}},function(e,t,n){"use strict";var o=n(5),r=n(4),a=n(75),i=n(7).NATIVE_ARRAY_BUFFER_VIEWS,c=o.ArrayBuffer,l=o.Int8Array;e.exports=!i||!r((function(){l(1)}))||!r((function(){new l(-1)}))||!a((function(e){new l,new l(null),new l(1.5),new l(e)}),!0)||r((function(){return 1!==new l(new c(2),1,undefined).length}))},function(e,t,n){"use strict";t.__esModule=!0,t.ButtonInput=t.ButtonConfirm=t.ButtonCheckbox=t.Button=void 0;var o=n(1),r=n(12),a=n(19),i=n(115),c=n(51),l=n(116),u=n(17),d=n(87),s=n(159);n(160),n(161);function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function m(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var f=(0,c.createLogger)("Button"),h=function(e){var t=e.className,n=e.fluid,c=e.icon,p=e.color,h=e.disabled,C=e.selected,g=e.tooltip,b=e.tooltipPosition,v=e.ellipsis,N=e.content,V=e.iconRotation,y=e.iconSpin,_=e.children,x=e.onclick,k=e.onClick,L=m(e,["className","fluid","icon","color","disabled","selected","tooltip","tooltipPosition","ellipsis","content","iconRotation","iconSpin","children","onclick","onClick"]),w=!(!N&&!_);return x&&f.warn("Lowercase 'onclick' is not supported on Button and lowercase prop names are discouraged in general. Please use a camelCase'onClick' instead and read: https://infernojs.org/docs/guides/event-handling"),(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Box,Object.assign({as:"span",className:(0,r.classes)(["Button",n&&"Button--fluid",h&&"Button--disabled",C&&"Button--selected",w&&"Button--hasContent",v&&"Button--ellipsis",p&&"string"==typeof p?"Button--color--"+p:"Button--color--default",t]),tabIndex:!h&&"0",unselectable:a.tridentVersion<=4,onclick:function(e){(0,l.refocusLayout)(),!h&&k&&k(e)},onKeyDown:function(e){var t=window.event?e.which:e.keyCode;return t===i.KEY_SPACE||t===i.KEY_ENTER?(e.preventDefault(),void(!h&&k&&k(e))):t===i.KEY_ESCAPE?(e.preventDefault(),void(0,l.refocusLayout)()):void 0}},L,{children:[c&&(0,o.createComponentVNode)(2,d.Icon,{name:c,rotation:V,spin:y}),N,_,g&&(0,o.createComponentVNode)(2,s.Tooltip,{content:g,position:b})]})))};t.Button=h,h.defaultHooks=r.pureComponentHooks;var C=function(e){var t=e.checked,n=m(e,["checked"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({color:"transparent",icon:t?"check-square-o":"square-o",selected:t},n)))};t.ButtonCheckbox=C,h.Checkbox=C;var g=function(e){function t(){var t;return(t=e.call(this)||this).state={clickedOnce:!1},t.handleClick=function(){t.state.clickedOnce&&t.setClickedOnce(!1)},t}p(t,e);var n=t.prototype;return n.setClickedOnce=function(e){var t=this;this.setState({clickedOnce:e}),e?setTimeout((function(){return window.addEventListener("click",t.handleClick)})):window.removeEventListener("click",this.handleClick)},n.render=function(){var e=this,t=this.props,n=t.confirmMessage,r=void 0===n?"Confirm?":n,a=t.confirmColor,i=void 0===a?"bad":a,c=t.color,l=t.content,u=t.onClick,d=m(t,["confirmMessage","confirmColor","color","content","onClick"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({content:this.state.clickedOnce?r:l,color:this.state.clickedOnce?i:c,onClick:function(){return e.state.clickedOnce?u():e.setClickedOnce(!0)}},d)))},t}(o.Component);t.ButtonConfirm=g,h.Confirm=g;var b=function(e){function t(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={inInput:!1},t}p(t,e);var n=t.prototype;return n.setInInput=function(e){if(this.setState({inInput:e}),this.inputRef){var t=this.inputRef.current;if(e){t.value=this.props.currentValue||"";try{t.focus(),t.select()}catch(n){}}}},n.commitResult=function(e){if(this.inputRef){var t=this.inputRef.current;if(""!==t.value)return void this.props.onCommit(e,t.value);if(!this.props.defaultValue)return;this.props.onCommit(e,this.props.defaultValue)}},n.render=function(){var e=this,t=this.props,n=t.fluid,a=t.content,c=t.color,l=void 0===c?"default":c,d=(t.placeholder,t.maxLength,m(t,["fluid","content","color","placeholder","maxLength"]));return(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Box,Object.assign({className:(0,r.classes)(["Button",n&&"Button--fluid","Button--color--"+l])},d,{onClick:function(){return e.setInInput(!0)},children:[(0,o.createVNode)(1,"div",null,a,0),(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?undefined:"none","text-align":"left"},onBlur:function(t){e.state.inInput&&(e.setInInput(!1),e.commitResult(t))},onKeyDown:function(t){if(t.keyCode===i.KEY_ENTER)return e.setInInput(!1),void e.commitResult(t);t.keyCode===i.KEY_ESCAPE&&e.setInInput(!1)}},null,this.inputRef)]})))},t}(o.Component);t.ButtonInput=b,h.Input=b},function(e,t,n){"use strict";t.__esModule=!0,t.hotKeyReducer=t.hotKeyMiddleware=t.releaseHeldKeys=t.KEY_MINUS=t.KEY_EQUAL=t.KEY_Z=t.KEY_Y=t.KEY_X=t.KEY_W=t.KEY_V=t.KEY_U=t.KEY_T=t.KEY_S=t.KEY_R=t.KEY_Q=t.KEY_P=t.KEY_O=t.KEY_N=t.KEY_M=t.KEY_L=t.KEY_K=t.KEY_J=t.KEY_I=t.KEY_H=t.KEY_G=t.KEY_F=t.KEY_E=t.KEY_D=t.KEY_C=t.KEY_B=t.KEY_A=t.KEY_9=t.KEY_8=t.KEY_7=t.KEY_6=t.KEY_5=t.KEY_4=t.KEY_3=t.KEY_2=t.KEY_1=t.KEY_0=t.KEY_SPACE=t.KEY_ESCAPE=t.KEY_ALT=t.KEY_CTRL=t.KEY_SHIFT=t.KEY_ENTER=t.KEY_TAB=t.KEY_BACKSPACE=void 0;var o=n(51),r=n(19),a=(0,o.createLogger)("hotkeys");t.KEY_BACKSPACE=8;t.KEY_TAB=9;t.KEY_ENTER=13;t.KEY_SHIFT=16;t.KEY_CTRL=17;t.KEY_ALT=18;t.KEY_ESCAPE=27;t.KEY_SPACE=32;t.KEY_0=48;t.KEY_1=49;t.KEY_2=50;t.KEY_3=51;t.KEY_4=52;t.KEY_5=53;t.KEY_6=54;t.KEY_7=55;t.KEY_8=56;t.KEY_9=57;t.KEY_A=65;t.KEY_B=66;t.KEY_C=67;t.KEY_D=68;t.KEY_E=69;t.KEY_F=70;t.KEY_G=71;t.KEY_H=72;t.KEY_I=73;t.KEY_J=74;t.KEY_K=75;t.KEY_L=76;t.KEY_M=77;t.KEY_N=78;t.KEY_O=79;t.KEY_P=80;t.KEY_Q=81;t.KEY_R=82;t.KEY_S=83;t.KEY_T=84;t.KEY_U=85;t.KEY_V=86;t.KEY_W=87;t.KEY_X=88;t.KEY_Y=89;t.KEY_Z=90;t.KEY_EQUAL=187;t.KEY_MINUS=189;var i=[17,18,16],c=[27,13,32,9,17,16],l={},u=function(e,t,n,o){var r="";return e&&(r+="Ctrl+"),t&&(r+="Alt+"),n&&(r+="Shift+"),r+=o>=48&&o<=90?String.fromCharCode(o):"["+o+"]"},d=function(e){var t=window.event?e.which:e.keyCode,n=e.ctrlKey,o=e.altKey,r=e.shiftKey;return{keyCode:t,ctrlKey:n,altKey:o,shiftKey:r,hasModifierKeys:n||o||r,keyString:u(n,o,r,t)}},s=function(){for(var e=0,t=Object.keys(l);e4&&function(e,t){if(!e.defaultPrevented){var n=e.target&&e.target.localName;if("input"!==n&&"textarea"!==n){var o=d(e),i=o.keyCode,u=o.ctrlKey,s=o.shiftKey;u||s||c.includes(i)||("keydown"!==t||l[i]?"keyup"===t&&l[i]&&(a.debug("passthrough",t,o),(0,r.callByond)("",{__keyup:i})):(a.debug("passthrough",t,o),(0,r.callByond)("",{__keydown:i})))}}}(e,t),function(e,t,n){if("keyup"===t){var o=d(e),r=o.ctrlKey,c=o.altKey,l=o.keyCode,u=o.hasModifierKeys,s=o.keyString;u&&!i.includes(l)&&(a.log(s),r&&c&&8===l&&setTimeout((function(){throw new Error("OOPSIE WOOPSIE!! UwU We made a fucky wucky!! A wittle fucko boingo! The code monkeys at our headquarters are working VEWY HAWD to fix this!")})),n({type:"hotKey",payload:o}))}}(e,t,n)},document.addEventListener("keydown",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keydown"),l[n]=!0})),document.addEventListener("keyup",(function(e){var n=window.event?e.which:e.keyCode;t(e,"keyup"),l[n]=!1})),r.tridentVersion>4&&function(e){var t;document.addEventListener("focusout",(function(){t=setTimeout(e)})),document.addEventListener("focusin",(function(){clearTimeout(t)})),window.addEventListener("beforeunload",e)}((function(){s()})),function(e){return function(t){return e(t)}}};t.hotKeyReducer=function(e,t){var n=t.type,o=t.payload;if("hotKey"===n){var r=o.ctrlKey,a=o.altKey,i=o.keyCode;return r&&a&&187===i?Object.assign({},e,{showKitchenSink:!e.showKitchenSink}):e}return e}},function(e,t,n){"use strict";t.__esModule=!0,t.refocusLayout=void 0;var o=n(19);t.refocusLayout=function(){if(!(o.tridentVersion<=4)){var e=document.getElementById("Layout__content");e&&e.focus()}}},function(e,t,n){"use strict";t.__esModule=!0,t.toastReducer=t.showToast=t.Toast=void 0;var o,r=n(1),a=n(12),i=function(e){var t=e.content,n=e.children;return(0,r.createVNode)(1,"div","Layout__toast",[t,n],0)};t.Toast=i,i.defaultHooks=a.pureComponentHooks;t.showToast=function(e,t){o&&clearTimeout(o),o=setTimeout((function(){o=undefined,e({type:"hideToast"})}),5e3),e({type:"showToast",payload:{text:t}})};t.toastReducer=function(e,t){var n=t.type,o=t.payload;if("showToast"===n){var r=o.text;return Object.assign({},e,{toastText:r})}return"hideToast"===n?Object.assign({},e,{toastText:null}):e}},function(e,t,n){"use strict";var o;o=function(){return this}();try{o=o||new Function("return this")()}catch(r){"object"==typeof window&&(o=window)}e.exports=o},function(e,t,n){"use strict";var o=n(9),r=n(4),a=n(88);e.exports=!o&&!r((function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(5),r=n(89),a=o["__core-js_shared__"]||r("__core-js_shared__",{});e.exports=a},function(e,t,n){"use strict";var o=n(5),r=n(90),a=o.WeakMap;e.exports="function"==typeof a&&/native code/.test(r(a))},function(e,t,n){"use strict";var o=n(15),r=n(92),a=n(18),i=n(13);e.exports=function(e,t){for(var n=r(t),c=i.f,l=a.f,u=0;ul;)o(c,n=t[l++])&&(~a(u,n)||u.push(n));return u}},function(e,t,n){"use strict";var o=n(95);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol()},function(e,t,n){"use strict";var o=n(9),r=n(13),a=n(8),i=n(62);e.exports=o?Object.defineProperties:function(e,t){a(e);for(var n,o=i(t),c=o.length,l=0;c>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){"use strict";var o=n(35);e.exports=o("document","documentElement")},function(e,t,n){"use strict";var o=n(24),r=n(47).f,a={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],c=function(e){try{return r(e)}catch(t){return i.slice()}};e.exports.f=function(e){return i&&"[object Window]"==a.call(e)?c(e):r(o(e))}},function(e,t,n){"use strict";var o=n(11);t.f=o},function(e,t,n){"use strict";var o=n(14),r=n(41),a=n(10),i=Math.min;e.exports=[].copyWithin||function(e,t){var n=o(this),c=a(n.length),l=r(e,c),u=r(t,c),d=arguments.length>2?arguments[2]:undefined,s=i((d===undefined?c:r(d,c))-u,c-l),p=1;for(u0;)u in n?n[l]=n[u]:delete n[l],l+=p,u+=p;return n}},function(e,t,n){"use strict";var o=n(52),r=n(10),a=n(48);e.exports=function i(e,t,n,c,l,u,d,s){for(var p,m=l,f=0,h=!!d&&a(d,s,3);f0&&o(p))m=i(e,t,p,r(p.length),m,u-1)-1;else{if(m>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[m]=p}m++}f++}return m}},function(e,t,n){"use strict";var o=n(8);e.exports=function(e,t,n,r){try{return r?t(o(n)[0],n[1]):t(n)}catch(i){var a=e["return"];throw a!==undefined&&o(a.call(e)),i}}},function(e,t,n){"use strict";var o=n(24),r=n(44),a=n(65),i=n(34),c=n(101),l=i.set,u=i.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:o(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,n=e.kind,o=e.index++;return!t||o>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:o,done:!1}:"values"==n?{value:t[o],done:!1}:{value:[o,t[o]],done:!1}}),"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var o,r,a,i=n(36),c=n(25),l=n(15),u=n(11),d=n(38),s=u("iterator"),p=!1;[].keys&&("next"in(a=[].keys())?(r=i(i(a)))!==Object.prototype&&(o=r):p=!0),o==undefined&&(o={}),d||l(o,s)||c(o,s,(function(){return this})),e.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:p}},function(e,t,n){"use strict";var o=n(6);e.exports=function(e){if(!o(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var o=n(24),r=n(30),a=n(10),i=n(39),c=Math.min,l=[].lastIndexOf,u=!!l&&1/[1].lastIndexOf(1,-0)<0,d=i("lastIndexOf");e.exports=u||d?function(e){if(u)return l.apply(this,arguments)||0;var t=o(this),n=a(t.length),i=n-1;for(arguments.length>1&&(i=c(i,r(arguments[1]))),i<0&&(i=n+i);i>=0;i--)if(i in t&&t[i]===e)return i||0;return-1}:l},function(e,t,n){"use strict";var o=n(30),r=n(10);e.exports=function(e){if(e===undefined)return 0;var t=o(e),n=r(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var o=n(31),r=n(6),a=[].slice,i={},c=function(e,t,n){if(!(t in i)){for(var o=[],r=0;r1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(o(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),a(d.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return C(this,0===e?0:e,t)}}:{add:function(e){return C(this,e=0===e?0:e,e)}}),s&&o(d.prototype,"size",{get:function(){return m(this).size}}),d},setStrong:function(e,t,n){var o=t+" Iterator",r=h(t),a=h(o);u(e,t,(function(e,t){f(this,{type:o,target:e,state:r(e),kind:t,last:undefined})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),d(t)}}},function(e,t,n){"use strict";var o=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:o(1+e)}},function(e,t,n){"use strict";var o=n(6),r=Math.floor;e.exports=function(e){return!o(e)&&isFinite(e)&&r(e)===e}},function(e,t,n){"use strict";var o=n(5),r=n(56).trim,a=n(81),i=o.parseInt,c=/^[+-]?0[Xx]/,l=8!==i(a+"08")||22!==i(a+"0x16");e.exports=l?function(e,t){var n=r(String(e));return i(n,t>>>0||(c.test(n)?16:10))}:i},function(e,t,n){"use strict";var o=n(9),r=n(62),a=n(24),i=n(71).f,c=function(e){return function(t){for(var n,c=a(t),l=r(c),u=l.length,d=0,s=[];u>d;)n=l[d++],o&&!i.call(c,n)||s.push(e?[n,c[n]]:c[n]);return s}};e.exports={entries:c(!0),values:c(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var o=n(5);e.exports=o.Promise},function(e,t,n){"use strict";var o=n(73);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(o)},function(e,t,n){"use strict";var o,r,a,i,c,l,u,d,s=n(5),p=n(18).f,m=n(32),f=n(106).set,h=n(146),C=s.MutationObserver||s.WebKitMutationObserver,g=s.process,b=s.Promise,v="process"==m(g),N=p(s,"queueMicrotask"),V=N&&N.value;V||(o=function(){var e,t;for(v&&(e=g.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(n){throw r?i():a=undefined,n}}a=undefined,e&&e.enter()},v?i=function(){g.nextTick(o)}:C&&!h?(c=!0,l=document.createTextNode(""),new C(o).observe(l,{characterData:!0}),i=function(){l.data=c=!c}):b&&b.resolve?(u=b.resolve(undefined),d=u.then,i=function(){d.call(u,o)}):i=function(){f.call(s,o)}),e.exports=V||function(e){var t={fn:e,next:undefined};a&&(a.next=t),r||(r=t,i()),a=t}},function(e,t,n){"use strict";var o=n(8),r=n(6),a=n(149);e.exports=function(e,t){if(o(e),r(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var o=n(31),r=function(e){var t,n;this.promise=new e((function(e,o){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)};e.exports.f=function(e){return new r(e)}},function(e,t,n){"use strict";var o=n(73);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o)},function(e,t,n){"use strict";var o=n(347);e.exports=function(e,t){var n=o(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var o=n(14),r=n(10),a=n(99),i=n(98),c=n(48),l=n(7).aTypedArrayConstructor;e.exports=function(e){var t,n,u,d,s,p,m=o(e),f=arguments.length,h=f>1?arguments[1]:undefined,C=h!==undefined,g=a(m);if(g!=undefined&&!i(g))for(p=(s=g.call(m)).next,m=[];!(d=p.call(s)).done;)m.push(d.value);for(C&&f>2&&(h=c(h,arguments[2],2)),n=r(m.length),u=new(l(this))(n),t=0;n>t;t++)u[t]=C?h(m[t],t):m[t];return u}},function(e,t,n){"use strict";var o=n(66),r=n(50).getWeakData,a=n(8),i=n(6),c=n(55),l=n(68),u=n(16),d=n(15),s=n(34),p=s.set,m=s.getterFor,f=u.find,h=u.findIndex,C=0,g=function(e){return e.frozen||(e.frozen=new b)},b=function(){this.entries=[]},v=function(e,t){return f(e.entries,(function(e){return e[0]===t}))};b.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var n=v(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=h(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,u){var s=e((function(e,o){c(e,s,t),p(e,{type:t,id:C++,frozen:undefined}),o!=undefined&&l(o,e[u],e,n)})),f=m(t),h=function(e,t,n){var o=f(e),i=r(a(t),!0);return!0===i?g(o).set(t,n):i[o.id]=n,e};return o(s.prototype,{"delete":function(e){var t=f(this);if(!i(e))return!1;var n=r(e);return!0===n?g(t)["delete"](e):n&&d(n,t.id)&&delete n[t.id]},has:function(e){var t=f(this);if(!i(e))return!1;var n=r(e);return!0===n?g(t).has(e):n&&d(n,t.id)}}),o(s.prototype,n?{get:function(e){var t=f(this);if(i(e)){var n=r(e);return!0===n?g(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return h(this,e,t)}}:{add:function(e){return h(this,e,!0)}}),s}}},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=void 0;t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";t.__esModule=!0,t.resizeStartHandler=t.dragStartHandler=t.setupDrag=void 0;var o,r,a,i,c,l=n(156),u=n(19),d=(0,n(51).createLogger)("drag"),s=!1,p=!1,m=[0,0],f=function(e){return(0,u.winget)(e,"pos").then((function(e){return[e.x,e.y]}))},h=function(e,t){return(0,u.winset)(e,"pos",t[0]+","+t[1])},C=function(e){var t,n,r,a;return regeneratorRuntime.async((function(i){for(;;)switch(i.prev=i.next){case 0:return d.log("setting up"),o=e.config.window,i.next=4,regeneratorRuntime.awrap(f(o));case 4:t=i.sent,m=[t[0]-window.screenLeft,t[1]-window.screenTop],n=g(t),r=n[0],a=n[1],r&&h(o,a),d.debug("current state",{ref:o,screenOffset:m});case 9:case"end":return i.stop()}}))};t.setupDrag=C;var g=function(e){var t=e[0],n=e[1],o=!1;return t<0?(t=0,o=!0):t+window.innerWidth>window.screen.availWidth&&(t=window.screen.availWidth-window.innerWidth,o=!0),n<0?(n=0,o=!0):n+window.innerHeight>window.screen.availHeight&&(n=window.screen.availHeight-window.innerHeight,o=!0),[o,[t,n]]};t.dragStartHandler=function(e){d.log("drag start"),s=!0,r=[window.screenLeft-e.screenX,window.screenTop-e.screenY],document.addEventListener("mousemove",v),document.addEventListener("mouseup",b),v(e)};var b=function y(e){d.log("drag end"),v(e),document.removeEventListener("mousemove",v),document.removeEventListener("mouseup",y),s=!1},v=function(e){s&&(e.preventDefault(),h(o,(0,l.vecAdd)([e.screenX,e.screenY],m,r)))};t.resizeStartHandler=function(e,t){return function(n){a=[e,t],d.log("resize start",a),p=!0,r=[window.screenLeft-n.screenX,window.screenTop-n.screenY],i=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",V),document.addEventListener("mouseup",N),V(n)}};var N=function _(e){d.log("resize end",c),V(e),document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",_),p=!1},V=function(e){p&&(e.preventDefault(),(c=(0,l.vecAdd)(i,(0,l.vecMultiply)(a,(0,l.vecAdd)([e.screenX,e.screenY],(0,l.vecInverse)([window.screenLeft,window.screenTop]),r,[1,1]))))[0]=Math.max(c[0],250),c[1]=Math.max(c[1],120),function(e,t){(0,u.winset)(e,"size",t[0]+","+t[1])}(o,c))}},function(e,t,n){"use strict";t.__esModule=!0,t.vecNormalize=t.vecLength=t.vecInverse=t.vecScale=t.vecDivide=t.vecMultiply=t.vecSubtract=t.vecAdd=t.vecCreate=void 0;var o=n(23);t.vecCreate=function(){for(var e=arguments.length,t=new Array(e),n=0;n35;return(0,o.createVNode)(1,"div",(0,r.classes)(["Tooltip",i&&"Tooltip--long",a&&"Tooltip--"+a]),null,1,{"data-tooltip":t})}},function(e,t,n){"use strict";t.__esModule=!0,t.Input=void 0;var o=n(1),r=n(12),a=n(17);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){return(0,r.isFalsy)(e)?"":e},l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).inputRef=(0,o.createRef)(),t.state={editing:!1},t.handleInput=function(e){var n=t.state.editing,o=t.props.onInput;n||t.setEditing(!0),o&&o(e,e.target.value)},t.handleFocus=function(e){t.state.editing||t.setEditing(!0)},t.handleBlur=function(e){var n=t.state.editing,o=t.props.onChange;n&&(t.setEditing(!1),o&&o(e,e.target.value))},t.handleKeyDown=function(e){var n=t.props,o=n.onInput,r=n.onChange,a=n.onEnter;return 13===e.keyCode?(t.setEditing(!1),r&&r(e,e.target.value),o&&o(e,e.target.value),a&&a(e,e.target.value),void(t.props.selfClear?e.target.value="":e.target.blur())):27===e.keyCode?(t.setEditing(!1),e.target.value=c(t.props.value),void e.target.blur()):void 0},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentDidMount=function(){var e=this.props.value,t=this.inputRef.current;t&&(t.value=c(e))},u.componentDidUpdate=function(e,t){var n=this.state.editing,o=e.value,r=this.props.value,a=this.inputRef.current;a&&!n&&o!==r&&(a.value=c(r))},u.setEditing=function(e){this.setState({editing:e})},u.render=function(){var e=this.props,t=(e.selfClear,e.onInput,e.onChange,e.onEnter,e.value,e.maxLength),n=e.placeholder,c=i(e,["selfClear","onInput","onChange","onEnter","value","maxLength","placeholder"]),l=c.className,u=c.fluid,d=i(c,["className","fluid"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Input",u&&"Input--fluid",l])},d,{children:[(0,o.createVNode)(1,"div","Input__baseline",".",16),(0,o.createVNode)(64,"input","Input__input",null,1,{placeholder:n,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:t},null,this.inputRef)]})))},l}(o.Component);t.Input=l},function(e,t,n){"use strict";t.__esModule=!0,t.GridColumn=t.Grid=void 0;var o=n(1),r=n(162),a=n(12);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.children,n=i(e,["children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table,Object.assign({},n,{children:(0,o.createComponentVNode)(2,r.Table.Row,{children:t})})))};t.Grid=c,c.defaultHooks=a.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t,a=e.style,c=i(e,["size","style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Table.Cell,Object.assign({style:Object.assign({width:n+"%"},a)},c)))};t.GridColumn=l,c.defaultHooks=a.pureComponentHooks,c.Column=l},function(e,t,n){"use strict";t.__esModule=!0,t.TableCell=t.TableRow=t.Table=void 0;var o=n(1),r=n(12),a=n(17);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.collapsing,n=e.className,c=e.content,l=e.children,u=i(e,["collapsing","className","content","children"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"table",className:(0,r.classes)(["Table",t&&"Table--collapsing",n])},u,{children:(0,o.createVNode)(1,"tbody",null,[c,l],0)})))};t.Table=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.className,n=e.header,c=i(e,["className","header"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"tr",className:(0,r.classes)(["Table__row",n&&"Table__row--header",t])},c)))};t.TableRow=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.collapsing,c=e.header,l=i(e,["className","collapsing","header"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({as:"td",className:(0,r.classes)(["Table__cell",n&&"Table__cell--collapsing",c&&"Table__cell--header",t])},l)))};t.TableCell=u,u.defaultHooks=r.pureComponentHooks,c.Row=l,c.Cell=u},function(e,t,n){"use strict";t.__esModule=!0,t.LabeledListDivider=t.LabeledListItem=t.LabeledList=void 0;var o=n(1),r=n(12),a=n(17),i=function(e){var t=e.children;return(0,o.createVNode)(1,"table","LabeledList",t,0)};t.LabeledList=i,i.defaultHooks=r.pureComponentHooks;var c=function(e){var t=e.className,n=e.label,i=e.labelColor,c=void 0===i?"label":i,l=e.color,u=e.buttons,d=e.content,s=e.children;return(0,o.createVNode)(1,"tr",(0,r.classes)(["LabeledList__row",t]),[(0,o.createComponentVNode)(2,a.Box,{as:"td",color:c,className:(0,r.classes)(["LabeledList__cell","LabeledList__label"]),content:n+":"}),(0,o.createComponentVNode)(2,a.Box,{as:"td",color:l,className:(0,r.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:u?undefined:2,children:[d,s]}),u&&(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",u,0)],0)};t.LabeledListItem=c,c.defaultHooks=r.pureComponentHooks;var l=function(e){var t=e.size,n=void 0===t?1:t;return(0,o.createVNode)(1,"tr","LabeledList__row",(0,o.createVNode)(1,"td",null,null,1,{style:{"padding-bottom":(0,a.unit)(n)}}),2)};t.LabeledListDivider=l,l.defaultHooks=r.pureComponentHooks,i.Item=c,i.Divider=l},function(e,t,n){n(165),n(166),n(167),n(168),n(169),n(170),e.exports=n(171)},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n(172),n(173),n(174),n(175),n(176),n(177),n(178),n(179),n(180),n(181),n(182),n(183),n(184),n(185),n(186),n(187),n(188),n(189),n(190),n(191),n(192),n(193),n(194),n(195),n(197),n(199),n(200),n(201),n(133),n(203),n(204),n(205),n(206),n(207),n(208),n(209),n(210),n(211),n(212),n(213),n(214),n(215),n(216),n(218),n(219),n(220),n(221),n(222),n(224),n(225),n(227),n(228),n(229),n(230),n(231),n(232),n(233),n(234),n(235),n(236),n(237),n(238),n(239),n(240),n(242),n(243),n(244),n(245),n(246),n(247),n(248),n(249),n(250),n(251),n(252),n(253),n(254),n(256),n(257),n(258),n(259),n(260),n(261),n(263),n(264),n(266),n(268),n(269),n(270),n(271),n(272),n(273),n(274),n(275),n(276),n(277),n(278),n(279),n(280),n(281),n(282),n(283),n(284),n(285),n(286),n(287),n(288),n(289),n(290),n(292),n(293),n(294),n(297),n(298),n(299),n(300),n(301),n(302),n(303),n(304),n(305),n(306),n(307),n(308),n(309),n(310),n(311),n(312),n(313),n(314),n(315),n(316),n(317),n(318),n(319),n(320),n(321),n(322),n(323),n(324),n(325),n(326),n(327),n(328),n(329),n(330),n(331),n(332),n(333),n(334),n(335),n(336),n(337),n(338),n(339),n(340),n(341),n(342),n(343),n(344),n(345),n(346),n(348),n(349),n(350),n(351),n(352),n(353),n(354),n(355),n(356),n(357),n(358),n(359),n(360),n(361),n(362),n(363),n(364),n(365),n(366),n(367),n(368),n(369),n(370),n(371),n(372),n(373),n(374),n(375),n(376),n(377),n(378),n(379),n(380),n(381),n(382),n(383),n(384),n(385);var o=n(1);n(387),n(388);var r=n(389),a=(n(154),n(3)),i=n(19),c=n(155),l=n(51),u=n(157),d=n(502),s=(0,l.createLogger)(),p=(0,d.createStore)(),m=document.getElementById("react-root"),f=!0,h=!1,C=function(){for(p.subscribe((function(){!function(){if(!h){0;try{var e=p.getState();if(f){if(s.log("initial render",e),!(0,u.getRoute)(e)){if(s.info("loading old tgui"),h=!0,window.update=window.initialize=function(){},i.tridentVersion<=4)return void setTimeout((function(){location.href="tgui-fallback.html?ref="+window.__ref__}),10);document.getElementById("data").textContent=JSON.stringify(e),(0,r.loadCSS)("v4shim.css"),(0,r.loadCSS)("tgui.css");var t=document.getElementsByTagName("head")[0],a=document.createElement("script");return a.type="text/javascript",a.src="tgui.js",void t.appendChild(a)}(0,c.setupDrag)(e)}var l=n(504).Layout,d=(0,o.createComponentVNode)(2,l,{state:e,dispatch:p.dispatch});(0,o.render)(d,m)}catch(C){s.error("rendering error",C)}f&&(f=!1)}}()})),window.update=window.initialize=function(e){var t=function(e){var t=function(e,t){return"object"==typeof t&&null!==t&&t.__number__?parseFloat(t.__number__):t};i.tridentVersion<=4&&(t=undefined);try{return JSON.parse(e,t)}catch(o){s.log(o),s.log("What we got:",e);var n=o&&o.message;throw new Error("JSON parsing error: "+n)}}(e);p.dispatch((0,a.backendUpdate)(t))};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}(0,r.loadCSS)("font-awesome.css")};i.tridentVersion<=4&&"loading"===document.readyState?document.addEventListener("DOMContentLoaded",C):C()},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(35),i=n(38),c=n(9),l=n(95),u=n(125),d=n(4),s=n(15),p=n(52),m=n(6),f=n(8),h=n(14),C=n(24),g=n(33),b=n(46),v=n(42),N=n(62),V=n(47),y=n(128),_=n(94),x=n(18),k=n(13),L=n(71),w=n(25),B=n(22),S=n(91),I=n(72),T=n(59),A=n(58),E=n(11),P=n(129),M=n(26),O=n(43),R=n(34),F=n(16).forEach,D=I("hidden"),j=E("toPrimitive"),z=R.set,H=R.getterFor("Symbol"),G=Object.prototype,U=r.Symbol,K=a("JSON","stringify"),Y=x.f,q=k.f,W=y.f,$=L.f,Q=S("symbols"),X=S("op-symbols"),J=S("string-to-symbol-registry"),Z=S("symbol-to-string-registry"),ee=S("wks"),te=r.QObject,ne=!te||!te.prototype||!te.prototype.findChild,oe=c&&d((function(){return 7!=v(q({},"a",{get:function(){return q(this,"a",{value:7}).a}})).a}))?function(e,t,n){var o=Y(G,t);o&&delete G[t],q(e,t,n),o&&e!==G&&q(G,t,o)}:q,re=function(e,t){var n=Q[e]=v(U.prototype);return z(n,{type:"Symbol",tag:e,description:t}),c||(n.description=t),n},ae=l&&"symbol"==typeof U.iterator?function(e){return"symbol"==typeof e}:function(e){return Object(e)instanceof U},ie=function(e,t,n){e===G&&ie(X,t,n),f(e);var o=g(t,!0);return f(n),s(Q,o)?(n.enumerable?(s(e,D)&&e[D][o]&&(e[D][o]=!1),n=v(n,{enumerable:b(0,!1)})):(s(e,D)||q(e,D,b(1,{})),e[D][o]=!0),oe(e,o,n)):q(e,o,n)},ce=function(e,t){f(e);var n=C(t),o=N(n).concat(pe(n));return F(o,(function(t){c&&!ue.call(n,t)||ie(e,t,n[t])})),e},le=function(e,t){return t===undefined?v(e):ce(v(e),t)},ue=function(e){var t=g(e,!0),n=$.call(this,t);return!(this===G&&s(Q,t)&&!s(X,t))&&(!(n||!s(this,t)||!s(Q,t)||s(this,D)&&this[D][t])||n)},de=function(e,t){var n=C(e),o=g(t,!0);if(n!==G||!s(Q,o)||s(X,o)){var r=Y(n,o);return!r||!s(Q,o)||s(n,D)&&n[D][o]||(r.enumerable=!0),r}},se=function(e){var t=W(C(e)),n=[];return F(t,(function(e){s(Q,e)||s(T,e)||n.push(e)})),n},pe=function(e){var t=e===G,n=W(t?X:C(e)),o=[];return F(n,(function(e){!s(Q,e)||t&&!s(G,e)||o.push(Q[e])})),o};(l||(B((U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor");var e=arguments.length&&arguments[0]!==undefined?String(arguments[0]):undefined,t=A(e),n=function o(e){this===G&&o.call(X,e),s(this,D)&&s(this[D],t)&&(this[D][t]=!1),oe(this,t,b(1,e))};return c&&ne&&oe(G,t,{configurable:!0,set:n}),re(t,e)}).prototype,"toString",(function(){return H(this).tag})),L.f=ue,k.f=ie,x.f=de,V.f=y.f=se,_.f=pe,c&&(q(U.prototype,"description",{configurable:!0,get:function(){return H(this).description}}),i||B(G,"propertyIsEnumerable",ue,{unsafe:!0}))),u||(P.f=function(e){return re(E(e),e)}),o({global:!0,wrap:!0,forced:!l,sham:!l},{Symbol:U}),F(N(ee),(function(e){M(e)})),o({target:"Symbol",stat:!0,forced:!l},{"for":function(e){var t=String(e);if(s(J,t))return J[t];var n=U(t);return J[t]=n,Z[n]=t,n},keyFor:function(e){if(!ae(e))throw TypeError(e+" is not a symbol");if(s(Z,e))return Z[e]},useSetter:function(){ne=!0},useSimple:function(){ne=!1}}),o({target:"Object",stat:!0,forced:!l,sham:!c},{create:le,defineProperty:ie,defineProperties:ce,getOwnPropertyDescriptor:de}),o({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:se,getOwnPropertySymbols:pe}),o({target:"Object",stat:!0,forced:d((function(){_.f(1)}))},{getOwnPropertySymbols:function(e){return _.f(h(e))}}),K)&&o({target:"JSON",stat:!0,forced:!l||d((function(){var e=U();return"[null]"!=K([e])||"{}"!=K({a:e})||"{}"!=K(Object(e))}))},{stringify:function(e,t,n){for(var o,r=[e],a=1;arguments.length>a;)r.push(arguments[a++]);if(o=t,(m(t)||e!==undefined)&&!ae(e))return p(t)||(t=function(e,t){if("function"==typeof o&&(t=o.call(this,e,t)),!ae(t))return t}),r[1]=t,K.apply(null,r)}});U.prototype[j]||w(U.prototype,j,U.prototype.valueOf),O(U,"Symbol"),T[D]=!0},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(5),i=n(15),c=n(6),l=n(13).f,u=n(122),d=a.Symbol;if(r&&"function"==typeof d&&(!("description"in d.prototype)||d().description!==undefined)){var s={},p=function(){var e=arguments.length<1||arguments[0]===undefined?undefined:String(arguments[0]),t=this instanceof p?new d(e):e===undefined?d():d(e);return""===e&&(s[t]=!0),t};u(p,d);var m=p.prototype=d.prototype;m.constructor=p;var f=m.toString,h="Symbol(test)"==String(d("test")),C=/^Symbol\((.*)\)[^)]+$/;l(m,"description",{configurable:!0,get:function(){var e=c(this)?this.valueOf():this,t=f.call(e);if(i(s,e))return"";var n=h?t.slice(7,-1):t.replace(C,"$1");return""===n?undefined:n}}),o({global:!0,forced:!0},{Symbol:p})}},function(e,t,n){"use strict";n(26)("asyncIterator")},function(e,t,n){"use strict";n(26)("hasInstance")},function(e,t,n){"use strict";n(26)("isConcatSpreadable")},function(e,t,n){"use strict";n(26)("iterator")},function(e,t,n){"use strict";n(26)("match")},function(e,t,n){"use strict";n(26)("replace")},function(e,t,n){"use strict";n(26)("search")},function(e,t,n){"use strict";n(26)("species")},function(e,t,n){"use strict";n(26)("split")},function(e,t,n){"use strict";n(26)("toPrimitive")},function(e,t,n){"use strict";n(26)("toStringTag")},function(e,t,n){"use strict";n(26)("unscopables")},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(52),i=n(6),c=n(14),l=n(10),u=n(49),d=n(63),s=n(64),p=n(11),m=n(96),f=p("isConcatSpreadable"),h=9007199254740991,C="Maximum allowed index exceeded",g=m>=51||!r((function(){var e=[];return e[f]=!1,e.concat()[0]!==e})),b=s("concat"),v=function(e){if(!i(e))return!1;var t=e[f];return t!==undefined?!!t:a(e)};o({target:"Array",proto:!0,forced:!g||!b},{concat:function(e){var t,n,o,r,a,i=c(this),s=d(i,0),p=0;for(t=-1,o=arguments.length;th)throw TypeError(C);for(n=0;n=h)throw TypeError(C);u(s,p++,a)}return s.length=p,s}})},function(e,t,n){"use strict";var o=n(0),r=n(130),a=n(44);o({target:"Array",proto:!0},{copyWithin:r}),a("copyWithin")},function(e,t,n){"use strict";var o=n(0),r=n(16).every;o({target:"Array",proto:!0,forced:n(39)("every")},{every:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(97),a=n(44);o({target:"Array",proto:!0},{fill:r}),a("fill")},function(e,t,n){"use strict";var o=n(0),r=n(16).filter,a=n(4),i=n(64)("filter"),c=i&&!a((function(){[].filter.call({length:-1,0:1},(function(e){throw e}))}));o({target:"Array",proto:!0,forced:!i||!c},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(16).find,a=n(44),i=!0;"find"in[]&&Array(1).find((function(){i=!1})),o({target:"Array",proto:!0,forced:i},{find:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("find")},function(e,t,n){"use strict";var o=n(0),r=n(16).findIndex,a=n(44),i=!0;"findIndex"in[]&&Array(1).findIndex((function(){i=!1})),o({target:"Array",proto:!0,forced:i},{findIndex:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("findIndex")},function(e,t,n){"use strict";var o=n(0),r=n(131),a=n(14),i=n(10),c=n(30),l=n(63);o({target:"Array",proto:!0},{flat:function(){var e=arguments.length?arguments[0]:undefined,t=a(this),n=i(t.length),o=l(t,0);return o.length=r(o,t,t,n,0,e===undefined?1:c(e)),o}})},function(e,t,n){"use strict";var o=n(0),r=n(131),a=n(14),i=n(10),c=n(31),l=n(63);o({target:"Array",proto:!0},{flatMap:function(e){var t,n=a(this),o=i(n.length);return c(e),(t=l(n,0)).length=r(t,n,n,o,0,1,e,arguments.length>1?arguments[1]:undefined),t}})},function(e,t,n){"use strict";var o=n(0),r=n(196);o({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},function(e,t,n){"use strict";var o=n(16).forEach,r=n(39);e.exports=r("forEach")?function(e){return o(this,e,arguments.length>1?arguments[1]:undefined)}:[].forEach},function(e,t,n){"use strict";var o=n(0),r=n(198);o({target:"Array",stat:!0,forced:!n(75)((function(e){Array.from(e)}))},{from:r})},function(e,t,n){"use strict";var o=n(48),r=n(14),a=n(132),i=n(98),c=n(10),l=n(49),u=n(99);e.exports=function(e){var t,n,d,s,p,m=r(e),f="function"==typeof this?this:Array,h=arguments.length,C=h>1?arguments[1]:undefined,g=C!==undefined,b=0,v=u(m);if(g&&(C=o(C,h>2?arguments[2]:undefined,2)),v==undefined||f==Array&&i(v))for(n=new f(t=c(m.length));t>b;b++)l(n,b,g?C(m[b],b):m[b]);else for(p=(s=v.call(m)).next,n=new f;!(d=p.call(s)).done;b++)l(n,b,g?a(s,C,[d.value,b],!0):d.value);return n.length=b,n}},function(e,t,n){"use strict";var o=n(0),r=n(60).includes,a=n(44);o({target:"Array",proto:!0},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}}),a("includes")},function(e,t,n){"use strict";var o=n(0),r=n(60).indexOf,a=n(39),i=[].indexOf,c=!!i&&1/[1].indexOf(1,-0)<0,l=a("indexOf");o({target:"Array",proto:!0,forced:c||l},{indexOf:function(e){return c?i.apply(this,arguments)||0:r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";n(0)({target:"Array",stat:!0},{isArray:n(52)})},function(e,t,n){"use strict";var o=n(134).IteratorPrototype,r=n(42),a=n(46),i=n(43),c=n(65),l=function(){return this};e.exports=function(e,t,n){var u=t+" Iterator";return e.prototype=r(o,{next:a(1,n)}),i(e,u,!1,!0),c[u]=l,e}},function(e,t,n){"use strict";var o=n(0),r=n(57),a=n(24),i=n(39),c=[].join,l=r!=Object,u=i("join",",");o({target:"Array",proto:!0,forced:l||u},{join:function(e){return c.call(a(this),e===undefined?",":e)}})},function(e,t,n){"use strict";var o=n(0),r=n(136);o({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},function(e,t,n){"use strict";var o=n(0),r=n(16).map,a=n(4),i=n(64)("map"),c=i&&!a((function(){[].map.call({length:-1,0:1},(function(e){throw e}))}));o({target:"Array",proto:!0,forced:!i||!c},{map:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(49);o({target:"Array",stat:!0,forced:r((function(){function e(){}return!(Array.of.call(e)instanceof e)}))},{of:function(){for(var e=0,t=arguments.length,n=new("function"==typeof this?this:Array)(t);t>e;)a(n,e,arguments[e++]);return n.length=t,n}})},function(e,t,n){"use strict";var o=n(0),r=n(76).left;o({target:"Array",proto:!0,forced:n(39)("reduce")},{reduce:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(76).right;o({target:"Array",proto:!0,forced:n(39)("reduceRight")},{reduceRight:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(52),i=n(41),c=n(10),l=n(24),u=n(49),d=n(64),s=n(11)("species"),p=[].slice,m=Math.max;o({target:"Array",proto:!0,forced:!d("slice")},{slice:function(e,t){var n,o,d,f=l(this),h=c(f.length),C=i(e,h),g=i(t===undefined?h:t,h);if(a(f)&&("function"!=typeof(n=f.constructor)||n!==Array&&!a(n.prototype)?r(n)&&null===(n=n[s])&&(n=undefined):n=undefined,n===Array||n===undefined))return p.call(f,C,g);for(o=new(n===undefined?Array:n)(m(g-C,0)),d=0;C1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(31),a=n(14),i=n(4),c=n(39),l=[],u=l.sort,d=i((function(){l.sort(undefined)})),s=i((function(){l.sort(null)})),p=c("sort");o({target:"Array",proto:!0,forced:d||!s||p},{sort:function(e){return e===undefined?u.call(a(this)):u.call(a(this),r(e))}})},function(e,t,n){"use strict";n(54)("Array")},function(e,t,n){"use strict";var o=n(0),r=n(41),a=n(30),i=n(10),c=n(14),l=n(63),u=n(49),d=n(64),s=Math.max,p=Math.min,m=9007199254740991,f="Maximum allowed length exceeded";o({target:"Array",proto:!0,forced:!d("splice")},{splice:function(e,t){var n,o,d,h,C,g,b=c(this),v=i(b.length),N=r(e,v),V=arguments.length;if(0===V?n=o=0:1===V?(n=0,o=v-N):(n=V-2,o=p(s(a(t),0),v-N)),v+n-o>m)throw TypeError(f);for(d=l(b,o),h=0;hv-o+n;h--)delete b[h-1]}else if(n>o)for(h=v-o;h>N;h--)g=h+n-1,(C=h+o-1)in b?b[g]=b[C]:delete b[g];for(h=0;h>1,h=23===t?r(2,-24)-r(2,-77):0,C=e<0||0===e&&1/e<0?1:0,g=0;for((e=o(e))!=e||e===1/0?(u=e!=e?1:0,l=m):(l=a(i(e)/c),e*(d=r(2,-l))<1&&(l--,d*=2),(e+=l+f>=1?h/d:h*r(2,1-f))*d>=2&&(l++,d/=2),l+f>=m?(u=0,l=m):l+f>=1?(u=(e*d-1)*r(2,t),l+=f):(u=e*r(2,f-1)*r(2,t),l=0));t>=8;s[g++]=255&u,u/=256,t-=8);for(l=l<0;s[g++]=255&l,l/=256,p-=8);return s[--g]|=128*C,s},unpack:function(e,t){var n,o=e.length,a=8*o-t-1,i=(1<>1,l=a-7,u=o-1,d=e[u--],s=127&d;for(d>>=7;l>0;s=256*s+e[u],u--,l-=8);for(n=s&(1<<-l)-1,s>>=-l,l+=t;l>0;n=256*n+e[u],u--,l-=8);if(0===s)s=1-c;else{if(s===i)return n?NaN:d?-1/0:1/0;n+=r(2,t),s-=c}return(d?-1:1)*n*r(2,s-t)}}},function(e,t,n){"use strict";var o=n(0),r=n(7);o({target:"ArrayBuffer",stat:!0,forced:!r.NATIVE_ARRAY_BUFFER_VIEWS},{isView:r.isView})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(77),i=n(8),c=n(41),l=n(10),u=n(45),d=a.ArrayBuffer,s=a.DataView,p=d.prototype.slice;o({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:r((function(){return!new d(2).slice(1,undefined).byteLength}))},{slice:function(e,t){if(p!==undefined&&t===undefined)return p.call(i(this),e);for(var n=i(this).byteLength,o=c(e,n),r=c(t===undefined?n:t,n),a=new(u(this,d))(l(r-o)),m=new s(this),f=new s(a),h=0;o9999?"+":"";return n+r(a(e),n?6:4,0)+"-"+r(this.getUTCMonth()+1,2,0)+"-"+r(this.getUTCDate(),2,0)+"T"+r(this.getUTCHours(),2,0)+":"+r(this.getUTCMinutes(),2,0)+":"+r(this.getUTCSeconds(),2,0)+"."+r(t,3,0)+"Z"}:l},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(14),i=n(33);o({target:"Date",proto:!0,forced:r((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(e){var t=a(this),n=i(t);return"number"!=typeof n||isFinite(n)?t.toISOString():null}})},function(e,t,n){"use strict";var o=n(25),r=n(226),a=n(11)("toPrimitive"),i=Date.prototype;a in i||o(i,a,r)},function(e,t,n){"use strict";var o=n(8),r=n(33);e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return r(o(this),"number"!==e)}},function(e,t,n){"use strict";var o=n(22),r=Date.prototype,a="Invalid Date",i=r.toString,c=r.getTime;new Date(NaN)+""!=a&&o(r,"toString",(function(){var e=c.call(this);return e==e?i.call(this):a}))},function(e,t,n){"use strict";n(0)({target:"Function",proto:!0},{bind:n(138)})},function(e,t,n){"use strict";var o=n(6),r=n(13),a=n(36),i=n(11)("hasInstance"),c=Function.prototype;i in c||r.f(c,i,{value:function(e){if("function"!=typeof this||!o(e))return!1;if(!o(this.prototype))return e instanceof this;for(;e=a(e);)if(this.prototype===e)return!0;return!1}})},function(e,t,n){"use strict";var o=n(9),r=n(13).f,a=Function.prototype,i=a.toString,c=/^\s*function ([^ (]*)/;!o||"name"in a||r(a,"name",{configurable:!0,get:function(){try{return i.call(this).match(c)[1]}catch(e){return""}}})},function(e,t,n){"use strict";var o=n(5);n(43)(o.JSON,"JSON",!0)},function(e,t,n){"use strict";var o=n(78),r=n(139);e.exports=o("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(0),r=n(140),a=Math.acosh,i=Math.log,c=Math.sqrt,l=Math.LN2;o({target:"Math",stat:!0,forced:!a||710!=Math.floor(a(Number.MAX_VALUE))||a(Infinity)!=Infinity},{acosh:function(e){return(e=+e)<1?NaN:e>94906265.62425156?i(e)+l:r(e-1+c(e-1)*c(e+1))}})},function(e,t,n){"use strict";var o=n(0),r=Math.asinh,a=Math.log,i=Math.sqrt;o({target:"Math",stat:!0,forced:!(r&&1/r(0)>0)},{asinh:function c(e){return isFinite(e=+e)&&0!=e?e<0?-c(-e):a(e+i(e*e+1)):e}})},function(e,t,n){"use strict";var o=n(0),r=Math.atanh,a=Math.log;o({target:"Math",stat:!0,forced:!(r&&1/r(-0)<0)},{atanh:function(e){return 0==(e=+e)?e:a((1+e)/(1-e))/2}})},function(e,t,n){"use strict";var o=n(0),r=n(105),a=Math.abs,i=Math.pow;o({target:"Math",stat:!0},{cbrt:function(e){return r(e=+e)*i(a(e),1/3)}})},function(e,t,n){"use strict";var o=n(0),r=Math.floor,a=Math.log,i=Math.LOG2E;o({target:"Math",stat:!0},{clz32:function(e){return(e>>>=0)?31-r(a(e+.5)*i):32}})},function(e,t,n){"use strict";var o=n(0),r=n(80),a=Math.cosh,i=Math.abs,c=Math.E;o({target:"Math",stat:!0,forced:!a||a(710)===Infinity},{cosh:function(e){var t=r(i(e)-1)+1;return(t+1/(t*c*c))*(c/2)}})},function(e,t,n){"use strict";var o=n(0),r=n(80);o({target:"Math",stat:!0,forced:r!=Math.expm1},{expm1:r})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{fround:n(241)})},function(e,t,n){"use strict";var o=n(105),r=Math.abs,a=Math.pow,i=a(2,-52),c=a(2,-23),l=a(2,127)*(2-c),u=a(2,-126),d=function(e){return e+1/i-1/i};e.exports=Math.fround||function(e){var t,n,a=r(e),s=o(e);return al||n!=n?s*Infinity:s*n}},function(e,t,n){"use strict";var o=n(0),r=Math.hypot,a=Math.abs,i=Math.sqrt;o({target:"Math",stat:!0,forced:!!r&&r(Infinity,NaN)!==Infinity},{hypot:function(e,t){for(var n,o,r=0,c=0,l=arguments.length,u=0;c0?(o=n/u)*o:n;return u===Infinity?Infinity:u*i(r)}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=Math.imul;o({target:"Math",stat:!0,forced:r((function(){return-5!=a(4294967295,5)||2!=a.length}))},{imul:function(e,t){var n=+e,o=+t,r=65535&n,a=65535&o;return 0|r*a+((65535&n>>>16)*a+r*(65535&o>>>16)<<16>>>0)}})},function(e,t,n){"use strict";var o=n(0),r=Math.log,a=Math.LOG10E;o({target:"Math",stat:!0},{log10:function(e){return r(e)*a}})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{log1p:n(140)})},function(e,t,n){"use strict";var o=n(0),r=Math.log,a=Math.LN2;o({target:"Math",stat:!0},{log2:function(e){return r(e)/a}})},function(e,t,n){"use strict";n(0)({target:"Math",stat:!0},{sign:n(105)})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(80),i=Math.abs,c=Math.exp,l=Math.E;o({target:"Math",stat:!0,forced:r((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){return i(e=+e)<1?(a(e)-a(-e))/2:(c(e-1)-c(-e-1))*(l/2)}})},function(e,t,n){"use strict";var o=n(0),r=n(80),a=Math.exp;o({target:"Math",stat:!0},{tanh:function(e){var t=r(e=+e),n=r(-e);return t==Infinity?1:n==Infinity?-1:(t-n)/(a(e)+a(-e))}})},function(e,t,n){"use strict";n(43)(Math,"Math",!0)},function(e,t,n){"use strict";var o=n(0),r=Math.ceil,a=Math.floor;o({target:"Math",stat:!0},{trunc:function(e){return(e>0?a:r)(e)}})},function(e,t,n){"use strict";var o=n(9),r=n(5),a=n(61),i=n(22),c=n(15),l=n(32),u=n(79),d=n(33),s=n(4),p=n(42),m=n(47).f,f=n(18).f,h=n(13).f,C=n(56).trim,g="Number",b=r[g],v=b.prototype,N=l(p(v))==g,V=function(e){var t,n,o,r,a,i,c,l,u=d(e,!1);if("string"==typeof u&&u.length>2)if(43===(t=(u=C(u)).charCodeAt(0))||45===t){if(88===(n=u.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(u.charCodeAt(1)){case 66:case 98:o=2,r=49;break;case 79:case 111:o=8,r=55;break;default:return+u}for(i=(a=u.slice(2)).length,c=0;cr)return NaN;return parseInt(a,o)}return+u};if(a(g,!b(" 0o1")||!b("0b1")||b("+0x1"))){for(var y,_=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof _&&(N?s((function(){v.valueOf.call(n)})):l(n)!=g)?u(new b(V(t)),n,_):V(t)},x=o?m(b):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),k=0;x.length>k;k++)c(b,y=x[k])&&!c(_,y)&&h(_,y,f(b,y));_.prototype=v,v.constructor=_,i(r,g,_)}},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isFinite:n(255)})},function(e,t,n){"use strict";var o=n(5).isFinite;e.exports=Number.isFinite||function(e){return"number"==typeof e&&o(e)}},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isInteger:n(141)})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},function(e,t,n){"use strict";var o=n(0),r=n(141),a=Math.abs;o({target:"Number",stat:!0},{isSafeInteger:function(e){return r(e)&&a(e)<=9007199254740991}})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,n){"use strict";n(0)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},function(e,t,n){"use strict";var o=n(0),r=n(262);o({target:"Number",stat:!0,forced:Number.parseFloat!=r},{parseFloat:r})},function(e,t,n){"use strict";var o=n(5),r=n(56).trim,a=n(81),i=o.parseFloat,c=1/i(a+"-0")!=-Infinity;e.exports=c?function(e){var t=r(String(e)),n=i(t);return 0===n&&"-"==t.charAt(0)?-0:n}:i},function(e,t,n){"use strict";var o=n(0),r=n(142);o({target:"Number",stat:!0,forced:Number.parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o=n(0),r=n(30),a=n(265),i=n(104),c=n(4),l=1..toFixed,u=Math.floor,d=function p(e,t,n){return 0===t?n:t%2==1?p(e,t-1,n*e):p(e*e,t/2,n)},s=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t};o({target:"Number",proto:!0,forced:l&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!c((function(){l.call({})}))},{toFixed:function(e){var t,n,o,c,l=a(this),p=r(e),m=[0,0,0,0,0,0],f="",h="0",C=function(e,t){for(var n=-1,o=t;++n<6;)o+=e*m[n],m[n]=o%1e7,o=u(o/1e7)},g=function(e){for(var t=6,n=0;--t>=0;)n+=m[t],m[t]=u(n/e),n=n%e*1e7},b=function(){for(var e=6,t="";--e>=0;)if(""!==t||0===e||0!==m[e]){var n=String(m[e]);t=""===t?n:t+i.call("0",7-n.length)+n}return t};if(p<0||p>20)throw RangeError("Incorrect fraction digits");if(l!=l)return"NaN";if(l<=-1e21||l>=1e21)return String(l);if(l<0&&(f="-",l=-l),l>1e-21)if(n=(t=s(l*d(2,69,1))-69)<0?l*d(2,-t,1):l/d(2,t,1),n*=4503599627370496,(t=52-t)>0){for(C(0,n),o=p;o>=7;)C(1e7,0),o-=7;for(C(d(10,o,1),0),o=t-1;o>=23;)g(1<<23),o-=23;g(1<0?f+((c=h.length)<=p?"0."+i.call("0",p-c)+h:h.slice(0,c-p)+"."+h.slice(c-p)):f+h}})},function(e,t,n){"use strict";var o=n(32);e.exports=function(e){if("number"!=typeof e&&"Number"!=o(e))throw TypeError("Incorrect invocation");return+e}},function(e,t,n){"use strict";var o=n(0),r=n(267);o({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},function(e,t,n){"use strict";var o=n(9),r=n(4),a=n(62),i=n(94),c=n(71),l=n(14),u=n(57),d=Object.assign,s=Object.defineProperty;e.exports=!d||r((function(){if(o&&1!==d({b:1},d(s({},"a",{enumerable:!0,get:function(){s(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},n=Symbol();return e[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=d({},e)[n]||"abcdefghijklmnopqrst"!=a(d({},t)).join("")}))?function(e,t){for(var n=l(e),r=arguments.length,d=1,s=i.f,p=c.f;r>d;)for(var m,f=u(arguments[d++]),h=s?a(f).concat(s(f)):a(f),C=h.length,g=0;C>g;)m=h[g++],o&&!p.call(f,m)||(n[m]=f[m]);return n}:d},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0,sham:!n(9)},{create:n(42)})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(31),l=n(13);r&&o({target:"Object",proto:!0,forced:a},{__defineGetter__:function(e,t){l.f(i(this),e,{get:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(0),r=n(9);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperties:n(126)})},function(e,t,n){"use strict";var o=n(0),r=n(9);o({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperty:n(13).f})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(31),l=n(13);r&&o({target:"Object",proto:!0,forced:a},{__defineSetter__:function(e,t){l.f(i(this),e,{set:c(t),enumerable:!0,configurable:!0})}})},function(e,t,n){"use strict";var o=n(0),r=n(143).entries;o({target:"Object",stat:!0},{entries:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(67),a=n(4),i=n(6),c=n(50).onFreeze,l=Object.freeze;o({target:"Object",stat:!0,forced:a((function(){l(1)})),sham:!r},{freeze:function(e){return l&&i(e)?l(c(e)):e}})},function(e,t,n){"use strict";var o=n(0),r=n(68),a=n(49);o({target:"Object",stat:!0},{fromEntries:function(e){var t={};return r(e,(function(e,n){a(t,e,n)}),undefined,!0),t}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(24),i=n(18).f,c=n(9),l=r((function(){i(1)}));o({target:"Object",stat:!0,forced:!c||l,sham:!c},{getOwnPropertyDescriptor:function(e,t){return i(a(e),t)}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(92),i=n(24),c=n(18),l=n(49);o({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(e){for(var t,n,o=i(e),r=c.f,u=a(o),d={},s=0;u.length>s;)(n=r(o,t=u[s++]))!==undefined&&l(d,t,n);return d}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(128).f;o({target:"Object",stat:!0,forced:r((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:a})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(14),i=n(36),c=n(102);o({target:"Object",stat:!0,forced:r((function(){i(1)})),sham:!c},{getPrototypeOf:function(e){return i(a(e))}})},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0},{is:n(144)})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(6),i=Object.isExtensible;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isExtensible:function(e){return!!a(e)&&(!i||i(e))}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(6),i=Object.isFrozen;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isFrozen:function(e){return!a(e)||!!i&&i(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(4),a=n(6),i=Object.isSealed;o({target:"Object",stat:!0,forced:r((function(){i(1)}))},{isSealed:function(e){return!a(e)||!!i&&i(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(14),a=n(62);o({target:"Object",stat:!0,forced:n(4)((function(){a(1)}))},{keys:function(e){return a(r(e))}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(33),l=n(36),u=n(18).f;r&&o({target:"Object",proto:!0,forced:a},{__lookupGetter__:function(e){var t,n=i(this),o=c(e,!0);do{if(t=u(n,o))return t.get}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(82),i=n(14),c=n(33),l=n(36),u=n(18).f;r&&o({target:"Object",proto:!0,forced:a},{__lookupSetter__:function(e){var t,n=i(this),o=c(e,!0);do{if(t=u(n,o))return t.set}while(n=l(n))}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(50).onFreeze,i=n(67),c=n(4),l=Object.preventExtensions;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!i},{preventExtensions:function(e){return l&&r(e)?l(a(e)):e}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(50).onFreeze,i=n(67),c=n(4),l=Object.seal;o({target:"Object",stat:!0,forced:c((function(){l(1)})),sham:!i},{seal:function(e){return l&&r(e)?l(a(e)):e}})},function(e,t,n){"use strict";n(0)({target:"Object",stat:!0},{setPrototypeOf:n(53)})},function(e,t,n){"use strict";var o=n(100),r=n(22),a=n(291);o||r(Object.prototype,"toString",a,{unsafe:!0})},function(e,t,n){"use strict";var o=n(100),r=n(74);e.exports=o?{}.toString:function(){return"[object "+r(this)+"]"}},function(e,t,n){"use strict";var o=n(0),r=n(143).values;o({target:"Object",stat:!0},{values:function(e){return r(e)}})},function(e,t,n){"use strict";var o=n(0),r=n(142);o({global:!0,forced:parseInt!=r},{parseInt:r})},function(e,t,n){"use strict";var o,r,a,i,c=n(0),l=n(38),u=n(5),d=n(35),s=n(145),p=n(22),m=n(66),f=n(43),h=n(54),C=n(6),g=n(31),b=n(55),v=n(32),N=n(90),V=n(68),y=n(75),_=n(45),x=n(106).set,k=n(147),L=n(148),w=n(295),B=n(149),S=n(296),I=n(34),T=n(61),A=n(11),E=n(96),P=A("species"),M="Promise",O=I.get,R=I.set,F=I.getterFor(M),D=s,j=u.TypeError,z=u.document,H=u.process,G=d("fetch"),U=B.f,K=U,Y="process"==v(H),q=!!(z&&z.createEvent&&u.dispatchEvent),W=0,$=T(M,(function(){if(!(N(D)!==String(D))){if(66===E)return!0;if(!Y&&"function"!=typeof PromiseRejectionEvent)return!0}if(l&&!D.prototype["finally"])return!0;if(E>=51&&/native code/.test(D))return!1;var e=D.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[P]=t,!(e.then((function(){}))instanceof t)})),Q=$||!y((function(e){D.all(e)["catch"]((function(){}))})),X=function(e){var t;return!(!C(e)||"function"!=typeof(t=e.then))&&t},J=function(e,t,n){if(!t.notified){t.notified=!0;var o=t.reactions;k((function(){for(var r=t.value,a=1==t.state,i=0;o.length>i;){var c,l,u,d=o[i++],s=a?d.ok:d.fail,p=d.resolve,m=d.reject,f=d.domain;try{s?(a||(2===t.rejection&&ne(e,t),t.rejection=1),!0===s?c=r:(f&&f.enter(),c=s(r),f&&(f.exit(),u=!0)),c===d.promise?m(j("Promise-chain cycle")):(l=X(c))?l.call(c,p,m):p(c)):m(r)}catch(h){f&&!u&&f.exit(),m(h)}}t.reactions=[],t.notified=!1,n&&!t.rejection&&ee(e,t)}))}},Z=function(e,t,n){var o,r;q?((o=z.createEvent("Event")).promise=t,o.reason=n,o.initEvent(e,!1,!0),u.dispatchEvent(o)):o={promise:t,reason:n},(r=u["on"+e])?r(o):"unhandledrejection"===e&&w("Unhandled promise rejection",n)},ee=function(e,t){x.call(u,(function(){var n,o=t.value;if(te(t)&&(n=S((function(){Y?H.emit("unhandledRejection",o,e):Z("unhandledrejection",e,o)})),t.rejection=Y||te(t)?2:1,n.error))throw n.value}))},te=function(e){return 1!==e.rejection&&!e.parent},ne=function(e,t){x.call(u,(function(){Y?H.emit("rejectionHandled",e):Z("rejectionhandled",e,t.value)}))},oe=function(e,t,n,o){return function(r){e(t,n,r,o)}},re=function(e,t,n,o){t.done||(t.done=!0,o&&(t=o),t.value=n,t.state=2,J(e,t,!0))},ae=function ie(e,t,n,o){if(!t.done){t.done=!0,o&&(t=o);try{if(e===n)throw j("Promise can't be resolved itself");var r=X(n);r?k((function(){var o={done:!1};try{r.call(n,oe(ie,e,o,t),oe(re,e,o,t))}catch(a){re(e,o,a,t)}})):(t.value=n,t.state=1,J(e,t,!1))}catch(a){re(e,{done:!1},a,t)}}};$&&(D=function(e){b(this,D,M),g(e),o.call(this);var t=O(this);try{e(oe(ae,this,t),oe(re,this,t))}catch(n){re(this,t,n)}},(o=function(e){R(this,{type:M,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:W,value:undefined})}).prototype=m(D.prototype,{then:function(e,t){var n=F(this),o=U(_(this,D));return o.ok="function"!=typeof e||e,o.fail="function"==typeof t&&t,o.domain=Y?H.domain:undefined,n.parent=!0,n.reactions.push(o),n.state!=W&&J(this,n,!1),o.promise},"catch":function(e){return this.then(undefined,e)}}),r=function(){var e=new o,t=O(e);this.promise=e,this.resolve=oe(ae,e,t),this.reject=oe(re,e,t)},B.f=U=function(e){return e===D||e===a?new r(e):K(e)},l||"function"!=typeof s||(i=s.prototype.then,p(s.prototype,"then",(function(e,t){var n=this;return new D((function(e,t){i.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof G&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return L(D,G.apply(u,arguments))}}))),c({global:!0,wrap:!0,forced:$},{Promise:D}),f(D,M,!1,!0),h(M),a=d(M),c({target:M,stat:!0,forced:$},{reject:function(e){var t=U(this);return t.reject.call(undefined,e),t.promise}}),c({target:M,stat:!0,forced:l||$},{resolve:function(e){return L(l&&this===a?D:this,e)}}),c({target:M,stat:!0,forced:Q},{all:function(e){var t=this,n=U(t),o=n.resolve,r=n.reject,a=S((function(){var n=g(t.resolve),a=[],i=0,c=1;V(e,(function(e){var l=i++,u=!1;a.push(undefined),c++,n.call(t,e).then((function(e){u||(u=!0,a[l]=e,--c||o(a))}),r)})),--c||o(a)}));return a.error&&r(a.value),n.promise},race:function(e){var t=this,n=U(t),o=n.reject,r=S((function(){var r=g(t.resolve);V(e,(function(e){r.call(t,e).then(n.resolve,o)}))}));return r.error&&o(r.value),n.promise}})},function(e,t,n){"use strict";var o=n(5);e.exports=function(e,t){var n=o.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},function(e,t,n){"use strict";e.exports=function(e){try{return{error:!1,value:e()}}catch(t){return{error:!0,value:t}}}},function(e,t,n){"use strict";var o=n(0),r=n(38),a=n(145),i=n(4),c=n(35),l=n(45),u=n(148),d=n(22);o({target:"Promise",proto:!0,real:!0,forced:!!a&&i((function(){a.prototype["finally"].call({then:function(){}},(function(){}))}))},{"finally":function(e){var t=l(this,c("Promise")),n="function"==typeof e;return this.then(n?function(n){return u(t,e()).then((function(){return n}))}:e,n?function(n){return u(t,e()).then((function(){throw n}))}:e)}}),r||"function"!=typeof a||a.prototype["finally"]||d(a.prototype,"finally",c("Promise").prototype["finally"])},function(e,t,n){"use strict";var o=n(0),r=n(35),a=n(31),i=n(8),c=n(4),l=r("Reflect","apply"),u=Function.apply;o({target:"Reflect",stat:!0,forced:!c((function(){l((function(){}))}))},{apply:function(e,t,n){return a(e),i(n),l?l(e,t,n):u.call(e,t,n)}})},function(e,t,n){"use strict";var o=n(0),r=n(35),a=n(31),i=n(8),c=n(6),l=n(42),u=n(138),d=n(4),s=r("Reflect","construct"),p=d((function(){function e(){}return!(s((function(){}),[],e)instanceof e)})),m=!d((function(){s((function(){}))})),f=p||m;o({target:"Reflect",stat:!0,forced:f,sham:f},{construct:function(e,t){a(e),i(t);var n=arguments.length<3?e:a(arguments[2]);if(m&&!p)return s(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var o=[null];return o.push.apply(o,t),new(u.apply(e,o))}var r=n.prototype,d=l(c(r)?r:Object.prototype),f=Function.apply.call(e,d,t);return c(f)?f:d}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(8),i=n(33),c=n(13);o({target:"Reflect",stat:!0,forced:n(4)((function(){Reflect.defineProperty(c.f({},1,{value:1}),1,{value:2})})),sham:!r},{defineProperty:function(e,t,n){a(e);var o=i(t,!0);a(n);try{return c.f(e,o,n),!0}catch(r){return!1}}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(18).f;o({target:"Reflect",stat:!0},{deleteProperty:function(e,t){var n=a(r(e),t);return!(n&&!n.configurable)&&delete e[t]}})},function(e,t,n){"use strict";var o=n(0),r=n(6),a=n(8),i=n(15),c=n(18),l=n(36);o({target:"Reflect",stat:!0},{get:function u(e,t){var n,o,d=arguments.length<3?e:arguments[2];return a(e)===d?e[t]:(n=c.f(e,t))?i(n,"value")?n.value:n.get===undefined?undefined:n.get.call(d):r(o=l(e))?u(o,t,d):void 0}})},function(e,t,n){"use strict";var o=n(0),r=n(9),a=n(8),i=n(18);o({target:"Reflect",stat:!0,sham:!r},{getOwnPropertyDescriptor:function(e,t){return i.f(a(e),t)}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(36);o({target:"Reflect",stat:!0,sham:!n(102)},{getPrototypeOf:function(e){return a(r(e))}})},function(e,t,n){"use strict";n(0)({target:"Reflect",stat:!0},{has:function(e,t){return t in e}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=Object.isExtensible;o({target:"Reflect",stat:!0},{isExtensible:function(e){return r(e),!a||a(e)}})},function(e,t,n){"use strict";n(0)({target:"Reflect",stat:!0},{ownKeys:n(92)})},function(e,t,n){"use strict";var o=n(0),r=n(35),a=n(8);o({target:"Reflect",stat:!0,sham:!n(67)},{preventExtensions:function(e){a(e);try{var t=r("Object","preventExtensions");return t&&t(e),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(6),i=n(15),c=n(4),l=n(13),u=n(18),d=n(36),s=n(46);o({target:"Reflect",stat:!0,forced:c((function(){var e=l.f({},"a",{configurable:!0});return!1!==Reflect.set(d(e),"a",1,e)}))},{set:function p(e,t,n){var o,c,m=arguments.length<4?e:arguments[3],f=u.f(r(e),t);if(!f){if(a(c=d(e)))return p(c,t,n,m);f=s(0)}if(i(f,"value")){if(!1===f.writable||!a(m))return!1;if(o=u.f(m,t)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,l.f(m,t,o)}else l.f(m,t,s(0,n));return!0}return f.set!==undefined&&(f.set.call(m,n),!0)}})},function(e,t,n){"use strict";var o=n(0),r=n(8),a=n(135),i=n(53);i&&o({target:"Reflect",stat:!0},{setPrototypeOf:function(e,t){r(e),a(t);try{return i(e,t),!0}catch(n){return!1}}})},function(e,t,n){"use strict";var o=n(9),r=n(5),a=n(61),i=n(79),c=n(13).f,l=n(47).f,u=n(107),d=n(83),s=n(22),p=n(4),m=n(54),f=n(11)("match"),h=r.RegExp,C=h.prototype,g=/a/g,b=/a/g,v=new h(g)!==g;if(o&&a("RegExp",!v||p((function(){return b[f]=!1,h(g)!=g||h(b)==b||"/a/i"!=h(g,"i")})))){for(var N=function(e,t){var n=this instanceof N,o=u(e),r=t===undefined;return!n&&o&&e.constructor===N&&r?e:i(v?new h(o&&!r?e.source:e,t):h((o=e instanceof N)?e.source:e,o&&r?d.call(e):t),n?this:C,N)},V=function(e){e in N||c(N,e,{configurable:!0,get:function(){return h[e]},set:function(t){h[e]=t}})},y=l(h),_=0;y.length>_;)V(y[_++]);C.constructor=N,N.prototype=C,s(r,"RegExp",N)}m("RegExp")},function(e,t,n){"use strict";var o=n(0),r=n(84);o({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},function(e,t,n){"use strict";var o=n(9),r=n(13),a=n(83);o&&"g"!=/./g.flags&&r.f(RegExp.prototype,"flags",{configurable:!0,get:a})},function(e,t,n){"use strict";var o=n(22),r=n(8),a=n(4),i=n(83),c=RegExp.prototype,l=c.toString,u=a((function(){return"/a/b"!=l.call({source:"a",flags:"b"})})),d="toString"!=l.name;(u||d)&&o(RegExp.prototype,"toString",(function(){var e=r(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(n===undefined&&e instanceof RegExp&&!("flags"in c)?i.call(e):n)}),{unsafe:!0})},function(e,t,n){"use strict";var o=n(78),r=n(139);e.exports=o("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),r)},function(e,t,n){"use strict";var o=n(0),r=n(108).codeAt;o({target:"String",proto:!0},{codePointAt:function(e){return r(this,e)}})},function(e,t,n){"use strict";var o,r=n(0),a=n(18).f,i=n(10),c=n(109),l=n(21),u=n(110),d=n(38),s="".endsWith,p=Math.min,m=u("endsWith");r({target:"String",proto:!0,forced:!!(d||m||(o=a(String.prototype,"endsWith"),!o||o.writable))&&!m},{endsWith:function(e){var t=String(l(this));c(e);var n=arguments.length>1?arguments[1]:undefined,o=i(t.length),r=n===undefined?o:p(i(n),o),a=String(e);return s?s.call(t,a,r):t.slice(r-a.length,r)===a}})},function(e,t,n){"use strict";var o=n(0),r=n(41),a=String.fromCharCode,i=String.fromCodePoint;o({target:"String",stat:!0,forced:!!i&&1!=i.length},{fromCodePoint:function(e){for(var t,n=[],o=arguments.length,i=0;o>i;){if(t=+arguments[i++],r(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?a(t):a(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){"use strict";var o=n(0),r=n(109),a=n(21);o({target:"String",proto:!0,forced:!n(110)("includes")},{includes:function(e){return!!~String(a(this)).indexOf(r(e),arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(108).charAt,r=n(34),a=n(101),i=r.set,c=r.getterFor("String Iterator");a(String,"String",(function(e){i(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=c(this),n=t.string,r=t.index;return r>=n.length?{value:undefined,done:!0}:(e=o(n,r),t.index+=e.length,{value:e,done:!1})}))},function(e,t,n){"use strict";var o=n(85),r=n(8),a=n(10),i=n(21),c=n(111),l=n(86);o("match",1,(function(e,t,n){return[function(t){var n=i(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var i=r(e),u=String(this);if(!i.global)return l(i,u);var d=i.unicode;i.lastIndex=0;for(var s,p=[],m=0;null!==(s=l(i,u));){var f=String(s[0]);p[m]=f,""===f&&(i.lastIndex=c(u,a(i.lastIndex),d)),m++}return 0===m?null:p}]}))},function(e,t,n){"use strict";var o=n(0),r=n(103).end;o({target:"String",proto:!0,forced:n(150)},{padEnd:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(103).start;o({target:"String",proto:!0,forced:n(150)},{padStart:function(e){return r(this,e,arguments.length>1?arguments[1]:undefined)}})},function(e,t,n){"use strict";var o=n(0),r=n(24),a=n(10);o({target:"String",stat:!0},{raw:function(e){for(var t=r(e.raw),n=a(t.length),o=arguments.length,i=[],c=0;n>c;)i.push(String(t[c++])),c]*>)/g,h=/\$([$&'`]|\d\d?)/g;o("replace",2,(function(e,t,n){return[function(n,o){var r=l(this),a=n==undefined?undefined:n[e];return a!==undefined?a.call(n,r,o):t.call(String(r),n,o)},function(e,a){var l=n(t,e,this,a);if(l.done)return l.value;var m=r(e),f=String(this),h="function"==typeof a;h||(a=String(a));var C=m.global;if(C){var g=m.unicode;m.lastIndex=0}for(var b=[];;){var v=d(m,f);if(null===v)break;if(b.push(v),!C)break;""===String(v[0])&&(m.lastIndex=u(f,i(m.lastIndex),g))}for(var N,V="",y=0,_=0;_=y&&(V+=f.slice(y,k)+I,y=k+x.length)}return V+f.slice(y)}];function o(e,n,o,r,i,c){var l=o+e.length,u=r.length,d=h;return i!==undefined&&(i=a(i),d=f),t.call(c,d,(function(t,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return n.slice(0,o);case"'":return n.slice(l);case"<":c=i[a.slice(1,-1)];break;default:var d=+a;if(0===d)return t;if(d>u){var s=m(d/10);return 0===s?t:s<=u?r[s-1]===undefined?a.charAt(1):r[s-1]+a.charAt(1):t}c=r[d-1]}return c===undefined?"":c}))}}))},function(e,t,n){"use strict";var o=n(85),r=n(8),a=n(21),i=n(144),c=n(86);o("search",1,(function(e,t,n){return[function(t){var n=a(this),o=t==undefined?undefined:t[e];return o!==undefined?o.call(t,n):new RegExp(t)[e](String(n))},function(e){var o=n(t,e,this);if(o.done)return o.value;var a=r(e),l=String(this),u=a.lastIndex;i(u,0)||(a.lastIndex=0);var d=c(a,l);return i(a.lastIndex,u)||(a.lastIndex=u),null===d?-1:d.index}]}))},function(e,t,n){"use strict";var o=n(85),r=n(107),a=n(8),i=n(21),c=n(45),l=n(111),u=n(10),d=n(86),s=n(84),p=n(4),m=[].push,f=Math.min,h=!p((function(){return!RegExp(4294967295,"y")}));o("split",2,(function(e,t,n){var o;return o="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,n){var o=String(i(this)),a=n===undefined?4294967295:n>>>0;if(0===a)return[];if(e===undefined)return[o];if(!r(e))return t.call(o,e,a);for(var c,l,u,d=[],p=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),f=0,h=new RegExp(e.source,p+"g");(c=s.call(h,o))&&!((l=h.lastIndex)>f&&(d.push(o.slice(f,c.index)),c.length>1&&c.index=a));)h.lastIndex===c.index&&h.lastIndex++;return f===o.length?!u&&h.test("")||d.push(""):d.push(o.slice(f)),d.length>a?d.slice(0,a):d}:"0".split(undefined,0).length?function(e,n){return e===undefined&&0===n?[]:t.call(this,e,n)}:t,[function(t,n){var r=i(this),a=t==undefined?undefined:t[e];return a!==undefined?a.call(t,r,n):o.call(String(r),t,n)},function(e,r){var i=n(o,e,this,r,o!==t);if(i.done)return i.value;var s=a(e),p=String(this),m=c(s,RegExp),C=s.unicode,g=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(h?"y":"g"),b=new m(h?s:"^(?:"+s.source+")",g),v=r===undefined?4294967295:r>>>0;if(0===v)return[];if(0===p.length)return null===d(b,p)?[p]:[];for(var N=0,V=0,y=[];V1?arguments[1]:undefined,t.length)),o=String(e);return s?s.call(t,o,n):t.slice(n,n+o.length)===o}})},function(e,t,n){"use strict";var o=n(0),r=n(56).trim;o({target:"String",proto:!0,forced:n(112)("trim")},{trim:function(){return r(this)}})},function(e,t,n){"use strict";var o=n(0),r=n(56).end,a=n(112)("trimEnd"),i=a?function(){return r(this)}:"".trimEnd;o({target:"String",proto:!0,forced:a},{trimEnd:i,trimRight:i})},function(e,t,n){"use strict";var o=n(0),r=n(56).start,a=n(112)("trimStart"),i=a?function(){return r(this)}:"".trimStart;o({target:"String",proto:!0,forced:a},{trimStart:i,trimLeft:i})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("anchor")},{anchor:function(e){return r(this,"a","name",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("big")},{big:function(){return r(this,"big","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("blink")},{blink:function(){return r(this,"blink","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("bold")},{bold:function(){return r(this,"b","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("fixed")},{fixed:function(){return r(this,"tt","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("fontcolor")},{fontcolor:function(e){return r(this,"font","color",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("fontsize")},{fontsize:function(e){return r(this,"font","size",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("italics")},{italics:function(){return r(this,"i","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("link")},{link:function(e){return r(this,"a","href",e)}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("small")},{small:function(){return r(this,"small","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("strike")},{strike:function(){return r(this,"strike","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("sub")},{sub:function(){return r(this,"sub","","")}})},function(e,t,n){"use strict";var o=n(0),r=n(27);o({target:"String",proto:!0,forced:n(28)("sup")},{sup:function(){return r(this,"sup","","")}})},function(e,t,n){"use strict";n(40)("Float32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(30);e.exports=function(e){var t=o(e);if(t<0)throw RangeError("The argument can't be less than 0");return t}},function(e,t,n){"use strict";n(40)("Float64",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Int8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Int16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Int32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Uint8",(function(e){return function(t,n,o){return e(this,t,n,o)}}),!0)},function(e,t,n){"use strict";n(40)("Uint16",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";n(40)("Uint32",(function(e){return function(t,n,o){return e(this,t,n,o)}}))},function(e,t,n){"use strict";var o=n(7),r=n(130),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(e,t){return r.call(a(this),e,t,arguments.length>2?arguments[2]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(16).every,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("every",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(97),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("fill",(function(e){return r.apply(a(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(16).filter,a=n(45),i=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("filter",(function(e){for(var t=r(i(this),e,arguments.length>1?arguments[1]:undefined),n=a(this,this.constructor),o=0,l=t.length,u=new(c(n))(l);l>o;)u[o]=t[o++];return u}))},function(e,t,n){"use strict";var o=n(7),r=n(16).find,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("find",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(16).findIndex,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("findIndex",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(16).forEach,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("forEach",(function(e){r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(113);(0,n(7).exportTypedArrayStaticMethod)("from",n(152),o)},function(e,t,n){"use strict";var o=n(7),r=n(60).includes,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("includes",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(60).indexOf,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("indexOf",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(5),r=n(7),a=n(133),i=n(11)("iterator"),c=o.Uint8Array,l=a.values,u=a.keys,d=a.entries,s=r.aTypedArray,p=r.exportTypedArrayMethod,m=c&&c.prototype[i],f=!!m&&("values"==m.name||m.name==undefined),h=function(){return l.call(s(this))};p("entries",(function(){return d.call(s(this))})),p("keys",(function(){return u.call(s(this))})),p("values",h,!f),p(i,h,!f)},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=[].join;a("join",(function(e){return i.apply(r(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(136),a=o.aTypedArray;(0,o.exportTypedArrayMethod)("lastIndexOf",(function(e){return r.apply(a(this),arguments)}))},function(e,t,n){"use strict";var o=n(7),r=n(16).map,a=n(45),i=o.aTypedArray,c=o.aTypedArrayConstructor;(0,o.exportTypedArrayMethod)("map",(function(e){return r(i(this),e,arguments.length>1?arguments[1]:undefined,(function(e,t){return new(c(a(e,e.constructor)))(t)}))}))},function(e,t,n){"use strict";var o=n(7),r=n(113),a=o.aTypedArrayConstructor;(0,o.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(a(this))(t);t>e;)n[e]=arguments[e++];return n}),r)},function(e,t,n){"use strict";var o=n(7),r=n(76).left,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduce",(function(e){return r(a(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=n(76).right,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("reduceRight",(function(e){return r(a(this),e,arguments.length,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=Math.floor;a("reverse",(function(){for(var e,t=r(this).length,n=i(t/2),o=0;o1?arguments[1]:undefined,1),n=this.length,o=i(e),c=r(o.length),u=0;if(c+t>n)throw RangeError("Wrong length");for(;ua;)d[a]=n[a++];return d}),a((function(){new Int8Array(1).slice()})))},function(e,t,n){"use strict";var o=n(7),r=n(16).some,a=o.aTypedArray;(0,o.exportTypedArrayMethod)("some",(function(e){return r(a(this),e,arguments.length>1?arguments[1]:undefined)}))},function(e,t,n){"use strict";var o=n(7),r=o.aTypedArray,a=o.exportTypedArrayMethod,i=[].sort;a("sort",(function(e){return i.call(r(this),e)}))},function(e,t,n){"use strict";var o=n(7),r=n(10),a=n(41),i=n(45),c=o.aTypedArray;(0,o.exportTypedArrayMethod)("subarray",(function(e,t){var n=c(this),o=n.length,l=a(e,o);return new(i(n,n.constructor))(n.buffer,n.byteOffset+l*n.BYTES_PER_ELEMENT,r((t===undefined?o:a(t,o))-l))}))},function(e,t,n){"use strict";var o=n(5),r=n(7),a=n(4),i=o.Int8Array,c=r.aTypedArray,l=r.exportTypedArrayMethod,u=[].toLocaleString,d=[].slice,s=!!i&&a((function(){u.call(new i(1))}));l("toLocaleString",(function(){return u.apply(s?d.call(c(this)):c(this),arguments)}),a((function(){return[1,2].toLocaleString()!=new i([1,2]).toLocaleString()}))||!a((function(){i.prototype.toLocaleString.call([1,2])})))},function(e,t,n){"use strict";var o=n(7).exportTypedArrayMethod,r=n(4),a=n(5).Uint8Array,i=a&&a.prototype||{},c=[].toString,l=[].join;r((function(){c.call({})}))&&(c=function(){return l.call(this)});var u=i.toString!=c;o("toString",c,u)},function(e,t,n){"use strict";var o,r=n(5),a=n(66),i=n(50),c=n(78),l=n(153),u=n(6),d=n(34).enforce,s=n(121),p=!r.ActiveXObject&&"ActiveXObject"in r,m=Object.isExtensible,f=function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}},h=e.exports=c("WeakMap",f,l);if(s&&p){o=l.getConstructor(f,"WeakMap",!0),i.REQUIRED=!0;var C=h.prototype,g=C["delete"],b=C.has,v=C.get,N=C.set;a(C,{"delete":function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),g.call(this,e)||t.frozen["delete"](e)}return g.call(this,e)},has:function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),b.call(this,e)||t.frozen.has(e)}return b.call(this,e)},get:function(e){if(u(e)&&!m(e)){var t=d(this);return t.frozen||(t.frozen=new o),b.call(this,e)?v.call(this,e):t.frozen.get(e)}return v.call(this,e)},set:function(e,t){if(u(e)&&!m(e)){var n=d(this);n.frozen||(n.frozen=new o),b.call(this,e)?N.call(this,e,t):n.frozen.set(e,t)}else N.call(this,e,t);return this}})}},function(e,t,n){"use strict";n(78)("WeakSet",(function(e){return function(){return e(this,arguments.length?arguments[0]:undefined)}}),n(153))},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(106);o({global:!0,bind:!0,enumerable:!0,forced:!r.setImmediate||!r.clearImmediate},{setImmediate:a.set,clearImmediate:a.clear})},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(147),i=n(32),c=r.process,l="process"==i(c);o({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(e){var t=l&&c.domain;a(t?t.bind(e):e)}})},function(e,t,n){"use strict";var o=n(0),r=n(5),a=n(73),i=[].slice,c=function(e){return function(t,n){var o=arguments.length>2,r=o?i.call(arguments,2):undefined;return e(o?function(){("function"==typeof t?t:Function(t)).apply(this,r)}:t,n)}};o({global:!0,bind:!0,forced:/MSIE .\./.test(a)},{setTimeout:c(r.setTimeout),setInterval:c(r.setInterval)})},function(e,t,n){"use strict";t.__esModule=!0,t._CI=Ie,t._HI=D,t._M=Te,t._MCCC=Me,t._ME=Ee,t._MFCC=Oe,t._MP=Be,t._MR=Ne,t.__render=ze,t.createComponentVNode=function(e,t,n,o,r){var i=new T(1,null,null,e=function(e,t){if(12&e)return e;if(t.prototype&&t.prototype.render)return 4;if(t.render)return 32776;return 8}(e,t),o,function(e,t,n){var o=(32768&e?t.render:t).defaultProps;if(a(o))return n;if(a(n))return d(o,null);return B(n,o)}(e,t,n),function(e,t,n){if(4&e)return n;var o=(32768&e?t.render:t).defaultHooks;if(a(o))return n;if(a(n))return o;return B(n,o)}(e,t,r),t);k.createVNode&&k.createVNode(i);return i},t.createFragment=P,t.createPortal=function(e,t){var n=D(e);return A(1024,1024,null,n,0,null,n.key,t)},t.createRef=function(){return{current:null}},t.createRenderer=function(e){return function(t,n,o,r){e||(e=t),He(n,e,o,r)}},t.createTextVNode=E,t.createVNode=A,t.directClone=M,t.findDOMfromVNode=N,t.forwardRef=function(e){return{render:e}},t.getFlagsForElementVnode=function(e){switch(e){case"svg":return 32;case"input":return 64;case"select":return 256;case"textarea":return 128;case m:return 8192;default:return 1}},t.linkEvent=function(e,t){if(c(t))return{data:e,event:t};return null},t.normalizeProps=function(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&a(e.children)&&F(e,t.children),void 0!==t.className&&(e.className=t.className||null,t.className=undefined)),void 0!==t.key&&(e.key=t.key,t.key=undefined),void 0!==t.ref&&(e.ref=8&n?d(e.ref,t.ref):t.ref,t.ref=undefined)}return e},t.render=He,t.rerender=We,t.version=t.options=t.Fragment=t.EMPTY_OBJ=t.Component=void 0;var o=Array.isArray;function r(e){var t=typeof e;return"string"===t||"number"===t}function a(e){return null==e}function i(e){return null===e||!1===e||!0===e||void 0===e}function c(e){return"function"==typeof e}function l(e){return"string"==typeof e}function u(e){return null===e}function d(e,t){var n={};if(e)for(var o in e)n[o]=e[o];if(t)for(var r in t)n[r]=t[r];return n}function s(e){return!u(e)&&"object"==typeof e}var p={};t.EMPTY_OBJ=p;var m="$F";function f(e){return e.substr(2).toLowerCase()}function h(e,t){e.appendChild(t)}function C(e,t,n){u(n)?h(e,t):e.insertBefore(t,n)}function g(e,t){e.removeChild(t)}function b(e){for(var t;(t=e.shift())!==undefined;)t()}function v(e,t,n){var o=e.children;return 4&n?o.$LI:8192&n?2===e.childFlags?o:o[t?0:o.length-1]:o}function N(e,t){for(var n;e;){if(2033&(n=e.flags))return e.dom;e=v(e,t,n)}return null}function V(e,t){do{var n=e.flags;if(2033&n)return void g(t,e.dom);var o=e.children;if(4&n&&(e=o.$LI),8&n&&(e=o),8192&n){if(2!==e.childFlags){for(var r=0,a=o.length;r0,f=u(p),h=l(p)&&p[0]===I;m||f||h?(n=n||t.slice(0,d),(m||h)&&(s=M(s)),(f||h)&&(s.key=I+d),n.push(s)):n&&n.push(s),s.flags|=65536}}a=0===(n=n||t).length?1:8}else(n=t).flags|=65536,81920&t.flags&&(n=M(t)),a=2;return e.children=n,e.childFlags=a,e}function D(e){return i(e)||r(e)?E(e,null):o(e)?P(e,0,null):16384&e.flags?M(e):e}var j="http://www.w3.org/1999/xlink",z="http://www.w3.org/XML/1998/namespace",H={"xlink:actuate":j,"xlink:arcrole":j,"xlink:href":j,"xlink:role":j,"xlink:show":j,"xlink:title":j,"xlink:type":j,"xml:base":z,"xml:lang":z,"xml:space":z};function G(e){return{onClick:e,onDblClick:e,onFocusIn:e,onFocusOut:e,onKeyDown:e,onKeyPress:e,onKeyUp:e,onMouseDown:e,onMouseMove:e,onMouseUp:e,onTouchEnd:e,onTouchMove:e,onTouchStart:e}}var U=G(0),K=G(null),Y=G(!0);function q(e,t){var n=t.$EV;return n||(n=t.$EV=G(null)),n[e]||1==++U[e]&&(K[e]=function(e){var t="onClick"===e||"onDblClick"===e?function(e){return function(t){0===t.button?$(t,!0,e,Z(t)):t.stopPropagation()}}(e):function(e){return function(t){$(t,!1,e,Z(t))}}(e);return document.addEventListener(f(e),t),t}(e)),n}function W(e,t){var n=t.$EV;n&&n[e]&&(0==--U[e]&&(document.removeEventListener(f(e),K[e]),K[e]=null),n[e]=null)}function $(e,t,n,o){var r=function(e){return c(e.composedPath)?e.composedPath()[0]:e.target}(e);do{if(t&&r.disabled)return;var a=r.$EV;if(a){var i=a[n];if(i&&(o.dom=r,i.event?i.event(i.data,e):i(e),e.cancelBubble))return}r=r.parentNode}while(!u(r))}function Q(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function X(){return this.defaultPrevented}function J(){return this.cancelBubble}function Z(e){var t={dom:document};return e.isDefaultPrevented=X,e.isPropagationStopped=J,e.stopPropagation=Q,Object.defineProperty(e,"currentTarget",{configurable:!0,get:function(){return t.dom}}),t}function ee(e,t,n){if(e[t]){var o=e[t];o.event?o.event(o.data,n):o(n)}else{var r=t.toLowerCase();e[r]&&e[r](n)}}function te(e,t){var n=function(n){var o=this.$V;if(o){var r=o.props||p,a=o.dom;if(l(e))ee(r,e,n);else for(var i=0;i-1&&t.options[i]&&(c=t.options[i].value),n&&a(c)&&(c=e.defaultValue),le(o,c)}}var se,pe,me=te("onInput",he),fe=te("onChange");function he(e,t,n){var o=e.value,r=t.value;if(a(o)){if(n){var i=e.defaultValue;a(i)||i===r||(t.defaultValue=i,t.value=i)}}else r!==o&&(t.defaultValue=o,t.value=o)}function Ce(e,t,n,o,r,a){64&e?ce(o,n):256&e?de(o,n,r,t):128&e&&he(o,n,r),a&&(n.$V=t)}function ge(e,t,n){64&e?function(e,t){oe(t.type)?(ne(e,"change",ae),ne(e,"click",ie)):ne(e,"input",re)}(t,n):256&e?function(e){ne(e,"change",ue)}(t):128&e&&function(e,t){ne(e,"input",me),t.onChange&&ne(e,"change",fe)}(t,n)}function be(e){return e.type&&oe(e.type)?!a(e.checked):!a(e.value)}function ve(e){e&&!S(e,null)&&e.current&&(e.current=null)}function Ne(e,t,n){e&&(c(e)||void 0!==e.current)&&n.push((function(){S(e,t)||void 0===e.current||(e.current=t)}))}function Ve(e,t){ye(e),V(e,t)}function ye(e){var t,n=e.flags,o=e.children;if(481&n){t=e.ref;var r=e.props;ve(t);var i=e.childFlags;if(!u(r))for(var l=Object.keys(r),d=0,s=l.length;d0;for(var c in i&&(a=be(n))&&ge(t,o,n),n)we(c,null,n[c],o,r,a,null);i&&Ce(t,e,o,n,!0,a)}function Se(e,t,n){var o=D(e.render(t,e.state,n)),r=n;return c(e.getChildContext)&&(r=d(n,e.getChildContext())),e.$CX=r,o}function Ie(e,t,n,o,r,a){var i=new t(n,o),l=i.$N=Boolean(t.getDerivedStateFromProps||i.getSnapshotBeforeUpdate);if(i.$SVG=r,i.$L=a,e.children=i,i.$BS=!1,i.context=o,i.props===p&&(i.props=n),l)i.state=_(i,n,i.state);else if(c(i.componentWillMount)){i.$BR=!0,i.componentWillMount();var d=i.$PS;if(!u(d)){var s=i.state;if(u(s))i.state=d;else for(var m in d)s[m]=d[m];i.$PS=null}i.$BR=!1}return i.$LI=Se(i,n,o),i}function Te(e,t,n,o,r,a){var i=e.flags|=16384;481&i?Ee(e,t,n,o,r,a):4&i?function(e,t,n,o,r,a){var i=Ie(e,e.type,e.props||p,n,o,a);Te(i.$LI,t,i.$CX,o,r,a),Me(e.ref,i,a)}(e,t,n,o,r,a):8&i?(!function(e,t,n,o,r,a){Te(e.children=D(function(e,t){return 32768&e.flags?e.type.render(e.props||p,e.ref,t):e.type(e.props||p,t)}(e,n)),t,n,o,r,a)}(e,t,n,o,r,a),Oe(e,a)):512&i||16&i?Ae(e,t,r):8192&i?function(e,t,n,o,r,a){var i=e.children,c=e.childFlags;12&c&&0===i.length&&(c=e.childFlags=2,i=e.children=O());2===c?Te(i,n,r,o,r,a):Pe(i,n,t,o,r,a)}(e,n,t,o,r,a):1024&i&&function(e,t,n,o,r){Te(e.children,e.ref,t,!1,null,r);var a=O();Ae(a,n,o),e.dom=a.dom}(e,n,t,r,a)}function Ae(e,t,n){var o=e.dom=document.createTextNode(e.children);u(t)||C(t,o,n)}function Ee(e,t,n,o,r,i){var c=e.flags,l=e.props,d=e.className,s=e.children,p=e.childFlags,m=e.dom=function(e,t){return t?document.createElementNS("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,o=o||(32&c)>0);if(a(d)||""===d||(o?m.setAttribute("class",d):m.className=d),16===p)L(m,s);else if(1!==p){var f=o&&"foreignObject"!==e.type;2===p?(16384&s.flags&&(e.children=s=M(s)),Te(s,m,n,f,null,i)):8!==p&&4!==p||Pe(s,m,n,f,null,i)}u(t)||C(t,m,r),u(l)||Be(e,c,l,m,o),Ne(e.ref,m,i)}function Pe(e,t,n,o,r,a){for(var i=0;i0,u!==d){var f=u||p;if((c=d||p)!==p)for(var h in(s=(448&r)>0)&&(m=be(c)),c){var C=f[h],g=c[h];C!==g&&we(h,C,g,l,o,m,e)}if(f!==p)for(var b in f)a(c[b])&&!a(f[b])&&we(b,f[b],null,l,o,m,e)}var v=t.children,N=t.className;e.className!==N&&(a(N)?l.removeAttribute("class"):o?l.setAttribute("class",N):l.className=N);4096&r?function(e,t){e.textContent!==t&&(e.textContent=t)}(l,v):Fe(e.childFlags,t.childFlags,e.children,v,l,n,o&&"foreignObject"!==t.type,null,e,i);s&&Ce(r,t,l,c,!1,m);var V=t.ref,y=e.ref;y!==V&&(ve(y),Ne(V,l,i))}(e,t,o,r,m,s):4&m?function(e,t,n,o,r,a,i){var l=t.children=e.children;if(u(l))return;l.$L=i;var s=t.props||p,m=t.ref,f=e.ref,h=l.state;if(!l.$N){if(c(l.componentWillReceiveProps)){if(l.$BR=!0,l.componentWillReceiveProps(s,o),l.$UN)return;l.$BR=!1}u(l.$PS)||(h=d(h,l.$PS),l.$PS=null)}De(l,h,s,n,o,r,!1,a,i),f!==m&&(ve(f),Ne(m,l,i))}(e,t,n,o,r,l,s):8&m?function(e,t,n,o,r,i,l){var u=!0,d=t.props||p,s=t.ref,m=e.props,f=!a(s),h=e.children;f&&c(s.onComponentShouldUpdate)&&(u=s.onComponentShouldUpdate(m,d));if(!1!==u){f&&c(s.onComponentWillUpdate)&&s.onComponentWillUpdate(m,d);var C=t.type,g=D(32768&t.flags?C.render(d,s,o):C(d,o));Re(h,g,n,o,r,i,l),t.children=g,f&&c(s.onComponentDidUpdate)&&s.onComponentDidUpdate(m,d)}else t.children=h}(e,t,n,o,r,l,s):16&m?function(e,t){var n=t.children,o=t.dom=e.dom;n!==e.children&&(o.nodeValue=n)}(e,t):512&m?t.dom=e.dom:8192&m?function(e,t,n,o,r,a){var i=e.children,c=t.children,l=e.childFlags,u=t.childFlags,d=null;12&u&&0===c.length&&(u=t.childFlags=2,c=t.children=O());var s=0!=(2&u);if(12&l){var p=i.length;(8&l&&8&u||s||!s&&c.length>p)&&(d=N(i[p-1],!1).nextSibling)}Fe(l,u,i,c,n,o,r,d,e,a)}(e,t,n,o,r,s):function(e,t,n,o){var r=e.ref,a=t.ref,c=t.children;if(Fe(e.childFlags,t.childFlags,e.children,c,r,n,!1,null,e,o),t.dom=e.dom,r!==a&&!i(c)){var l=c.dom;g(r,l),h(a,l)}}(e,t,o,s)}function Fe(e,t,n,o,r,a,i,c,l,u){switch(e){case 2:switch(t){case 2:Re(n,o,r,a,i,c,u);break;case 1:Ve(n,r);break;case 16:ye(n),L(r,o);break;default:!function(e,t,n,o,r,a){ye(e),Pe(t,n,o,r,N(e,!0),a),V(e,n)}(n,o,r,a,i,u)}break;case 1:switch(t){case 2:Te(o,r,a,i,c,u);break;case 1:break;case 16:L(r,o);break;default:Pe(o,r,a,i,c,u)}break;case 16:switch(t){case 16:!function(e,t,n){e!==t&&(""!==e?n.firstChild.nodeValue=t:L(n,t))}(n,o,r);break;case 2:xe(r),Te(o,r,a,i,c,u);break;case 1:xe(r);break;default:xe(r),Pe(o,r,a,i,c,u)}break;default:switch(t){case 16:_e(n),L(r,o);break;case 2:ke(r,l,n),Te(o,r,a,i,c,u);break;case 1:ke(r,l,n);break;default:var d=0|n.length,s=0|o.length;0===d?s>0&&Pe(o,r,a,i,c,u):0===s?ke(r,l,n):8===t&&8===e?function(e,t,n,o,r,a,i,c,l,u){var d,s,p=a-1,m=i-1,f=0,h=e[f],C=t[f];e:{for(;h.key===C.key;){if(16384&C.flags&&(t[f]=C=M(C)),Re(h,C,n,o,r,c,u),e[f]=C,++f>p||f>m)break e;h=e[f],C=t[f]}for(h=e[p],C=t[m];h.key===C.key;){if(16384&C.flags&&(t[m]=C=M(C)),Re(h,C,n,o,r,c,u),e[p]=C,p--,m--,f>p||f>m)break e;h=e[p],C=t[m]}}if(f>p){if(f<=m)for(s=(d=m+1)m)for(;f<=p;)Ve(e[f++],n);else!function(e,t,n,o,r,a,i,c,l,u,d,s,p){var m,f,h,C=0,g=c,b=c,v=a-c+1,V=i-c+1,_=new Int32Array(V+1),x=v===o,k=!1,L=0,w=0;if(r<4||(v|V)<32)for(C=g;C<=a;++C)if(m=e[C],wc?k=!0:L=c,16384&f.flags&&(t[c]=f=M(f)),Re(m,f,l,n,u,d,p),++w;break}!x&&c>i&&Ve(m,l)}else x||Ve(m,l);else{var B={};for(C=b;C<=i;++C)B[t[C].key]=C;for(C=g;C<=a;++C)if(m=e[C],wg;)Ve(e[g++],l);_[c-b]=C+1,L>c?k=!0:L=c,16384&(f=t[c]).flags&&(t[c]=f=M(f)),Re(m,f,l,n,u,d,p),++w}else x||Ve(m,l);else x||Ve(m,l)}if(x)ke(l,s,e),Pe(t,l,n,u,d,p);else if(k){var S=function(e){var t=0,n=0,o=0,r=0,a=0,i=0,c=0,l=e.length;l>je&&(je=l,se=new Int32Array(l),pe=new Int32Array(l));for(;n>1]]0&&(pe[n]=se[a-1]),se[a]=n)}a=r+1;var u=new Int32Array(a);i=se[a-1];for(;a-- >0;)u[a]=i,i=pe[i],se[a]=0;return u}(_);for(c=S.length-1,C=V-1;C>=0;C--)0===_[C]?(16384&(f=t[L=C+b]).flags&&(t[L]=f=M(f)),Te(f,l,n,u,(h=L+1)=0;C--)0===_[C]&&(16384&(f=t[L=C+b]).flags&&(t[L]=f=M(f)),Te(f,l,n,u,(h=L+1)i?i:a,p=0;pi)for(p=s;p0&&b(r),x.v=!1,c(n)&&n(),c(k.renderComplete)&&k.renderComplete(i,t)}function He(e,t,n,o){void 0===n&&(n=null),void 0===o&&(o=p),ze(e,t,n,o)}"undefined"!=typeof document&&window.Node&&(Node.prototype.$EV=null,Node.prototype.$V=null);var Ge=[],Ue="undefined"!=typeof Promise?Promise.resolve().then.bind(Promise.resolve()):function(e){window.setTimeout(e,0)},Ke=!1;function Ye(e,t,n,o){var r=e.$PS;if(c(t)&&(t=t(r?d(e.state,r):e.state,e.props,e.context)),a(r))e.$PS=t;else for(var i in t)r[i]=t[i];if(e.$BR)c(n)&&e.$L.push(n.bind(e));else{if(!x.v&&0===Ge.length)return void $e(e,o,n);if(-1===Ge.indexOf(e)&&Ge.push(e),Ke||(Ke=!0,Ue(We)),c(n)){var l=e.$QU;l||(l=e.$QU=[]),l.push(n)}}}function qe(e){for(var t=e.$QU,n=0,o=t.length;n0&&b(r),x.v=!1}else e.state=e.$PS,e.$PS=null;c(n)&&n.call(e)}}var Qe=function(e,t){this.state=null,this.$BR=!1,this.$BS=!0,this.$PS=null,this.$LI=null,this.$UN=!1,this.$CX=null,this.$QU=null,this.$N=!1,this.$L=null,this.$SVG=!1,this.props=e||p,this.context=t||p};t.Component=Qe,Qe.prototype.forceUpdate=function(e){this.$UN||Ye(this,{},e,!0)},Qe.prototype.setState=function(e,t){this.$UN||this.$BS||Ye(this,e,t,!1)},Qe.prototype.render=function(e,t,n){return null};t.version="7.3.3"},function(e,t,n){"use strict";var o=function(e){var t,n=Object.prototype,o=n.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",c=r.toStringTag||"@@toStringTag";function l(e,t,n,o){var r=t&&t.prototype instanceof h?t:h,a=Object.create(r.prototype),i=new w(o||[]);return a._invoke=function(e,t,n){var o=d;return function(r,a){if(o===p)throw new Error("Generator is already running");if(o===m){if("throw"===r)throw a;return S()}for(n.method=r,n.arg=a;;){var i=n.delegate;if(i){var c=x(i,n);if(c){if(c===f)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=p;var l=u(e,t,n);if("normal"===l.type){if(o=n.done?m:s,l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=m,n.method="throw",n.arg=l.arg)}}}(e,n,i),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(o){return{type:"throw",arg:o}}}e.wrap=l;var d="suspendedStart",s="suspendedYield",p="executing",m="completed",f={};function h(){}function C(){}function g(){}var b={};b[a]=function(){return this};var v=Object.getPrototypeOf,N=v&&v(v(B([])));N&&N!==n&&o.call(N,a)&&(b=N);var V=g.prototype=h.prototype=Object.create(b);function y(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function _(e){var t;this._invoke=function(n,r){function a(){return new Promise((function(t,a){!function i(t,n,r,a){var c=u(e[t],e,n);if("throw"!==c.type){var l=c.arg,d=l.value;return d&&"object"==typeof d&&o.call(d,"__await")?Promise.resolve(d.__await).then((function(e){i("next",e,r,a)}),(function(e){i("throw",e,r,a)})):Promise.resolve(d).then((function(e){l.value=e,r(l)}),(function(e){return i("throw",e,r,a)}))}a(c.arg)}(n,r,t,a)}))}return t=t?t.then(a,a):a()}}function x(e,n){var o=e.iterator[n.method];if(o===t){if(n.delegate=null,"throw"===n.method){if(e.iterator["return"]&&(n.method="return",n.arg=t,x(e,n),"throw"===n.method))return f;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var r=u(o,e.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,f;var a=r.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,f):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function w(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function B(e){if(e){var n=e[a];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function n(){for(;++r=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var l=o.call(i,"catchLoc"),u=o.call(i,"finallyLoc");if(l&&u){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),f}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;L(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,o){return this.delegate={iterator:B(e),resultName:n,nextLoc:o},"next"===this.method&&(this.arg=t),f}},e}(e.exports);try{regeneratorRuntime=o}catch(r){Function("r","regeneratorRuntime = r")(o)}},function(e,t,n){"use strict";window.Int32Array||(window.Int32Array=Array)},function(e,t,n){"use strict";(function(e){ /*! loadCSS. [c]2017 Filament Group, Inc. MIT License */ -var n;n=void 0!==e?e:void 0,t.loadCSS=function(e,t,o,r){var a,i=n.document,c=i.createElement("link");if(t)a=t;else{var l=(i.body||i.getElementsByTagName("head")[0]).childNodes;a=l[l.length-1]}var u=i.styleSheets;if(r)for(var s in r)r.hasOwnProperty(s)&&c.setAttribute(s,r[s]);c.rel="stylesheet",c.href=e,c.media="only x",function f(e){if(i.body)return e();setTimeout((function(){f(e)}))}((function(){a.parentNode.insertBefore(c,t?a:a.nextSibling)}));var d=function m(e){for(var t=c.href,n=u.length;n--;)if(u[n].href===t)return e();setTimeout((function(){m(e)}))};function p(){c.addEventListener&&c.removeEventListener("load",p),c.media=o||"all"}return c.addEventListener&&c.addEventListener("load",p),c.onloadcssdefined=d,d(p),c}}).call(this,n(118))},function(e,t,n){"use strict";t.__esModule=!0,t.Achievements=t.Score=t.Achievement=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=e.name,n=e.desc,r=e.icon_class,i=e.value;return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,a.Box,{className:r}),2,{style:{padding:"6px"}}),(0,o.createVNode)(1,"td",null,[(0,o.createVNode)(1,"h1",null,t,0),n,(0,o.createComponentVNode)(2,a.Box,{color:i?"good":"bad",content:i?"Unlocked":"Locked"})],0,{style:{"vertical-align":"top"}})],4,null,t)};t.Achievement=i;var c=function(e){var t=e.name,n=e.desc,r=e.icon_class,i=e.value;return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,a.Box,{className:r}),2,{style:{padding:"6px"}}),(0,o.createVNode)(1,"td",null,[(0,o.createVNode)(1,"h1",null,t,0),n,(0,o.createComponentVNode)(2,a.Box,{color:i>0?"good":"bad",content:i>0?"Earned "+i+" times":"Locked"})],0,{style:{"vertical-align":"top"}})],4,null,t)};t.Score=c;t.Achievements=function(e){var t=(0,r.useBackend)(e).data;return(0,o.createComponentVNode)(2,a.Tabs,{children:[t.categories.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e,children:(0,o.createComponentVNode)(2,a.Box,{as:"Table",children:t.achievements.filter((function(t){return t.category===e})).map((function(e){return e.score?(0,o.createComponentVNode)(2,c,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name):(0,o.createComponentVNode)(2,i,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name)}))})},e)})),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"High Scores",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:t.highscore.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e.name,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"#"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Key"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Score"})]}),Object.keys(e.scores).map((function(n,r){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",m:2,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:r+1}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:n===t.user_ckey&&"green",textAlign:"center",children:[0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",mr:2}),n,0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",ml:2})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.scores[n]})]},n)}))]})},e.name)}))})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.BlockQuote=void 0;var o=n(1),r=n(12),a=n(17);t.BlockQuote=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";var o,r;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=o,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(o||(t.VNodeFlags=o={})),t.ChildFlags=r,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(r||(t.ChildFlags=r={}))},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var o=n(1),r=n(12),a=n(17);var i=function(e){var t=e.color,n=e.content,i=e.className,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["color","content","className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["ColorBox",i]),color:n?null:"transparent",backgroundColor:t,content:n||"."},c)))};t.ColorBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Collapsible=void 0;var o=n(1),r=n(17),a=n(114);var i=function(e){var t,n;function i(t){var n;n=e.call(this,t)||this;var o=t.open;return n.state={open:o||!1},n}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=this.props,n=this.state.open,i=t.children,c=t.color,l=void 0===c?"default":c,u=t.title,s=t.buttons,d=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(t,["children","color","title","buttons"]);return(0,o.createComponentVNode)(2,r.Box,{mb:1,children:[(0,o.createVNode)(1,"div","Table",[(0,o.createVNode)(1,"div","Table__cell",(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({fluid:!0,color:l,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},d,{children:u}))),2),s&&(0,o.createVNode)(1,"div","Table__cell Table__cell--collapsing",s,0)],0),n&&(0,o.createComponentVNode)(2,r.Box,{mt:1,children:i})]})},i}(o.Component);t.Collapsible=i},function(e,t,n){"use strict";t.__esModule=!0,t.Dimmer=void 0;var o=n(1),r=n(17);t.Dimmer=function(e){var t=e.style,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Box,Object.assign({style:Object.assign({position:"absolute",top:0,bottom:0,left:0,right:0,"background-color":"rgba(0, 0, 0, 0.75)","z-index":1},t)},n)))}},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var o=n(1),r=n(12),a=n(17),i=n(87);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={selected:t.selected,open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},u.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},u.setSelected=function(e){this.setState({selected:e}),this.setOpen(!1),this.props.onSelected(e)},u.buildMenu=function(){var e=this,t=this.props.options,n=(void 0===t?[]:t).map((function(t){return(0,o.createVNode)(1,"div","Dropdown__menuentry",t,0,{onClick:function(n){e.setSelected(t)}},t)}));return n.length?n:"No Options Found"},u.render=function(){var e=this,t=this.props,n=t.color,l=void 0===n?"default":n,u=t.over,s=t.width,d=(t.onClick,t.selected,c(t,["color","over","width","onClick","selected"])),p=d.className,f=c(d,["className"]),m=u?!this.state.open:this.state.open,h=this.state.open?(0,o.createVNode)(1,"div",(0,r.classes)(["Dropdown__menu",u&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:s}},null,(function(t){e.menuRef=t})):null;return(0,o.createVNode)(1,"div","Dropdown",[(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({width:s,className:(0,r.classes)(["Dropdown__control","Button","Button--color--"+l,p])},f,{onClick:function(t){e.setOpen(!e.state.open)},children:[(0,o.createVNode)(1,"span","Dropdown__selected-text",this.state.selected,0),(0,o.createVNode)(1,"span","Dropdown__arrow-button",(0,o.createComponentVNode)(2,i.Icon,{name:m?"chevron-up":"chevron-down"}),2)]}))),h],0)},l}(o.Component);t.Dropdown=l},function(e,t,n){"use strict";t.__esModule=!0,t.FlexItem=t.computeFlexItemProps=t.Flex=t.computeFlexProps=void 0;var o=n(1),r=n(12),a=n(17);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.className,n=e.direction,o=e.wrap,a=e.align,c=e.justify,l=e.spacing,u=void 0===l?0:l,s=i(e,["className","direction","wrap","align","justify","spacing"]);return Object.assign({className:(0,r.classes)(["Flex",u>0&&"Flex--spacing--"+u,t]),style:Object.assign({},s.style,{"flex-direction":n,"flex-wrap":o,"align-items":a,"justify-content":c})},s)};t.computeFlexProps=c;var l=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},c(e))))};t.Flex=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.grow,o=e.order,a=e.align,c=i(e,["className","grow","order","align"]);return Object.assign({className:(0,r.classes)(["Flex__item",t]),style:Object.assign({},c.style,{"flex-grow":n,order:o,"align-self":a})},c)};t.computeFlexItemProps=u;var s=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},u(e))))};t.FlexItem=s,s.defaultHooks=r.pureComponentHooks,l.Item=s},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var o=n(1),r=n(12),a=n(17);var i=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["NoticeBox",t])},n)))};t.NoticeBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.NumberInput=void 0;var o=n(1),r=n(20),a=n(12),i=n(19),c=n(158),l=n(17);var u=function(e){var t,n;function u(t){var n;n=e.call(this,t)||this;var a=t.value;return n.inputRef=(0,o.createRef)(),n.state={value:a,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,o=t.dragging,r=t.value,a=n.props.onDrag;o&&a&&a(e,r)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,o=t.minValue,a=t.maxValue,i=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),l=n.origin-e.screenY;if(t.dragging){var u=Number.isFinite(o)?o%i:0;n.internalValue=(0,r.clamp)(n.internalValue+l*i/c,o-i,a+i),n.value=(0,r.clamp)(n.internalValue-n.internalValue%i+u,o,a),n.origin=e.screenY}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,o=t.onChange,r=t.onDrag,a=n.state,i=a.dragging,c=a.value,l=a.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!i,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),i)n.suppressFlicker(),o&&o(e,c),r&&r(e,c);else if(n.inputRef){var u=n.inputRef.current;u.value=l;try{u.focus(),u.select()}catch(s){}}},n}return n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,u.prototype.render=function(){var e=this,t=this.state,n=t.dragging,u=t.editing,s=t.value,d=t.suppressingFlicker,p=this.props,f=p.className,m=p.fluid,h=p.animated,C=p.value,g=p.unit,b=p.minValue,v=p.maxValue,N=p.height,V=p.width,y=p.lineHeight,_=p.fontSize,x=p.format,k=p.onChange,w=p.onDrag,L=C;(n||d)&&(L=s);var B=function(e){return(0,o.createVNode)(1,"div","NumberInput__content",e+(g?" "+g:""),0,{unselectable:i.tridentVersion<=4})},S=h&&!n&&!d&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:L,format:x,children:B})||B(x?x(L):L);return(0,o.createComponentVNode)(2,l.Box,{className:(0,a.classes)(["NumberInput",m&&"NumberInput--fluid",f]),minWidth:V,minHeight:N,lineHeight:y,fontSize:_,onMouseDown:this.handleDragStart,children:[(0,o.createVNode)(1,"div","NumberInput__barContainer",(0,o.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,r.clamp)((L-b)/(v-b)*100,0,100)+"%"}}),2),S,(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:u?undefined:"none",height:N,"line-height":y,"font-size":_},onBlur:function(t){if(u){var n=(0,r.clamp)(t.target.value,b,v);e.setState({editing:!1,value:n}),e.suppressFlicker(),k&&k(t,n),w&&w(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,r.clamp)(t.target.value,b,v);return e.setState({editing:!1,value:n}),e.suppressFlicker(),k&&k(t,n),void(w&&w(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},u}(o.Component);t.NumberInput=u,u.defaultHooks=a.pureComponentHooks,u.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBar=void 0;var o=n(1),r=n(12),a=n(20),i=function(e){var t=e.value,n=e.minValue,i=void 0===n?0:n,c=e.maxValue,l=void 0===c?1:c,u=e.ranges,s=void 0===u?{}:u,d=e.content,p=e.children,f=(t-i)/(l-i),m=d!==undefined||p!==undefined,h=e.color;if(!h)for(var C=0,g=Object.keys(s);C=v[0]&&t<=v[1]){h=b;break}}return h||(h="default"),(0,o.createVNode)(1,"div",(0,r.classes)(["ProgressBar","ProgressBar--color--"+h]),[(0,o.createVNode)(1,"div","ProgressBar__fill",null,1,{style:{width:100*(0,a.clamp)(f,0,1)+"%"}}),(0,o.createVNode)(1,"div","ProgressBar__content",[m&&d,m&&p,!m&&(0,a.toFixed)(100*f)+"%"],0)],4)};t.ProgressBar=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var o=n(1),r=n(12),a=n(17);var i=function(e){var t=e.className,n=e.title,i=e.level,c=void 0===i?1:i,l=e.buttons,u=e.content,s=e.children,d=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","title","level","buttons","content","children"]),p=!(0,r.isFalsy)(n)||!(0,r.isFalsy)(l),f=!(0,r.isFalsy)(u)||!(0,r.isFalsy)(s);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Section","Section--level--"+c,t])},d,{children:[p&&(0,o.createVNode)(1,"div","Section__title",[(0,o.createVNode)(1,"span","Section__titleText",n,0),(0,o.createVNode)(1,"div","Section__buttons",l,0)],4),f&&(0,o.createVNode)(1,"div","Section__content",[u,s],0)]})))};t.Section=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Tab=t.Tabs=void 0;var o=n(1),r=n(12),a=n(17),i=n(114);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t=e,n=Array.isArray(t),o=0;for(t=n?t:t[Symbol.iterator]();;){var r;if(n){if(o>=t.length)break;r=t[o++]}else{if((o=t.next()).done)break;r=o.value}var a=r;if(!a.props||"Tab"!==a.props.__type__){var i=JSON.stringify(a,null,2);throw new Error(" only accepts children of type .This is what we received: "+i)}}},u=function(e){var t,n;function u(t){var n;return(n=e.call(this,t)||this).state={activeTabKey:null},n}n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var s=u.prototype;return s.getActiveTab=function(){var e=this.state,t=this.props,n=(0,r.normalizeChildren)(t.children);l(n);var o=t.activeTab||e.activeTabKey,a=n.find((function(e){return(e.key||e.props.label)===o}));return a||(a=n[0],o=a&&(a.key||a.props.label)),{tabs:n,activeTab:a,activeTabKey:o}},s.render=function(){var e=this,t=this.props,n=t.className,l=t.vertical,u=(t.children,c(t,["className","vertical","children"])),s=this.getActiveTab(),d=s.tabs,p=s.activeTab,f=s.activeTabKey,m=null;return p&&(m=p.props.content||p.props.children),"function"==typeof m&&(m=m(f)),(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Tabs",l&&"Tabs--vertical",n])},u,{children:[(0,o.createVNode)(1,"div","Tabs__tabBox",d.map((function(t){var n=t.props,a=n.className,l=n.label,u=(n.content,n.children,n.onClick),s=n.highlight,d=c(n,["className","label","content","children","onClick","highlight"]),p=t.key||t.props.label,m=t.active||p===f;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Button,Object.assign({className:(0,r.classes)(["Tabs__tab",m&&"Tabs__tab--active",s&&!m&&"color-yellow",a]),selected:m,color:"transparent",onClick:function(n){e.setState({activeTabKey:p}),u&&u(n,t)}},d,{children:l}),p))})),0),(0,o.createVNode)(1,"div","Tabs__content",m||null,0)]})))},u}(o.Component);t.Tabs=u;var s=function(e){return null};t.Tab=s,s.defaultProps={__type__:"Tab"},u.Tab=s},function(e,t,n){"use strict";t.__esModule=!0,t.TitleBar=void 0;var o=n(1),r=n(12),a=n(28),i=n(19),c=n(37),l=n(87),u=function(e){switch(e){case c.UI_INTERACTIVE:return"good";case c.UI_UPDATE:return"average";case c.UI_DISABLED:default:return"bad"}},s=function(e){var t=e.className,n=e.title,c=e.status,s=e.fancy,d=e.onDragStart,p=e.onClose;return(0,o.createVNode)(1,"div",(0,r.classes)(["TitleBar",t]),[(0,o.createComponentVNode)(2,l.Icon,{className:"TitleBar__statusIcon",color:u(c),name:"eye"}),(0,o.createVNode)(1,"div","TitleBar__title",n===n.toLowerCase()?(0,a.toTitleCase)(n):n,0),(0,o.createVNode)(1,"div","TitleBar__dragZone",null,1,{onMousedown:function(e){return s&&d(e)}}),!!s&&(0,o.createVNode)(1,"div","TitleBar__close TitleBar__clickable",i.tridentVersion<=4?"x":"\xd7",0,{onclick:p})],0)};t.TitleBar=s,s.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=void 0;var o=n(1),r=n(29),a=n(17),i=n(12),c=n(19);var l=function(e,t,n,o){if(0===e.length)return[];var a=(0,r.zipWith)(Math.min).apply(void 0,e),i=(0,r.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(a[0]=n[0],i[0]=n[1]),o!==undefined&&(a[1]=o[0],i[1]=o[1]),(0,r.map)((function(e){return(0,r.zipWith)((function(e,t,n,o){return(e-t)/(n-t)*o}))(e,a,i,t)}))(e)},u=function(e){for(var t="",n=0;n=0||(r[n]=e[n]);return r}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),g=this.state.viewBox,b=l(r,g,i,c);if(b.length>0){var v=b[0],N=b[b.length-1];b.push([g[0]+h,N[1]]),b.push([g[0]+h,-h]),b.push([-h,-h]),b.push([-h,v[1]])}var V=u(b);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({position:"relative"},C,{children:function(t){return(0,o.normalizeProps)((0,o.createVNode)(1,"div",null,(0,o.createVNode)(32,"svg",null,(0,o.createVNode)(32,"polyline",null,null,1,{transform:"scale(1, -1) translate(0, -"+g[1]+")",fill:d,stroke:f,"stroke-width":h,points:V}),2,{viewBox:"0 0 "+g[0]+" "+g[1],preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"}}),2,Object.assign({},t),null,e.ref))}})))},r}(o.Component);s.defaultHooks=i.pureComponentHooks;var d={Line:c.tridentVersion<=4?function(e){return null}:s};t.Chart=d},function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(1),r=n(3),a=n(2);t.AiAirlock=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},l=c[i.power.main]||c[0],u=c[i.power.backup]||c[0],s=c[i.shock]||c[0];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:l.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.main,content:"Disrupt",onClick:function(){return n("disrupt-main")}}),children:[i.power.main?"Online":"Offline"," ",i.wires.main_1&&i.wires.main_2?i.power.main_timeleft>0&&"["+i.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.backup,content:"Disrupt",onClick:function(){return n("disrupt-backup")}}),children:[i.power.backup?"Online":"Offline"," ",i.wires.backup_1&&i.wires.backup_2?i.power.backup_timeleft>0&&"["+i.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:s.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(i.wires.shock&&0===i.shock),content:"Restore",onClick:function(){return n("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Temporary",onClick:function(){return n("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Permanent",onClick:function(){return n("shock-perm")}})],4),children:[2===i.shock?"Safe":"Electrified"," ",(i.wires.shock?i.shock_timeleft>0&&"["+i.shock_timeleft+"s]":"[Wires have been cut!]")||-1===i.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.id_scanner?"power-off":"times",content:i.id_scanner?"Enabled":"Disabled",selected:i.id_scanner,disabled:!i.wires.id_scanner,onClick:function(){return n("idscan-toggle")}}),children:!i.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.emergency?"power-off":"times",content:i.emergency?"Enabled":"Disabled",selected:i.emergency,onClick:function(){return n("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.locked?"lock":"unlock",content:i.locked?"Lowered":"Raised",selected:i.locked,disabled:!i.wires.bolts,onClick:function(){return n("bolt-toggle")}}),children:!i.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.lights?"power-off":"times",content:i.lights?"Enabled":"Disabled",selected:i.lights,disabled:!i.wires.lights,onClick:function(){return n("light-toggle")}}),children:!i.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.safe?"power-off":"times",content:i.safe?"Enabled":"Disabled",selected:i.safe,disabled:!i.wires.safe,onClick:function(){return n("safe-toggle")}}),children:!i.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.speed?"power-off":"times",content:i.speed?"Enabled":"Disabled",selected:i.speed,disabled:!i.wires.timing,onClick:function(){return n("speed-toggle")}}),children:!i.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.opened?"sign-out-alt":"sign-in-alt",content:i.opened?"Open":"Closed",selected:i.opened,disabled:i.locked||i.welded,onClick:function(){return n("open-close")}}),children:!(!i.locked&&!i.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),i.locked?"bolted":"",i.locked&&i.welded?" and ":"",i.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(1),r=n(20),a=n(28),i=n(3),c=n(2),l=n(37),u=n(69);t.AirAlarm=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.data,c=a.locked&&!a.siliconUser;return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.InterfaceLockNoticeBox,{siliconUser:a.siliconUser,locked:a.locked,onLockStatusChange:function(){return r("lock")}}),(0,o.createComponentVNode)(2,s,{state:t}),!c&&(0,o.createComponentVNode)(2,p,{state:t})],0)};var s=function(e){var t=(0,i.useBackend)(e).data,n=(t.environment_data||[]).filter((function(e){return e.value>=.01})),a={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},l=a[t.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.Section,{title:"Air Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[n.length>0&&(0,o.createFragment)([n.map((function(e){var t=a[e.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,color:t.color,children:[(0,r.toFixed)(e.value,2),e.unit]},e.name)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Local status",color:l.color,children:l.localStatusText}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Area status",color:t.atmos_alarm||t.fire_alarm?"bad":"good",children:(t.atmos_alarm?"Atmosphere Alarm":t.fire_alarm&&"Fire Alarm")||"Nominal"})],0)||(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!t.emagged&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},d={home:{title:"Air Controls",component:function(){return f}},vents:{title:"Vent Controls",component:function(){return m}},scrubbers:{title:"Scrubber Controls",component:function(){return C}},modes:{title:"Operating Mode",component:function(){return b}},thresholds:{title:"Alarm Thresholds",component:function(){return v}}},p=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.config,l=d[a.screen]||d.home,u=l.component();return(0,o.createComponentVNode)(2,c.Section,{title:l.title,buttons:"home"!==a.screen&&(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return r("tgui:view",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},f=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data,a=r.mode,l=r.atmos_alarm;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:l?"exclamation-triangle":"exclamation",color:l&&"caution",content:"Area Atmosphere Alarm",onClick:function(){return n(l?"reset":"alarm")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:3===a?"exclamation-triangle":"exclamation",color:3===a&&"danger",content:"Panic Siphon",onClick:function(){return n("mode",{mode:3===a?1:3})}}),(0,o.createComponentVNode)(2,c.Box,{mt:2}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"Vent Controls",onClick:function(){return n("tgui:view",{screen:"vents"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"filter",content:"Scrubber Controls",onClick:function(){return n("tgui:view",{screen:"scrubbers"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"cog",content:"Operating Mode",onClick:function(){return n("tgui:view",{screen:"modes"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"chart-bar",content:"Alarm Thresholds",onClick:function(){return n("tgui:view",{screen:"thresholds"})}})],4)},m=function(e){var t=e.state,n=(0,i.useBackend)(e).data.vents;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},h=function(e){var t=e.id_tag,n=e.long_name,r=e.power,l=e.checks,u=e.excheck,s=e.incheck,d=e.direction,p=e.external,f=e.internal,m=e.extdefault,h=e.intdefault,C=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(n),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:r?"power-off":"times",selected:r,content:r?"On":"Off",onClick:function(){return C("power",{id_tag:t,val:Number(!r)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:"release"===d?"Pressurizing":"Releasing"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:"Internal",selected:s,onClick:function(){return C("incheck",{id_tag:t,val:l})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"External",selected:u,onClick:function(){return C("excheck",{id_tag:t,val:l})}})]}),!!s&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Internal Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(f),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_internal_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:h,content:"Reset",onClick:function(){return C("reset_internal_pressure",{id_tag:t})}})]}),!!u&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"External Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(p),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_external_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:m,content:"Reset",onClick:function(){return C("reset_external_pressure",{id_tag:t})}})]})]})})},C=function(e){var t=e.state,n=(0,i.useBackend)(e).data.scrubbers;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,g,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},g=function(e){var t=e.long_name,n=e.power,r=e.scrubbing,u=e.id_tag,s=e.widenet,d=e.filter_types,p=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(t),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:n?"power-off":"times",content:n?"On":"Off",selected:n,onClick:function(){return p("power",{id_tag:u,val:Number(!n)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,c.Button,{icon:r?"filter":"sign-in-alt",color:r||"danger",content:r?"Scrubbing":"Siphoning",onClick:function(){return p("scrubbing",{id_tag:u,val:Number(!r)})}}),(0,o.createComponentVNode)(2,c.Button,{icon:s?"expand":"compress",selected:s,content:s?"Expanded range":"Normal range",onClick:function(){return p("widenet",{id_tag:u,val:Number(!s)})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Filters",children:r&&d.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,l.getGasLabel)(e.gas_id,e.gas_name),title:e.gas_name,selected:e.enabled,onClick:function(){return p("toggle_filter",{id_tag:u,val:e.gas_id})}},e.gas_id)}))||"N/A"})]})})},b=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data.modes;return r&&0!==r.length?r.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:e.selected?"check-square-o":"square-o",selected:e.selected,color:e.selected&&e.danger&&"danger",content:e.name,onClick:function(){return n("mode",{mode:e.mode})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1})],4,e.mode)})):"Nothing to show"},v=function(e){var t=(0,i.useBackend)(e),n=t.act,a=t.data.thresholds;return(0,o.createVNode)(1,"table","LabeledList",[(0,o.createVNode)(1,"thead",null,(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","color-bad","min2",16),(0,o.createVNode)(1,"td","color-average","min1",16),(0,o.createVNode)(1,"td","color-average","max1",16),(0,o.createVNode)(1,"td","color-bad","max2",16)],4),2),(0,o.createVNode)(1,"tbody",null,a.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","LabeledList__label",e.name,0),e.settings.map((function(e){return(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Button,{content:(0,r.toFixed)(e.selected,2),onClick:function(){return n("threshold",{env:e.env,"var":e.val})}}),2,null,e.val)}))],0,null,e.name)})),0)],4,{style:{width:"100%"}})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockElectronics=void 0;var o=n(1),r=n(3),a=n(2);t.AirlockElectronics=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.regions||[],l={0:{icon:"times-circle"},1:{icon:"stop-circle"},2:{icon:"check-circle"}};return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Main",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access Required",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.oneAccess?"unlock":"lock",content:i.oneAccess?"One":"All",onClick:function(){return n("one_access")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mass Modify",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"check-double",content:"Grant All",onClick:function(){return n("grant_all")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Clear All",onClick:function(){return n("clear_all")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unrestricted Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:1&i.unres_direction?"check-square-o":"square-o",content:"North",selected:1&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"1"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:2&i.unres_direction?"check-square-o":"square-o",content:"East",selected:2&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"2"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:4&i.unres_direction?"check-square-o":"square-o",content:"South",selected:4&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"4"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:8&i.unres_direction?"check-square-o":"square-o",content:"West",selected:8&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"8"})}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access",children:(0,o.createComponentVNode)(2,a.Box,{height:"261px",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:c.map((function(e){var t=e.name,r=e.accesses||[],i=l[function(e){var t=!1,n=!1;return e.forEach((function(e){e.req?t=!0:n=!0})),!t&&n?0:t&&n?1:2}(r)].icon;return(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:i,label:t,children:function(){return r.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:e.req?"check-square-o":"square-o",content:e.name,selected:e.req,onClick:function(){return n("set",{access:e.id})}})},e.id)}))}},t)}))})})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Apc=void 0;var o=n(1),r=n(3),a=n(2),i=n(69);t.Apc=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.locked&&!c.siliconUser,u={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"}},s={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"}},d=u[c.externalPower]||u[0],p=u[c.chargingStatus]||u[0],f=c.powerChannels||[],m=s[c.malfStatus]||s[0],h=c.powerCellStatus/100;return c.failTime>0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createVNode)(1,"b",null,(0,o.createVNode)(1,"h3",null,"SYSTEM FAILURE",16),2),(0,o.createVNode)(1,"i",null,"I/O regulators malfunction detected! Waiting for system reboot...",16),(0,o.createVNode)(1,"br"),"Automatic reboot in ",c.failTime," seconds...",(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reboot Now",onClick:function(){return n("reboot")}})]}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{siliconUser:c.siliconUser,locked:c.locked,onLockStatusChange:function(){return n("lock")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:d.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",content:c.isOperating?"On":"Off",selected:c.isOperating&&!l,disabled:l,onClick:function(){return n("breaker")}}),children:["[ ",d.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.chargeMode?"sync":"close",content:c.chargeMode?"Auto":"Off",disabled:l,onClick:function(){return n("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[f.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!l&&(1===e.status||3===e.status),disabled:l,onClick:function(){return n("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!l&&2===e.status,disabled:l,onClick:function(){return n("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!l&&0===e.status,disabled:l,onClick:function(){return n("channel",t.off)}})],4),children:e.powerLoad},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,c.totalLoad,0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!c.siliconUser&&(0,o.createFragment)([!!c.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:m.icon,content:m.content,color:"bad",onClick:function(){return n(m.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return n("overload")}})],0),children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.coverLocked?"lock":"unlock",content:c.coverLocked?"Engaged":"Disengaged",disabled:l,onClick:function(){return n("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.emergencyLights?"Enabled":"Disabled",disabled:l,onClick:function(){return n("emergency_lighting")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.nightshiftLights?"Enabled":"Disabled",disabled:l,onClick:function(){return n("toggle_nightshift")}})})]}),c.hijackable&&(0,o.createComponentVNode)(2,a.Section,{title:"Hijacking",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"unlock",content:"Hijack",disabled:c.hijacker,onClick:function(){return n("hijack")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lockdown",disabled:!c.lockdownavail,onClick:function(){return n("lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Drain",disabled:!c.drainavail,onClick:function(){return n("drain")}})],4)})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosAlertConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.priority||[],l=i.minor||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[c.length>0?c.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),l.length>0?l.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16)],0)})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlConsole=void 0;var o=n(1),r=n(29),a=n(20),i=n(3),c=n(2);t.AtmosControlConsole=function(e){var t=(0,i.useBackend)(e),n=t.act,l=t.data,u=l.sensors||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:!!l.tank&&u[0].long_name,children:u.map((function(e){var t=e.gases||{};return(0,o.createComponentVNode)(2,c.Section,{title:!l.tank&&e.long_name,level:2,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure",children:(0,a.toFixed)(e.pressure,2)+" kPa"}),!!e.temperature&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:(0,a.toFixed)(e.temperature,2)+" K"}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:t,children:(0,a.toFixed)(e,2)+"%"})}))(t)]})},e.id_tag)}))}),l.tank&&(0,o.createComponentVNode)(2,c.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"undo",content:"Reconnect",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Injector",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.inputting?"power-off":"times",content:l.inputting?"Injecting":"Off",selected:l.inputting,onClick:function(){return n("input")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Rate",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:l.inputRate,unit:"L/s",width:"63px",minValue:0,maxValue:200,suppressFlicker:2e3,onChange:function(e,t){return n("rate",{rate:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Regulator",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.outputting?"power-off":"times",content:l.outputting?"Open":"Closed",selected:l.outputting,onClick:function(){return n("output")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Pressure",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:parseFloat(l.outputPressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,suppressFlicker:2e3,onChange:function(e,t){return n("pressure",{pressure:t})}})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(1),r=n(3),a=n(2),i=n(37);t.AtmosFilter=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.filter_types||[];return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(c.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:c.rate===c.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.selected,content:(0,i.getGasLabel)(e.id,e.name),onClick:function(){return n("filter",{mode:e.id})}},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosMixer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.set_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.set_pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 1",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node1_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node1",{concentration:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 2",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node2_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node2",{concentration:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosPump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),i.max_rate?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onChange:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.rate===i.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BankMachine=void 0;var o=n(1),r=n(3),a=n(2);t.BankMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.current_balance,l=i.siphoning,u=i.station_name;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:u+" Vault",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Balance",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"times":"sync",content:l?"Stop Siphoning":"Siphon Credits",selected:l,onClick:function(){return n(l?"halt":"siphon")}}),children:c+" cr"})})}),(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Authorized personnel only"})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BluespaceArtillery=void 0;var o=n(1),r=n(3),a=n(2);t.BluespaceArtillery=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.notice,l=i.connected,u=i.unlocked,s=i.target;return(0,o.createFragment)([!!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:c}),l?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Target",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"crosshairs",disabled:!u,onClick:function(){return n("recalibrate")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:s?"average":"bad",fontSize:"25px",children:s||"No Target Set"})}),(0,o.createComponentVNode)(2,a.Section,{children:u?(0,o.createComponentVNode)(2,a.Box,{style:{margin:"auto"},children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"FIRE",color:"bad",disabled:!s,fontSize:"30px",textAlign:"center",lineHeight:"46px",onClick:function(){return n("fire")}})}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"bad",fontSize:"18px",children:"Bluespace artillery is currently locked."}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"Awaiting authorization via keycard reader from at minimum two station heads."})],4)})],4):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance",children:(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",content:"Complete Deployment",onClick:function(){return n("build")}})})})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Bepis=void 0;var o=n(1),r=(n(28),n(19)),a=n(2);t.Bepis=function(e){var t=e.state,n=t.config,i=t.data,c=n.ref,l=i.amount;return(0,o.createComponentVNode)(2,a.Section,{title:"Business Exploration Protocol Incubation Sink",children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.manual_power?"Off":"On",selected:!i.manual_power,onClick:function(){return(0,r.act)(c,"toggle_power")}}),children:"All you need to know about the B.E.P.I.S. and you! The B.E.P.I.S. performs hundreds of tests a second using electrical and financial resources to invent new products, or discover new technologies otherwise overlooked for being too risky or too niche to produce!"}),(0,o.createComponentVNode)(2,a.Section,{title:"Payer's Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"redo-alt",content:"Reset Account",onClick:function(){return(0,r.act)(c,"account_reset")}}),children:["Console is currently being operated by ",i.account_owner?i.account_owner:"no one","."]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Data and Statistics",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposited Credits",children:i.stored_cash}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Investment Variability",children:[i.accuracy_percentage,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Innovation Bonus",children:i.positive_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Risk Offset",color:"bad",children:i.negative_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposit Amount",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l,unit:"Credits",minValue:100,maxValue:3e4,step:100,stepPixelSize:2,onChange:function(e,t){return(0,r.act)(c,"amount",{amount:t})}})})]})}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"donate",content:"Deposit Credits",disabled:1===i.manual_power||1===i.silicon_check,onClick:function(){return(0,r.act)(c,"deposit_cash")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Withdraw Credits",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"withdraw_cash")}})]})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Market Data and Analysis",children:[(0,o.createComponentVNode)(2,a.Box,{children:["Average technology cost: ",i.mean_value]}),i.error_name&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Previous Failure Reason: Deposited cash value too low. Please insert more money for future success."}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"microscope",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"begin_experiment")},content:"Begin Testing"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.BorgPanel=void 0;var o=n(1),r=n(3),a=n(2);t.BorgPanel=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.borg||{},l=i.cell||{},u=l.charge/l.maxcharge,s=i.channels||[],d=i.modules||[],p=i.upgrades||[],f=i.ais||[],m=i.laws||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:c.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){return n("rename")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.emagged?"check-square-o":"square-o",content:"Emagged",selected:c.emagged,onClick:function(){return n("toggle_emagged")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.lockdown?"check-square-o":"square-o",content:"Locked Down",selected:c.lockdown,onClick:function(){return n("toggle_lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.scrambledcodes?"check-square-o":"square-o",content:"Scrambled Codes",selected:c.scrambledcodes,onClick:function(){return n("toggle_scrambledcodes")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:[l.missing?(0,o.createVNode)(1,"span","color-bad","No cell installed",16):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,content:l.charge+" / "+l.maxcharge}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("set_charge")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Change",onClick:function(){return n("change_cell")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Remove",color:"bad",onClick:function(){return n("remove_cell")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radio Channels",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_radio",{channel:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:c.active_module===e.type?"check-square-o":"square-o",content:e.name,selected:c.active_module===e.type,onClick:function(){return n("setmodule",{module:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upgrades",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_upgrade",{upgrade:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.connected?"check-square-o":"square-o",content:e.name,selected:e.connected,onClick:function(){return n("slavetoai",{slavetoai:e.ref})}},e.ref)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.lawupdate?"check-square-o":"square-o",content:"Lawsync",selected:c.lawupdate,onClick:function(){return n("toggle_lawupdate")}}),children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BrigTimer=void 0;var o=n(1),r=n(3),a=n(2);t.BrigTimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Cell Timer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:i.timing?"Stop":"Start",selected:i.timing,onClick:function(){return n(i.timing?"stop":"start")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:i.flash_charging?"Recharging":"Flash",disabled:i.flash_charging,onClick:function(){return n("flash")}})],4),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return n("time",{adjust:-600})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return n("time",{adjust:-100})}})," ",String(i.minutes).padStart(2,"0"),":",String(i.seconds).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return n("time",{adjust:100})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return n("time",{adjust:600})}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Short",onClick:function(){return n("preset",{preset:"short"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Medium",onClick:function(){return n("preset",{preset:"medium"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Long",onClick:function(){return n("preset",{preset:"long"})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Canister=void 0;var o=n(1),r=n(3),a=n(2);t.Canister=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:["The regulator ",i.hasHoldingTank?"is":"is not"," connected to a tank."]}),(0,o.createComponentVNode)(2,a.Section,{title:"Canister",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Relabel",onClick:function(){return n("relabel")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.tankPressure})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:i.portConnected?"good":"average",content:i.portConnected?"Connected":"Not Connected"}),!!i.isPrototype&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.restricted?"lock":"unlock",color:"caution",content:i.restricted?"Restricted to Engineering":"Public",onClick:function(){return n("restricted")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Valve",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Release Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.releasePressure/(i.maxReleasePressure-i.minReleasePressure),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.releasePressure})," kPa"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"undo",disabled:i.releasePressure===i.defaultReleasePressure,content:"Reset",onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:i.releasePressure<=i.minReleasePressure,content:"Min",onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("pressure",{pressure:"input"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:i.releasePressure>=i.maxReleasePressure,content:"Max",onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Valve",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.valveOpen?"unlock":"lock",color:i.valveOpen?i.hasHoldingTank?"caution":"danger":null,content:i.valveOpen?"Open":"Closed",onClick:function(){return n("valve")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",buttons:!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",color:i.valveOpen&&"danger",content:"Eject",onClick:function(){return n("eject")}}),children:[!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:i.holdingTank.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.holdingTank.tankPressure})," kPa"]})]}),!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Holding Tank"})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoExpress=t.Cargo=void 0;var o=n(1),r=n(29),a=n(19),i=n(2),c=n(69);t.Cargo=function(e){var t=e.state,n=t.config,r=t.data,c=n.ref,d=r.supplies||{},p=r.requests||[],f=r.cart||[],m=f.reduce((function(e,t){return e+t.cost}),0),h=!r.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,children:[0===f.length&&"Cart is empty",1===f.length&&"1 item",f.length>=2&&f.length+" items"," ",m>0&&"("+m+" cr)"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"transparent",content:"Clear",onClick:function(){return(0,a.act)(c,"clear")}})],4);return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle",children:r.docked&&!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{content:r.location,onClick:function(){return(0,a.act)(c,"send")}})||r.location}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"CentCom Message",children:r.message}),r.loan&&!r.requestonly?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Loan",children:r.loan_dispatched?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Loaned to Centcom"}):(0,o.createComponentVNode)(2,i.Button,{content:"Loan Shuttle",disabled:!(r.away&&r.docked),onClick:function(){return(0,a.act)(c,"loan")}})}):""]})}),(0,o.createComponentVNode)(2,i.Tabs,{mt:2,children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Catalog",icon:"list",lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Catalog",buttons:h,children:(0,o.createComponentVNode)(2,l,{state:t,supplies:d})})}},"catalog"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Requests ("+p.length+")",icon:"envelope",highlight:p.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Active Requests",buttons:!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Clear",color:"transparent",onClick:function(){return(0,a.act)(c,"denyall")}}),children:(0,o.createComponentVNode)(2,u,{state:t,requests:p})})}},"requests"),!r.requestonly&&(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Checkout ("+f.length+")",icon:"shopping-cart",highlight:f.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Current Cart",buttons:h,children:(0,o.createComponentVNode)(2,s,{state:t,cart:f})})}},"cart")]})],4)};var l=function(e){var t=e.state,n=e.supplies,c=t.config,l=t.data,u=c.ref,s=function(e){var t=n[e].packs;return(0,o.createVNode)(1,"table","LabeledList",t.map((function(e){return(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[e.name,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell",!!e.small_item&&(0,o.createFragment)([(0,o.createTextVNode)("Small Item")],4),0),(0,o.createVNode)(1,"td","LabeledList__cell",!!e.access&&(0,o.createFragment)([(0,o.createTextVNode)("Restrictions Apply")],4),0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:(l.self_paid?Math.round(1.1*e.cost):e.cost)+" credits",tooltip:e.desc,tooltipPosition:"left",onClick:function(){return(0,a.act)(u,"add",{id:e.id})}}),2)],4,null,e.name)})),0)};return(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e){var t=e.name;return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:t,children:s},t)}))(n)})},u=function(e){var t=e.state,n=e.requests,r=t.config,c=t.data,l=r.ref;return 0===n.length?(0,o.createComponentVNode)(2,i.Box,{color:"good",children:"No Requests"}):(0,o.createVNode)(1,"table","LabeledList",n.map((function(e){return(0,o.createFragment)([(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[(0,o.createTextVNode)("#"),e.id,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__content",e.object,0),(0,o.createVNode)(1,"td","LabeledList__cell",[(0,o.createTextVNode)("By "),(0,o.createVNode)(1,"b",null,e.orderer,0)],4),(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createVNode)(1,"i",null,e.reason,0),2),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",[e.cost,(0,o.createTextVNode)(" credits"),(0,o.createTextVNode)(" "),!c.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"check",color:"good",onClick:function(){return(0,a.act)(l,"approve",{id:e.id})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"bad",onClick:function(){return(0,a.act)(l,"deny",{id:e.id})}})],4)],0)],4)],4,e.id)})),0)},s=function(e){var t=e.state,n=e.cart,r=t.config,c=t.data,l=r.ref;return(0,o.createFragment)([0===n.length&&"Nothing in cart",n.length>0&&(0,o.createComponentVNode)(2,i.LabeledList,{children:n.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{className:"candystripe",label:"#"+e.id,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:2,children:[!!e.paid&&(0,o.createVNode)(1,"b",null,"[Paid Privately]",16)," ",e.cost," credits"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus",onClick:function(){return(0,a.act)(l,"remove",{id:e.id})}})],4),children:e.object},e.id)}))}),n.length>0&&!c.requestonly&&(0,o.createComponentVNode)(2,i.Box,{mt:2,children:1===c.away&&1===c.docked&&(0,o.createComponentVNode)(2,i.Button,{color:"green",style:{"line-height":"28px",padding:"0 12px"},content:"Confirm the order",onClick:function(){return(0,a.act)(l,"send")}})||(0,o.createComponentVNode)(2,i.Box,{opacity:.5,children:["Shuttle in ",c.location,"."]})})],0)};t.CargoExpress=function(e){var t=e.state,n=t.config,r=t.data,u=n.ref,s=r.supplies||{};return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.InterfaceLockNoticeBox,{siliconUser:r.siliconUser,locked:r.locked,onLockStatusChange:function(){return(0,a.act)(u,"lock")},accessText:"a QM-level ID card"}),!r.locked&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo Express",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Landing Location",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Cargo Bay",selected:!r.usingBeacon,onClick:function(){return(0,a.act)(u,"LZCargo")}}),(0,o.createComponentVNode)(2,i.Button,{selected:r.usingBeacon,disabled:!r.hasBeacon,onClick:function(){return(0,a.act)(u,"LZBeacon")},children:[r.beaconzone," (",r.beaconName,")"]}),(0,o.createComponentVNode)(2,i.Button,{content:r.printMsg,disabled:!r.canBuyBeacon,onClick:function(){return(0,a.act)(u,"printBeacon")}})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Notice",children:r.message})]})}),(0,o.createComponentVNode)(2,l,{state:t,supplies:s})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.CellularEmporium=void 0;var o=n(1),r=n(3),a=n(2);t.CellularEmporium=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.abilities;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Genetic Points",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Readapt",disabled:!i.can_readapt,onClick:function(){return n("readapt")}}),children:i.genetic_points_remaining})})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,buttons:(0,o.createFragment)([e.dna_cost," ",(0,o.createComponentVNode)(2,a.Button,{content:e.owned?"Evolved":"Evolve",selected:e.owned,onClick:function(){return n("evolve",{name:e.name})}})],0),children:[e.desc,(0,o.createComponentVNode)(2,a.Box,{color:"good",children:e.helptext})]},e.name)}))})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CentcomPodLauncher=void 0;var o=n(1),r=(n(28),n(3)),a=n(2);t.CentcomPodLauncher=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:"To use this, simply spawn the atoms you want in one of the five Centcom Supplypod Bays. Items in the bay will then be launched inside your supplypod, one turf-full at a time! You can optionally use the following buttons to configure how the supplypod acts."}),(0,o.createComponentVNode)(2,a.Section,{title:"Centcom Pod Customization (To be used against Helen Weinstein)",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supply Bay",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bay #1",selected:1===i.bayNumber,onClick:function(){return n("bay1")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #2",selected:2===i.bayNumber,onClick:function(){return n("bay2")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #3",selected:3===i.bayNumber,onClick:function(){return n("bay3")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #4",selected:4===i.bayNumber,onClick:function(){return n("bay4")}}),(0,o.createComponentVNode)(2,a.Button,{content:"ERT Bay",selected:5===i.bayNumber,tooltip:"This bay is located on the western edge of CentCom. Its the\nglass room directly west of where ERT spawn, and south of the\nCentCom ferry. Useful for launching ERT/Deathsquads/etc. onto\nthe station via drop pods.",onClick:function(){return n("bay5")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleport to",children:[(0,o.createComponentVNode)(2,a.Button,{content:i.bay,onClick:function(){return n("teleportCentcom")}}),(0,o.createComponentVNode)(2,a.Button,{content:i.oldArea?i.oldArea:"Where you were",disabled:!i.oldArea,onClick:function(){return n("teleportBack")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Clone Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:"Launch Clones",selected:i.launchClone,tooltip:"Choosing this will create a duplicate of the item to be\nlaunched in Centcom, allowing you to send one type of item\nmultiple times. Either way, the atoms are forceMoved into\nthe supplypod after it lands (but before it opens).",onClick:function(){return n("launchClone")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Launch style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Ordered",selected:1===i.launchChoice,tooltip:'Instead of launching everything in the bay at once, this\nwill "scan" things (one turf-full at a time) in order, left\nto right and top to bottom. undoing will reset the "scanner"\nto the top-leftmost position.',onClick:function(){return n("launchOrdered")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random",selected:2===i.launchChoice,tooltip:"Instead of launching everything in the bay at once, this\nwill launch one random turf of items at a time.",onClick:function(){return n("launchRandom")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosion",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Size",selected:1===i.explosionChoice,tooltip:"This will cause an explosion of whatever size you like\n(including flame range) to occur as soon as the supplypod\nlands. Dont worry, supply-pods are explosion-proof!",onClick:function(){return n("explosionCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Adminbus",selected:2===i.explosionChoice,tooltip:"This will cause a maxcap explosion (dependent on server\nconfig) to occur as soon as the supplypod lands. Dont worry,\nsupply-pods are explosion-proof!",onClick:function(){return n("explosionBus")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Damage",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Damage",selected:1===i.damageChoice,tooltip:"Anyone caught under the pod when it lands will be dealt\nthis amount of brute damage. Sucks to be them!",onClick:function(){return n("damageCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gib",selected:2===i.damageChoice,tooltip:"This will attempt to gib any mob caught under the pod when\nit lands, as well as dealing a nice 5000 brute damage. Ya\nknow, just to be sure!",onClick:function(){return n("damageGib")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Effects",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Stun",selected:i.effectStun,tooltip:"Anyone who is on the turf when the supplypod is launched\nwill be stunned until the supplypod lands. They cant get\naway that easy!",onClick:function(){return n("effectStun")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Delimb",selected:i.effectLimb,tooltip:"This will cause anyone caught under the pod to lose a limb,\nexcluding their head.",onClick:function(){return n("effectLimb")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Yeet Organs",selected:i.effectOrgans,tooltip:"This will cause anyone caught under the pod to lose all\ntheir limbs and organs in a spectacular fashion.",onClick:function(){return n("effectOrgans")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Movement",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bluespace",selected:i.effectBluespace,tooltip:"Gives the supplypod an advanced Bluespace Recyling Device.\nAfter opening, the supplypod will be warped directly to the\nsurface of a nearby NT-designated trash planet (/r/ss13).",onClick:function(){return n("effectBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stealth",selected:i.effectStealth,tooltip:'This hides the red target icon from appearing when you\nlaunch the supplypod. Combos well with the "Invisible"\nstyle. Sneak attack, go!',onClick:function(){return n("effectStealth")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Quiet",selected:i.effectQuiet,tooltip:"This will keep the supplypod from making any sounds, except\nfor those specifically set by admins in the Sound section.",onClick:function(){return n("effectQuiet")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Reverse Mode",selected:i.effectReverse,tooltip:"This pod will not send any items. Instead, after landing,\nthe supplypod will close (similar to a normal closet closing),\nand then launch back to the right centcom bay to drop off any\nnew contents.",onClick:function(){return n("effectReverse")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile Mode",selected:i.effectMissile,tooltip:"This pod will not send any items. Instead, it will immediately\ndelete after landing (Similar visually to setting openDelay\n& departDelay to 0, but this looks nicer). Useful if you just\nwanna fuck some shit up. Combos well with the Missile style.",onClick:function(){return n("effectMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Any Descent Angle",selected:i.effectCircle,tooltip:"This will make the supplypod come in from any angle. Im not\nsure why this feature exists, but here it is.",onClick:function(){return n("effectCircle")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Machine Gun Mode",selected:i.effectBurst,tooltip:"This will make each click launch 5 supplypods inaccuratly\naround the target turf (a 3x3 area). Combos well with the\nMissile Mode if you dont want shit lying everywhere after.",onClick:function(){return n("effectBurst")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Specific Target",selected:i.effectTarget,tooltip:"This will make the supplypod target a specific atom, instead\nof the mouses position. Smiting does this automatically!",onClick:function(){return n("effectTarget")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name/Desc",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Name/Desc",selected:i.effectName,tooltip:"Allows you to add a custom name and description.",onClick:function(){return n("effectName")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Alert Ghosts",selected:i.effectAnnounce,tooltip:"Alerts ghosts when a pod is launched. Useful if some dumb\nshit is aboutta come outta the pod.",onClick:function(){return n("effectAnnounce")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sound",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Sound",selected:i.fallingSound,tooltip:"Choose a sound to play as the pod falls. Note that for this\nto work right you should know the exact length of the sound,\nin seconds.",onClick:function(){return n("fallSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Sound",selected:i.landingSound,tooltip:"Choose a sound to play when the pod lands.",onClick:function(){return n("landingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Sound",selected:i.openingSound,tooltip:"Choose a sound to play when the pod opens.",onClick:function(){return n("openingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Sound",selected:i.leavingSound,tooltip:"Choose a sound to play when the pod departs (whether that be\ndelection in the case of a bluespace pod, or leaving for\ncentcom for a reversing pod).",onClick:function(){return n("leavingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Admin Sound Volume",selected:i.soundVolume,tooltip:"Choose the volume for the sound to play at. Default values\nare between 1 and 100, but hey, do whatever. Im a tooltip,\nnot a cop.",onClick:function(){return n("soundVolume")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Timers",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Duration",selected:4!==i.fallDuration,tooltip:"Set how long the animation for the pod falling lasts. Create\ndramatic, slow falling pods!",onClick:function(){return n("fallDuration")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Time",selected:20!==i.landingDelay,tooltip:"Choose the amount of time it takes for the supplypod to hit\nthe station. By default this value is 0.5 seconds.",onClick:function(){return n("landingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Time",selected:30!==i.openingDelay,tooltip:"Choose the amount of time it takes for the supplypod to open\nafter landing. Useful for giving whatevers inside the pod a\nnice dramatic entrance! By default this value is 3 seconds.",onClick:function(){return n("openingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Time",selected:30!==i.departureDelay,tooltip:"Choose the amount of time it takes for the supplypod to leave\nafter landing. By default this value is 3 seconds.",onClick:function(){return n("departureDelay")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.styleChoice,tooltip:"Same color scheme as the normal station-used supplypods",onClick:function(){return n("styleStandard")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.styleChoice,tooltip:"The same as the stations upgraded blue-and-white\nBluespace Supplypods",onClick:function(){return n("styleBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate",selected:4===i.styleChoice,tooltip:"A menacing black and blood-red. Great for sending meme-ops\nin style!",onClick:function(){return n("styleSyndie")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Deathsquad",selected:5===i.styleChoice,tooltip:"A menacing black and dark blue. Great for sending deathsquads\nin style!",onClick:function(){return n("styleBlue")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Cult Pod",selected:6===i.styleChoice,tooltip:"A blood and rune covered cult pod!",onClick:function(){return n("styleCult")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile",selected:7===i.styleChoice,tooltip:"A large missile. Combos well with a missile mode, so the\nmissile doesnt stick around after landing.",onClick:function(){return n("styleMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate Missile",selected:8===i.styleChoice,tooltip:"A large blood-red missile. Combos well with missile mode,\nso the missile doesnt stick around after landing.",onClick:function(){return n("styleSMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Supply Crate",selected:9===i.styleChoice,tooltip:"A large, dark-green military supply crate.",onClick:function(){return n("styleBox")}}),(0,o.createComponentVNode)(2,a.Button,{content:"HONK",selected:10===i.styleChoice,tooltip:"A colorful, clown inspired look.",onClick:function(){return n("styleHONK")}}),(0,o.createComponentVNode)(2,a.Button,{content:"~Fruit",selected:11===i.styleChoice,tooltip:"For when an orange is angry",onClick:function(){return n("styleFruit")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Invisible",selected:12===i.styleChoice,tooltip:'Makes the supplypod invisible! Useful for when you want to\nuse this feature with a gateway or something. Combos well\nwith the "Stealth" and "Quiet Landing" effects.',onClick:function(){return n("styleInvisible")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gondola",selected:13===i.styleChoice,tooltip:"This gondola can control when he wants to deliver his supplies\nif he has a smart enough mind, so offer up his body to ghosts\nfor maximum enjoyment. (Make sure to turn off bluespace and\nset a arbitrarily high open-time if you do!",onClick:function(){return n("styleGondola")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Show Contents (See Through Pod)",selected:14===i.styleChoice,tooltip:"By selecting this, the pod will instead look like whatevers\ninside it (as if it were the contents falling by themselves,\nwithout a pod). Useful for launching mechs at the station\nand standing tall as they soar in from the heavens.",onClick:function(){return n("styleSeeThrough")}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:i.numObjects+" turfs in "+i.bay,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"undo Pody Bay",tooltip:"Manually undoes the possible things to launch in the\npod bay.",onClick:function(){return n("undo")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Enter Launch Mode",selected:i.giveLauncher,tooltip:"THE CODEX ASTARTES CALLS THIS MANEUVER: STEEL RAIN",onClick:function(){return n("giveLauncher")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Selected Bay",color:"bad",tooltip:"This will delete all objs and mobs from the selected bay.",tooltipPosition:"left",onClick:function(){return n("clearBay")}})],4)})})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemAcclimator=void 0;var o=n(1),r=n(3),a=n(2);t.ChemAcclimator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Acclimator",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:[i.chem_temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.target_temperature,unit:"K",width:"59px",minValue:0,maxValue:1e3,step:5,stepPixelSize:2,onChange:function(e,t){return n("set_target_temperature",{temperature:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Acceptable Temp. Difference",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.allowed_temperature_difference,unit:"K",width:"59px",minValue:1,maxValue:i.target_temperature,stepPixelSize:2,onChange:function(e,t){n("set_allowed_temperature_difference",{temperature:t})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.enabled?"On":"Off",selected:i.enabled,onClick:function(){return n("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.max_volume,unit:"u",width:"50px",minValue:i.reagent_volume,maxValue:200,step:2,stepPixelSize:2,onChange:function(e,t){return n("change_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Operation",children:i.acclimate_state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current State",children:i.emptying?"Emptying":"Filling"})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDebugSynthesizer=void 0;var o=n(1),r=n(3),a=n(2);t.ChemDebugSynthesizer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.amount,l=i.beakerCurrentVolume,u=i.beakerMaxVolume,s=i.isBeakerLoaded,d=i.beakerContents,p=void 0===d?[]:d;return(0,o.createComponentVNode)(2,a.Section,{title:"Recipient",buttons:s?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("ejectBeaker")}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",minValue:1,maxValue:u,step:1,stepPixelSize:2,onChange:function(e,t){return n("amount",{amount:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Input",onClick:function(){return n("input")}})],4):(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Create Beaker",onClick:function(){return n("makecup")}}),children:s?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l})," / "+u+" u"]}),p.length>0?(0,o.createComponentVNode)(2,a.LabeledList,{children:p.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[e.volume," u"]},e.name)}))}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Recipient Empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Recipient"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemFilter=t.ChemFilterPane=void 0;var o=n(1),r=n(3),a=n(2);var i=function(e){var t=(0,r.useBackend)(e).act,n=e.title,i=e.list,c=e.reagentName,l=e.onReagentInput,u=n.toLowerCase();return(0,o.createComponentVNode)(2,a.Section,{title:n,minHeight:40,ml:.5,mr:.5,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{placeholder:"Reagent",width:"140px",onInput:function(e,t){return l(t)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return t("add",{which:u,name:c})}})],4),children:i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:e,onClick:function(){return t("remove",{which:u,reagent:e})}})],4,e)}))})};t.ChemFilterPane=i;var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={leftReagentName:"",rightReagentName:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setLeftReagentName=function(e){this.setState({leftReagentName:e})},c.setRightReagentName=function(e){this.setState({rightReagentName:e})},c.render=function(){var e=this,t=this.props.state,n=t.data,r=n.left,c=void 0===r?[]:r,l=n.right,u=void 0===l?[]:l;return(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Left",list:c,reagentName:this.state.leftReagentName,onReagentInput:function(t){return e.setLeftReagentName(t)},state:t})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Right",list:u,reagentName:this.state.rightReagentName,onReagentInput:function(t){return e.setRightReagentName(t)},state:t})})]})},r}(o.Component);t.ChemFilter=c},function(e,t,n){"use strict";t.__esModule=!0,t.ChemPress=void 0;var o=n(1),r=n(3),a=n(2);t.ChemPress=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.pill_size,l=i.pill_name,u=i.pill_style,s=i.pill_styles,d=void 0===s?[]:s;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",width:"43px",minValue:5,maxValue:50,step:1,stepPixelSize:2,onChange:function(e,t){return n("change_pill_size",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Name",children:(0,o.createComponentVNode)(2,a.Input,{value:l,onChange:function(e,t){return n("change_pill_name",{name:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Style",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:5,selected:e.id===u,textAlign:"center",color:"transparent",onClick:function(){return n("change_pill_style",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.class_name})},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemReactionChamber=void 0;var o=n(1),r=n(19),a=n(2),i=n(29),c=n(12);var l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).state={reagentName:"",reagentQuantity:1},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.setReagentName=function(e){this.setState({reagentName:e})},u.setReagentQuantity=function(e){this.setState({reagentQuantity:e})},u.render=function(){var e=this,t=this.props.state,n=t.config,l=t.data,u=n.ref,s=l.emptying,d=l.reagents||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Reagents",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:s?"bad":"good",children:s?"Emptying":"Filling"}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createVNode)(1,"tr","LabledList__row",[(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:"",placeholder:"Reagent Name",onInput:function(t,n){return e.setReagentName(n)}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td",(0,c.classes)(["LabeledList__buttons","LabeledList__cell"]),[(0,o.createComponentVNode)(2,a.NumberInput,{value:this.state.reagentQuantity,minValue:1,maxValue:100,step:1,stepPixelSize:3,width:"39px",onDrag:function(t,n){return e.setReagentQuantity(n)}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return(0,r.act)(u,"add",{chem:e.state.reagentName,amount:e.state.reagentQuantity})}})],4)],4),(0,i.map)((function(e,t){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return(0,r.act)(u,"remove",{chem:t})}}),children:e},t)}))(d)]})})},l}(o.Component);t.ChemReactionChamber=l},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSplitter=void 0;var o=n(1),r=n(20),a=n(3),i=n(2);t.ChemSplitter=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.straight,u=c.side,s=c.max_transfer;return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Straight",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:l,unit:"u",width:"55px",minValue:1,maxValue:s,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"straight",amount:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Side",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:u,unit:"u",width:"55px",minValue:1,maxValue:s,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"side",amount:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSynthesizer=void 0;var o=n(1),r=n(20),a=n(3),i=n(2);t.ChemSynthesizer=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.amount,u=c.current_reagent,s=c.chemicals,d=void 0===s?[]:s,p=c.possible_amounts,f=void 0===p?[]:p;return(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{children:f.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"plus",content:(0,r.toFixed)(e,0),selected:e===l,onClick:function(){return n("amount",{target:e})}},(0,r.toFixed)(e,0))}))}),(0,o.createComponentVNode)(2,i.Box,{mt:1,children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",content:e.title,width:"129px",selected:e.id===u,onClick:function(){return n("select",{reagent:e.id})}},e.id)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CodexGigas=void 0;var o=n(1),r=n(3),a=n(2);t.CodexGigas=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[i.name,(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prefix",children:["Dark","Hellish","Fallen","Fiery","Sinful","Blood","Fluffy"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:1!==i.currentSection,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Title",children:["Lord","Prelate","Count","Viscount","Vizier","Elder","Adept"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>2,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:["hal","ve","odr","neit","ci","quon","mya","folth","wren","geyr","hil","niet","twou","phi","coa"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>4,onClick:function(){return n(e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suffix",children:["the Red","the Soulless","the Master","the Lord of all things","Jr."].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:4!==i.currentSection,onClick:function(){return n(" "+e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Submit",children:(0,o.createComponentVNode)(2,a.Button,{content:"Search",disabled:i.currentSection<4,onClick:function(){return n("search")}})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ComputerFabricator=void 0;var o=n(1),r=(n(28),n(3)),a=n(2);t.ComputerFabricator=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),0!==l.state&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mb:1,icon:"circle",content:"Clear Order",onClick:function(){return c("clean_order")}}),(0,o.createComponentVNode)(2,i,{state:t})],0)};var i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return 0===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 1",minHeight:51,children:[(0,o.createComponentVNode)(2,a.Box,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,o.createComponentVNode)(2,a.Box,{mt:3,children:(0,o.createComponentVNode)(2,a.Grid,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"laptop",content:"Laptop",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"1"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"tablet-alt",content:"Tablet",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"2"})}})})]})})]}):1===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 2: Customize your device",minHeight:47,buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"good",children:[i.totalprice," cr"]}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Battery:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to operate without external utility power\nsource. Advanced batteries increase battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Stores file on your device. Advanced drives can store more\nfiles, but use more power, shortening battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to wirelessly connect to stationwide NTNet\nnetwork. Basic cards are limited to on-station use, while\nadvanced cards can operate anywhere near the station, which\nincludes asteroid outposts",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A device that allows for various paperwork manipulations,\nsuch as, scanning of documents or printing new ones.\nThis device was certified EcoFriendlyPlus and is capable of\nrecycling existing paper for printing purposes.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"1"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Card Reader:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Adds a slot that allows you to manipulate RFID cards.\nPlease note that this is not necessary to allow the device\nto read your identification, it is just necessary to\nmanipulate other cards.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_card,onClick:function(){return n("hw_card",{card:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_card,onClick:function(){return n("hw_card",{card:"1"})}})})]}),2!==i.devtype&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A component critical for your device's functionality.\nIt allows you to run programs from your hard drive.\nAdvanced CPUs use more power, but allow you to run\nmore programs on background at once.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"An advanced wireless power relay that allows your device\nto connect to nearby area power controller to provide\nalternative power source. This component is currently\nunavailable on tablet computers due to size restrictions.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"1"})}})})]})],4)]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:3,content:"Confirm Order",color:"good",textAlign:"center",fontSize:"18px",lineHeight:"26px",onClick:function(){return n("confirm_order")}})]}):2===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 3: Payment",minHeight:47,children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:"Please insert the required"})," ",(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:[i.totalprice," cr"]})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:1,textAlign:"center",fontSize:"18px",children:"Current:"}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:.5,textAlign:"center",fontSize:"18px",color:i.credits>=i.totalprice?"good":"bad",children:[i.credits," cr"]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Purchase",disabled:i.credits=10&&e<20?i.COLORS.department.security:e>=20&&e<30?i.COLORS.department.medbay:e>=30&&e<40?i.COLORS.department.science:e>=40&&e<50?i.COLORS.department.engineering:e>=50&&e<60?i.COLORS.department.cargo:e>=200&&e<230?i.COLORS.department.centcom:i.COLORS.department.other},u=function(e){var t=e.type,n=e.value;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,width:4,color:i.COLORS.damageType[t],textAlign:"center",children:n})};t.CrewConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,s=i.sensors||[];return(0,o.createComponentVNode)(2,a.Section,{minHeight:90,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,textAlign:"center",children:"Vitals"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Position"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,children:"Tracking"})]}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:(m=e.ijob,m%10==0),color:l(e.ijob),children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.ColorBox,{color:(t=e.oxydam,r=e.toxdam,s=e.burndam,d=e.brutedam,p=t+r+s+d,f=Math.min(Math.max(Math.ceil(p/25),0),5),c[f])})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:null!==e.oxydam?(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:[(0,o.createComponentVNode)(2,u,{type:"oxy",value:e.oxydam}),"/",(0,o.createComponentVNode)(2,u,{type:"toxin",value:e.toxdam}),"/",(0,o.createComponentVNode)(2,u,{type:"burn",value:e.burndam}),"/",(0,o.createComponentVNode)(2,u,{type:"brute",value:e.brutedam})]}):e.life_status?"Alive":"Dead"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:null!==e.pos_x?e.area:"N/A"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Button,{content:"Track",disabled:!e.can_track,onClick:function(){return n("select_person",{name:e.name})}})})]},e.name);var t,r,s,d,p,f,m}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(1),r=n(3),a=n(2),i=n(435);t.Cryo=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",content:c.occupant.name?c.occupant.name:"No Occupant"}),!!c.hasOccupant&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",content:c.occupant.stat,color:c.occupant.statstate}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:c.occupant.temperaturestatus,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.bodyTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant.health/c.occupant.maxHealth,color:c.occupant.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant[e.type]/100,children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant[e.type]})})},e.id)}))],0)]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",content:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",disabled:c.isOpen,onClick:function(){return n("power")},color:c.isOperating&&"green",children:c.isOperating?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.cellTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.isOpen?"unlock":"lock",onClick:function(){return n("door")},content:c.isOpen?"Open":"Closed"}),(0,o.createComponentVNode)(2,a.Button,{icon:c.autoEject?"sign-out-alt":"sign-in-alt",onClick:function(){return n("autoeject")},content:c.autoEject?"Auto":"Manual"})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!c.isBeakerLoaded,onClick:function(){return n("ejectbeaker")},content:"Eject"}),children:(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:c.isBeakerLoaded,beakerContents:c.beakerContents})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(1),r=n(2);t.BeakerContents=function(e){var t=e.beakerLoaded,n=e.beakerContents;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===n.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{color:"label",children:[e.volume," units of ",e.name]},e.name)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(1),r=n(29),a=n(3),i=n(2),c=function(e){var t=e.craftables,n=void 0===t?[]:t,r=(0,a.useBackend)(e),c=r.act,l=r.data,u=l.craftability,s=void 0===u?{}:u,d=l.display_compact,p=l.display_craftable_only;return n.map((function(e){return p&&!s[e.ref]?null:d?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,className:"candystripe",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!s[e.ref],tooltip:e.tool_text&&"Tools needed: "+e.tool_text,tooltipPosition:"left",onClick:function(){return c("make",{recipe:e.ref})}}),children:e.req_text},e.name):(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!s[e.ref],onClick:function(){return c("make",{recipe:e.ref})}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.req_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Required",children:e.req_text}),!!e.catalyst_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Catalyst",children:e.catalyst_text}),!!e.tool_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Tools",children:e.tool_text})]})},e.name)}))};t.PersonalCrafting=function(e){var t=e.state,n=(0,a.useBackend)(e),l=n.act,u=n.data,s=u.busy,d=u.display_craftable_only,p=u.display_compact,f=(0,r.map)((function(e,t){return{category:t,subcategory:e,hasSubcats:"has_subcats"in e,firstSubcatName:Object.keys(e).find((function(e){return"has_subcats"!==e}))}}))(u.crafting_recipes||{}),m=!!s&&(0,o.createComponentVNode)(2,i.Dimmer,{fontSize:"40px",textAlign:"center",children:(0,o.createComponentVNode)(2,i.Box,{mt:30,children:[(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:1})," Crafting..."]})});return(0,o.createFragment)([m,(0,o.createComponentVNode)(2,i.Section,{title:"Personal Crafting",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:p?"check-square-o":"square-o",content:"Compact",selected:p,onClick:function(){return l("toggle_compact")}}),(0,o.createComponentVNode)(2,i.Button,{icon:d?"check-square-o":"square-o",content:"Craftable Only",selected:d,onClick:function(){return l("toggle_recipes")}})],4),children:(0,o.createComponentVNode)(2,i.Tabs,{children:f.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.category,onClick:function(){return l("set_category",{category:e.category,subcategory:e.firstSubcatName})},children:function(){return!e.hasSubcats&&(0,o.createComponentVNode)(2,c,{craftables:e.subcategory,state:t})||(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,n){if("has_subcats"!==n)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n,onClick:function(){return l("set_category",{subcategory:n})},children:function(){return(0,o.createComponentVNode)(2,c,{craftables:e,state:t})}})}))(e.subcategory)})}},e.category)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.DecalPainter=void 0;var o=n(1),r=n(3),a=n(2);t.DecalPainter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.decal_list||[],l=i.color_list||[],u=i.dir_list||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Decal Type",children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.decal===i.decal_style,onClick:function(){return n("select decal",{decals:e.decal})}},e.decal)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Color",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:"red"===e.colors?"Red":"white"===e.colors?"White":"Yellow",selected:e.colors===i.decal_color,onClick:function(){return n("select color",{colors:e.colors})}},e.colors)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Direction",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:1===e.dirs?"North":2===e.dirs?"South":4===e.dirs?"East":"West",selected:e.dirs===i.decal_direction,onClick:function(){return n("selected direction",{dirs:e.dirs})}},e.dirs)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.DisposalUnit=void 0;var o=n(1),r=n(3),a=n(2);t.DisposalUnit=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return l.full_pressure?(t="good",n="Ready"):l.panel_open?(t="bad",n="Power Disabled"):l.pressure_charging?(t="average",n="Pressurizing"):(t="bad",n="Off"),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:t,children:n}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.per,color:"good"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Handle",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.flush?"toggle-on":"toggle-off",disabled:l.isai||l.panel_open,content:l.flush?"Disengage":"Engage",onClick:function(){return c(l.flush?"handle-0":"handle-1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Eject",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sign-out-alt",disabled:l.isai,content:"Eject Contents",onClick:function(){return c("eject")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",disabled:l.panel_open,selected:l.pressure_charging,onClick:function(){return c(l.pressure_charging?"pump-0":"pump-1")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.DnaVault=void 0;var o=n(1),r=n(3),a=n(2);t.DnaVault=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.completed,l=i.used,u=i.choiceA,s=i.choiceB,d=i.dna,p=i.dna_max,f=i.plants,m=i.plants_max,h=i.animals,C=i.animals_max;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"DNA Vault Database",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Human DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d/p,content:d+" / "+p+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plant DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:f/m,content:f+" / "+m+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Animal DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h/h,content:h+" / "+C+" Samples"})})]})}),!(!c||l)&&(0,o.createComponentVNode)(2,a.Section,{title:"Personal Gene Therapy",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:u,textAlign:"center",onClick:function(){return n("gene",{choice:u})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:s,textAlign:"center",onClick:function(){return n("gene",{choice:s})}})})]})]})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.EightBallVote=void 0;var o=n(1),r=n(3),a=n(2),i=n(28);t.EightBallVote=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.question,u=c.shaking,s=c.answers,d=void 0===s?[]:s;return u?(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",m:1,children:['"',l,'"']}),(0,o.createComponentVNode)(2,a.Grid,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:(0,i.toTitleCase)(e.answer),selected:e.selected,fontSize:"16px",lineHeight:"24px",textAlign:"center",mb:1,onClick:function(){return n("vote",{answer:e.answer})}}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"30px",children:e.amount})]},e.answer)}))})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No question is currently being asked."})}},function(e,t,n){"use strict";t.__esModule=!0,t.EmergencyShuttleConsole=void 0;var o=n(1),r=n(2),a=n(3);t.EmergencyShuttleConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,c=i.timer_str,l=i.enabled,u=i.emagged,s=i.engines_started,d=i.authorizations_remaining,p=i.authorizations,f=void 0===p?[]:p;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"40px",textAlign:"center",fontFamily:"monospace",children:c}),(0,o.createComponentVNode)(2,r.Box,{textAlign:"center",fontSize:"16px",mb:1,children:[(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,children:"ENGINES:"}),(0,o.createComponentVNode)(2,r.Box,{inline:!0,color:s?"good":"average",ml:1,children:s?"Online":"Idle"})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Early Launch Authorization",level:2,buttons:(0,o.createComponentVNode)(2,r.Button,{icon:"times",content:"Repeal All",color:"bad",disabled:!l,onClick:function(){return n("abort")}}),children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"exclamation-triangle",color:"good",content:"AUTHORIZE",disabled:!l,onClick:function(){return n("authorize")}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"minus",content:"REPEAL",disabled:!l,onClick:function(){return n("repeal")}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Authorizations",level:3,minHeight:"150px",buttons:(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,color:u?"bad":"good",children:u?"ERROR":"Remaining: "+d}),children:[f.length>0?f.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)})):(0,o.createComponentVNode)(2,r.Box,{bold:!0,textAlign:"center",fontSize:"16px",color:"average",children:"No Active Authorizations"}),f.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)}))]})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.EngravedMessage=void 0;var o=n(1),r=n(28),a=n(3),i=n(2);t.EngravedMessage=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.admin_mode,u=c.creator_key,s=c.creator_name,d=c.has_liked,p=c.has_disliked,f=c.hidden_message,m=c.is_creator,h=c.num_likes,C=c.num_dislikes,g=c.realdate;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,textAlign:"center",fontSize:"20px",mb:2,children:(0,r.decodeHtmlEntities)(f)}),(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-up",content:" "+h,disabled:m,selected:d,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("like")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"circle",disabled:m,selected:!p&&!d,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("neutral")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-down",content:" "+C,disabled:m,selected:p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("dislike")}})})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Created On",children:g})})}),(0,o.createComponentVNode)(2,i.Section),!!l&&(0,o.createComponentVNode)(2,i.Section,{title:"Admin Panel",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Delete",color:"bad",onClick:function(){return n("delete")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Ckey",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Character Name",children:s})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(1),r=n(29),a=n(70),i=n(20),c=n(156),l=n(3),u=n(2),s=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e){var t=(0,l.useBackend)(e),n=t.act,d=t.data,p=d.currentArea,f=d.currentCoords,m=d.globalmode,h=d.power,C=d.tag,g=d.updating,b=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,c.vecLength)((0,c.vecSubtract)(s(f),s(e.coords))));return Object.assign({},e,{dist:n,index:t})})),(0,r.sortBy)((function(e){return e.dist===undefined}),(function(e){return e.entrytag}))])(d.signals||[]);return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Control",buttons:(0,o.createComponentVNode)(2,u.Button,{icon:"power-off",content:h?"On":"Off",selected:h,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Tag",children:(0,o.createComponentVNode)(2,u.Button,{icon:"pencil-alt",content:C,onClick:function(){return n("rename")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,u.Button,{icon:g?"unlock":"lock",content:g?"AUTO":"MANUAL",color:!g&&"bad",onClick:function(){return n("updating")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,u.Button,{icon:"sync",content:m?"MAXIMUM":"LOCAL",selected:!m,onClick:function(){return n("globalmode")}})})]})}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,u.Box,{fontSize:"18px",children:[p," (",f,")"]})}),(0,o.createComponentVNode)(2,u.Section,{title:"Detected Signals",children:(0,o.createComponentVNode)(2,u.Table,{children:[(0,o.createComponentVNode)(2,u.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,u.Table.Cell,{content:"Name"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Direction"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Coordinates"})]}),b.map((function(e){return(0,o.createComponentVNode)(2,u.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,u.Table.Cell,{bold:!0,color:"label",children:e.entrytag}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,opacity:e.dist!==undefined&&(0,i.clamp)(1.2/Math.log(Math.E+e.dist/20),.4,1),children:[e.degrees!==undefined&&(0,o.createComponentVNode)(2,u.Icon,{mr:1,size:1.2,name:"arrow-up",rotation:e.degrees}),e.dist!==undefined&&e.dist+"m"]}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,children:e.coords})]},e.entrytag+e.coords+e.index)}))]})})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(1),r=n(3),a=n(2);t.GravityGenerator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.breaker,l=i.charge_count,u=i.charging_state,s=i.on,d=i.operational;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No data available"})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Breaker",children:(0,o.createComponentVNode)(2,a.Button,{icon:c?"power-off":"times",content:c?"On":"Off",selected:c,disabled:!d,onClick:function(){return n("gentoggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/100,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",children:[0===u&&(s&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Fully Charged"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Charging"})),1===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Charging"}),2===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Discharging"})]})]})}),d&&0!==u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"WARNING - Radiation detected"}),d&&0===u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No radiation detected"})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(1),r=n(3),a=n(2);t.GulagTeleporterConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.teleporter,l=i.teleporter_lock,u=i.teleporter_state_open,s=i.teleporter_location,d=i.beacon,p=i.beacon_location,f=i.id,m=i.id_name,h=i.can_teleport,C=i.goal,g=void 0===C?0:C,b=i.prisoner,v=void 0===b?{}:b;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Teleporter Console",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:u?"Open":"Closed",disabled:l,selected:u,onClick:function(){return n("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l?"lock":"unlock",content:l?"Locked":"Unlocked",selected:l,disabled:u,onClick:function(){return n("teleporter_lock")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleporter Unit",color:c?"good":"bad",buttons:!c&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_teleporter")}}),children:c?s:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:d?"good":"bad",buttons:!d&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_beacon")}}),children:d?p:"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Prisoner Details",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prisoner ID",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:f?m:"No ID",onClick:function(){return n("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:g,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return n("set_goal",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:v.name?v.name:"No Occupant"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Criminal Status",children:v.crimstat?v.crimstat:"No Status"})]})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Process Prisoner",disabled:!h,textAlign:"center",color:"bad",onClick:function(){return n("teleport")}})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(1),r=n(3),a=n(2);t.GulagItemReclaimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.mobs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",children:(0,o.createComponentVNode)(2,a.Table,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{content:"Retrieve Items",disabled:!i.can_reclaim,onClick:function(){return n("release_items",{mobref:e.mob})}})})]},e.mob)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(1),r=n(3),a=n(2);t.Holodeck=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_toggle_safety,l=i.default_programs,u=void 0===l?[]:l,s=i.emag_programs,d=void 0===s?[]:s,p=i.emagged,f=i.program;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:p?"unlock":"lock",content:"Safeties",color:"bad",disabled:!c,selected:!p,onClick:function(){return n("safety")}}),children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),textAlign:"center",selected:e.type===f,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))}),!!p&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),color:"bad",textAlign:"center",selected:e.type===f,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(1),r=n(3),a=n(2);t.ImplantChair=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:i.occupant.name?i.occupant.name:"No Occupant"}),!!i.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===i.occupant.stat?"good":1===i.occupant.stat?"average":"bad",children:0===i.occupant.stat?"Conscious":1===i.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.open?"unlock":"lock",color:i.open?"default":"red",content:i.open?"Open":"Closed",onClick:function(){return n("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implant Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:i.ready?i.special_name||"Implant":"Recharging",onClick:function(){return n("implant")}}),0===i.ready&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implants Remaining",children:[i.ready_implants,1===i.replenishing&&(0,o.createComponentVNode)(2,a.Icon,{name:"sync",color:"red",spin:!0})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(1),r=n(3),a=n(2);t.Intellicard=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=u||s,l=i.name,u=i.isDead,s=i.isBraindead,d=i.health,p=i.wireless,f=i.radio,m=i.wiping,h=i.laws,C=void 0===h?[]:h;return(0,o.createComponentVNode)(2,a.Section,{title:l||"Empty Card",buttons:!!l&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:m?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return n("wipe")}}),children:!!l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:c?"bad":"good",children:c?"Offline":"Operation"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Software Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"Wireless Activity",selected:p,onClick:function(){return n("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:f,onClick:function(){return n("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(1),r=n(3),a=n(2);t.KeycardAuth=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:1===i.waiting&&(0,o.createVNode)(1,"span",null,"Waiting for another device to confirm your request...",16)}),(0,o.createComponentVNode)(2,a.Box,{children:0===i.waiting&&(0,o.createFragment)([!!i.auth_required&&(0,o.createComponentVNode)(2,a.Button,{icon:"check-square",color:"red",textAlign:"center",lineHeight:"60px",fluid:!0,onClick:function(){return n("auth_swipe")},content:"Authorize"}),0===i.auth_required&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",fluid:!0,onClick:function(){return n("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return n("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return n("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(1),r=n(28),a=n(3),i=n(2);t.LaborClaimConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.can_go_home,u=c.id_points,s=c.ores,d=c.status_info,p=c.unclaimed_points;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",children:d}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,i.Button,{content:"Move shuttle",disabled:!l,onClick:function(){return n("move_shuttle")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Points",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Claim points",disabled:!p,onClick:function(){return n("claim_points")}}),children:p})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),s.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(1),r=n(3),a=n(2);t.LanguageMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.admin_mode,l=i.is_living,u=i.omnitongue,s=i.languages,d=void 0===s?[]:s,p=i.unknown_languages,f=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createFragment)([!!l&&(0,o.createComponentVNode)(2,a.Button,{content:e.is_default?"Default Language":"Select as Default",disabled:!e.can_speak,selected:e.is_default,onClick:function(){return n("select_default",{language_name:e.name})}}),!!c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return n("remove_language",{language_name:e.name})}})],4)],0),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})}),!!c&&(0,o.createComponentVNode)(2,a.Section,{title:"Unknown Languages",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Omnitongue "+(u?"Enabled":"Disabled"),selected:u,onClick:function(){return n("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:f.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),children:[e.desc," ","Key: ,",e.key," ",!!e.shadow&&"(gained from mob)"," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadConsole=t.LaunchpadRemote=t.LaunchpadControl=t.LaunchpadButtonPad=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createComponentVNode)(2,a.Grid,{width:"1px",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",mb:1,onClick:function(){return t("move_pos",{x:-1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",mb:1,onClick:function(){return t("move_pos",{y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"R",mb:1,onClick:function(){return t("set_pos",{x:0,y:0})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",mb:1,onClick:function(){return t("move_pos",{y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",mb:1,onClick:function(){return t("move_pos",{x:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:-1})}})]})]})};t.LaunchpadButtonPad=i;var c=function(e){var t=e.topLevel,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.x,s=l.y,d=l.pad_name,p=l.range;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:d,width:"170px",onChange:function(e,t){return c("rename",{name:t})}}),level:t?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return c("remove")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Controls",level:2,children:(0,o.createComponentVNode)(2,i,{state:e.state})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Target",level:2,children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"26px",children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"X:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:u,minValue:-p,maxValue:p,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",stepPixelSize:10,onChange:function(e,t){return c("set_pos",{x:t})}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"Y:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:s,minValue:-p,maxValue:p,stepPixelSize:10,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",onChange:function(e,t){return c("set_pos",{y:t})}})]})]})})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return c("launch")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Pull",textAlign:"center",onClick:function(){return c("pull")}})})]})]})};t.LaunchpadControl=c;t.LaunchpadRemote=function(e){var t=(0,r.useBackend)(e).data,n=t.has_pad,i=t.pad_closed;return n?i?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Launchpad Closed"}):(0,o.createComponentVNode)(2,c,{topLevel:!0,state:e.state}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Launchpad Connected"})};t.LaunchpadConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.launchpads,u=void 0===l?[]:l,s=i.selected_id;return u.length<=0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"}):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.Box,{style:{"border-right":"2px solid rgba(255, 255, 255, 0.1)"},minHeight:"190px",mr:1,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name,selected:s===e.id,color:"transparent",onClick:function(){return n("select_pad",{id:e.id})}},e.name)}))})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:s?(0,o.createComponentVNode)(2,c,{state:e.state}):(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(1),r=n(3),a=n(2);t.MechBayPowerConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.recharge_port,c=i&&i.mech,l=c&&c.cell;return(0,o.createComponentVNode)(2,a.Section,{title:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.health/c.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.charge/l.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.charge})," / "+l.maxcharge]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Mule=void 0;var o=n(1),r=n(3),a=n(2),i=n(69);t.Mule=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.locked&&!c.siliconUser,u=c.siliconUser,s=c.on,d=c.cell,p=c.cellPercent,f=c.load,m=c.mode,h=c.modeStatus,C=c.haspai,g=c.autoReturn,b=c.autoPickup,v=c.reportDelivery,N=c.destination,V=c.home,y=c.id,_=c.destinations,x=void 0===_?[]:_;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{siliconUser:u,locked:l}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",minHeight:"110px",buttons:!l&&(0,o.createComponentVNode)(2,a.Button,{icon:s?"power-off":"times",content:s?"On":"Off",selected:s,onClick:function(){return n("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:d?p/100:0,color:d?"good":"bad"}),(0,o.createComponentVNode)(2,a.Grid,{mt:1,children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",color:h,children:m})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Load",color:f?"good":"average",children:f||"None"})})})]})]}),!l&&(0,o.createComponentVNode)(2,a.Section,{title:"Controls",buttons:(0,o.createFragment)([!!f&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Unload",onClick:function(){return n("unload")}}),!!C&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject PAI",onClick:function(){return n("ejectpai")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:(0,o.createComponentVNode)(2,a.Input,{value:y,onChange:function(e,t){return n("setid",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:N||"None",options:x,width:"150px",onSelected:function(e){return n("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"stop",content:"Stop",onClick:function(){return n("stop")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"play",content:"Go",onClick:function(){return n("go")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:V,options:x,width:"150px",onSelected:function(e){return n("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",content:"Go Home",onClick:function(){return n("home")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:g,content:"Auto-Return",onClick:function(){return n("autored")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:b,content:"Auto-Pickup",onClick:function(){return n("autopick")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:v,content:"Report Delivery",onClick:function(){return n("report")}})]})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(1),r=n(3),a=n(2);t.NotificationPreferences=function(e){var t=(0,r.useBackend)(e),n=t.act,i=(t.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,a.Section,{title:"Ghost Role Notifications",children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:e.enabled?"times":"check",content:e.desc,color:e.enabled?"bad":"good",onClick:function(){return n("toggle_ignore",{key:e.key})}},e.key)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtnetRelay=void 0;var o=n(1),r=n(3),a=n(2);t.NtnetRelay=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.enabled,l=i.dos_capacity,u=i.dos_overload,s=i.dos_crashed;return(0,o.createComponentVNode)(2,a.Section,{title:"Network Buffer",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",selected:c,content:c?"ENABLED":"DISABLED",onClick:function(){return n("toggle")}}),children:s?(0,o.createComponentVNode)(2,a.Box,{fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",children:"NETWORK BUFFER OVERFLOW"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",children:"OVERLOAD RECOVERY MODE"}),(0,o.createComponentVNode)(2,a.Box,{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",color:"bad",children:"ADMINISTRATOR OVERRIDE"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",color:"bad",children:"CAUTION - DATA LOSS MAY OCCUR"}),(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"PURGE BUFFER",mt:1,color:"bad",onClick:function(){return n("restart")}})]}):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,minValue:0,maxValue:l,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})," GQ"," / ",l," GQ"]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosArcade=void 0;var o=n(1),r=n(3),a=n(2);t.NtosArcade=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:2,children:[(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerHitpoints,minValue:0,maxValue:30,ranges:{olive:[31,Infinity],good:[20,31],average:[10,20],bad:[-Infinity,10]},children:[i.PlayerHitpoints,"HP"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Magic",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerMP,minValue:0,maxValue:10,ranges:{purple:[11,Infinity],violet:[3,11],bad:[-Infinity,3]},children:[i.PlayerMP,"MP"]})})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Section,{backgroundColor:1===i.PauseState?"#1b3622":"#471915",children:i.Status})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.Hitpoints/45,minValue:0,maxValue:45,ranges:{good:[30,Infinity],average:[5,30],bad:[-Infinity,5]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.Hitpoints}),"HP"]}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Section,{inline:!0,width:26,textAlign:"center",children:(0,o.createVNode)(1,"img",null,null,1,{src:i.BossID})})]})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Button,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Attack")},content:"Attack!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Heal")},content:"Heal!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Recharge_Power")},content:"Recharge!"})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Start_Game")},content:"Begin Game"}),(0,o.createComponentVNode)(2,a.Button,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Dispense_Tickets")},content:"Claim Tickets"})]}),(0,o.createComponentVNode)(2,a.Box,{color:i.TicketCount>=1?"good":"normal",children:["Earned Tickets: ",i.TicketCount]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosConfiguration=void 0;var o=n(1),r=n(3),a=n(2);t.NtosConfiguration=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.power_usage,l=i.battery_exists,u=i.battery,s=void 0===u?{}:u,d=i.disk_size,p=i.disk_used,f=i.hardware,m=void 0===f?[]:f;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Supply",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",c,"W"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Battery Status",color:!l&&"average",children:l?(0,o.createComponentVNode)(2,a.ProgressBar,{value:s.charge,minValue:0,maxValue:s.max,ranges:{good:[s.max/2,Infinity],average:[s.max/4,s.max/2],bad:[-Infinity,s.max/4]},children:[s.charge," / ",s.max]}):"Not Available"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"File System",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:p,minValue:0,maxValue:d,color:"good",children:[p," GQ / ",d," GQ"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hardware Components",children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,buttons:(0,o.createFragment)([!e.critical&&(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Enabled",checked:e.enabled,mr:1,onClick:function(){return n("PC_toggle_component",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",e.powerusage,"W"]})],0),children:e.desc},e.name)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosMain=void 0;var o=n(1),r=n(3),a=n(2),i={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug"};t.NtosMain=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.programs,u=void 0===l?[]:l,s=c.has_light,d=c.light_on,p=c.comp_light_color;return(0,o.createFragment)([!!s&&(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Button,{width:"144px",icon:"lightbulb",selected:d,onClick:function(){return n("PC_toggle_light")},children:["Flashlight: ",d?"ON":"OFF"]}),(0,o.createComponentVNode)(2,a.Button,{ml:1,onClick:function(){return n("PC_light_color")},children:["Color:",(0,o.createComponentVNode)(2,a.ColorBox,{ml:1,color:p})]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,lineHeight:"24px",color:"transparent",icon:i[e.name]||"window-maximize-o",content:e.desc,onClick:function(){return n("PC_runprogram",{name:e.name})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,width:3,children:!!e.running&&(0,o.createComponentVNode)(2,a.Button,{lineHeight:"24px",color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return n("PC_killprogram",{name:e.name})}})})]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetChat=void 0;var o=n(1),r=n(3),a=n(2);(0,n(51).createLogger)("ntos chat");t.NtosNetChat=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_admin,l=i.adminmode,u=i.authed,s=i.username,d=i.active_channel,p=i.is_operator,f=i.all_channels,m=void 0===f?[]:f,h=i.clients,C=void 0===h?[]:h,g=i.messages,b=void 0===g?[]:g,v=null!==d,N=u||l;return(0,o.createComponentVNode)(2,a.Section,{height:"600px",children:(0,o.createComponentVNode)(2,a.Table,{height:"580px",children:(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"537px",overflowY:"scroll",children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"New Channel...",onCommit:function(e,t){return n("PRG_newchannel",{new_channel_name:t})}}),m.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.chan,selected:e.id===d,color:"transparent",onClick:function(){return n("PRG_joinchannel",{id:e.id})}},e.chan)}))]}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,mt:1,content:s+"...",currentValue:s,onCommit:function(e,t){return n("PRG_changename",{new_name:t})}}),!!c&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"ADMIN MODE: "+(l?"ON":"OFF"),color:l?"bad":"good",onClick:function(){return n("PRG_toggleadmin")}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Box,{height:"560px",overflowY:"scroll",children:v&&(N?b.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.msg},e.msg)})):(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,o.createComponentVNode)(2,a.Input,{fluid:!0,selfClear:!0,mt:1,onEnter:function(e,t){return n("PRG_speak",{message:t})}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"477px",overflowY:"scroll",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.name},e.name)}))}),v&&N&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Save log...",defaultValue:"new_log",onCommit:function(e,t){return n("PRG_savelog",{log_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Leave Channel",onClick:function(){return n("PRG_leavechannel")}})],4),!!p&&u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Delete Channel",onClick:function(){return n("PRG_deletechannel")}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Rename Channel...",onCommit:function(e,t){return n("PRG_renamechannel",{new_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Set Password...",onCommit:function(e,t){return n("PRG_setpassword",{new_password:t})}})],4)]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDownloader=void 0;var o=n(1),r=n(3),a=n(2);t.NtosNetDownloader=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.disk_size,s=l.disk_used,d=l.downloadable_programs,p=void 0===d?[]:d,f=l.error,m=l.hacked_programs,h=void 0===m?[]:m,C=l.hackedavailable;return(0,o.createFragment)([!!f&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:f}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",onClick:function(){return c("PRG_reseterror")}})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk usage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s,minValue:0,maxValue:u,children:s+" GQ / "+u+" GQ"})})})}),(0,o.createComponentVNode)(2,a.Section,{children:p.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))}),!!C&&(0,o.createComponentVNode)(2,a.Section,{title:"UNKNOWN Software Repository",children:[(0,o.createComponentVNode)(2,a.NoticeBox,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),h.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))]})],0)};var i=function(e){var t=e.program,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.disk_size,u=c.disk_used,s=c.downloadcompletion,d=c.downloading,p=c.downloadname,f=c.downloadsize,m=l-u;return(0,o.createComponentVNode)(2,a.Box,{mb:3,children:[(0,o.createComponentVNode)(2,a.Flex,{align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:1,children:t.filedesc}),(0,o.createComponentVNode)(2,a.Flex.Item,{color:"label",nowrap:!0,children:[t.size," GQ"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,width:"94px",textAlign:"center",children:t.filename===p&&(0,o.createComponentVNode)(2,a.ProgressBar,{color:"green",minValue:0,maxValue:f,value:s})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Download",disabled:d||t.size>m,onClick:function(){return i("PRG_downloadfile",{filename:t.filename})}})})]}),"Compatible"!==t.compatibility&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),t.size>m&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,color:"label",fontSize:"12px",children:t.fileinfo})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosSupermatterMonitor=void 0;var o=n(1),r=n(29),a=n(70),i=n(20),c=n(3),l=n(2),u=n(37),s=function(e){return Math.log2(16+Math.max(0,e))-4};t.NtosSupermatterMonitor=function(e){var t=e.state,n=(0,c.useBackend)(e),p=n.act,f=n.data,m=f.active,h=f.SM_integrity,C=f.SM_power,g=f.SM_ambienttemp,b=f.SM_ambientpressure;if(!m)return(0,o.createComponentVNode)(2,d,{state:t});var v=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(f.gases||[]),N=Math.max.apply(Math,[1].concat(v.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:C,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,i.toFixed)(C)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(g),minValue:0,maxValue:s(1e4),ranges:{teal:[-Infinity,s(80)],good:[s(80),s(373)],average:[s(373),s(1e3)],bad:[s(1e3),Infinity]},children:(0,i.toFixed)(g)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(b),minValue:0,maxValue:s(5e4),ranges:{good:[s(1),s(300)],average:[-Infinity,s(1e3)],bad:[s(1e3),+Infinity]},children:(0,i.toFixed)(b)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return p("PRG_clear")}}),children:(0,o.createComponentVNode)(2,l.Box.Forced,{height:24*v.length+"px",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:v.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,u.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,u.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:N,children:(0,i.toFixed)(e.amount,2)+"%"})},e.name)}))})})})})]})};var d=function(e){var t=(0,c.useBackend)(e),n=t.act,r=t.data.supermatters,a=void 0===r?[]:r;return(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return n("PRG_refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:a.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.uid+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return n("PRG_set",{target:e.uid})}})})]},e.uid)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosWrapper=void 0;var o=n(1),r=n(3),a=n(2),i=n(116);t.NtosWrapper=function(e){var t=e.children,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.PC_batteryicon,s=l.PC_showbatteryicon,d=l.PC_batterypercent,p=l.PC_ntneticon,f=l.PC_apclinkicon,m=l.PC_stationtime,h=l.PC_programheaders,C=void 0===h?[]:h,g=l.PC_showexitprogram;return(0,o.createVNode)(1,"div","NtosWrapper",[(0,o.createVNode)(1,"div","NtosWrapper__header NtosHeader",[(0,o.createVNode)(1,"div","NtosHeader__left",[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:2,children:m}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,italic:!0,mr:2,opacity:.33,children:"NtOS"})],4),(0,o.createVNode)(1,"div","NtosHeader__right",[C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:e.icon})},e.icon)})),(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:p&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:p})}),!!s&&u&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:[u&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:u}),d&&d]}),f&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:f})}),!!g&&(0,o.createComponentVNode)(2,a.Button,{width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-minimize-o",tooltip:"Minimize",tooltipPosition:"bottom",onClick:function(){return c("PC_minimize")}}),!!g&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-left",onClick:function(){return c("PC_exit")}}),!g&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"power-off",tooltip:"Power off",tooltipPosition:"bottom-left",onClick:function(){return c("PC_shutdown")}})],0)],4,{onMouseDown:function(){(0,i.refocusLayout)()}}),(0,o.createVNode)(1,"div","NtosWrapper__content",t,0)],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(1),r=n(12),a=n(3),i=n(2),c=function(e){var t=(0,a.useBackend)(e).act;return(0,o.createComponentVNode)(2,i.Box,{width:"185px",children:(0,o.createComponentVNode)(2,i.Grid,{width:"1px",children:[["1","4","7","C"],["2","5","8","0"],["3","6","9","E"]].map((function(e){return(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,mb:1,content:e,textAlign:"center",fontSize:"40px",lineHeight:"50px",width:"55px",className:(0,r.classes)(["NuclearBomb__Button","NuclearBomb__Button--keypad","NuclearBomb__Button--"+e]),onClick:function(){return t("keypad",{digit:e})}},e)}))},e[0])}))})})};t.NuclearBomb=function(e){var t=e.state,n=(0,a.useBackend)(e),r=n.act,l=n.data,u=(l.anchored,l.disk_present,l.status1),s=l.status2;return(0,o.createComponentVNode)(2,i.Box,{m:1,children:[(0,o.createComponentVNode)(2,i.Box,{mb:1,className:"NuclearBomb__displayBox",children:u}),(0,o.createComponentVNode)(2,i.Flex,{mb:1.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i.Box,{className:"NuclearBomb__displayBox",children:s})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",fontSize:"24px",lineHeight:"23px",textAlign:"center",width:"43px",ml:1,mr:"3px",mt:"3px",className:"NuclearBomb__Button NuclearBomb__Button--keypad",onClick:function(){return r("eject_disk")}})})]}),(0,o.createComponentVNode)(2,i.Flex,{ml:"3px",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,c,{state:t})}),(0,o.createComponentVNode)(2,i.Flex.Item,{ml:1,width:"129px",children:(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ARM",textAlign:"center",fontSize:"28px",lineHeight:"32px",mb:1,className:"NuclearBomb__Button NuclearBomb__Button--C",onClick:function(){return r("arm")}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ANCHOR",textAlign:"center",fontSize:"28px",lineHeight:"32px",className:"NuclearBomb__Button NuclearBomb__Button--E",onClick:function(){return r("anchor")}}),(0,o.createComponentVNode)(2,i.Box,{textAlign:"center",color:"#9C9987",fontSize:"80px",children:(0,o.createComponentVNode)(2,i.Icon,{name:"radiation"})}),(0,o.createComponentVNode)(2,i.Box,{height:"80px",className:"NuclearBomb__NTIcon"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(1),r=n(3),a=n(2);t.OperatingComputer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.table,l=i.surgeries,u=void 0===l?[]:l,s=i.procedures,d=void 0===s?[]:s,p=i.patient,f=void 0===p?{}:p;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Patient State",children:[!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Table Detected"}),(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Patient State",level:2,children:f?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:f.statstate,children:f.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Type",children:f.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:f.health,minValue:f.minHealth,maxValue:f.maxHealth,color:f.health>=0?"good":"average",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:f.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:f[e.type]/f.maxHealth,color:"bad",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:f[e.type]})})},e.type)}))]}):"No Patient Detected"}),(0,o.createComponentVNode)(2,a.Section,{title:"Initiated Procedures",level:2,children:d.length?d.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Next Step",children:[e.next_step,e.chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.chems_needed],0)]}),!!i.alternative_step&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternative Step",children:[e.alternative_step,e.alt_chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.alt_chems_needed],0)]})]})},e.name)})):"No Active Procedures"})]})]},"state"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Surgery Procedures",children:(0,o.createComponentVNode)(2,a.Section,{title:"Advanced Surgery Procedures",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Sync Research Database",onClick:function(){return n("sync")}}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,children:e.desc},e.name)}))]})},"procedures")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreBox=void 0;var o=n(1),r=n(28),a=n(19),i=n(2);t.OreBox=function(e){var t=e.state,n=t.config,c=t.data,l=n.ref,u=c.materials;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Ores",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Empty",onClick:function(){return(0,a.act)(l,"removeall")}}),children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Ore"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Amount"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.name)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.amount})})]},e.type)}))]})}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Box,{children:["All ores will be placed in here when you are wearing a mining stachel on your belt or in a pocket while dragging the ore box.",(0,o.createVNode)(1,"br"),"Gibtonite is not accepted."]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemptionMachine=void 0;var o=n(1),r=n(28),a=n(3),i=n(2);t.OreRedemptionMachine=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,l=r.unclaimedPoints,u=r.materials,s=r.alloys,d=r.diskDesigns,p=r.hasDisk;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.BlockQuote,{mb:1,children:["This machine only accepts ore.",(0,o.createVNode)(1,"br"),"Gibtonite and Slag are not accepted."]}),(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:1,children:"Unclaimed points:"}),l,(0,o.createComponentVNode)(2,i.Button,{ml:2,content:"Claim",disabled:0===l,onClick:function(){return n("Claim")}})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{mb:1,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject design disk",onClick:function(){return n("diskEject")}})}),(0,o.createComponentVNode)(2,i.Table,{children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:["File ",e.index,": ",e.name]}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,i.Button,{disabled:!e.canupload,content:"Upload",onClick:function(){return n("diskUpload",{design:e.index})}})})]},e.index)}))})],4)||(0,o.createComponentVNode)(2,i.Button,{icon:"save",content:"Insert design disk",onClick:function(){return n("diskInsert")}})}),(0,o.createComponentVNode)(2,i.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,i.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Release",{id:e.id,sheets:t})}},e.id)}))})}),(0,o.createComponentVNode)(2,i.Section,{title:"Alloys",children:(0,o.createComponentVNode)(2,i.Table,{children:s.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Smelt",{id:e.id,sheets:t})}},e.id)}))})})],4)};var c=function(e){var t,n;function a(){var t;return(t=e.call(this)||this).state={amount:1},t}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,a.prototype.render=function(){var e=this,t=this.state.amount,n=this.props,a=n.material,c=n.onRelease,l=Math.floor(a.amount);return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(a.name).replace("Alloy","")}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:a.value&&a.value+" cr"})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:[l," sheets"]})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.NumberInput,{width:"32px",step:1,stepPixelSize:5,minValue:1,maxValue:50,value:t,onChange:function(t,n){return e.setState({amount:n})}}),(0,o.createComponentVNode)(2,i.Button,{disabled:l<1,content:"Release",onClick:function(){return c(t)}})]})]})},a}(o.Component)},function(e,t,n){"use strict";t.__esModule=!0,t.Pandemic=t.PandemicAntibodyDisplay=t.PandemicSymptomDisplay=t.PandemicDiseaseDisplay=t.PandemicBeakerDisplay=void 0;var o=n(1),r=n(29),a=n(3),i=n(2),c=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.has_beaker,l=r.beaker_empty,u=r.has_blood,s=r.blood,d=!c||l;return(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Empty and Eject",color:"bad",disabled:d,onClick:function(){return n("empty_eject_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"trash",content:"Empty",disabled:d,onClick:function(){return n("empty_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!c,onClick:function(){return n("eject_beaker")}})],4),children:c?l?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Beaker is empty"}):u?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood DNA",children:s&&s.dna||"Unknown"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood Type",children:s&&s.type||"Unknown"})]}):(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"No blood detected"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No beaker loaded"})})};t.PandemicBeakerDisplay=c;var l=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.is_ready;return(r.viruses||[]).map((function(e){var t=e.symptoms||[];return(0,o.createComponentVNode)(2,i.Section,{title:e.can_rename?(0,o.createComponentVNode)(2,i.Input,{value:e.name,onChange:function(t,o){return n("rename_disease",{index:e.index,name:o})}}):e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"flask",content:"Create culture bottle",disabled:!c,onClick:function(){return n("create_culture_bottle",{index:e.index})}}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.description}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Agent",children:e.agent}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Spread",children:e.spread}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Possible Cure",children:e.cure})]})})]}),!!e.is_adv&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Statistics",level:2,children:(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:e.resistance}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:e.stealth})]})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage speed",children:e.stage_speed}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmissibility",children:e.transmission})]})})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Symptoms",level:2,children:t.map((function(e){return(0,o.createComponentVNode)(2,i.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,u,{symptom:e})})},e.name)}))})],4)]},e.name)}))};t.PandemicDiseaseDisplay=l;var u=function(e){var t=e.symptom,n=t.name,a=t.desc,c=t.stealth,l=t.resistance,u=t.stage_speed,s=t.transmission,d=t.level,p=t.neutered,f=(0,r.map)((function(e,t){return{desc:e,label:t}}))(t.threshold_desc||{});return(0,o.createComponentVNode)(2,i.Section,{title:n,level:2,buttons:!!p&&(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",children:"Neutered"}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{size:2,children:a}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Level",children:d}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:l}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:c}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage Speed",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmission",children:s})]})})]}),f.length>0&&(0,o.createComponentVNode)(2,i.Section,{title:"Thresholds",level:3,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:f.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.label,children:e.desc},e.label)}))})})]})};t.PandemicSymptomDisplay=u;var s=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.resistances||[];return(0,o.createComponentVNode)(2,i.Section,{title:"Antibodies",children:c.length>0?(0,o.createComponentVNode)(2,i.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eye-dropper",content:"Create vaccine bottle",disabled:!r.is_ready,onClick:function(){return n("create_vaccine_bottle",{index:e.id})}})},e.name)}))}):(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",mt:1,children:"No antibodies detected."})})};t.PandemicAntibodyDisplay=s;t.Pandemic=function(e){var t=(0,a.useBackend)(e).data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),!!t.has_blood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,l,{state:e.state}),(0,o.createComponentVNode)(2,s,{state:e.state})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableGenerator=void 0;var o=n(1),r=n(3),a=n(2);t.PortableGenerator=function(e){var t,n=(0,r.useBackend)(e),i=n.act,c=n.data;return t=c.stack_percent>50?"good":c.stack_percent>15?"average":"bad",(0,o.createFragment)([!c.anchored&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Generator not anchored."}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power switch",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.active?"power-off":"times",onClick:function(){return i("toggle_power")},disabled:!c.ready_to_boot,children:c.active?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:c.sheet_name+" sheets",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t,children:c.sheets}),c.sheets>=1&&(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"eject",disabled:c.active,onClick:function(){return i("eject")},children:"Eject"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current sheet level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.stack_percent/100,ranges:{good:[.1,Infinity],average:[.01,.1],bad:[-Infinity,.01]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Heat level",children:c.current_heat<100?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:"Nominal"}):c.current_heat<200?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:"Caution"}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"bad",children:"DANGER"})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current output",children:c.power_output}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",onClick:function(){return i("lower_power")},children:c.power_generated}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return i("higher_power")},children:c.power_generated})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power available",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:!c.connected&&"bad",children:c.connected?c.power_available:"Unconnected"})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableScrubber=t.PortablePump=t.PortableBasicInfo=void 0;var o=n(1),r=n(3),a=n(2),i=n(37),c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.connected,l=i.holding,u=i.on,s=i.pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:s})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:c?"good":"average",children:c?"Connected":"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",minHeight:"82px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return n("eject")}}),children:l?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:l.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.pressure})," kPa"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No holding tank"})})],4)};t.PortableBasicInfo=c;t.PortablePump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.direction,u=(i.holding,i.target_pressure),s=i.default_pressure,d=i.min_pressure,p=i.max_pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Pump",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-in-alt":"sign-out-alt",content:l?"In":"Out",selected:l,onClick:function(){return n("direction")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,unit:"kPa",width:"75px",minValue:d,maxValue:p,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:u===d,onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",disabled:u===s,onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:u===p,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})],4)};t.PortableScrubber=function(e){var t=(0,r.useBackend)(e),n=t.act,l=t.data.filter_types||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Filters",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,i.getGasLabel)(e.gas_id,e.gas_name),selected:e.enabled,onClick:function(){return n("toggle_filter",{val:e.gas_id})}},e.id)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.PowerMonitor=void 0;var o=n(1),r=n(29),a=n(70),i=n(20),c=n(12),l=n(2);var u=5e5,s=function(e){var t=String(e.split(" ")[1]).toLowerCase();return["w","kw","mw","gw"].indexOf(t)},d=function(e){var t,n;function c(){var t;return(t=e.call(this)||this).state={sortByField:null},t}return n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,c.prototype.render=function(){var e=this,t=this.props.state.data,n=t.history,c=this.state.sortByField,d=n.supply[n.supply.length-1]||0,m=n.demand[n.demand.length-1]||0,h=n.supply.map((function(e,t){return[t,e]})),C=n.demand.map((function(e,t){return[t,e]})),g=Math.max.apply(Math,[u].concat(n.supply,n.demand)),b=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===c&&(0,r.sortBy)((function(e){return e.name})),"charge"===c&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===c&&(0,r.sortBy)((function(e){return-s(e.load)}),(function(e){return-parseFloat(e.load)}))])(t.areas);return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"200px",children:(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Supply",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d,minValue:0,maxValue:g,color:"teal",content:(0,i.toFixed)(d/1e3)+" kW"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Draw",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:m,minValue:0,maxValue:g,color:"pink",content:(0,i.toFixed)(m/1e3)+" kW"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{position:"relative",height:"100%",children:[(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:h,rangeX:[0,h.length-1],rangeY:[0,g],strokeColor:"rgba(0, 181, 173, 1)",fillColor:"rgba(0, 181, 173, 0.25)"}),(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:C,rangeX:[0,C.length-1],rangeY:[0,g],strokeColor:"rgba(224, 57, 151, 1)",fillColor:"rgba(224, 57, 151, 0.25)"})]})})]}),(0,o.createComponentVNode)(2,l.Section,{children:[(0,o.createComponentVNode)(2,l.Box,{mb:1,children:[(0,o.createComponentVNode)(2,l.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"name"===c,content:"Name",onClick:function(){return e.setState({sortByField:"name"!==c&&"name"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"charge"===c,content:"Charge",onClick:function(){return e.setState({sortByField:"charge"!==c&&"charge"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"draw"===c,content:"Draw",onClick:function(){return e.setState({sortByField:"draw"!==c&&"draw"})}})]}),(0,o.createComponentVNode)(2,l.Table,{children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,l.Table.Cell,{textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),b.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,e.name,0),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,p,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,f,{status:e.eqp}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,f,{status:e.lgt}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,f,{status:e.env}),2)],4,null,e.id)}))]})]})],4)},c}(o.Component);t.PowerMonitor=d;var p=function(e){var t=e.charging,n=e.charge;return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Icon,{width:"18px",textAlign:"center",name:0===t&&(n>50?"battery-half":"battery-quarter")||1===t&&"bolt"||2===t&&"battery-full",color:0===t&&(n>50?"yellow":"red")||1===t&&"yellow"||2===t&&"green"}),(0,o.createComponentVNode)(2,l.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,i.toFixed)(n)+"%"})],4)};p.defaultHooks=c.pureComponentHooks;var f=function(e){var t=e.status,n=Boolean(2&t),r=Boolean(1&t),a=(n?"On":"Off")+" ["+(r?"auto":"manual")+"]";return(0,o.createComponentVNode)(2,l.ColorBox,{color:n?"good":"bad",content:r?undefined:"M",title:a})};f.defaultHooks=c.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Radio=void 0;var o=n(1),r=n(29),a=n(20),i=n(3),c=n(2),l=n(37);t.Radio=function(e){var t=(0,i.useBackend)(e),n=t.act,u=t.data,s=u.freqlock,d=u.frequency,p=u.minFrequency,f=u.maxFrequency,m=u.listening,h=u.broadcasting,C=u.command,g=u.useCommand,b=u.subspace,v=u.subspaceSwitchable,N=l.RADIO_CHANNELS.find((function(e){return e.freq===d})),V=(0,r.map)((function(e,t){return{name:t,status:!!e}}))(u.channels);return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",children:[s&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"light-gray",children:(0,a.toFixed)(d/10,1)+" kHz"})||(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:p/10,maxValue:f/10,value:d/10,format:function(e){return(0,a.toFixed)(e,1)},onDrag:function(e,t){return n("frequency",{adjust:t-d/10})}}),N&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:N.color,ml:2,children:["[",N.name,"]"]})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Audio",children:[(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:m?"volume-up":"volume-mute",selected:m,onClick:function(){return n("listen")}}),(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:h?"microphone":"microphone-slash",selected:h,onClick:function(){return n("broadcast")}}),!!C&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:g,content:"High volume "+(g?"ON":"OFF"),onClick:function(){return n("command")}}),!!v&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:b,content:"Subspace Tx "+(b?"ON":"OFF"),onClick:function(){return n("subspace")}})]}),!!b&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Channels",children:[0===V.length&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"bad",children:"No encryption keys installed."}),V.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:(0,o.createComponentVNode)(2,c.Button,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:e.name,onClick:function(){return n("channel",{channel:e.name})}})},e.name)}))]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RapidPipeDispenser=void 0;var o=n(1),r=n(12),a=n(3),i=n(2),c=["Atmospherics","Disposals","Transit Tubes"],l={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Station Equipment":"microchip"},u={grey:"#bbbbbb",amethyst:"#a365ff",blue:"#4466ff",brown:"#b26438",cyan:"#48eae8",dark:"#808080",green:"#1edd00",orange:"#ffa030",purple:"#b535ea",red:"#ff3333",violet:"#6e00f6",yellow:"#ffce26"},s=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}];t.RapidPipeDispenser=function(e){var t=(0,a.useBackend)(e),n=t.act,d=t.data,p=d.category,f=d.categories,m=void 0===f?[]:f,h=d.selected_color,C=d.piping_layer,g=d.mode,b=d.preview_rows.flatMap((function(e){return e.previews}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Category",children:c.map((function(e,t){return(0,o.createComponentVNode)(2,i.Button,{selected:p===t,icon:l[e],color:"transparent",content:e,onClick:function(){return n("category",{category:t})}},e)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Modes",children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:g&e.bitmask,content:e.name,onClick:function(){return n("mode",{mode:e.bitmask})}},e.bitmask)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,width:"64px",color:u[h],content:h}),Object.keys(u).map((function(e){return(0,o.createComponentVNode)(2,i.ColorBox,{ml:1,color:u[e],onClick:function(){return n("color",{paint_color:e})}},e)}))]})]})}),(0,o.createComponentVNode)(2,i.Flex,{m:-.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,i.Section,{children:[0===p&&(0,o.createComponentVNode)(2,i.Box,{mb:1,children:[1,2,3].map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,checked:e===C,content:"Layer "+e,onClick:function(){return n("piping_layer",{piping_layer:e})}},e)}))}),(0,o.createComponentVNode)(2,i.Box,{width:"108px",children:b.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{title:e.dir_name,selected:e.selected,style:{width:"48px",height:"48px",padding:0},onClick:function(){return n("setdir",{dir:e.dir,flipped:e.flipped})},children:(0,o.createComponentVNode)(2,i.Box,{className:(0,r.classes)(["pipes32x32",e.dir+"-"+e.icon_state]),style:{transform:"scale(1.5) translate(17%, 17%)"}})},e.dir)}))})]})}),(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{fluid:!0,icon:l[e.cat_name],label:e.cat_name,children:function(){return e.recipes.map((function(t){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,ellipsis:!0,checked:t.selected,content:t.pipe_name,title:t.pipe_name,onClick:function(){return n("pipe_type",{pipe_type:t.pipe_index,category:e.cat_name})}},t.pipe_index)}))}},e.cat_name)}))})})})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(1),r=n(3),a=n(2),i=n(163);t.SatelliteControl=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.satellites||[];return(0,o.createFragment)([c.meteor_shield&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledListItem,{label:"Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.meteor_shield_coverage/c.meteor_shield_coverage_max,content:100*c.meteor_shield_coverage/c.meteor_shield_coverage_max+"%",ranges:{good:[1,Infinity],average:[.3,1],bad:[-Infinity,.3]}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Controls",children:(0,o.createComponentVNode)(2,a.Box,{mr:-1,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.active,content:"#"+e.id+" "+e.mode,onClick:function(){return n("toggle",{id:e.id})}},e.id)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ScannerGate=void 0;var o=n(1),r=n(3),a=n(2),i=n(69),c=["Positive","Harmless","Minor","Medium","Harmful","Dangerous","BIOHAZARD"],l=[{name:"Human",value:"human"},{name:"Lizardperson",value:"lizard"},{name:"Flyperson",value:"fly"},{name:"Felinid",value:"felinid"},{name:"Plasmaman",value:"plasma"},{name:"Mothperson",value:"moth"},{name:"Jellyperson",value:"jelly"},{name:"Podperson",value:"pod"},{name:"Golem",value:"golem"},{name:"Zombie",value:"zombie"}],u=[{name:"Starving",value:150},{name:"Obese",value:600}];t.ScannerGate=function(e){var t=e.state,n=(0,r.useBackend)(e),a=n.act,c=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{locked:c.locked,onLockedStatusChange:function(){return a("toggle_lock")}}),!c.locked&&(0,o.createComponentVNode)(2,d,{state:t})],0)};var s={Off:{title:"Scanner Mode: Off",component:function(){return p}},Wanted:{title:"Scanner Mode: Wanted",component:function(){return f}},Guns:{title:"Scanner Mode: Guns",component:function(){return m}},Mindshield:{title:"Scanner Mode: Mindshield",component:function(){return h}},Disease:{title:"Scanner Mode: Disease",component:function(){return C}},Species:{title:"Scanner Mode: Species",component:function(){return g}},Nutrition:{title:"Scanner Mode: Nutrition",component:function(){return b}},Nanites:{title:"Scanner Mode: Nanites",component:function(){return v}}},d=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data.scan_mode,l=s[c]||s.off,u=l.component();return(0,o.createComponentVNode)(2,a.Section,{title:l.title,buttons:"Off"!==c&&(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"back",onClick:function(){return i("set_mode",{new_mode:"Off"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},p=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:"Select a scanning mode below."}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Wanted",onClick:function(){return t("set_mode",{new_mode:"Wanted"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Guns",onClick:function(){return t("set_mode",{new_mode:"Guns"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Mindshield",onClick:function(){return t("set_mode",{new_mode:"Mindshield"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Disease",onClick:function(){return t("set_mode",{new_mode:"Disease"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Species",onClick:function(){return t("set_mode",{new_mode:"Species"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nutrition",onClick:function(){return t("set_mode",{new_mode:"Nutrition"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nanites",onClick:function(){return t("set_mode",{new_mode:"Nanites"})}})]})],4)},f=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any warrants for their arrest."]}),(0,o.createComponentVNode)(2,N,{state:t})],4)},m=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any guns."]}),(0,o.createComponentVNode)(2,N,{state:t})],4)},h=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","a mindshield."]}),(0,o.createComponentVNode)(2,N,{state:t})],4)},C=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,l=n.data,u=l.reverse,s=l.disease_threshold;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",u?"does not have":"has"," ","a disease equal or worse than ",s,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e===s,content:e,onClick:function(){return i("set_disease_threshold",{new_threshold:e})}},e)}))}),(0,o.createComponentVNode)(2,N,{state:t})],4)},g=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,u=c.reverse,s=c.target_species,d=l.find((function(e){return e.value===s}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned is ",u?"not":""," ","of the ",d.name," species.","zombie"===s&&" All zombie types will be detected, including dormant zombies."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===s,content:e.name,onClick:function(){return i("set_target_species",{new_species:e.value})}},e.value)}))}),(0,o.createComponentVNode)(2,N,{state:t})],4)},b=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,s=c.target_nutrition,d=u.find((function(e){return e.value===s}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","the ",d.name," nutrition level."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===s,content:e.name,onClick:function(){return i("set_target_nutrition",{new_nutrition:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,N,{state:t})],4)},v=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,u=c.nanite_cloud;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","nanite cloud ",u,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,width:"65px",minValue:1,maxValue:100,stepPixelSize:2,onChange:function(e,t){return i("set_nanite_cloud",{new_cloud:t})}})})})}),(0,o.createComponentVNode)(2,N,{state:t})],4)},N=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.reverse;return(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanning Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:i?"Inverted":"Default",icon:i?"random":"long-arrow-alt-right",onClick:function(){return n("toggle_reverse")},color:i?"bad":"good"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulator=void 0;var o=n(1),r=n(29),a=n(3),i=n(2);t.ShuttleManipulator=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.shuttles||[],u=c.templates||{},s=c.selected||{},d=c.existing_shuttle||{};return(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Status",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Table,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"JMP",onClick:function(){return n("jump_to",{type:"mobile",id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"Fly",disabled:!e.can_fly,onClick:function(){return n("fly",{id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.status}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:[e.mode,!!e.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),e.timeleft,(0,o.createTextVNode)(")"),(0,o.createComponentVNode)(2,i.Button,{content:"Fast Travel",disabled:!e.can_fast_travel,onClick:function(){return n("fast_travel",{id:e.id})}},e.id)],0)]})]},e.id)}))})})}},"status"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Templates",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:(0,r.map)((function(e,t){var r=e.templates||[];return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.port_id,children:r.map((function(e){var t=e.shuttle_id===s.shuttle_id;return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{content:t?"Selected":"Select",selected:t,onClick:function(){return n("select_template",{shuttle_id:e.shuttle_id})}}),children:(!!e.description||!!e.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:e.description}),!!e.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes})]})},e.shuttle_id)}))},t)}))(u)})})}},"templates"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Modification",children:(0,o.createComponentVNode)(2,i.Section,{children:s?(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{level:2,title:s.name,children:(!!s.description||!!s.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!s.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:s.description}),!!s.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:s.admin_notes})]})}),d?(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: "+d.name,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Jump To",onClick:function(){return n("jump_to",{type:"mobile",id:d.id})}}),children:[d.status,!!d.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),d.timeleft,(0,o.createTextVNode)(")")],0)]})})}):(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: None"}),(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Status",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Preview",onClick:function(){return n("preview",{shuttle_id:s.shuttle_id})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Load",color:"bad",onClick:function(){return n("load",{shuttle_id:s.shuttle_id})}})]})],0):"No shuttle selected"})},"modification")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.SlimeBodySwapper=t.BodyEntry=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=e.body,n=e.swapFunc;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t.htmlcolor,children:t.name}),level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{content:{owner:"You Are Here",stranger:"Occupied",available:"Swap"}[t.occupied],selected:"owner"===t.occupied,color:"stranger"===t.occupied&&"bad",onClick:function(){return n()}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",bold:!0,color:{Dead:"bad",Unconscious:"average",Conscious:"good"}[t.status],children:t.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Jelly",children:t.exoticblood}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:t.area})]})})};t.BodyEntry=i;t.SlimeBodySwapper=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data.bodies,l=void 0===c?[]:c;return(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i,{body:e,swapFunc:function(){return n("swap",{ref:e.ref})}},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.Signaler=void 0;var o=n(1),r=n(2),a=n(3),i=n(20);t.Signaler=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.code,u=c.frequency,s=c.minFrequency,d=c.maxFrequency;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Frequency:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:s/10,maxValue:d/10,value:u/10,format:function(e){return(0,i.toFixed)(e,1)},width:13,onDrag:function(e,t){return n("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"freq"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.6,children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Code:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:13,onDrag:function(e,t){return n("code",{code:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"code"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.8,children:(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{mb:-.1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){return n("signal")}})})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.SmartVend=void 0;var o=n(1),r=n(29),a=n(3),i=n(2);t.SmartVend=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data;return(0,o.createComponentVNode)(2,i.Section,{title:"Storage",buttons:!!c.isdryer&&(0,o.createComponentVNode)(2,i.Button,{icon:c.drying?"stop":"tint",onClick:function(){return n("Dry")},children:c.drying?"Stop drying":"Dry"}),children:0===c.contents.length&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:["Unfortunately, this ",c.name," is empty."]})||(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Item"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"center",children:c.verb?c.verb:"Dispense"})]}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:e.amount}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.Button,{content:"One",disabled:e.amount<1,onClick:function(){return n("Release",{name:e.name,amount:1})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Many",disabled:e.amount<=1,onClick:function(){return n("Release",{name:e.name})}})]})]},t)}))(c.contents)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(1),r=n(3),a=n(2);t.Smes=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return t=l.capacityPercent>=100?"good":l.inputting?"average":"bad",n=l.outputting?"good":l.charge>0?"average":"bad",(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*l.capacityPercent,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.inputAttempt?"sync-alt":"times",selected:l.inputAttempt,onClick:function(){return c("tryinput")},children:l.inputAttempt?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:t,children:l.capacityPercent>=100?"Fully Charged":l.inputting?"Charging":"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.inputLevel/l.inputLevelMax,content:l.inputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Input",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.inputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.inputLevelMax/1e3,onChange:function(e,t){return c("input",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:l.inputAvailable})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.outputAttempt?"power-off":"times",selected:l.outputAttempt,onClick:function(){return c("tryoutput")},children:l.outputAttempt?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:n,children:l.outputting?"Sending":l.charge>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.outputLevel/l.outputLevelMax,content:l.outputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.outputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.outputLevelMax/1e3,onChange:function(e,t){return c("output",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:l.outputUsed})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SmokeMachine=void 0;var o=n(1),r=n(3),a=n(2);t.SmokeMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.TankContents,l=(i.isTankLoaded,i.TankCurrentVolume),u=i.TankMaxVolume,s=i.active,d=i.setting,p=(i.screen,i.maxSetting),f=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Dispersal Tank",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:s?"power-off":"times",selected:s,content:s?"On":"Off",onClick:function(){return n("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/u,ranges:{bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{initial:0,value:l||0})," / "+u]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:[1,2,3,4,5].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:d===e,icon:"plus",content:3*e,disabled:f0?"good":"bad",children:f})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:l,content:c+" W"})})})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracking",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===p,onClick:function(){return n("tracking",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===p,onClick:function(){return n("tracking",{mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===p,disabled:!m,onClick:function(){return n("tracking",{mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Azimuth",children:[(0===p||1===p)&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"52px",unit:"\xb0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:u,onDrag:function(e,t){return n("azimuth",{value:t})}}),1===p&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"80px",unit:"\xb0/m",step:.01,stepPixelSize:1,minValue:-d-.01,maxValue:d+.01,value:s,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return n("azimuth_rate",{value:t})}}),2===p&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mt:"3px",children:[u+" \xb0"," (auto)"]})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpaceHeater=void 0;var o=n(1),r=n(3),a=n(2);t.SpaceHeater=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!i.hasPowercell||!i.open,onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,disabled:!i.hasPowercell,onClick:function(){return n("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!i.hasPowercell&&"bad",children:i.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.powerLevel/100,content:i.powerLevel+"%",ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]}})||"None"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Thermostat",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",color:Math.abs(i.targetTemp-i.currentTemp)>50?"bad":Math.abs(i.targetTemp-i.currentTemp)>20?"average":"good",children:[i.currentTemp,"\xb0C"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:i.open&&(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.targetTemp),width:"65px",unit:"\xb0C",minValue:i.minTemp,maxValue:i.maxTemp,onChange:function(e,t){return n("target",{target:t})}})||i.targetTemp+"\xb0C"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:i.open?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-half",content:"Auto",selected:"auto"===i.mode,onClick:function(){return n("mode",{mode:"auto"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fire-alt",content:"Heat",selected:"heat"===i.mode,onClick:function(){return n("mode",{mode:"heat"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fan",content:"Cool",selected:"cool"===i.mode,onClick:function(){return n("mode",{mode:"cool"})}})],4):"Auto"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(1),r=n(3),a=n(2);t.SpawnersMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.spawners||[];return(0,o.createComponentVNode)(2,a.Section,{children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Jump",onClick:function(){return n("jump",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Spawn",onClick:function(){return n("spawn",{name:e.name})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,fontSize:"20px",children:e.short_desc}),(0,o.createComponentVNode)(2,a.Box,{children:e.flavor_text}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,color:"bad",fontSize:"26px",children:e.important_info})]},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsole=void 0;var o=n(1),r=n(3),a=n(2);t.StationAlertConsole=function(e){var t=(0,r.useBackend)(e).data.alarms||[],n=t.Fire||[],i=t.Atmosphere||[],c=t.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===n.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),n.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorageUnit=void 0;var o=n(1),r=n(3),a=n(2);t.SuitStorageUnit=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.locked,l=i.open,u=i.safeties,s=i.uv_active,d=i.occupied,p=i.suit,f=i.helmet,m=i.mask,h=i.storage;return(0,o.createFragment)([!(!d||!u)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Biological entity detected in suit chamber. Please remove before continuing with operation."}),s&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Contents are currently being decontaminated. Please wait."})||(0,o.createComponentVNode)(2,a.Section,{title:"Storage",minHeight:"260px",buttons:(0,o.createFragment)([!l&&(0,o.createComponentVNode)(2,a.Button,{icon:c?"unlock":"lock",content:c?"Unlock":"Lock",onClick:function(){return n("lock")}}),!c&&(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-out-alt":"sign-in-alt",content:l?"Close":"Open",onClick:function(){return n("door")}})],0),children:c&&(0,o.createComponentVNode)(2,a.Box,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,o.createComponentVNode)(2,a.Box,{children:"Unit Locked"}),(0,o.createComponentVNode)(2,a.Icon,{name:"lock"})]})||l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Helmet",children:(0,o.createComponentVNode)(2,a.Button,{icon:f?"square":"square-o",content:f||"Empty",disabled:!f,onClick:function(){return n("dispense",{item:"helmet"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suit",children:(0,o.createComponentVNode)(2,a.Button,{icon:p?"square":"square-o",content:p||"Empty",disabled:!p,onClick:function(){return n("dispense",{item:"suit"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"square":"square-o",content:m||"Empty",disabled:!m,onClick:function(){return n("dispense",{item:"mask"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Storage",children:(0,o.createComponentVNode)(2,a.Button,{icon:h?"square":"square-o",content:h||"Empty",disabled:!h,onClick:function(){return n("dispense",{item:"storage"})}})})]})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"recycle",content:"Decontaminate",disabled:d&&u,textAlign:"center",onClick:function(){return n("uv")}})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Tank=void 0;var o=n(1),r=n(3),a=n(2);t.Tank=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.tankPressure/1013,content:i.tankPressure+" kPa",ranges:{good:[.35,Infinity],average:[.15,.35],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:i.ReleasePressure===i.minReleasePressure,onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.releasePressure),width:"65px",unit:"kPa",minValue:i.minReleasePressure,maxValue:i.maxReleasePressure,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:i.ReleasePressure===i.maxReleasePressure,onClick:function(){return n("pressure",{pressure:"max"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"",disabled:i.ReleasePressure===i.defaultReleasePressure,onClick:function(){return n("pressure",{pressure:"reset"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TankDispenser=void 0;var o=n(1),r=n(3),a=n(2);t.TankDispenser=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plasma",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.plasma?"square":"square-o",content:"Dispense",disabled:!i.plasma,onClick:function(){return n("plasma")}}),children:i.plasma}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.oxygen?"square":"square-o",content:"Dispense",disabled:!i.oxygen,onClick:function(){return n("oxygen")}}),children:i.oxygen})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Teleporter=void 0;var o=n(1),r=n(3),a=n(2);t.Teleporter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.calibrated,l=i.calibrating,u=i.power_station,s=i.regime_set,d=i.teleporter_hub,p=i.target;return(0,o.createComponentVNode)(2,a.Section,{children:!u&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No power station linked."})||!d&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No hub linked."})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Regime",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Change Regime",onClick:function(){return n("regimeset")}}),children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Target",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Set Target",onClick:function(){return n("settarget")}}),children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Calibration",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Calibrate Hub",onClick:function(){return n("calibrate")}}),children:l&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"In Progress"})||c&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Optimal"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Sub-Optimal"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ThermoMachine=void 0;var o=n(1),r=n(20),a=n(3),i=n(2);t.ThermoMachine=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Status",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:c.temperature,format:function(e){return(0,r.toFixed)(e,2)}})," K"]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:c.pressure,format:function(e){return(0,r.toFixed)(e,2)}})," kPa"]})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,i.NumberInput,{animated:!0,value:Math.round(c.target),unit:"K",width:"62px",minValue:Math.round(c.min),maxValue:Math.round(c.max),step:5,stepPixelSize:3,onDrag:function(e,t){return n("target",{target:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,i.Button,{icon:"fast-backward",disabled:c.target===c.min,title:"Minimum temperature",onClick:function(){return n("target",{target:c.min})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",disabled:c.target===c.initial,title:"Room Temperature",onClick:function(){return n("target",{target:c.initial})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"fast-forward",disabled:c.target===c.max,title:"Maximum Temperature",onClick:function(){return n("target",{target:c.max})}})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.TurbineComputer=void 0;var o=n(1),r=n(3),a=n(2);t.TurbineComputer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=Boolean(i.compressor&&!i.compressor_broke&&i.turbine&&!i.turbine_broke);return(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:i.online?"power-off":"times",content:i.online?"Online":"Offline",selected:i.online,disabled:!c,onClick:function(){return n("toggle_power")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reconnect",onClick:function(){return n("reconnect")}})],4),children:!c&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Compressor Status",color:!i.compressor||i.compressor_broke?"bad":"good",children:i.compressor_broke?i.compressor?"Offline":"Missing":"Online"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Turbine Status",color:!i.turbine||i.turbine_broke?"bad":"good",children:i.turbine_broke?i.turbine?"Offline":"Missing":"Online"})]})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Turbine Speed",children:[i.rpm," RPM"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Internal Temp",children:[i.temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Generated Power",children:i.power})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Uplink=void 0;var o=n(1),r=n(28),a=n(19),i=n(2);var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={hoveredItem:{},currentSearch:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setHoveredItem=function(e){this.setState({hoveredItem:e})},c.setSearchText=function(e){this.setState({currentSearch:e})},c.render=function(){var e=this,t=this.props.state,n=t.config,r=t.data,c=n.ref,u=r.compact_mode,s=r.lockable,d=r.telecrystals,p=r.categories,f=void 0===p?[]:p,m=this.state,h=m.hoveredItem,C=m.currentSearch;return(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:d>0?"good":"bad",children:[d," TC"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{value:C,onInput:function(t,n){return e.setSearchText(n)},ml:1,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:u?"list":"info",content:u?"Compact":"Detailed",onClick:function(){return(0,a.act)(c,"compact_toggle")}}),!!s&&(0,o.createComponentVNode)(2,i.Button,{icon:"lock",content:"Lock",onClick:function(){return(0,a.act)(c,"lock")}})],0),children:C.length>0?(0,o.createVNode)(1,"table","Table",(0,o.createComponentVNode)(2,l,{compact:!0,items:f.flatMap((function(e){return e.items||[]})).filter((function(e){var t=C.toLowerCase();return String(e.name+e.desc).toLowerCase().includes(t)})),hoveredItem:h,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}}),2):(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:f.map((function(t){var n=t.name,r=t.items;if(null!==r)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n+" ("+r.length+")",children:function(){return(0,o.createComponentVNode)(2,l,{compact:u,items:r,hoveredItem:h,telecrystals:d,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}})}},n)}))})})},r}(o.Component);t.Uplink=c;var l=function(e){var t=e.items,n=e.hoveredItem,a=e.telecrystals,c=e.compact,l=e.onBuy,u=e.onBuyMouseOver,s=e.onBuyMouseOut,d=n&&n.cost||0;return c?(0,o.createComponentVNode)(2,i.Table,{children:t.map((function(e){var t=n&&n.name!==e.name,c=a-d1?r-1:0),i=1;i1?t-1:0),o=1;o0?"good":"bad",content:i>0?"Earned "+i+" times":"Locked"})],0,{style:{"vertical-align":"top"}})],4,null,t)};t.Score=c;t.Achievements=function(e){var t=(0,r.useBackend)(e).data;return(0,o.createComponentVNode)(2,a.Tabs,{children:[t.categories.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e,children:(0,o.createComponentVNode)(2,a.Box,{as:"Table",children:t.achievements.filter((function(t){return t.category===e})).map((function(e){return e.score?(0,o.createComponentVNode)(2,c,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name):(0,o.createComponentVNode)(2,i,{name:e.name,desc:e.desc,icon_class:e.icon_class,value:e.value},e.name)}))})},e)})),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"High Scores",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:t.highscore.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:e.name,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"#"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Key"}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:"Score"})]}),Object.keys(e.scores).map((function(n,r){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",m:2,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:r+1}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:n===t.user_ckey&&"green",textAlign:"center",children:[0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",mr:2}),n,0===r&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"gold",ml:2})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.scores[n]})]},n)}))]})},e.name)}))})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.BlockQuote=void 0;var o=n(1),r=n(12),a=n(17);t.BlockQuote=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["BlockQuote",t])},n)))}},function(e,t,n){"use strict";var o,r;t.__esModule=!0,t.VNodeFlags=t.ChildFlags=void 0,t.VNodeFlags=o,function(e){e[e.HtmlElement=1]="HtmlElement",e[e.ComponentUnknown=2]="ComponentUnknown",e[e.ComponentClass=4]="ComponentClass",e[e.ComponentFunction=8]="ComponentFunction",e[e.Text=16]="Text",e[e.SvgElement=32]="SvgElement",e[e.InputElement=64]="InputElement",e[e.TextareaElement=128]="TextareaElement",e[e.SelectElement=256]="SelectElement",e[e.Void=512]="Void",e[e.Portal=1024]="Portal",e[e.ReCreate=2048]="ReCreate",e[e.ContentEditable=4096]="ContentEditable",e[e.Fragment=8192]="Fragment",e[e.InUse=16384]="InUse",e[e.ForwardRef=32768]="ForwardRef",e[e.Normalized=65536]="Normalized",e[e.ForwardRefComponent=32776]="ForwardRefComponent",e[e.FormElement=448]="FormElement",e[e.Element=481]="Element",e[e.Component=14]="Component",e[e.DOMRef=2033]="DOMRef",e[e.InUseOrNormalized=81920]="InUseOrNormalized",e[e.ClearInUse=-16385]="ClearInUse",e[e.ComponentKnown=12]="ComponentKnown"}(o||(t.VNodeFlags=o={})),t.ChildFlags=r,function(e){e[e.UnknownChildren=0]="UnknownChildren",e[e.HasInvalidChildren=1]="HasInvalidChildren",e[e.HasVNodeChildren=2]="HasVNodeChildren",e[e.HasNonKeyedChildren=4]="HasNonKeyedChildren",e[e.HasKeyedChildren=8]="HasKeyedChildren",e[e.HasTextChildren=16]="HasTextChildren",e[e.MultipleChildren=12]="MultipleChildren"}(r||(t.ChildFlags=r={}))},function(e,t,n){"use strict";t.__esModule=!0,t.ColorBox=void 0;var o=n(1),r=n(12),a=n(17);var i=function(e){var t=e.color,n=e.content,i=e.className,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["color","content","className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["ColorBox",i]),color:n?null:"transparent",backgroundColor:t,content:n||"."},c)))};t.ColorBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Collapsible=void 0;var o=n(1),r=n(17),a=n(114);var i=function(e){var t,n;function i(t){var n;n=e.call(this,t)||this;var o=t.open;return n.state={open:o||!1},n}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.prototype.render=function(){var e=this,t=this.props,n=this.state.open,i=t.children,c=t.color,l=void 0===c?"default":c,u=t.title,d=t.buttons,s=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(t,["children","color","title","buttons"]);return(0,o.createComponentVNode)(2,r.Box,{mb:1,children:[(0,o.createVNode)(1,"div","Table",[(0,o.createVNode)(1,"div","Table__cell",(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Button,Object.assign({fluid:!0,color:l,icon:n?"chevron-down":"chevron-right",onClick:function(){return e.setState({open:!n})}},s,{children:u}))),2),d&&(0,o.createVNode)(1,"div","Table__cell Table__cell--collapsing",d,0)],0),n&&(0,o.createComponentVNode)(2,r.Box,{mt:1,children:i})]})},i}(o.Component);t.Collapsible=i},function(e,t,n){"use strict";t.__esModule=!0,t.Dimmer=void 0;var o=n(1),r=n(17);t.Dimmer=function(e){var t=e.style,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["style"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,r.Box,Object.assign({style:Object.assign({position:"absolute",top:0,bottom:0,left:0,right:0,"background-color":"rgba(0, 0, 0, 0.75)","z-index":1},t)},n)))}},function(e,t,n){"use strict";t.__esModule=!0,t.Dropdown=void 0;var o=n(1),r=n(12),a=n(17),i=n(87);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t,n;function l(t){var n;return(n=e.call(this,t)||this).state={selected:t.selected,open:!1},n.handleClick=function(){n.state.open&&n.setOpen(!1)},n}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},u.setOpen=function(e){var t=this;this.setState({open:e}),e?(setTimeout((function(){return window.addEventListener("click",t.handleClick)})),this.menuRef.focus()):window.removeEventListener("click",this.handleClick)},u.setSelected=function(e){this.setState({selected:e}),this.setOpen(!1),this.props.onSelected(e)},u.buildMenu=function(){var e=this,t=this.props.options,n=(void 0===t?[]:t).map((function(t){return(0,o.createVNode)(1,"div","Dropdown__menuentry",t,0,{onClick:function(n){e.setSelected(t)}},t)}));return n.length?n:"No Options Found"},u.render=function(){var e=this,t=this.props,n=t.color,l=void 0===n?"default":n,u=t.over,d=t.width,s=(t.onClick,t.selected,c(t,["color","over","width","onClick","selected"])),p=s.className,m=c(s,["className"]),f=u?!this.state.open:this.state.open,h=this.state.open?(0,o.createVNode)(1,"div",(0,r.classes)(["Dropdown__menu",u&&"Dropdown__over"]),this.buildMenu(),0,{tabIndex:"-1",style:{width:d}},null,(function(t){e.menuRef=t})):null;return(0,o.createVNode)(1,"div","Dropdown",[(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({width:d,className:(0,r.classes)(["Dropdown__control","Button","Button--color--"+l,p])},m,{onClick:function(t){e.setOpen(!e.state.open)},children:[(0,o.createVNode)(1,"span","Dropdown__selected-text",this.state.selected,0),(0,o.createVNode)(1,"span","Dropdown__arrow-button",(0,o.createComponentVNode)(2,i.Icon,{name:f?"chevron-up":"chevron-down"}),2)]}))),h],0)},l}(o.Component);t.Dropdown=l},function(e,t,n){"use strict";t.__esModule=!0,t.FlexItem=t.computeFlexItemProps=t.Flex=t.computeFlexProps=void 0;var o=n(1),r=n(12),a=n(17);function i(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var c=function(e){var t=e.className,n=e.direction,o=e.wrap,a=e.align,c=e.justify,l=e.spacing,u=void 0===l?0:l,d=i(e,["className","direction","wrap","align","justify","spacing"]);return Object.assign({className:(0,r.classes)(["Flex",u>0&&"Flex--spacing--"+u,t]),style:Object.assign({},d.style,{"flex-direction":n,"flex-wrap":o,"align-items":a,"justify-content":c})},d)};t.computeFlexProps=c;var l=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},c(e))))};t.Flex=l,l.defaultHooks=r.pureComponentHooks;var u=function(e){var t=e.className,n=e.grow,o=e.order,a=e.align,c=i(e,["className","grow","order","align"]);return Object.assign({className:(0,r.classes)(["Flex__item",t]),style:Object.assign({},c.style,{"flex-grow":n,order:o,"align-self":a})},c)};t.computeFlexItemProps=u;var d=function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({},u(e))))};t.FlexItem=d,d.defaultHooks=r.pureComponentHooks,l.Item=d},function(e,t,n){"use strict";t.__esModule=!0,t.NoticeBox=void 0;var o=n(1),r=n(12),a=n(17);var i=function(e){var t=e.className,n=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className"]);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["NoticeBox",t])},n)))};t.NoticeBox=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.NumberInput=void 0;var o=n(1),r=n(20),a=n(12),i=n(19),c=n(158),l=n(17);var u=function(e){var t,n;function u(t){var n;n=e.call(this,t)||this;var a=t.value;return n.inputRef=(0,o.createRef)(),n.state={value:a,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,o=t.dragging,r=t.value,a=n.props.onDrag;o&&a&&a(e,r)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,o=t.minValue,a=t.maxValue,i=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),l=n.origin-e.screenY;if(t.dragging){var u=Number.isFinite(o)?o%i:0;n.internalValue=(0,r.clamp)(n.internalValue+l*i/c,o-i,a+i),n.value=(0,r.clamp)(n.internalValue-n.internalValue%i+u,o,a),n.origin=e.screenY}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,o=t.onChange,r=t.onDrag,a=n.state,i=a.dragging,c=a.value,l=a.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!i,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),i)n.suppressFlicker(),o&&o(e,c),r&&r(e,c);else if(n.inputRef){var u=n.inputRef.current;u.value=l;try{u.focus(),u.select()}catch(d){}}},n}return n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,u.prototype.render=function(){var e=this,t=this.state,n=t.dragging,u=t.editing,d=t.value,s=t.suppressingFlicker,p=this.props,m=p.className,f=p.fluid,h=p.animated,C=p.value,g=p.unit,b=p.minValue,v=p.maxValue,N=p.height,V=p.width,y=p.lineHeight,_=p.fontSize,x=p.format,k=p.onChange,L=p.onDrag,w=C;(n||s)&&(w=d);var B=function(e){return(0,o.createVNode)(1,"div","NumberInput__content",e+(g?" "+g:""),0,{unselectable:i.tridentVersion<=4})},S=h&&!n&&!s&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:w,format:x,children:B})||B(x?x(w):w);return(0,o.createComponentVNode)(2,l.Box,{className:(0,a.classes)(["NumberInput",f&&"NumberInput--fluid",m]),minWidth:V,minHeight:N,lineHeight:y,fontSize:_,onMouseDown:this.handleDragStart,children:[(0,o.createVNode)(1,"div","NumberInput__barContainer",(0,o.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,r.clamp)((w-b)/(v-b)*100,0,100)+"%"}}),2),S,(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:u?undefined:"none",height:N,"line-height":y,"font-size":_},onBlur:function(t){if(u){var n=(0,r.clamp)(t.target.value,b,v);e.setState({editing:!1,value:n}),e.suppressFlicker(),k&&k(t,n),L&&L(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,r.clamp)(t.target.value,b,v);return e.setState({editing:!1,value:n}),e.suppressFlicker(),k&&k(t,n),void(L&&L(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},u}(o.Component);t.NumberInput=u,u.defaultHooks=a.pureComponentHooks,u.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";t.__esModule=!0,t.ProgressBar=void 0;var o=n(1),r=n(12),a=n(20),i=function(e){var t=e.value,n=e.minValue,i=void 0===n?0:n,c=e.maxValue,l=void 0===c?1:c,u=e.ranges,d=void 0===u?{}:u,s=e.content,p=e.children,m=(t-i)/(l-i),f=s!==undefined||p!==undefined,h=e.color;if(!h)for(var C=0,g=Object.keys(d);C=v[0]&&t<=v[1]){h=b;break}}return h||(h="default"),(0,o.createVNode)(1,"div",(0,r.classes)(["ProgressBar","ProgressBar--color--"+h]),[(0,o.createVNode)(1,"div","ProgressBar__fill",null,1,{style:{width:100*(0,a.clamp)(m,0,1)+"%"}}),(0,o.createVNode)(1,"div","ProgressBar__content",[f&&s,f&&p,!f&&(0,a.toFixed)(100*m)+"%"],0)],4)};t.ProgressBar=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Section=void 0;var o=n(1),r=n(12),a=n(17);var i=function(e){var t=e.className,n=e.title,i=e.level,c=void 0===i?1:i,l=e.buttons,u=e.content,d=e.children,s=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["className","title","level","buttons","content","children"]),p=!(0,r.isFalsy)(n)||!(0,r.isFalsy)(l),m=!(0,r.isFalsy)(u)||!(0,r.isFalsy)(d);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Section","Section--level--"+c,t])},s,{children:[p&&(0,o.createVNode)(1,"div","Section__title",[(0,o.createVNode)(1,"span","Section__titleText",n,0),(0,o.createVNode)(1,"div","Section__buttons",l,0)],4),m&&(0,o.createVNode)(1,"div","Section__content",[u,d],0)]})))};t.Section=i,i.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Tab=t.Tabs=void 0;var o=n(1),r=n(12),a=n(17),i=n(114);function c(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}var l=function(e){var t=e,n=Array.isArray(t),o=0;for(t=n?t:t[Symbol.iterator]();;){var r;if(n){if(o>=t.length)break;r=t[o++]}else{if((o=t.next()).done)break;r=o.value}var a=r;if(!a.props||"Tab"!==a.props.__type__){var i=JSON.stringify(a,null,2);throw new Error(" only accepts children of type .This is what we received: "+i)}}},u=function(e){var t,n;function u(t){var n;return(n=e.call(this,t)||this).state={activeTabKey:null},n}n=e,(t=u).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var d=u.prototype;return d.getActiveTab=function(){var e=this.state,t=this.props,n=(0,r.normalizeChildren)(t.children);l(n);var o=t.activeTab||e.activeTabKey,a=n.find((function(e){return(e.key||e.props.label)===o}));return a||(a=n[0],o=a&&(a.key||a.props.label)),{tabs:n,activeTab:a,activeTabKey:o}},d.render=function(){var e=this,t=this.props,n=t.className,l=t.vertical,u=(t.children,c(t,["className","vertical","children"])),d=this.getActiveTab(),s=d.tabs,p=d.activeTab,m=d.activeTabKey,f=null;return p&&(f=p.props.content||p.props.children),"function"==typeof f&&(f=f(m)),(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({className:(0,r.classes)(["Tabs",l&&"Tabs--vertical",n])},u,{children:[(0,o.createVNode)(1,"div","Tabs__tabBox",s.map((function(t){var n=t.props,a=n.className,l=n.label,u=(n.content,n.children,n.onClick),d=n.highlight,s=c(n,["className","label","content","children","onClick","highlight"]),p=t.key||t.props.label,f=t.active||p===m;return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.Button,Object.assign({className:(0,r.classes)(["Tabs__tab",f&&"Tabs__tab--active",d&&!f&&"color-yellow",a]),selected:f,color:"transparent",onClick:function(n){e.setState({activeTabKey:p}),u&&u(n,t)}},s,{children:l}),p))})),0),(0,o.createVNode)(1,"div","Tabs__content",f||null,0)]})))},u}(o.Component);t.Tabs=u;var d=function(e){return null};t.Tab=d,d.defaultProps={__type__:"Tab"},u.Tab=d},function(e,t,n){"use strict";t.__esModule=!0,t.TitleBar=void 0;var o=n(1),r=n(12),a=n(29),i=n(19),c=n(37),l=n(87),u=function(e){switch(e){case c.UI_INTERACTIVE:return"good";case c.UI_UPDATE:return"average";case c.UI_DISABLED:default:return"bad"}},d=function(e){var t=e.className,n=e.title,c=e.status,d=e.fancy,s=e.onDragStart,p=e.onClose;return(0,o.createVNode)(1,"div",(0,r.classes)(["TitleBar",t]),[(0,o.createComponentVNode)(2,l.Icon,{className:"TitleBar__statusIcon",color:u(c),name:"eye"}),(0,o.createVNode)(1,"div","TitleBar__title",n===n.toLowerCase()?(0,a.toTitleCase)(n):n,0),(0,o.createVNode)(1,"div","TitleBar__dragZone",null,1,{onMousedown:function(e){return d&&s(e)}}),!!d&&(0,o.createVNode)(1,"div","TitleBar__close TitleBar__clickable",i.tridentVersion<=4?"x":"\xd7",0,{onclick:p})],0)};t.TitleBar=d,d.defaultHooks=r.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Chart=void 0;var o=n(1),r=n(23),a=n(17),i=n(12),c=n(19);var l=function(e,t,n,o){if(0===e.length)return[];var a=(0,r.zipWith)(Math.min).apply(void 0,e),i=(0,r.zipWith)(Math.max).apply(void 0,e);return n!==undefined&&(a[0]=n[0],i[0]=n[1]),o!==undefined&&(a[1]=o[0],i[1]=o[1]),(0,r.map)((function(e){return(0,r.zipWith)((function(e,t,n,o){return(e-t)/(n-t)*o}))(e,a,i,t)}))(e)},u=function(e){for(var t="",n=0;n=0||(r[n]=e[n]);return r}(t,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),g=this.state.viewBox,b=l(r,g,i,c);if(b.length>0){var v=b[0],N=b[b.length-1];b.push([g[0]+h,N[1]]),b.push([g[0]+h,-h]),b.push([-h,-h]),b.push([-h,v[1]])}var V=u(b);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,a.Box,Object.assign({position:"relative"},C,{children:function(t){return(0,o.normalizeProps)((0,o.createVNode)(1,"div",null,(0,o.createVNode)(32,"svg",null,(0,o.createVNode)(32,"polyline",null,null,1,{transform:"scale(1, -1) translate(0, -"+g[1]+")",fill:s,stroke:m,"stroke-width":h,points:V}),2,{viewBox:"0 0 "+g[0]+" "+g[1],preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"}}),2,Object.assign({},t),null,e.ref))}})))},r}(o.Component);d.defaultHooks=i.pureComponentHooks;var s={Line:c.tridentVersion<=4?function(e){return null}:d};t.Chart=s},function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(1),r=n(3),a=n(2);t.AiAirlock=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},l=c[i.power.main]||c[0],u=c[i.power.backup]||c[0],d=c[i.shock]||c[0];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:l.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.main,content:"Disrupt",onClick:function(){return n("disrupt-main")}}),children:[i.power.main?"Online":"Offline"," ",i.wires.main_1&&i.wires.main_2?i.power.main_timeleft>0&&"["+i.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!i.power.backup,content:"Disrupt",onClick:function(){return n("disrupt-backup")}}),children:[i.power.backup?"Online":"Offline"," ",i.wires.backup_1&&i.wires.backup_2?i.power.backup_timeleft>0&&"["+i.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:d.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(i.wires.shock&&0===i.shock),content:"Restore",onClick:function(){return n("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Temporary",onClick:function(){return n("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!i.wires.shock,content:"Permanent",onClick:function(){return n("shock-perm")}})],4),children:[2===i.shock?"Safe":"Electrified"," ",(i.wires.shock?i.shock_timeleft>0&&"["+i.shock_timeleft+"s]":"[Wires have been cut!]")||-1===i.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.id_scanner?"power-off":"times",content:i.id_scanner?"Enabled":"Disabled",selected:i.id_scanner,disabled:!i.wires.id_scanner,onClick:function(){return n("idscan-toggle")}}),children:!i.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.emergency?"power-off":"times",content:i.emergency?"Enabled":"Disabled",selected:i.emergency,onClick:function(){return n("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.locked?"lock":"unlock",content:i.locked?"Lowered":"Raised",selected:i.locked,disabled:!i.wires.bolts,onClick:function(){return n("bolt-toggle")}}),children:!i.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.lights?"power-off":"times",content:i.lights?"Enabled":"Disabled",selected:i.lights,disabled:!i.wires.lights,onClick:function(){return n("light-toggle")}}),children:!i.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.safe?"power-off":"times",content:i.safe?"Enabled":"Disabled",selected:i.safe,disabled:!i.wires.safe,onClick:function(){return n("safe-toggle")}}),children:!i.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.speed?"power-off":"times",content:i.speed?"Enabled":"Disabled",selected:i.speed,disabled:!i.wires.timing,onClick:function(){return n("speed-toggle")}}),children:!i.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.opened?"sign-out-alt":"sign-in-alt",content:i.opened?"Open":"Closed",selected:i.opened,disabled:i.locked||i.welded,onClick:function(){return n("open-close")}}),children:!(!i.locked&&!i.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),i.locked?"bolted":"",i.locked&&i.welded?" and ":"",i.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(1),r=n(20),a=n(29),i=n(3),c=n(2),l=n(37),u=n(69);t.AirAlarm=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.data,c=a.locked&&!a.siliconUser;return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.InterfaceLockNoticeBox,{siliconUser:a.siliconUser,locked:a.locked,onLockStatusChange:function(){return r("lock")}}),(0,o.createComponentVNode)(2,d,{state:t}),!c&&(0,o.createComponentVNode)(2,p,{state:t})],0)};var d=function(e){var t=(0,i.useBackend)(e).data,n=(t.environment_data||[]).filter((function(e){return e.value>=.01})),a={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},l=a[t.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.Section,{title:"Air Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[n.length>0&&(0,o.createFragment)([n.map((function(e){var t=a[e.danger_level]||a[0];return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,color:t.color,children:[(0,r.toFixed)(e.value,2),e.unit]},e.name)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Local status",color:l.color,children:l.localStatusText}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Area status",color:t.atmos_alarm||t.fire_alarm?"bad":"good",children:(t.atmos_alarm?"Atmosphere Alarm":t.fire_alarm&&"Fire Alarm")||"Nominal"})],0)||(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!t.emagged&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},s={home:{title:"Air Controls",component:function(){return m}},vents:{title:"Vent Controls",component:function(){return f}},scrubbers:{title:"Scrubber Controls",component:function(){return C}},modes:{title:"Operating Mode",component:function(){return b}},thresholds:{title:"Alarm Thresholds",component:function(){return v}}},p=function(e){var t=e.state,n=(0,i.useBackend)(e),r=n.act,a=n.config,l=s[a.screen]||s.home,u=l.component();return(0,o.createComponentVNode)(2,c.Section,{title:l.title,buttons:"home"!==a.screen&&(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return r("tgui:view",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},m=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data,a=r.mode,l=r.atmos_alarm;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:l?"exclamation-triangle":"exclamation",color:l&&"caution",content:"Area Atmosphere Alarm",onClick:function(){return n(l?"reset":"alarm")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:3===a?"exclamation-triangle":"exclamation",color:3===a&&"danger",content:"Panic Siphon",onClick:function(){return n("mode",{mode:3===a?1:3})}}),(0,o.createComponentVNode)(2,c.Box,{mt:2}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"Vent Controls",onClick:function(){return n("tgui:view",{screen:"vents"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"filter",content:"Scrubber Controls",onClick:function(){return n("tgui:view",{screen:"scrubbers"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"cog",content:"Operating Mode",onClick:function(){return n("tgui:view",{screen:"modes"})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"chart-bar",content:"Alarm Thresholds",onClick:function(){return n("tgui:view",{screen:"thresholds"})}})],4)},f=function(e){var t=e.state,n=(0,i.useBackend)(e).data.vents;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,h,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},h=function(e){var t=e.id_tag,n=e.long_name,r=e.power,l=e.checks,u=e.excheck,d=e.incheck,s=e.direction,p=e.external,m=e.internal,f=e.extdefault,h=e.intdefault,C=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(n),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:r?"power-off":"times",selected:r,content:r?"On":"Off",onClick:function(){return C("power",{id_tag:t,val:Number(!r)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:"release"===s?"Pressurizing":"Releasing"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:"Internal",selected:d,onClick:function(){return C("incheck",{id_tag:t,val:l})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"External",selected:u,onClick:function(){return C("excheck",{id_tag:t,val:l})}})]}),!!d&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Internal Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(m),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_internal_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:h,content:"Reset",onClick:function(){return C("reset_internal_pressure",{id_tag:t})}})]}),!!u&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"External Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(p),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,n){return C("set_external_pressure",{id_tag:t,value:n})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:f,content:"Reset",onClick:function(){return C("reset_external_pressure",{id_tag:t})}})]})]})})},C=function(e){var t=e.state,n=(0,i.useBackend)(e).data.scrubbers;return n&&0!==n.length?n.map((function(e){return(0,o.normalizeProps)((0,o.createComponentVNode)(2,g,Object.assign({state:t},e),e.id_tag))})):"Nothing to show"},g=function(e){var t=e.long_name,n=e.power,r=e.scrubbing,u=e.id_tag,d=e.widenet,s=e.filter_types,p=(0,i.useBackend)(e).act;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,a.decodeHtmlEntities)(t),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:n?"power-off":"times",content:n?"On":"Off",selected:n,onClick:function(){return p("power",{id_tag:u,val:Number(!n)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,c.Button,{icon:r?"filter":"sign-in-alt",color:r||"danger",content:r?"Scrubbing":"Siphoning",onClick:function(){return p("scrubbing",{id_tag:u,val:Number(!r)})}}),(0,o.createComponentVNode)(2,c.Button,{icon:d?"expand":"compress",selected:d,content:d?"Expanded range":"Normal range",onClick:function(){return p("widenet",{id_tag:u,val:Number(!d)})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Filters",children:r&&s.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,l.getGasLabel)(e.gas_id,e.gas_name),title:e.gas_name,selected:e.enabled,onClick:function(){return p("toggle_filter",{id_tag:u,val:e.gas_id})}},e.gas_id)}))||"N/A"})]})})},b=function(e){var t=(0,i.useBackend)(e),n=t.act,r=t.data.modes;return r&&0!==r.length?r.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:e.selected?"check-square-o":"square-o",selected:e.selected,color:e.selected&&e.danger&&"danger",content:e.name,onClick:function(){return n("mode",{mode:e.mode})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1})],4,e.mode)})):"Nothing to show"},v=function(e){var t=(0,i.useBackend)(e),n=t.act,a=t.data.thresholds;return(0,o.createVNode)(1,"table","LabeledList",[(0,o.createVNode)(1,"thead",null,(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","color-bad","min2",16),(0,o.createVNode)(1,"td","color-average","min1",16),(0,o.createVNode)(1,"td","color-average","max1",16),(0,o.createVNode)(1,"td","color-bad","max2",16)],4),2),(0,o.createVNode)(1,"tbody",null,a.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","LabeledList__label",e.name,0),e.settings.map((function(e){return(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Button,{content:(0,r.toFixed)(e.selected,2),onClick:function(){return n("threshold",{env:e.env,"var":e.val})}}),2,null,e.val)}))],0,null,e.name)})),0)],4,{style:{width:"100%"}})}},function(e,t,n){"use strict";t.__esModule=!0,t.AirlockElectronics=void 0;var o=n(1),r=n(3),a=n(2);t.AirlockElectronics=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.regions||[],l={0:{icon:"times-circle"},1:{icon:"stop-circle"},2:{icon:"check-circle"}};return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Main",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access Required",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.oneAccess?"unlock":"lock",content:i.oneAccess?"One":"All",onClick:function(){return n("one_access")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mass Modify",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"check-double",content:"Grant All",onClick:function(){return n("grant_all")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Clear All",onClick:function(){return n("clear_all")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Unrestricted Access",children:[(0,o.createComponentVNode)(2,a.Button,{icon:1&i.unres_direction?"check-square-o":"square-o",content:"North",selected:1&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"1"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:2&i.unres_direction?"check-square-o":"square-o",content:"East",selected:2&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"2"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:4&i.unres_direction?"check-square-o":"square-o",content:"South",selected:4&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"4"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:8&i.unres_direction?"check-square-o":"square-o",content:"West",selected:8&i.unres_direction,onClick:function(){return n("direc_set",{unres_direction:"8"})}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access",children:(0,o.createComponentVNode)(2,a.Box,{height:"261px",children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:c.map((function(e){var t=e.name,r=e.accesses||[],i=l[function(e){var t=!1,n=!1;return e.forEach((function(e){e.req?t=!0:n=!0})),!t&&n?0:t&&n?1:2}(r)].icon;return(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:i,label:t,children:function(){return r.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:e.req?"check-square-o":"square-o",content:e.name,selected:e.req,onClick:function(){return n("set",{access:e.id})}})},e.id)}))}},t)}))})})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Apc=void 0;var o=n(1),r=n(3),a=n(2),i=n(69);t.Apc=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.locked&&!c.siliconUser,u={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},s=u[c.externalPower]||u[0],p=u[c.chargingStatus]||u[0],m=c.powerChannels||[],f=d[c.malfStatus]||d[0],h=c.powerCellStatus/100;return c.failTime>0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createVNode)(1,"b",null,(0,o.createVNode)(1,"h3",null,"SYSTEM FAILURE",16),2),(0,o.createVNode)(1,"i",null,"I/O regulators malfunction detected! Waiting for system reboot...",16),(0,o.createVNode)(1,"br"),"Automatic reboot in ",c.failTime," seconds...",(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reboot Now",onClick:function(){return n("reboot")}})]}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{siliconUser:c.siliconUser,locked:c.locked,onLockStatusChange:function(){return n("lock")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",content:c.isOperating?"On":"Off",selected:c.isOperating&&!l,disabled:l,onClick:function(){return n("breaker")}}),children:["[ ",s.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.chargeMode?"sync":"close",content:c.chargeMode?"Auto":"Off",disabled:l,onClick:function(){return n("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[m.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!l&&(1===e.status||3===e.status),disabled:l,onClick:function(){return n("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!l&&2===e.status,disabled:l,onClick:function(){return n("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!l&&0===e.status,disabled:l,onClick:function(){return n("channel",t.off)}})],4),children:e.powerLoad},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,c.totalLoad,0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!c.siliconUser&&(0,o.createFragment)([!!c.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:f.icon,content:f.content,color:"bad",onClick:function(){return n(f.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return n("overload")}})],0),children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.coverLocked?"lock":"unlock",content:c.coverLocked?"Engaged":"Disengaged",disabled:l,onClick:function(){return n("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.emergencyLights?"Enabled":"Disabled",disabled:l,onClick:function(){return n("emergency_lighting")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:c.nightshiftLights?"Enabled":"Disabled",disabled:l,onClick:function(){return n("toggle_nightshift")}})})]}),c.hijackable&&(0,o.createComponentVNode)(2,a.Section,{title:"Hijacking",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"unlock",content:"Hijack",disabled:c.hijacker,onClick:function(){return n("hijack")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lockdown",disabled:!c.lockdownavail,onClick:function(){return n("lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Drain",disabled:!c.drainavail,onClick:function(){return n("drain")}})],4)})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosAlertConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.priority||[],l=i.minor||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[c.length>0?c.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),l.length>0?l.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return n("clear",{zone:e})}}),2,null,e)})):(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16)],0)})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlConsole=void 0;var o=n(1),r=n(23),a=n(20),i=n(3),c=n(2);t.AtmosControlConsole=function(e){var t=(0,i.useBackend)(e),n=t.act,l=t.data,u=l.sensors||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:!!l.tank&&u[0].long_name,children:u.map((function(e){var t=e.gases||{};return(0,o.createComponentVNode)(2,c.Section,{title:!l.tank&&e.long_name,level:2,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure",children:(0,a.toFixed)(e.pressure,2)+" kPa"}),!!e.temperature&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Temperature",children:(0,a.toFixed)(e.temperature,2)+" K"}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:t,children:(0,a.toFixed)(e,2)+"%"})}))(t)]})},e.id_tag)}))}),l.tank&&(0,o.createComponentVNode)(2,c.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"undo",content:"Reconnect",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Injector",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.inputting?"power-off":"times",content:l.inputting?"Injecting":"Off",selected:l.inputting,onClick:function(){return n("input")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Input Rate",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:l.inputRate,unit:"L/s",width:"63px",minValue:0,maxValue:200,suppressFlicker:2e3,onChange:function(e,t){return n("rate",{rate:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Regulator",children:(0,o.createComponentVNode)(2,c.Button,{icon:l.outputting?"power-off":"times",content:l.outputting?"Open":"Closed",selected:l.outputting,onClick:function(){return n("output")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Output Pressure",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:parseFloat(l.outputPressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,suppressFlicker:2e3,onChange:function(e,t){return n("pressure",{pressure:t})}})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(1),r=n(3),a=n(2),i=n(37);t.AtmosFilter=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.filter_types||[];return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(c.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:c.rate===c.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.selected,content:(0,i.getGasLabel)(e.id,e.name),onClick:function(){return n("filter",{mode:e.id})}},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosMixer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.set_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.set_pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 1",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node1_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node1",{concentration:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 2",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:i.node2_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return n("node2",{concentration:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(1),r=n(3),a=n(2);t.AtmosPump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,onClick:function(){return n("power")}})}),i.max_rate?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onChange:function(e,t){return n("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.rate===i.max_rate,onClick:function(){return n("rate",{rate:"max"})}})]}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:i.pressure===i.max_pressure,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.BankMachine=void 0;var o=n(1),r=n(3),a=n(2);t.BankMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.current_balance,l=i.siphoning,u=i.station_name;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:u+" Vault",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Balance",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"times":"sync",content:l?"Stop Siphoning":"Siphon Credits",selected:l,onClick:function(){return n(l?"halt":"siphon")}}),children:c+" cr"})})}),(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Authorized personnel only"})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BluespaceArtillery=void 0;var o=n(1),r=n(3),a=n(2);t.BluespaceArtillery=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.notice,l=i.connected,u=i.unlocked,d=i.target;return(0,o.createFragment)([!!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:c}),l?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Target",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"crosshairs",disabled:!u,onClick:function(){return n("recalibrate")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:d?"average":"bad",fontSize:"25px",children:d||"No Target Set"})}),(0,o.createComponentVNode)(2,a.Section,{children:u?(0,o.createComponentVNode)(2,a.Box,{style:{margin:"auto"},children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"FIRE",color:"bad",disabled:!d,fontSize:"30px",textAlign:"center",lineHeight:"46px",onClick:function(){return n("fire")}})}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{color:"bad",fontSize:"18px",children:"Bluespace artillery is currently locked."}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"Awaiting authorization via keycard reader from at minimum two station heads."})],4)})],4):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Maintenance",children:(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",content:"Complete Deployment",onClick:function(){return n("build")}})})})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Bepis=void 0;var o=n(1),r=(n(29),n(19)),a=n(2);t.Bepis=function(e){var t=e.state,n=t.config,i=t.data,c=n.ref,l=i.amount;return(0,o.createComponentVNode)(2,a.Section,{title:"Business Exploration Protocol Incubation Sink",children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.manual_power?"Off":"On",selected:!i.manual_power,onClick:function(){return(0,r.act)(c,"toggle_power")}}),children:"All you need to know about the B.E.P.I.S. and you! The B.E.P.I.S. performs hundreds of tests a second using electrical and financial resources to invent new products, or discover new technologies otherwise overlooked for being too risky or too niche to produce!"}),(0,o.createComponentVNode)(2,a.Section,{title:"Payer's Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"redo-alt",content:"Reset Account",onClick:function(){return(0,r.act)(c,"account_reset")}}),children:["Console is currently being operated by ",i.account_owner?i.account_owner:"no one","."]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Data and Statistics",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposited Credits",children:i.stored_cash}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Investment Variability",children:[i.accuracy_percentage,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Innovation Bonus",children:i.positive_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Risk Offset",color:"bad",children:i.negative_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposit Amount",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l,unit:"Credits",minValue:100,maxValue:3e4,step:100,stepPixelSize:2,onChange:function(e,t){return(0,r.act)(c,"amount",{amount:t})}})})]})}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"donate",content:"Deposit Credits",disabled:1===i.manual_power||1===i.silicon_check,onClick:function(){return(0,r.act)(c,"deposit_cash")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Withdraw Credits",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"withdraw_cash")}})]})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Market Data and Analysis",children:[(0,o.createComponentVNode)(2,a.Box,{children:["Average technology cost: ",i.mean_value]}),i.error_name&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Previous Failure Reason: Deposited cash value too low. Please insert more money for future success."}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"microscope",disabled:1===i.manual_power,onClick:function(){return(0,r.act)(c,"begin_experiment")},content:"Begin Testing"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.BorgPanel=void 0;var o=n(1),r=n(3),a=n(2);t.BorgPanel=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.borg||{},l=i.cell||{},u=l.charge/l.maxcharge,d=i.channels||[],s=i.modules||[],p=i.upgrades||[],m=i.ais||[],f=i.laws||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:c.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){return n("rename")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.emagged?"check-square-o":"square-o",content:"Emagged",selected:c.emagged,onClick:function(){return n("toggle_emagged")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.lockdown?"check-square-o":"square-o",content:"Locked Down",selected:c.lockdown,onClick:function(){return n("toggle_lockdown")}}),(0,o.createComponentVNode)(2,a.Button,{icon:c.scrambledcodes?"check-square-o":"square-o",content:"Scrambled Codes",selected:c.scrambledcodes,onClick:function(){return n("toggle_scrambledcodes")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:[l.missing?(0,o.createVNode)(1,"span","color-bad","No cell installed",16):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,content:l.charge+" / "+l.maxcharge}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("set_charge")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Change",onClick:function(){return n("change_cell")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Remove",color:"bad",onClick:function(){return n("remove_cell")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radio Channels",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_radio",{channel:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:c.active_module===e.type?"check-square-o":"square-o",content:e.name,selected:c.active_module===e.type,onClick:function(){return n("setmodule",{module:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upgrades",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.installed?"check-square-o":"square-o",content:e.name,selected:e.installed,onClick:function(){return n("toggle_upgrade",{upgrade:e.type})}},e.type)}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.connected?"check-square-o":"square-o",content:e.name,selected:e.connected,onClick:function(){return n("slavetoai",{slavetoai:e.ref})}},e.ref)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:c.lawupdate?"check-square-o":"square-o",content:"Lawsync",selected:c.lawupdate,onClick:function(){return n("toggle_lawupdate")}}),children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BrigTimer=void 0;var o=n(1),r=n(3),a=n(2);t.BrigTimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Cell Timer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:i.timing?"Stop":"Start",selected:i.timing,onClick:function(){return n(i.timing?"stop":"start")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:i.flash_charging?"Recharging":"Flash",disabled:i.flash_charging,onClick:function(){return n("flash")}})],4),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return n("time",{adjust:-600})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return n("time",{adjust:-100})}})," ",String(i.minutes).padStart(2,"0"),":",String(i.seconds).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return n("time",{adjust:100})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return n("time",{adjust:600})}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Short",onClick:function(){return n("preset",{preset:"short"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Medium",onClick:function(){return n("preset",{preset:"medium"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"hourglass-start",content:"Long",onClick:function(){return n("preset",{preset:"long"})}})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.Canister=void 0;var o=n(1),r=n(3),a=n(2);t.Canister=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:["The regulator ",i.hasHoldingTank?"is":"is not"," connected to a tank."]}),(0,o.createComponentVNode)(2,a.Section,{title:"Canister",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Relabel",onClick:function(){return n("relabel")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.tankPressure})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:i.portConnected?"good":"average",content:i.portConnected?"Connected":"Not Connected"}),!!i.isPrototype&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Access",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.restricted?"lock":"unlock",color:"caution",content:i.restricted?"Restricted to Engineering":"Public",onClick:function(){return n("restricted")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Valve",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Release Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.releasePressure/(i.maxReleasePressure-i.minReleasePressure),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.releasePressure})," kPa"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"undo",disabled:i.releasePressure===i.defaultReleasePressure,content:"Reset",onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:i.releasePressure<=i.minReleasePressure,content:"Min",onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"pencil-alt",content:"Set",onClick:function(){return n("pressure",{pressure:"input"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:i.releasePressure>=i.maxReleasePressure,content:"Max",onClick:function(){return n("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Valve",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.valveOpen?"unlock":"lock",color:i.valveOpen?i.hasHoldingTank?"caution":"danger":null,content:i.valveOpen?"Open":"Closed",onClick:function(){return n("valve")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",buttons:!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",color:i.valveOpen&&"danger",content:"Eject",onClick:function(){return n("eject")}}),children:[!!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:i.holdingTank.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.holdingTank.tankPressure})," kPa"]})]}),!i.hasHoldingTank&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Holding Tank"})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CargoExpress=t.Cargo=void 0;var o=n(1),r=n(23),a=n(19),i=n(2),c=n(69);t.Cargo=function(e){var t=e.state,n=t.config,r=t.data,c=n.ref,s=r.supplies||{},p=r.requests||[],m=r.cart||[],f=m.reduce((function(e,t){return e+t.cost}),0),h=!r.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,children:[0===m.length&&"Cart is empty",1===m.length&&"1 item",m.length>=2&&m.length+" items"," ",f>0&&"("+f+" cr)"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"transparent",content:"Clear",onClick:function(){return(0,a.act)(c,"clear")}})],4);return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle",children:r.docked&&!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{content:r.location,onClick:function(){return(0,a.act)(c,"send")}})||r.location}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"CentCom Message",children:r.message}),r.loan&&!r.requestonly?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Loan",children:r.loan_dispatched?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Loaned to Centcom"}):(0,o.createComponentVNode)(2,i.Button,{content:"Loan Shuttle",disabled:!(r.away&&r.docked),onClick:function(){return(0,a.act)(c,"loan")}})}):""]})}),(0,o.createComponentVNode)(2,i.Tabs,{mt:2,children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Catalog",icon:"list",lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Catalog",buttons:h,children:(0,o.createComponentVNode)(2,l,{state:t,supplies:s})})}},"catalog"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Requests ("+p.length+")",icon:"envelope",highlight:p.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Active Requests",buttons:!r.requestonly&&(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Clear",color:"transparent",onClick:function(){return(0,a.act)(c,"denyall")}}),children:(0,o.createComponentVNode)(2,u,{state:t,requests:p})})}},"requests"),!r.requestonly&&(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Checkout ("+m.length+")",icon:"shopping-cart",highlight:m.length>0,lineHeight:"23px",children:function(){return(0,o.createComponentVNode)(2,i.Section,{title:"Current Cart",buttons:h,children:(0,o.createComponentVNode)(2,d,{state:t,cart:m})})}},"cart")]})],4)};var l=function(e){var t=e.state,n=e.supplies,c=t.config,l=t.data,u=c.ref,d=function(e){var t=n[e].packs;return(0,o.createVNode)(1,"table","LabeledList",t.map((function(e){return(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[e.name,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell",!!e.small_item&&(0,o.createFragment)([(0,o.createTextVNode)("Small Item")],4),0),(0,o.createVNode)(1,"td","LabeledList__cell",!!e.access&&(0,o.createFragment)([(0,o.createTextVNode)("Restrictions Apply")],4),0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",(0,o.createComponentVNode)(2,i.Button,{fluid:!0,content:(l.self_paid?Math.round(1.1*e.cost):e.cost)+" credits",tooltip:e.desc,tooltipPosition:"left",onClick:function(){return(0,a.act)(u,"add",{id:e.id})}}),2)],4,null,e.name)})),0)};return(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e){var t=e.name;return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:t,children:d},t)}))(n)})},u=function(e){var t=e.state,n=e.requests,r=t.config,c=t.data,l=r.ref;return 0===n.length?(0,o.createComponentVNode)(2,i.Box,{color:"good",children:"No Requests"}):(0,o.createVNode)(1,"table","LabeledList",n.map((function(e){return(0,o.createFragment)([(0,o.createVNode)(1,"tr","LabeledList__row candystripe",[(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__label",[(0,o.createTextVNode)("#"),e.id,(0,o.createTextVNode)(":")],0),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__content",e.object,0),(0,o.createVNode)(1,"td","LabeledList__cell",[(0,o.createTextVNode)("By "),(0,o.createVNode)(1,"b",null,e.orderer,0)],4),(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createVNode)(1,"i",null,e.reason,0),2),(0,o.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",[e.cost,(0,o.createTextVNode)(" credits"),(0,o.createTextVNode)(" "),!c.requestonly&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"check",color:"good",onClick:function(){return(0,a.act)(l,"approve",{id:e.id})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"times",color:"bad",onClick:function(){return(0,a.act)(l,"deny",{id:e.id})}})],4)],0)],4)],4,e.id)})),0)},d=function(e){var t=e.state,n=e.cart,r=t.config,c=t.data,l=r.ref;return(0,o.createFragment)([0===n.length&&"Nothing in cart",n.length>0&&(0,o.createComponentVNode)(2,i.LabeledList,{children:n.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{className:"candystripe",label:"#"+e.id,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:2,children:[!!e.paid&&(0,o.createVNode)(1,"b",null,"[Paid Privately]",16)," ",e.cost," credits"]}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus",onClick:function(){return(0,a.act)(l,"remove",{id:e.id})}})],4),children:e.object},e.id)}))}),n.length>0&&!c.requestonly&&(0,o.createComponentVNode)(2,i.Box,{mt:2,children:1===c.away&&1===c.docked&&(0,o.createComponentVNode)(2,i.Button,{color:"green",style:{"line-height":"28px",padding:"0 12px"},content:"Confirm the order",onClick:function(){return(0,a.act)(l,"send")}})||(0,o.createComponentVNode)(2,i.Box,{opacity:.5,children:["Shuttle in ",c.location,"."]})})],0)};t.CargoExpress=function(e){var t=e.state,n=t.config,r=t.data,u=n.ref,d=r.supplies||{};return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.InterfaceLockNoticeBox,{siliconUser:r.siliconUser,locked:r.locked,onLockStatusChange:function(){return(0,a.act)(u,"lock")},accessText:"a QM-level ID card"}),!r.locked&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Cargo Express",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:Math.round(r.points)})," credits"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Landing Location",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Cargo Bay",selected:!r.usingBeacon,onClick:function(){return(0,a.act)(u,"LZCargo")}}),(0,o.createComponentVNode)(2,i.Button,{selected:r.usingBeacon,disabled:!r.hasBeacon,onClick:function(){return(0,a.act)(u,"LZBeacon")},children:[r.beaconzone," (",r.beaconName,")"]}),(0,o.createComponentVNode)(2,i.Button,{content:r.printMsg,disabled:!r.canBuyBeacon,onClick:function(){return(0,a.act)(u,"printBeacon")}})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Notice",children:r.message})]})}),(0,o.createComponentVNode)(2,l,{state:t,supplies:d})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.CellularEmporium=void 0;var o=n(1),r=n(3),a=n(2);t.CellularEmporium=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.abilities;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Genetic Points",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Readapt",disabled:!i.can_readapt,onClick:function(){return n("readapt")}}),children:i.genetic_points_remaining})})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,buttons:(0,o.createFragment)([e.dna_cost," ",(0,o.createComponentVNode)(2,a.Button,{content:e.owned?"Evolved":"Evolve",selected:e.owned,onClick:function(){return n("evolve",{name:e.name})}})],0),children:[e.desc,(0,o.createComponentVNode)(2,a.Box,{color:"good",children:e.helptext})]},e.name)}))})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.CentcomPodLauncher=void 0;var o=n(1),r=(n(29),n(3)),a=n(2);t.CentcomPodLauncher=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:"To use this, simply spawn the atoms you want in one of the five Centcom Supplypod Bays. Items in the bay will then be launched inside your supplypod, one turf-full at a time! You can optionally use the following buttons to configure how the supplypod acts."}),(0,o.createComponentVNode)(2,a.Section,{title:"Centcom Pod Customization (To be used against Helen Weinstein)",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supply Bay",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bay #1",selected:1===i.bayNumber,onClick:function(){return n("bay1")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #2",selected:2===i.bayNumber,onClick:function(){return n("bay2")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #3",selected:3===i.bayNumber,onClick:function(){return n("bay3")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #4",selected:4===i.bayNumber,onClick:function(){return n("bay4")}}),(0,o.createComponentVNode)(2,a.Button,{content:"ERT Bay",selected:5===i.bayNumber,tooltip:"This bay is located on the western edge of CentCom. Its the\nglass room directly west of where ERT spawn, and south of the\nCentCom ferry. Useful for launching ERT/Deathsquads/etc. onto\nthe station via drop pods.",onClick:function(){return n("bay5")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleport to",children:[(0,o.createComponentVNode)(2,a.Button,{content:i.bay,onClick:function(){return n("teleportCentcom")}}),(0,o.createComponentVNode)(2,a.Button,{content:i.oldArea?i.oldArea:"Where you were",disabled:!i.oldArea,onClick:function(){return n("teleportBack")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Clone Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:"Launch Clones",selected:i.launchClone,tooltip:"Choosing this will create a duplicate of the item to be\nlaunched in Centcom, allowing you to send one type of item\nmultiple times. Either way, the atoms are forceMoved into\nthe supplypod after it lands (but before it opens).",onClick:function(){return n("launchClone")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Launch style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Ordered",selected:1===i.launchChoice,tooltip:'Instead of launching everything in the bay at once, this\nwill "scan" things (one turf-full at a time) in order, left\nto right and top to bottom. undoing will reset the "scanner"\nto the top-leftmost position.',onClick:function(){return n("launchOrdered")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random",selected:2===i.launchChoice,tooltip:"Instead of launching everything in the bay at once, this\nwill launch one random turf of items at a time.",onClick:function(){return n("launchRandom")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosion",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Size",selected:1===i.explosionChoice,tooltip:"This will cause an explosion of whatever size you like\n(including flame range) to occur as soon as the supplypod\nlands. Dont worry, supply-pods are explosion-proof!",onClick:function(){return n("explosionCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Adminbus",selected:2===i.explosionChoice,tooltip:"This will cause a maxcap explosion (dependent on server\nconfig) to occur as soon as the supplypod lands. Dont worry,\nsupply-pods are explosion-proof!",onClick:function(){return n("explosionBus")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Damage",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Damage",selected:1===i.damageChoice,tooltip:"Anyone caught under the pod when it lands will be dealt\nthis amount of brute damage. Sucks to be them!",onClick:function(){return n("damageCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gib",selected:2===i.damageChoice,tooltip:"This will attempt to gib any mob caught under the pod when\nit lands, as well as dealing a nice 5000 brute damage. Ya\nknow, just to be sure!",onClick:function(){return n("damageGib")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Effects",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Stun",selected:i.effectStun,tooltip:"Anyone who is on the turf when the supplypod is launched\nwill be stunned until the supplypod lands. They cant get\naway that easy!",onClick:function(){return n("effectStun")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Delimb",selected:i.effectLimb,tooltip:"This will cause anyone caught under the pod to lose a limb,\nexcluding their head.",onClick:function(){return n("effectLimb")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Yeet Organs",selected:i.effectOrgans,tooltip:"This will cause anyone caught under the pod to lose all\ntheir limbs and organs in a spectacular fashion.",onClick:function(){return n("effectOrgans")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Movement",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bluespace",selected:i.effectBluespace,tooltip:"Gives the supplypod an advanced Bluespace Recyling Device.\nAfter opening, the supplypod will be warped directly to the\nsurface of a nearby NT-designated trash planet (/r/ss13).",onClick:function(){return n("effectBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stealth",selected:i.effectStealth,tooltip:'This hides the red target icon from appearing when you\nlaunch the supplypod. Combos well with the "Invisible"\nstyle. Sneak attack, go!',onClick:function(){return n("effectStealth")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Quiet",selected:i.effectQuiet,tooltip:"This will keep the supplypod from making any sounds, except\nfor those specifically set by admins in the Sound section.",onClick:function(){return n("effectQuiet")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Reverse Mode",selected:i.effectReverse,tooltip:"This pod will not send any items. Instead, after landing,\nthe supplypod will close (similar to a normal closet closing),\nand then launch back to the right centcom bay to drop off any\nnew contents.",onClick:function(){return n("effectReverse")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile Mode",selected:i.effectMissile,tooltip:"This pod will not send any items. Instead, it will immediately\ndelete after landing (Similar visually to setting openDelay\n& departDelay to 0, but this looks nicer). Useful if you just\nwanna fuck some shit up. Combos well with the Missile style.",onClick:function(){return n("effectMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Any Descent Angle",selected:i.effectCircle,tooltip:"This will make the supplypod come in from any angle. Im not\nsure why this feature exists, but here it is.",onClick:function(){return n("effectCircle")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Machine Gun Mode",selected:i.effectBurst,tooltip:"This will make each click launch 5 supplypods inaccuratly\naround the target turf (a 3x3 area). Combos well with the\nMissile Mode if you dont want shit lying everywhere after.",onClick:function(){return n("effectBurst")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Specific Target",selected:i.effectTarget,tooltip:"This will make the supplypod target a specific atom, instead\nof the mouses position. Smiting does this automatically!",onClick:function(){return n("effectTarget")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name/Desc",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Name/Desc",selected:i.effectName,tooltip:"Allows you to add a custom name and description.",onClick:function(){return n("effectName")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Alert Ghosts",selected:i.effectAnnounce,tooltip:"Alerts ghosts when a pod is launched. Useful if some dumb\nshit is aboutta come outta the pod.",onClick:function(){return n("effectAnnounce")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sound",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Sound",selected:i.fallingSound,tooltip:"Choose a sound to play as the pod falls. Note that for this\nto work right you should know the exact length of the sound,\nin seconds.",onClick:function(){return n("fallSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Sound",selected:i.landingSound,tooltip:"Choose a sound to play when the pod lands.",onClick:function(){return n("landingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Sound",selected:i.openingSound,tooltip:"Choose a sound to play when the pod opens.",onClick:function(){return n("openingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Sound",selected:i.leavingSound,tooltip:"Choose a sound to play when the pod departs (whether that be\ndelection in the case of a bluespace pod, or leaving for\ncentcom for a reversing pod).",onClick:function(){return n("leavingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Admin Sound Volume",selected:i.soundVolume,tooltip:"Choose the volume for the sound to play at. Default values\nare between 1 and 100, but hey, do whatever. Im a tooltip,\nnot a cop.",onClick:function(){return n("soundVolume")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Timers",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Duration",selected:4!==i.fallDuration,tooltip:"Set how long the animation for the pod falling lasts. Create\ndramatic, slow falling pods!",onClick:function(){return n("fallDuration")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Time",selected:20!==i.landingDelay,tooltip:"Choose the amount of time it takes for the supplypod to hit\nthe station. By default this value is 0.5 seconds.",onClick:function(){return n("landingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Time",selected:30!==i.openingDelay,tooltip:"Choose the amount of time it takes for the supplypod to open\nafter landing. Useful for giving whatevers inside the pod a\nnice dramatic entrance! By default this value is 3 seconds.",onClick:function(){return n("openingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Time",selected:30!==i.departureDelay,tooltip:"Choose the amount of time it takes for the supplypod to leave\nafter landing. By default this value is 3 seconds.",onClick:function(){return n("departureDelay")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.styleChoice,tooltip:"Same color scheme as the normal station-used supplypods",onClick:function(){return n("styleStandard")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.styleChoice,tooltip:"The same as the stations upgraded blue-and-white\nBluespace Supplypods",onClick:function(){return n("styleBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate",selected:4===i.styleChoice,tooltip:"A menacing black and blood-red. Great for sending meme-ops\nin style!",onClick:function(){return n("styleSyndie")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Deathsquad",selected:5===i.styleChoice,tooltip:"A menacing black and dark blue. Great for sending deathsquads\nin style!",onClick:function(){return n("styleBlue")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Cult Pod",selected:6===i.styleChoice,tooltip:"A blood and rune covered cult pod!",onClick:function(){return n("styleCult")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile",selected:7===i.styleChoice,tooltip:"A large missile. Combos well with a missile mode, so the\nmissile doesnt stick around after landing.",onClick:function(){return n("styleMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate Missile",selected:8===i.styleChoice,tooltip:"A large blood-red missile. Combos well with missile mode,\nso the missile doesnt stick around after landing.",onClick:function(){return n("styleSMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Supply Crate",selected:9===i.styleChoice,tooltip:"A large, dark-green military supply crate.",onClick:function(){return n("styleBox")}}),(0,o.createComponentVNode)(2,a.Button,{content:"HONK",selected:10===i.styleChoice,tooltip:"A colorful, clown inspired look.",onClick:function(){return n("styleHONK")}}),(0,o.createComponentVNode)(2,a.Button,{content:"~Fruit",selected:11===i.styleChoice,tooltip:"For when an orange is angry",onClick:function(){return n("styleFruit")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Invisible",selected:12===i.styleChoice,tooltip:'Makes the supplypod invisible! Useful for when you want to\nuse this feature with a gateway or something. Combos well\nwith the "Stealth" and "Quiet Landing" effects.',onClick:function(){return n("styleInvisible")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gondola",selected:13===i.styleChoice,tooltip:"This gondola can control when he wants to deliver his supplies\nif he has a smart enough mind, so offer up his body to ghosts\nfor maximum enjoyment. (Make sure to turn off bluespace and\nset a arbitrarily high open-time if you do!",onClick:function(){return n("styleGondola")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Show Contents (See Through Pod)",selected:14===i.styleChoice,tooltip:"By selecting this, the pod will instead look like whatevers\ninside it (as if it were the contents falling by themselves,\nwithout a pod). Useful for launching mechs at the station\nand standing tall as they soar in from the heavens.",onClick:function(){return n("styleSeeThrough")}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:i.numObjects+" turfs in "+i.bay,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"undo Pody Bay",tooltip:"Manually undoes the possible things to launch in the\npod bay.",onClick:function(){return n("undo")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Enter Launch Mode",selected:i.giveLauncher,tooltip:"THE CODEX ASTARTES CALLS THIS MANEUVER: STEEL RAIN",onClick:function(){return n("giveLauncher")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Selected Bay",color:"bad",tooltip:"This will delete all objs and mobs from the selected bay.",tooltipPosition:"left",onClick:function(){return n("clearBay")}})],4)})})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemAcclimator=void 0;var o=n(1),r=n(3),a=n(2);t.ChemAcclimator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Acclimator",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:[i.chem_temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.target_temperature,unit:"K",width:"59px",minValue:0,maxValue:1e3,step:5,stepPixelSize:2,onChange:function(e,t){return n("set_target_temperature",{temperature:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Acceptable Temp. Difference",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.allowed_temperature_difference,unit:"K",width:"59px",minValue:1,maxValue:i.target_temperature,stepPixelSize:2,onChange:function(e,t){n("set_allowed_temperature_difference",{temperature:t})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:i.enabled?"On":"Off",selected:i.enabled,onClick:function(){return n("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.max_volume,unit:"u",width:"50px",minValue:i.reagent_volume,maxValue:200,step:2,stepPixelSize:2,onChange:function(e,t){return n("change_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Operation",children:i.acclimate_state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current State",children:i.emptying?"Emptying":"Filling"})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemDebugSynthesizer=void 0;var o=n(1),r=n(3),a=n(2);t.ChemDebugSynthesizer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.amount,l=i.beakerCurrentVolume,u=i.beakerMaxVolume,d=i.isBeakerLoaded,s=i.beakerContents,p=void 0===s?[]:s;return(0,o.createComponentVNode)(2,a.Section,{title:"Recipient",buttons:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("ejectBeaker")}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",minValue:1,maxValue:u,step:1,stepPixelSize:2,onChange:function(e,t){return n("amount",{amount:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Input",onClick:function(){return n("input")}})],4):(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Create Beaker",onClick:function(){return n("makecup")}}),children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l})," / "+u+" u"]}),p.length>0?(0,o.createComponentVNode)(2,a.LabeledList,{children:p.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[e.volume," u"]},e.name)}))}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Recipient Empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Recipient"})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemFilter=t.ChemFilterPane=void 0;var o=n(1),r=n(3),a=n(2);var i=function(e){var t=(0,r.useBackend)(e).act,n=e.title,i=e.list,c=e.reagentName,l=e.onReagentInput,u=n.toLowerCase();return(0,o.createComponentVNode)(2,a.Section,{title:n,minHeight:40,ml:.5,mr:.5,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{placeholder:"Reagent",width:"140px",onInput:function(e,t){return l(t)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return t("add",{which:u,name:c})}})],4),children:i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:e,onClick:function(){return t("remove",{which:u,reagent:e})}})],4,e)}))})};t.ChemFilterPane=i;var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={leftReagentName:"",rightReagentName:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setLeftReagentName=function(e){this.setState({leftReagentName:e})},c.setRightReagentName=function(e){this.setState({rightReagentName:e})},c.render=function(){var e=this,t=this.props.state,n=t.data,r=n.left,c=void 0===r?[]:r,l=n.right,u=void 0===l?[]:l;return(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Left",list:c,reagentName:this.state.leftReagentName,onReagentInput:function(t){return e.setLeftReagentName(t)},state:t})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{title:"Right",list:u,reagentName:this.state.rightReagentName,onReagentInput:function(t){return e.setRightReagentName(t)},state:t})})]})},r}(o.Component);t.ChemFilter=c},function(e,t,n){"use strict";t.__esModule=!0,t.ChemPress=void 0;var o=n(1),r=n(3),a=n(2);t.ChemPress=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.pill_size,l=i.pill_name,u=i.pill_style,d=i.pill_styles,s=void 0===d?[]:d;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,unit:"u",width:"43px",minValue:5,maxValue:50,step:1,stepPixelSize:2,onChange:function(e,t){return n("change_pill_size",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Name",children:(0,o.createComponentVNode)(2,a.Input,{value:l,onChange:function(e,t){return n("change_pill_name",{name:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill Style",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:5,selected:e.id===u,textAlign:"center",color:"transparent",onClick:function(){return n("change_pill_style",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.class_name})},e.id)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemReactionChamber=void 0;var o=n(1),r=n(19),a=n(2),i=n(23),c=n(12);var l=function(e){var t,n;function l(){var t;return(t=e.call(this)||this).state={reagentName:"",reagentQuantity:1},t}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var u=l.prototype;return u.setReagentName=function(e){this.setState({reagentName:e})},u.setReagentQuantity=function(e){this.setState({reagentQuantity:e})},u.render=function(){var e=this,t=this.props.state,n=t.config,l=t.data,u=n.ref,d=l.emptying,s=l.reagents||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Reagents",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:d?"bad":"good",children:d?"Emptying":"Filling"}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createVNode)(1,"tr","LabledList__row",[(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:"",placeholder:"Reagent Name",onInput:function(t,n){return e.setReagentName(n)}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td",(0,c.classes)(["LabeledList__buttons","LabeledList__cell"]),[(0,o.createComponentVNode)(2,a.NumberInput,{value:this.state.reagentQuantity,minValue:1,maxValue:100,step:1,stepPixelSize:3,width:"39px",onDrag:function(t,n){return e.setReagentQuantity(n)}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return(0,r.act)(u,"add",{chem:e.state.reagentName,amount:e.state.reagentQuantity})}})],4)],4),(0,i.map)((function(e,t){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return(0,r.act)(u,"remove",{chem:t})}}),children:e},t)}))(s)]})})},l}(o.Component);t.ChemReactionChamber=l},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSplitter=void 0;var o=n(1),r=n(20),a=n(3),i=n(2);t.ChemSplitter=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.straight,u=c.side,d=c.max_transfer;return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Straight",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:l,unit:"u",width:"55px",minValue:1,maxValue:d,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"straight",amount:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Side",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:u,unit:"u",width:"55px",minValue:1,maxValue:d,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return n("set_amount",{target:"side",amount:t})}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ChemSynthesizer=void 0;var o=n(1),r=n(20),a=n(3),i=n(2);t.ChemSynthesizer=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.amount,u=c.current_reagent,d=c.chemicals,s=void 0===d?[]:d,p=c.possible_amounts,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"plus",content:(0,r.toFixed)(e,0),selected:e===l,onClick:function(){return n("amount",{target:e})}},(0,r.toFixed)(e,0))}))}),(0,o.createComponentVNode)(2,i.Box,{mt:1,children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",content:e.title,width:"129px",selected:e.id===u,onClick:function(){return n("select",{reagent:e.id})}},e.id)}))})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.CodexGigas=void 0;var o=n(1),r=n(3),a=n(2);t.CodexGigas=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[i.name,(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prefix",children:["Dark","Hellish","Fallen","Fiery","Sinful","Blood","Fluffy"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:1!==i.currentSection,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Title",children:["Lord","Prelate","Count","Viscount","Vizier","Elder","Adept"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>2,onClick:function(){return n(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:["hal","ve","odr","neit","ci","quon","mya","folth","wren","geyr","hil","niet","twou","phi","coa"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:i.currentSection>4,onClick:function(){return n(e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suffix",children:["the Red","the Soulless","the Master","the Lord of all things","Jr."].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:4!==i.currentSection,onClick:function(){return n(" "+e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Submit",children:(0,o.createComponentVNode)(2,a.Button,{content:"Search",disabled:i.currentSection<4,onClick:function(){return n("search")}})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.ComputerFabricator=void 0;var o=n(1),r=(n(29),n(3)),a=n(2);t.ComputerFabricator=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),0!==l.state&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mb:1,icon:"circle",content:"Clear Order",onClick:function(){return c("clean_order")}}),(0,o.createComponentVNode)(2,i,{state:t})],0)};var i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return 0===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 1",minHeight:51,children:[(0,o.createComponentVNode)(2,a.Box,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,o.createComponentVNode)(2,a.Box,{mt:3,children:(0,o.createComponentVNode)(2,a.Grid,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"laptop",content:"Laptop",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"1"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"tablet-alt",content:"Tablet",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("pick_device",{pick:"2"})}})})]})})]}):1===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 2: Customize your device",minHeight:47,buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"good",children:[i.totalprice," cr"]}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Battery:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to operate without external utility power\nsource. Advanced batteries increase battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_battery,onClick:function(){return n("hw_battery",{battery:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Stores file on your device. Advanced drives can store more\nfiles, but use more power, shortening battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_disk,onClick:function(){return n("hw_disk",{disk:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to wirelessly connect to stationwide NTNet\nnetwork. Basic cards are limited to on-station use, while\nadvanced cards can operate anywhere near the station, which\nincludes asteroid outposts",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_netcard,onClick:function(){return n("hw_netcard",{netcard:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A device that allows for various paperwork manipulations,\nsuch as, scanning of documents or printing new ones.\nThis device was certified EcoFriendlyPlus and is capable of\nrecycling existing paper for printing purposes.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_nanoprint,onClick:function(){return n("hw_nanoprint",{print:"1"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Card Reader:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Adds a slot that allows you to manipulate RFID cards.\nPlease note that this is not necessary to allow the device\nto read your identification, it is just necessary to\nmanipulate other cards.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_card,onClick:function(){return n("hw_card",{card:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_card,onClick:function(){return n("hw_card",{card:"1"})}})})]}),2!==i.devtype&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A component critical for your device's functionality.\nIt allows you to run programs from your hard drive.\nAdvanced CPUs use more power, but allow you to run\nmore programs on background at once.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_cpu,onClick:function(){return n("hw_cpu",{cpu:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"An advanced wireless power relay that allows your device\nto connect to nearby area power controller to provide\nalternative power source. This component is currently\nunavailable on tablet computers due to size restrictions.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_tesla,onClick:function(){return n("hw_tesla",{tesla:"1"})}})})]})],4)]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:3,content:"Confirm Order",color:"good",textAlign:"center",fontSize:"18px",lineHeight:"26px",onClick:function(){return n("confirm_order")}})]}):2===i.state?(0,o.createComponentVNode)(2,a.Section,{title:"Step 3: Payment",minHeight:47,children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:"Please insert the required"})," ",(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:[i.totalprice," cr"]})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:1,textAlign:"center",fontSize:"18px",children:"Current:"}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:.5,textAlign:"center",fontSize:"18px",color:i.credits>=i.totalprice?"good":"bad",children:[i.credits," cr"]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Purchase",disabled:i.credits=10&&e<20?i.COLORS.department.security:e>=20&&e<30?i.COLORS.department.medbay:e>=30&&e<40?i.COLORS.department.science:e>=40&&e<50?i.COLORS.department.engineering:e>=50&&e<60?i.COLORS.department.cargo:e>=200&&e<230?i.COLORS.department.centcom:i.COLORS.department.other},u=function(e){var t=e.type,n=e.value;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,width:4,color:i.COLORS.damageType[t],textAlign:"center",children:n})};t.CrewConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,d=i.sensors||[];return(0,o.createComponentVNode)(2,a.Section,{minHeight:90,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,textAlign:"center",children:"Vitals"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Position"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,children:"Tracking"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:(f=e.ijob,f%10==0),color:l(e.ijob),children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.ColorBox,{color:(t=e.oxydam,r=e.toxdam,d=e.burndam,s=e.brutedam,p=t+r+d+s,m=Math.min(Math.max(Math.ceil(p/25),0),5),c[m])})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:null!==e.oxydam?(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:[(0,o.createComponentVNode)(2,u,{type:"oxy",value:e.oxydam}),"/",(0,o.createComponentVNode)(2,u,{type:"toxin",value:e.toxdam}),"/",(0,o.createComponentVNode)(2,u,{type:"burn",value:e.burndam}),"/",(0,o.createComponentVNode)(2,u,{type:"brute",value:e.brutedam})]}):e.life_status?"Alive":"Dead"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:null!==e.pos_x?e.area:"N/A"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Button,{content:"Track",disabled:!e.can_track,onClick:function(){return n("select_person",{name:e.name})}})})]},e.name);var t,r,d,s,p,m,f}))]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(1),r=n(3),a=n(2),i=n(435);t.Cryo=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",content:c.occupant.name?c.occupant.name:"No Occupant"}),!!c.hasOccupant&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",content:c.occupant.stat,color:c.occupant.statstate}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:c.occupant.temperaturestatus,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.bodyTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant.health/c.occupant.maxHealth,color:c.occupant.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.occupant[e.type]/100,children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.occupant[e.type]})})},e.id)}))],0)]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",content:(0,o.createComponentVNode)(2,a.Button,{icon:c.isOperating?"power-off":"times",disabled:c.isOpen,onClick:function(){return n("power")},color:c.isOperating&&"green",children:c.isOperating?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.cellTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:[(0,o.createComponentVNode)(2,a.Button,{icon:c.isOpen?"unlock":"lock",onClick:function(){return n("door")},content:c.isOpen?"Open":"Closed"}),(0,o.createComponentVNode)(2,a.Button,{icon:c.autoEject?"sign-out-alt":"sign-in-alt",onClick:function(){return n("autoeject")},content:c.autoEject?"Auto":"Manual"})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!c.isBeakerLoaded,onClick:function(){return n("ejectbeaker")},content:"Eject"}),children:(0,o.createComponentVNode)(2,i.BeakerContents,{beakerLoaded:c.isBeakerLoaded,beakerContents:c.beakerContents})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(1),r=n(2);t.BeakerContents=function(e){var t=e.beakerLoaded,n=e.beakerContents;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===n.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{color:"label",children:[e.volume," units of ",e.name]},e.name)}))]})}},function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(1),r=n(23),a=n(3),i=n(2),c=function(e){var t=e.craftables,n=void 0===t?[]:t,r=(0,a.useBackend)(e),c=r.act,l=r.data,u=l.craftability,d=void 0===u?{}:u,s=l.display_compact,p=l.display_craftable_only;return n.map((function(e){return p&&!d[e.ref]?null:s?(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,className:"candystripe",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!d[e.ref],tooltip:e.tool_text&&"Tools needed: "+e.tool_text,tooltipPosition:"left",onClick:function(){return c("make",{recipe:e.ref})}}),children:e.req_text},e.name):(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Craft",disabled:!d[e.ref],onClick:function(){return c("make",{recipe:e.ref})}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.req_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Required",children:e.req_text}),!!e.catalyst_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Catalyst",children:e.catalyst_text}),!!e.tool_text&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Tools",children:e.tool_text})]})},e.name)}))};t.PersonalCrafting=function(e){var t=e.state,n=(0,a.useBackend)(e),l=n.act,u=n.data,d=u.busy,s=u.display_craftable_only,p=u.display_compact,m=(0,r.map)((function(e,t){return{category:t,subcategory:e,hasSubcats:"has_subcats"in e,firstSubcatName:Object.keys(e).find((function(e){return"has_subcats"!==e}))}}))(u.crafting_recipes||{}),f=!!d&&(0,o.createComponentVNode)(2,i.Dimmer,{fontSize:"40px",textAlign:"center",children:(0,o.createComponentVNode)(2,i.Box,{mt:30,children:[(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:1})," Crafting..."]})});return(0,o.createFragment)([f,(0,o.createComponentVNode)(2,i.Section,{title:"Personal Crafting",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:p?"check-square-o":"square-o",content:"Compact",selected:p,onClick:function(){return l("toggle_compact")}}),(0,o.createComponentVNode)(2,i.Button,{icon:s?"check-square-o":"square-o",content:"Craftable Only",selected:s,onClick:function(){return l("toggle_recipes")}})],4),children:(0,o.createComponentVNode)(2,i.Tabs,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.category,onClick:function(){return l("set_category",{category:e.category,subcategory:e.firstSubcatName})},children:function(){return!e.hasSubcats&&(0,o.createComponentVNode)(2,c,{craftables:e.subcategory,state:t})||(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,n){if("has_subcats"!==n)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n,onClick:function(){return l("set_category",{subcategory:n})},children:function(){return(0,o.createComponentVNode)(2,c,{craftables:e,state:t})}})}))(e.subcategory)})}},e.category)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.DecalPainter=void 0;var o=n(1),r=n(3),a=n(2);t.DecalPainter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.decal_list||[],l=i.color_list||[],u=i.dir_list||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Decal Type",children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.decal===i.decal_style,onClick:function(){return n("select decal",{decals:e.decal})}},e.decal)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Color",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:"red"===e.colors?"Red":"white"===e.colors?"White":"Yellow",selected:e.colors===i.decal_color,onClick:function(){return n("select color",{colors:e.colors})}},e.colors)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Direction",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:1===e.dirs?"North":2===e.dirs?"South":4===e.dirs?"East":"West",selected:e.dirs===i.decal_direction,onClick:function(){return n("selected direction",{dirs:e.dirs})}},e.dirs)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.DisposalUnit=void 0;var o=n(1),r=n(3),a=n(2);t.DisposalUnit=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return l.full_pressure?(t="good",n="Ready"):l.panel_open?(t="bad",n="Power Disabled"):l.pressure_charging?(t="average",n="Pressurizing"):(t="bad",n="Off"),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:t,children:n}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.per,color:"good"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Handle",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.flush?"toggle-on":"toggle-off",disabled:l.isai||l.panel_open,content:l.flush?"Disengage":"Engage",onClick:function(){return c(l.flush?"handle-0":"handle-1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Eject",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sign-out-alt",disabled:l.isai,content:"Eject Contents",onClick:function(){return c("eject")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",disabled:l.panel_open,selected:l.pressure_charging,onClick:function(){return c(l.pressure_charging?"pump-0":"pump-1")}})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.DnaVault=void 0;var o=n(1),r=n(3),a=n(2);t.DnaVault=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.completed,l=i.used,u=i.choiceA,d=i.choiceB,s=i.dna,p=i.dna_max,m=i.plants,f=i.plants_max,h=i.animals,C=i.animals_max;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"DNA Vault Database",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Human DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s/p,content:s+" / "+p+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plant DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m/f,content:m+" / "+f+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Animal DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h/h,content:h+" / "+C+" Samples"})})]})}),!(!c||l)&&(0,o.createComponentVNode)(2,a.Section,{title:"Personal Gene Therapy",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:u,textAlign:"center",onClick:function(){return n("gene",{choice:u})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:d,textAlign:"center",onClick:function(){return n("gene",{choice:d})}})})]})]})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.EightBallVote=void 0;var o=n(1),r=n(3),a=n(2),i=n(29);t.EightBallVote=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.question,u=c.shaking,d=c.answers,s=void 0===d?[]:d;return u?(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",m:1,children:['"',l,'"']}),(0,o.createComponentVNode)(2,a.Grid,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:(0,i.toTitleCase)(e.answer),selected:e.selected,fontSize:"16px",lineHeight:"24px",textAlign:"center",mb:1,onClick:function(){return n("vote",{answer:e.answer})}}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"30px",children:e.amount})]},e.answer)}))})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No question is currently being asked."})}},function(e,t,n){"use strict";t.__esModule=!0,t.EmergencyShuttleConsole=void 0;var o=n(1),r=n(2),a=n(3);t.EmergencyShuttleConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,i=t.data,c=i.timer_str,l=i.enabled,u=i.emagged,d=i.engines_started,s=i.authorizations_remaining,p=i.authorizations,m=void 0===p?[]:p;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"40px",textAlign:"center",fontFamily:"monospace",children:c}),(0,o.createComponentVNode)(2,r.Box,{textAlign:"center",fontSize:"16px",mb:1,children:[(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,children:"ENGINES:"}),(0,o.createComponentVNode)(2,r.Box,{inline:!0,color:d?"good":"average",ml:1,children:d?"Online":"Idle"})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Early Launch Authorization",level:2,buttons:(0,o.createComponentVNode)(2,r.Button,{icon:"times",content:"Repeal All",color:"bad",disabled:!l,onClick:function(){return n("abort")}}),children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"exclamation-triangle",color:"good",content:"AUTHORIZE",disabled:!l,onClick:function(){return n("authorize")}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{fluid:!0,icon:"minus",content:"REPEAL",disabled:!l,onClick:function(){return n("repeal")}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"Authorizations",level:3,minHeight:"150px",buttons:(0,o.createComponentVNode)(2,r.Box,{inline:!0,bold:!0,color:u?"bad":"good",children:u?"ERROR":"Remaining: "+s}),children:[m.length>0?m.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)})):(0,o.createComponentVNode)(2,r.Box,{bold:!0,textAlign:"center",fontSize:"16px",color:"average",children:"No Active Authorizations"}),m.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)}))]})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.EngravedMessage=void 0;var o=n(1),r=n(29),a=n(3),i=n(2);t.EngravedMessage=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.admin_mode,u=c.creator_key,d=c.creator_name,s=c.has_liked,p=c.has_disliked,m=c.hidden_message,f=c.is_creator,h=c.num_likes,C=c.num_dislikes,g=c.realdate;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,textAlign:"center",fontSize:"20px",mb:2,children:(0,r.decodeHtmlEntities)(m)}),(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-up",content:" "+h,disabled:f,selected:s,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("like")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"circle",disabled:f,selected:!p&&!s,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("neutral")}})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.Button,{fluid:!0,icon:"arrow-down",content:" "+C,disabled:f,selected:p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return n("dislike")}})})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Created On",children:g})})}),(0,o.createComponentVNode)(2,i.Section),!!l&&(0,o.createComponentVNode)(2,i.Section,{title:"Admin Panel",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Delete",color:"bad",onClick:function(){return n("delete")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Ckey",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Creator Character Name",children:d})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(1),r=n(23),a=n(70),i=n(20),c=n(156),l=n(3),u=n(2),d=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e){var t=(0,l.useBackend)(e),n=t.act,s=t.data,p=s.currentArea,m=s.currentCoords,f=s.globalmode,h=s.power,C=s.tag,g=s.updating,b=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,c.vecLength)((0,c.vecSubtract)(d(m),d(e.coords))));return Object.assign({},e,{dist:n,index:t})})),(0,r.sortBy)((function(e){return e.dist===undefined}),(function(e){return e.entrytag}))])(s.signals||[]);return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Control",buttons:(0,o.createComponentVNode)(2,u.Button,{icon:"power-off",content:h?"On":"Off",selected:h,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Tag",children:(0,o.createComponentVNode)(2,u.Button,{icon:"pencil-alt",content:C,onClick:function(){return n("rename")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,u.Button,{icon:g?"unlock":"lock",content:g?"AUTO":"MANUAL",color:!g&&"bad",onClick:function(){return n("updating")}})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,u.Button,{icon:"sync",content:f?"MAXIMUM":"LOCAL",selected:!f,onClick:function(){return n("globalmode")}})})]})}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,u.Box,{fontSize:"18px",children:[p," (",m,")"]})}),(0,o.createComponentVNode)(2,u.Section,{title:"Detected Signals",children:(0,o.createComponentVNode)(2,u.Table,{children:[(0,o.createComponentVNode)(2,u.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,u.Table.Cell,{content:"Name"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Direction"}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,content:"Coordinates"})]}),b.map((function(e){return(0,o.createComponentVNode)(2,u.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,u.Table.Cell,{bold:!0,color:"label",children:e.entrytag}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,opacity:e.dist!==undefined&&(0,i.clamp)(1.2/Math.log(Math.E+e.dist/20),.4,1),children:[e.degrees!==undefined&&(0,o.createComponentVNode)(2,u.Icon,{mr:1,size:1.2,name:"arrow-up",rotation:e.degrees}),e.dist!==undefined&&e.dist+"m"]}),(0,o.createComponentVNode)(2,u.Table.Cell,{collapsing:!0,children:e.coords})]},e.entrytag+e.coords+e.index)}))]})})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(1),r=n(3),a=n(2);t.GravityGenerator=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.breaker,l=i.charge_count,u=i.charging_state,d=i.on,s=i.operational;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No data available"})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Breaker",children:(0,o.createComponentVNode)(2,a.Button,{icon:c?"power-off":"times",content:c?"On":"Off",selected:c,disabled:!s,onClick:function(){return n("gentoggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/100,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",children:[0===u&&(d&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Fully Charged"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Charging"})),1===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Charging"}),2===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Discharging"})]})]})}),s&&0!==u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"WARNING - Radiation detected"}),s&&0===u&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"No radiation detected"})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(1),r=n(3),a=n(2);t.GulagTeleporterConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.teleporter,l=i.teleporter_lock,u=i.teleporter_state_open,d=i.teleporter_location,s=i.beacon,p=i.beacon_location,m=i.id,f=i.id_name,h=i.can_teleport,C=i.goal,g=void 0===C?0:C,b=i.prisoner,v=void 0===b?{}:b;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Teleporter Console",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:u?"Open":"Closed",disabled:l,selected:u,onClick:function(){return n("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l?"lock":"unlock",content:l?"Locked":"Unlocked",selected:l,disabled:u,onClick:function(){return n("teleporter_lock")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleporter Unit",color:c?"good":"bad",buttons:!c&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_teleporter")}}),children:c?d:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:s?"good":"bad",buttons:!s&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return n("scan_beacon")}}),children:s?p:"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Prisoner Details",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prisoner ID",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:m?f:"No ID",onClick:function(){return n("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:g,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return n("set_goal",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:v.name?v.name:"No Occupant"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Criminal Status",children:v.crimstat?v.crimstat:"No Status"})]})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Process Prisoner",disabled:!h,textAlign:"center",color:"bad",onClick:function(){return n("teleport")}})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(1),r=n(3),a=n(2);t.GulagItemReclaimer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.mobs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",children:(0,o.createComponentVNode)(2,a.Table,{children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{content:"Retrieve Items",disabled:!i.can_reclaim,onClick:function(){return n("release_items",{mobref:e.mob})}})})]},e.mob)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(1),r=n(3),a=n(2);t.Holodeck=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_toggle_safety,l=i.default_programs,u=void 0===l?[]:l,d=i.emag_programs,s=void 0===d?[]:d,p=i.emagged,m=i.program;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:p?"unlock":"lock",content:"Safeties",color:"bad",disabled:!c,selected:!p,onClick:function(){return n("safety")}}),children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),textAlign:"center",selected:e.type===m,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))}),!!p&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),color:"bad",textAlign:"center",selected:e.type===m,onClick:function(){return n("load_program",{type:e.type})}},e.type)}))})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(1),r=n(3),a=n(2);t.ImplantChair=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:i.occupant.name?i.occupant.name:"No Occupant"}),!!i.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===i.occupant.stat?"good":1===i.occupant.stat?"average":"bad",children:0===i.occupant.stat?"Conscious":1===i.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:i.open?"unlock":"lock",color:i.open?"default":"red",content:i.open?"Open":"Closed",onClick:function(){return n("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implant Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:i.ready?i.special_name||"Implant":"Recharging",onClick:function(){return n("implant")}}),0===i.ready&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implants Remaining",children:[i.ready_implants,1===i.replenishing&&(0,o.createComponentVNode)(2,a.Icon,{name:"sync",color:"red",spin:!0})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(1),r=n(3),a=n(2);t.Intellicard=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=u||d,l=i.name,u=i.isDead,d=i.isBraindead,s=i.health,p=i.wireless,m=i.radio,f=i.wiping,h=i.laws,C=void 0===h?[]:h;return(0,o.createComponentVNode)(2,a.Section,{title:l||"Empty Card",buttons:!!l&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:f?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return n("wipe")}}),children:!!l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:c?"bad":"good",children:c?"Offline":"Operation"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Software Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:s,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"Wireless Activity",selected:p,onClick:function(){return n("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:m,onClick:function(){return n("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(1),r=n(3),a=n(2);t.KeycardAuth=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:1===i.waiting&&(0,o.createVNode)(1,"span",null,"Waiting for another device to confirm your request...",16)}),(0,o.createComponentVNode)(2,a.Box,{children:0===i.waiting&&(0,o.createFragment)([!!i.auth_required&&(0,o.createComponentVNode)(2,a.Button,{icon:"check-square",color:"red",textAlign:"center",lineHeight:"60px",fluid:!0,onClick:function(){return n("auth_swipe")},content:"Authorize"}),0===i.auth_required&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",fluid:!0,onClick:function(){return n("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return n("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return n("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(1),r=n(29),a=n(3),i=n(2);t.LaborClaimConsole=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.can_go_home,u=c.id_points,d=c.ores,s=c.status_info,p=c.unclaimed_points;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,i.Button,{content:"Move shuttle",disabled:!l,onClick:function(){return n("move_shuttle")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Points",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Claim points",disabled:!p,onClick:function(){return n("claim_points")}}),children:p})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(1),r=n(3),a=n(2);t.LanguageMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.admin_mode,l=i.is_living,u=i.omnitongue,d=i.languages,s=void 0===d?[]:d,p=i.unknown_languages,m=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createFragment)([!!l&&(0,o.createComponentVNode)(2,a.Button,{content:e.is_default?"Default Language":"Select as Default",disabled:!e.can_speak,selected:e.is_default,onClick:function(){return n("select_default",{language_name:e.name})}}),!!c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return n("remove_language",{language_name:e.name})}})],4)],0),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})}),!!c&&(0,o.createComponentVNode)(2,a.Section,{title:"Unknown Languages",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Omnitongue "+(u?"Enabled":"Disabled"),selected:u,onClick:function(){return n("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return n("grant_language",{language_name:e.name})}}),children:[e.desc," ","Key: ,",e.key," ",!!e.shadow&&"(gained from mob)"," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadConsole=t.LaunchpadRemote=t.LaunchpadControl=t.LaunchpadButtonPad=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createComponentVNode)(2,a.Grid,{width:"1px",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",mb:1,onClick:function(){return t("move_pos",{x:-1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:-1,y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",mb:1,onClick:function(){return t("move_pos",{y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"R",mb:1,onClick:function(){return t("set_pos",{x:0,y:0})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",mb:1,onClick:function(){return t("move_pos",{y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",mb:1,onClick:function(){return t("move_pos",{x:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",iconRotation:45,mb:1,onClick:function(){return t("move_pos",{x:1,y:-1})}})]})]})};t.LaunchpadButtonPad=i;var c=function(e){var t=e.topLevel,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.x,d=l.y,s=l.pad_name,p=l.range;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:s,width:"170px",onChange:function(e,t){return c("rename",{name:t})}}),level:t?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return c("remove")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Controls",level:2,children:(0,o.createComponentVNode)(2,i,{state:e.state})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Target",level:2,children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"26px",children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"X:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:u,minValue:-p,maxValue:p,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",stepPixelSize:10,onChange:function(e,t){return c("set_pos",{x:t})}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"Y:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:d,minValue:-p,maxValue:p,stepPixelSize:10,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",onChange:function(e,t){return c("set_pos",{y:t})}})]})]})})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return c("launch")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Pull",textAlign:"center",onClick:function(){return c("pull")}})})]})]})};t.LaunchpadControl=c;t.LaunchpadRemote=function(e){var t=(0,r.useBackend)(e).data,n=t.has_pad,i=t.pad_closed;return n?i?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Launchpad Closed"}):(0,o.createComponentVNode)(2,c,{topLevel:!0,state:e.state}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Launchpad Connected"})};t.LaunchpadConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.launchpads,u=void 0===l?[]:l,d=i.selected_id;return u.length<=0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"}):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.Box,{style:{"border-right":"2px solid rgba(255, 255, 255, 0.1)"},minHeight:"190px",mr:1,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name,selected:d===e.id,color:"transparent",onClick:function(){return n("select_pad",{id:e.id})}},e.name)}))})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:d?(0,o.createComponentVNode)(2,c,{state:e.state}):(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(1),r=n(3),a=n(2);t.MechBayPowerConsole=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.recharge_port,c=i&&i.mech,l=c&&c.cell;return(0,o.createComponentVNode)(2,a.Section,{title:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return n("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.health/c.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.charge/l.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.charge})," / "+l.maxcharge]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteChamberControl=void 0;var o=n(1),r=n(3),a=n(2);t.NaniteChamberControl=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.status_msg,l=i.locked,u=i.occupant_name,d=i.has_nanites,s=i.nanite_volume,p=i.regen_rate,m=i.safety_threshold,f=i.cloud_id,h=i.scan_level;if(c)return(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:c});var C=i.mob_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Chamber: "+u,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"lock":"lock-open",content:l?"Locked":"Unlocked",color:l?"bad":"default",onClick:function(){return n("toggle_lock")}}),children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",content:"Destroy Nanites",color:"bad",onClick:function(){return n("remove_nanites")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanite Volume",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:p})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety Threshold",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:0,maxValue:500,width:"39px",onChange:function(e,t){return n("set_safety",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:f,minValue:0,maxValue:100,step:1,stepPixelSize:3,width:"39px",onChange:function(e,t){return n("set_cloud",{value:t})}})})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",level:2,children:C.map((function(e){var t=e.extra_settings||[],n=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.desc}),h>=2&&(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.activated?"good":"bad",children:e.activated?"Active":"Inactive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanites Consumed",children:[e.use_rate,"/s"]})]})})]}),h>=2&&(0,o.createComponentVNode)(2,a.Grid,{children:[!!e.can_trigger&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Triggers",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:e.trigger_cost}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:e.trigger_cooldown}),!!e.timer_trigger_delay&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[e.timer_trigger_delay," s"]}),!!e.timer_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:[e.timer_trigger," s"]})]})})}),!(!e.timer_restart&&!e.timer_shutdown)&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.timer_restart&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:[e.timer_restart," s"]}),e.timer_shutdown&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:[e.timer_shutdown," s"]})]})})})]}),h>=3&&!!e.has_extra_settings&&(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:t.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:e.value},e.name)}))})}),h>=4&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!e.activation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:e.activation_code}),!!e.deactivation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:e.deactivation_code}),!!e.kill_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:e.kill_code}),!!e.can_trigger&&!!e.trigger_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:e.trigger_code})]})})}),e.has_rules&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Rules",level:2,children:n.map((function(e){return(0,o.createFragment)([e.display,(0,o.createVNode)(1,"br")],0,e.display)}))})})]})]})},e.name)}))})],4):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",textAlign:"center",fontSize:"30px",mb:1,children:"No Nanites Detected"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,icon:"syringe",content:" Implant Nanites",color:"green",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return n("nanite_injection")}})],4)})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=e.state.data,n=t.has_disk,r=t.has_program,i=t.disk;return n?r?(0,o.createComponentVNode)(2,c,{program:i}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Inserted disk has no program"}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No disk inserted"})};t.NaniteDiskBox=i;var c=function(e){var t=e.program,n=t.name,r=t.desc,i=t.activated,c=t.use_rate,l=t.can_trigger,u=t.trigger_cost,d=t.trigger_cooldown,s=t.activation_code,p=t.deactivation_code,m=t.kill_code,f=t.trigger_code,h=t.timer_restart,C=t.timer_shutdown,g=t.timer_trigger,b=t.timer_trigger_delay,v=t.extra_settings||[];return(0,o.createComponentVNode)(2,a.Section,{title:n,level:2,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:i?"good":"bad",children:i?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:r}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:c}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:d})],4)]})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:m}),!!l&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:f})]})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart",children:[h," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[C," s"]}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:[g," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[b," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:v.map((function(e){var t={number:(0,o.createFragment)([e.value,e.unit],0),text:e.value,type:e.value,boolean:e.value?e.true_text:e.false_text};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:t[e.type]},e.name)}))})})]})};t.NaniteInfoBox=c;var l=function(e){var t=(0,r.useBackend)(e),n=t.act;return(t.data.cloud_backups||[]).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Backup #"+e.cloud_id,textAlign:"center",onClick:function(){return n("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=l;var u=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.current_view,u=i.disk,d=i.has_program,s=i.cloud_backup,p=u&&u.can_rule||!1;if(!s)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var m=i.cloud_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Backup #"+l,level:2,buttons:!!d&&(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload From Disk",color:"good",onClick:function(){return n("upload_program")}}),children:m.map((function(e){var t=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return n("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,c,{program:e}),!!p&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return n("add_rule",{program_id:e.id})}}),children:e.has_rules?t.map((function(t){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return n("remove_rule",{program_id:e.id,rule_id:t.id})}}),t.display],0,t.display)})):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Active Rules"})})]})},e.name)}))})};t.NaniteCloudBackupDetails=u;t.NaniteCloudControl=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,d=n.data,s=d.has_disk,p=d.current_view,m=d.new_backup_id;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Program Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!s,onClick:function(){return c("eject")}}),children:(0,o.createComponentVNode)(2,i,{state:t})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:p?(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Return",onClick:function(){return c("set_view",{view:0})}}):(0,o.createFragment)(["New Backup: ",(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:1,maxValue:100,stepPixelSize:4,width:"39px",onChange:function(e,t){return c("update_new_backup_value",{value:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return c("create_backup")}})],0),children:d.current_view?(0,o.createComponentVNode)(2,u,{state:t}):(0,o.createComponentVNode)(2,l,{state:t})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(1),r=n(23),a=n(3),i=n(2);t.NaniteProgramHub=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.detail_view,u=c.disk,d=c.has_disk,s=c.has_program,p=c.programs,m=void 0===p?{}:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return n("clear")}})],4),children:d?s?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Program Name",children:u.name}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:u.desc})]}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,i.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:l?"info":"list",content:l?"Detailed":"Compact",onClick:function(){return n("toggle_details")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",content:"Sync Research",onClick:function(){return n("refresh")}})],4),children:null!==m?(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var r=e||[],a=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:a,children:l?r.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!d,onClick:function(){return n("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,i.LabeledList,{children:r.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!d,onClick:function(){return n("download",{program_id:e.id})}})},e.id)}))})},t)}))(m)}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No nanite programs are currently researched."})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgrammer=t.NaniteExtraBoolean=t.NaniteExtraType=t.NaniteExtraText=t.NaniteExtraNumber=t.NaniteExtraEntry=t.NaniteDelays=t.NaniteCodes=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"kill",code:t})}})}),!!i.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return n("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=i;var c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,ml:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_shutdown_timer",{delay:t})}})}),!!i.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return n("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=c;var l=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.type,c={number:(0,o.createComponentVNode)(2,u,{act:t,extra_setting:n}),text:(0,o.createComponentVNode)(2,d,{act:t,extra_setting:n}),type:(0,o.createComponentVNode)(2,s,{act:t,extra_setting:n}),boolean:(0,o.createComponentVNode)(2,p,{act:t,extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:c[i]})};t.NaniteExtraEntry=l;var u=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.min,l=n.max,u=n.unit;return(0,o.createComponentVNode)(2,a.NumberInput,{value:i,width:"64px",minValue:c,maxValue:l,unit:u,onChange:function(e,n){return t("set_extra_setting",{target_setting:r,value:n})}})};t.NaniteExtraNumber=u;var d=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:i,width:"200px",onInput:function(e,n){return t("set_extra_setting",{target_setting:r,value:n})}})};t.NaniteExtraText=d;var s=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.types;return(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:i,width:"150px",options:c,onSelected:function(e){return t("set_extra_setting",{target_setting:r,value:e})}})};t.NaniteExtraType=s;var p=function(e){var t=e.act,n=e.extra_setting,r=n.name,i=n.value,c=n.true_text,l=n.false_text;return(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:i?c:l,checked:i,onClick:function(){return t("set_extra_setting",{target_setting:r})}})};t.NaniteExtraBoolean=p;t.NaniteProgrammer=function(e){var t=(0,r.useBackend)(e),n=t.act,u=t.data,d=u.has_disk,s=u.has_program,p=u.name,m=u.desc,f=u.use_rate,h=u.can_trigger,C=u.trigger_cost,g=u.trigger_cooldown,b=u.activated,v=u.has_extra_settings,N=u.extra_settings,V=void 0===N?{}:N;return d?s?(0,o.createComponentVNode)(2,a.Section,{title:p,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}}),children:[(0,o.createComponentVNode)(2,a.Section,{title:"Info",level:2,children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:m}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.7,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:f}),!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:C}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:g})],4)]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Settings",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:b?"power-off":"times",content:b?"Active":"Inactive",selected:b,color:"bad",bold:!0,onClick:function(){return n("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i,{state:e.state})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,c,{state:e.state})})]}),!!v&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:V.map((function(e){return(0,o.createComponentVNode)(2,l,{act:n,extra_setting:e},e.name)}))})})]})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Blank Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return n("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemote=void 0;var o=n(1),r=n(3),a=n(2);t.NaniteRemote=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.code,l=i.locked,u=i.mode,d=i.program_name,s=i.relay_code,p=i.comms,m=i.message,f=i.saved_settings,h=void 0===f?[]:f;return l?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This interface is locked."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Nanite Control",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lock Interface",onClick:function(){return n("lock")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:d,maxLength:14,width:"130px",onChange:function(e,t){return n("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return n("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:p?"Comm Code":"Signal Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return n("set_code",{code:t})}})}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:m,width:"270px",onChange:function(e,t){return n("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:s,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return n("set_relay_code",{code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Signal Mode",children:["Off","Local","Targeted","Area","Relay"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,selected:u===e,onClick:function(){return n("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:h.length>0?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"35%",children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Mode"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Code"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Relay"})]}),h.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"label",children:[e.name,":"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.mode}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.code}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Relay"===e.mode&&e.relay_code}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"upload",color:"good",onClick:function(){return n("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return n("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.Mule=void 0;var o=n(1),r=n(3),a=n(2),i=n(69);t.Mule=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.locked&&!c.siliconUser,u=c.siliconUser,d=c.on,s=c.cell,p=c.cellPercent,m=c.load,f=c.mode,h=c.modeStatus,C=c.haspai,g=c.autoReturn,b=c.autoPickup,v=c.reportDelivery,N=c.destination,V=c.home,y=c.id,_=c.destinations,x=void 0===_?[]:_;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{siliconUser:u,locked:l}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",minHeight:"110px",buttons:!l&&(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return n("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:s?p/100:0,color:s?"good":"bad"}),(0,o.createComponentVNode)(2,a.Grid,{mt:1,children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",color:h,children:f})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Load",color:m?"good":"average",children:m||"None"})})})]})]}),!l&&(0,o.createComponentVNode)(2,a.Section,{title:"Controls",buttons:(0,o.createFragment)([!!m&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Unload",onClick:function(){return n("unload")}}),!!C&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject PAI",onClick:function(){return n("ejectpai")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:(0,o.createComponentVNode)(2,a.Input,{value:y,onChange:function(e,t){return n("setid",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:N||"None",options:x,width:"150px",onSelected:function(e){return n("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"stop",content:"Stop",onClick:function(){return n("stop")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"play",content:"Go",onClick:function(){return n("go")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:V,options:x,width:"150px",onSelected:function(e){return n("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",content:"Go Home",onClick:function(){return n("home")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:g,content:"Auto-Return",onClick:function(){return n("autored")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:b,content:"Auto-Pickup",onClick:function(){return n("autopick")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:v,content:"Report Delivery",onClick:function(){return n("report")}})]})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(1),r=n(3),a=n(2);t.NotificationPreferences=function(e){var t=(0,r.useBackend)(e),n=t.act,i=(t.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,a.Section,{title:"Ghost Role Notifications",children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:e.enabled?"times":"check",content:e.desc,color:e.enabled?"bad":"good",onClick:function(){return n("toggle_ignore",{key:e.key})}},e.key)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtnetRelay=void 0;var o=n(1),r=n(3),a=n(2);t.NtnetRelay=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.enabled,l=i.dos_capacity,u=i.dos_overload,d=i.dos_crashed;return(0,o.createComponentVNode)(2,a.Section,{title:"Network Buffer",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",selected:c,content:c?"ENABLED":"DISABLED",onClick:function(){return n("toggle")}}),children:d?(0,o.createComponentVNode)(2,a.Box,{fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",children:"NETWORK BUFFER OVERFLOW"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",children:"OVERLOAD RECOVERY MODE"}),(0,o.createComponentVNode)(2,a.Box,{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",color:"bad",children:"ADMINISTRATOR OVERRIDE"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",color:"bad",children:"CAUTION - DATA LOSS MAY OCCUR"}),(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"PURGE BUFFER",mt:1,color:"bad",onClick:function(){return n("restart")}})]}):(0,o.createComponentVNode)(2,a.ProgressBar,{value:u,minValue:0,maxValue:l,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})," GQ"," / ",l," GQ"]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosArcade=void 0;var o=n(1),r=n(3),a=n(2);t.NtosArcade=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:2,children:[(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerHitpoints,minValue:0,maxValue:30,ranges:{olive:[31,Infinity],good:[20,31],average:[10,20],bad:[-Infinity,10]},children:[i.PlayerHitpoints,"HP"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Player Magic",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.PlayerMP,minValue:0,maxValue:10,ranges:{purple:[11,Infinity],violet:[3,11],bad:[-Infinity,3]},children:[i.PlayerMP,"MP"]})})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Section,{backgroundColor:1===i.PauseState?"#1b3622":"#471915",children:i.Status})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.Hitpoints/45,minValue:0,maxValue:45,ranges:{good:[30,Infinity],average:[5,30],bad:[-Infinity,5]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i.Hitpoints}),"HP"]}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Section,{inline:!0,width:26,textAlign:"center",children:(0,o.createVNode)(1,"img",null,null,1,{src:i.BossID})})]})]}),(0,o.createComponentVNode)(2,a.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,a.Button,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Attack")},content:"Attack!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Heal")},content:"Heal!"}),(0,o.createComponentVNode)(2,a.Button,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:0===i.GameActive||1===i.PauseState,onClick:function(){return n("Recharge_Power")},content:"Recharge!"})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Start_Game")},content:"Begin Game"}),(0,o.createComponentVNode)(2,a.Button,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:1===i.GameActive,onClick:function(){return n("Dispense_Tickets")},content:"Claim Tickets"})]}),(0,o.createComponentVNode)(2,a.Box,{color:i.TicketCount>=1?"good":"normal",children:["Earned Tickets: ",i.TicketCount]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosConfiguration=void 0;var o=n(1),r=n(3),a=n(2);t.NtosConfiguration=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.power_usage,l=i.battery_exists,u=i.battery,d=void 0===u?{}:u,s=i.disk_size,p=i.disk_used,m=i.hardware,f=void 0===m?[]:m;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power Supply",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",c,"W"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Battery Status",color:!l&&"average",children:l?(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.charge,minValue:0,maxValue:d.max,ranges:{good:[d.max/2,Infinity],average:[d.max/4,d.max/2],bad:[-Infinity,d.max/4]},children:[d.charge," / ",d.max]}):"Not Available"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"File System",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:p,minValue:0,maxValue:s,color:"good",children:[p," GQ / ",s," GQ"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hardware Components",children:f.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,buttons:(0,o.createFragment)([!e.critical&&(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Enabled",checked:e.enabled,mr:1,onClick:function(){return n("PC_toggle_component",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",e.powerusage,"W"]})],0),children:e.desc},e.name)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosMain=void 0;var o=n(1),r=n(3),a=n(2),i={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug"};t.NtosMain=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.programs,u=void 0===l?[]:l,d=c.has_light,s=c.light_on,p=c.comp_light_color;return(0,o.createFragment)([!!d&&(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Button,{width:"144px",icon:"lightbulb",selected:s,onClick:function(){return n("PC_toggle_light")},children:["Flashlight: ",s?"ON":"OFF"]}),(0,o.createComponentVNode)(2,a.Button,{ml:1,onClick:function(){return n("PC_light_color")},children:["Color:",(0,o.createComponentVNode)(2,a.ColorBox,{ml:1,color:p})]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,lineHeight:"24px",color:"transparent",icon:i[e.name]||"window-maximize-o",content:e.desc,onClick:function(){return n("PC_runprogram",{name:e.name})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,width:3,children:!!e.running&&(0,o.createComponentVNode)(2,a.Button,{lineHeight:"24px",color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return n("PC_killprogram",{name:e.name})}})})]},e.name)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetChat=void 0;var o=n(1),r=n(3),a=n(2);(0,n(51).createLogger)("ntos chat");t.NtosNetChat=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.can_admin,l=i.adminmode,u=i.authed,d=i.username,s=i.active_channel,p=i.is_operator,m=i.all_channels,f=void 0===m?[]:m,h=i.clients,C=void 0===h?[]:h,g=i.messages,b=void 0===g?[]:g,v=null!==s,N=u||l;return(0,o.createComponentVNode)(2,a.Section,{height:"600px",children:(0,o.createComponentVNode)(2,a.Table,{height:"580px",children:(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"537px",overflowY:"scroll",children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"New Channel...",onCommit:function(e,t){return n("PRG_newchannel",{new_channel_name:t})}}),f.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.chan,selected:e.id===s,color:"transparent",onClick:function(){return n("PRG_joinchannel",{id:e.id})}},e.chan)}))]}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,mt:1,content:d+"...",currentValue:d,onCommit:function(e,t){return n("PRG_changename",{new_name:t})}}),!!c&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"ADMIN MODE: "+(l?"ON":"OFF"),color:l?"bad":"good",onClick:function(){return n("PRG_toggleadmin")}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Box,{height:"560px",overflowY:"scroll",children:v&&(N?b.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.msg},e.msg)})):(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,o.createComponentVNode)(2,a.Input,{fluid:!0,selfClear:!0,mt:1,onEnter:function(e,t){return n("PRG_speak",{message:t})}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"477px",overflowY:"scroll",children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.name},e.name)}))}),v&&N&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Save log...",defaultValue:"new_log",onCommit:function(e,t){return n("PRG_savelog",{log_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Leave Channel",onClick:function(){return n("PRG_leavechannel")}})],4),!!p&&u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Delete Channel",onClick:function(){return n("PRG_deletechannel")}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Rename Channel...",onCommit:function(e,t){return n("PRG_renamechannel",{new_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Set Password...",onCommit:function(e,t){return n("PRG_setpassword",{new_password:t})}})],4)]})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDownloader=void 0;var o=n(1),r=n(3),a=n(2);t.NtosNetDownloader=function(e){var t=e.state,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.disk_size,d=l.disk_used,s=l.downloadable_programs,p=void 0===s?[]:s,m=l.error,f=l.hacked_programs,h=void 0===f?[]:f,C=l.hackedavailable;return(0,o.createFragment)([!!m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:m}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",onClick:function(){return c("PRG_reseterror")}})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk usage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d,minValue:0,maxValue:u,children:d+" GQ / "+u+" GQ"})})})}),(0,o.createComponentVNode)(2,a.Section,{children:p.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))}),!!C&&(0,o.createComponentVNode)(2,a.Section,{title:"UNKNOWN Software Repository",children:[(0,o.createComponentVNode)(2,a.NoticeBox,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),h.map((function(e){return(0,o.createComponentVNode)(2,i,{state:t,program:e},e.filename)}))]})],0)};var i=function(e){var t=e.program,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.disk_size,u=c.disk_used,d=c.downloadcompletion,s=c.downloading,p=c.downloadname,m=c.downloadsize,f=l-u;return(0,o.createComponentVNode)(2,a.Box,{mb:3,children:[(0,o.createComponentVNode)(2,a.Flex,{align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:1,children:t.filedesc}),(0,o.createComponentVNode)(2,a.Flex.Item,{color:"label",nowrap:!0,children:[t.size," GQ"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,width:"94px",textAlign:"center",children:t.filename===p&&(0,o.createComponentVNode)(2,a.ProgressBar,{color:"green",minValue:0,maxValue:m,value:d})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Download",disabled:s||t.size>f,onClick:function(){return i("PRG_downloadfile",{filename:t.filename})}})})]}),"Compatible"!==t.compatibility&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),t.size>f&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,color:"label",fontSize:"12px",children:t.fileinfo})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosSupermatterMonitor=void 0;var o=n(1),r=n(23),a=n(70),i=n(20),c=n(3),l=n(2),u=n(37),d=function(e){return Math.log2(16+Math.max(0,e))-4};t.NtosSupermatterMonitor=function(e){var t=e.state,n=(0,c.useBackend)(e),p=n.act,m=n.data,f=m.active,h=m.SM_integrity,C=m.SM_power,g=m.SM_ambienttemp,b=m.SM_ambientpressure;if(!f)return(0,o.createComponentVNode)(2,s,{state:t});var v=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(m.gases||[]),N=Math.max.apply(Math,[1].concat(v.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:C,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,i.toFixed)(C)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d(g),minValue:0,maxValue:d(1e4),ranges:{teal:[-Infinity,d(80)],good:[d(80),d(373)],average:[d(373),d(1e3)],bad:[d(1e3),Infinity]},children:(0,i.toFixed)(g)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:d(b),minValue:0,maxValue:d(5e4),ranges:{good:[d(1),d(300)],average:[-Infinity,d(1e3)],bad:[d(1e3),+Infinity]},children:(0,i.toFixed)(b)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return p("PRG_clear")}}),children:(0,o.createComponentVNode)(2,l.Box.Forced,{height:24*v.length+"px",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:v.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,u.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,u.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:N,children:(0,i.toFixed)(e.amount,2)+"%"})},e.name)}))})})})})]})};var s=function(e){var t=(0,c.useBackend)(e),n=t.act,r=t.data.supermatters,a=void 0===r?[]:r;return(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return n("PRG_refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:a.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.uid+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return n("PRG_set",{target:e.uid})}})})]},e.uid)}))})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NtosWrapper=void 0;var o=n(1),r=n(3),a=n(2),i=n(116);t.NtosWrapper=function(e){var t=e.children,n=(0,r.useBackend)(e),c=n.act,l=n.data,u=l.PC_batteryicon,d=l.PC_showbatteryicon,s=l.PC_batterypercent,p=l.PC_ntneticon,m=l.PC_apclinkicon,f=l.PC_stationtime,h=l.PC_programheaders,C=void 0===h?[]:h,g=l.PC_showexitprogram;return(0,o.createVNode)(1,"div","NtosWrapper",[(0,o.createVNode)(1,"div","NtosWrapper__header NtosHeader",[(0,o.createVNode)(1,"div","NtosHeader__left",[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:2,children:f}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,italic:!0,mr:2,opacity:.33,children:"NtOS"})],4),(0,o.createVNode)(1,"div","NtosHeader__right",[C.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:e.icon})},e.icon)})),(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:p&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:p})}),!!d&&u&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:[u&&(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:u}),s&&s]}),m&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,mr:1,children:(0,o.createVNode)(1,"img","NtosHeader__icon",null,1,{src:m})}),!!g&&(0,o.createComponentVNode)(2,a.Button,{width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-minimize-o",tooltip:"Minimize",tooltipPosition:"bottom",onClick:function(){return c("PC_minimize")}}),!!g&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-left",onClick:function(){return c("PC_exit")}}),!g&&(0,o.createComponentVNode)(2,a.Button,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"power-off",tooltip:"Power off",tooltipPosition:"bottom-left",onClick:function(){return c("PC_shutdown")}})],0)],4,{onMouseDown:function(){(0,i.refocusLayout)()}}),(0,o.createVNode)(1,"div","NtosWrapper__content",t,0)],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(1),r=n(12),a=n(3),i=n(2),c=function(e){var t=(0,a.useBackend)(e).act;return(0,o.createComponentVNode)(2,i.Box,{width:"185px",children:(0,o.createComponentVNode)(2,i.Grid,{width:"1px",children:[["1","4","7","C"],["2","5","8","0"],["3","6","9","E"]].map((function(e){return(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,mb:1,content:e,textAlign:"center",fontSize:"40px",lineHeight:"50px",width:"55px",className:(0,r.classes)(["NuclearBomb__Button","NuclearBomb__Button--keypad","NuclearBomb__Button--"+e]),onClick:function(){return t("keypad",{digit:e})}},e)}))},e[0])}))})})};t.NuclearBomb=function(e){var t=e.state,n=(0,a.useBackend)(e),r=n.act,l=n.data,u=(l.anchored,l.disk_present,l.status1),d=l.status2;return(0,o.createComponentVNode)(2,i.Box,{m:1,children:[(0,o.createComponentVNode)(2,i.Box,{mb:1,className:"NuclearBomb__displayBox",children:u}),(0,o.createComponentVNode)(2,i.Flex,{mb:1.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i.Box,{className:"NuclearBomb__displayBox",children:d})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",fontSize:"24px",lineHeight:"23px",textAlign:"center",width:"43px",ml:1,mr:"3px",mt:"3px",className:"NuclearBomb__Button NuclearBomb__Button--keypad",onClick:function(){return r("eject_disk")}})})]}),(0,o.createComponentVNode)(2,i.Flex,{ml:"3px",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,c,{state:t})}),(0,o.createComponentVNode)(2,i.Flex.Item,{ml:1,width:"129px",children:(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ARM",textAlign:"center",fontSize:"28px",lineHeight:"32px",mb:1,className:"NuclearBomb__Button NuclearBomb__Button--C",onClick:function(){return r("arm")}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,bold:!0,content:"ANCHOR",textAlign:"center",fontSize:"28px",lineHeight:"32px",className:"NuclearBomb__Button NuclearBomb__Button--E",onClick:function(){return r("anchor")}}),(0,o.createComponentVNode)(2,i.Box,{textAlign:"center",color:"#9C9987",fontSize:"80px",children:(0,o.createComponentVNode)(2,i.Icon,{name:"radiation"})}),(0,o.createComponentVNode)(2,i.Box,{height:"80px",className:"NuclearBomb__NTIcon"})]})})]})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(1),r=n(3),a=n(2);t.OperatingComputer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.table,l=i.surgeries,u=void 0===l?[]:l,d=i.procedures,s=void 0===d?[]:d,p=i.patient,m=void 0===p?{}:p;return(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Patient State",children:[!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Table Detected"}),(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Patient State",level:2,children:m?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:m.statstate,children:m.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Type",children:m.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,color:m.health>=0?"good":"average",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m.health})})}),[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}].map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type]/m.maxHealth,color:"bad",content:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m[e.type]})})},e.type)}))]}):"No Patient Detected"}),(0,o.createComponentVNode)(2,a.Section,{title:"Initiated Procedures",level:2,children:s.length?s.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Next Step",children:[e.next_step,e.chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.chems_needed],0)]}),!!i.alternative_step&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternative Step",children:[e.alternative_step,e.alt_chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.alt_chems_needed],0)]})]})},e.name)})):"No Active Procedures"})]})]},"state"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{label:"Surgery Procedures",children:(0,o.createComponentVNode)(2,a.Section,{title:"Advanced Surgery Procedures",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Sync Research Database",onClick:function(){return n("sync")}}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,children:e.desc},e.name)}))]})},"procedures")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.OreBox=void 0;var o=n(1),r=n(29),a=n(19),i=n(2);t.OreBox=function(e){var t=e.state,n=t.config,c=t.data,l=n.ref,u=c.materials;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Ores",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Empty",onClick:function(){return(0,a.act)(l,"removeall")}}),children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Ore"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Amount"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.name)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.amount})})]},e.type)}))]})}),(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Box,{children:["All ores will be placed in here when you are wearing a mining stachel on your belt or in a pocket while dragging the ore box.",(0,o.createVNode)(1,"br"),"Gibtonite is not accepted."]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemptionMachine=void 0;var o=n(1),r=n(29),a=n(3),i=n(2);t.OreRedemptionMachine=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,l=r.unclaimedPoints,u=r.materials,d=r.alloys,s=r.diskDesigns,p=r.hasDisk;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.BlockQuote,{mb:1,children:["This machine only accepts ore.",(0,o.createVNode)(1,"br"),"Gibtonite and Slag are not accepted."]}),(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"label",mr:1,children:"Unclaimed points:"}),l,(0,o.createComponentVNode)(2,i.Button,{ml:2,content:"Claim",disabled:0===l,onClick:function(){return n("Claim")}})]})]}),(0,o.createComponentVNode)(2,i.Section,{children:p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Box,{mb:1,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject design disk",onClick:function(){return n("diskEject")}})}),(0,o.createComponentVNode)(2,i.Table,{children:s.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:["File ",e.index,": ",e.name]}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,i.Button,{disabled:!e.canupload,content:"Upload",onClick:function(){return n("diskUpload",{design:e.index})}})})]},e.index)}))})],4)||(0,o.createComponentVNode)(2,i.Button,{icon:"save",content:"Insert design disk",onClick:function(){return n("diskInsert")}})}),(0,o.createComponentVNode)(2,i.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,i.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Release",{id:e.id,sheets:t})}},e.id)}))})}),(0,o.createComponentVNode)(2,i.Section,{title:"Alloys",children:(0,o.createComponentVNode)(2,i.Table,{children:d.map((function(e){return(0,o.createComponentVNode)(2,c,{material:e,onRelease:function(t){return n("Smelt",{id:e.id,sheets:t})}},e.id)}))})})],4)};var c=function(e){var t,n;function a(){var t;return(t=e.call(this)||this).state={amount:1},t}return n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,a.prototype.render=function(){var e=this,t=this.state.amount,n=this.props,a=n.material,c=n.onRelease,l=Math.floor(a.amount);return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(a.name).replace("Alloy","")}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:a.value&&a.value+" cr"})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{mr:2,color:"label",inline:!0,children:[l," sheets"]})}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.NumberInput,{width:"32px",step:1,stepPixelSize:5,minValue:1,maxValue:50,value:t,onChange:function(t,n){return e.setState({amount:n})}}),(0,o.createComponentVNode)(2,i.Button,{disabled:l<1,content:"Release",onClick:function(){return c(t)}})]})]})},a}(o.Component)},function(e,t,n){"use strict";t.__esModule=!0,t.Pandemic=t.PandemicAntibodyDisplay=t.PandemicSymptomDisplay=t.PandemicDiseaseDisplay=t.PandemicBeakerDisplay=void 0;var o=n(1),r=n(23),a=n(3),i=n(2),c=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.has_beaker,l=r.beaker_empty,u=r.has_blood,d=r.blood,s=!c||l;return(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"times",content:"Empty and Eject",color:"bad",disabled:s,onClick:function(){return n("empty_eject_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"trash",content:"Empty",disabled:s,onClick:function(){return n("empty_beaker")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!c,onClick:function(){return n("eject_beaker")}})],4),children:c?l?(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"Beaker is empty"}):u?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood DNA",children:d&&d.dna||"Unknown"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Blood Type",children:d&&d.type||"Unknown"})]}):(0,o.createComponentVNode)(2,i.Box,{color:"bad",children:"No blood detected"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No beaker loaded"})})};t.PandemicBeakerDisplay=c;var l=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.is_ready;return(r.viruses||[]).map((function(e){var t=e.symptoms||[];return(0,o.createComponentVNode)(2,i.Section,{title:e.can_rename?(0,o.createComponentVNode)(2,i.Input,{value:e.name,onChange:function(t,o){return n("rename_disease",{index:e.index,name:o})}}):e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"flask",content:"Create culture bottle",disabled:!c,onClick:function(){return n("create_culture_bottle",{index:e.index})}}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:e.description}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Agent",children:e.agent}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Spread",children:e.spread}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Possible Cure",children:e.cure})]})})]}),!!e.is_adv&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Statistics",level:2,children:(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:e.resistance}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:e.stealth})]})}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage speed",children:e.stage_speed}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmissibility",children:e.transmission})]})})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Symptoms",level:2,children:t.map((function(e){return(0,o.createComponentVNode)(2,i.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,u,{symptom:e})})},e.name)}))})],4)]},e.name)}))};t.PandemicDiseaseDisplay=l;var u=function(e){var t=e.symptom,n=t.name,a=t.desc,c=t.stealth,l=t.resistance,u=t.stage_speed,d=t.transmission,s=t.level,p=t.neutered,m=(0,r.map)((function(e,t){return{desc:e,label:t}}))(t.threshold_desc||{});return(0,o.createComponentVNode)(2,i.Section,{title:n,level:2,buttons:!!p&&(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",children:"Neutered"}),children:[(0,o.createComponentVNode)(2,i.Grid,{children:[(0,o.createComponentVNode)(2,i.Grid.Column,{size:2,children:a}),(0,o.createComponentVNode)(2,i.Grid.Column,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Level",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Resistance",children:l}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stealth",children:c}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Stage Speed",children:u}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Transmission",children:d})]})})]}),m.length>0&&(0,o.createComponentVNode)(2,i.Section,{title:"Thresholds",level:3,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.label,children:e.desc},e.label)}))})})]})};t.PandemicSymptomDisplay=u;var d=function(e){var t=(0,a.useBackend)(e),n=t.act,r=t.data,c=r.resistances||[];return(0,o.createComponentVNode)(2,i.Section,{title:"Antibodies",children:c.length>0?(0,o.createComponentVNode)(2,i.LabeledList,{children:c.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,i.Button,{icon:"eye-dropper",content:"Create vaccine bottle",disabled:!r.is_ready,onClick:function(){return n("create_vaccine_bottle",{index:e.id})}})},e.name)}))}):(0,o.createComponentVNode)(2,i.Box,{bold:!0,color:"bad",mt:1,children:"No antibodies detected."})})};t.PandemicAntibodyDisplay=d;t.Pandemic=function(e){var t=(0,a.useBackend)(e).data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),!!t.has_blood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,l,{state:e.state}),(0,o.createComponentVNode)(2,d,{state:e.state})],4)],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableGenerator=void 0;var o=n(1),r=n(3),a=n(2);t.PortableGenerator=function(e){var t,n=(0,r.useBackend)(e),i=n.act,c=n.data;return t=c.stack_percent>50?"good":c.stack_percent>15?"average":"bad",(0,o.createFragment)([!c.anchored&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Generator not anchored."}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power switch",children:(0,o.createComponentVNode)(2,a.Button,{icon:c.active?"power-off":"times",onClick:function(){return i("toggle_power")},disabled:!c.ready_to_boot,children:c.active?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:c.sheet_name+" sheets",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t,children:c.sheets}),c.sheets>=1&&(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"eject",disabled:c.active,onClick:function(){return i("eject")},children:"Eject"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current sheet level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.stack_percent/100,ranges:{good:[.1,Infinity],average:[.01,.1],bad:[-Infinity,.01]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Heat level",children:c.current_heat<100?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:"Nominal"}):c.current_heat<200?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:"Caution"}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"bad",children:"DANGER"})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current output",children:c.power_output}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",onClick:function(){return i("lower_power")},children:c.power_generated}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return i("higher_power")},children:c.power_generated})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power available",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:!c.connected&&"bad",children:c.connected?c.power_available:"Unconnected"})})]})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.PortableScrubber=t.PortablePump=t.PortableBasicInfo=void 0;var o=n(1),r=n(3),a=n(2),i=n(37),c=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.connected,l=i.holding,u=i.on,d=i.pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:c?"good":"average",children:c?"Connected":"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",minHeight:"82px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return n("eject")}}),children:l?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:l.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l.pressure})," kPa"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No holding tank"})})],4)};t.PortableBasicInfo=c;t.PortablePump=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,l=i.direction,u=(i.holding,i.target_pressure),d=i.default_pressure,s=i.min_pressure,p=i.max_pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Pump",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-in-alt":"sign-out-alt",content:l?"In":"Out",selected:l,onClick:function(){return n("direction")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,unit:"kPa",width:"75px",minValue:s,maxValue:p,step:10,onChange:function(e,t){return n("pressure",{pressure:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:u===s,onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",disabled:u===d,onClick:function(){return n("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:u===p,onClick:function(){return n("pressure",{pressure:"max"})}})]})]})})],4)};t.PortableScrubber=function(e){var t=(0,r.useBackend)(e),n=t.act,l=t.data.filter_types||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,c,{state:e.state}),(0,o.createComponentVNode)(2,a.Section,{title:"Filters",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,i.getGasLabel)(e.gas_id,e.gas_name),selected:e.enabled,onClick:function(){return n("toggle_filter",{val:e.gas_id})}},e.id)}))})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.PowerMonitor=void 0;var o=n(1),r=n(23),a=n(70),i=n(20),c=n(12),l=n(2);var u=5e5,d=function(e){var t=String(e.split(" ")[1]).toLowerCase();return["w","kw","mw","gw"].indexOf(t)},s=function(e){var t,n;function c(){var t;return(t=e.call(this)||this).state={sortByField:null},t}return n=e,(t=c).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,c.prototype.render=function(){var e=this,t=this.props.state.data,n=t.history,c=this.state.sortByField,s=n.supply[n.supply.length-1]||0,f=n.demand[n.demand.length-1]||0,h=n.supply.map((function(e,t){return[t,e]})),C=n.demand.map((function(e,t){return[t,e]})),g=Math.max.apply(Math,[u].concat(n.supply,n.demand)),b=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===c&&(0,r.sortBy)((function(e){return e.name})),"charge"===c&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===c&&(0,r.sortBy)((function(e){return-d(e.load)}),(function(e){return-parseFloat(e.load)}))])(t.areas);return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"200px",children:(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Supply",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s,minValue:0,maxValue:g,color:"teal",content:(0,i.toFixed)(s/1e3)+" kW"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Draw",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:f,minValue:0,maxValue:g,color:"pink",content:(0,i.toFixed)(f/1e3)+" kW"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,l.Section,{position:"relative",height:"100%",children:[(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:h,rangeX:[0,h.length-1],rangeY:[0,g],strokeColor:"rgba(0, 181, 173, 1)",fillColor:"rgba(0, 181, 173, 0.25)"}),(0,o.createComponentVNode)(2,l.Chart.Line,{fillPositionedParent:!0,data:C,rangeX:[0,C.length-1],rangeY:[0,g],strokeColor:"rgba(224, 57, 151, 1)",fillColor:"rgba(224, 57, 151, 0.25)"})]})})]}),(0,o.createComponentVNode)(2,l.Section,{children:[(0,o.createComponentVNode)(2,l.Box,{mb:1,children:[(0,o.createComponentVNode)(2,l.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"name"===c,content:"Name",onClick:function(){return e.setState({sortByField:"name"!==c&&"name"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"charge"===c,content:"Charge",onClick:function(){return e.setState({sortByField:"charge"!==c&&"charge"})}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"draw"===c,content:"Draw",onClick:function(){return e.setState({sortByField:"draw"!==c&&"draw"})}})]}),(0,o.createComponentVNode)(2,l.Table,{children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,l.Table.Cell,{textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),b.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,e.name,0),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,p,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,m,{status:e.eqp}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,m,{status:e.lgt}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,m,{status:e.env}),2)],4,null,e.id)}))]})]})],4)},c}(o.Component);t.PowerMonitor=s;var p=function(e){var t=e.charging,n=e.charge;return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Icon,{width:"18px",textAlign:"center",name:0===t&&(n>50?"battery-half":"battery-quarter")||1===t&&"bolt"||2===t&&"battery-full",color:0===t&&(n>50?"yellow":"red")||1===t&&"yellow"||2===t&&"green"}),(0,o.createComponentVNode)(2,l.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,i.toFixed)(n)+"%"})],4)};p.defaultHooks=c.pureComponentHooks;var m=function(e){var t=e.status,n=Boolean(2&t),r=Boolean(1&t),a=(n?"On":"Off")+" ["+(r?"auto":"manual")+"]";return(0,o.createComponentVNode)(2,l.ColorBox,{color:n?"good":"bad",content:r?undefined:"M",title:a})};m.defaultHooks=c.pureComponentHooks},function(e,t,n){"use strict";t.__esModule=!0,t.Radio=void 0;var o=n(1),r=n(23),a=n(20),i=n(3),c=n(2),l=n(37);t.Radio=function(e){var t=(0,i.useBackend)(e),n=t.act,u=t.data,d=u.freqlock,s=u.frequency,p=u.minFrequency,m=u.maxFrequency,f=u.listening,h=u.broadcasting,C=u.command,g=u.useCommand,b=u.subspace,v=u.subspaceSwitchable,N=l.RADIO_CHANNELS.find((function(e){return e.freq===s})),V=(0,r.map)((function(e,t){return{name:t,status:!!e}}))(u.channels);return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",children:[d&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"light-gray",children:(0,a.toFixed)(s/10,1)+" kHz"})||(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:p/10,maxValue:m/10,value:s/10,format:function(e){return(0,a.toFixed)(e,1)},onDrag:function(e,t){return n("frequency",{adjust:t-s/10})}}),N&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:N.color,ml:2,children:["[",N.name,"]"]})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Audio",children:[(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:f?"volume-up":"volume-mute",selected:f,onClick:function(){return n("listen")}}),(0,o.createComponentVNode)(2,c.Button,{textAlign:"center",width:"37px",icon:h?"microphone":"microphone-slash",selected:h,onClick:function(){return n("broadcast")}}),!!C&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:g,content:"High volume "+(g?"ON":"OFF"),onClick:function(){return n("command")}}),!!v&&(0,o.createComponentVNode)(2,c.Button,{ml:1,icon:"bullhorn",selected:b,content:"Subspace Tx "+(b?"ON":"OFF"),onClick:function(){return n("subspace")}})]}),!!b&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Channels",children:[0===V.length&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"bad",children:"No encryption keys installed."}),V.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:(0,o.createComponentVNode)(2,c.Button,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:e.name,onClick:function(){return n("channel",{channel:e.name})}})},e.name)}))]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.RapidPipeDispenser=void 0;var o=n(1),r=n(12),a=n(3),i=n(2),c=["Atmospherics","Disposals","Transit Tubes"],l={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Station Equipment":"microchip"},u={grey:"#bbbbbb",amethyst:"#a365ff",blue:"#4466ff",brown:"#b26438",cyan:"#48eae8",dark:"#808080",green:"#1edd00",orange:"#ffa030",purple:"#b535ea",red:"#ff3333",violet:"#6e00f6",yellow:"#ffce26"},d=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}];t.RapidPipeDispenser=function(e){var t=(0,a.useBackend)(e),n=t.act,s=t.data,p=s.category,m=s.categories,f=void 0===m?[]:m,h=s.selected_color,C=s.piping_layer,g=s.mode,b=s.preview_rows.flatMap((function(e){return e.previews}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Category",children:c.map((function(e,t){return(0,o.createComponentVNode)(2,i.Button,{selected:p===t,icon:l[e],color:"transparent",content:e,onClick:function(){return n("category",{category:t})}},e)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Modes",children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:g&e.bitmask,content:e.name,onClick:function(){return n("mode",{mode:e.bitmask})}},e.bitmask)}))}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,i.Box,{inline:!0,width:"64px",color:u[h],content:h}),Object.keys(u).map((function(e){return(0,o.createComponentVNode)(2,i.ColorBox,{ml:1,color:u[e],onClick:function(){return n("color",{paint_color:e})}},e)}))]})]})}),(0,o.createComponentVNode)(2,i.Flex,{m:-.5,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,i.Section,{children:[0===p&&(0,o.createComponentVNode)(2,i.Box,{mb:1,children:[1,2,3].map((function(e){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,checked:e===C,content:"Layer "+e,onClick:function(){return n("piping_layer",{piping_layer:e})}},e)}))}),(0,o.createComponentVNode)(2,i.Box,{width:"108px",children:b.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{title:e.dir_name,selected:e.selected,style:{width:"48px",height:"48px",padding:0},onClick:function(){return n("setdir",{dir:e.dir,flipped:e.flipped})},children:(0,o.createComponentVNode)(2,i.Box,{className:(0,r.classes)(["pipes32x32",e.dir+"-"+e.icon_state]),style:{transform:"scale(1.5) translate(17%, 17%)"}})},e.dir)}))})]})}),(0,o.createComponentVNode)(2,i.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:f.map((function(e){return(0,o.createComponentVNode)(2,i.Tabs.Tab,{fluid:!0,icon:l[e.cat_name],label:e.cat_name,children:function(){return e.recipes.map((function(t){return(0,o.createComponentVNode)(2,i.Button.Checkbox,{fluid:!0,ellipsis:!0,checked:t.selected,content:t.pipe_name,title:t.pipe_name,onClick:function(){return n("pipe_type",{pipe_type:t.pipe_index,category:e.cat_name})}},t.pipe_index)}))}},e.cat_name)}))})})})]})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(1),r=n(3),a=n(2),i=n(163);t.SatelliteControl=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data,l=c.satellites||[];return(0,o.createFragment)([c.meteor_shield&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledListItem,{label:"Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c.meteor_shield_coverage/c.meteor_shield_coverage_max,content:100*c.meteor_shield_coverage/c.meteor_shield_coverage_max+"%",ranges:{good:[1,Infinity],average:[.3,1],bad:[-Infinity,.3]}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Controls",children:(0,o.createComponentVNode)(2,a.Box,{mr:-1,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.active,content:"#"+e.id+" "+e.mode,onClick:function(){return n("toggle",{id:e.id})}},e.id)}))})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.ScannerGate=void 0;var o=n(1),r=n(3),a=n(2),i=n(69),c=["Positive","Harmless","Minor","Medium","Harmful","Dangerous","BIOHAZARD"],l=[{name:"Human",value:"human"},{name:"Lizardperson",value:"lizard"},{name:"Flyperson",value:"fly"},{name:"Felinid",value:"felinid"},{name:"Plasmaman",value:"plasma"},{name:"Mothperson",value:"moth"},{name:"Jellyperson",value:"jelly"},{name:"Podperson",value:"pod"},{name:"Golem",value:"golem"},{name:"Zombie",value:"zombie"}],u=[{name:"Starving",value:150},{name:"Obese",value:600}];t.ScannerGate=function(e){var t=e.state,n=(0,r.useBackend)(e),a=n.act,c=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox,{locked:c.locked,onLockedStatusChange:function(){return a("toggle_lock")}}),!c.locked&&(0,o.createComponentVNode)(2,s,{state:t})],0)};var d={Off:{title:"Scanner Mode: Off",component:function(){return p}},Wanted:{title:"Scanner Mode: Wanted",component:function(){return m}},Guns:{title:"Scanner Mode: Guns",component:function(){return f}},Mindshield:{title:"Scanner Mode: Mindshield",component:function(){return h}},Disease:{title:"Scanner Mode: Disease",component:function(){return C}},Species:{title:"Scanner Mode: Species",component:function(){return g}},Nutrition:{title:"Scanner Mode: Nutrition",component:function(){return b}},Nanites:{title:"Scanner Mode: Nanites",component:function(){return v}}},s=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data.scan_mode,l=d[c]||d.off,u=l.component();return(0,o.createComponentVNode)(2,a.Section,{title:l.title,buttons:"Off"!==c&&(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"back",onClick:function(){return i("set_mode",{new_mode:"Off"})}}),children:(0,o.createComponentVNode)(2,u,{state:t})})},p=function(e){var t=(0,r.useBackend)(e).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:"Select a scanning mode below."}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Wanted",onClick:function(){return t("set_mode",{new_mode:"Wanted"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Guns",onClick:function(){return t("set_mode",{new_mode:"Guns"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Mindshield",onClick:function(){return t("set_mode",{new_mode:"Mindshield"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Disease",onClick:function(){return t("set_mode",{new_mode:"Disease"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Species",onClick:function(){return t("set_mode",{new_mode:"Species"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nutrition",onClick:function(){return t("set_mode",{new_mode:"Nutrition"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nanites",onClick:function(){return t("set_mode",{new_mode:"Nanites"})}})]})],4)},m=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any warrants for their arrest."]}),(0,o.createComponentVNode)(2,N,{state:t})],4)},f=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any guns."]}),(0,o.createComponentVNode)(2,N,{state:t})],4)},h=function(e){var t=e.state,n=(0,r.useBackend)(e).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","a mindshield."]}),(0,o.createComponentVNode)(2,N,{state:t})],4)},C=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,l=n.data,u=l.reverse,d=l.disease_threshold;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",u?"does not have":"has"," ","a disease equal or worse than ",d,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:c.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e===d,content:e,onClick:function(){return i("set_disease_threshold",{new_threshold:e})}},e)}))}),(0,o.createComponentVNode)(2,N,{state:t})],4)},g=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,u=c.reverse,d=c.target_species,s=l.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned is ",u?"not":""," ","of the ",s.name," species.","zombie"===d&&" All zombie types will be detected, including dormant zombies."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return i("set_target_species",{new_species:e.value})}},e.value)}))}),(0,o.createComponentVNode)(2,N,{state:t})],4)},b=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,d=c.target_nutrition,s=u.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","the ",s.name," nutrition level."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return i("set_target_nutrition",{new_nutrition:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,N,{state:t})],4)},v=function(e){var t=e.state,n=(0,r.useBackend)(e),i=n.act,c=n.data,l=c.reverse,u=c.nanite_cloud;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","nanite cloud ",u,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:u,width:"65px",minValue:1,maxValue:100,stepPixelSize:2,onChange:function(e,t){return i("set_nanite_cloud",{new_cloud:t})}})})})}),(0,o.createComponentVNode)(2,N,{state:t})],4)},N=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.reverse;return(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanning Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:i?"Inverted":"Default",icon:i?"random":"long-arrow-alt-right",onClick:function(){return n("toggle_reverse")},color:i?"bad":"good"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulator=void 0;var o=n(1),r=n(23),a=n(3),i=n(2);t.ShuttleManipulator=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.shuttles||[],u=c.templates||{},d=c.selected||{},s=c.existing_shuttle||{};return(0,o.createComponentVNode)(2,i.Tabs,{children:[(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Status",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Table,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"JMP",onClick:function(){return n("jump_to",{type:"mobile",id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.Button,{content:"Fly",disabled:!e.can_fly,onClick:function(){return n("fly",{id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.status}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:[e.mode,!!e.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),e.timeleft,(0,o.createTextVNode)(")"),(0,o.createComponentVNode)(2,i.Button,{content:"Fast Travel",disabled:!e.can_fast_travel,onClick:function(){return n("fast_travel",{id:e.id})}},e.id)],0)]})]},e.id)}))})})}},"status"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Templates",children:function(){return(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Tabs,{children:(0,r.map)((function(e,t){var r=e.templates||[];return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:e.port_id,children:r.map((function(e){var t=e.shuttle_id===d.shuttle_id;return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{content:t?"Selected":"Select",selected:t,onClick:function(){return n("select_template",{shuttle_id:e.shuttle_id})}}),children:(!!e.description||!!e.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!e.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:e.description}),!!e.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes})]})},e.shuttle_id)}))},t)}))(u)})})}},"templates"),(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:"Modification",children:(0,o.createComponentVNode)(2,i.Section,{children:d?(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{level:2,title:d.name,children:(!!d.description||!!d.admin_notes)&&(0,o.createComponentVNode)(2,i.LabeledList,{children:[!!d.description&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:d.description}),!!d.admin_notes&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Admin Notes",children:d.admin_notes})]})}),s?(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: "+s.name,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Jump To",onClick:function(){return n("jump_to",{type:"mobile",id:s.id})}}),children:[s.status,!!s.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),s.timeleft,(0,o.createTextVNode)(")")],0)]})})}):(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Existing Shuttle: None"}),(0,o.createComponentVNode)(2,i.Section,{level:2,title:"Status",children:[(0,o.createComponentVNode)(2,i.Button,{content:"Preview",onClick:function(){return n("preview",{shuttle_id:d.shuttle_id})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Load",color:"bad",onClick:function(){return n("load",{shuttle_id:d.shuttle_id})}})]})],0):"No shuttle selected"})},"modification")]})}},function(e,t,n){"use strict";t.__esModule=!0,t.SlimeBodySwapper=t.BodyEntry=void 0;var o=n(1),r=n(3),a=n(2),i=function(e){var t=e.body,n=e.swapFunc;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:t.htmlcolor,children:t.name}),level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{content:{owner:"You Are Here",stranger:"Occupied",available:"Swap"}[t.occupied],selected:"owner"===t.occupied,color:"stranger"===t.occupied&&"bad",onClick:function(){return n()}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",bold:!0,color:{Dead:"bad",Unconscious:"average",Conscious:"good"}[t.status],children:t.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Jelly",children:t.exoticblood}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:t.area})]})})};t.BodyEntry=i;t.SlimeBodySwapper=function(e){var t=(0,r.useBackend)(e),n=t.act,c=t.data.bodies,l=void 0===c?[]:c;return(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,i,{body:e,swapFunc:function(){return n("swap",{ref:e.ref})}},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.Signaler=void 0;var o=n(1),r=n(2),a=n(3),i=n(20);t.Signaler=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data,l=c.code,u=c.frequency,d=c.minFrequency,s=c.maxFrequency;return(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Grid,{children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Frequency:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:d/10,maxValue:s/10,value:u/10,format:function(e){return(0,i.toFixed)(e,1)},width:13,onDrag:function(e,t){return n("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"freq"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.6,children:[(0,o.createComponentVNode)(2,r.Grid.Column,{size:1.4,color:"label",children:"Code:"}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:13,onDrag:function(e,t){return n("code",{code:t})}})}),(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return n("reset",{reset:"code"})}})})]}),(0,o.createComponentVNode)(2,r.Grid,{mt:.8,children:(0,o.createComponentVNode)(2,r.Grid.Column,{children:(0,o.createComponentVNode)(2,r.Button,{mb:-.1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){return n("signal")}})})})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.SmartVend=void 0;var o=n(1),r=n(23),a=n(3),i=n(2);t.SmartVend=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data;return(0,o.createComponentVNode)(2,i.Section,{title:"Storage",buttons:!!c.isdryer&&(0,o.createComponentVNode)(2,i.Button,{icon:c.drying?"stop":"tint",onClick:function(){return n("Dry")},children:c.drying?"Stop drying":"Dry"}),children:0===c.contents.length&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:["Unfortunately, this ",c.name," is empty."]})||(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Item"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"center",children:c.verb?c.verb:"Dispense"})]}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:e.amount}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,i.Button,{content:"One",disabled:e.amount<1,onClick:function(){return n("Release",{name:e.name,amount:1})}}),(0,o.createComponentVNode)(2,i.Button,{content:"Many",disabled:e.amount<=1,onClick:function(){return n("Release",{name:e.name})}})]})]},t)}))(c.contents)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(1),r=n(3),a=n(2);t.Smes=function(e){var t,n,i=(0,r.useBackend)(e),c=i.act,l=i.data;return t=l.capacityPercent>=100?"good":l.inputting?"average":"bad",n=l.outputting?"good":l.charge>0?"average":"bad",(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*l.capacityPercent,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.inputAttempt?"sync-alt":"times",selected:l.inputAttempt,onClick:function(){return c("tryinput")},children:l.inputAttempt?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:t,children:l.capacityPercent>=100?"Fully Charged":l.inputting?"Charging":"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.inputLevel/l.inputLevelMax,content:l.inputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Input",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.inputLevel,onClick:function(){return c("input",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.inputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.inputLevelMax/1e3,onChange:function(e,t){return c("input",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.inputLevel===l.inputLevelMax,onClick:function(){return c("input",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:l.inputAvailable})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.outputAttempt?"power-off":"times",selected:l.outputAttempt,onClick:function(){return c("tryoutput")},children:l.outputAttempt?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:n,children:l.outputting?"Sending":l.charge>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.outputLevel/l.outputLevelMax,content:l.outputLevel_text})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust Output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===l.outputLevel,onClick:function(){return c("output",{adjust:-1e4})}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(l.outputLevel/1e3),unit:"kW",width:"65px",minValue:0,maxValue:l.outputLevelMax/1e3,onChange:function(e,t){return c("output",{target:1e3*t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:l.outputLevel===l.outputLevelMax,onClick:function(){return c("output",{target:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:l.outputUsed})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SmokeMachine=void 0;var o=n(1),r=n(3),a=n(2);t.SmokeMachine=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.TankContents,l=(i.isTankLoaded,i.TankCurrentVolume),u=i.TankMaxVolume,d=i.active,s=i.setting,p=(i.screen,i.maxSetting),m=void 0===p?[]:p;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Dispersal Tank",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",selected:d,content:d?"On":"Off",onClick:function(){return n("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/u,ranges:{bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{initial:0,value:l||0})," / "+u]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:[1,2,3,4,5].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:s===e,icon:"plus",content:3*e,disabled:m0?"good":"bad",children:m})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:l,content:c+" W"})})})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracking",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===p,onClick:function(){return n("tracking",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===p,onClick:function(){return n("tracking",{mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===p,disabled:!f,onClick:function(){return n("tracking",{mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Azimuth",children:[(0===p||1===p)&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"52px",unit:"\xb0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:u,onDrag:function(e,t){return n("azimuth",{value:t})}}),1===p&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"80px",unit:"\xb0/m",step:.01,stepPixelSize:1,minValue:-s-.01,maxValue:s+.01,value:d,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return n("azimuth_rate",{value:t})}}),2===p&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mt:"3px",children:[u+" \xb0"," (auto)"]})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpaceHeater=void 0;var o=n(1),r=n(3),a=n(2);t.SpaceHeater=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!i.hasPowercell||!i.open,onClick:function(){return n("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:i.on?"power-off":"times",content:i.on?"On":"Off",selected:i.on,disabled:!i.hasPowercell,onClick:function(){return n("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!i.hasPowercell&&"bad",children:i.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.powerLevel/100,content:i.powerLevel+"%",ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]}})||"None"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Thermostat",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",color:Math.abs(i.targetTemp-i.currentTemp)>50?"bad":Math.abs(i.targetTemp-i.currentTemp)>20?"average":"good",children:[i.currentTemp,"\xb0C"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:i.open&&(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.targetTemp),width:"65px",unit:"\xb0C",minValue:i.minTemp,maxValue:i.maxTemp,onChange:function(e,t){return n("target",{target:t})}})||i.targetTemp+"\xb0C"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:i.open?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-half",content:"Auto",selected:"auto"===i.mode,onClick:function(){return n("mode",{mode:"auto"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fire-alt",content:"Heat",selected:"heat"===i.mode,onClick:function(){return n("mode",{mode:"heat"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fan",content:"Cool",selected:"cool"===i.mode,onClick:function(){return n("mode",{mode:"cool"})}})],4):"Auto"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(1),r=n(3),a=n(2);t.SpawnersMenu=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data.spawners||[];return(0,o.createComponentVNode)(2,a.Section,{children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Jump",onClick:function(){return n("jump",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Spawn",onClick:function(){return n("spawn",{name:e.name})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,fontSize:"20px",children:e.short_desc}),(0,o.createComponentVNode)(2,a.Box,{children:e.flavor_text}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,color:"bad",fontSize:"26px",children:e.important_info})]},e.name)}))})}},function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsole=void 0;var o=n(1),r=n(3),a=n(2);t.StationAlertConsole=function(e){var t=(0,r.useBackend)(e).data.alarms||[],n=t.Fire||[],i=t.Atmosphere||[],c=t.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===n.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),n.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorageUnit=void 0;var o=n(1),r=n(3),a=n(2);t.SuitStorageUnit=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.locked,l=i.open,u=i.safeties,d=i.uv_active,s=i.occupied,p=i.suit,m=i.helmet,f=i.mask,h=i.storage;return(0,o.createFragment)([!(!s||!u)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Biological entity detected in suit chamber. Please remove before continuing with operation."}),d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Contents are currently being decontaminated. Please wait."})||(0,o.createComponentVNode)(2,a.Section,{title:"Storage",minHeight:"260px",buttons:(0,o.createFragment)([!l&&(0,o.createComponentVNode)(2,a.Button,{icon:c?"unlock":"lock",content:c?"Unlock":"Lock",onClick:function(){return n("lock")}}),!c&&(0,o.createComponentVNode)(2,a.Button,{icon:l?"sign-out-alt":"sign-in-alt",content:l?"Close":"Open",onClick:function(){return n("door")}})],0),children:c&&(0,o.createComponentVNode)(2,a.Box,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,o.createComponentVNode)(2,a.Box,{children:"Unit Locked"}),(0,o.createComponentVNode)(2,a.Icon,{name:"lock"})]})||l&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Helmet",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"square":"square-o",content:m||"Empty",disabled:!m,onClick:function(){return n("dispense",{item:"helmet"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suit",children:(0,o.createComponentVNode)(2,a.Button,{icon:p?"square":"square-o",content:p||"Empty",disabled:!p,onClick:function(){return n("dispense",{item:"suit"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:f?"square":"square-o",content:f||"Empty",disabled:!f,onClick:function(){return n("dispense",{item:"mask"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Storage",children:(0,o.createComponentVNode)(2,a.Button,{icon:h?"square":"square-o",content:h||"Empty",disabled:!h,onClick:function(){return n("dispense",{item:"storage"})}})})]})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"recycle",content:"Decontaminate",disabled:s&&u,textAlign:"center",onClick:function(){return n("uv")}})})],0)}},function(e,t,n){"use strict";t.__esModule=!0,t.Tank=void 0;var o=n(1),r=n(3),a=n(2);t.Tank=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i.tankPressure/1013,content:i.tankPressure+" kPa",ranges:{good:[.35,Infinity],average:[.15,.35],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:i.ReleasePressure===i.minReleasePressure,onClick:function(){return n("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(i.releasePressure),width:"65px",unit:"kPa",minValue:i.minReleasePressure,maxValue:i.maxReleasePressure,onChange:function(e,t){return n("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:i.ReleasePressure===i.maxReleasePressure,onClick:function(){return n("pressure",{pressure:"max"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"",disabled:i.ReleasePressure===i.defaultReleasePressure,onClick:function(){return n("pressure",{pressure:"reset"})}})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.TankDispenser=void 0;var o=n(1),r=n(3),a=n(2);t.TankDispenser=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plasma",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.plasma?"square":"square-o",content:"Dispense",disabled:!i.plasma,onClick:function(){return n("plasma")}}),children:i.plasma}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:i.oxygen?"square":"square-o",content:"Dispense",disabled:!i.oxygen,onClick:function(){return n("oxygen")}}),children:i.oxygen})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Teleporter=void 0;var o=n(1),r=n(3),a=n(2);t.Teleporter=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=i.calibrated,l=i.calibrating,u=i.power_station,d=i.regime_set,s=i.teleporter_hub,p=i.target;return(0,o.createComponentVNode)(2,a.Section,{children:!u&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No power station linked."})||!s&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No hub linked."})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Regime",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Change Regime",onClick:function(){return n("regimeset")}}),children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Target",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Set Target",onClick:function(){return n("settarget")}}),children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Calibration",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"tools",content:"Calibrate Hub",onClick:function(){return n("calibrate")}}),children:l&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"In Progress"})||c&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Optimal"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Sub-Optimal"})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ThermoMachine=void 0;var o=n(1),r=n(20),a=n(3),i=n(2);t.ThermoMachine=function(e){var t=(0,a.useBackend)(e),n=t.act,c=t.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Section,{title:"Status",children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:c.temperature,format:function(e){return(0,r.toFixed)(e,2)}})," K"]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{value:c.pressure,format:function(e){return(0,r.toFixed)(e,2)}})," kPa"]})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){return n("power")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,i.NumberInput,{animated:!0,value:Math.round(c.target),unit:"K",width:"62px",minValue:Math.round(c.min),maxValue:Math.round(c.max),step:5,stepPixelSize:3,onDrag:function(e,t){return n("target",{target:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,i.Button,{icon:"fast-backward",disabled:c.target===c.min,title:"Minimum temperature",onClick:function(){return n("target",{target:c.min})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",disabled:c.target===c.initial,title:"Room Temperature",onClick:function(){return n("target",{target:c.initial})}}),(0,o.createComponentVNode)(2,i.Button,{icon:"fast-forward",disabled:c.target===c.max,title:"Maximum Temperature",onClick:function(){return n("target",{target:c.max})}})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.TurbineComputer=void 0;var o=n(1),r=n(3),a=n(2);t.TurbineComputer=function(e){var t=(0,r.useBackend)(e),n=t.act,i=t.data,c=Boolean(i.compressor&&!i.compressor_broke&&i.turbine&&!i.turbine_broke);return(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:i.online?"power-off":"times",content:i.online?"Online":"Offline",selected:i.online,disabled:!c,onClick:function(){return n("toggle_power")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reconnect",onClick:function(){return n("reconnect")}})],4),children:!c&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Compressor Status",color:!i.compressor||i.compressor_broke?"bad":"good",children:i.compressor_broke?i.compressor?"Offline":"Missing":"Online"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Turbine Status",color:!i.turbine||i.turbine_broke?"bad":"good",children:i.turbine_broke?i.turbine?"Offline":"Missing":"Online"})]})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Turbine Speed",children:[i.rpm," RPM"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Internal Temp",children:[i.temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Generated Power",children:i.power})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Uplink=void 0;var o=n(1),r=n(29),a=n(19),i=n(2);var c=function(e){var t,n;function r(){var t;return(t=e.call(this)||this).state={hoveredItem:{},currentSearch:""},t}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var c=r.prototype;return c.setHoveredItem=function(e){this.setState({hoveredItem:e})},c.setSearchText=function(e){this.setState({currentSearch:e})},c.render=function(){var e=this,t=this.props.state,n=t.config,r=t.data,c=n.ref,u=r.compact_mode,d=r.lockable,s=r.telecrystals,p=r.categories,m=void 0===p?[]:p,f=this.state,h=f.hoveredItem,C=f.currentSearch;return(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:s>0?"good":"bad",children:[s," TC"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{value:C,onInput:function(t,n){return e.setSearchText(n)},ml:1,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:u?"list":"info",content:u?"Compact":"Detailed",onClick:function(){return(0,a.act)(c,"compact_toggle")}}),!!d&&(0,o.createComponentVNode)(2,i.Button,{icon:"lock",content:"Lock",onClick:function(){return(0,a.act)(c,"lock")}})],0),children:C.length>0?(0,o.createVNode)(1,"table","Table",(0,o.createComponentVNode)(2,l,{compact:!0,items:m.flatMap((function(e){return e.items||[]})).filter((function(e){var t=C.toLowerCase();return String(e.name+e.desc).toLowerCase().includes(t)})),hoveredItem:h,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}}),2):(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:m.map((function(t){var n=t.name,r=t.items;if(null!==r)return(0,o.createComponentVNode)(2,i.Tabs.Tab,{label:n+" ("+r.length+")",children:function(){return(0,o.createComponentVNode)(2,l,{compact:u,items:r,hoveredItem:h,telecrystals:s,onBuyMouseOver:function(t){return e.setHoveredItem(t)},onBuyMouseOut:function(t){return e.setHoveredItem({})},onBuy:function(e){return(0,a.act)(c,"buy",{item:e.name})}})}},n)}))})})},r}(o.Component);t.Uplink=c;var l=function(e){var t=e.items,n=e.hoveredItem,a=e.telecrystals,c=e.compact,l=e.onBuy,u=e.onBuyMouseOver,d=e.onBuyMouseOut,s=n&&n.cost||0;return c?(0,o.createComponentVNode)(2,i.Table,{children:t.map((function(e){var t=n&&n.name!==e.name,c=a-s1?r-1:0),i=1;i1?t-1:0),o=1;o MechBayPowerConsole, scrollable: false, }, + nanite_chamber_control: { + component: () => NaniteChamberControl, + scrollable: true, + }, + nanite_cloud_control: { + component: () => NaniteCloudControl, + scrollable: true, + }, + nanite_program_hub: { + component: () => NaniteProgramHub, + scrollable: true, + }, + nanite_programmer: { + component: () => NaniteProgrammer, + scrollable: true, + }, + nanite_remote: { + component: () => NaniteRemote, + scrollable: true, + }, mulebot: { component: () => Mule, scrollable: false,