diff --git a/.github/workflows/build_rust.yml b/.github/workflows/build_rust.yml
index ea3cf500eab5..7cbbdb508445 100644
--- a/.github/workflows/build_rust.yml
+++ b/.github/workflows/build_rust.yml
@@ -13,7 +13,7 @@ jobs:
(github.event.comment.author_association == 'MEMBER') ||
(github.event.comment.author_association == 'OWNER'))
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- id: create_token
uses: actions/create-github-app-token@v1
@@ -38,7 +38,7 @@ jobs:
- name: PR Data
run: |
pr_json=$(curl -L -s --fail-with-body -H "Authorization: token ${{ github.token }}" ${{ github.event.issue.pull_request.url }})
- if [ `jq -r '.maintainer_can_modify' <<<$pr_json` == "false" ] ; then
+ if [ `jq -r '.head.repo.id == .base.repo.id' <<<$pr_json` == "false" ] && [ `jq -r '.maintainer_can_modify' <<<$pr_json` == "false" ] ; then
gh pr comment ${{ github.event.issue.html_url }} --body 'GitHub Actions can not push to the repository without "Allow edits and access to secrets by maintainers" checked.'
echo "FAIL_NOTIFIED=true" >> "$GITHUB_ENV"
exit 1
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 05ecbb5a80bb..1cfa43d20aa5 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -104,7 +104,7 @@ jobs:
'/datum/map/cerestation',
'/datum/map/emeraldstation',
]
- byondtype: ['STABLE']
+ byondtype: ['STABLE', 'BETA']
services:
mariadb:
image: mariadb:latest
diff --git a/_build_dependencies.sh b/_build_dependencies.sh
index 552b2f4d155c..480502ecd419 100644
--- a/_build_dependencies.sh
+++ b/_build_dependencies.sh
@@ -8,9 +8,9 @@ export STABLE_BYOND_MAJOR=515
# Stable Byond Minor
export STABLE_BYOND_MINOR=1633
# Beta Byond Major - Uncomment and update if beta cycle active
-#export BETA_BYOND_MAJOR=515
+export BETA_BYOND_MAJOR=516
# Beta Byond Minor - Uncomment and update if beta cycle active
-#export BETA_BYOND_MINOR=1633
+export BETA_BYOND_MINOR=1648
# Python version for mapmerge and other tools
export PYTHON_VERSION=3.11.6
# RUSTG version
diff --git a/_maps/__MAP_DEFINES.dm b/_maps/__MAP_DEFINES.dm
index f006f823bd78..8f55a0aea114 100644
--- a/_maps/__MAP_DEFINES.dm
+++ b/_maps/__MAP_DEFINES.dm
@@ -29,6 +29,8 @@
#define SPAWN_RUINS "Spawn Ruins"
/// A level that can be navigated to through space, but for real this time.
#define REACHABLE_SPACE_ONLY "Reachable Space Only"
+ /// A level used for spawning map areas in tests
+ #define GAME_TEST_LEVEL "Game Test Level"
// Level names
#define MAIN_STATION "Main Station"
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm
index b701d975b9d8..2b6384947624 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm
@@ -14,7 +14,7 @@
/area/ruin/powered/greed)
"e" = (
/obj/structure/table/wood/poker,
-/obj/item/gun/projectile/revolver/russian/soul,
+/obj/item/toy/russian_revolver/soul,
/obj/machinery/light/small{
dir = 1
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/debris1.dmm b/_maps/map_files/RandomRuins/SpaceRuins/debris1.dmm
index 160a2e7dc741..354deb775f47 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/debris1.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/debris1.dmm
@@ -43,7 +43,7 @@
/turf/template_noop,
/area/template_noop)
"ao" = (
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/template_noop,
/area/template_noop)
"ap" = (
@@ -85,7 +85,7 @@
/turf/simulated/floor/plating/airless,
/area/template_noop)
"aG" = (
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/turf/simulated/floor/plating/burnt/airless,
/area/template_noop)
"aI" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/debris3.dmm b/_maps/map_files/RandomRuins/SpaceRuins/debris3.dmm
index e4796d69108f..419dbd23ad01 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/debris3.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/debris3.dmm
@@ -36,7 +36,7 @@
/turf/template_noop,
/area/template_noop)
"k" = (
-/obj/random/plushie,
+/obj/effect/spawner/random/plushies,
/turf/template_noop,
/area/template_noop)
"l" = (
@@ -83,7 +83,7 @@
/turf/simulated/floor/plating/damaged/airless,
/area/template_noop)
"A" = (
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/template_noop,
/area/template_noop)
"B" = (
@@ -95,7 +95,7 @@
/turf/template_noop,
/area/template_noop)
"F" = (
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plating/damaged/airless,
/area/template_noop)
"G" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm
index 4435ee1f2c52..a57154509b6a 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm
@@ -172,7 +172,7 @@
/area/ruin/space/unpowered)
"xQ" = (
/obj/structure/table,
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/turf/simulated/floor/plasteel,
/area/ruin/space/unpowered)
"yq" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
index dea5f39dc337..525d34dae908 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
@@ -9964,7 +9964,7 @@
pixel_y = 7;
pixel_x = -3
},
-/obj/item/clothing/accessory/horrible{
+/obj/item/clothing/neck/tie/horrible{
pixel_y = -2;
pixel_x = 2
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm
index bf7c80ce1d9a..af97fb7f18aa 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm
@@ -1127,7 +1127,7 @@
icon_state = "0-8"
},
/obj/structure/closet/crate/medical,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/healthanalyzer,
/obj/item/reagent_containers/iv_bag/blood/o_minus,
/obj/item/reagent_containers/iv_bag/blood/o_minus,
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm b/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm
index 27969a1dfc4c..e72adf279475 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm
@@ -223,7 +223,7 @@
},
/area/ruin/space/powered/bar)
"aY" = (
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/stack/medical/bruise_pack/advanced,
/obj/item/scalpel,
/obj/structure/table,
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
index 843dad6c0147..8a778e8388e2 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm
@@ -3435,7 +3435,7 @@
},
/area/ruin/unpowered/syndicate_space_base/storage)
"uy" = (
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "darkred"
@@ -7950,7 +7950,7 @@
/obj/item/storage/belt/medical,
/obj/item/crowbar,
/obj/item/clothing/glasses/hud/health,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/structure/table,
/turf/simulated/floor/plasteel{
icon_state = "whiteblue"
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm
index d6fe33d80a74..0fef45873213 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm
@@ -551,7 +551,7 @@
/area/ruin/space/syndicakefactory)
"uU" = (
/obj/structure/rack,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/engine,
/area/ruin/space/syndicakefactory)
"vo" = (
diff --git a/_maps/map_files/generic/Lavaland.dmm b/_maps/map_files/generic/Lavaland.dmm
index f5f407d79ccf..0356b3cf14b1 100644
--- a/_maps/map_files/generic/Lavaland.dmm
+++ b/_maps/map_files/generic/Lavaland.dmm
@@ -1416,7 +1416,7 @@
/area/mine/outpost/hallway/west)
"dU" = (
/obj/structure/rack,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plating,
/area/mine/outpost/maintenance/south)
"dV" = (
diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm
index 41ef9d6a4b42..74893a0466a7 100644
--- a/_maps/map_files/generic/centcomm.dmm
+++ b/_maps/map_files/generic/centcomm.dmm
@@ -6403,8 +6403,7 @@
/area/admin)
"vJ" = (
/obj/structure/table,
-/obj/random/toolbox,
-/obj/random/bomb_supply,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/machinery/syndicatebomb/badmin/clown,
/turf/simulated/floor/plasteel/dark,
/area/admin)
@@ -6602,7 +6601,6 @@
"wx" = (
/obj/structure/table,
/obj/item/tank/internals/oxygen/yellow,
-/obj/random/bomb_supply,
/obj/item/clothing/under/costume/rebeloutfit,
/obj/item/clothing/suit/poncho/ponchoshame,
/obj/item/clothing/head/sombrero/shamebrero,
@@ -6746,7 +6744,7 @@
/area/admin)
"wT" = (
/obj/structure/table,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/item/clothing/gloves/color/yellow,
/obj/item/pinpointer/advpinpointer,
/turf/simulated/floor/plasteel/dark,
@@ -12325,7 +12323,10 @@
/area/centcom/control)
"Rh" = (
/obj/structure/table,
-/obj/random/powercell,
+/obj/item/stock_parts/cell,
+/obj/item/stock_parts/cell/high,
+/obj/item/stock_parts/cell/super,
+/obj/item/stock_parts/cell/hyper,
/turf/simulated/floor/plasteel,
/area/admin)
"Ri" = (
@@ -12365,8 +12366,7 @@
/area/centcom/evac)
"Rn" = (
/obj/structure/table,
-/obj/random/tool,
-/obj/random/bomb_supply,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plasteel,
/area/admin)
"Ro" = (
@@ -12824,8 +12824,6 @@
/area/admin)
"To" = (
/obj/structure/table,
-/obj/random/technology_scanner,
-/obj/random/tech_supply,
/turf/simulated/floor/plasteel,
/area/admin)
"Tp" = (
@@ -13609,7 +13607,6 @@
"Wt" = (
/obj/structure/table,
/obj/item/clothing/gloves/color/yellow,
-/obj/random/bomb_supply,
/turf/simulated/floor/plasteel,
/area/admin)
"Wu" = (
diff --git a/_maps/map_files/shuttles/emergency_shadow.dmm b/_maps/map_files/shuttles/emergency_shadow.dmm
index a7d91591e328..f5aa7fa5d8f9 100644
--- a/_maps/map_files/shuttles/emergency_shadow.dmm
+++ b/_maps/map_files/shuttles/emergency_shadow.dmm
@@ -154,7 +154,8 @@
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 5
},
-/turf/simulated/floor/engine/plasma,
+/obj/structure/plasmafire_generator/shadow,
+/turf/simulated/floor/engine/airless,
/area/shuttle/escape)
"ge" = (
/obj/structure/table/glass/reinforced/plastitanium,
@@ -230,9 +231,6 @@
},
/turf/simulated/floor/catwalk,
/area/shuttle/escape)
-"jR" = (
-/turf/simulated/floor/engine/o2,
-/area/shuttle/escape)
"kx" = (
/obj/structure/chair/comfy/shuttle,
/turf/simulated/floor/mineral/plastitanium/red/brig,
@@ -354,7 +352,8 @@
/obj/machinery/atmospherics/pipe/manifold/hidden{
dir = 4
},
-/turf/simulated/floor/engine/plasma,
+/obj/structure/plasmafire_generator/shadow,
+/turf/simulated/floor/engine/airless,
/area/shuttle/escape)
"pi" = (
/obj/effect/turf_decal/stripes/white/line{
@@ -565,7 +564,8 @@
},
/area/shuttle/escape)
"zj" = (
-/turf/simulated/floor/engine/plasma,
+/obj/structure/plasmafire_generator/shadow,
+/turf/simulated/floor/engine/airless,
/area/shuttle/escape)
"zs" = (
/obj/structure/reagent_dispensers/fueltank,
@@ -639,7 +639,8 @@
/area/template_noop)
"CD" = (
/obj/machinery/igniter/shadow,
-/turf/simulated/floor/engine/plasma,
+/obj/structure/plasmafire_generator/shadow,
+/turf/simulated/floor/engine/airless,
/area/shuttle/escape)
"CK" = (
/obj/structure/shuttle/engine/propulsion/burst{
@@ -680,7 +681,8 @@
/area/shuttle/escape)
"DY" = (
/obj/machinery/atmospherics/pipe/simple/hidden/universal,
-/turf/simulated/floor/engine/plasma,
+/obj/structure/plasmafire_generator/shadow,
+/turf/simulated/floor/engine/airless,
/area/shuttle/escape)
"DZ" = (
/obj/effect/turf_decal/stripes/red/corner{
@@ -739,7 +741,8 @@
dir = 4;
invisibility = 99
},
-/turf/simulated/floor/engine/plasma,
+/obj/structure/plasmafire_generator/shadow,
+/turf/simulated/floor/engine/airless,
/area/shuttle/escape)
"Gx" = (
/obj/structure/extinguisher_cabinet{
@@ -1151,7 +1154,8 @@
dir = 9
},
/obj/machinery/atmospherics/meter,
-/turf/simulated/floor/engine/plasma,
+/obj/structure/plasmafire_generator/shadow,
+/turf/simulated/floor/engine/airless,
/area/shuttle/escape)
"Xp" = (
/obj/structure/marker_beacon/dock_marker/collision,
@@ -1357,9 +1361,9 @@ Lv
OL
Bu
tb
-jR
+zj
CD
-jR
+zj
cX
wF
cH
diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm
index e6561fae7009..a6b710cfb132 100644
--- a/_maps/map_files/stations/boxstation.dmm
+++ b/_maps/map_files/stations/boxstation.dmm
@@ -5271,6 +5271,24 @@
icon_state = "darkredcorners"
},
/area/station/security/brig)
+"atD" = (
+/obj/structure/chair/comfy/brown,
+/obj/machinery/door/window/classic/normal{
+ name = "Glass Door"
+ },
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/obj/machinery/door_control{
+ id = "nct";
+ name = "Office Door";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ req_access = list(80);
+ pixel_y = -1
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreenfull"
+ },
+/area/station/procedure/trainer_office)
"atE" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -12915,14 +12933,12 @@
/turf/simulated/wall,
/area/station/hallway/secondary/garden)
"aTv" = (
-/obj/effect/turf_decal/delivery/blue/hollow,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/rack,
-/obj/effect/spawner/random/maintenance,
+/obj/machinery/economy/vending/traindrobe,
/turf/simulated/floor/plasteel{
- icon_state = "darkbluefull"
+ dir = 9;
+ icon_state = "darkgreen"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"aTw" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -12930,20 +12946,15 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"aTx" = (
-/obj/effect/turf_decal/delivery/blue/hollow,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/remains/xeno,
/turf/simulated/floor/plasteel{
- icon_state = "darkbluefull"
+ icon_state = "dark"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"aTy" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/old,
/turf/simulated/floor/plasteel{
- icon_state = "darkbluefull"
+ icon_state = "darkgreenfull"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"aTz" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -13373,11 +13384,8 @@
/turf/simulated/wall/r_wall,
/area/station/command/vault)
"aUF" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
- },
-/area/station/maintenance/fpmaint)
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"aUG" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -13391,10 +13399,20 @@
},
/area/station/public/dorms)
"aUH" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer,
+/obj/machinery/door/window/reinforced/normal{
+ name = "NCT"
+ },
/turf/simulated/floor/plasteel{
- icon_state = "darkbluefull"
+ dir = 4;
+ icon_state = "darkgreen"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"aUI" = (
/obj/structure/window/reinforced{
dir = 1
@@ -15235,17 +15253,24 @@
/area/station/public/storage/tools)
"bam" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
+/obj/effect/turf_decal/woodsiding{
+ dir = 8
},
-/area/station/maintenance/fpmaint)
+/obj/structure/chair/comfy/black{
+ dir = 1
+ },
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"ban" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
+/obj/effect/turf_decal/woodsiding{
+ dir = 4
},
-/area/station/maintenance/fpmaint)
+/obj/structure/chair/comfy/black{
+ dir = 1
+ },
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"bao" = (
/obj/machinery/status_display{
layer = 4;
@@ -16762,11 +16787,13 @@
},
/area/station/public/dorms)
"bfe" = (
-/obj/effect/decal/cleanable/dirt,
+/obj/machinery/photocopier,
+/obj/structure/window/reinforced,
/turf/simulated/floor/plasteel{
- icon_state = "darkbluefull"
+ dir = 8;
+ icon_state = "darkgreen"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"bfi" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -17302,20 +17329,15 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/port/east)
"bgK" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/old,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "darkbluecorners"
+/obj/structure/chair/comfy/brown,
+/obj/machinery/door/window/classic/normal{
+ name = "Glass Door"
},
-/area/station/maintenance/fpmaint)
-"bgL" = (
-/mob/living/simple_animal/cockroach,
+/obj/effect/landmark/start/nanotrasen_career_trainer,
/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "darkbluecorners"
+ icon_state = "darkgreenfull"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"bgM" = (
/obj/structure/table/glass,
/obj/item/hatchet,
@@ -17619,33 +17641,30 @@
/turf/simulated/floor/plasteel,
/area/station/public/storage/office)
"bhG" = (
-/obj/structure/rack,
-/obj/effect/spawner/random/maintenance,
+/obj/item/flag/nt,
+/obj/machinery/camera{
+ c_tag = "Career Trainer's Office"
+ },
/turf/simulated/floor/plasteel{
- icon_state = "darkbluefull"
+ dir = 9;
+ icon_state = "darkgreen"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"bhH" = (
/obj/machinery/status_display{
layer = 4;
pixel_x = -32
},
-/obj/machinery/light/small{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "darkblue"
- },
-/area/station/maintenance/fpmaint)
+/obj/structure/filingcabinet,
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"bhI" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "darkblue"
+/obj/structure/table/wood,
+/obj/effect/turf_decal/woodsiding{
+ dir = 9
},
-/area/station/maintenance/fpmaint)
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"bhK" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
@@ -17696,13 +17715,13 @@
/obj/machinery/ai_status_display{
pixel_x = 32
},
-/obj/effect/turf_decal/delivery/hollow,
-/obj/structure/ore_box,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "darkblue"
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
},
-/area/station/maintenance/fpmaint)
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"bhQ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
@@ -17996,6 +18015,12 @@
"biH" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "blue"
@@ -18909,14 +18934,8 @@
},
/area/station/service/hydroponics)
"blf" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/structure/ore_box,
-/obj/effect/turf_decal/delivery/hollow,
-/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "darkbluecorners"
- },
-/area/station/maintenance/fpmaint)
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"blg" = (
/obj/machinery/hologram/holopad,
/turf/simulated/floor/plasteel,
@@ -19231,13 +19250,13 @@
/area/station/service/kitchen)
"bmk" = (
/obj/machinery/firealarm/directional/east,
-/obj/effect/turf_decal/delivery/hollow,
-/obj/structure/ore_box,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "darkbluecorners"
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
},
-/area/station/maintenance/fpmaint)
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"bmm" = (
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/exit)
@@ -19426,14 +19445,6 @@
},
/turf/simulated/floor/wood,
/area/station/service/bar)
-"bmN" = (
-/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
-/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/central/nw)
"bmO" = (
/turf/simulated/floor/plasteel{
icon_state = "chapel"
@@ -20311,6 +20322,7 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/nw)
"bpn" = (
@@ -20684,6 +20696,7 @@
"bqq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel{
icon_state = "stairs-m"
},
@@ -21145,6 +21158,7 @@
"brJ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/nw)
"brK" = (
@@ -21295,7 +21309,7 @@
},
/area/station/hallway/secondary/entry)
"bsi" = (
-/obj/random/plushie,
+/obj/effect/spawner/random/plushies,
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"bsk" = (
@@ -21951,6 +21965,7 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 4
},
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/nw)
"bun" = (
@@ -22592,6 +22607,7 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 8
},
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/nw)
"bwC" = (
@@ -23840,6 +23856,7 @@
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/nw)
"bCu" = (
@@ -24164,14 +24181,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/supply/sorting)
-"bDO" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/central/west)
"bDP" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
@@ -24956,16 +24965,6 @@
/obj/structure/closet/crate/freezer,
/turf/simulated/floor/plasteel,
/area/station/supply/warehouse)
-"bGZ" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/central/west)
"bHc" = (
/obj/structure/disposaloutlet{
dir = 4
@@ -25691,12 +25690,28 @@
},
/area/station/medical/reception)
"bJC" = (
-/obj/structure/rack,
-/obj/item/poster/random_contraband,
+/obj/machinery/power/apc/directional/north,
+/obj/structure/cable{
+ d2 = 2;
+ icon_state = "0-2"
+ },
+/obj/machinery/button/windowtint{
+ id = "NCT";
+ pixel_x = 24;
+ dir = 8;
+ pixel_y = 5
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ name = "east bump";
+ pixel_x = 24;
+ pixel_y = -5
+ },
/turf/simulated/floor/plasteel{
- icon_state = "darkbluefull"
+ dir = 5;
+ icon_state = "darkgreen"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"bJE" = (
/obj/machinery/light{
dir = 8
@@ -26321,16 +26336,6 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/plasteel,
/area/station/supply/sorting)
-"bMm" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/central/west)
"bMn" = (
/obj/machinery/firealarm/directional/west,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
@@ -26790,14 +26795,6 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel,
/area/station/supply/sorting)
-"bNY" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/central/west)
"bOd" = (
/obj/machinery/door/poddoor{
id_tag = "trash";
@@ -27336,6 +27333,7 @@
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/sw)
"bQo" = (
@@ -27846,11 +27844,11 @@
/area/station/medical/reception)
"bSy" = (
/obj/structure/table,
-/obj/item/clothing/accessory/stethoscope,
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope,
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 3
},
/obj/item/flashlight/pen{
@@ -28507,6 +28505,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 6
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/plasteel,
/area/station/supply/lobby)
"bUW" = (
@@ -28517,6 +28518,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/plasteel,
/area/station/supply/lobby)
"bUX" = (
@@ -28526,6 +28530,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/plasteel,
/area/station/supply/lobby)
"bUY" = (
@@ -28535,6 +28542,9 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 4
},
+/obj/structure/disposalpipe/segment/corner{
+ dir = 8
+ },
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/sw)
"bUZ" = (
@@ -28544,6 +28554,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "browncorner"
@@ -38203,32 +38216,36 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
+/obj/effect/turf_decal/woodsiding{
+ dir = 10
},
-/area/station/maintenance/fpmaint)
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"cGV" = (
/obj/item/radio/intercom{
name = "west bump";
pixel_x = -28
},
-/obj/effect/turf_decal/delivery/hollow,
-/obj/structure/ore_box,
-/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "darkbluecorners"
+/obj/machinery/light{
+ dir = 8
},
-/area/station/maintenance/fpmaint)
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"cGX" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
+/obj/effect/turf_decal/woodsiding{
+ dir = 6
},
-/area/station/maintenance/fpmaint)
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"cGY" = (
/obj/structure/chair{
dir = 8
@@ -38249,11 +38266,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/mob/living/simple_animal/mouse/gray,
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
- },
-/area/station/maintenance/fpmaint)
+/obj/effect/turf_decal/woodsiding,
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"cHb" = (
/obj/machinery/status_display{
layer = 4;
@@ -39783,9 +39798,7 @@
/area/station/engineering/break_room)
"cMX" = (
/obj/machinery/alarm/directional/east,
-/obj/structure/table,
-/obj/item/storage/toolbox/mechanical,
-/obj/item/t_scanner,
+/obj/machinery/autolathe,
/turf/simulated/floor/plasteel,
/area/station/engineering/break_room)
"cNb" = (
@@ -39978,7 +39991,8 @@
/area/station/engineering/break_room)
"cNP" = (
/obj/structure/table,
-/obj/item/folder/yellow,
+/obj/item/storage/toolbox/mechanical,
+/obj/item/t_scanner,
/turf/simulated/floor/plasteel,
/area/station/engineering/break_room)
"cNS" = (
@@ -42854,11 +42868,9 @@
/area/station/engineering/smes)
"cYN" = (
/obj/machinery/alarm/directional/west,
-/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "darkbluecorners"
- },
-/area/station/maintenance/fpmaint)
+/obj/item/kirbyplants,
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"cYO" = (
/obj/machinery/hologram/holopad,
/turf/simulated/floor/plasteel{
@@ -42882,10 +42894,16 @@
"cYS" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
},
-/area/station/maintenance/fpmaint)
+/obj/structure/disposalpipe/segment/corner{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"cYT" = (
/obj/machinery/atmospherics/trinary/tvalve/digital/flipped,
/turf/simulated/floor/plasteel,
@@ -45645,10 +45663,6 @@
/obj/machinery/camera{
c_tag = "Central Hallway North-West"
},
-/obj/structure/extinguisher_cabinet{
- name = "north bump";
- pixel_y = 30
- },
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "bluecorner"
@@ -45663,6 +45677,10 @@
/obj/machinery/light{
dir = 1
},
+/obj/structure/extinguisher_cabinet{
+ name = "north bump";
+ pixel_y = 30
+ },
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "bluecorner"
@@ -50004,6 +50022,17 @@
icon_state = "bar"
},
/area/station/security/permabrig)
+"eum" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/central/west)
"euu" = (
/obj/machinery/atmospherics/pipe/manifold/visible{
dir = 8
@@ -50340,6 +50369,16 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/main)
+"eDU" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"eDZ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
@@ -54353,6 +54392,9 @@
},
/turf/simulated/floor/engine,
/area/station/engineering/engine/supermatter)
+"gHr" = (
+/turf/simulated/wall,
+/area/station/procedure/trainer_office)
"gHJ" = (
/obj/machinery/door/window/brigdoor{
dir = 1;
@@ -54627,11 +54669,12 @@
/turf/space,
/area/space/nearstation)
"gNX" = (
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "darkblue"
+/obj/structure/table/wood,
+/obj/effect/turf_decal/woodsiding{
+ dir = 5
},
-/area/station/maintenance/fpmaint)
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"gOd" = (
/obj/structure/chair{
dir = 1
@@ -55314,6 +55357,22 @@
},
/turf/simulated/floor/grass/jungle/no_creep,
/area/station/command/bridge)
+"hdm" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/central/nw)
"hdr" = (
/turf/simulated/floor/plasteel{
dir = 8;
@@ -56700,7 +56759,7 @@
"hRq" = (
/obj/machinery/firealarm/directional/north,
/obj/structure/table,
-/obj/random/plushie,
+/obj/effect/spawner/random/plushies,
/obj/machinery/light/small{
dir = 1
},
@@ -57185,6 +57244,19 @@
/obj/machinery/power/apc/directional/north,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/starboard/east)
+"igI" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/central/west)
"igR" = (
/obj/machinery/door/airlock/public/glass,
/obj/effect/mapping_helpers/airlock/autoname,
@@ -57505,14 +57577,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/maintenance/turbine)
-"ioq" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/central/west)
"iot" = (
/obj/effect/decal/cleanable/ash,
/obj/effect/decal/cleanable/dirt,
@@ -59835,6 +59899,16 @@
/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/floor/engine/xenobio,
/area/station/science/xenobiology)
+"jAU" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"jCr" = (
/obj/structure/table,
/obj/item/storage/firstaid/adv{
@@ -59981,6 +60055,16 @@
/obj/structure/shelf/service,
/turf/simulated/floor/plasteel,
/area/station/service/janitor)
+"jFW" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/woodsiding{
+ dir = 1
+ },
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"jGd" = (
/obj/effect/spawner/window/reinforced/grilled,
/obj/structure/cable{
@@ -60897,6 +60981,12 @@
/obj/structure/closet/emcloset,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
+"kgz" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/central/sw)
"khl" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable{
@@ -61495,12 +61585,35 @@
"kwE" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/door/airlock/maintenance,
-/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
+/obj/machinery/door/airlock/command/glass{
+ name = "Trainer's Office";
+ id_tag = "nct"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "NCT"
+ },
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"kwG" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/spawner/nukedisc_respawn,
@@ -62612,12 +62725,20 @@
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint2)
"kYq" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/old,
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_y = 4;
+ pixel_x = -5
+ },
+/obj/item/pen{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/structure/window/reinforced,
/turf/simulated/floor/plasteel{
- icon_state = "dark"
+ icon_state = "darkgreenfull"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"kYB" = (
/obj/machinery/atmospherics/pipe/simple/visible/cyan,
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
@@ -63982,9 +64103,9 @@
icon_state = "4-8"
},
/obj/machinery/camera{
- c_tag = "Prison Solitary Confinement 2";
dir = 6;
- network = list("Prison","SS13")
+ network = list("Engineering","SS13");
+ c_tag = "Power Transmission Laser"
},
/turf/simulated/floor/plasteel,
/area/station/engineering/transmission_laser)
@@ -64324,7 +64445,7 @@
/obj/structure/safe/floor{
known_by = list("captain")
},
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
/obj/item/lighter/zippo/nt_rep,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
@@ -66361,6 +66482,12 @@
icon_state = "whiteblue"
},
/area/station/medical/medbay2)
+"mUR" = (
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"mVd" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -67210,6 +67337,12 @@
/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
/turf/simulated/floor/plasteel,
/area/station/maintenance/asmaint)
+"nxW" = (
+/obj/structure/disposalpipe/junction{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/station/supply/lobby)
"nxX" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -71423,7 +71556,7 @@
"pAM" = (
/obj/structure/table,
/obj/item/soap/deluxe,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
@@ -73282,14 +73415,16 @@
/turf/simulated/floor/carpet/green,
/area/station/command/bridge)
"qvo" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/ore_box,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "darkbluecorners"
+/obj/machinery/light{
+ dir = 4
},
-/area/station/maintenance/fpmaint)
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"qvO" = (
/obj/structure/table,
/obj/item/paper_bin{
@@ -74508,12 +74643,12 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"qZX" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "darkbluecorners"
+/obj/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
},
-/area/station/maintenance/fpmaint)
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"rac" = (
/obj/structure/bed,
/obj/item/bedsheet/medical,
@@ -75038,10 +75173,11 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"rmK" = (
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
+/obj/structure/chair/sofa/left{
+ dir = 1
},
-/area/station/maintenance/fpmaint)
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"rmT" = (
/obj/machinery/atmospherics/pipe/manifold/visible/cyan{
dir = 1
@@ -75680,6 +75816,19 @@
/obj/effect/mapping_helpers/turfs/damage,
/turf/simulated/floor/wood,
/area/station/maintenance/apmaint2)
+"rFd" = (
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/central/west)
"rFe" = (
/obj/structure/chair/sofa/bench{
dir = 4
@@ -76309,6 +76458,12 @@
},
/turf/simulated/floor/engine,
/area/station/engineering/control)
+"rWJ" = (
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"rWS" = (
/obj/machinery/camera{
c_tag = "Engineering Supermatter Port";
@@ -77785,7 +77940,7 @@
/turf/simulated/floor/plasteel,
/area/station/public/dorms)
"sPu" = (
-/obj/item/clothing/suit/mantle/old,
+/obj/item/clothing/neck/cloak/old,
/turf/simulated/floor/carpet,
/area/station/maintenance/asmaint)
"sPw" = (
@@ -79446,7 +79601,7 @@
"tMs" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/spawner/random/blood/often,
-/obj/random/mech,
+/obj/effect/spawner/random/toy/mech_figure,
/turf/simulated/floor/plating,
/area/station/maintenance/disposal)
"tMC" = (
@@ -79828,7 +79983,7 @@
/area/station/hallway/primary/aft/south)
"tUd" = (
/obj/structure/closet/cabinet,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/crowbar,
/obj/effect/landmark/spawner/nukedisc_respawn,
/obj/effect/spawner/random/cobweb/left/frequent,
@@ -84406,6 +84561,17 @@
},
/turf/simulated/floor/plating,
/area/station/science/robotics)
+"wxi" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/central/west)
"wxp" = (
/obj/machinery/alarm/directional/north,
/obj/machinery/light{
@@ -84991,11 +85157,32 @@
icon_state = "dark"
},
/area/station/aisat/service)
+"wNl" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/central/west)
"wNM" = (
/obj/structure/sign/vacuum/external,
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
/area/station/supply/storage)
+"wNQ" = (
+/obj/structure/closet,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"wNT" = (
/obj/structure/sign/bobross{
pixel_y = 32
@@ -86614,13 +86801,14 @@
/turf/simulated/floor/plasteel,
/area/station/supply/miningdock)
"xHw" = (
-/obj/structure/barricade/wooden/crude,
-/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
-/obj/machinery/door/airlock/maintenance,
+/obj/machinery/door/airlock/maintenance{
+ name = "Trainer's Office Maintenance"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"xHy" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
@@ -111601,7 +111789,7 @@ bNX
kOU
bzF
fTS
-bzF
+nxW
rJJ
bXk
bYD
@@ -111827,14 +112015,14 @@ aPi
nvO
aMA
bac
-aSu
-aSu
-aSu
-aSu
-aSu
-aSu
-aSu
-aSu
+gHr
+gHr
+gHr
+gHr
+gHr
+gHr
+gHr
+gHr
gIc
dmx
bkg
@@ -112083,15 +112271,15 @@ aMY
aPi
aRr
aMA
-aSu
-aSu
+gHr
+gHr
bhG
bfe
bhH
blf
cGV
cYN
-aSu
+gHr
djO
bmC
bks
@@ -112340,7 +112528,7 @@ uJq
aPw
aVE
aQj
-aSu
+gHr
aTv
aTx
bgK
@@ -112348,8 +112536,8 @@ bhI
bam
cGT
rmK
-aSu
-bgP
+gHr
+qZp
yhp
bkq
blQ
@@ -112597,16 +112785,16 @@ aMY
aPi
aRr
aQl
-aSu
-aTy
+gHr
+wNQ
aTy
kYq
-aUF
+jFW
aUF
cGZ
-rmK
-aSu
-qZp
+rWJ
+eDU
+bgP
yhp
gsf
dnN
@@ -112855,16 +113043,16 @@ lQx
ffD
aPi
xHw
-aUH
-bfe
-bgL
+mUR
+aTx
+atD
gNX
ban
cGX
cYS
kwE
biH
-bmN
+hdm
bpm
bqq
brJ
@@ -112874,18 +113062,18 @@ brJ
bwB
brJ
bCt
-bDO
-ioq
-bGZ
-ioq
-ioq
-ioq
-ioq
-bMm
-bNY
+wNl
+wxi
+rFd
+wxi
+wxi
+wxi
+wxi
+igI
+eum
bQn
-bST
-bST
+kgz
+kgz
bUY
bST
rSd
@@ -113111,15 +113299,15 @@ aRP
aEl
ffD
biE
-aSu
-aSu
+gHr
+gHr
bJC
aUH
bhP
bmk
qvo
qZX
-aSu
+jAU
djW
yhp
bgS
@@ -113369,14 +113557,14 @@ aEl
aRr
aQl
aPi
-aSu
-aSu
-aSu
-aSu
-aSu
-aSu
-aSu
-aSu
+gHr
+gHr
+gHr
+gHr
+gHr
+gHr
+gHr
+gHr
djV
bmW
bkv
diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm
index 3426dc359c2f..d1fc4cc5be2c 100644
--- a/_maps/map_files/stations/cerestation.dmm
+++ b/_maps/map_files/stations/cerestation.dmm
@@ -1187,9 +1187,6 @@
/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/general{
dir = 1
},
-/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/genetics{
- dir = 1
- },
/obj/machinery/door/window/classic/normal{
name = "Chemistry Desk"
},
@@ -1236,6 +1233,13 @@
/obj/effect/spawner/random/dirt/frequent,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
+"aji" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/machinery/alarm/directional/east,
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"ajq" = (
/obj/machinery/hologram/holopad,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -1553,6 +1557,18 @@
icon_state = "cafeteria"
},
/area/station/command/office/rd)
+"alH" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/machinery/door_control{
+ id = "scieva";
+ name = "Science EVA shutter control";
+ pixel_y = 24;
+ req_one_access = list(19,41)
+ },
+/turf/simulated/floor/plating,
+/area/station/hallway/primary/aft/west)
"alM" = (
/obj/effect/turf_decal/stripes/corner{
dir = 4
@@ -1826,14 +1842,6 @@
/obj/machinery/ai_status_display,
/turf/simulated/wall/r_wall,
/area/station/aisat/service)
-"apl" = (
-/obj/effect/spawner/window/reinforced/grilled,
-/obj/structure/cable/orange{
- icon_state = "0-4"
- },
-/obj/machinery/door/firedoor,
-/turf/simulated/floor/plating,
-/area/station/security/brig)
"apx" = (
/obj/item/restraints/handcuffs/pinkcuffs,
/turf/simulated/floor/plating/asteroid/ancient,
@@ -2287,12 +2295,6 @@
/obj/structure/girder,
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
-"atH" = (
-/obj/structure/closet/crate/freezer,
-/obj/machinery/power/apc/directional/west,
-/obj/structure/cable/orange,
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"atI" = (
/obj/structure/disposalpipe/segment{
color = "#954535"
@@ -2740,10 +2742,11 @@
/obj/structure/safe/floor{
known_by = list("captain")
},
+/obj/item/toy/russian_revolver,
+/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
/obj/item/lighter/zippo/nt_rep,
-/obj/item/toy/figure/crew/captain,
-/obj/item/gun/projectile/revolver/russian,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
+/obj/item/toy/figure/crew/captain,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/carpet/royalblack,
/area/station/command/office/captain)
@@ -3518,6 +3521,10 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/wood,
/area/station/service/chapel)
+"aDM" = (
+/obj/machinery/ai_status_display,
+/turf/simulated/wall/r_wall,
+/area/station/science/toxins/launch)
"aDZ" = (
/obj/machinery/conveyor/counterclockwise{
dir = 4;
@@ -3621,6 +3628,10 @@
"aEU" = (
/turf/simulated/floor/carpet/black,
/area/station/command/office/captain)
+"aFb" = (
+/obj/machinery/ai_status_display,
+/turf/simulated/wall,
+/area/station/science/genetics)
"aFd" = (
/obj/structure/marker_beacon/dock_marker/collision,
/obj/structure/lattice/catwalk,
@@ -3907,6 +3918,17 @@
icon_state = "redcorner"
},
/area/station/security/prison/cell_block/a)
+"aJa" = (
+/obj/machinery/camera/autoname{
+ dir = 9
+ },
+/obj/machinery/door_control{
+ id = "pet_shop";
+ name = "Storefront Shutters";
+ pixel_x = 24
+ },
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"aJc" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 8
@@ -4162,6 +4184,10 @@
/obj/effect/mapping_helpers/turfs/rust,
/turf/simulated/wall,
/area/station/maintenance/starboard)
+"aLO" = (
+/obj/item/clothing/head/cone,
+/turf/simulated/floor/plating,
+/area/station/hallway/primary/aft/west)
"aLQ" = (
/obj/machinery/door/airlock/command{
name = "Captain's Quarters"
@@ -5290,6 +5316,20 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/central/east)
+"aWX" = (
+/obj/effect/spawner/window/reinforced/grilled,
+/obj/structure/cable/orange{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor{
+ density = 0;
+ icon_state = "open";
+ id_tag = "Secure Gate";
+ name = "Security Blast Door";
+ opacity = 0
+ },
+/turf/simulated/floor/plating,
+/area/station/security/prison/cell_block/a)
"aXa" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -6001,14 +6041,6 @@
/obj/machinery/hologram/holopad,
/turf/simulated/floor/carpet/black,
/area/station/command/office/captain)
-"bco" = (
-/obj/item/radio/intercom{
- name = "west bump";
- pixel_x = -28
- },
-/obj/item/flag/ian,
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"bcp" = (
/obj/machinery/door/airlock/maintenance{
name = "Port Asteroid Maintenance"
@@ -6086,6 +6118,22 @@
/obj/structure/dispenser/oxygen,
/turf/simulated/floor/plating,
/area/station/hallway/primary/central/north)
+"bcJ" = (
+/obj/structure/extinguisher_cabinet{
+ name = "west bump";
+ pixel_x = -30
+ },
+/obj/structure/table/glass,
+/obj/item/storage/box/disks{
+ pixel_x = 6;
+ pixel_y = 16
+ },
+/obj/item/book/manual/wiki/sop_science,
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkpurple"
+ },
+/area/station/science/genetics)
"bcK" = (
/obj/structure/rack,
/obj/structure/window/reinforced{
@@ -6414,14 +6462,6 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/starboard/south)
-"bfg" = (
-/obj/item/clothing/head/cone,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 6
- },
-/area/station/maintenance/apmaint)
"bfh" = (
/obj/effect/spawner/window/reinforced,
/turf/simulated/floor/plating,
@@ -7242,6 +7282,15 @@
icon_state = "asteroidplating"
},
/area/station/maintenance/fore)
+"bjI" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/clothing/head/cone,
+/turf/simulated/floor/plating{
+ icon_state = "asteroidplating"
+ },
+/area/station/maintenance/apmaint)
"bjJ" = (
/obj/machinery/disposal,
/obj/structure/disposalpipe/trunk,
@@ -8271,10 +8320,8 @@
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"bqg" = (
-/obj/structure/table,
-/obj/item/instrument/harmonica,
-/turf/simulated/floor/plasteel,
-/area/station/security/permabrig)
+/turf/simulated/wall,
+/area/station/procedure/trainer_office)
"bqn" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
@@ -9468,6 +9515,29 @@
},
/turf/simulated/floor/plating,
/area/station/security/processing)
+"bwc" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "bluecorner"
+ },
+/area/station/hallway/primary/fore/north)
"bwe" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -10026,7 +10096,7 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/storage/box/gloves,
/turf/simulated/floor/plasteel{
icon_state = "white"
@@ -10220,7 +10290,6 @@
name = "Medbay Entrance"
},
/obj/effect/mapping_helpers/airlock/access/any/medical/general,
-/obj/effect/mapping_helpers/airlock/access/any/medical/genetics,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
@@ -11978,15 +12047,18 @@
/turf/simulated/floor/plating,
/area/station/maintenance/storage)
"bHy" = (
-/obj/machinery/alarm/directional/north,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/small{
+ dir = 1
+ },
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"bHC" = (
/turf/simulated/floor/plasteel{
dir = 8;
@@ -12501,11 +12573,12 @@
/turf/simulated/floor/plasteel,
/area/station/security/processing)
"bKf" = (
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"bKg" = (
/obj/structure/cable/orange{
icon_state = "4-8"
@@ -12661,63 +12734,34 @@
},
/area/station/medical/morgue)
"bLe" = (
-/obj/structure/table/glass,
-/obj/item/storage/box/disks{
- pixel_x = 2;
- pixel_y = 2
- },
-/obj/item/dest_tagger,
-/obj/item/stack/package_wrap,
-/obj/item/hand_labeler,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"bLh" = (
-/obj/structure/chair/office/light{
- dir = 4
- },
-/obj/effect/landmark/start/geneticist,
-/obj/structure/cable/orange{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/directional/south,
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"bLi" = (
-/obj/machinery/dna_scannernew,
/obj/effect/turf_decal/delivery,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machine_frame,
/turf/simulated/floor/plasteel{
dir = 6;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"bLj" = (
/obj/structure/window/reinforced{
dir = 8
},
-/obj/machinery/light,
-/obj/item/radio/intercom{
- pixel_y = -28;
- name = "custom placement"
- },
-/turf/simulated/floor/grass,
-/area/station/science/genetics)
-"bLk" = (
-/obj/machinery/firealarm/directional/south,
-/turf/simulated/floor/grass,
-/area/station/science/genetics)
-"bLl" = (
-/obj/structure/flora/tree/palm,
-/obj/machinery/camera{
- c_tag = "Genetics Monkey Dome";
- dir = 9
- },
-/turf/simulated/floor/grass,
-/area/station/science/genetics)
+/turf/simulated/floor/plating/asteroid/ancient,
+/area/station/maintenance/starboard)
"bLz" = (
/obj/effect/spawner/random/dirt/frequent,
/obj/structure/disposalpipe/segment/corner{
@@ -12835,6 +12879,16 @@
icon_state = "darkyellow"
},
/area/station/engineering/control)
+"bMm" = (
+/obj/structure/filingcabinet,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bMv" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -12938,7 +12992,7 @@
layer = 4
},
/turf/simulated/wall,
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"bMP" = (
/obj/machinery/light/small{
dir = 4
@@ -14100,7 +14154,7 @@
"bSv" = (
/obj/structure/table,
/obj/item/storage/firstaid/o2,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whitepurple"
@@ -15102,6 +15156,9 @@
icon_state = "darkyellow"
},
/area/station/engineering/atmos/distribution)
+"bWk" = (
+/turf/simulated/wall/r_wall,
+/area/station/hallway/primary/aft/west)
"bWn" = (
/obj/effect/spawner/window/reinforced,
/turf/simulated/floor/plating,
@@ -16083,6 +16140,20 @@
/obj/effect/spawner/random/dirt/frequent,
/turf/simulated/floor/plasteel,
/area/station/service/janitor)
+"cdZ" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/obj/machinery/light_switch{
+ pixel_y = 24;
+ name = "north bump"
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"ceb" = (
/obj/machinery/cryopod/robot,
/turf/simulated/floor/plasteel{
@@ -16779,14 +16850,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/public/locker)
-"cjN" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/toxins,
-/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 8
- },
-/area/station/science/storage)
"cjR" = (
/turf/simulated/wall,
/area/station/public/quantum/security)
@@ -17179,22 +17242,16 @@
/turf/simulated/wall/r_wall,
/area/station/science/toxins/mixing)
"cmJ" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkpurple"
},
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/area/station/science/genetics)
"cmL" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/orange{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
},
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/area/station/science/genetics)
"cmW" = (
/obj/machinery/status_display{
layer = 4
@@ -17379,10 +17436,18 @@
/turf/simulated/floor/plasteel/white,
/area/station/science/hallway)
"coy" = (
-/obj/effect/spawner/window/reinforced,
-/obj/structure/sign/explosives,
+/obj/structure/table/reinforced,
+/obj/effect/mapping_helpers/airlock/windoor/autoname/desk{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/genetics{
+ dir = 1
+ },
+/obj/machinery/door/window/classic/reversed{
+ dir = 1
+ },
/turf/simulated/floor/plating,
-/area/station/science/storage)
+/area/station/science/genetics)
"coE" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -17982,6 +18047,12 @@
},
/turf/simulated/floor/transparent/glass/reinforced,
/area/station/maintenance/fore)
+"ctr" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel,
+/area/station/security/prison/cell_block/a)
"ctw" = (
/obj/structure/flora/tree/jungle,
/turf/simulated/floor/grass/jungle,
@@ -18218,9 +18289,6 @@
icon_state = "darkyellow"
},
/area/station/engineering/break_room)
-"cvg" = (
-/turf/simulated/mineral/ancient,
-/area/station/hallway/primary/aft/west)
"cvq" = (
/obj/machinery/door_control{
id = "arrivalseva";
@@ -18441,15 +18509,11 @@
/turf/simulated/floor/grass,
/area/station/service/hydroponics)
"cxM" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 10
- },
/obj/structure/cable/orange{
icon_state = "2-8"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -18788,6 +18852,14 @@
icon_state = "darkbrown"
},
/area/station/supply/office)
+"cAr" = (
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/security/prison/cell_block/a)
"cAz" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/l3closet/scientist,
@@ -19354,9 +19426,6 @@
icon_state = "cafeteria"
},
/area/station/medical/break_room)
-"cFA" = (
-/turf/simulated/mineral/ancient/outer,
-/area/station/science/genetics)
"cFE" = (
/obj/structure/plasticflaps{
opacity = 1
@@ -19384,14 +19453,22 @@
/turf/simulated/floor/mineral/titanium/blue,
/area/shuttle/pod_2)
"cFP" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/oxygen,
+/obj/item/radio/intercom{
+ name = "south bump";
+ pixel_y = -28
+ },
+/obj/structure/chair/comfy/purp{
+ dir = 1
+ },
/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 10
+ dir = 10;
+ icon_state = "darkpurple"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"cFQ" = (
+/obj/machinery/atmospherics/unary/portables_connector{
+ dir = 8
+ },
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "whitepurple"
@@ -19559,13 +19636,21 @@
},
/area/station/command/meeting_room)
"cGW" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/toxins,
+/obj/machinery/door_control{
+ id = "genetics";
+ name = "Genetics Privacy Shutters";
+ pixel_y = -23;
+ req_access = list(9);
+ pixel_x = 24
+ },
+/obj/structure/table/glass,
+/obj/item/paper_bin,
+/obj/item/pen,
/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 9
+ dir = 4;
+ icon_state = "darkpurple"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"cGY" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -20603,6 +20688,9 @@
icon_state = "bar"
},
/area/station/service/theatre)
+"cOh" = (
+/turf/simulated/floor/plasteel,
+/area/station/security/prison/cell_block/a)
"cOo" = (
/obj/machinery/door/airlock/external/glass{
name = "Escape Pod Airlock"
@@ -20650,7 +20738,7 @@
/area/shuttle/pod_1)
"cOC" = (
/obj/structure/table/glass,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/folder,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -21381,19 +21469,6 @@
},
/turf/simulated/floor/transparent/glass/reinforced,
/area/station/maintenance/fore)
-"cRV" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Aft Asteroid Maintenance"
- },
-/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/turf/simulated/floor/plating,
-/area/station/hallway/primary/aft/west)
"cRZ" = (
/obj/structure/closet,
/obj/effect/spawner/random/maintenance,
@@ -22937,6 +23012,10 @@
icon_state = "darkfull"
},
/area/station/supply/sorting)
+"dcD" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"dcG" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
@@ -23392,6 +23471,25 @@
},
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos)
+"der" = (
+/obj/structure/cable/orange{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
+/obj/structure/cable/orange{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/disposalpipe/sortjunction{
+ dir = 8;
+ sort_type_txt = "23"
+ },
+/turf/simulated/floor/plasteel/white,
+/area/station/science/hallway)
"det" = (
/obj/machinery/atmospherics/pipe/manifold/visible/yellow{
dir = 8
@@ -23679,6 +23777,15 @@
"dgP" = (
/turf/simulated/floor/wood,
/area/station/maintenance/gambling_den)
+"dgU" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "redcorner"
+ },
+/area/station/security/prison/cell_block/a)
"dgW" = (
/obj/machinery/economy/vending/autodrobe{
desc = "A vending machine for costumes. The machine seems blessed by some higher power, allowing it to function without power. HONK!";
@@ -23919,6 +24026,12 @@
icon_state = "dark"
},
/area/station/hallway/primary/fore/north)
+"diW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/simulated/floor/plating,
+/area/station/hallway/primary/aft/west)
"diY" = (
/turf/simulated/floor/plating,
/area/station/hallway/secondary/entry/north)
@@ -24237,6 +24350,13 @@
/obj/machinery/economy/vending/snack,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/fore/north)
+"dmm" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/science/genetics)
"dmo" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/poddoor/preopen{
@@ -24298,6 +24418,12 @@
/obj/machinery/atmospherics/pipe/simple/visible{
dir = 9
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -24668,6 +24794,12 @@
},
/turf/simulated/floor/plating,
/area/station/engineering/tech_storage)
+"dqK" = (
+/obj/structure/cable/orange{
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"dqL" = (
/obj/structure/cable/orange{
icon_state = "1-2"
@@ -25010,27 +25142,6 @@
icon_state = "neutralfull"
},
/area/station/hallway/primary/fore/north)
-"duJ" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 1
- },
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/cable/orange{
- icon_state = "4-8"
- },
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "blue"
- },
-/area/station/hallway/primary/fore/north)
"duL" = (
/obj/effect/turf_decal/stripes/corner,
/obj/structure/closet/wardrobe/pjs,
@@ -25238,6 +25349,12 @@
icon_state = "neutralcorner"
},
/area/station/hallway/secondary/entry/north)
+"dwy" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/turf/simulated/floor/plating,
+/area/station/maintenance/disposal/south)
"dwz" = (
/turf/simulated/wall,
/area/station/hallway/primary/central/east)
@@ -25601,9 +25718,17 @@
},
/area/station/hallway/primary/fore/north)
"dzr" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/obj/structure/cable/orange{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/science/genetics)
"dzs" = (
/obj/structure/disposalpipe/trunk,
/obj/structure/disposaloutlet{
@@ -26057,9 +26182,13 @@
},
/area/station/medical/medbay)
"dBB" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 1
+/obj/structure/cable/orange{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -26118,6 +26247,17 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/aft/west)
+"dBX" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "white"
+ },
+/area/station/science/toxins/mixing)
"dBY" = (
/obj/structure/table,
/obj/item/reagent_containers/condiment/peppermill{
@@ -26329,6 +26469,13 @@
icon_state = "asteroidplating"
},
/area/station/maintenance/port2)
+"dEg" = (
+/obj/structure/sink{
+ pixel_y = 24
+ },
+/mob/living/carbon/human/monkey,
+/turf/simulated/floor/grass,
+/area/station/science/genetics)
"dEi" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 4
@@ -26607,7 +26754,14 @@
/obj/structure/cable/orange{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
+/obj/structure/cable/orange{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 1
+ },
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -26905,6 +27059,12 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/storage)
+"dLS" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/command/office/captain)
"dLW" = (
/obj/structure/railing/corner{
dir = 1
@@ -27308,6 +27468,29 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/carpet/green,
/area/station/service/library)
+"dQW" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/station/hallway/primary/fore/north)
"dQX" = (
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/atmospherics/unary/portables_connector{
@@ -27794,6 +27977,11 @@
icon_state = "cafeteria"
},
/area/station/service/kitchen)
+"dWr" = (
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/security/prison/cell_block/a)
"dWD" = (
/turf/simulated/wall,
/area/station/hallway/primary/central/west)
@@ -27903,6 +28091,13 @@
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/wood,
/area/station/maintenance/gambling_den)
+"dXR" = (
+/obj/machinery/atmospherics/portable/canister/toxins,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel{
+ icon_state = "purple"
+ },
+/area/station/science/storage)
"dXV" = (
/turf/simulated/wall/r_wall,
/area/station/hallway/primary/aft/east)
@@ -28304,6 +28499,15 @@
icon_state = "asteroidplating"
},
/area/station/maintenance/apmaint)
+"eeY" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/poddoor/shutters{
+ name = "Storefront Shutters";
+ id_tag = "pet_shop";
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/station/public/pet_store)
"efa" = (
/obj/effect/spawner/window/reinforced/plasma/grilled,
/turf/simulated/floor/plating,
@@ -28392,6 +28596,13 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/westalt)
+"egx" = (
+/obj/machinery/camera{
+ c_tag = "Genetics Monkey Dome";
+ dir = 9
+ },
+/turf/simulated/floor/grass,
+/area/station/science/genetics)
"egy" = (
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
@@ -29509,8 +29720,8 @@
/area/station/medical/medbay)
"evS" = (
/obj/structure/table/wood,
-/obj/item/clothing/accessory/necklace/skullcodpiece,
-/obj/item/clothing/accessory/necklace/talisman,
+/obj/item/clothing/accessory/skullcodpiece,
+/obj/item/clothing/accessory/talisman,
/obj/item/clothing/gloves/bracer,
/obj/item/clothing/head/helmet/skull,
/turf/simulated/floor/plating/asteroid/ancient,
@@ -29640,11 +29851,8 @@
/turf/simulated/wall,
/area/station/security/processing)
"exL" = (
-/obj/structure/disposalpipe/sortjunction/reversed{
- dir = 1;
- sort_type_txt = "9"
- },
/obj/item/wrench,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/east)
"exY" = (
@@ -29742,9 +29950,9 @@
/area/station/maintenance/fore2)
"ezn" = (
/obj/machinery/camera{
- c_tag = "AI Satellite Service Bay";
dir = 8;
- network = list("SS13","MiniSat")
+ network = list("Engineering","SS13");
+ c_tag = "Power Transmission Laser"
},
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/plasteel{
@@ -30767,6 +30975,13 @@
icon_state = "darkyellowfull"
},
/area/station/command/bridge)
+"eMe" = (
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "purple"
+ },
+/area/station/science/storage)
"eMA" = (
/obj/machinery/light{
dir = 8
@@ -31036,6 +31251,27 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/prison/cell_block/a)
+"ePN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "bluecorner"
+ },
+/area/station/hallway/primary/fore/north)
"ePQ" = (
/obj/machinery/atmospherics/unary/portables_connector{
dir = 4
@@ -31051,6 +31287,9 @@
icon_state = "darkblue"
},
/area/station/maintenance/disposal/northeast)
+"eQg" = (
+/turf/simulated/wall/r_wall,
+/area/station/procedure/trainer_office)
"eQs" = (
/turf/simulated/mineral/ancient,
/area/station/turret_protected/aisat/interior)
@@ -31619,13 +31858,14 @@
/turf/simulated/floor/engine,
/area/station/engineering/control)
"eZR" = (
-/obj/machinery/dna_scannernew,
/obj/effect/turf_decal/delivery,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/machine_frame,
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"eZW" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -31729,13 +31969,6 @@
icon_state = "grimy"
},
/area/station/maintenance/fore2)
-"faV" = (
-/obj/machinery/atmospherics/pipe/simple/visible{
- dir = 4
- },
-/obj/item/clothing/head/cone,
-/turf/simulated/floor/plating,
-/area/station/hallway/primary/aft/west)
"fbs" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
@@ -31877,6 +32110,21 @@
slowdown = -0.3
},
/area/station/hallway/spacebridge/servsci)
+"feB" = (
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/unary/vent_scrubber/on,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/alarm/directional/east,
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"feG" = (
/obj/structure/cable/orange{
icon_state = "4-8"
@@ -31953,12 +32201,12 @@
/turf/simulated/floor/transparent/glass/reinforced,
/area/station/maintenance/port)
"ffy" = (
-/obj/machinery/alarm/directional/east,
+/obj/machinery/economy/vending/genedrobe,
/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 4
+ dir = 5;
+ icon_state = "darkpurple"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"ffJ" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -32181,27 +32429,6 @@
icon_state = "dark"
},
/area/station/security/warden)
-"fiE" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/structure/cable/orange{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "bluecorner"
- },
-/area/station/hallway/primary/fore/north)
"fiJ" = (
/obj/structure/table/wood,
/obj/machinery/computer/med_data/laptop{
@@ -32276,25 +32503,21 @@
},
/area/station/supply/lobby)
"fkc" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/computer/area_atmos{
- dir = 8
- },
-/obj/machinery/light{
- dir = 4
+/obj/machinery/newscaster/directional/east,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkpurple"
},
-/obj/effect/turf_decal/delivery/hollow,
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/area/station/science/genetics)
"fkk" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/machinery/light/small{
dir = 8
},
/obj/structure/closet/firecloset/full,
/obj/item/coin/silver,
+/obj/structure/disposalpipe/junction/reversed{
+ dir = 4
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/south)
"fkn" = (
@@ -32419,6 +32642,21 @@
icon_state = "solarpanel"
},
/area/station/engineering/solar/aft_starboard)
+"fmq" = (
+/obj/structure/table/glass,
+/obj/item/roller{
+ pixel_x = 4;
+ pixel_y = 6
+ },
+/obj/item/roller{
+ pixel_x = -2;
+ pixel_y = 10
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkpurple"
+ },
+/area/station/science/genetics)
"fmz" = (
/obj/structure/closet/firecloset/full,
/turf/simulated/floor/plating,
@@ -32675,6 +32913,19 @@
icon_state = "whitepurple"
},
/area/station/science/toxins/mixing)
+"fqD" = (
+/obj/structure/cable/orange{
+ d2 = 2;
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc/directional/north,
+/obj/machinery/disposal,
+/obj/structure/disposalpipe/trunk,
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"fqM" = (
/obj/machinery/light/small{
dir = 1
@@ -32796,10 +33047,6 @@
icon_state = "neutralcorner"
},
/area/station/hallway/spacebridge/engmed)
-"fse" = (
-/obj/effect/spawner/window/reinforced/grilled,
-/turf/simulated/floor/plating,
-/area/station/public/pet_store)
"fsf" = (
/obj/structure/reagent_dispensers/watertank,
/turf/simulated/floor/plating,
@@ -33072,6 +33319,17 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
+"fvu" = (
+/obj/structure/table/glass,
+/obj/item/toy/figure/crew/geneticist{
+ pixel_y = 10;
+ pixel_x = -10
+ },
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkpurple"
+ },
+/area/station/science/genetics)
"fvz" = (
/obj/structure/disposalpipe/segment/corner{
dir = 4
@@ -33128,12 +33386,12 @@
/turf/simulated/floor/wood,
/area/station/maintenance/asmaint)
"fwe" = (
-/obj/structure/disposalpipe/junction{
- dir = 1
- },
/obj/structure/cable/orange{
icon_state = "4-8"
},
+/obj/structure/disposalpipe/segment/corner{
+ dir = 1
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/east)
"fwi" = (
@@ -33367,6 +33625,15 @@
/obj/item/screwdriver,
/turf/simulated/floor/plating,
/area/station/maintenance/fore2)
+"fAf" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"fAx" = (
/obj/effect/spawner/random/dirt/frequent,
/obj/effect/decal/cleanable/generic,
@@ -33643,12 +33910,6 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/west)
-"fFu" = (
-/obj/structure/cable/orange{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
"fFx" = (
/obj/structure/cable/orange{
icon_state = "4-8"
@@ -34023,20 +34284,12 @@
},
/area/station/command/meeting_room)
"fKo" = (
-/obj/structure/extinguisher_cabinet{
- pixel_y = -28;
- name = "custom placement"
- },
-/obj/machinery/camera{
- c_tag = "Genetics";
- dir = 10;
- network = list("SS13","CMO")
- },
-/obj/structure/closet/secure_closet/medical1,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
/turf/simulated/floor/plasteel{
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"fKz" = (
/obj/structure/disposalpipe/segment/corner{
dir = 8;
@@ -34364,6 +34617,30 @@
icon_state = "cafeteria"
},
/area/station/science/hallway)
+"fOr" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Trainer's Office";
+ id_tag = "nct"
+ },
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "NCT"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-8"
+ },
+/obj/effect/mapping_helpers/airlock/autoname,
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/procedure/trainer_office)
"fOt" = (
/obj/structure/sign/poster/contraband/clown{
pixel_y = 32
@@ -35253,13 +35530,24 @@
/turf/simulated/floor/transparent/glass/reinforced,
/area/station/maintenance/fpmaint)
"gbz" = (
-/obj/effect/spawner/window/reinforced,
+/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
/area/station/maintenance/abandonedbar)
"gbC" = (
/obj/effect/mapping_helpers/turfs/damage,
/turf/simulated/floor/plating,
/area/station/maintenance/port2)
+"gbD" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "white"
+ },
+/area/station/science/toxins/mixing)
"gbF" = (
/obj/structure/cable/orange{
icon_state = "4-8"
@@ -35305,6 +35593,12 @@
icon_state = "dark"
},
/area/station/legal/courtroom)
+"gbR" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"gch" = (
/turf/simulated/wall,
/area/station/command/office/ntrep)
@@ -35588,15 +35882,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/public/fitness)
-"ghZ" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 1
- },
-/obj/structure/cable/orange{
- icon_state = "1-2"
- },
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"giA" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -35800,6 +36085,14 @@
icon_state = "redcorner"
},
/area/station/security/main)
+"gkA" = (
+/obj/item/radio/intercom{
+ name = "west bump";
+ pixel_x = -28
+ },
+/obj/item/flag/ian,
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"gkD" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -36221,6 +36514,24 @@
/obj/effect/spawner/random/barrier/grille_maybe,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
+"gsu" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_y = 4;
+ pixel_x = -5
+ },
+/obj/item/pen{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"gsx" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -36273,12 +36584,6 @@
/mob/living/simple_animal/mouse/brown,
/turf/simulated/floor/plating/asteroid/ancient,
/area/station/maintenance/port2)
-"gtz" = (
-/obj/structure/machine_frame,
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
- },
-/area/station/engineering/break_room)
"gtH" = (
/obj/structure/cable/orange{
icon_state = "1-2"
@@ -36295,6 +36600,13 @@
/obj/effect/spawner/airlock/s_to_n,
/turf/simulated/wall,
/area/station/hallway/primary/aft/west)
+"gtY" = (
+/obj/machinery/atmospherics/portable/canister/oxygen,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel{
+ icon_state = "purple"
+ },
+/area/station/science/storage)
"gtZ" = (
/obj/effect/spawner/random/fungus/probably,
/obj/effect/mapping_helpers/turfs/rust,
@@ -36507,9 +36819,6 @@
/turf/simulated/floor/plating,
/area/station/supply/expedition)
"gwO" = (
-/obj/structure/disposalpipe/segment/corner{
- dir = 1
- },
/obj/effect/spawner/grouped_spawner{
group_id = "tunnelbats";
max_per_spawner = 1;
@@ -37051,16 +37360,6 @@
icon_state = "dark"
},
/area/station/turret_protected/aisat/interior)
-"gEz" = (
-/obj/structure/chair/office/light{
- dir = 4
- },
-/obj/effect/landmark/start/geneticist,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "whitepurple"
- },
-/area/station/science/genetics)
"gEJ" = (
/obj/machinery/light/small,
/obj/machinery/atmospherics/unary/vent_pump/on{
@@ -37116,6 +37415,10 @@
icon_state = "asteroidplating"
},
/area/station/maintenance/starboard)
+"gFs" = (
+/obj/structure/closet/crate/freezer,
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"gFu" = (
/obj/effect/turf_decal/stripes/asteroid/end{
dir = 8
@@ -37388,6 +37691,16 @@
},
/turf/simulated/floor/plasteel,
/area/station/service/janitor)
+"gJq" = (
+/obj/structure/extinguisher_cabinet{
+ name = "west bump";
+ pixel_x = -30
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "purple";
+ dir = 8
+ },
+/area/station/science/storage)
"gJw" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -37559,19 +37872,6 @@
},
/turf/simulated/floor/transparent/glass/reinforced,
/area/station/maintenance/starboard)
-"gLW" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/extinguisher_cabinet{
- name = "north bump";
- pixel_y = 30
- },
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "purple"
- },
-/area/station/science/storage)
"gLX" = (
/mob/living/simple_animal/mouse/brown,
/turf/simulated/floor/plating{
@@ -38185,22 +38485,13 @@
},
/area/station/supply/lobby)
"gVx" = (
-/obj/machinery/camera{
- c_tag = "Toxins Storage";
- dir = 9;
- network = list("SS13","RD")
- },
-/obj/machinery/light_switch{
- dir = 8;
- pixel_x = 24;
- name = "east bump"
- },
-/obj/effect/decal/cleanable/dirt,
+/obj/machinery/firealarm/directional/east,
+/obj/structure/closet/secure_closet/medical1,
/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 4
+ dir = 4;
+ icon_state = "darkpurple"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"gVK" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -38278,6 +38569,14 @@
/obj/structure/closet/firecloset/full,
/turf/simulated/floor/plating,
/area/station/hallway/primary/fore/north)
+"gXM" = (
+/obj/machinery/atmospherics/portable/canister/oxygen,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel{
+ icon_state = "purple";
+ dir = 4
+ },
+/area/station/science/storage)
"gXW" = (
/obj/machinery/light/small{
dir = 8
@@ -38385,13 +38684,13 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry/west)
"gZc" = (
-/obj/structure/disposalpipe/sortjunction/reversed{
- dir = 1;
- sort_type_txt = "11"
- },
/obj/structure/cable/orange{
icon_state = "1-8"
},
+/obj/structure/disposalpipe/sortjunction/reversed{
+ dir = 1;
+ sort_type_txt = "9"
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/east)
"gZu" = (
@@ -38441,6 +38740,16 @@
"gZI" = (
/turf/simulated/floor/wood,
/area/station/command/office/blueshield)
+"gZM" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 8
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkfull"
+ },
+/area/station/procedure/trainer_office)
"gZS" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
@@ -38588,14 +38897,6 @@
/obj/item/reagent_containers/spray/cleaner,
/turf/simulated/floor/plasteel,
/area/station/service/janitor)
-"hcm" = (
-/obj/machinery/hologram/holopad,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
"hco" = (
/mob/living/carbon/human/monkey/teeny,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
@@ -38889,6 +39190,17 @@
icon_state = "floorgrime"
},
/area/station/security/permabrig)
+"hhl" = (
+/obj/structure/cable/orange{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/item/toy/russian_revolver,
+/obj/effect/landmark/spawner/rev,
+/turf/simulated/floor/wood,
+/area/station/maintenance/gambling_den)
"hhs" = (
/obj/structure/fence{
dir = 4
@@ -39680,12 +39992,13 @@
},
/area/station/hallway/primary/fore/east)
"hrj" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/orange{
- icon_state = "1-2"
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
},
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/science/genetics)
"hrm" = (
/obj/effect/turf_decal/stripes/red/line{
dir = 1
@@ -40088,13 +40401,6 @@
slowdown = -0.3
},
/area/station/hallway/spacebridge/servsci)
-"hwg" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
- },
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
"hwm" = (
/obj/structure/chair/comfy{
dir = 8
@@ -40373,6 +40679,9 @@
pixel_x = 24;
name = "east bump"
},
+/obj/machinery/atmospherics/unary/portables_connector{
+ dir = 8
+ },
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "whitepurple"
@@ -40622,6 +40931,14 @@
icon_state = "asteroidplating"
},
/area/station/hallway/secondary/exit)
+"hDQ" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "white"
+ },
+/area/station/science/toxins/mixing)
"hEe" = (
/obj/machinery/disposal,
/obj/structure/disposalpipe/trunk,
@@ -40858,6 +41175,18 @@
icon_state = "cafeteria"
},
/area/station/science/hallway)
+"hGZ" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"hHb" = (
/obj/machinery/atmospherics/portable/canister/air,
/obj/machinery/atmospherics/unary/portables_connector{
@@ -41223,6 +41552,11 @@
},
/turf/simulated/floor/plasteel/white,
/area/station/science/hallway)
+"hKn" = (
+/obj/effect/spawner/window/reinforced,
+/obj/structure/sign/nosmoking_2,
+/turf/simulated/floor/plating,
+/area/station/science/storage)
"hKu" = (
/obj/structure/cable/orange{
icon_state = "1-4"
@@ -41770,14 +42104,13 @@
icon_state = "asteroidplating"
},
/area/station/maintenance/apmaint)
-"hRc" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/glass/bucket,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
+"hRi" = (
+/obj/machinery/atmospherics/portable/canister/sleeping_agent,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel{
+ icon_state = "purple"
},
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
+/area/station/science/storage)
"hRk" = (
/obj/structure/cable/orange{
icon_state = "1-2"
@@ -42197,15 +42530,6 @@
icon_state = "whiteblue"
},
/area/station/medical/surgery/secondary)
-"hXo" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/portable/canister/carbon_dioxide,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
"hXC" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
@@ -44465,20 +44789,6 @@
icon_state = "dark"
},
/area/station/command/teleporter)
-"iAK" = (
-/obj/machinery/door/poddoor{
- density = 0;
- icon_state = "open";
- id_tag = "Secure Gate";
- name = "Security Blast Door";
- opacity = 0
- },
-/obj/effect/spawner/window/reinforced/grilled,
-/obj/structure/cable/orange{
- icon_state = "0-8"
- },
-/turf/simulated/floor/plating,
-/area/station/security/prison/cell_block/a)
"iAO" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -44604,6 +44914,15 @@
icon_state = "whitepurple"
},
/area/station/science/hallway)
+"iBK" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"iBP" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
@@ -44832,25 +45151,6 @@
"iFs" = (
/turf/simulated/wall,
/area/mine/unexplored/cere/research)
-"iFv" = (
-/obj/machinery/door/window/classic/normal{
- name = "Monkey Pen";
- dir = 8
- },
-/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/genetics{
- dir = 8
- },
-/mob/living/carbon/human/monkey,
-/turf/simulated/floor/grass,
-/area/station/science/genetics)
-"iFG" = (
-/obj/structure/cable/orange{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
- },
-/area/station/security/prison/cell_block/a)
"iFO" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -44876,6 +45176,17 @@
slowdown = -0.3
},
/area/station/hallway/spacebridge/cargocom)
+"iFT" = (
+/obj/effect/turf_decal/delivery/hollow,
+/obj/machinery/atmospherics/portable/canister/carbon_dioxide,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/light,
+/turf/simulated/floor/plasteel{
+ icon_state = "purple"
+ },
+/area/station/science/storage)
"iFV" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -45539,6 +45850,18 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
+"iNX" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Blueshield's Office";
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"iOd" = (
/obj/structure/railing{
dir = 6
@@ -45673,6 +45996,17 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
+"iPQ" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/table/glass,
+/obj/item/storage/box/disks,
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkpurple"
+ },
+/area/station/science/genetics)
"iPT" = (
/obj/effect/spawner/window/reinforced/grilled,
/obj/structure/cable/orange{
@@ -46269,11 +46603,9 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/structure/sink{
- pixel_y = 24
- },
-/turf/simulated/floor/grass,
-/area/station/science/genetics)
+/mob/living/simple_animal/mouse/gray,
+/turf/simulated/floor/plating/asteroid/ancient,
+/area/station/maintenance/starboard)
"iXK" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 10
@@ -46316,9 +46648,8 @@
/area/station/maintenance/disposal)
"iYc" = (
/obj/effect/spawner/window/reinforced,
-/obj/structure/sign/nosmoking_1,
/turf/simulated/floor/plating,
-/area/station/science/storage)
+/area/station/science/genetics)
"iYg" = (
/obj/effect/mapping_helpers/turfs/rust,
/turf/simulated/wall/r_wall,
@@ -46734,12 +47065,6 @@
icon_state = "dark"
},
/area/station/security/brig)
-"jdf" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on,
-/turf/simulated/floor/plasteel{
- icon_state = "white"
- },
-/area/station/science/toxins/mixing)
"jdC" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
/obj/structure/disposalpipe/junction/reversed{
@@ -46776,6 +47101,20 @@
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
/area/station/maintenance/solar_maintenance/port)
+"jdL" = (
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/plasteel{
+ dir = 6;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"jdN" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -46969,13 +47308,9 @@
},
/area/station/security/lobby)
"jgc" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/toxins,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "purple"
- },
-/area/station/science/storage)
+/obj/structure/window/reinforced,
+/turf/simulated/floor/grass,
+/area/station/science/genetics)
"jgl" = (
/obj/machinery/atmospherics/binary/valve,
/obj/machinery/camera{
@@ -47041,7 +47376,10 @@
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 10
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
},
/turf/simulated/floor/plasteel{
dir = 1;
@@ -47193,12 +47531,19 @@
/turf/simulated/floor/plating,
/area/station/service/bar)
"jiv" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/oxygen,
+/obj/machinery/camera/autoname{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 5
+ },
/turf/simulated/floor/plasteel{
- icon_state = "purple"
+ icon_state = "darkpurple"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"jiw" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
@@ -47455,15 +47800,6 @@
slowdown = -0.3
},
/area/station/hallway/spacebridge/engmed)
-"jmo" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/poddoor/shutters{
- name = "Storefront Shutters";
- id_tag = "pet_shop";
- dir = 1
- },
-/turf/simulated/floor/plasteel,
-/area/station/public/pet_store)
"jmq" = (
/obj/structure/closet/firecloset/full,
/obj/effect/spawner/random/dirt/maybe,
@@ -48153,10 +48489,15 @@
},
/area/station/hallway/primary/fore/east)
"jum" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/oxygen,
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/obj/structure/cable/orange{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/science/genetics)
"juH" = (
/obj/machinery/power/terminal{
dir = 1
@@ -48322,15 +48663,6 @@
},
/turf/simulated/wall,
/area/station/hallway/primary/central/east)
-"jvT" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 1
- },
-/turf/simulated/floor/plasteel{
- dir = 8;
- icon_state = "redcorner"
- },
-/area/station/security/prison/cell_block/a)
"jvX" = (
/obj/structure/closet/crate/trashcart{
desc = "A heavy, metal laundrycart with wheels.";
@@ -49204,7 +49536,7 @@
"jFG" = (
/obj/structure/closet/secure_closet/blueshield,
/obj/machinery/camera{
- c_tag = "Blueshield's Office";
+ c_tag = "Trainer's Office";
dir = 1
},
/turf/simulated/floor/wood,
@@ -49326,6 +49658,14 @@
/obj/machinery/economy/vending/autodrobe,
/turf/simulated/floor/plasteel,
/area/station/public/locker)
+"jHr" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/glass/bucket,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"jHz" = (
/obj/machinery/firealarm/directional/east,
/obj/machinery/suit_storage_unit/blueshield/secure,
@@ -49595,6 +49935,14 @@
},
/turf/simulated/floor/plating,
/area/station/hallway/primary/aft/west)
+"jKe" = (
+/obj/structure/chair/sofa/bench{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "purplefull"
+ },
+/area/station/hallway/primary/aft/west)
"jKg" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -49921,6 +50269,16 @@
icon_state = "whitepurplefull"
},
/area/station/science/xenobiology)
+"jOt" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/geneticist,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkpurple"
+ },
+/area/station/science/genetics)
"jOE" = (
/obj/structure/disposalpipe/segment/corner,
/turf/simulated/floor/plating{
@@ -50099,6 +50457,13 @@
},
/turf/simulated/floor/plating,
/area/station/hallway/primary/starboard/south)
+"jQT" = (
+/obj/item/reagent_containers/drinks/drinkingglass/shotglass,
+/obj/structure/closet/crate/freezer,
+/obj/machinery/power/apc/directional/west,
+/obj/structure/cable/orange,
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"jQZ" = (
/obj/effect/spawner/airlock,
/turf/simulated/wall,
@@ -50220,6 +50585,15 @@
icon_state = "dark"
},
/area/station/science/toxins/launch)
+"jSi" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "white"
+ },
+/area/station/science/toxins/mixing)
"jSk" = (
/obj/structure/railing{
dir = 10
@@ -50344,11 +50718,13 @@
/turf/simulated/floor/plating,
/area/station/engineering/tech_storage)
"jTr" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/portable/canister/toxins,
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/obj/machinery/dna_scannernew,
+/obj/effect/turf_decal/delivery,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkpurple"
+ },
+/area/station/science/genetics)
"jTA" = (
/obj/structure/disposalpipe/sortjunction{
dir = 4;
@@ -50677,14 +51053,11 @@
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
-/obj/effect/spawner/random/dirt/frequent,
-/obj/structure/cable/orange{
- icon_state = "1-4"
- },
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"jYR" = (
/obj/structure/chair/office/light,
/turf/simulated/floor/plasteel{
@@ -50755,12 +51128,6 @@
/obj/structure/cable/orange{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
/obj/effect/mapping_helpers/airlock/access/all/science/tox,
/obj/machinery/door/airlock/research,
/obj/effect/mapping_helpers/airlock/autoname,
@@ -50852,6 +51219,13 @@
icon_state = "whitepurple"
},
/area/station/science/toxins/mixing)
+"kam" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "whitepurplecorner"
+ },
+/area/station/science/toxins/mixing)
"kao" = (
/obj/machinery/door_timer/cell_4{
pixel_y = -32
@@ -51091,6 +51465,21 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/plating,
/area/station/turret_protected/aisat/interior/secondary)
+"kem" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/sign/directions/security{
+ dir = 1;
+ pixel_x = -32
+ },
+/obj/structure/chair/sofa/bench/right{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "purplefull"
+ },
+/area/station/hallway/primary/aft/west)
"ken" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,
/obj/machinery/atmospherics/meter,
@@ -51504,6 +51893,17 @@
/obj/effect/spawner/random/dirt/frequent,
/turf/simulated/floor/plasteel,
/area/station/supply/miningdock)
+"kkn" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/item/pen{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "purplefull"
+ },
+/area/station/hallway/primary/aft/west)
"kkq" = (
/obj/structure/table/flipped{
dir = 4
@@ -51520,14 +51920,11 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fore2)
"kkD" = (
-/obj/structure/table/glass,
-/obj/item/storage/box/rxglasses,
-/obj/machinery/firealarm/directional/south,
-/obj/item/folder/white,
-/turf/simulated/floor/plasteel{
- icon_state = "whitepurple"
- },
-/area/station/science/genetics)
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/remains/xeno,
+/obj/effect/decal/cleanable/blood/old,
+/turf/simulated/floor/plating,
+/area/station/maintenance/starboard)
"kkS" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -52707,6 +53104,11 @@
icon_state = "darkbrown"
},
/area/station/supply/expedition)
+"kzi" = (
+/mob/living/carbon/human/monkey,
+/obj/structure/flora/tree/palm,
+/turf/simulated/floor/grass,
+/area/station/science/genetics)
"kzo" = (
/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
dir = 6
@@ -54209,6 +54611,15 @@
},
/turf/simulated/floor/plating,
/area/station/turret_protected/aisat/interior/secondary)
+"kTR" = (
+/obj/structure/chair/office/light,
+/obj/effect/landmark/start/geneticist,
+/obj/machinery/requests_console/directional/west,
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkpurple"
+ },
+/area/station/science/genetics)
"kUi" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
@@ -55422,7 +55833,7 @@
pixel_x = 7;
pixel_y = -3
},
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whiteblue"
@@ -55587,6 +55998,15 @@
/obj/machinery/firealarm/directional/west,
/turf/simulated/floor/wood,
/area/station/service/bar)
+"lmd" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "bs"
+ },
+/obj/structure/cable/orange{
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"lme" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
@@ -56232,6 +56652,29 @@
},
/turf/space,
/area/station/engineering/solar/fore_port)
+"ltY" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/structure/cable/orange{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/station/hallway/primary/fore/north)
"lux" = (
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plating{
@@ -56291,6 +56734,20 @@
},
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/exit)
+"lvm" = (
+/obj/machinery/door/poddoor{
+ density = 0;
+ icon_state = "open";
+ id_tag = "Secure Gate";
+ name = "Security Blast Door";
+ opacity = 0
+ },
+/obj/effect/spawner/window/reinforced/grilled,
+/obj/structure/cable/orange{
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plating,
+/area/station/security/prison/cell_block/a)
"lvw" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
@@ -56942,13 +57399,13 @@
},
/area/station/maintenance/apmaint)
"lDh" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/sleeping_agent,
+/obj/machinery/alarm/directional/west,
+/obj/structure/chair/comfy/purp,
/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 8
+ dir = 8;
+ icon_state = "darkpurple"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"lDm" = (
/obj/structure/disposalpipe/segment{
color = "#954535"
@@ -57112,13 +57569,15 @@
},
/turf/space,
/area/space/nearstation)
-"lFm" = (
-/obj/structure/window/reinforced{
- dir = 8
+"lFo" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
},
-/mob/living/carbon/human/monkey,
-/turf/simulated/floor/grass,
-/area/station/science/genetics)
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"lFz" = (
/obj/structure/toilet{
pixel_y = 6
@@ -57465,17 +57924,6 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
-"lKF" = (
-/obj/machinery/camera/autoname{
- dir = 9
- },
-/obj/machinery/door_control{
- id = "pet_shop";
- name = "Storefront Shutters Control";
- pixel_x = 24
- },
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"lKI" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
@@ -57489,18 +57937,22 @@
/turf/simulated/floor/wood,
/area/station/command/office/hos)
"lKN" = (
-/obj/effect/mapping_helpers/airlock/access/all/science/tox_storage,
-/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable/orange{
+ d1 = 1;
+ d2 = 2;
icon_state = "1-2"
},
-/obj/machinery/door/airlock/research/glass{
- name = "Toxins Storage"
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/access/all/medical/genetics,
+/obj/machinery/door/airlock/medical/glass,
+/obj/effect/mapping_helpers/airlock/autoname,
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
},
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/area/station/science/genetics)
"lKW" = (
/obj/structure/disposalpipe/segment/corner{
dir = 4
@@ -58469,14 +58921,6 @@
icon_state = "asteroidplating"
},
/area/station/maintenance/starboard)
-"lWM" = (
-/obj/machinery/atmospherics/portable/scrubber/huge/stationary,
-/obj/effect/turf_decal/delivery/hollow,
-/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 5
- },
-/area/station/science/storage)
"lWT" = (
/turf/simulated/wall,
/area/station/hallway/secondary/garden)
@@ -58840,13 +59284,13 @@
/obj/structure/cable/orange{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/structure/disposalpipe/segment/corner{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/structure/disposalpipe/segment/corner{
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/turf/simulated/floor/plasteel{
@@ -60610,9 +61054,6 @@
/turf/simulated/floor/wood,
/area/station/service/bar)
"mAe" = (
-/obj/machinery/atmospherics/pipe/simple/visible{
- dir = 9
- },
/obj/item/radio/intercom{
pixel_y = -28;
name = "custom placement"
@@ -60866,6 +61307,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
+/obj/machinery/door/airlock/maintenance{
+ name = "Aft Asteroid Maintenance"
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"mDy" = (
@@ -61986,12 +62431,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/supply/lobby)
-"mTp" = (
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "whitepurplecorner"
- },
-/area/station/science/genetics)
"mTy" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -62487,6 +62926,17 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/north)
+"mZk" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable/orange{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/plasteel/white,
+/area/station/science/hallway)
"mZu" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
@@ -62580,6 +63030,10 @@
icon_state = "redcorner"
},
/area/station/hallway/primary/fore/west)
+"naB" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/turf/simulated/floor/plating,
+/area/station/hallway/primary/aft/west)
"naI" = (
/obj/structure/closet/wardrobe/white,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
@@ -63170,6 +63624,7 @@
dir = 1
},
/obj/machinery/atmospherics/portable/canister/air,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/south)
"njC" = (
@@ -63537,10 +63992,6 @@
/area/station/legal/courtroom)
"nop" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/visible{
- dir = 9
- },
-/obj/effect/spawner/random/dirt/often,
/obj/structure/sign/securearea{
desc = "A warning sign which reads 'EXTERNAL AIRLOCK'";
icon_state = "space";
@@ -63548,6 +63999,10 @@
name = "EXTERNAL AIRLOCK";
pixel_x = 32
},
+/obj/effect/spawner/random/dirt/often,
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 9
+ },
/turf/simulated/floor/plating,
/area/station/hallway/primary/aft/west)
"noy" = (
@@ -64091,15 +64546,14 @@
},
/area/station/hallway/primary/fore/west)
"nvF" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Genetics Research"
- },
-/obj/effect/mapping_helpers/airlock/access/all/medical/genetics,
/obj/structure/cable/orange{
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
-/obj/effect/spawner/random/dirt/frequent,
+/obj/machinery/door/airlock/maintenance{
+ name = "Medbay Maintenance"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"nvI" = (
@@ -64235,10 +64689,6 @@
},
/turf/space,
/area/space)
-"nxx" = (
-/obj/structure/closet/crate/freezer,
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"nxz" = (
/obj/machinery/light{
dir = 8
@@ -64391,6 +64841,9 @@
icon_state = "asteroidplating"
},
/area/station/hallway/spacebridge/scidock)
+"nzo" = (
+/turf/simulated/wall/r_wall,
+/area/station/science/genetics)
"nzH" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -64477,6 +64930,18 @@
icon_state = "darkbrown"
},
/area/station/supply/office)
+"nCa" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"nCd" = (
/obj/structure/cable/orange{
icon_state = "1-2"
@@ -65019,6 +65484,12 @@
/obj/effect/mapping_helpers/airlock/access/all/science/tox,
/obj/machinery/door/airlock/research,
/obj/effect/mapping_helpers/airlock/autoname,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -65212,19 +65683,11 @@
/turf/simulated/floor/plating,
/area/station/maintenance/solar_maintenance/aft_starboard)
"nLc" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/carbon_dioxide,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 8
+ dir = 8;
+ icon_state = "darkpurplecorners"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"nLd" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/autoname,
@@ -65515,6 +65978,18 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/southwest)
+"nPU" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Pet Shop"
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/floor/plasteel,
+/area/station/public/pet_store)
"nPZ" = (
/obj/structure/disposalpipe/segment,
/obj/item/cigbutt,
@@ -65727,6 +66202,9 @@
slowdown = -0.3
},
/area/station/hallway/spacebridge/serveng)
+"nSI" = (
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"nSO" = (
/obj/structure/grille/broken,
/obj/effect/decal/cleanable/glass,
@@ -65969,15 +66447,6 @@
},
/turf/simulated/floor/plating,
/area/station/security/brig)
-"nWm" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
"nWq" = (
/obj/item/cigbutt/roach,
/obj/effect/decal/cleanable/dirt,
@@ -66099,9 +66568,6 @@
icon_state = "dark"
},
/area/station/turret_protected/ai)
-"nXW" = (
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"nXZ" = (
/obj/effect/spawner/window/reinforced/polarized/grilled{
id = "bs"
@@ -66447,15 +66913,6 @@
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plating,
/area/station/hallway/primary/aft/west)
-"odu" = (
-/obj/machinery/atmospherics/unary/portables_connector{
- dir = 4
- },
-/turf/simulated/floor/plasteel{
- dir = 8;
- icon_state = "whitepurple"
- },
-/area/station/science/toxins/mixing)
"odF" = (
/obj/effect/spawner/window/reinforced/grilled,
/obj/machinery/door/poddoor/preopen{
@@ -66667,12 +67124,17 @@
},
/area/station/service/chapel)
"ogJ" = (
-/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
/turf/simulated/floor/plasteel{
dir = 8;
- icon_state = "purplecorner"
+ icon_state = "darkpurplecorners"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"ogV" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -66776,18 +67238,6 @@
},
/turf/simulated/floor/transparent/glass/reinforced,
/area/station/maintenance/port)
-"oii" = (
-/obj/structure/disposalpipe/segment{
- color = "#954535"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "neutralcorner"
- },
-/area/station/hallway/primary/aft/west)
"oip" = (
/obj/machinery/status_display{
layer = 4
@@ -66799,18 +67249,16 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/structure/disposalpipe/sortjunction{
- dir = 2;
- sort_type_txt = "23"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
},
+/obj/structure/disposalpipe/junction,
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"oiD" = (
/obj/structure/table/wood,
/obj/item/folder/blue,
@@ -66885,15 +67333,6 @@
icon_state = "bcircuit"
},
/area/station/turret_protected/ai)
-"ojL" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 10
- },
-/obj/structure/cable/orange{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
"ojN" = (
/turf/simulated/wall,
/area/station/maintenance/turbine)
@@ -67126,13 +67565,21 @@
},
/area/station/maintenance/asmaint)
"omL" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/oxygen,
+/obj/machinery/power/apc/directional/west,
+/obj/structure/cable/orange{
+ icon_state = "0-4"
+ },
+/obj/structure/table/glass,
+/obj/item/ashtray/glass,
+/obj/item/storage/fancy/cigarettes/cigpack_carp{
+ pixel_x = 9;
+ pixel_y = 6
+ },
/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 8
+ dir = 8;
+ icon_state = "darkpurple"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"omT" = (
/obj/structure/reagent_dispensers/peppertank{
pixel_y = 32
@@ -67210,29 +67657,6 @@
},
/turf/simulated/floor/plasteel/white,
/area/station/science/hallway)
-"oop" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- color = "#954535"
- },
-/obj/machinery/door_control{
- id = "scieva";
- name = "Science EVA shutter control";
- pixel_x = -25;
- pixel_y = 24;
- req_one_access = list(19,41)
- },
-/obj/structure/sign/directions/security{
- dir = 1;
- pixel_x = -32
- },
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "neutralcorner"
- },
-/area/station/hallway/primary/aft/west)
"ooq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
@@ -67293,18 +67717,19 @@
},
/area/station/medical/virology)
"ooJ" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/structure/cable/orange{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 1
+/obj/structure/cable/orange{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
},
+/obj/structure/disposalpipe/junction{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "bluecorner"
@@ -67375,6 +67800,13 @@
},
/turf/simulated/floor/plating/asteroid/ancient,
/area/space/nearstation/disposals)
+"oqg" = (
+/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/genetics,
+/obj/machinery/door/window/classic/normal{
+ name = "Monkey Pen"
+ },
+/turf/simulated/floor/grass,
+/area/station/science/genetics)
"oql" = (
/obj/structure/lattice,
/obj/machinery/camera{
@@ -67654,6 +68086,17 @@
/obj/effect/mapping_helpers/turfs/rust,
/turf/simulated/wall,
/area/station/maintenance/apmaint)
+"otc" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/item/radio/intercom{
+ name = "west bump";
+ pixel_x = -28
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "purple";
+ dir = 8
+ },
+/area/station/science/storage)
"oth" = (
/obj/machinery/light_switch{
dir = 4;
@@ -67940,6 +68383,12 @@
},
/turf/simulated/floor/plating,
/area/station/command/bridge)
+"oxM" = (
+/obj/machinery/atmospherics/unary/vent_pump/on,
+/turf/simulated/floor/plasteel{
+ icon_state = "white"
+ },
+/area/station/science/toxins/mixing)
"oxO" = (
/obj/machinery/door/airlock/maintenance{
name = "Aft Asteroid Maintenance"
@@ -68308,6 +68757,12 @@
icon_state = "darkyellow"
},
/area/station/engineering/control)
+"oCr" = (
+/obj/machinery/autolathe,
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/engineering/break_room)
"oCu" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/engine{
@@ -68565,6 +69020,23 @@
icon_state = "darkfull"
},
/area/station/supply/office)
+"oFY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "neutralfull"
+ },
+/area/station/hallway/primary/fore/north)
"oGk" = (
/obj/structure/disposalpipe/segment{
color = "#954535"
@@ -68663,6 +69135,13 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/north)
+"oIe" = (
+/obj/machinery/economy/vending/traindrobe,
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"oIs" = (
/obj/structure/table,
/obj/item/storage/fancy/cigarettes/cigpack_robust{
@@ -69333,6 +69812,12 @@
/obj/structure/sign/custodian,
/turf/simulated/wall,
/area/station/maintenance/port2)
+"oPZ" = (
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkpurplecorners"
+ },
+/area/station/science/genetics)
"oQc" = (
/obj/machinery/light/small,
/turf/simulated/floor/bluegrid{
@@ -70993,18 +71478,6 @@
icon_state = "asteroidplating"
},
/area/station/maintenance/port2)
-"pmi" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
- },
-/obj/structure/cable/orange{
- icon_state = "2-8"
- },
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"pmA" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
@@ -71359,6 +71832,18 @@
icon_state = "white"
},
/area/station/science/test_chamber)
+"pqq" = (
+/obj/machinery/computer/scan_consolenew,
+/obj/effect/turf_decal/delivery/hollow,
+/obj/item/radio/intercom{
+ name = "west bump";
+ pixel_x = -28
+ },
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "darkpurple"
+ },
+/area/station/science/genetics)
"pqv" = (
/obj/structure/closet/crate/freezer,
/obj/item/reagent_containers/iv_bag/blood/random,
@@ -71550,13 +72035,6 @@
icon_state = "cafeteria"
},
/area/station/supply/break_room)
-"ptm" = (
-/obj/item/radio/intercom{
- pixel_y = 28;
- name = "custom placement"
- },
-/turf/simulated/floor/grass,
-/area/station/science/genetics)
"pts" = (
/obj/effect/mapping_helpers/turfs/rust,
/turf/simulated/wall,
@@ -71592,6 +72070,21 @@
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/external/southeast)
+"ptU" = (
+/obj/machinery/door/window/classic/normal{
+ name = "Glass Door";
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"ptZ" = (
/obj/structure/cable/orange{
icon_state = "4-8"
@@ -71663,13 +72156,15 @@
/turf/simulated/floor/plating,
/area/station/maintenance/port2)
"puz" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/firealarm/directional/east,
-/turf/simulated/floor/plasteel{
- icon_state = "purple";
+/obj/structure/closet/secure_closet/genetics,
+/obj/machinery/light{
dir = 4
},
-/area/station/science/storage)
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkpurple"
+ },
+/area/station/science/genetics)
"puD" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -72223,12 +72718,11 @@
},
/area/station/maintenance/electrical_shop)
"pCN" = (
-/obj/machinery/door/poddoor/multi_tile/two_tile_ver{
- name = "Science Emergency EVA Storage";
- id_tag = "scieva"
+/obj/structure/chair/sofa/bench/left{
+ dir = 4
},
/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
+ icon_state = "purplefull"
},
/area/station/hallway/primary/aft/west)
"pCW" = (
@@ -72321,6 +72815,18 @@
icon_state = "bcircuit"
},
/area/station/turret_protected/ai)
+"pEh" = (
+/obj/structure/table/wood,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/storage/firstaid/aquatic_kit/full,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 10
+ },
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"pEi" = (
/obj/machinery/camera{
c_tag = "Research Asteroid Hallway 1";
@@ -72444,6 +72950,14 @@
/obj/structure/railing,
/turf/simulated/floor/plating/asteroid/ancient/airless,
/area/mine/unexplored/cere/ai)
+"pFe" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"pFj" = (
/obj/structure/closet/emcloset,
/turf/simulated/floor/plating,
@@ -73170,14 +73684,6 @@
icon_state = "neutralfull"
},
/area/station/hallway/primary/port/south)
-"pOU" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/orange{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel/white,
-/area/station/science/hallway)
"pOW" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 1
@@ -73353,10 +73859,13 @@
/turf/simulated/floor/plating,
/area/station/hallway/secondary/entry/north)
"pQM" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/sleeping_agent,
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/science/genetics)
"pQN" = (
/turf/simulated/wall,
/area/station/hallway/primary/aft/east)
@@ -73604,6 +74113,20 @@
icon_state = "whiteblue"
},
/area/station/medical/medbay)
+"pTu" = (
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "white"
+ },
+/area/station/science/toxins/mixing)
"pTz" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable/orange{
@@ -74084,14 +74607,15 @@
},
/area/station/command/bridge)
"pZK" = (
-/obj/machinery/computer/scan_consolenew{
+/obj/effect/turf_decal/delivery/hollow,
+/obj/machinery/computer/nonfunctional{
dir = 8
},
-/obj/effect/turf_decal/delivery/hollow,
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"pZQ" = (
/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
/obj/machinery/door/airlock/maintenance{
@@ -74253,13 +74777,6 @@
/obj/item/assembly/mousetrap/armed,
/turf/simulated/floor/plating/asteroid/ancient,
/area/station/maintenance/port)
-"qcC" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 12
- },
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"qcE" = (
/obj/effect/decal/cleanable/cobweb2,
/obj/effect/spawner/random/dirt/often,
@@ -74288,11 +74805,6 @@
icon_state = "neutralfull"
},
/area/station/hallway/primary/starboard/south)
-"qcW" = (
-/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/atmospherics/portable/canister/toxins,
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
"qdb" = (
/obj/machinery/door/airlock/maintenance{
name = "Aft Asteroid Maintenance"
@@ -74751,6 +75263,11 @@
/obj/effect/spawner/window/reinforced,
/turf/simulated/floor/plating,
/area/station/supply/sorting)
+"qiq" = (
+/obj/machinery/atmospherics/portable/canister/sleeping_agent,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"qir" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -74824,12 +75341,12 @@
},
/area/station/supply/office)
"qkb" = (
-/obj/structure/disposalpipe/segment/corner{
- dir = 4
- },
/obj/structure/cable/orange{
icon_state = "4-8"
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/south)
"qkc" = (
@@ -75424,14 +75941,6 @@
icon_state = "darkredfull"
},
/area/station/security/permabrig)
-"qrB" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/orange{
- icon_state = "1-2"
- },
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"qrM" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -75750,6 +76259,13 @@
/obj/structure/lattice/catwalk,
/turf/space,
/area/station/engineering/solar/port)
+"qvK" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"qvL" = (
/obj/effect/spawner/random/fungus/frequent,
/turf/simulated/wall,
@@ -76358,8 +76874,9 @@
},
/area/station/maintenance/port)
"qDH" = (
-/obj/structure/disposalpipe/junction/reversed{
- dir = 4
+/obj/structure/disposalpipe/sortjunction/reversed{
+ dir = 4;
+ sort_type_txt = "23"
},
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/south)
@@ -76389,6 +76906,11 @@
icon_state = "whiteblue"
},
/area/station/medical/medbay)
+"qEv" = (
+/obj/machinery/atmospherics/portable/canister/toxins,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"qEx" = (
/obj/structure/bookcase{
name = "bookcase (Fiction)"
@@ -76459,6 +76981,17 @@
icon_state = "dark"
},
/area/station/legal/courtroom)
+"qFH" = (
+/obj/machinery/computer/area_atmos,
+/obj/effect/turf_decal/delivery/hollow,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "purple"
+ },
+/area/station/science/storage)
"qFM" = (
/obj/machinery/hologram/holopad,
/obj/structure/disposalpipe/segment{
@@ -76501,6 +77034,15 @@
icon_state = "tranquillite"
},
/area/station/service/mime)
+"qGr" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkfull"
+ },
+/area/station/procedure/trainer_office)
"qGC" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -77235,6 +77777,18 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
+"qPN" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"qPO" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -77359,8 +77913,16 @@
/turf/simulated/floor/wood/nitrogen,
/area/station/maintenance/abandonedbar)
"qRL" = (
-/obj/machinery/atmospherics/trinary/mixer/flipped{
- dir = 1
+/obj/structure/cable/orange{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9
},
/turf/simulated/floor/plasteel{
icon_state = "white"
@@ -77469,6 +78031,7 @@
dir = 4;
color = "#954535"
},
+/obj/machinery/newscaster/directional/south,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "purplecorner"
@@ -77958,6 +78521,10 @@
icon_state = "whitepurplecorner"
},
/area/station/science/xenobiology)
+"qZL" = (
+/obj/machinery/light,
+/turf/simulated/floor/plating,
+/area/station/hallway/primary/aft/west)
"qZT" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
@@ -78018,18 +78585,17 @@
},
/turf/simulated/floor/plasteel,
/area/station/service/janitor)
-"raH" = (
-/obj/machinery/suit_storage_unit/standard_unit,
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
- },
-/area/station/hallway/primary/aft/west)
"raP" = (
/obj/machinery/floodlight{
light_power = 1
},
/turf/simulated/floor/plating,
/area/station/maintenance/port)
+"raR" = (
+/obj/machinery/atmospherics/portable/canister/oxygen,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"raS" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -78203,6 +78769,14 @@
},
/turf/simulated/wall/r_wall,
/area/station/engineering/break_room/secondary)
+"rcQ" = (
+/obj/machinery/atmospherics/portable/canister/oxygen,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel{
+ icon_state = "purple";
+ dir = 6
+ },
+/area/station/science/storage)
"rcT" = (
/obj/machinery/computer/security/mining{
dir = 1
@@ -78352,6 +78926,12 @@
/turf/simulated/floor/engine,
/area/station/medical/chemistry)
"rgy" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -78412,6 +78992,11 @@
icon_state = "redcorner"
},
/area/station/maintenance/fpmaint)
+"rhO" = (
+/obj/structure/table,
+/obj/item/instrument/harmonica,
+/turf/simulated/floor/plasteel,
+/area/station/security/permabrig)
"ril" = (
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plasteel,
@@ -79032,6 +79617,13 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/fore/east)
+"rrI" = (
+/obj/machinery/door/poddoor/multi_tile/two_tile_hor{
+ name = "Science Emergency EVA Storage";
+ id_tag = "scieva"
+ },
+/turf/simulated/floor/plating,
+/area/station/hallway/primary/aft/west)
"rrN" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -79133,6 +79725,15 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/plating/asteroid/ancient,
/area/station/maintenance/apmaint)
+"rtu" = (
+/obj/machinery/door/poddoor/shutters{
+ name = "Storefront Shutters";
+ id_tag = "pet_shop";
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/turf/simulated/floor/plasteel,
+/area/station/public/pet_store)
"rtB" = (
/obj/machinery/door/airlock/public/glass{
name = "Garden"
@@ -79498,6 +80099,13 @@
icon_state = "escape"
},
/area/station/hallway/secondary/exit)
+"rys" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"ryw" = (
/obj/machinery/power/apc/directional/north,
/obj/structure/cable/orange{
@@ -79724,13 +80332,13 @@
},
/area/station/security/storage)
"rCJ" = (
-/obj/structure/disposalpipe/sortjunction/reversed{
- dir = 1;
- sort_type_txt = "23"
- },
/obj/structure/cable/orange{
icon_state = "1-2"
},
+/obj/structure/disposalpipe/sortjunction/reversed{
+ dir = 1;
+ sort_type_txt = "11"
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/east)
"rCK" = (
@@ -80025,6 +80633,13 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/fore/east)
+"rHd" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 12
+ },
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"rHj" = (
/turf/simulated/floor/plating{
icon_state = "asteroidplating"
@@ -80709,6 +81324,14 @@
icon_state = "cafeteria"
},
/area/station/science/hallway)
+"rOZ" = (
+/obj/machinery/atmospherics/portable/scrubber/huge/stationary,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel{
+ icon_state = "purple";
+ dir = 9
+ },
+/area/station/science/storage)
"rPc" = (
/obj/machinery/door/airlock/public/glass,
/obj/effect/mapping_helpers/airlock/autoname,
@@ -82491,15 +83114,6 @@
icon_state = "arrival"
},
/area/station/hallway/secondary/entry/east)
-"sls" = (
-/obj/structure/cable/orange{
- icon_state = "1-2"
- },
-/obj/effect/decal/cleanable/blood/old,
-/obj/item/gun/projectile/revolver/russian,
-/obj/effect/landmark/spawner/rev,
-/turf/simulated/floor/wood,
-/area/station/maintenance/gambling_den)
"slw" = (
/obj/structure/gunrack,
/obj/item/gun/projectile/shotgun/riot{
@@ -82568,6 +83182,24 @@
icon_state = "dark"
},
/area/station/engineering/gravitygenerator)
+"slY" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/obj/machinery/door_control{
+ id = "nct";
+ name = "Office Door";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ req_access = list(80);
+ pixel_y = -1
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"slZ" = (
/obj/machinery/economy/vending/cigarette,
/obj/machinery/camera{
@@ -82806,19 +83438,6 @@
icon_state = "escape"
},
/area/station/hallway/secondary/exit)
-"sqB" = (
-/obj/machinery/atmospherics/unary/portables_connector{
- dir = 4
- },
-/obj/machinery/atmospherics/portable/canister,
-/obj/machinery/light{
- dir = 8
- },
-/turf/simulated/floor/plasteel{
- dir = 8;
- icon_state = "whitepurple"
- },
-/area/station/science/toxins/mixing)
"sqG" = (
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel,
@@ -82945,20 +83564,6 @@
/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
/turf/simulated/floor/plating,
/area/station/maintenance/port2)
-"ssD" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable/orange{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
-/obj/structure/cable/orange{
- icon_state = "1-4"
- },
-/turf/simulated/floor/plasteel/white,
-/area/station/science/hallway)
"ssE" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -83035,6 +83640,12 @@
/obj/machinery/atmospherics/binary/pump{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -83548,6 +84159,7 @@
/obj/structure/disposalpipe/trunk{
dir = 1
},
+/obj/machinery/light,
/turf/simulated/floor/plasteel{
icon_state = "whitepurple"
},
@@ -83693,14 +84305,6 @@
icon_state = "redcorner"
},
/area/station/hallway/primary/fore/west)
-"sAJ" = (
-/obj/structure/table/wood,
-/obj/random/carp_plushie,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"sAQ" = (
/obj/machinery/light/small{
dir = 1
@@ -84129,14 +84733,12 @@
},
/area/station/aisat/service)
"sFd" = (
-/obj/effect/spawner/random/dirt/often,
-/obj/structure/cable/orange{
- icon_state = "4-8"
- },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/small,
/turf/simulated/floor/plasteel{
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"sFj" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -84217,6 +84819,10 @@
slowdown = -0.3
},
/area/station/hallway/spacebridge/comeng)
+"sGk" = (
+/obj/effect/spawner/window/reinforced/grilled,
+/turf/simulated/floor/plating,
+/area/station/public/pet_store)
"sGr" = (
/obj/machinery/hologram/holopad,
/turf/simulated/floor/plasteel{
@@ -84364,6 +84970,14 @@
icon_state = "white"
},
/area/station/science/misc_lab)
+"sJe" = (
+/obj/machinery/atmospherics/portable/canister/toxins,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel{
+ icon_state = "purple";
+ dir = 10
+ },
+/area/station/science/storage)
"sJk" = (
/obj/machinery/status_display{
layer = 4
@@ -84405,6 +85019,13 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/port/north)
+"sJW" = (
+/obj/structure/closet,
+/turf/simulated/floor/plasteel{
+ dir = 10;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"sJX" = (
/obj/effect/spawner/window/reinforced/polarized/grilled{
id = "rd"
@@ -84445,11 +85066,6 @@
/obj/effect/spawner/random/fungus/maybe,
/turf/simulated/wall,
/area/station/maintenance/apmaint)
-"sKs" = (
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
- },
-/area/station/security/prison/cell_block/a)
"sKz" = (
/obj/structure/rack,
/obj/item/painter{
@@ -84557,16 +85173,6 @@
icon_state = "dark"
},
/area/station/service/chapel/office)
-"sLK" = (
-/obj/structure/disposalpipe/segment{
- color = "#954535"
- },
-/obj/machinery/newscaster/directional/west,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "neutralcorner"
- },
-/area/station/hallway/primary/aft/west)
"sLO" = (
/obj/structure/curtain/open/shower,
/obj/machinery/alarm/directional/north,
@@ -85050,6 +85656,13 @@
/obj/effect/turf_decal/caution,
/turf/simulated/floor/plasteel,
/area/station/engineering/transmission_laser)
+"sQN" = (
+/obj/item/cigbutt,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "purple"
+ },
+/area/station/science/storage)
"sQV" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/plating,
@@ -85109,8 +85722,12 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -85413,18 +86030,6 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
-"sVU" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5
- },
-/obj/structure/cable/orange{
- icon_state = "1-4"
- },
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"sWc" = (
/obj/machinery/hologram/holopad,
/turf/simulated/floor/plasteel{
@@ -85445,6 +86050,14 @@
icon_state = "asteroidplating"
},
/area/station/maintenance/starboard)
+"sWu" = (
+/obj/effect/spawner/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id_tag = "genetics";
+ name = "Genetics Privacy Shutters"
+ },
+/turf/simulated/floor/plating,
+/area/station/science/genetics)
"sWz" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/unary/vent_pump/on,
@@ -85789,9 +86402,6 @@
},
/turf/simulated/floor/plating/asteroid/ancient,
/area/station/maintenance/storage)
-"tba" = (
-/turf/simulated/mineral/ancient/outer,
-/area/station/maintenance/abandonedbar)
"tbe" = (
/turf/simulated/floor/plating{
icon_state = "asteroidplating"
@@ -86454,9 +87064,6 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
/obj/effect/spawner/random/dirt/often,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -86464,6 +87071,7 @@
/obj/structure/cable/orange{
icon_state = "2-4"
},
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -86832,6 +87440,14 @@
icon_state = "bar"
},
/area/station/security/permabrig)
+"toj" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/effect/spawner/random/toy/carp_plushie,
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"top" = (
/obj/machinery/light/small,
/obj/effect/decal/cleanable/dirt,
@@ -86866,6 +87482,28 @@
"tpl" = (
/turf/simulated/floor/plating/airless,
/area/station/science/toxins/test)
+"tpo" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id_tag = "genetics";
+ name = "Genetics Privacy Shutters"
+ },
+/obj/item/desk_bell{
+ pixel_x = 7;
+ pixel_y = 7;
+ anchored = 1
+ },
+/obj/machinery/door/window/classic/reversed{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/windoor/autoname/desk{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/genetics{
+ dir = 8
+ },
+/turf/simulated/floor/plating,
+/area/station/science/genetics)
"tpp" = (
/obj/structure/sink{
dir = 8;
@@ -86953,6 +87591,9 @@
},
/turf/simulated/floor/plating,
/area/station/hallway/primary/aft/west)
+"tql" = (
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"tqm" = (
/obj/structure/disposalpipe/sortjunction/reversed{
dir = 1;
@@ -87075,12 +87716,7 @@
/obj/structure/cable/orange{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 5
- },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -87130,27 +87766,6 @@
},
/turf/simulated/floor/engine,
/area/station/medical/chemistry)
-"ttl" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/cable/orange{
- icon_state = "4-8"
- },
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "blue"
- },
-/area/station/hallway/primary/fore/north)
"ttn" = (
/obj/effect/spawner/random/dirt/frequent,
/turf/simulated/floor/plasteel{
@@ -87189,27 +87804,6 @@
icon_state = "dark"
},
/area/station/security/execution)
-"ttT" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/structure/cable/orange{
- icon_state = "4-8"
- },
-/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "bluecorner"
- },
-/area/station/hallway/primary/fore/north)
"ttV" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -88046,6 +88640,11 @@
icon_state = "neutralfull"
},
/area/station/hallway/primary/starboard/south)
+"tFc" = (
+/turf/simulated/floor/plasteel{
+ icon_state = "purplecorner"
+ },
+/area/station/science/storage)
"tFd" = (
/obj/machinery/door/airlock/public/glass{
name = "Central Access"
@@ -88486,9 +89085,6 @@
icon_state = "cafeteria"
},
/area/station/medical/break_room)
-"tKF" = (
-/turf/simulated/floor/plasteel,
-/area/station/security/prison/cell_block/a)
"tKQ" = (
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 4
@@ -88612,12 +89208,6 @@
icon_state = "darkgreenfull"
},
/area/station/service/hydroponics)
-"tMM" = (
-/obj/structure/cable/orange{
- icon_state = "4-8"
- },
-/turf/simulated/floor/carpet/black,
-/area/station/command/office/captain)
"tNc" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -89151,12 +89741,9 @@
},
/area/station/hallway/spacebridge/engmed)
"tUh" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+/obj/machinery/atmospherics/pipe/simple/visible{
dir = 6
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 10
- },
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -90333,7 +90920,7 @@
pixel_y = -3
},
/obj/item/flashlight/pen,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "whiteblue"
@@ -90512,6 +91099,12 @@
dir = 4
},
/area/station/supply/lobby)
+"ujd" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/floor/plasteel{
+ icon_state = "white"
+ },
+/area/station/science/toxins/mixing)
"ujl" = (
/obj/structure/shelf/engineering,
/obj/effect/spawner/random/engineering/materials,
@@ -90615,18 +91208,6 @@
icon_state = "dark"
},
/area/station/engineering/atmos)
-"ukg" = (
-/obj/structure/table/wood,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/storage/firstaid/aquatic_kit/full,
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 10
- },
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"ukj" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -90757,11 +91338,11 @@
/turf/simulated/floor/wood,
/area/station/legal/courtroom)
"ull" = (
-/obj/effect/spawner/random/dirt/often,
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"ulo" = (
/obj/machinery/light/small{
dir = 1
@@ -90809,11 +91390,7 @@
},
/area/station/security/prison/cell_block/a)
"umy" = (
-/obj/machinery/atmospherics/unary/portables_connector{
- dir = 4
- },
/turf/simulated/floor/plasteel{
- dir = 10;
icon_state = "whitepurple"
},
/area/station/science/toxins/mixing)
@@ -91393,14 +91970,15 @@
},
/area/station/hallway/spacebridge/engmed)
"uuU" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/portable/scrubber/huge/stationary,
-/obj/effect/turf_decal/delivery/hollow,
+/obj/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 6
+ dir = 4;
+ icon_state = "darkpurple"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"uuV" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
@@ -91875,6 +92453,18 @@
dir = 1
},
/area/station/supply/lobby)
+"uzh" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"uzv" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -93702,9 +94292,16 @@
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"uVh" = (
-/obj/machinery/atmospherics/pipe/simple/visible{
- dir = 10
+/obj/structure/cable/orange{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 8;
+ initialize_directions = 11
},
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -93719,13 +94316,12 @@
/turf/simulated/floor/plating,
/area/station/hallway/primary/starboard/south)
"uVC" = (
-/obj/machinery/requests_console/directional/west,
-/obj/structure/closet/secure_closet/genetics,
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
dir = 9;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"uWc" = (
/obj/machinery/light/small{
dir = 8
@@ -93917,10 +94513,11 @@
/area/station/maintenance/port)
"uYD" = (
/obj/machinery/hologram/holopad,
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"uYF" = (
/obj/structure/table,
/obj/item/reagent_containers/dropper,
@@ -93962,6 +94559,14 @@
icon_state = "asteroidplating"
},
/area/station/maintenance/apmaint)
+"uZq" = (
+/obj/machinery/atmospherics/portable/canister/toxins,
+/obj/effect/turf_decal/delivery/hollow,
+/turf/simulated/floor/plasteel{
+ icon_state = "purple";
+ dir = 8
+ },
+/area/station/science/storage)
"uZw" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -95804,6 +96409,9 @@
name = "custom placement"
},
/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment/corner{
+ dir = 4
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/disposal/south)
"vxP" = (
@@ -96211,12 +96819,12 @@
},
/area/station/medical/reception)
"vCS" = (
-/obj/machinery/economy/vending/genedrobe,
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"vDm" = (
/obj/machinery/alarm/directional/south,
/turf/simulated/floor/plasteel{
@@ -96494,11 +97102,12 @@
/obj/structure/disposalpipe/trunk{
dir = 4
},
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
dir = 9;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"vFA" = (
/obj/machinery/door/airlock{
id_tag = "fb2";
@@ -96614,11 +97223,15 @@
},
/area/station/maintenance/fpmaint)
"vGW" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 8
+/obj/structure/chair/comfy/brown{
+ dir = 4
},
-/turf/simulated/floor/plasteel,
-/area/station/security/prison/cell_block/a)
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkfull"
+ },
+/area/station/procedure/trainer_office)
"vHe" = (
/obj/structure/disposalpipe/sortjunction/reversed{
dir = 4;
@@ -96701,20 +97314,6 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/disposal)
-"vIJ" = (
-/obj/effect/spawner/window/reinforced/grilled,
-/obj/structure/cable/orange{
- icon_state = "0-2"
- },
-/obj/machinery/door/poddoor{
- density = 0;
- icon_state = "open";
- id_tag = "Secure Gate";
- name = "Security Blast Door";
- opacity = 0
- },
-/turf/simulated/floor/plating,
-/area/station/security/prison/cell_block/a)
"vIQ" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
@@ -96734,6 +97333,17 @@
icon_state = "whitegreen"
},
/area/station/medical/virology)
+"vJd" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/science/genetics)
"vJh" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -96872,12 +97482,6 @@
/obj/structure/cable/orange{
icon_state = "2-4"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
/obj/structure/cable/orange{
icon_state = "4-8"
},
@@ -97099,6 +97703,19 @@
icon_state = "whitegreen"
},
/area/station/medical/virology)
+"vOp" = (
+/obj/structure/shelf/science,
+/obj/item/healthanalyzer/advanced,
+/obj/item/healthanalyzer/advanced,
+/obj/item/reagent_containers/glass/bottle/potassium_iodide,
+/obj/item/reagent_containers/glass/bottle/potassium_iodide,
+/obj/item/hand_labeler,
+/obj/item/reagent_containers/spray/cleaner,
+/turf/simulated/floor/plasteel{
+ dir = 10;
+ icon_state = "darkpurple"
+ },
+/area/station/science/genetics)
"vOq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/universal,
/turf/simulated/floor/plating,
@@ -97170,18 +97787,13 @@
},
/area/station/science/test_chamber)
"vPs" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/item/radio/intercom{
- pixel_x = -28;
- name = "custom placement"
- },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"vPt" = (
/turf/simulated/wall,
/area/station/maintenance/fore2)
@@ -97240,14 +97852,24 @@
},
/area/station/security/detective)
"vQk" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable/orange{
+ d1 = 1;
+ d2 = 2;
icon_state = "1-2"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/obj/structure/disposalpipe/segment/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/science/genetics)
"vQl" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/simulated/floor/plating,
@@ -97385,18 +98007,6 @@
/obj/item/analyzer,
/turf/simulated/floor/plating,
/area/station/engineering/tech_storage)
-"vRu" = (
-/obj/structure/disposalpipe/segment{
- color = "#954535"
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "neutralcorner"
- },
-/area/station/hallway/primary/aft/west)
"vRH" = (
/obj/structure/cable/orange{
icon_state = "1-4"
@@ -97923,6 +98533,14 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/port/north)
+"vZQ" = (
+/obj/effect/turf_decal/delivery/hollow,
+/obj/machinery/atmospherics/portable/canister/carbon_dioxide,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"waa" = (
/obj/item/instrument/violin,
/obj/machinery/power/apc/directional/north,
@@ -97992,13 +98610,6 @@
icon_state = "neutralfull"
},
/area/station/hallway/primary/starboard/south)
-"waL" = (
-/obj/machinery/light_switch{
- pixel_y = 24;
- name = "north bump"
- },
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"waN" = (
/obj/machinery/door/airlock/maintenance{
name = "Hydroponics"
@@ -98024,16 +98635,6 @@
/obj/structure/grille,
/turf/simulated/floor/plating,
/area/station/security/execution)
-"waT" = (
-/obj/machinery/light,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/turf/simulated/floor/plating,
-/area/station/hallway/primary/aft/west)
"waZ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/plasteel{
@@ -98448,10 +99049,6 @@
icon_state = "asteroidplating"
},
/area/station/maintenance/fpmaint)
-"whS" = (
-/obj/machinery/ai_status_display,
-/turf/simulated/wall/r_wall,
-/area/station/science/storage)
"wig" = (
/obj/structure/cable/orange{
icon_state = "4-8"
@@ -99702,6 +100299,14 @@
icon_state = "darkfull"
},
/area/station/public/quantum/cargo)
+"wvl" = (
+/obj/effect/spawner/window/reinforced/grilled,
+/obj/structure/cable/orange{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plating,
+/area/station/security/brig)
"wvp" = (
/turf/simulated/floor/plasteel{
icon_state = "white"
@@ -99777,7 +100382,6 @@
name = "Genetics Cloning"
},
/obj/effect/mapping_helpers/airlock/access/any/medical/general,
-/obj/effect/mapping_helpers/airlock/access/any/medical/genetics,
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/unres{
dir = 4
@@ -99955,6 +100559,11 @@
/obj/effect/spawner/airlock/w_to_e,
/turf/simulated/wall,
/area/station/maintenance/port2)
+"wxY" = (
+/obj/effect/spawner/window/reinforced,
+/obj/structure/sign/fire,
+/turf/simulated/floor/plating,
+/area/station/science/storage)
"wyn" = (
/obj/machinery/requests_console/directional/east,
/turf/simulated/floor/plasteel{
@@ -100484,14 +101093,13 @@
},
/area/station/maintenance/fore2)
"wEK" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable/orange{
- icon_state = "1-2"
+ icon_state = "2-8"
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/science/storage)
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/science/genetics)
"wES" = (
/obj/effect/spawner/random/fungus/frequent,
/turf/simulated/wall,
@@ -100516,9 +101124,10 @@
pixel_x = 28;
name = "custom placement"
},
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
+/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
},
+/obj/machinery/atmospherics/portable/canister,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "whitepurple"
@@ -100984,7 +101593,6 @@
name = "Medbay Entrance"
},
/obj/effect/mapping_helpers/airlock/access/any/medical/general,
-/obj/effect/mapping_helpers/airlock/access/any/medical/genetics,
/obj/machinery/door/poddoor{
density = 0;
icon_state = "open";
@@ -101188,6 +101796,14 @@
icon_state = "purplecorner"
},
/area/station/hallway/primary/aft/west)
+"wNY" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"wOc" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
@@ -102010,9 +102626,7 @@
/turf/simulated/wall/r_wall,
/area/station/science/server/coldroom)
"wYa" = (
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
- },
+/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "whitepurple"
@@ -102788,10 +103402,13 @@
/turf/simulated/floor/engine,
/area/station/science/test_chamber)
"xhG" = (
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/cockroach,
+/obj/effect/decal/cleanable/blood/old,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"xhH" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/caution/red{
@@ -102928,8 +103545,9 @@
},
/area/station/maintenance/starboard)
"xjA" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/trinary/mixer{
+ dir = 1
+ },
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -103069,11 +103687,11 @@
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
-/obj/effect/spawner/random/dirt/often,
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"xno" = (
/obj/structure/table,
/obj/effect/spawner/random/maintenance,
@@ -103137,10 +103755,11 @@
dir = 1
},
/obj/structure/disposalpipe/segment,
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"xoU" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -103446,6 +104065,13 @@
},
/turf/simulated/floor/wood,
/area/station/command/office/rd)
+"xtv" = (
+/obj/machinery/light_switch{
+ pixel_y = 24;
+ name = "north bump"
+ },
+/turf/simulated/floor/wood,
+/area/station/public/pet_store)
"xtD" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -104039,18 +104665,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/processing)
-"xzT" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Pet Shop"
- },
-/obj/structure/cable/orange{
- icon_state = "1-2"
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/plasteel,
-/area/station/public/pet_store)
"xAk" = (
/obj/machinery/light{
dir = 1
@@ -104548,7 +105162,11 @@
/area/station/maintenance/starboard)
"xFi" = (
/obj/structure/grille/broken,
-/turf/simulated/floor/plating,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/plasteel{
+ icon_state = "purple";
+ dir = 6
+ },
/area/station/maintenance/apmaint)
"xFj" = (
/obj/structure/table/glass,
@@ -104812,6 +105430,18 @@
icon_state = "darkfull"
},
/area/station/supply/expedition)
+"xHK" = (
+/obj/machinery/atmospherics/portable/scrubber/huge/stationary,
+/obj/effect/turf_decal/delivery/hollow,
+/obj/machinery/camera{
+ c_tag = "Toxins Storage";
+ network = list("SS13","RD")
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "purple"
+ },
+/area/station/science/storage)
"xHN" = (
/obj/structure/table,
/obj/item/stack/sheet/metal{
@@ -105245,15 +105875,13 @@
},
/area/station/engineering/transmission_laser)
"xOm" = (
-/obj/item/radio/intercom{
- pixel_x = 28;
- name = "custom placement"
- },
+/obj/machinery/computer/scan_consolenew,
+/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel{
- icon_state = "purple";
- dir = 4
+ dir = 5;
+ icon_state = "darkpurple"
},
-/area/station/science/storage)
+/area/station/science/genetics)
"xOp" = (
/obj/machinery/light{
dir = 1
@@ -106087,9 +106715,7 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 1
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 1
- },
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -106230,19 +106856,16 @@
},
/area/station/service/hydroponics)
"yai" = (
-/obj/machinery/computer/scan_consolenew{
- dir = 8
- },
/obj/effect/turf_decal/delivery/hollow,
-/obj/machinery/light_switch{
- pixel_y = 24;
- name = "north bump"
+/obj/machinery/computer/nonfunctional{
+ dir = 8
},
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whitepurple"
},
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"yau" = (
/obj/structure/table/wood/fancy/red,
/turf/simulated/floor/plasteel{
@@ -106400,6 +107023,13 @@
icon_state = "neutralfull"
},
/area/station/hallway/primary/central/north)
+"ydB" = (
+/obj/machinery/alarm/directional/north,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "purple"
+ },
+/area/station/science/storage)
"ydE" = (
/obj/machinery/hologram/holopad,
/turf/simulated/floor/plasteel{
@@ -106675,6 +107305,23 @@
icon_state = "white"
},
/area/station/medical/patients_rooms)
+"ygQ" = (
+/obj/effect/mapping_helpers/airlock/access/all/science/tox_storage,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research/glass{
+ name = "Toxins Storage"
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/station/science/storage)
"ygS" = (
/obj/structure/table,
/obj/machinery/light{
@@ -106688,19 +107335,6 @@
icon_state = "whitepurple"
},
/area/station/science/rnd)
-"ygT" = (
-/obj/effect/spawner/window/reinforced/polarized{
- id = "private"
- },
-/obj/machinery/door/poddoor{
- density = 0;
- icon_state = "open";
- id_tag = "Biohazard_medi";
- name = "Quarantine Lockdown";
- opacity = 0
- },
-/turf/simulated/floor/plating,
-/area/station/medical/patients_rooms)
"yhg" = (
/obj/item/t_scanner/adv_mining_scanner/lesser,
/obj/structure/rack,
@@ -106724,13 +107358,6 @@
icon_state = "darkfull"
},
/area/station/supply/storage)
-"yhn" = (
-/obj/machinery/alarm/directional/east,
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 1
- },
-/turf/simulated/floor/wood,
-/area/station/public/pet_store)
"yhw" = (
/obj/structure/chair/office/dark{
dir = 8
@@ -106782,31 +107409,15 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/central/west)
-"yhU" = (
-/obj/effect/spawner/window/reinforced,
-/obj/machinery/door/poddoor{
- density = 0;
- icon_state = "open";
- id_tag = "Biohazard_medi";
- name = "Quarantine Lockdown";
- opacity = 0
- },
-/turf/simulated/floor/plating,
-/area/station/science/genetics)
"yhW" = (
/turf/simulated/wall,
/area/station/maintenance/fpmaint)
"yie" = (
-/obj/machinery/door/airlock/glass{
- name = "Genetics Research"
- },
-/obj/effect/mapping_helpers/airlock/access/any/medical/genetics,
/obj/structure/cable/orange{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/disposalpipe/segment,
-/obj/machinery/door/firedoor,
/obj/machinery/door/poddoor{
density = 0;
icon_state = "open";
@@ -106815,8 +107426,13 @@
opacity = 0
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/door/airlock/maintenance{
+ name = "Medbay Maintenance"
+ },
+/obj/effect/spawner/random/dirt/often,
+/obj/effect/mapping_helpers/airlock/access/all/medical/general,
/turf/simulated/floor/plasteel/white,
-/area/station/science/genetics)
+/area/station/maintenance/starboard)
"yii" = (
/turf/simulated/mineral/ancient/outer,
/area/station/hallway/primary/central/west)
@@ -115525,12 +116141,12 @@ hUU
hUU
aXn
stw
-tba
+qUT
gbz
gbz
gbz
gbz
-tba
+qUT
stw
sMZ
qIF
@@ -115602,14 +116218,14 @@ rNK
rNK
rNK
rNK
-rNK
-rNK
-cdb
+rWw
+rWw
cdb
cdb
ccW
ccW
ccW
+ccW
rNK
rNK
rNK
@@ -115778,7 +116394,7 @@ rNK
rNK
bhO
hUU
-aXn
+hUU
aXn
aXn
stw
@@ -115856,18 +116472,18 @@ ylg
lzH
rNK
rNK
-rNK
-rNK
-rNK
-rNK
-rNK
+rWw
+rWw
+rWw
+rWw
+ccW
+cdb
+cdb
+cdb
+cdb
cdb
cdb
cdb
-ccW
-ccW
-rNK
-rNK
rNK
rNK
rNK
@@ -116112,19 +116728,19 @@ lzH
ylg
lzH
rWw
-rNK
-rNK
-rNK
-rNK
-rNK
+rWw
+rWw
+ccW
+ccW
+ccW
+ccW
+cdb
cdb
cdb
cdb
cdb
cdb
cdb
-rNK
-rNK
rNK
rNK
rNK
@@ -116369,15 +116985,18 @@ vTR
kTd
vTR
mjo
-rNK
-rNK
-rNK
+ccW
+ccW
+ccW
+ccW
+ccW
+ccW
+ccW
+ccW
cdb
cdb
cdb
ccW
-ccW
-cdb
cdb
cdb
rNK
@@ -116385,9 +117004,6 @@ rNK
rNK
rNK
rNK
-rNK
-rNK
-rNK
vxH
cZN
gAG
@@ -116626,25 +117242,25 @@ fdX
iNa
cqi
mjo
-rNK
-rNK
-cdb
+cxg
+cxg
+cxg
+cxg
+cxg
+cxg
+ccW
+ccW
cdb
cdb
ccW
ccW
ccW
-ccW
cdb
cdb
rNK
rNK
rNK
rNK
-rNK
-rNK
-rNK
-rNK
vxH
lez
fwi
@@ -116882,10 +117498,15 @@ eBL
jSc
wLz
ldL
-mjo
-rWw
-rWw
-rWw
+aDM
+rOZ
+gJq
+otc
+uZq
+sJe
+cxg
+ccW
+cdb
cdb
cdb
ccW
@@ -116893,12 +117514,7 @@ ccW
ccW
cdb
cdb
-ccW
-rNK
-rNK
-rNK
-rNK
-rNK
+cdb
rNK
rNK
rNK
@@ -117140,21 +117756,21 @@ eHZ
qHZ
nTW
mjo
-rWw
+owX
+dqK
+dcD
+qEv
+dXR
+cxg
ccW
-rWw
cdb
cdb
cdb
ccW
-ccW
cdb
cdb
-rNK
-rNK
-rNK
-rNK
-rNK
+cdb
+cdb
rNK
rNK
rNK
@@ -117397,21 +118013,21 @@ jgE
tst
slx
mjo
-rWw
+sQN
+fAf
+rys
+qEv
+dXR
+cxg
ccW
-rWw
cdb
cdb
cdb
-ccW
-ccW
cdb
cdb
cdb
-rNK
-rNK
-rNK
-rNK
+cdb
+cdb
rNK
rNK
rNK
@@ -117654,20 +118270,20 @@ rgy
vLe
eSI
mjo
+qFH
+lFo
+qvK
+vZQ
+iFT
+cxg
ccW
-ccW
-rWw
-rWw
cdb
cdb
-ccW
-ccW
-ccW
cdb
cdb
-rNK
-rNK
-rNK
+cdb
+cdb
+ccW
rNK
rNK
rNK
@@ -117911,10 +118527,12 @@ nIZ
jZN
uCu
uCu
-ccW
-ccW
-ccW
-rWw
+ydB
+nCa
+gbR
+qiq
+hRi
+cxg
cdb
cdb
cdb
@@ -117922,9 +118540,7 @@ cdb
ccW
ccW
ccW
-rNK
-rNK
-rNK
+ccW
rNK
rNK
rNK
@@ -118164,24 +118780,24 @@ hCt
txK
vid
rBV
-qll
-xcs
+gbD
+hDQ
cqn
uCu
-ccW
-ccW
-ccW
-rWw
-cdb
+eMe
+uzh
+tql
+raR
+gtY
+cxg
cdb
cdb
cdb
ccW
ccW
ccW
-rNK
-rNK
-rNK
+ccW
+cdb
rNK
rNK
rNK
@@ -118421,24 +119037,24 @@ wbF
xbh
liC
vwy
-pgO
-xcs
+pTu
+dBX
cqn
uCu
-ccW
-ccW
-ccW
-rWw
-rWw
-rWw
+xHK
+uzh
+tFc
+gXM
+rcQ
+cxg
cdb
cdb
cdb
ccW
ccW
cdb
-rNK
-rNK
+cdb
+cdb
rNK
rNK
rNK
@@ -118679,22 +119295,22 @@ clQ
vid
oJg
stk
-xcs
+hDQ
qVM
uCu
-uCu
-uCu
-uCu
-uCu
-ccW
-rWw
+wxY
+ygQ
+hKn
+hjh
+cxg
+cxg
+cdb
+cdb
cdb
cdb
cdb
cdb
cdb
-rNK
-rNK
rNK
rNK
rNK
@@ -118939,8 +119555,8 @@ dmB
cxM
enx
okt
-sqB
-odu
+hsQ
+xcs
umy
uCu
ccW
@@ -118950,7 +119566,7 @@ cdb
cdb
cdb
cdb
-rNK
+cdb
rNK
rNK
rNK
@@ -119193,7 +119809,7 @@ lws
uCu
pLo
qll
-jdf
+ydE
dIo
dBB
uVh
@@ -119450,10 +120066,10 @@ clR
cmF
saR
dqY
-ydE
+qll
mbN
uaP
-uaP
+jSi
uaP
syZ
uCu
@@ -119705,9 +120321,9 @@ owN
sCy
iSo
wYa
-hsQ
-qll
-qll
+kam
+ujd
+ujd
xYd
mpM
fUZ
@@ -119963,8 +120579,8 @@ pgO
qll
tUh
xjA
-xjA
-xjA
+pgO
+qll
sRN
nxf
nxf
@@ -120221,7 +120837,7 @@ xbQ
wFa
hAn
cFQ
-qll
+oxM
tjx
aqh
wzE
@@ -120715,7 +121331,7 @@ aXn
aXn
aXn
aXn
-ccW
+wIq
azv
bGB
ccW
@@ -120971,8 +121587,8 @@ aXn
aXn
aXn
aXn
-ccW
-ccW
+aXn
+wIq
wsR
rSX
sKh
@@ -121227,9 +121843,9 @@ hUU
hUU
hUU
hUU
-ccW
-ccW
-ccW
+aXn
+wIq
+wIq
wsR
wsR
sKh
@@ -121483,28 +122099,28 @@ rNK
rNK
rNK
rNK
-rWw
-ccW
-ccW
+hUU
+aXn
+wIq
czP
wsR
wsR
-sKh
+bjI
uuf
xFi
-ftr
-ftr
-ftr
-wIq
-wIq
-wIq
-wIq
+cGd
+cGd
+cGd
+cGd
+cGd
+cGd
+cGd
+cGd
+cGd
+cGd
+cGd
vNV
rhw
-wIq
-wIq
-sKh
-sKh
sKo
twp
iBC
@@ -121740,29 +122356,29 @@ rNK
rNK
rNK
rNK
-rWw
-rWw
-ccW
-ccW
-ccW
-ccW
-fmF
-mDv
-bfg
+hUU
+hUU
+wIq
+wIq
+wIq
ftr
-ccW
-ccW
-ccW
-ccW
-cxg
-cxg
-cxg
-cxg
-cxg
-cxg
-cxg
-cxg
-cxg
+ftr
+mDv
+sKo
+cGd
+fFi
+fFi
+jgc
+pqq
+kTR
+iPQ
+bcJ
+fvu
+vOp
+cGd
+cGd
+cGd
+cGd
tHG
ptZ
tHG
@@ -121786,7 +122402,7 @@ sKo
ftr
bbw
qkb
-xxU
+mrh
qDH
dXN
eBJ
@@ -121998,28 +122614,28 @@ rNK
rNK
rNK
rNK
-rWw
-ccW
-ccW
-ccW
-ccW
-vkl
-cRV
-vkl
-ftr
-ccW
-ccW
-ccW
-ccW
-cxg
-cGW
-cjN
-cjN
+hUU
+aXn
+aXn
+naB
+rrI
+diW
+wHE
+rFq
+bWk
+gbJ
+gbJ
+jgc
+jTr
+cmL
+cmL
+cmL
+pQM
nLc
lDh
omL
cFP
-cxg
+bDA
bSv
ahD
bsR
@@ -122043,7 +122659,7 @@ uVg
czI
wqE
oyp
-mrh
+dwy
ira
xhB
xdw
@@ -122255,28 +122871,28 @@ rNK
rNK
rNK
rNK
-rWw
-rWw
-ccW
-ccW
-ccW
-xtM
+hUU
+hUU
+aXn
+naB
+chQ
+diW
tqh
tuK
-ccW
-ccW
-ccW
-ccW
-ccW
-cxg
-jgc
-jTr
-qcW
-hXo
-pQM
-jum
+bWk
+dEg
+gbJ
+oqg
+cmJ
+cmL
+cmL
+cmL
+vJd
+dmm
+dmm
+dzr
jiv
-cxg
+bDA
pqv
xAU
jOi
@@ -122513,25 +123129,25 @@ rNK
rNK
rNK
rNK
-rWw
-ccW
-ccW
-ayp
-rFq
-waT
+hUU
+aXn
vkl
-cvg
-ccW
-ccW
-ccW
-ccW
-cxg
-gLW
-cmJ
-nWm
-hcm
-hwg
-dzr
+vkl
+alH
+wHE
+qZL
+bWk
+qRZ
+kzi
+jgc
+jTr
+cmL
+cmL
+cmL
+hrj
+cmL
+cmL
+jum
ogJ
coy
sjC
@@ -122773,26 +123389,26 @@ rNK
fxg
nOP
yez
-faV
+ayp
qNj
wHE
-bSc
-vkl
-vkl
-vkl
-ccW
-ccW
-cxg
-owX
-fFu
-ojL
-hrj
+aLO
+bWk
+gbJ
+egx
+jgc
+xOm
+jOt
+cGW
+fmq
+oPZ
+cmL
cmL
wEK
vQk
lKN
-pOU
-ssD
+mZk
+der
buE
xnA
gMb
@@ -123033,15 +123649,15 @@ hEC
nop
nNd
xNu
-vkl
-raH
-raH
-vkl
-ccW
-ccW
-hjh
-lWM
-xOm
+xtM
+bWk
+nzo
+nzo
+nzo
+sWu
+tpo
+sWu
+nzo
ffy
fkc
puz
@@ -123291,20 +123907,20 @@ vkl
vkl
tjL
vkl
-xEd
-pCN
vkl
-ccW
-ccW
-cxg
-cxg
-cxg
-cxg
-whS
-cxg
-cxg
-cxg
-cxg
+pCN
+jKe
+kem
+jRs
+alw
+kkn
+nzo
+aFb
+bDA
+bDA
+bDA
+bDA
+bDA
lTB
tBR
sLQ
@@ -123548,12 +124164,12 @@ pEi
qbD
fKX
qDv
-oii
-oii
-vRu
-oop
gwg
-sLK
+gwg
+gwg
+gwg
+gwg
+gwg
aTi
tHG
xRh
@@ -124724,7 +125340,7 @@ cnJ
gmC
xla
bOp
-vIJ
+aWX
nEq
xla
jzO
@@ -124979,7 +125595,7 @@ qxe
lta
dpu
lZU
-sKs
+dWr
vTO
xMz
pmB
@@ -125235,8 +125851,8 @@ mqc
doc
oeK
dpu
-apl
-sKs
+wvl
+dWr
vTO
geV
nvO
@@ -125493,7 +126109,7 @@ daG
iBP
cnL
wrW
-iFG
+cAr
mrp
hgu
cbP
@@ -125716,7 +126332,7 @@ ciF
mDT
acw
ijf
-bqg
+rhO
aes
afY
aQL
@@ -127555,7 +128171,7 @@ txE
knF
kuV
mSn
-tKF
+cOh
bpT
fMx
kqd
@@ -128070,8 +128686,8 @@ fxM
gFP
rnL
xeU
-jvT
-vIJ
+dgU
+aWX
xrp
dPs
tyT
@@ -129094,9 +129710,9 @@ flL
wUX
wHW
tjy
-sKs
+dWr
aAV
-tKF
+cOh
bwv
dgZ
fMx
@@ -129953,7 +130569,7 @@ dgP
dgP
dgP
jyM
-sls
+hhl
nmx
eMb
hUU
@@ -130125,7 +130741,7 @@ wmP
ozL
xla
mUN
-vGW
+ctr
vTt
xla
qLc
@@ -130382,7 +130998,7 @@ rlf
vWX
bVL
rnL
-tKF
+cOh
dgZ
peB
hII
@@ -130637,9 +131253,9 @@ wUX
vFV
iCq
hTP
-iAK
+lvm
pwT
-tKF
+cOh
hZU
fMx
vJL
@@ -138098,10 +138714,10 @@ vTH
sEC
ece
wBC
-xzT
-qrB
-sVU
-bco
+nPU
+pFe
+qPN
+gkA
eNW
dJc
cRv
@@ -138356,11 +138972,11 @@ rHK
dKw
nhG
dJc
-waL
-pmi
-ghZ
-atH
-fse
+xtv
+hGZ
+iBK
+jQT
+sGk
abE
abE
rNK
@@ -138402,7 +139018,7 @@ bxv
byx
bzv
jpU
-gtz
+oCr
bCK
nGm
bFi
@@ -138612,12 +139228,12 @@ hiH
jlm
ugQ
oBw
-jmo
-nXW
-hRc
-nXW
-nxx
-fse
+eeY
+nSI
+jHr
+nSI
+gFs
+sGk
abE
rNK
rNK
@@ -138869,12 +139485,12 @@ qsv
jlm
ugQ
oBw
-jmo
-nXW
-sAJ
-nXW
-nXW
-fse
+rtu
+nSI
+toj
+nSI
+nSI
+sGk
abE
rNK
rNK
@@ -139123,15 +139739,15 @@ chb
vuY
vuY
vuY
-jlm
+oFY
ugQ
oBw
-jmo
-lKF
-ukg
-yhn
-qcC
-fse
+rtu
+aJa
+pEh
+aji
+rHd
+sGk
abE
rNK
rNK
@@ -139380,7 +139996,7 @@ koP
jMO
iwu
iwu
-ttT
+bwc
vQu
oBw
eNW
@@ -139637,16 +140253,16 @@ hgc
obC
gOi
duU
-ttl
+dQW
ugQ
oBw
-npV
-npV
-npV
-npV
-npV
-npV
-npV
+abW
+abW
+abW
+abW
+abW
+abW
+abW
cRv
rNK
rNK
@@ -139894,7 +140510,7 @@ oPo
obC
cof
iJf
-ttl
+dQW
ugQ
uzv
aKp
@@ -140151,7 +140767,7 @@ lrs
obC
mkx
gYx
-duJ
+ltY
lfg
gDa
lNu
@@ -140408,7 +141024,7 @@ dwG
tlx
uau
uau
-fiE
+ePN
grh
nhG
aKp
@@ -141412,7 +142028,7 @@ aEU
aVC
wVh
aCh
-tMM
+dLS
eTm
eYJ
xzb
@@ -142202,11 +142818,11 @@ mWm
sSz
xPy
wfN
-cMz
-npV
-npV
-npV
-npV
+eQg
+bqg
+bqg
+bqg
+bqg
vrW
dTd
dMB
@@ -142459,11 +143075,11 @@ wSb
xBD
cRT
wNf
-cMz
-abW
-abW
-abW
-npV
+eQg
+oIe
+bMm
+sJW
+bqg
rPB
tRn
cjE
@@ -142716,11 +143332,11 @@ biA
vVQ
cRT
qHg
-cMz
-abW
-abW
-abW
-aKp
+eQg
+cdZ
+vGW
+iNX
+bqg
rHS
lHB
daj
@@ -142973,11 +143589,11 @@ hgK
vHG
lak
bIl
-cMz
-abW
-abW
-abW
-npV
+eQg
+gsu
+gZM
+ptU
+bqg
eFt
fEK
gDZ
@@ -143230,11 +143846,11 @@ sqW
dIt
ctm
bIl
-cMz
-abW
-abW
-abW
-npV
+eQg
+slY
+qGr
+wNY
+lmd
cUk
dTI
tze
@@ -143487,11 +144103,11 @@ cMz
mOy
vfU
cMz
-cMz
-abW
-abW
-abW
-npV
+eQg
+fqD
+feB
+jdL
+fOr
ooJ
nTd
tze
@@ -143744,11 +144360,11 @@ ryJ
ghU
fPl
xSb
-pls
-pls
-pls
-pls
-cDp
+bqg
+bqg
+bqg
+bqg
+bqg
tLh
dWE
qyR
@@ -158198,7 +158814,7 @@ ygF
udk
uhF
uhF
-bME
+uhF
uhF
aMC
pkQ
@@ -158452,11 +159068,11 @@ xdJ
xAz
rjp
dlk
-udk
+fqw
uVC
vPs
bLe
-bDA
+fqw
vHH
bAn
yfZ
@@ -158708,12 +159324,12 @@ wPK
xeq
xeq
xeq
-ygT
-udk
+fqw
+fqw
vCS
xhG
kkD
-bDA
+fqw
vHH
wtg
yfZ
@@ -158965,12 +159581,12 @@ wQf
fuD
xDY
naI
-yhU
+fqw
vFy
-mTp
+wyL
ull
fKo
-bDA
+fqw
wyL
xZe
gjb
@@ -159479,9 +160095,9 @@ pDM
dAn
ybb
gjD
-bDA
+fqw
bHy
-xhG
+ull
uYD
sFd
bMN
@@ -159736,12 +160352,12 @@ kre
xhW
bDw
wxv
-bDA
-gEz
-xhG
-xhG
+fqw
+wyL
+wyL
+ull
bLh
-bDA
+fqw
itf
tlJ
pps
@@ -159993,12 +160609,12 @@ biN
biN
nql
biN
-bDA
+fqw
yai
-xhG
-xhG
+ull
+ull
pZK
-bDA
+fqw
itf
xuJ
bvb
@@ -160250,12 +160866,12 @@ bBt
sfZ
dBx
uyn
-bDA
+fqw
eZR
bKf
-bKf
+wyL
bLi
-bDA
+fqw
fqw
tBW
sWr
@@ -160507,12 +161123,12 @@ bkH
bCq
bkH
qhP
-bDA
+fqw
iXy
-iFv
-lFm
+gSQ
bLj
-cFA
+bLj
+xiQ
itf
mqf
bvb
@@ -160764,12 +161380,12 @@ bBv
bCt
uyn
uyn
-bDA
-ptm
-gbJ
-gbJ
-bLk
-cFA
+fqw
+gSQ
+gSQ
+gSQ
+gSQ
+xiQ
abH
tvJ
xjx
@@ -161021,12 +161637,12 @@ bkH
bCt
bkH
giJ
-bDA
-qRZ
-fFi
-bLl
-fFi
-cFA
+fqw
+gSQ
+rtW
+gSQ
+gSQ
+xiQ
itf
mqf
bPZ
@@ -161278,12 +161894,12 @@ bkH
bCt
bLc
bkH
-bDA
-bDA
-bDA
-bDA
-cFA
-cFA
+fqw
+fqw
+fqw
+fqw
+xiQ
+xiQ
cQy
tvJ
trc
diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm
index 19e2fe2d79ce..8565f0c9fa44 100644
--- a/_maps/map_files/stations/deltastation.dmm
+++ b/_maps/map_files/stations/deltastation.dmm
@@ -1998,7 +1998,7 @@
/area/station/maintenance/fore2)
"aoe" = (
/obj/structure/table,
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/machinery/newscaster/directional/east,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel{
@@ -2159,7 +2159,7 @@
/area/station/maintenance/fore)
"aoS" = (
/obj/structure/table,
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/item/wrench,
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
@@ -20555,6 +20555,26 @@
icon_state = "red"
},
/area/station/security/storage)
+"bug" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/disposalpipe/junction/reversed{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
+/turf/simulated/floor/plasteel{
+ icon_state = "bluecorner"
+ },
+/area/station/hallway/primary/central/south)
"buh" = (
/obj/machinery/door/airlock/security/glass,
/obj/machinery/door/firedoor,
@@ -24782,26 +24802,6 @@
icon_state = "neutralfull"
},
/area/station/engineering/break_room)
-"bGG" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 8
- },
-/obj/structure/disposalpipe/junction/reversed{
- dir = 2
- },
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
- },
-/area/station/engineering/break_room)
"bGH" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -36373,12 +36373,12 @@
},
/area/station/hallway/primary/central)
"csV" = (
-/obj/structure/closet/secure_closet/explorer,
-/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "browncorner"
+/obj/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
},
-/area/station/supply/expedition)
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"csW" = (
/turf/simulated/floor/plasteel{
dir = 1;
@@ -36711,11 +36711,10 @@
},
/area/station/hallway/primary/central)
"cuk" = (
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "browncorner"
- },
-/area/station/supply/expedition)
+/obj/machinery/alarm/directional/west,
+/obj/item/flag/nt,
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"cul" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -36725,6 +36724,7 @@
},
/obj/machinery/power/apc/directional/north,
/obj/effect/landmark/start/explorer,
+/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "brown"
@@ -36845,6 +36845,28 @@
icon_state = "neutralfull"
},
/area/station/public/locker)
+"cuB" = (
+/obj/machinery/hologram/holopad,
+/obj/machinery/door/window/classic/normal{
+ name = "Glass Door"
+ },
+/obj/structure/chair/comfy/brown,
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/obj/machinery/door_control{
+ id = "nct";
+ name = "Office Door";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ req_access = list(80);
+ pixel_y = -1
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"cuC" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/plasteel{
@@ -37276,17 +37298,14 @@
},
/area/station/hallway/primary/central)
"cvJ" = (
-/obj/structure/extinguisher_cabinet{
- name = "east bump";
- pixel_x = 30
- },
-/obj/machinery/suit_storage_unit/expedition,
+/obj/structure/dispenser/oxygen,
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "brown"
},
/area/station/supply/expedition)
"cvK" = (
+/obj/structure/closet/secure_closet/explorer,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "brown"
@@ -37301,9 +37320,12 @@
/obj/machinery/status_display{
pixel_y = 32
},
-/obj/machinery/mineral/equipment_vendor/explorer,
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
+/obj/structure/filingcabinet,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"cvT" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -37343,14 +37365,6 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/starboard/south)
-"cvY" = (
-/obj/effect/spawner/random/dirt/often,
-/obj/machinery/suit_storage_unit/expedition,
-/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "browncorner"
- },
-/area/station/supply/expedition)
"cvZ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -37739,28 +37753,27 @@
icon_state = "neutralfull"
},
/area/station/supply/expedition)
-"cxh" = (
-/obj/effect/spawner/random/dirt/often,
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
"cxk" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
+/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plasteel{
icon_state = "browncorner"
},
/area/station/supply/expedition)
"cxl" = (
-/obj/machinery/recharge_station,
+/obj/machinery/power/apc/directional/north,
+/obj/item/kirbyplants,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable{
+ d2 = 2;
+ icon_state = "0-2"
+ },
/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "browncorner"
+ dir = 9;
+ icon_state = "darkgreen"
},
-/area/station/supply/expedition)
+/area/station/procedure/trainer_office)
"cxm" = (
/obj/machinery/camera{
c_tag = "Central Ring Hallway East";
@@ -38146,24 +38159,13 @@
icon_state = "darkblue"
},
/area/station/ai_monitored/storage/eva)
-"cyr" = (
-/obj/machinery/camera{
- c_tag = "Expedition Access";
- dir = 4
- },
-/obj/machinery/computer/security/telescreen/entertainment{
- pixel_x = -32
- },
-/obj/effect/spawner/random/dirt/often,
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
"cys" = (
/obj/machinery/hologram/holopad,
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
},
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
@@ -38185,14 +38187,21 @@
/turf/simulated/wall,
/area/station/supply/expedition)
"cyw" = (
-/obj/machinery/light{
- dir = 8
+/obj/structure/window/reinforced,
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_y = 4;
+ pixel_x = -5
+ },
+/obj/item/pen{
+ pixel_x = 8;
+ pixel_y = 8
},
/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "browncorner"
+ dir = 10;
+ icon_state = "darkgreen"
},
-/area/station/supply/expedition)
+/area/station/procedure/trainer_office)
"cyx" = (
/obj/structure/chair{
dir = 4
@@ -38202,15 +38211,26 @@
/area/station/supply/expedition)
"cyy" = (
/obj/machinery/camera{
- c_tag = "Expedition";
+ c_tag = "Career Trainer's Office";
dir = 8
},
-/obj/structure/closet/secure_closet/explorer,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer,
+/obj/machinery/door/window/reinforced/normal{
+ name = "NCT"
+ },
/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "brown"
+ dir = 6;
+ icon_state = "darkgreen"
},
-/area/station/supply/expedition)
+/area/station/procedure/trainer_office)
"cyz" = (
/obj/item/radio/intercom{
name = "west bump";
@@ -38276,15 +38296,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/public/toilet/lockerroom)
-"cyI" = (
-/obj/item/radio/intercom{
- name = "east bump";
- pixel_x = 28
- },
-/obj/effect/spawner/random/dirt/often,
-/obj/machinery/suit_storage_unit/expedition,
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
"cyJ" = (
/obj/structure/urinal{
pixel_y = 28
@@ -38747,19 +38758,9 @@
/turf/simulated/floor/plasteel,
/area/station/public/toilet/lockerroom)
"czV" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/structure/chair/stool/bar,
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
- },
-/area/station/supply/expedition)
-"czW" = (
/obj/effect/spawner/random/dirt/often,
-/obj/machinery/requests_console/directional/west,
/turf/simulated/floor/plasteel{
- dir = 8;
- icon_state = "browncorner"
+ icon_state = "neutralfull"
},
/area/station/supply/expedition)
"czY" = (
@@ -38769,9 +38770,9 @@
},
/area/station/hallway/primary/central/south)
"cAb" = (
-/obj/machinery/atmospherics/unary/vent_pump/on,
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
+/obj/structure/table/wood,
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"cAc" = (
/turf/simulated/floor/plasteel/freezer,
/area/station/public/toilet/lockerroom)
@@ -39241,54 +39242,41 @@
},
/turf/simulated/floor/carpet,
/area/station/science/robotics/showroom)
-"cBv" = (
-/obj/structure/table/reinforced,
-/obj/item/pizzabox/firecracker,
-/obj/effect/spawner/random/dirt/often,
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
"cBw" = (
/obj/machinery/firealarm/directional/west,
+/obj/structure/chair/stool/bar,
/obj/effect/landmark/start/explorer,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "brown"
},
/area/station/supply/expedition)
-"cBy" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 5
- },
-/obj/structure/chair/stool/bar,
-/obj/effect/landmark/start/explorer,
-/obj/effect/spawner/random/dirt/often,
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
"cBC" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+/obj/machinery/firealarm/directional/west,
+/obj/structure/chair/comfy/black{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "browncorner"
- },
-/area/station/supply/expedition)
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"cBD" = (
-/obj/machinery/hologram/holopad,
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 9
+ dir = 6
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"cBE" = (
/turf/simulated/floor/plating,
/area/station/public/toilet/lockerroom)
@@ -39653,6 +39641,8 @@
/turf/simulated/floor/carpet,
/area/station/science/robotics/showroom)
"cCV" = (
+/obj/structure/table/reinforced,
+/obj/item/pizzabox/firecracker,
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "brown"
@@ -39664,18 +39654,20 @@
name = "south bump";
pixel_y = -24
},
-/obj/structure/table/reinforced,
+/obj/structure/chair/stool/bar,
+/obj/effect/landmark/start/explorer,
+/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plasteel{
icon_state = "brown"
},
/area/station/supply/expedition)
"cCX" = (
-/obj/machinery/economy/vending/exploredrobe,
-/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "browncorner"
+/obj/item/kirbyplants,
+/obj/machinery/light{
+ dir = 8
},
-/area/station/supply/expedition)
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"cCY" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -39698,11 +39690,18 @@
/turf/simulated/floor/plasteel,
/area/station/supply/expedition)
"cDc" = (
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 1
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
},
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/disposalpipe/segment/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"cDd" = (
/obj/effect/landmark/lightsout,
/turf/simulated/floor/plasteel{
@@ -39714,12 +39713,16 @@
/turf/simulated/wall,
/area/station/public/toilet/lockerroom)
"cDf" = (
-/obj/structure/closet/secure_closet/explorer,
-/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "brown"
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
},
-/area/station/supply/expedition)
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9
+ },
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"cDg" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -45811,7 +45814,7 @@
/area/station/maintenance/starboard)
"cZc" = (
/obj/structure/rack,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/plasteel{
dir = 8;
@@ -50477,8 +50480,9 @@
/turf/simulated/floor/plating,
/area/station/science/genetics)
"dte" = (
-/obj/item/kirbyplants,
/obj/machinery/alarm/directional/south,
+/obj/machinery/mineral/equipment_vendor/explorer,
+/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plasteel{
icon_state = "brown"
},
@@ -56110,7 +56114,7 @@
/obj/item/reagent_containers/iv_bag/blood/random,
/obj/item/reagent_containers/syringe/epinephrine,
/obj/item/reagent_containers/syringe,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/machinery/status_display{
pixel_y = -32
},
@@ -56673,6 +56677,17 @@
icon_state = "yellow"
},
/area/station/engineering/transmission_laser)
+"eeT" = (
+/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/procedure/trainer_office)
"eeX" = (
/obj/structure/closet,
/obj/effect/spawner/random/maintenance,
@@ -57233,6 +57248,28 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
+"etC" = (
+/obj/structure/safe/floor{
+ known_by = list("captain")
+ },
+/obj/item/toy/russian_revolver,
+/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
+/obj/item/lighter/zippo/nt_rep,
+/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
+/obj/item/toy/figure/crew/captain,
+/obj/effect/mapping_helpers/airlock/windoor/access/any/security/doors{
+ dir = 8
+ },
+/obj/machinery/door/window{
+ dir = 8
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/command/office/captain/bedroom)
"etR" = (
/obj/structure/extinguisher_cabinet{
name = "east bump";
@@ -58283,12 +58320,12 @@
/turf/simulated/floor/carpet/red,
/area/station/command/office/hos)
"eXJ" = (
-/obj/structure/dispenser/oxygen,
-/obj/effect/turf_decal/delivery/hollow,
+/obj/machinery/economy/vending/traindrobe,
/turf/simulated/floor/plasteel{
- icon_state = "browncorner"
+ dir = 5;
+ icon_state = "darkgreen"
},
-/area/station/supply/expedition)
+/area/station/procedure/trainer_office)
"eXP" = (
/obj/structure/closet/l3closet/security,
/obj/machinery/firealarm/directional/east,
@@ -59130,15 +59167,6 @@
icon_state = "redyellowfull"
},
/area/station/medical/break_room)
-"fys" = (
-/obj/structure/table/reinforced,
-/obj/item/reagent_containers/drinks/bottle/beer,
-/obj/item/reagent_containers/drinks/bottle/beer,
-/obj/item/reagent_containers/drinks/bottle/beer,
-/obj/item/reagent_containers/drinks/bottle/beer,
-/obj/effect/spawner/random/dirt/often,
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
"fzd" = (
/obj/machinery/access_button{
autolink_id = "virolab_btn_int";
@@ -59342,6 +59370,19 @@
icon_state = "dark"
},
/area/station/security/armory/secure)
+"fFu" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/plasteel{
+ icon_state = "neutralfull"
+ },
+/area/station/hallway/primary/central/south)
"fFy" = (
/obj/machinery/camera{
dir = 6;
@@ -60191,6 +60232,14 @@
icon_state = "red"
},
/area/station/security/storage)
+"fZa" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/drinks/bottle/beer,
+/obj/item/reagent_containers/drinks/bottle/beer,
+/obj/item/reagent_containers/drinks/bottle/beer,
+/obj/item/reagent_containers/drinks/bottle/beer,
+/turf/simulated/floor/plasteel,
+/area/station/supply/expedition)
"fZc" = (
/obj/machinery/light{
dir = 1
@@ -60305,9 +60354,7 @@
/turf/simulated/floor/plating,
/area/station/engineering/controlroom)
"gdm" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/structure/railing,
/turf/simulated/floor/engine,
/area/station/science/testrange)
@@ -64633,20 +64680,6 @@
/obj/effect/mapping_helpers/turfs/damage,
/turf/simulated/floor/wood,
/area/station/maintenance/abandonedbar)
-"iFr" = (
-/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/all/supply/expedition,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/door/airlock/mining{
- name = "Expedition Headquarters"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
"iFv" = (
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 4
@@ -67492,6 +67525,10 @@
},
/turf/simulated/floor/plasteel,
/area/station/science/testrange)
+"kol" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/plasteel,
+/area/station/maintenance/port)
"kot" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
@@ -67716,6 +67753,36 @@
icon_state = "dark"
},
/area/station/security/execution)
+"kwm" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Trainer's Office";
+ id_tag = "nct"
+ },
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"kxj" = (
/obj/structure/mirror{
pixel_y = 28
@@ -68556,6 +68623,20 @@
},
/turf/simulated/floor/carpet/black,
/area/station/service/chapel)
+"kWp" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "neutralcorner"
+ },
+/area/station/hallway/primary/central/south)
"kWF" = (
/obj/machinery/light,
/turf/simulated/floor/engine,
@@ -69554,13 +69635,13 @@
/area/station/science/research)
"lwY" = (
/obj/structure/table/glass,
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 3
},
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/reagent_containers/spray/cleaner,
/obj/structure/sign/poster/official/random{
pixel_x = 32
@@ -70666,12 +70747,14 @@
name = "east bump";
pixel_x = 28
},
-/obj/structure/closet/secure_closet/explorer,
-/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "brown"
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
},
-/area/station/supply/expedition)
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/wood,
+/area/station/procedure/trainer_office)
"miQ" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -71905,6 +71988,14 @@
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
/area/station/command/bridge)
+"mSW" = (
+/obj/machinery/requests_console/directional/west,
+/obj/structure/closet/secure_closet/explorer,
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "browncorner"
+ },
+/area/station/supply/expedition)
"mTd" = (
/obj/machinery/door/poddoor/preopen{
id_tag = "xeno5";
@@ -72088,6 +72179,11 @@
icon_state = "dark"
},
/area/station/security/warden)
+"mWq" = (
+/obj/machinery/economy/vending/exploredrobe,
+/obj/effect/spawner/random/dirt/often,
+/turf/simulated/floor/plasteel,
+/area/station/supply/expedition)
"mWz" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -72954,13 +73050,6 @@
/obj/structure/sink/puddle,
/turf/simulated/floor/grass,
/area/station/medical/medbay)
-"nsD" = (
-/obj/structure/chair/stool/bar,
-/obj/effect/spawner/random/dirt/often,
-/turf/simulated/floor/plasteel{
- icon_state = "brown"
- },
-/area/station/supply/expedition)
"ntt" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
@@ -73959,26 +74048,6 @@
},
/turf/simulated/floor/plasteel/dark,
/area/station/engineering/gravitygenerator)
-"nYv" = (
-/obj/machinery/door/window{
- dir = 8
- },
-/obj/effect/mapping_helpers/airlock/windoor/access/any/security/doors{
- dir = 8
- },
-/obj/structure/safe/floor{
- known_by = list("captain")
- },
-/obj/item/gun/projectile/revolver/russian,
-/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
-/obj/item/lighter/zippo/nt_rep,
-/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
-/obj/item/toy/figure/crew/captain,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor/carpet/black,
-/area/station/command/office/captain/bedroom)
"nYw" = (
/turf/simulated/floor/plasteel,
/area/station/maintenance/fore)
@@ -75174,6 +75243,16 @@
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
/area/station/hallway/primary/central)
+"oHi" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/explorer,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "browncorner"
+ },
+/area/station/supply/expedition)
"oHk" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/window,
@@ -75993,9 +76072,9 @@
dir = 8
},
/obj/machinery/camera{
- c_tag = "Research Lobby";
+ c_tag = "Power Transmission Laser";
dir = 1;
- network = list("Research","SS13")
+ network = list("Engineering","SS13")
},
/turf/simulated/floor/plasteel{
icon_state = "caution"
@@ -76122,6 +76201,16 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/fore/north)
+"pec" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"peB" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/yellow{
@@ -76250,6 +76339,11 @@
icon_state = "yellow"
},
/area/station/engineering/transmission_laser)
+"piL" = (
+/obj/machinery/suit_storage_unit/expedition,
+/obj/effect/spawner/random/dirt/often,
+/turf/simulated/floor/plasteel,
+/area/station/supply/expedition)
"pjk" = (
/turf/simulated/floor/engine,
/area/station/science/test_chamber)
@@ -76664,10 +76758,6 @@
},
/turf/simulated/floor/plating,
/area/station/security/armory/secure)
-"pvo" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/maintenance/port)
"pvv" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/reinforced/normal,
@@ -77031,9 +77121,9 @@
"pFX" = (
/obj/structure/rack,
/obj/item/storage/belt/utility,
-/obj/random/tool,
-/obj/random/tool,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
+/obj/effect/spawner/random/engineering/tools,
+/obj/effect/spawner/random/engineering/tools,
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
@@ -77232,15 +77322,6 @@
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel,
/area/station/supply/miningdock)
-"pLm" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/turf/simulated/floor/plasteel,
-/area/station/supply/expedition)
"pLq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
@@ -80865,6 +80946,10 @@
/obj/machinery/alarm/directional/south,
/turf/simulated/floor/carpet/black,
/area/station/security/detective)
+"rIu" = (
+/obj/effect/landmark/start/explorer,
+/turf/simulated/floor/plasteel,
+/area/station/supply/expedition)
"rIE" = (
/obj/structure/table/wood,
/obj/item/storage/bible,
@@ -81092,6 +81177,18 @@
icon_state = "whiteyellowcorner"
},
/area/station/medical/medbay)
+"rPd" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/closet,
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"rPH" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -83871,6 +83968,13 @@
/obj/structure/morgue,
/turf/simulated/floor/plasteel/dark,
/area/station/medical/morgue)
+"ten" = (
+/obj/machinery/suit_storage_unit/expedition,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "browncorner"
+ },
+/area/station/supply/expedition)
"tep" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -84069,6 +84173,18 @@
icon_state = "darkbluecorners"
},
/area/station/medical/morgue)
+"tlb" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = -32
+ },
+/obj/structure/closet/secure_closet/explorer,
+/obj/machinery/camera{
+ c_tag = "Expedition Access";
+ dir = 4
+ },
+/obj/effect/spawner/random/dirt/often,
+/turf/simulated/floor/plasteel,
+/area/station/supply/expedition)
"tls" = (
/obj/effect/turf_decal/delivery/hollow,
/obj/effect/mapping_helpers/airlock/access/all/engineering/construction,
@@ -86449,7 +86565,7 @@
"uud" = (
/obj/structure/rack,
/obj/effect/spawner/random/maintenance,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"uuh" = (
@@ -86953,6 +87069,31 @@
},
/turf/simulated/floor/engine/n20,
/area/station/engineering/atmos)
+"uJP" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 8
+ },
+/obj/structure/disposalpipe/junction/reversed{
+ dir = 2
+ },
+/obj/machinery/autolathe,
+/turf/simulated/floor/plasteel{
+ icon_state = "neutralfull"
+ },
+/area/station/engineering/break_room)
"uJQ" = (
/obj/structure/table,
/obj/machinery/photocopier/faxmachine{
@@ -89304,6 +89445,12 @@
icon_state = "whiteblue"
},
/area/station/medical/reception)
+"vZf" = (
+/obj/machinery/recharge_station,
+/turf/simulated/floor/plasteel{
+ icon_state = "brown"
+ },
+/area/station/supply/expedition)
"vZx" = (
/obj/effect/turf_decal/delivery/hollow,
/obj/structure/closet/walllocker/emerglocker/east,
@@ -89372,7 +89519,7 @@
/area/station/hallway/primary/central)
"waJ" = (
/obj/structure/table/glass,
-/obj/random/plushie,
+/obj/effect/spawner/random/plushies,
/obj/machinery/light{
dir = 1
},
@@ -90221,6 +90368,9 @@
icon_state = "neutralfull"
},
/area/station/hallway/secondary/entry/east)
+"wwx" = (
+/turf/simulated/wall,
+/area/station/procedure/trainer_office)
"wwK" = (
/obj/machinery/hologram/holopad,
/obj/structure/cable{
@@ -90820,6 +90970,16 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/area/station/science/storage)
+"wOM" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"wOW" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -90990,11 +91150,28 @@
/turf/simulated/floor/plasteel/dark,
/area/station/engineering/controlroom)
"wUm" = (
+/obj/machinery/button/windowtint{
+ id = "NCT";
+ pixel_x = 24;
+ dir = 8;
+ pixel_y = 5
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ name = "east bump";
+ pixel_x = 24;
+ pixel_y = -5
+ },
/turf/simulated/floor/plasteel{
dir = 4;
- icon_state = "brown"
+ icon_state = "darkgreen"
},
-/area/station/supply/expedition)
+/area/station/procedure/trainer_office)
"wUq" = (
/obj/machinery/economy/vending/hydronutrients,
/obj/effect/turf_decal/delivery/hollow,
@@ -91814,6 +91991,15 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel/white,
/area/station/science/lobby)
+"xpZ" = (
+/obj/item/radio/intercom{
+ name = "east bump";
+ pixel_x = 28
+ },
+/obj/machinery/suit_storage_unit/expedition,
+/obj/effect/spawner/random/dirt/often,
+/turf/simulated/floor/plasteel,
+/area/station/supply/expedition)
"xql" = (
/obj/machinery/light{
dir = 8
@@ -119976,7 +120162,7 @@ bzV
bBH
bDx
bEZ
-bGG
+uJP
bIC
nhh
bMt
@@ -127466,7 +127652,7 @@ tik
xjh
mQi
rLQ
-pvo
+kol
drn
dhG
fBk
@@ -134907,9 +135093,9 @@ bIX
cyv
cxe
cvK
-cyw
-cyr
-czW
+oHi
+tlb
+mSW
cBw
cCV
cyv
@@ -135166,8 +135352,8 @@ cul
cDa
cDa
cyt
-fys
-cBv
+fZa
+cDa
cCW
cyv
cEZ
@@ -135424,8 +135610,8 @@ cvM
cxf
cys
czV
-cBy
-nsD
+rIu
+vZf
cyv
csW
qZt
@@ -135678,10 +135864,10 @@ bIX
cyv
cuX
cyx
-cxh
+cDa
cyu
cDa
-pLm
+cDa
dte
cyv
csW
@@ -135934,12 +136120,12 @@ sHD
crO
cyv
cvJ
-cvY
+ten
+piL
+xpZ
cxJ
-cyI
-cDa
cxk
-cDa
+mWq
cyv
rfw
ckv
@@ -136190,14 +136376,14 @@ coG
wat
bIX
cyv
-cyv
-oVl
-oVl
-cyv
-oVl
-iFr
-oVl
-cyv
+wwx
+wwx
+wwx
+wwx
+wwx
+wwx
+wwx
+wwx
jdr
dLT
njU
@@ -136435,7 +136621,7 @@ bYD
bYD
bYD
car
-nYv
+etC
cdY
bYD
chy
@@ -136447,14 +136633,14 @@ cht
sqO
bIX
uaS
-cyv
+wwx
cxl
-cuk
+rPd
cyw
cuk
cBC
cCX
-cyv
+wOM
csW
ckv
jfG
@@ -136704,17 +136890,17 @@ xmE
ygv
bIX
rVL
-cyv
+wwx
cvQ
-cDa
-cDa
+eeT
+cuB
cAb
cBD
cDc
-cyv
-csW
-ckv
-cHN
+kwm
+kWp
+fFu
+bug
ppu
cKW
nQF
@@ -136961,14 +137147,14 @@ cht
ygv
bIX
nSv
-cyv
+wwx
eXJ
wUm
cyy
mhU
cDf
csV
-cyv
+pec
csW
ckv
cHN
@@ -137217,15 +137403,15 @@ cht
cht
vAP
bSz
-cyv
-cyv
-cyv
-cyv
-cyv
-cyv
-cyv
-cyv
-cyv
+bsv
+wwx
+wwx
+wwx
+wwx
+wwx
+wwx
+wwx
+wwx
lXi
tIa
njo
diff --git a/_maps/map_files/stations/emeraldstation.dmm b/_maps/map_files/stations/emeraldstation.dmm
index 6a891b00c8cd..78097402b526 100644
--- a/_maps/map_files/stations/emeraldstation.dmm
+++ b/_maps/map_files/stations/emeraldstation.dmm
@@ -7298,7 +7298,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/item/solar_assembly,
+/obj/machinery/power/tracker,
/turf/space,
/area/station/engineering/solar/fore_port)
"bwP" = (
@@ -9633,6 +9633,16 @@
icon_state = "redyellowfull"
},
/area/station/maintenance/apmaint)
+"bSp" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"bSq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -10970,6 +10980,12 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/wood,
/area/station/maintenance/abandoned_office)
+"cfS" = (
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"cfV" = (
/obj/item/food/grown/harebell,
/turf/simulated/floor/grass,
@@ -11034,16 +11050,20 @@
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"cgE" = (
-/obj/structure/table,
-/obj/item/paper_bin/nanotrasen{
- pixel_y = -2
- },
/obj/machinery/camera{
c_tag = "Paper Supplies";
dir = 8
},
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
+/obj/machinery/power/apc/important/directional/east,
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/woodsiding{
+ dir = 4
+ },
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"cgK" = (
/obj/structure/rack{
dir = 1
@@ -11125,19 +11145,6 @@
icon_state = "darkgrey"
},
/area/station/security/permabrig)
-"chI" = (
-/obj/structure/table,
-/obj/item/stack/package_wrap,
-/obj/item/hand_labeler{
- pixel_y = 3;
- pixel_x = 2
- },
-/obj/item/hand_labeler,
-/obj/machinery/light{
- dir = 1
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
"chK" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -13542,6 +13549,20 @@
"cHG" = (
/turf/simulated/wall,
/area/station/medical/patients_rooms_secondary)
+"cHH" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/solar{
+ name = "Fore-Port Solar Array"
+ },
+/obj/machinery/power/solar{
+ name = "Fore-Port Solar Array"
+ },
+/turf/simulated/floor/plasteel/airless{
+ icon_state = "solarpanel"
+ },
+/area/station/engineering/solar/fore_port)
"cHI" = (
/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
@@ -17683,6 +17704,13 @@
icon_state = "cult"
},
/area/station/service/chapel/office)
+"dzM" = (
+/obj/structure/filingcabinet,
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"dzR" = (
/turf/simulated/floor/plasteel{
dir = 4;
@@ -19137,6 +19165,9 @@
/obj/structure/cable{
icon_state = "0-4"
},
+/obj/machinery/power/solar{
+ name = "Fore-Port Solar Array"
+ },
/turf/simulated/floor/plasteel/airless{
icon_state = "solarpanel"
},
@@ -19151,18 +19182,24 @@
},
/area/station/science/lobby)
"dOH" = (
-/obj/structure/rack,
-/obj/item/folder/red{
- pixel_x = 8;
- pixel_y = 6
+/obj/structure/table/wood,
+/obj/effect/turf_decal/woodsiding{
+ dir = 10
},
-/obj/item/folder/blue{
- pixel_x = 4;
- pixel_y = 3
+/obj/item/flashlight/lamp/green{
+ pixel_y = 8;
+ pixel_x = 5
},
-/obj/item/folder,
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
+/obj/machinery/door_control{
+ id = "nct";
+ name = "Office Door";
+ normaldoorcontrol = 1;
+ req_access = list(80);
+ pixel_y = -2;
+ pixel_x = -7
+ },
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"dOQ" = (
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 4
@@ -19822,40 +19859,6 @@
},
/area/station/medical/break_room)
"dXx" = (
-/obj/structure/closet/crate,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/tracker_electronics,
-/obj/item/stack/cable_coil{
- pixel_x = 3;
- pixel_y = -4
- },
-/obj/item/stack/sheet/glass{
- amount = 50;
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/stack/sheet/glass{
- amount = 50
- },
/turf/simulated/floor/plating,
/area/station/maintenance/solar_maintenance/fore_port)
"dXC" = (
@@ -22489,6 +22492,19 @@
icon_state = "caution"
},
/area/station/engineering/break_room)
+"ezi" = (
+/obj/structure/table/glass,
+/obj/item/clothing/neck/stethoscope{
+ pixel_y = 6
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/simulated/floor/plasteel{
+ icon_state = "whitebluefull"
+ },
+/area/station/medical/sleeper)
"ezp" = (
/obj/structure/disposalpipe/segment/corner{
dir = 1
@@ -23263,9 +23279,9 @@
"eHd" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/camera{
- c_tag = "AI Satellite Exterior West";
dir = 8;
- network = list("SS13","MiniSat")
+ network = list("Engineering","SS13");
+ c_tag = "Power Transmission Laser"
},
/obj/machinery/power/apc/directional/east,
/obj/structure/cable{
@@ -26680,17 +26696,6 @@
icon_state = "darkred"
},
/area/station/security/brig)
-"fop" = (
-/obj/structure/rack,
-/obj/item/clothing/suit/corgisuit,
-/obj/item/clothing/head/corgi{
- pixel_y = 7
- },
-/obj/structure/sign/poster/official/love_ian{
- pixel_y = -32
- },
-/turf/simulated/floor/plating,
-/area/station/maintenance/fpmaint)
"fot" = (
/obj/machinery/light/small,
/turf/simulated/floor/plating,
@@ -27522,7 +27527,7 @@
dir = 1;
icon_state = "yellowcorner"
},
-/area/station/hallway/primary/central/nw)
+/area/station/hallway/primary/central/sw)
"fvK" = (
/obj/machinery/atmospherics/pipe/manifold/visible/yellow,
/turf/simulated/floor/plasteel,
@@ -30327,6 +30332,23 @@
icon_state = "freezerfloor"
},
/area/station/security/brig)
+"fZt" = (
+/obj/machinery/button/windowtint{
+ id = "NCT";
+ pixel_y = 24;
+ pixel_x = 5
+ },
+/obj/machinery/light_switch{
+ pixel_y = 24;
+ name = "north bump";
+ pixel_x = -5
+ },
+/obj/structure/closet,
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"fZK" = (
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
@@ -31387,12 +31409,12 @@
/turf/simulated/floor/plating,
/area/station/maintenance/security/fore)
"gjA" = (
-/obj/machinery/power/solar{
- name = "Starboard Solar Array"
- },
/obj/structure/cable{
icon_state = "0-8"
},
+/obj/machinery/power/solar{
+ name = "Aft-Starboard Solar Array"
+ },
/turf/simulated/floor/plasteel/airless{
icon_state = "solarpanel"
},
@@ -31418,7 +31440,7 @@
/area/station/service/hydroponics)
"gkj" = (
/obj/machinery/power/solar{
- name = "Starboard Solar Array"
+ name = "Fore-Starboard Solar Array"
},
/obj/structure/cable{
icon_state = "0-2"
@@ -32270,6 +32292,10 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/area/station/public/storage/office)
+"gsr" = (
+/obj/item/flag/ian,
+/turf/simulated/floor/wood,
+/area/station/maintenance/fpmaint)
"gsu" = (
/obj/structure/closet/secure_closet/freezer/fridge/open,
/obj/item/organ/internal/liver/nian,
@@ -33752,20 +33778,6 @@
icon_state = "whiteblue"
},
/area/station/medical/surgery/primary)
-"gHY" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
-/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,
-/obj/structure/disposalpipe/junction{
- dir = 4
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
"gId" = (
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
@@ -35282,15 +35294,6 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
-"gYN" = (
-/obj/item/solar_assembly,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/simulated/floor/plasteel/airless{
- icon_state = "solarpanel"
- },
-/area/station/engineering/solar/fore_port)
"gYO" = (
/obj/structure/chair{
dir = 4
@@ -35787,15 +35790,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
-"hde" = (
-/obj/item/kitchen/sushimat{
- name = "Prayer Mat"
- },
-/obj/item/clothing/suit/ianshirt{
- desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it but it's pretty close. Good for sleeping in. This one in particular looks like it wasnt washed in months"
- },
-/turf/simulated/floor/wood,
-/area/station/maintenance/fpmaint)
"hdi" = (
/obj/structure/sign/poster/official/random{
pixel_x = -32
@@ -36966,6 +36960,14 @@
"hoM" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment/corner{
+ dir = 1
+ },
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "blue"
@@ -37354,7 +37356,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/central/nw)
+/area/station/hallway/primary/central/sw)
"hsN" = (
/obj/structure/chair{
dir = 4
@@ -37503,8 +37505,8 @@
layer = 2.9
},
/obj/structure/rack,
-/obj/item/clothing/accessory/stripedbluescarf,
-/obj/item/clothing/accessory/blue,
+/obj/item/clothing/neck/scarf/stripedblue,
+/obj/item/clothing/neck/tie/blue,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"huB" = (
@@ -37891,6 +37893,14 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
+"hxK" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/corgisuit,
+/obj/item/clothing/head/corgi{
+ pixel_y = 7
+ },
+/turf/simulated/floor/wood,
+/area/station/maintenance/fpmaint)
"hxL" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -37945,8 +37955,8 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"hye" = (
/obj/item/clothing/under/misc/swimsuit/blue,
/turf/simulated/floor/beach/away/sand,
@@ -39427,10 +39437,10 @@
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint2)
"hMY" = (
+/obj/structure/cable,
/obj/machinery/power/solar{
- name = "Starboard Solar Array"
+ name = "Aft-Starboard Solar Array"
},
-/obj/structure/cable,
/turf/simulated/floor/plasteel/airless{
icon_state = "solarpanel"
},
@@ -39878,7 +39888,7 @@
/area/station/maintenance/incinerator)
"hTk" = (
/obj/structure/table,
-/obj/random/plushie,
+/obj/effect/spawner/random/plushies,
/obj/machinery/light{
dir = 4
},
@@ -39923,10 +39933,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/area/station/maintenance/fsmaint2)
-"hTO" = (
-/obj/item/flag/ian,
-/turf/simulated/floor/plating,
-/area/station/maintenance/fpmaint)
"hUe" = (
/obj/effect/spawner/random/blood/maybe,
/obj/structure/cable{
@@ -41747,6 +41753,15 @@
/obj/machinery/atmospherics/portable/canister/air,
/turf/simulated/floor/plating,
/area/station/maintenance/security/fore)
+"imy" = (
+/obj/structure/disposalpipe/segment/corner{
+ dir = 2
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "blue"
+ },
+/area/station/hallway/primary/fore/north)
"imB" = (
/obj/item/kirbyplants,
/turf/simulated/floor/plasteel,
@@ -43125,12 +43140,12 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"iAv" = (
-/obj/machinery/power/solar{
- name = "Starboard Solar Array"
- },
/obj/structure/cable{
icon_state = "0-2"
},
+/obj/machinery/power/solar{
+ name = "Aft-Starboard Solar Array"
+ },
/turf/simulated/floor/plasteel/airless{
icon_state = "solarpanel"
},
@@ -43905,32 +43920,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/maintenance/starboard)
-"iHX" = (
-/obj/structure/closet/crate,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/circuitboard/solar_control,
-/turf/simulated/floor/plating,
-/area/station/maintenance/solar_maintenance/fore_port)
"iHY" = (
/obj/machinery/atmospherics/pipe/simple/hidden/cyan,
/obj/structure/table,
@@ -44647,6 +44636,9 @@
/obj/structure/flora/grass/jungle,
/turf/simulated/floor/grass,
/area/station/public/dorms)
+"iPs" = (
+/turf/simulated/wall,
+/area/station/procedure/trainer_office)
"iPw" = (
/obj/structure/lattice/catwalk,
/obj/machinery/camera{
@@ -46205,7 +46197,7 @@
known_by = list("captain")
},
/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/obj/item/lighter/zippo/nt_rep,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
/obj/item/toy/figure/crew/captain,
@@ -46624,6 +46616,23 @@
/obj/structure/cable,
/turf/simulated/floor/plating,
/area/station/engineering/atmos/asteroid_maint)
+"jjE" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/disposalpipe/junction/reversed{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/fore/north)
"jjJ" = (
/obj/effect/spawner/window/reinforced,
/turf/simulated/floor/plating,
@@ -48112,8 +48121,12 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/woodsiding,
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"jzo" = (
/obj/machinery/turretid/stun{
control_area = "\improper AI Satellite Atmospherics";
@@ -49250,9 +49263,7 @@
pixel_y = 2;
pixel_x = -9
},
-/obj/random/carp_plushie{
- pixel_y = -8
- },
+/obj/effect/spawner/random/toy/carp_plushie,
/obj/structure/table,
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint2)
@@ -49449,14 +49460,6 @@
},
/turf/simulated/floor/plating,
/area/station/turret_protected/aisat/interior)
-"jLq" = (
-/obj/structure/chair/office,
-/obj/item/restraints/handcuffs/cable/red,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/spawner/random/cobweb/right/rare,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plating,
-/area/station/maintenance/fpmaint)
"jLr" = (
/obj/machinery/firealarm/directional/east,
/turf/simulated/floor/plasteel,
@@ -50193,6 +50196,17 @@
/obj/effect/spawner/window/reinforced,
/turf/simulated/floor/plating,
/area/station/engineering/atmos/distribution)
+"jSa" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/chair/sofa/left,
+/obj/effect/turf_decal/woodsiding{
+ dir = 1
+ },
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"jSe" = (
/obj/structure/closet/emcloset,
/turf/simulated/floor/plating,
@@ -53178,51 +53192,15 @@
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"kyS" = (
-/obj/machinery/door/airlock/engineering{
- name = "Aft Starboard Solar Access"
- },
/obj/structure/cable{
icon_state = "1-2"
},
/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
-/turf/simulated/floor/plating,
-/area/station/maintenance/solar_maintenance/aft_port)
-"kyY" = (
-/obj/structure/closet/crate,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/solar_assembly,
-/obj/item/stack/sheet/glass{
- amount = 50
- },
-/obj/item/stack/sheet/glass{
- amount = 50;
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/stack/cable_coil{
- pixel_x = 3;
- pixel_y = -4
+/obj/machinery/door/airlock/engineering{
+ name = "Aft Port Solar Access"
},
/turf/simulated/floor/plating,
-/area/station/maintenance/solar_maintenance/fore_port)
+/area/station/maintenance/solar_maintenance/aft_port)
"kzl" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/plasteel{
@@ -54072,7 +54050,7 @@
name = "Central Access"
},
/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/central/nw)
+/area/station/hallway/primary/central/sw)
"kJn" = (
/obj/structure/table/wood,
/obj/item/storage/fancy/cigarettes/cigpack_shadyjims,
@@ -61595,6 +61573,9 @@
/area/station/maintenance/aft2)
"mlB" = (
/obj/structure/cable,
+/obj/machinery/power/solar{
+ name = "Fore-Port Solar Array"
+ },
/turf/simulated/floor/plasteel/airless{
icon_state = "solarpanel"
},
@@ -62563,13 +62544,15 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/apmaint)
"muP" = (
-/obj/structure/table,
-/obj/item/paper_bin,
-/obj/item/paper_bin{
- pixel_y = 15
+/obj/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
},
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
+/obj/effect/turf_decal/woodsiding{
+ dir = 6
+ },
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"muR" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -62779,12 +62762,12 @@
},
/area/station/hallway/primary/starboard/south)
"mxT" = (
-/obj/machinery/power/solar{
- name = "Starboard Solar Array"
- },
/obj/structure/cable{
icon_state = "0-8"
},
+/obj/machinery/power/solar{
+ name = "Aft-Port Solar Array"
+ },
/turf/simulated/floor/plasteel/airless{
icon_state = "solarpanel"
},
@@ -63732,6 +63715,17 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/security/fore)
+"mJo" = (
+/obj/item/radio/intercom{
+ name = "west bump";
+ pixel_x = -28
+ },
+/obj/machinery/economy/vending/traindrobe,
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"mJr" = (
/obj/structure/flora/ausbushes/lavendergrass,
/obj/structure/flora/ausbushes/sparsegrass,
@@ -64053,9 +64047,15 @@
/turf/simulated/wall/r_wall,
/area/station/science/toxins/mixing)
"mMY" = (
-/obj/effect/spawner/window/reinforced,
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-4"
+ },
/turf/simulated/floor/plating,
-/area/station/hallway/primary/fore/north)
+/area/station/procedure/trainer_office)
"mNe" = (
/obj/structure/table,
/obj/item/multitool,
@@ -64065,6 +64065,16 @@
},
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos/distribution)
+"mNf" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/turf/simulated/floor/plasteel{
+ dir = 6;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"mNs" = (
/obj/machinery/disposal,
/obj/structure/disposalpipe/trunk,
@@ -65774,7 +65784,7 @@
/area/station/maintenance/fpmaint)
"ndK" = (
/obj/structure/table/glass,
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
/obj/machinery/light/small{
@@ -66544,7 +66554,7 @@
/obj/structure/table/glass,
/obj/item/stack/medical/bruise_pack,
/obj/item/stack/medical/ointment,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"nlH" = (
@@ -67218,7 +67228,7 @@
/area/station/maintenance/fsmaint2)
"nrE" = (
/obj/structure/table,
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
/obj/item/reagent_containers/glass/bottle/morphine,
@@ -69228,12 +69238,12 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint2)
"nLU" = (
-/obj/machinery/power/solar{
- name = "Starboard Solar Array"
- },
/obj/structure/cable{
icon_state = "0-4"
},
+/obj/machinery/power/solar{
+ name = "Aft-Starboard Solar Array"
+ },
/turf/simulated/floor/plasteel/airless{
icon_state = "solarpanel"
},
@@ -71358,13 +71368,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/maintenance/aft)
-"ofC" = (
-/obj/structure/closet,
-/obj/item/toy/plushie/girly_corgi,
-/obj/item/toy/plushie/robo_corgi,
-/obj/effect/spawner/random/maintenance,
-/turf/simulated/floor/plating,
-/area/station/maintenance/fpmaint)
"ofE" = (
/obj/machinery/alarm/directional/west,
/turf/simulated/floor/plasteel{
@@ -71405,6 +71408,13 @@
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/ne)
+"ogi" = (
+/obj/structure/closet,
+/obj/effect/spawner/random/maintenance,
+/obj/item/toy/plushie/robo_corgi,
+/obj/item/toy/plushie/girly_corgi,
+/turf/simulated/floor/plating,
+/area/station/maintenance/fpmaint)
"ogs" = (
/obj/structure/railing,
/obj/structure/flora/ausbushes/ywflowers,
@@ -72262,6 +72272,9 @@
/obj/structure/cable{
icon_state = "0-8"
},
+/obj/machinery/power/solar{
+ name = "Fore-Port Solar Array"
+ },
/turf/simulated/floor/plasteel/airless{
icon_state = "solarpanel"
},
@@ -76196,6 +76209,9 @@
/obj/structure/cable{
icon_state = "0-2"
},
+/obj/machinery/power/solar{
+ name = "Fore-Port Solar Array"
+ },
/turf/simulated/floor/plasteel/airless{
icon_state = "solarpanel"
},
@@ -76493,6 +76509,29 @@
icon_state = "bluecorner"
},
/area/station/hallway/primary/central/west)
+"pdn" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/fore/north)
"pdw" = (
/obj/machinery/door/airlock/public/glass{
name = "Central Access"
@@ -76560,7 +76599,7 @@
/area/station/command/office/ntrep)
"peo" = (
/obj/structure/closet/cabinet,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/crowbar,
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/wood,
@@ -77063,7 +77102,7 @@
"pio" = (
/obj/structure/table,
/obj/item/soap/deluxe,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/defibrillator_mount{
pixel_y = 32
@@ -77084,11 +77123,11 @@
/area/station/maintenance/aft)
"piB" = (
/obj/structure/table,
-/obj/item/clothing/accessory/stethoscope,
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope,
+/obj/item/clothing/neck/stethoscope{
pixel_y = 3
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
/obj/item/radio/intercom{
@@ -78173,7 +78212,7 @@
/turf/simulated/floor/plasteel,
/area/station/command/vault)
"puY" = (
-/obj/structure/filingcabinet/security,
+/obj/machinery/autolathe,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "caution"
@@ -80888,18 +80927,16 @@
/turf/space,
/area/space/nearstation)
"pXA" = (
-/obj/item/kitchen/knife/shiv{
- pixel_y = 16;
- pixel_x = 7
+/obj/machinery/alarm/directional/west,
+/obj/machinery/photocopier,
+/obj/machinery/light{
+ dir = 8
},
-/obj/item/clothing/mask/gas,
-/obj/item/stock_parts/cell/high/empty{
- pixel_y = 12;
- pixel_x = -7
+/turf/simulated/floor/plasteel{
+ dir = 10;
+ icon_state = "darkgreen"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plating,
-/area/station/maintenance/fpmaint)
+/area/station/procedure/trainer_office)
"pXC" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable{
@@ -86197,34 +86234,12 @@
},
/area/station/security/permabrig)
"rcg" = (
-/obj/structure/closet/crate,
-/obj/item/pen,
-/obj/item/pen{
- pixel_x = -8;
- pixel_y = 5
- },
-/obj/item/pen{
- pixel_x = 8;
- pixel_y = 5
- },
-/obj/item/pen/blue{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/item/pen/blue{
- pixel_x = -3;
- pixel_y = 2
- },
-/obj/item/pen/multi{
- pixel_x = -4;
- pixel_y = 5
- },
-/obj/item/pen/multi{
- pixel_x = -6
+/obj/structure/chair/sofa/right,
+/obj/effect/turf_decal/woodsiding{
+ dir = 1
},
-/obj/item/stack/wrapping_paper,
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"rcm" = (
/obj/machinery/economy/vending/wallmed/directional/west,
/turf/simulated/floor/wood,
@@ -86485,16 +86500,6 @@
icon_state = "rampbottom"
},
/area/station/medical/medbay2)
-"reI" = (
-/obj/structure/table,
-/obj/item/stack/sheet/cardboard{
- amount = 10
- },
-/obj/item/dest_tagger{
- pixel_x = -4
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
"reR" = (
/obj/structure/table/wood,
/obj/item/storage/fancy/crayons,
@@ -86560,12 +86565,12 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/security/aft_starboard)
"rfz" = (
-/obj/machinery/power/solar{
- name = "Starboard Solar Array"
- },
/obj/structure/cable{
icon_state = "0-4"
},
+/obj/machinery/power/solar{
+ name = "Aft-Port Solar Array"
+ },
/turf/simulated/floor/plasteel/airless{
icon_state = "solarpanel"
},
@@ -88350,16 +88355,18 @@
/turf/simulated/floor/plasteel,
/area/station/maintenance/assembly_line)
"rwZ" = (
-/obj/machinery/photocopier,
-/obj/item/radio/intercom{
- name = "west bump";
- pixel_x = -28
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer{
+ dir = 8
},
-/obj/structure/sign/poster/official/random{
- pixel_y = 32
+/obj/effect/turf_decal/woodsiding{
+ dir = 8
},
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
+/obj/machinery/door/window/reinforced/normal{
+ name = "NCT";
+ dir = 8
+ },
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"rxd" = (
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/south)
@@ -90129,6 +90136,16 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/interrogation)
+"rNI" = (
+/obj/item/flag/nt,
+/obj/effect/turf_decal/woodsiding{
+ dir = 9
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"rNN" = (
/obj/machinery/newscaster/directional/south,
/turf/simulated/floor/plasteel{
@@ -90864,14 +90881,35 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/nw)
"rUQ" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Paper Supplies"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/command/glass{
+ name = "Trainer's Office";
+ id_tag = "nct"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
+/area/station/procedure/trainer_office)
"rUU" = (
/obj/structure/sign/poster/official/random{
pixel_y = -32
@@ -99423,7 +99461,9 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"tDQ" = (
-/obj/effect/spawner/random/maintenance,
+/obj/structure/sign/poster/official/love_ian{
+ pixel_y = -32
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"tDY" = (
@@ -101260,8 +101300,14 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"tXh" = (
/obj/structure/chair/stool,
/turf/simulated/floor/plating,
@@ -101583,7 +101629,7 @@
/area/station/medical/storage)
"tZN" = (
/obj/structure/table,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/healthanalyzer,
/obj/effect/decal/cleanable/glass,
/turf/simulated/floor/plating,
@@ -102416,13 +102462,6 @@
},
/turf/simulated/floor/wood,
/area/station/security/permabrig)
-"uiJ" = (
-/obj/structure/sign/poster/official/love_ian{
- pixel_y = -32
- },
-/obj/effect/mapping_helpers/turfs/damage,
-/turf/simulated/floor/wood,
-/area/station/maintenance/fpmaint)
"uiT" = (
/obj/structure/table,
/obj/item/storage/box/lights/mixed,
@@ -103285,16 +103324,6 @@
},
/area/station/service/theatre)
"usw" = (
-/obj/structure/table,
-/obj/item/stack/cable_coil{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/stack/cable_coil,
-/obj/item/stack/cable_coil{
- pixel_x = 3;
- pixel_y = -4
- },
/obj/effect/spawner/random/cobweb/right/rare,
/turf/simulated/floor/plating,
/area/station/maintenance/solar_maintenance/fore_port)
@@ -106854,7 +106883,7 @@
/area/station/engineering/atmos)
"vcm" = (
/obj/machinery/power/solar{
- name = "Starboard Solar Array"
+ name = "Fore-Starboard Solar Array"
},
/obj/structure/cable,
/turf/simulated/floor/plasteel/airless{
@@ -107101,6 +107130,14 @@
"vfn" = (
/turf/simulated/floor/plasteel,
/area/station/supply/miningdock)
+"vft" = (
+/obj/item/decorations/sticky_decorations/flammable/heart,
+/obj/item/stack/sheet/wood{
+ name = "Ians Stick";
+ desc = "A large stick covered in bite marks and dried slobber.ss"
+ },
+/turf/simulated/floor/wood,
+/area/station/maintenance/fpmaint)
"vfu" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
@@ -113267,19 +113304,6 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
-"woS" = (
-/obj/structure/table/glass,
-/obj/item/clothing/accessory/stethoscope{
- pixel_y = 6
- },
-/obj/machinery/light{
- dir = 1
- },
-/obj/machinery/newscaster/directional/north,
-/turf/simulated/floor/plasteel{
- icon_state = "whitebluefull"
- },
-/area/station/medical/sleeper)
"woU" = (
/obj/effect/spawner/random/barrier/grille_maybe,
/obj/structure/cable{
@@ -116022,15 +116046,6 @@
icon_state = "white"
},
/area/station/science/research)
-"wUg" = (
-/obj/item/solar_assembly,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/simulated/floor/plasteel/airless{
- icon_state = "solarpanel"
- },
-/area/station/engineering/solar/fore_port)
"wUh" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
@@ -119522,8 +119537,17 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/fore/north)
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/woodsiding,
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"xEC" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -120388,15 +120412,6 @@
icon_state = "redcorner"
},
/area/station/security/processing)
-"xOh" = (
-/obj/item/solar_assembly,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/turf/simulated/floor/plasteel/airless{
- icon_state = "solarpanel"
- },
-/area/station/engineering/solar/fore_port)
"xOk" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -121655,6 +121670,19 @@
/obj/structure/girder,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
+"ybJ" = (
+/obj/structure/sign/poster/official/love_ian{
+ pixel_y = -32
+ },
+/obj/item/kitchen/sushimat{
+ name = "Prayer Mat"
+ },
+/obj/item/clothing/suit/ianshirt{
+ desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it but it's pretty close. Good for sleeping in. This one in particular looks like it wasnt washed in months"
+ },
+/obj/effect/mapping_helpers/turfs/damage,
+/turf/simulated/floor/wood,
+/area/station/maintenance/fpmaint)
"ybL" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
@@ -122464,6 +122492,14 @@
},
/turf/simulated/floor/carpet/blue,
/area/station/command/office/blueshield)
+"yjS" = (
+/obj/item/kirbyplants,
+/obj/effect/turf_decal/woodsiding{
+ dir = 5
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"yjU" = (
/obj/machinery/atmospherics/pipe/simple/visible{
dir = 9
@@ -142288,7 +142324,7 @@ jnP
aZS
jnP
aZS
-gYN
+dOB
aZS
jnP
wXf
@@ -144335,7 +144371,7 @@ jnP
jnP
wXf
jnP
-wUg
+pay
jSB
jSB
raE
@@ -144602,7 +144638,7 @@ oCR
onQ
onQ
onQ
-xOh
+onQ
onQ
aZS
aZS
@@ -145622,12 +145658,12 @@ wXf
aZS
aZS
onQ
-xOh
onQ
onQ
onQ
-knb
onQ
+knb
+cHH
onQ
onQ
onQ
@@ -147427,7 +147463,7 @@ dGi
uTg
uVV
fXb
-kyY
+dXx
oJh
vWJ
muu
@@ -147684,7 +147720,7 @@ dGi
usw
pOM
pTR
-iHX
+dXx
dGi
lfn
mQF
@@ -148957,17 +148993,17 @@ jnP
jnP
jnP
jnP
-aZS
sik
sik
sik
-rtG
-rvy
sik
-vyj
rtG
-sik
-hjW
+rvy
+iPs
+iPs
+iPs
+iPs
+iPs
slw
pRV
ttR
@@ -149214,17 +149250,17 @@ jnP
jnP
jnP
jnP
-aZS
sik
bah
vqr
-hTO
+gsr
+aSK
tDQ
-fop
-sik
-jLq
+iPs
+dzM
+mJo
pXA
-hjW
+iPs
buP
vqN
dNw
@@ -149471,17 +149507,17 @@ jnP
jnP
jnP
jnP
-jnP
sik
vgB
iOz
-vtq
seW
-ofC
-hjW
-hjW
-hjW
-hjW
+vtq
+hxK
+iPs
+fZt
+cfS
+mNf
+iPs
uGP
xuN
czL
@@ -149728,17 +149764,17 @@ jnP
jnP
jnP
jnP
-jnP
sik
toV
fdc
-hde
-aSK
-hjW
-hjW
+seW
+iOz
+pXZ
+iPs
+rNI
rwZ
dOH
-hjW
+iPs
lZK
tMO
iZd
@@ -149985,13 +150021,13 @@ jnP
jnP
jnP
jnP
-jnP
sik
iWm
fdc
+aSK
cnZ
pck
-hjW
+iPs
rcg
hyc
jzm
@@ -150242,19 +150278,19 @@ jnP
jnP
jnP
jnP
-jnP
sik
qXC
+vft
oNy
-pXZ
-uiJ
-hjW
-chI
+aSK
+ybJ
+iPs
+jSa
tXb
xEx
rUQ
hoM
-gHY
+pdn
dat
lwr
mZC
@@ -150499,19 +150535,19 @@ aZS
aZS
aZS
jnP
-jnP
sik
vEd
fck
+ogi
lLd
pUl
-chh
-reI
+iPs
+yjS
cgE
muP
-mMY
-eNi
-xuN
+bSp
+imy
+jjE
slD
tnk
xtx
@@ -166769,7 +166805,7 @@ peJ
oXT
wxB
vDJ
-woS
+ezi
ggt
fYp
jbE
diff --git a/_maps/map_files/stations/metastation.dmm b/_maps/map_files/stations/metastation.dmm
index b5ef6ca7ad58..802dcd918984 100644
--- a/_maps/map_files/stations/metastation.dmm
+++ b/_maps/map_files/stations/metastation.dmm
@@ -30,6 +30,11 @@
},
/turf/space,
/area/space)
+"aaT" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/unary/vent_pump/on,
+/turf/simulated/floor/plating,
+/area/station/maintenance/fsmaint)
"aaX" = (
/obj/docking_port/stationary{
dheight = 9;
@@ -464,12 +469,13 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"agh" = (
-/obj/structure/table,
-/obj/item/multitool,
+/obj/machinery/light{
+ dir = 8
+ },
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance,
-/turf/simulated/floor/plating,
-/area/station/maintenance/fsmaint)
+/obj/machinery/requests_console/directional/west,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"agi" = (
/turf/simulated/floor/catwalk,
/area/station/maintenance/fore)
@@ -1541,12 +1547,12 @@
dir = 8;
layer = 2.9
},
-/obj/item/clothing/accessory/red{
+/obj/item/clothing/neck/tie/red{
pixel_x = -5;
pixel_y = 3
},
-/obj/item/clothing/accessory/horrible,
-/obj/item/clothing/accessory/blue{
+/obj/item/clothing/neck/tie/horrible,
+/obj/item/clothing/neck/tie/blue{
pixel_x = 5;
pixel_y = -2
},
@@ -3339,12 +3345,6 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
-"awv" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/cyan,
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
- },
-/area/station/maintenance/fsmaint)
"aww" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -5378,15 +5378,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/maintenance/starboard2)
-"aFM" = (
-/obj/effect/spawner/random/barrier/grille_often,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
- },
-/area/station/maintenance/fsmaint)
"aFO" = (
/obj/effect/spawner/random/fungus/frequent,
/turf/simulated/wall,
@@ -10007,13 +9998,6 @@
/obj/machinery/alarm/directional/west,
/turf/simulated/floor/carpet/red,
/area/station/command/office/hos)
-"aWf" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plating,
-/area/station/maintenance/fsmaint)
"aWi" = (
/obj/structure/extinguisher_cabinet{
name = "east bump";
@@ -12183,22 +12167,6 @@
icon_state = "dark"
},
/area/station/service/chapel)
-"bdr" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/simulated/floor/plating,
-/area/station/maintenance/fsmaint)
"bds" = (
/obj/structure/rack{
dir = 8;
@@ -13773,15 +13741,37 @@
/turf/simulated/wall,
/area/station/service/janitor)
"bhr" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Trainer's Office";
+ id_tag = "nct"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "NCT"
+ },
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
/obj/structure/disposalpipe/segment,
-/obj/machinery/door/airlock,
-/obj/effect/mapping_helpers/airlock/autoname,
-/obj/effect/mapping_helpers/airlock/access/all/service/janitor,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/procedure/trainer_office)
"bht" = (
/turf/simulated/wall,
/area/station/maintenance/maintcentral)
@@ -13907,20 +13897,18 @@
},
/area/station/engineering/tech_storage)
"bhK" = (
-/obj/structure/disposalpipe/segment/corner{
- dir = 2
+/obj/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
},
-/obj/structure/closet/jcloset,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light_switch{
- dir = 8;
- name = "custom placement";
- pixel_x = 24;
- pixel_y = -6
+/obj/machinery/camera{
+ c_tag = "Career Trainer's Office"
},
-/obj/machinery/firealarm/directional/north,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bhL" = (
/obj/machinery/hologram/holopad,
/obj/structure/cable{
@@ -14366,34 +14354,43 @@
},
/area/station/hallway/primary/central/nw)
"biY" = (
-/obj/structure/reagent_dispensers/watertank,
-/obj/structure/reagent_dispensers/spacecleanertank{
- pixel_y = 30
- },
-/obj/machinery/light{
- dir = 8
+/obj/machinery/economy/vending/traindrobe,
+/obj/effect/turf_decal/woodsiding{
+ dir = 9
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"biZ" = (
+/obj/effect/turf_decal/woodsiding{
+ dir = 1
+ },
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
/obj/structure/disposalpipe/segment/corner{
dir = 1
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"bja" = (
-/obj/structure/closet/l3closet/janitor,
-/obj/machinery/alarm/directional/north,
+/obj/item/kirbyplants,
+/obj/effect/turf_decal/woodsiding{
+ dir = 5
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"bjb" = (
/obj/structure/table/wood,
/obj/item/folder/blue,
@@ -15013,59 +15010,18 @@
},
/area/station/hallway/primary/central/nw)
"bkL" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+/obj/structure/chair/comfy/black,
+/obj/effect/turf_decal/woodsiding,
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
-/obj/effect/landmark/start/janitor,
-/turf/simulated/floor/plating,
-/area/station/service/janitor)
-"bkM" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
-"bkN" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
-"bkO" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/airlock/maintenance,
-/obj/effect/mapping_helpers/airlock/autoname,
-/obj/effect/mapping_helpers/airlock/access/all/service/janitor,
-/turf/simulated/floor/plating,
-/area/station/maintenance/maintcentral)
-"bkP" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/simulated/floor/plating,
-/area/station/maintenance/maintcentral)
-"bkQ" = (
-/obj/item/flashlight{
- pixel_x = 1;
- pixel_y = 5
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
},
-/turf/simulated/floor/plating,
-/area/station/maintenance/maintcentral)
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"bkS" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -15175,28 +15131,21 @@
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/ne)
-"bll" = (
-/obj/structure/closet/emcloset,
-/obj/structure/sign/double/map/left{
- desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
- icon_state = "map-left-MS";
- pixel_y = 32
- },
-/turf/simulated/floor/plasteel{
- icon_state = "darkgrey"
- },
-/area/station/hallway/primary/starboard)
"blm" = (
-/obj/structure/sign/double/map/right{
- desc = "A framed picture of the station. Clockwise from security in red at the top, you see engineering in yellow, science in purple, escape in checkered red-and-white, medbay in green, arrivals in checkered red-and-blue, and then cargo in brown.";
- icon_state = "map-right-MS";
- pixel_y = 32
- },
-/obj/structure/closet/firecloset,
-/turf/simulated/floor/plasteel{
- icon_state = "darkgrey"
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
+/obj/effect/mapping_helpers/airlock/access/all/service/janitor,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
},
-/area/station/hallway/primary/starboard)
+/obj/machinery/door/airlock,
+/obj/effect/mapping_helpers/airlock/autoname,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"blo" = (
/turf/simulated/wall,
/area/station/hallway/primary/starboard/north)
@@ -15706,27 +15655,6 @@
/mob/living/simple_animal/mouse,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
-"bmC" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 1
- },
-/mob/living/simple_animal/lizard{
- name = "Wags-His-Tail";
- real_name = "Wags-His-Tail"
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
-"bmD" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
"bmE" = (
/obj/machinery/newscaster/directional/east,
/obj/structure/disposalpipe/segment/corner{
@@ -15791,6 +15719,7 @@
"bmQ" = (
/obj/structure/table,
/obj/structure/cable{
+ d2 = 4;
icon_state = "0-4"
},
/obj/item/key/janitor,
@@ -15804,15 +15733,6 @@
/obj/item/grenade/chem_grenade/cleaner,
/turf/simulated/floor/plasteel,
/area/station/service/janitor)
-"bmR" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
- },
-/area/station/maintenance/fsmaint)
"bmT" = (
/obj/machinery/porta_turret/ai_turret,
/turf/simulated/floor/plasteel{
@@ -15933,15 +15853,6 @@
icon_state = "cautioncorner"
},
/area/station/hallway/primary/starboard)
-"bnj" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "cautioncorner"
- },
-/area/station/hallway/primary/starboard)
"bnk" = (
/obj/machinery/door/firedoor,
/turf/simulated/floor/plasteel{
@@ -16333,15 +16244,21 @@
/turf/simulated/floor/plasteel,
/area/station/supply/lobby)
"bou" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/economy/vending/janidrobe,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/item/flag/nt,
+/turf/simulated/floor/plasteel{
+ dir = 10;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bov" = (
-/obj/structure/janitorialcart,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bow" = (
/obj/machinery/atmospherics/portable/canister/nitrogen,
/obj/machinery/atmospherics/pipe/simple/hidden/purple{
@@ -16350,13 +16267,17 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos/control)
"box" = (
-/obj/structure/disposalpipe/trunk{
- dir = 1
+/obj/machinery/power/apc/directional/east,
+/obj/machinery/alarm/directional/south,
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
},
-/obj/machinery/disposal,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/turf/simulated/floor/plasteel{
+ dir = 6;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"boy" = (
/obj/item/storage/box/lights/mixed,
/turf/simulated/floor/plating,
@@ -16464,24 +16385,16 @@
/turf/simulated/floor/carpet,
/area/station/command/office/captain/bedroom)
"boN" = (
-/obj/item/restraints/legcuffs/beartrap,
-/obj/item/restraints/legcuffs/beartrap,
-/obj/machinery/requests_console/directional/west,
-/obj/machinery/camera{
- c_tag = "Custodial Closet";
- dir = 4
+/obj/effect/turf_decal/woodsiding{
+ dir = 10
},
-/obj/item/mop,
-/obj/item/reagent_containers/glass/bucket,
-/obj/structure/rack{
- dir = 1
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
},
-/obj/item/clothing/gloves/color/orange,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/box/mousetraps,
-/obj/item/storage/box/mousetraps,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/structure/closet,
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"boQ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -16510,24 +16423,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/science/toxins/mixing)
-"boV" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/starboard)
"boX" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -16869,19 +16764,27 @@
},
/area/station/supply/sorting)
"bpQ" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/landmark/start/janitor,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/radio/intercom{
+/obj/machinery/button/windowtint{
+ id = "NCT";
+ pixel_x = 24;
+ dir = 8;
+ pixel_y = 5
+ },
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer,
+/obj/machinery/door/window/reinforced/normal{
+ name = "NCT"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
name = "east bump";
- pixel_x = 28
+ pixel_x = 24;
+ pixel_y = -5
},
-/obj/structure/sink{
+/turf/simulated/floor/plasteel{
dir = 4;
- pixel_x = 12
+ icon_state = "darkgreen"
},
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/area/station/procedure/trainer_office)
"bpS" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/disposalpipe/segment,
@@ -17749,10 +17652,15 @@
},
/area/station/engineering/ai_transit_tube)
"bsE" = (
-/obj/machinery/light/small,
-/obj/vehicle/janicart,
-/turf/simulated/floor/plating,
-/area/station/service/janitor)
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bsG" = (
/obj/machinery/hologram/holopad,
/obj/machinery/light/small{
@@ -19735,7 +19643,7 @@
/obj/structure/safe/floor{
known_by = list("captain")
},
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
/obj/item/lighter/zippo/nt_rep,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
@@ -27328,7 +27236,7 @@
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
dir = 4
},
-/obj/machinery/alarm/directional/north,
+/obj/machinery/alarm/server/directional/north,
/turf/simulated/floor/plasteel/dark/telecomms,
/area/station/science/server/coldroom)
"cbi" = (
@@ -27565,11 +27473,11 @@
},
/area/station/command/bridge)
"cca" = (
-/obj/item/clothing/accessory/stethoscope,
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope,
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 3
},
/obj/item/flashlight/pen{
@@ -35729,6 +35637,20 @@
icon_state = "whiteblue"
},
/area/station/medical/paramedic)
+"cJS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/l3closet/janitor,
+/obj/structure/reagent_dispensers/spacecleanertank{
+ pixel_y = 30
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ name = "east bump";
+ pixel_x = 24
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"cJT" = (
/obj/machinery/suit_storage_unit/expedition,
/turf/simulated/floor/plasteel{
@@ -43226,6 +43148,10 @@
icon_state = "green"
},
/area/station/security/permabrig)
+"ewi" = (
+/obj/effect/mapping_helpers/turfs/rust/probably,
+/turf/simulated/wall,
+/area/station/service/janitor)
"ewk" = (
/turf/simulated/floor/grass/no_creep,
/area/station/medical/virology)
@@ -44712,6 +44638,26 @@
/obj/machinery/firealarm/directional/east,
/turf/simulated/floor/plasteel,
/area/station/security/defusal)
+"ffM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
+ dir = 5;
+ level = 2
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
+ dir = 4
+ },
+/turf/simulated/floor/plating,
+/area/station/maintenance/fsmaint)
"fga" = (
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment{
@@ -47329,6 +47275,12 @@
icon_state = "white"
},
/area/station/maintenance/asmaint)
+"ghd" = (
+/obj/structure/table/wood,
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/procedure/trainer_office)
"ghF" = (
/obj/structure/sign/securearea{
pixel_x = 32;
@@ -48804,6 +48756,16 @@
icon_state = "white"
},
/area/station/science/xenobiology)
+"gSv" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"gSO" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
@@ -49051,6 +49013,21 @@
"gWO" = (
/turf/simulated/floor/plasteel,
/area/station/science/toxins/mixing)
+"gWX" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/rack{
+ dir = 1
+ },
+/obj/item/storage/box/mousetraps,
+/obj/item/storage/box/mousetraps,
+/obj/item/clothing/gloves/color/orange,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/restraints/legcuffs/beartrap,
+/obj/item/restraints/legcuffs/beartrap,
+/obj/item/mop,
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"gXg" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -49551,7 +49528,7 @@
"hjn" = (
/obj/structure/table/glass,
/obj/item/folder/blue,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/clothing/glasses/hud/health,
/turf/simulated/floor/plasteel{
dir = 1;
@@ -50732,6 +50709,23 @@
icon_state = "cult"
},
/area/station/legal/lawoffice)
+"hIp" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/starboard)
"hIG" = (
/obj/structure/window/reinforced{
dir = 8
@@ -51093,6 +51087,12 @@
},
/turf/simulated/floor/plasteel,
/area/station/science/toxins/mixing)
+"hQS" = (
+/obj/machinery/alarm/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/economy/vending/janidrobe,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"hQZ" = (
/obj/structure/closet/secure_closet/magistrate,
/obj/machinery/alarm/directional/north,
@@ -51261,21 +51261,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/science/xenobiology)
-"hSX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
- },
-/area/station/maintenance/fsmaint)
"hTg" = (
/obj/machinery/atmospherics/pipe/simple/visible/yellow{
dir = 9
@@ -51695,6 +51680,15 @@
icon_state = "yellow"
},
/area/station/engineering/break_room)
+"ieC" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"ieD" = (
/obj/effect/spawner/window/reinforced/grilled,
/obj/structure/cable{
@@ -51799,6 +51793,26 @@
/obj/effect/spawner/random/trash,
/turf/simulated/floor/plating,
/area/station/maintenance/xenobio_north)
+"igE" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/starboard)
"igJ" = (
/obj/structure/rack,
/obj/effect/spawner/random/maintenance,
@@ -53299,6 +53313,11 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/aft/south)
+"iQu" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/vehicle/janicart,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"iQC" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 1
@@ -54139,6 +54158,27 @@
icon_state = "dark"
},
/area/station/engineering/control)
+"jnO" = (
+/obj/item/flashlight/lamp/green{
+ pixel_y = 15
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/door_control{
+ id = "nct";
+ name = "Office Door";
+ normaldoorcontrol = 1;
+ req_access = list(80);
+ pixel_y = -1
+ },
+/obj/structure/table/wood,
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/procedure/trainer_office)
"jnZ" = (
/obj/item/kirbyplants/plant24,
/obj/machinery/atmospherics/unary/vent_scrubber/on,
@@ -55013,6 +55053,23 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
+"jJw" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
+ dir = 6
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "neutralfull"
+ },
+/area/station/maintenance/fsmaint)
"jJI" = (
/obj/structure/bed/dogbed/runtime,
/mob/living/simple_animal/pet/cat/runtime,
@@ -55097,6 +55154,12 @@
},
/turf/space,
/area/space/nearstation)
+"jLc" = (
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
+/obj/machinery/door/airlock/maintenance,
+/obj/effect/mapping_helpers/airlock/autoname,
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"jLr" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -58262,6 +58325,14 @@
/obj/effect/turf_decal/stripes/line,
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos)
+"lga" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/start/janitor,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"lgf" = (
/obj/effect/turf_decal/stripes/white/line{
dir = 4
@@ -59076,6 +59147,21 @@
icon_state = "darkgrey"
},
/area/station/science/toxins/launch)
+"lwd" = (
+/obj/effect/turf_decal/woodsiding{
+ dir = 6
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/carpet,
+/area/station/procedure/trainer_office)
"lwx" = (
/obj/machinery/atmospherics/pipe/simple/visible/yellow,
/obj/structure/lattice/catwalk,
@@ -59105,6 +59191,21 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/brig)
+"lxV" = (
+/mob/living/simple_animal/lizard{
+ name = "Wags-His-Tail";
+ real_name = "Wags-His-Tail"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"lyn" = (
/obj/machinery/door/airlock/hatch{
name = "Xenobiology Maintenance"
@@ -60932,21 +61033,6 @@
"mlV" = (
/turf/simulated/floor/plasteel,
/area/station/maintenance/aft2)
-"mmk" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/central/north)
"mmB" = (
/obj/structure/closet/secure_closet/atmos_personal,
/turf/simulated/floor/plasteel,
@@ -65407,6 +65493,16 @@
icon_state = "whitepurple"
},
/area/station/science/rnd)
+"onX" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/plating,
+/area/station/service/janitor)
"oob" = (
/obj/machinery/atmospherics/unary/portables_connector{
dir = 4
@@ -65447,6 +65543,10 @@
/obj/item/seeds/eggplant,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard2)
+"ooo" = (
+/obj/structure/sign/custodian,
+/turf/simulated/wall,
+/area/station/service/janitor)
"ooD" = (
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel,
@@ -66100,6 +66200,21 @@
icon_state = "caution"
},
/area/station/engineering/atmos/control)
+"oGK" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/starboard)
"oHb" = (
/obj/structure/sign/poster/official/safety_internals{
pixel_x = 30
@@ -67622,6 +67737,21 @@
/obj/structure/closet/secure_closet/brig/temp/cell_5,
/turf/simulated/floor/plasteel,
/area/station/security/brig)
+"pnD" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "cautioncorner"
+ },
+/area/station/hallway/primary/starboard)
"pos" = (
/obj/machinery/atmospherics/pipe/manifold/visible/green{
dir = 8
@@ -68614,6 +68744,18 @@
},
/turf/simulated/floor/bluegrid,
/area/station/turret_protected/ai)
+"pKS" = (
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plating,
+/area/station/maintenance/maintcentral)
"pLD" = (
/obj/machinery/door_timer/cell_1{
pixel_x = -32
@@ -71465,6 +71607,16 @@
icon_state = "white"
},
/area/station/medical/chemistry)
+"ral" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"rao" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -71912,6 +72064,30 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
+"rkM" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 1
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/central/north)
"rkT" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -73399,7 +73575,7 @@
pixel_x = -24;
pixel_y = -6
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
/turf/simulated/floor/plasteel{
@@ -73795,6 +73971,15 @@
icon_state = "greenblue"
},
/area/station/service/hydroponics)
+"rXl" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "cautioncorner"
+ },
+/area/station/hallway/primary/starboard)
"rXS" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -75019,21 +75204,6 @@
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
/area/station/security/warden)
-"sDT" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 1
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/starboard)
"sEI" = (
/obj/machinery/atmospherics/trinary/filter,
/turf/simulated/floor/plasteel,
@@ -76888,6 +77058,24 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
+"ttp" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_y = 4;
+ pixel_x = -5
+ },
+/obj/item/pen{
+ pixel_x = 8;
+ pixel_y = 5
+ },
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"ttA" = (
/obj/structure/rack,
/obj/item/hand_labeler,
@@ -76916,6 +77104,18 @@
"ttE" = (
/turf/simulated/floor/carpet,
/area/station/command/office/captain/bedroom)
+"tub" = (
+/obj/machinery/camera{
+ c_tag = "Custodial Closet";
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/start/janitor,
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"tug" = (
/obj/machinery/newscaster/directional/east,
/obj/machinery/atmospherics/binary/valve{
@@ -77289,6 +77489,11 @@
/obj/structure/disposalpipe/segment/corner{
dir = 2
},
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
/turf/simulated/floor/plasteel{
icon_state = "neutralcorner"
},
@@ -78319,16 +78524,6 @@
/obj/machinery/door/airlock/maintenance,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard2)
-"ufr" = (
-/obj/structure/table,
-/obj/item/clothing/gloves/color/fyellow,
-/obj/effect/spawner/random/maintenance,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/simulated/floor/plating,
-/area/station/maintenance/fsmaint)
"uft" = (
/obj/structure/table/reinforced,
/obj/item/reagent_containers/glass/rag,
@@ -78697,6 +78892,12 @@
icon_state = "darkblue"
},
/area/station/medical/storage)
+"uoI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/jcloset,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"uoK" = (
/obj/structure/sign/poster/official/random{
pixel_y = -32
@@ -79447,8 +79648,9 @@
"uJG" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/camera{
- c_tag = "AI Satellite Antechamber South";
- dir = 4
+ dir = 4;
+ c_tag = "Power Transmission Laser";
+ network = list("Engineering","SS13")
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -81044,6 +81246,12 @@
icon_state = "dark"
},
/area/station/legal/courtroom/gallery)
+"vrM" = (
+/obj/machinery/door/airlock/maintenance,
+/obj/effect/mapping_helpers/airlock/access/all/service/janitor,
+/obj/effect/mapping_helpers/airlock/autoname,
+/turf/simulated/floor/plating,
+/area/station/service/janitor)
"vrO" = (
/obj/machinery/access_button{
autolink_id = "atmossouth_btn_ext";
@@ -81130,6 +81338,7 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos/control)
"vug" = (
+/obj/machinery/autolathe,
/turf/simulated/floor/plasteel{
icon_state = "yellow"
},
@@ -81362,6 +81571,20 @@
icon_state = "white"
},
/area/station/medical/reception)
+"vAS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/radio/intercom{
+ name = "east bump";
+ pixel_x = 28
+ },
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 12
+ },
+/obj/structure/janitorialcart,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"vBv" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -82733,6 +82956,20 @@
},
/turf/simulated/floor/engine/vacuum,
/area/station/science/toxins/mixing)
+"wnk" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
+ dir = 4
+ },
+/turf/simulated/floor/plating,
+/area/station/maintenance/fsmaint)
"wnn" = (
/obj/machinery/power/apc/directional/north,
/obj/structure/cable{
@@ -85798,6 +86035,9 @@
icon_state = "whitepurple"
},
/area/station/science/lobby)
+"xIX" = (
+/turf/simulated/wall,
+/area/station/procedure/trainer_office)
"xJy" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -109997,11 +110237,11 @@ lSa
aFE
xuG
bfK
-bhq
-bhq
-bhq
-bhq
-bhq
+xIX
+xIX
+xIX
+xIX
+xIX
bqc
bqc
ezM
@@ -110254,10 +110494,10 @@ lIM
bMC
xuG
bfK
-bhq
+gSv
biY
boN
-bmQ
+ttp
bou
bqc
bvp
@@ -110509,12 +110749,12 @@ iLs
oWs
eXm
bcM
-mmk
+rkM
tFb
bhr
biZ
bkL
-bmC
+ghd
bov
bqc
cfj
@@ -110768,10 +111008,10 @@ gYO
sTC
hdw
hiC
-bhq
+ral
bja
-bkM
-bmD
+lwd
+jnO
bsE
bqc
bvq
@@ -111025,9 +111265,9 @@ suO
nuz
xuG
bjA
-bhq
+xIX
bhK
-bkN
+ieC
bpQ
box
bje
@@ -111282,11 +111522,11 @@ bbh
bcM
bel
bfR
-bht
-bht
-bkO
-bht
-bht
+xIX
+xIX
+jLc
+xIX
+xIX
bht
brS
bje
@@ -111541,7 +111781,7 @@ qWN
acw
bht
bjc
-bkP
+bmF
bmF
boy
btP
@@ -111798,7 +112038,7 @@ bep
ccP
bhu
clO
-bkQ
+pKS
bpU
boz
bqe
@@ -121303,11 +121543,11 @@ aYK
aVc
alb
eTo
-aIo
-aLl
-aLl
-aLl
-bez
+bhq
+bhq
+bhq
+bhq
+bhq
bni
dnS
wwo
@@ -121560,13 +121800,13 @@ uPu
aLl
dAH
eTo
-sOy
+vrM
agh
-ufr
-aLl
-bll
-bnr
-boY
+tub
+bmQ
+ooo
+rXl
+oGK
bqA
bHA
bwp
@@ -121815,15 +122055,15 @@ aVV
fWg
aYK
aLl
-avA
-hSX
-awv
-sln
-avA
-aLl
+sOy
+jJw
+bhq
+gWX
+onX
+lxV
blm
-bnr
-sDT
+pnD
+igE
rEV
bHA
bus
@@ -122073,12 +122313,12 @@ aTp
aXm
aLl
mdS
-fvU
-dAH
-avA
-alb
-aLl
-aLl
+wnk
+bhq
+hQS
+lga
+iQu
+bhq
wnn
bcP
bqA
@@ -122329,15 +122569,15 @@ aTo
aTp
auO
aLl
-dAH
-bdr
-aFM
-aWf
-aWf
-bmR
-eMs
-bnj
-boV
+aaT
+ffM
+bhq
+cJS
+uoI
+vAS
+bhq
+bnr
+hIp
bqA
bsp
bxH
@@ -122588,11 +122828,11 @@ bbv
aLl
wVi
bPb
-aIo
-aLl
-edZ
-wPQ
-aLl
+bhq
+bhq
+bhq
+ewi
+bhq
bnk
gcq
lhu
diff --git a/_maps/map_files/templates/biodome_beach.dmm b/_maps/map_files/templates/biodome_beach.dmm
index 27dfc60702ec..c622e6cca4d5 100644
--- a/_maps/map_files/templates/biodome_beach.dmm
+++ b/_maps/map_files/templates/biodome_beach.dmm
@@ -147,7 +147,7 @@
/turf/simulated/floor/plating,
/area/ruin/powered/beach)
"az" = (
-/obj/item/clothing/accessory/necklace/dope,
+/obj/item/clothing/neck/necklace/dope,
/obj/item/reagent_containers/spray/spraytan,
/turf/simulated/floor/beach/sand,
/area/ruin/powered/beach)
diff --git a/_maps/map_files/tests/test_generic.dmm b/_maps/map_files/tests/test_generic.dmm
new file mode 100644
index 000000000000..c8e2358307f5
--- /dev/null
+++ b/_maps/map_files/tests/test_generic.dmm
@@ -0,0 +1,176 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/floor/plasteel,
+/area/game_test)
+"G" = (
+/turf/simulated/wall/indestructible/riveted,
+/area/game_test)
+"R" = (
+/obj/effect/landmark/game_test/bottom_left_corner,
+/turf/simulated/floor/plasteel,
+/area/game_test)
+"Y" = (
+/obj/effect/landmark/game_test/top_right_corner,
+/turf/simulated/floor/plasteel,
+/area/game_test)
+
+(1,1,1) = {"
+G
+G
+G
+G
+G
+G
+G
+G
+"}
+(2,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(3,1,1) = {"
+G
+a
+a
+a
+a
+R
+a
+G
+"}
+(4,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(5,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(6,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(7,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(8,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(9,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(10,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(11,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(12,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(13,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(14,1,1) = {"
+G
+a
+Y
+a
+a
+a
+a
+G
+"}
+(15,1,1) = {"
+G
+a
+a
+a
+a
+a
+a
+G
+"}
+(16,1,1) = {"
+G
+G
+G
+G
+G
+G
+G
+G
+"}
diff --git a/code/tests/atmos/test_ventcrawl.dmm b/_maps/map_files/tests/test_ventcrawl.dmm
similarity index 87%
rename from code/tests/atmos/test_ventcrawl.dmm
rename to _maps/map_files/tests/test_ventcrawl.dmm
index e7e84c5acd96..e14c7c9036eb 100644
--- a/code/tests/atmos/test_ventcrawl.dmm
+++ b/_maps/map_files/tests/test_ventcrawl.dmm
@@ -4,20 +4,20 @@
dir = 4
},
/turf/simulated/floor,
-/area/space)
+/area/template_noop)
"d" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
/turf/simulated/floor,
-/area/space)
+/area/template_noop)
"X" = (
/obj/machinery/atmospherics/pipe/simple/visible{
dir = 4
},
/obj/structure/table,
/turf/simulated/floor,
-/area/space)
+/area/template_noop)
(1,1,1) = {"
a
diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm
index 26475d0d4daf..9385aa142bef 100644
--- a/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm
+++ b/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm
@@ -379,7 +379,7 @@
/area/ruin/space/spacehotelv1/cargostorage)
"de" = (
/obj/structure/rack,
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/effect/spawner/random/dirt/often,
/obj/structure/sign/poster/random{
pixel_x = -32
@@ -2409,7 +2409,7 @@
/obj/effect/spawner/random/cobweb/left/rare,
/obj/effect/spawner/random/dirt/often,
/obj/structure/rack,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/plating,
/area/ruin/space/spacehotelv1/engi1)
@@ -2911,7 +2911,7 @@
/area/ruin/space/spacehotelv1/guestroom4)
"wK" = (
/obj/structure/rack,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/effect/spawner/random/maintenance,
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plating,
@@ -3783,8 +3783,8 @@
/area/ruin/space/spacehotelv1/kitchen)
"Dx" = (
/obj/structure/rack,
-/obj/random/toolbox,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/toolbox,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plating,
/area/ruin/space/spacehotelv1/engi1)
"Dy" = (
@@ -4362,7 +4362,7 @@
/obj/structure/sign/vacuum{
pixel_x = 32
},
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plating,
/area/ruin/space/spacehotelv1/forestarboardmaints)
@@ -4470,7 +4470,7 @@
/area/ruin/space/spacehotelv1/forehallway)
"IB" = (
/obj/structure/rack,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/machinery/light/small/directional/north,
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plating,
@@ -5441,8 +5441,8 @@
/area/ruin/space/spacehotelv1/restoraunt2)
"PO" = (
/obj/structure/rack,
-/obj/random/toolbox,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/toolbox,
+/obj/effect/spawner/random/engineering/tools,
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plating,
/area/ruin/space/spacehotelv1/engi2)
diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/syndie_space_base.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/syndie_space_base.dmm
index 3766a75eee9b..6176737b253a 100644
--- a/_maps/map_files220/RandomRuins/SpaceRuins/syndie_space_base.dmm
+++ b/_maps/map_files220/RandomRuins/SpaceRuins/syndie_space_base.dmm
@@ -3432,7 +3432,7 @@
},
/area/ruin/unpowered/syndicate_space_base/storage)
"uy" = (
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "darkred"
@@ -7943,7 +7943,7 @@
/obj/item/storage/belt/medical,
/obj/item/crowbar,
/obj/item/clothing/glasses/hud/health,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/structure/table,
/turf/simulated/floor/plasteel{
icon_state = "whiteblue"
diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/whiteship.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/whiteship.dmm
index b561d0031027..6dea3a509a25 100644
--- a/_maps/map_files220/RandomRuins/SpaceRuins/whiteship.dmm
+++ b/_maps/map_files220/RandomRuins/SpaceRuins/whiteship.dmm
@@ -1484,7 +1484,7 @@
/obj/machinery/atmospherics/unary/passive_vent{
dir = 1
},
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/flashlight/pen,
/obj/item/food/grown/apple{
desc = "An apple a day - keeps doctor away...";
diff --git a/_maps/map_files220/RandomZLevels/beach.dmm b/_maps/map_files220/RandomZLevels/beach.dmm
index a58060d9d1b1..442d49900c7a 100644
--- a/_maps/map_files220/RandomZLevels/beach.dmm
+++ b/_maps/map_files220/RandomZLevels/beach.dmm
@@ -3092,7 +3092,7 @@
pixel_x = -4
},
/obj/structure/table/glass,
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 4;
pixel_x = 4
},
diff --git a/_maps/map_files220/RandomZLevels/caves.dmm b/_maps/map_files220/RandomZLevels/caves.dmm
index bc7dbb355aee..18d543c14567 100644
--- a/_maps/map_files220/RandomZLevels/caves.dmm
+++ b/_maps/map_files220/RandomZLevels/caves.dmm
@@ -3704,7 +3704,7 @@
/turf/simulated/floor/wood/lavaland_air,
/area/awaymission/caves)
"tK" = (
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/awaymission/caves)
"tL" = (
@@ -6777,8 +6777,8 @@
/area/awaymission/caves)
"Ku" = (
/obj/structure/table,
-/obj/random/toolbox,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/toolbox,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plating,
/area/awaymission/caves/build/reqpower_build)
"Kw" = (
@@ -6807,7 +6807,7 @@
/area/awaymission/caves/build/reqpower_build)
"Kz" = (
/obj/structure/table,
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plating,
/area/awaymission/caves/build/reqpower_build)
@@ -7038,7 +7038,7 @@
/area/awaymission/caves)
"LJ" = (
/obj/structure/table,
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/wood/oak,
/area/awaymission/caves/build/reqpower_build)
@@ -7573,10 +7573,8 @@
/area/awaymission/caves/build/reqpower_build)
"Po" = (
/obj/structure/table,
-/obj/random/toolbox,
-/obj/random/toolbox{
- pixel_y = 8
- },
+/obj/effect/spawner/random/engineering/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/turf/simulated/floor/plasteel,
/area/awaymission/caves/build)
"Pp" = (
@@ -7752,7 +7750,7 @@
/area/awaymission/caves)
"Qm" = (
/obj/structure/table_frame,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plasteel{
dir = 8;
@@ -8379,7 +8377,7 @@
/obj/structure/closet/crate/wooden,
/obj/item/kitchen/knife/ritual,
/obj/item/staff/broom,
-/obj/item/clothing/accessory/necklace/locket/fluff/fethasnecklace,
+/obj/item/clothing/accessory/locket/fluff/fethasnecklace,
/obj/effect/spawner/random/dirt/often,
/obj/item/salvage/ruin/tablet,
/turf/simulated/floor/wood/lavaland_air,
@@ -8805,7 +8803,7 @@
"VP" = (
/obj/item/clothing/glasses/night,
/obj/structure/closet,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/item/storage/toolbox/emergency,
/turf/simulated/floor/plasteel,
/area/awaymission/caves/build)
diff --git a/_maps/map_files220/RandomZLevels/gate_lizard.dmm b/_maps/map_files220/RandomZLevels/gate_lizard.dmm
index 67c68484ec4d..2078507ab1ce 100644
--- a/_maps/map_files220/RandomZLevels/gate_lizard.dmm
+++ b/_maps/map_files220/RandomZLevels/gate_lizard.dmm
@@ -243,7 +243,7 @@
pixel_x = 16;
pixel_y = -9
},
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/machinery/door_control/shutter/west{
id = "CMDgate";
req_access = list(301)
@@ -535,10 +535,10 @@
/turf/simulated/floor/indestructible/grass,
/area/awaymission/jungle_planet/outside/waterfall)
"aOn" = (
-/obj/item/clothing/accessory/necklace/skullcodpiece,
-/obj/item/clothing/accessory/necklace/talisman,
-/obj/item/clothing/accessory/necklace/skullcodpiece,
-/obj/item/clothing/accessory/necklace/talisman,
+/obj/item/clothing/accessory/skullcodpiece,
+/obj/item/clothing/accessory/talisman,
+/obj/item/clothing/accessory/skullcodpiece,
+/obj/item/clothing/accessory/talisman,
/obj/structure/closet/crate/wooden,
/turf/simulated/floor/wood/oak,
/area/awaymission/jungle_planet/outside/cave)
@@ -886,7 +886,7 @@
/obj/item/clothing/gloves/color/fyellow/old,
/obj/item/multitool,
/obj/item/clothing/head/welding,
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -1008,7 +1008,7 @@
/obj/item/stack/sheet/leather,
/obj/item/stack/sheet/leather,
/obj/item/stack/sheet/leather,
-/obj/item/clothing/accessory/necklace/dope,
+/obj/item/clothing/neck/necklace/dope,
/obj/structure/closet/crate/wooden,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
@@ -2676,7 +2676,7 @@
/turf/simulated/floor/plasteel,
/area/awaymission/jungle_planet/inside)
"dxA" = (
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/machinery/door/window/reinforced/normal{
dir = 8
},
@@ -3468,8 +3468,8 @@
pixel_x = -9;
pixel_y = 11
},
-/obj/item/clothing/accessory/necklace,
-/obj/item/clothing/accessory/necklace/locket,
+/obj/item/clothing/neck/necklace,
+/obj/item/clothing/neck/necklace/locket,
/obj/structure/stone_tile/slab,
/obj/item/stack/ore/plasma,
/turf/simulated/floor/engine/cult,
@@ -5377,7 +5377,7 @@
pixel_x = 12
},
/obj/item/pen/multi/gold,
-/obj/item/clothing/accessory/necklace,
+/obj/item/clothing/neck/necklace,
/obj/structure/stone_tile/surrounding_tile/cracked,
/obj/item/stack/ore/plasma,
/obj/item/stack/sheet/mineral/gold{
@@ -7212,7 +7212,7 @@
/turf/simulated/floor/plasteel,
/area/awaymission/jungle_planet/outside/river)
"jvT" = (
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/effect/light_emitter{
light_color = "#FFFFFF";
set_cap = 1;
@@ -7733,7 +7733,7 @@
},
/area/awaymission/jungle_planet/outside)
"kcJ" = (
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plating/asteroid/ancient{
name = "ground"
},
@@ -10263,7 +10263,7 @@
/area/awaymission/jungle_planet/outside/cave)
"ncb" = (
/obj/item/clothing/gloves/ring/gold,
-/obj/item/clothing/accessory/necklace/locket,
+/obj/item/clothing/neck/necklace/locket,
/obj/item/coin/gold,
/obj/effect/spawner/random/dirt/often,
/obj/structure/closet/crate/wooden,
@@ -10550,7 +10550,7 @@
},
/area/awaymission/jungle_planet/inside/complex)
"nAu" = (
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/indestructible/grass,
/area/awaymission/jungle_planet/outside/river)
"nAK" = (
@@ -12491,7 +12491,7 @@
/obj/item/coin/gold{
pixel_x = -9
},
-/obj/item/clothing/accessory/necklace/locket{
+/obj/item/clothing/neck/necklace/locket{
pixel_x = 9
},
/obj/item/stack/ore/plasma,
@@ -13668,7 +13668,7 @@
},
/area/awaymission/jungle_planet/inside/complex)
"rDj" = (
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plating,
/area/awaymission/jungle_planet/inside/complex)
"rEW" = (
@@ -14006,7 +14006,7 @@
/turf/simulated/floor/indestructible/grass,
/area/awaymission/jungle_planet/outside/river)
"rVt" = (
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/turf/simulated/floor/plating,
/area/awaymission/jungle_planet/outside/abandoned)
"rVw" = (
@@ -15438,7 +15438,7 @@
"tMG" = (
/obj/structure/table/reinforced,
/obj/effect/decal/cleanable/cobweb2,
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/turf/simulated/floor/plating,
/area/awaymission/jungle_planet/inside/complex)
"tNq" = (
@@ -16467,7 +16467,7 @@
"val" = (
/obj/machinery/atmospherics/pipe/simple/visible,
/obj/structure/sign/poster/contraband/random/west,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/effect/spawner/random/dirt/often,
/turf/simulated/floor/plating,
/area/awaymission/jungle_planet/inside)
@@ -16819,8 +16819,8 @@
"vvz" = (
/obj/item/clothing/shoes/sandal,
/obj/item/clothing/shoes/sandal,
-/obj/item/clothing/suit/unathi/mantle,
-/obj/item/clothing/suit/unathi/mantle,
+/obj/item/clothing/neck/cloak/unathi,
+/obj/item/clothing/neck/cloak/unathi,
/obj/item/clothing/suit/unathi/robe,
/obj/item/clothing/suit/unathi/robe,
/obj/structure/closet/crate/wooden,
@@ -17755,10 +17755,10 @@
pixel_y = 11
},
/obj/structure/stone_tile/slab,
-/obj/item/clothing/accessory/necklace/locket{
+/obj/item/clothing/neck/necklace/locket{
pixel_x = 9
},
-/obj/item/clothing/accessory/necklace/locket,
+/obj/item/clothing/neck/necklace/locket,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
"wEF" = (
diff --git a/_maps/map_files220/RandomZLevels/wildwest.dmm b/_maps/map_files220/RandomZLevels/wildwest.dmm
index fe4da4c2723c..de62efb0c7bb 100644
--- a/_maps/map_files220/RandomZLevels/wildwest.dmm
+++ b/_maps/map_files220/RandomZLevels/wildwest.dmm
@@ -1970,7 +1970,7 @@
/area/awaymission/wildwest/wildwest_mines)
"sg" = (
/obj/structure/table/glass,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/turf/simulated/floor/wood/oak,
/area/awaymission/wildwest/wildwest_mines)
"sq" = (
diff --git a/_maps/map_files220/generic/Admin_Zone.dmm b/_maps/map_files220/generic/Admin_Zone.dmm
index 4460addb6e52..b0079e3887f0 100644
--- a/_maps/map_files220/generic/Admin_Zone.dmm
+++ b/_maps/map_files220/generic/Admin_Zone.dmm
@@ -1349,7 +1349,6 @@
"eD" = (
/obj/structure/table,
/obj/item/tank/internals/oxygen/yellow,
-/obj/random/bomb_supply,
/obj/item/clothing/head/sombrero/shamebrero,
/turf/simulated/floor/wood/oak,
/area/admin)
@@ -4510,7 +4509,7 @@
/area/ghost_bar/outdoor)
"pJ" = (
/obj/structure/table/wood,
-/obj/item/toy/russian_revolver/trick_revolver,
+/obj/item/toy/russian_revolver/soul,
/turf/simulated/floor/carpet/arcade,
/area/admin)
"pL" = (
@@ -4622,8 +4621,7 @@
/area/ghost_bar/indoor)
"qh" = (
/obj/structure/table,
-/obj/random/toolbox,
-/obj/random/bomb_supply,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/machinery/syndicatebomb/badmin/clown,
/turf/simulated/floor/wood/oak,
/area/admin)
@@ -9060,7 +9058,7 @@
/area/shuttle/trade/sol)
"ES" = (
/obj/structure/table/wood,
-/obj/item/gun/projectile/revolver/russian/soul,
+/obj/item/toy/russian_revolver/soul,
/turf/simulated/floor/wood/oak,
/area/admin)
"ET" = (
@@ -10724,7 +10722,7 @@
/area/ghost_bar/indoor)
"KG" = (
/obj/structure/table,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/item/clothing/gloves/color/yellow,
/obj/item/pinpointer/advpinpointer,
/turf/simulated/floor/wood/oak,
@@ -14608,7 +14606,7 @@
/area/admin)
"Yd" = (
/obj/structure/table/wood,
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/turf/simulated/floor/wood/oak,
/area/admin)
"Ye" = (
diff --git a/_maps/map_files220/generic/Lavaland.dmm b/_maps/map_files220/generic/Lavaland.dmm
index 6d668d52241b..f712cd48fc5a 100644
--- a/_maps/map_files220/generic/Lavaland.dmm
+++ b/_maps/map_files220/generic/Lavaland.dmm
@@ -1691,7 +1691,7 @@
/area/lavaland/surface/outdoors)
"dU" = (
/obj/structure/rack,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plating,
/area/mine/outpost/maintenance/south)
"dV" = (
diff --git a/_maps/map_files220/generic/centcomm.dmm b/_maps/map_files220/generic/centcomm.dmm
index 7d4ef101a522..9a0142b7a5ff 100644
--- a/_maps/map_files220/generic/centcomm.dmm
+++ b/_maps/map_files220/generic/centcomm.dmm
@@ -5413,8 +5413,8 @@
/obj/item/clothing/glasses/hud/security/sunglasses,
/obj/item/storage/backpack/satchel,
/obj/item/clothing/under/color/black,
-/obj/item/clothing/accessory/blue,
-/obj/item/clothing/accessory/black,
+/obj/item/clothing/neck/tie/blue,
+/obj/item/clothing/neck/tie/black,
/obj/item/clothing/accessory/holster,
/obj/effect/turf_decal/tile/neutral/full{
color = "#000000"
@@ -7014,8 +7014,8 @@
name = "Supreme Judge ID card";
registered_name = "Supreme Judge"
},
-/obj/item/clothing/accessory/blue,
-/obj/item/clothing/accessory/black,
+/obj/item/clothing/neck/tie/blue,
+/obj/item/clothing/neck/tie/black,
/obj/item/clothing/accessory/holster,
/obj/effect/turf_decal/tile/neutral/full{
color = "#000000"
@@ -9044,19 +9044,19 @@
/area/shuttle/administration)
"frP" = (
/obj/structure/rack/holorack,
-/obj/item/clothing/accessory/black{
+/obj/item/clothing/neck/tie/black{
desc = null;
name = "Black tie"
},
-/obj/item/clothing/accessory/blue{
+/obj/item/clothing/neck/tie/blue{
desc = null;
name = "Blue tie"
},
-/obj/item/clothing/accessory/blue{
+/obj/item/clothing/neck/tie/blue{
desc = null;
name = "Blue tie"
},
-/obj/item/clothing/accessory/black{
+/obj/item/clothing/neck/tie/black{
desc = null;
name = "Black tie"
},
@@ -18785,8 +18785,8 @@
/obj/structure/rack,
/obj/item/reagent_containers/applicator/dual,
/obj/item/reagent_containers/applicator/dual,
-/obj/item/clothing/accessory/stethoscope,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/storage/firstaid/tactical,
/obj/item/storage/firstaid/tactical,
/turf/simulated/floor/plasteel{
@@ -39631,7 +39631,7 @@
/obj/item/folder/blue{
pixel_y = 2
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 3
},
/turf/simulated/floor/plasteel{
diff --git a/_maps/map_files220/generic/centcomm_test.dmm b/_maps/map_files220/generic/centcomm_test.dmm
index 101b14c0aff7..b18797c9a1e6 100644
--- a/_maps/map_files220/generic/centcomm_test.dmm
+++ b/_maps/map_files220/generic/centcomm_test.dmm
@@ -294,7 +294,6 @@
"eD" = (
/obj/structure/table,
/obj/item/tank/internals/oxygen/yellow,
-/obj/random/bomb_supply,
/obj/item/clothing/head/sombrero/shamebrero,
/turf/simulated/floor/wood/oak,
/area/admin)
@@ -1053,7 +1052,7 @@
/area/admin)
"pJ" = (
/obj/structure/table/wood,
-/obj/item/toy/russian_revolver/trick_revolver,
+/obj/item/toy/russian_revolver/soul,
/turf/simulated/floor/carpet/arcade,
/area/admin)
"pN" = (
@@ -1074,8 +1073,7 @@
/area/admin)
"qh" = (
/obj/structure/table,
-/obj/random/toolbox,
-/obj/random/bomb_supply,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/machinery/syndicatebomb/badmin/clown,
/turf/simulated/floor/wood/oak,
/area/admin)
@@ -1997,7 +1995,7 @@
/area/admin)
"ES" = (
/obj/structure/table/wood,
-/obj/item/gun/projectile/revolver/russian/soul,
+/obj/item/toy/russian_revolver/soul,
/turf/simulated/floor/wood/oak,
/area/admin)
"ET" = (
@@ -2478,7 +2476,7 @@
/area/shuttle/escape)
"KG" = (
/obj/structure/table,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/item/clothing/gloves/color/yellow,
/obj/item/pinpointer/advpinpointer,
/turf/simulated/floor/wood/oak,
@@ -3489,7 +3487,7 @@
/area/admin)
"Yd" = (
/obj/structure/table/wood,
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/turf/simulated/floor/wood/oak,
/area/admin)
"Yl" = (
diff --git a/_maps/map_files220/stations/boxstation.dmm b/_maps/map_files220/stations/boxstation.dmm
index bf869712ef3c..d213cd603737 100644
--- a/_maps/map_files220/stations/boxstation.dmm
+++ b/_maps/map_files220/stations/boxstation.dmm
@@ -3310,8 +3310,7 @@
/area/station/engineering/atmos)
"apy" = (
/obj/machinery/door/window/reinforced/normal{
- dir = 8;
- req_access = list(63)
+ dir = 8
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/mapping_helpers/airlock/windoor/access/any/security/general{
@@ -4226,8 +4225,7 @@
/area/station/security/processing)
"atp" = (
/obj/machinery/door/window/reinforced/normal{
- dir = 8;
- req_access = list(63)
+ dir = 8
},
/obj/effect/mapping_helpers/airlock/windoor/access/any/security/general{
dir = 8
@@ -13649,8 +13647,7 @@
"baB" = (
/obj/structure/closet/coffin,
/obj/machinery/door/window/classic/normal{
- name = "Coffin Storage";
- req_access = list(22)
+ name = "Coffin Storage"
},
/obj/structure/window/reinforced{
dir = 8
@@ -14243,7 +14240,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
-/obj/machinery/light/directional/north,
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"bcL" = (
@@ -14261,6 +14257,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/machinery/light/directional/north,
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"bcN" = (
@@ -14455,7 +14452,6 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"bdq" = (
-/obj/machinery/light/directional/north,
/obj/structure/sign/electricshock{
pixel_y = 32
},
@@ -14463,9 +14459,6 @@
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
-/obj/machinery/camera{
- c_tag = "Port Hallway 2"
- },
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/port)
"bdr" = (
@@ -15123,7 +15116,6 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"bgn" = (
-/obj/machinery/light/directional/north,
/obj/structure/sign/directions/cargo{
dir = 4;
pixel_y = 25
@@ -15274,7 +15266,6 @@
},
/area/station/hallway/secondary/entry)
"bgJ" = (
-/obj/machinery/light/directional/north,
/obj/machinery/firealarm/directional/north,
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/plasteel,
@@ -15428,8 +15419,7 @@
/obj/effect/turf_decal/delivery,
/obj/machinery/door/window/classic/reversed{
dir = 4;
- name = "Hydroponics Delivery";
- req_access = list(35)
+ name = "Hydroponics Delivery"
},
/obj/effect/mapping_helpers/airlock/windoor/access/any/service/hydroponics{
dir = 4
@@ -16641,13 +16631,13 @@
},
/area/station/service/chapel)
"bmW" = (
-/obj/structure/sign/poster/official/random/south,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/machinery/firealarm/directional/south,
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"bnd" = (
@@ -17125,13 +17115,15 @@
},
/area/station/hallway/secondary/entry)
"boT" = (
-/obj/machinery/firealarm/directional/south,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"boU" = (
@@ -17164,7 +17156,10 @@
},
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
},
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
@@ -17339,16 +17334,6 @@
/obj/item/storage/fancy/donut_box,
/turf/simulated/floor/plasteel,
/area/station/command/bridge)
-"bpF" = (
-/obj/machinery/alarm/directional/south,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/secondary/entry)
"bpM" = (
/obj/effect/landmark/start/chaplain,
/obj/structure/disposalpipe/segment,
@@ -17467,7 +17452,7 @@
/area/station/hallway/primary/central/nw)
"bqr" = (
/turf/simulated/wall,
-/area/station/public/vacant_office)
+/area/station/procedure/trainer_office)
"bqs" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -17805,8 +17790,13 @@
},
/area/station/command/bridge)
"brU" = (
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreenfull"
+ },
+/area/station/procedure/trainer_office)
"bsc" = (
/obj/effect/spawner/random/cobweb/right/frequent,
/obj/structure/rack,
@@ -17843,7 +17833,7 @@
},
/area/station/hallway/secondary/entry)
"bsi" = (
-/obj/random/plushie,
+/obj/effect/spawner/random/plushies,
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"bsk" = (
@@ -17906,6 +17896,9 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"bst" = (
@@ -18180,16 +18173,20 @@
"btA" = (
/obj/structure/table/wood,
/obj/item/storage/briefcase,
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"btB" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp{
pixel_x = -2;
pixel_y = 4
},
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"btE" = (
/obj/effect/spawner/random/barrier/grille_maybe,
/obj/structure/cable{
@@ -18200,25 +18197,33 @@
/area/station/maintenance/asmaint)
"btF" = (
/obj/item/kirbyplants,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/machinery/firealarm/directional/south,
+/turf/simulated/floor/plasteel{
+ dir = 10;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"btG" = (
/obj/structure/table/wood,
/obj/item/taperecorder{
pixel_x = -4;
pixel_y = 2
},
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
-"btH" = (
-/obj/machinery/power/apc/directional/east,
-/obj/structure/cable{
- icon_state = "0-2"
+/obj/machinery/door/window/classic/normal{
+ name = "Glass Door";
+ dir = 4
},
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer{
+ dir = 4
+ },
+/obj/item/paicard,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
+"btH" = (
/obj/structure/table/wood,
/obj/item/camera,
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"btK" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/start/explorer,
@@ -18409,25 +18414,21 @@
},
/area/station/public/dorms)
"buX" = (
-/obj/structure/computerframe,
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/obj/machinery/economy/vending/traindrobe,
+/obj/machinery/requests_console/directional/west,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"bva" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass,
/obj/effect/mapping_helpers/airlock/autoname,
/turf/simulated/floor/carpet,
/area/station/service/chapel)
-"bvb" = (
-/obj/structure/chair/comfy/black,
-/obj/machinery/newscaster/directional/north,
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
"bvc" = (
/obj/structure/table/wood,
/obj/item/hand_labeler,
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"bve" = (
/obj/structure/sign/poster/random{
pixel_y = 32
@@ -18465,14 +18466,18 @@
"bvm" = (
/obj/machinery/light_switch/west,
/obj/machinery/light/directional/west,
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/obj/machinery/door/window/classic/normal{
+ name = "Glass Door"
+ },
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"bvn" = (
/obj/structure/chair/comfy/black{
dir = 1
},
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"bvo" = (
/obj/machinery/atmospherics/unary/tank/air{
dir = 4
@@ -18721,12 +18726,12 @@
/turf/simulated/floor/plasteel,
/area/station/science/robotics/chargebay)
"bwM" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
/obj/machinery/firealarm/directional/east,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bwN" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -19074,15 +19079,18 @@
/area/station/command/bridge)
"byh" = (
/obj/item/radio/intercom/directional/south,
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
/obj/machinery/camera{
- c_tag = "Vacant Office";
+ c_tag = "Career Trainer's Office";
dir = 1
},
-/obj/structure/chair/office/dark{
- dir = 8
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/area/station/procedure/trainer_office)
"byj" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/plasteel,
@@ -19686,20 +19694,23 @@
},
/area/station/hallway/primary/central/west)
"bBr" = (
-/obj/machinery/door/airlock/public/glass,
+/obj/machinery/door/airlock/command/glass{
+ id_tag = "nct"
+ },
/obj/effect/mapping_helpers/airlock/autoname,
/obj/machinery/door/firedoor,
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "NCT"
+ },
+/turf/simulated/floor/plasteel,
+/area/station/procedure/trainer_office)
"bBy" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -20072,11 +20083,9 @@
/area/station/maintenance/aft)
"bDu" = (
/obj/machinery/light/directional/east,
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/sign/poster/official/random/east,
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"bDv" = (
@@ -20220,9 +20229,6 @@
/turf/simulated/floor/plasteel,
/area/station/service/chapel)
"bEm" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/status_display/directional/east,
@@ -21138,9 +21144,6 @@
/turf/simulated/wall,
/area/station/science/robotics)
"bIb" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 4
},
@@ -21496,9 +21499,6 @@
/area/station/science/rnd)
"bJs" = (
/obj/structure/extinguisher_cabinet/directional/east,
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/plasteel,
@@ -22610,13 +22610,13 @@
/obj/item/clipboard{
pixel_y = 3
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 3
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 9
},
/obj/machinery/light_switch/west,
@@ -22915,8 +22915,7 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/window/classic/normal{
dir = 8;
- name = "Cargo Desk";
- req_access = list(50)
+ name = "Cargo Desk"
},
/obj/structure/noticeboard{
pixel_y = 27
@@ -26069,6 +26068,10 @@
"cdN" = (
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/south)
+"cdO" = (
+/obj/structure/closet,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"cdP" = (
/obj/effect/turf_decal/stripes/corner,
/obj/structure/cable{
@@ -26534,7 +26537,7 @@
pixel_x = -6;
pixel_y = 2
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_x = 4;
pixel_y = 6
},
@@ -27340,8 +27343,7 @@
"cjG" = (
/obj/machinery/door/window/classic/reversed{
dir = 8;
- name = "Do Not Revive";
- req_access = list(6)
+ name = "Do Not Revive"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/morgue{
@@ -29287,8 +29289,6 @@
dir = 4
},
/obj/structure/cable{
- d1 = 2;
- d2 = 4;
icon_state = "2-4"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
@@ -32562,8 +32562,6 @@
dir = 4
},
/obj/structure/cable{
- d1 = 4;
- d2 = 8;
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
@@ -34260,8 +34258,7 @@
/area/station/engineering/tech_storage)
"cKD" = (
/obj/machinery/door/airlock/medical{
- locked = 1;
- req_access = list(33)
+ locked = 1
},
/obj/effect/mapping_helpers/airlock/autoname,
/obj/effect/mapping_helpers/airlock/access/any/medical/chemistry,
@@ -38379,16 +38376,9 @@
/turf/simulated/floor/wood/fancy/cherry,
/area/station/command/office/captain)
"dab" = (
-/obj/structure/table,
+/obj/machinery/autolathe,
/obj/machinery/light/directional/east,
/obj/item/radio/intercom/directional/east,
-/obj/item/stack/rods{
- amount = 50
- },
-/obj/item/stack/rods{
- amount = 50;
- pixel_y = -6
- },
/turf/simulated/floor/plasteel{
icon_state = "darkyellowfull"
},
@@ -38770,6 +38760,13 @@
/obj/structure/table,
/obj/machinery/firealarm/directional/east,
/obj/item/crowbar/large,
+/obj/item/stack/rods{
+ amount = 50
+ },
+/obj/item/stack/rods{
+ amount = 50;
+ pixel_y = -6
+ },
/obj/item/crowbar/large{
pixel_y = 4
},
@@ -45179,11 +45176,26 @@
/turf/simulated/wall/r_wall,
/area/station/maintenance/aft)
"ehb" = (
-/obj/machinery/door/airlock/public/glass,
+/obj/machinery/door/airlock/command/glass{
+ id_tag = "nct"
+ },
/obj/effect/mapping_helpers/airlock/autoname,
/obj/machinery/door/firedoor,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel,
+/area/station/procedure/trainer_office)
"ehi" = (
/obj/effect/spawner/window/reinforced/polarized/grilled{
id = "conference"
@@ -45583,6 +45595,7 @@
/obj/structure/disposalpipe/segment/corner{
dir = 8
},
+/obj/machinery/light/directional/south,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/port)
"epT" = (
@@ -45621,14 +45634,15 @@
"eqL" = (
/obj/structure/table/wood,
/obj/item/paper_bin{
- pixel_x = -2;
+ pixel_x = -6;
pixel_y = 4
},
/obj/item/pen{
- pixel_y = 8
+ pixel_x = 6
},
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/obj/structure/window/reinforced,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"eqO" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/plasteel,
@@ -47711,6 +47725,18 @@
/obj/machinery/seed_extractor,
/turf/simulated/floor/grass,
/area/station/security/permabrig)
+"ffQ" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"ffY" = (
/obj/machinery/atmospherics/pipe/simple/visible/universal{
dir = 4
@@ -49046,6 +49072,19 @@
/obj/machinery/light/small/directional/west,
/turf/simulated/floor/engine/xenobio,
/area/station/science/xenobiology)
+"fEW" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/alarm/directional/south,
+/turf/simulated/floor/plasteel,
+/area/station/hallway/secondary/entry)
"fFz" = (
/obj/machinery/firealarm/directional/west,
/obj/machinery/light_switch/south,
@@ -49306,6 +49345,11 @@
icon_state = "dark"
},
/area/station/engineering/secure_storage)
+"fKq" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/plasteel,
+/area/station/hallway/secondary/entry)
"fKw" = (
/obj/structure/sign/poster/random{
pixel_y = 32
@@ -49547,6 +49591,18 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
+"fQP" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"fRo" = (
/obj/effect/spawner/random/cobweb/right/frequent,
/obj/structure/chair,
@@ -52372,6 +52428,16 @@
icon_state = "dark"
},
/area/station/engineering/equipmentstorage)
+"gQu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Port Hallway";
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/port)
"gQD" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -52787,13 +52853,11 @@
/area/station/hallway/primary/aft)
"gXL" = (
/obj/machinery/door/window/classic/reversed{
- name = "Toxins Launcher";
- req_access = list(7)
+ name = "Toxins Launcher"
},
/obj/machinery/door/window/classic/reversed{
dir = 1;
- name = "Toxins Launcher";
- req_access = list(7)
+ name = "Toxins Launcher"
},
/obj/machinery/door/poddoor/preopen{
id_tag = "Biohazard";
@@ -53466,16 +53530,13 @@
/area/station/service/chapel/office)
"hjH" = (
/obj/machinery/light/directional/east,
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/structure/table/wood,
/obj/item/toner,
/obj/item/toner{
pixel_y = 6
},
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"hjO" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -55758,8 +55819,9 @@
/obj/structure/chair/office/dark{
dir = 4
},
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"ibM" = (
/obj/machinery/power/apc/directional/south,
/obj/structure/cable{
@@ -57058,9 +57120,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/door/airlock/command/glass{
- req_access = list(16)
- },
+/obj/machinery/door/airlock/command/glass,
/obj/effect/mapping_helpers/airlock/autoname,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -57502,10 +57562,6 @@
/turf/simulated/floor/carpet,
/area/station/maintenance/asmaint)
"iPh" = (
-/obj/machinery/camera{
- c_tag = "Port Hallway";
- dir = 1
- },
/obj/machinery/light/directional/south,
/obj/structure/disposalpipe/segment{
dir = 4
@@ -58122,8 +58178,13 @@
/area/station/maintenance/asmaint2)
"jcg" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreenfull"
+ },
+/area/station/procedure/trainer_office)
"jcp" = (
/obj/structure/musician/piano{
dir = 8
@@ -58432,9 +58493,6 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 8
},
@@ -58672,11 +58730,11 @@
},
/area/station/public/toilet/lockerroom)
"joq" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen";
+ dir = 1
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/area/station/procedure/trainer_office)
"jot" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -59606,6 +59664,15 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint2)
+"jGi" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"jGG" = (
/obj/structure/grille/broken,
/obj/item/stack/rods,
@@ -59894,6 +59961,12 @@
},
/turf/space,
/area/space/nearstation)
+"jMX" = (
+/obj/structure/filingcabinet,
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"jNd" = (
/obj/machinery/alarm/directional/south,
/turf/simulated/floor/plasteel{
@@ -63841,6 +63914,13 @@
icon_state = "bluecorner"
},
/area/station/hallway/primary/fore)
+"lnP" = (
+/obj/item/kirbyplants,
+/turf/simulated/floor/plasteel{
+ dir = 6;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"lnQ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -65351,7 +65431,6 @@
/obj/structure/window/reinforced,
/obj/machinery/door/window/classic/normal{
layer = 3;
- req_access = list(50);
dir = 1;
name = "Delivery Chute"
},
@@ -67474,7 +67553,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/random/hampter,
+/obj/effect/spawner/random/toy/hampter,
/turf/simulated/floor/plasteel{
icon_state = "grimy"
},
@@ -69188,8 +69267,8 @@
/area/station/command/office/blueshield)
"nmJ" = (
/obj/structure/chair/comfy/black,
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"nmO" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -69623,8 +69702,6 @@
dir = 8
},
/obj/structure/cable{
- d1 = 1;
- d2 = 2;
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -70120,7 +70197,7 @@
"nDi" = (
/obj/structure/bed,
/obj/machinery/light/small/directional/east,
-/obj/random/hampter,
+/obj/effect/spawner/random/toy/hampter,
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"nDq" = (
@@ -71494,6 +71571,16 @@
/obj/item/radio/intercom/directional/west,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/se)
+"ofH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Port Hallway 2";
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/port)
"ofP" = (
/obj/structure/sign/restroom{
pixel_x = 32
@@ -72474,6 +72561,21 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
+"owW" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen";
+ dir = 1
+ },
+/area/station/procedure/trainer_office)
"oxe" = (
/obj/effect/spawner/random/maintenance,
/obj/machinery/atmospherics/pipe/simple/hidden{
@@ -72524,9 +72626,18 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"oyG" = (
-/obj/machinery/alarm/directional/west,
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/obj/machinery/door_control/normal/west{
+ id = "nct";
+ name = "Office Door Control";
+ req_access = list(80);
+ pixel_y = 6
+ },
+/obj/machinery/button/windowtint/west{
+ pixel_y = -6;
+ id = "NCT"
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"oyH" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -73678,18 +73789,20 @@
/turf/simulated/floor/plasteel,
/area/station/command/bridge)
"oTT" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/hologram/holopad,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 9
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen";
+ dir = 1
+ },
+/area/station/procedure/trainer_office)
"oUf" = (
/obj/effect/turf_decal/delivery/red/hollow,
/obj/machinery/economy/vending/secdrobe,
@@ -74044,7 +74157,7 @@
/obj/structure/safe/floor{
known_by = list("captain")
},
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
/obj/item/toy/figure/crew/captain,
@@ -74562,17 +74675,18 @@
/area/station/maintenance/assembly_line)
"pjR" = (
/obj/structure/table/wood,
-/obj/item/poster/random_contraband{
- pixel_y = 2
- },
-/obj/item/poster/random_contraband{
- pixel_y = 10
- },
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/machinery/alarm/directional/south,
+/obj/item/poster/random_official,
+/obj/item/poster/random_official{
+ pixel_y = 8
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"pkf" = (
/obj/machinery/door/airlock/external{
locked = 1
@@ -75565,7 +75679,7 @@
"pAM" = (
/obj/structure/table,
/obj/item/soap/deluxe,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
@@ -77857,8 +77971,14 @@
/area/station/maintenance/fsmaint)
"qtA" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/machinery/hologram/holopad,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreenfull"
+ },
+/area/station/procedure/trainer_office)
"qtC" = (
/turf/simulated/floor/plasteel{
dir = 8;
@@ -79127,8 +79247,11 @@
/area/station/maintenance/asmaint)
"qON" = (
/obj/machinery/photocopier,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/machinery/newscaster/directional/south,
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"qOP" = (
/obj/machinery/door/airlock/atmos,
/obj/effect/mapping_helpers/airlock/autoname,
@@ -80146,21 +80269,16 @@
icon_state = "whitepurple"
},
/area/station/science/xenobiology)
-"rjP" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+"rjY" = (
+/obj/structure/table/wood,
+/obj/structure/window/reinforced{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
+/obj/machinery/photocopier/faxmachine/longrange{
+ department = "Nanotrasen Career Trainer's Office"
},
-/obj/machinery/light/directional/south,
-/turf/simulated/floor/plasteel,
-/area/station/hallway/secondary/entry)
-"rjY" = (
-/obj/structure/table/wood,
-/obj/item/paicard,
-/turf/simulated/floor/carpet,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"rkb" = (
/obj/effect/spawner/random/oil/maybe,
/obj/structure/cable{
@@ -80202,6 +80320,21 @@
icon_state = "purple"
},
/area/station/science/hallway)
+"rkX" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen";
+ dir = 1
+ },
+/area/station/procedure/trainer_office)
"rlm" = (
/obj/machinery/atmospherics/pipe/simple/visible/cyan{
dir = 9
@@ -80437,9 +80570,13 @@
/turf/simulated/floor/plasteel,
/area/station/supply/warehouse)
"rrL" = (
-/obj/structure/bookcase,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/machinery/papershredder,
+/obj/machinery/power/apc/directional/south,
+/obj/structure/cable,
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"rsv" = (
/obj/machinery/atmospherics/unary/outlet_injector/on{
dir = 8
@@ -81116,8 +81253,6 @@
/area/station/engineering/utility)
"rIw" = (
/obj/structure/cable{
- d1 = 1;
- d2 = 2;
icon_state = "1-2"
},
/obj/machinery/atmospherics/unary/vent_scrubber/on{
@@ -83351,17 +83486,17 @@
/turf/simulated/floor/plasteel,
/area/station/public/locker)
"sAq" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"sAy" = (
/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
dir = 4
@@ -84208,7 +84343,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint2)
"sPu" = (
-/obj/item/clothing/suit/mantle/old,
+/obj/item/clothing/neck/cloak/old,
/turf/simulated/floor/carpet,
/area/station/maintenance/asmaint)
"sPx" = (
@@ -86571,7 +86706,7 @@
"tMs" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/spawner/random/blood/often,
-/obj/random/mech,
+/obj/effect/spawner/random/toy/mech_figure,
/turf/simulated/floor/plating,
/area/station/maintenance/disposal)
"tMx" = (
@@ -87058,7 +87193,7 @@
/area/station/command/bridge)
"tUd" = (
/obj/structure/closet/cabinet,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/crowbar,
/obj/effect/landmark/spawner/nukedisc_respawn,
/obj/effect/spawner/random/cobweb/left/frequent,
@@ -88995,6 +89130,22 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
+"uDF" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/nanotrasen{
+ pixel_y = -32
+ },
+/turf/simulated/floor/plasteel,
+/area/station/hallway/secondary/entry)
"uDJ" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/random{
@@ -89118,9 +89269,6 @@
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
"uGE" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 8
@@ -90192,7 +90340,7 @@
/area/station/maintenance/fsmaint)
"vbD" = (
/obj/structure/bed/psych,
-/obj/random/therapy,
+/obj/effect/spawner/random/toy/therapy_doll,
/obj/machinery/newscaster/directional/east,
/turf/simulated/floor/wood/oak,
/area/station/medical/psych)
@@ -92477,6 +92625,15 @@
},
/turf/simulated/floor/carpet/green,
/area/station/public/arcade)
+"vSt" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"vSz" = (
/obj/structure/window/reinforced{
dir = 1
@@ -92675,7 +92832,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/item/clothing/shoes/sandal/white,
/obj/item/clothing/under/pants/white,
-/obj/item/clothing/accessory/scarf/white,
+/obj/item/clothing/neck/scarf/white,
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -94680,8 +94837,7 @@
"wMl" = (
/obj/machinery/door/window/classic/reversed{
dir = 4;
- name = "Do Not Revive";
- req_access = list(6)
+ name = "Do Not Revive"
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/mapping_helpers/airlock/windoor/access/any/medical/morgue{
@@ -94797,7 +94953,7 @@
/obj/structure/bed,
/obj/item/bedsheet/black,
/obj/effect/spawner/random/cobweb/right/rare,
-/obj/random/hampter,
+/obj/effect/spawner/random/toy/hampter,
/turf/simulated/floor/carpet/royalblack,
/area/station/maintenance/apmaint)
"wOf" = (
@@ -95126,9 +95282,7 @@
},
/area/station/maintenance/asmaint)
"wVH" = (
-/obj/machinery/door/airlock/security/glass{
- req_access = list(1)
- },
+/obj/machinery/door/airlock/security/glass,
/obj/effect/mapping_helpers/airlock/autoname,
/obj/structure/cable{
icon_state = "4-8"
@@ -96846,6 +97000,13 @@
"xBl" = (
/turf/simulated/floor/grass,
/area/station/security/permabrig)
+"xBp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/turf/simulated/floor/plasteel,
+/area/station/hallway/primary/port)
"xBw" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 9
@@ -98030,6 +98191,14 @@
/obj/item/trash/chips,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint2)
+"xWI" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"xWJ" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/south,
@@ -111660,7 +111829,7 @@ hCn
uGE
bDu
bEm
-plc
+fKq
bIb
bJs
jiy
@@ -112424,11 +112593,11 @@ bjO
vcQ
brk
bgB
-bqr
-buX
+vSt
+cdO
ibL
eqL
-sAq
+rkX
rrL
bqr
bFY
@@ -112680,13 +112849,13 @@ bhm
bhm
aSX
brk
-bpF
-bqr
+bgB
+fQP
rjY
btG
btB
-sAq
-rrL
+owW
+jMX
bqr
bFZ
nfo
@@ -113195,9 +113364,9 @@ bhv
aSY
brk
boT
-bqr
+ffQ
nmJ
-btB
+xWI
bvn
joq
byh
@@ -113451,9 +113620,9 @@ aMs
aMs
aMs
brn
-rjP
-bqr
-bvb
+boT
+jGi
+nmJ
btA
bvn
joq
@@ -113708,13 +113877,13 @@ biv
bkd
blJ
brk
-bgB
+uDF
bqr
bvc
btH
hjH
bwM
-btF
+lnP
bqr
bGb
bJu
@@ -113965,7 +114134,7 @@ blh
blh
blh
brp
-bgB
+fEW
bqr
bqr
bqr
@@ -114733,7 +114902,7 @@ bgM
beP
bgz
vJv
-bgz
+bki
blM
dig
dfh
@@ -118331,7 +118500,7 @@ bdk
beR
bgz
vJv
-oll
+xBp
blM
bnI
bnD
@@ -118845,7 +119014,7 @@ aaa
beL
bgA
vJv
-oll
+ofH
blM
blM
blM
@@ -120644,7 +120813,7 @@ aab
beL
bgA
vJv
-oll
+gQu
blR
iFm
rEs
diff --git a/_maps/map_files220/stations/deltastation.dmm b/_maps/map_files220/stations/deltastation.dmm
index 1b0eb5fc9a85..a1d85b2b5bc5 100644
--- a/_maps/map_files220/stations/deltastation.dmm
+++ b/_maps/map_files220/stations/deltastation.dmm
@@ -120,7 +120,7 @@
/turf/space,
/area/station/maintenance/solar_maintenance/port)
"acn" = (
-/obj/structure/machine_frame,
+/obj/machinery/autolathe,
/obj/effect/turf_decal/delivery/hollow,
/obj/machinery/economy/vending/wallmed/directional/east,
/turf/simulated/floor/plasteel{
@@ -321,9 +321,6 @@
},
/area/station/science/storage)
"adS" = (
-/obj/structure/disposalpipe/segment/corner{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
@@ -969,12 +966,18 @@
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
"ahy" = (
-/obj/machinery/door/airlock/glass,
-/obj/effect/mapping_helpers/airlock/autoname,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/door/airlock/command/glass{
+ id_tag = "nct"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
+/obj/effect/mapping_helpers/airlock/autoname,
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "NCT"
+ },
/turf/simulated/floor/plasteel,
-/area/station/public/vacant_office)
+/area/station/procedure/trainer_office)
"ahz" = (
/obj/machinery/door/airlock/external{
id_tag = "ferry_home"
@@ -1936,9 +1939,7 @@
/area/station/supply/warehouse)
"aoe" = (
/obj/structure/table,
-/obj/random/toolbox{
- pixel_y = 2
- },
+/obj/effect/spawner/random/engineering/toolbox,
/obj/machinery/newscaster/directional/east,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel,
@@ -1985,7 +1986,7 @@
/area/station/public/vacant_store)
"aoo" = (
/turf/simulated/wall,
-/area/station/public/vacant_office)
+/area/station/procedure/trainer_office)
"aop" = (
/turf/simulated/wall,
/area/station/command/customs)
@@ -2122,7 +2123,7 @@
/area/station/maintenance/fore)
"aoS" = (
/obj/structure/table,
-/obj/random/toolbox,
+/obj/effect/spawner/random/engineering/toolbox,
/obj/item/wrench,
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
@@ -2130,28 +2131,43 @@
/obj/structure/table/wood,
/obj/item/folder,
/obj/item/pen,
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"aoV" = (
/obj/machinery/photocopier,
-/obj/machinery/light/small/directional/north,
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"aoX" = (
/obj/structure/table/wood,
/obj/item/storage/briefcase{
pixel_x = 4;
pixel_y = 4
},
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch/north,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"aoY" = (
/obj/item/kirbyplants,
/obj/machinery/firealarm/directional/north,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"aoZ" = (
/obj/item/radio/intercom/directional/east,
+/obj/structure/disposalpipe/segment/corner{
+ dir = 2
+ },
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "neutralcorner"
@@ -2160,22 +2176,26 @@
"apa" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp,
-/obj/machinery/light_switch/north,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"apb" = (
/obj/structure/table/wood,
-/obj/item/taperecorder,
-/obj/machinery/light/small/directional/north,
/obj/machinery/status_display/directional/north,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
-"apc" = (
-/obj/structure/table/wood,
/obj/item/paper_bin,
/obj/item/pen,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
+"apc" = (
+/obj/structure/table/wood,
+/obj/machinery/requests_console/directional/north,
+/obj/machinery/photocopier/faxmachine/longrange{
+ department = "Nanotrasen Career Trainer's Office"
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"ape" = (
/obj/structure/table/reinforced,
/obj/item/storage/box/ids{
@@ -2396,14 +2416,22 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"apL" = (
-/obj/structure/chair/office/light{
+/obj/structure/chair/office/dark{
dir = 1
},
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"apM" = (
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"apP" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -2426,19 +2454,35 @@
},
/obj/item/folder/yellow,
/obj/item/pen,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/machinery/door/window/classic/normal{
+ name = "Glass Door";
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"apS" = (
-/obj/structure/chair/office/light{
+/obj/structure/chair/office/dark{
dir = 8
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"apT" = (
-/obj/machinery/status_display/directional/east,
-/obj/structure/computerframe,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/structure/filingcabinet,
+/obj/machinery/door_control/normal/east{
+ pixel_y = 6;
+ id = "nct";
+ name = "Office Door Control";
+ req_access = list(80)
+ },
+/obj/machinery/button/windowtint/east{
+ pixel_y = -6;
+ id = "NCT"
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"apV" = (
/obj/machinery/keycard_auth/west,
/turf/simulated/floor/plasteel{
@@ -2695,35 +2739,40 @@
},
/area/station/maintenance/fore)
"aqI" = (
-/obj/structure/chair/office/light,
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/obj/structure/chair/office/dark,
+/turf/simulated/floor/plasteel{
+ dir = 10;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"aqJ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/unary/vent_pump/on{
- dir = 4
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
},
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/area/station/procedure/trainer_office)
"aqN" = (
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkgreencorners"
+ },
+/area/station/procedure/trainer_office)
"aqO" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
+/obj/machinery/door/window/classic/normal{
+ name = "Glass Door";
dir = 8
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"aqQ" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/structure/closet,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"aqR" = (
/obj/machinery/ai_status_display/west,
/obj/machinery/computer/crew{
@@ -2774,8 +2823,8 @@
/obj/item/paper_bin,
/obj/item/pen,
/obj/machinery/newscaster/directional/south,
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"aqZ" = (
/turf/simulated/floor/plasteel{
icon_state = "redcorner"
@@ -2948,7 +2997,7 @@
dir = 8
},
/obj/machinery/atmospherics/unary/vent_scrubber/on,
-/obj/random/hampter,
+/obj/effect/spawner/random/toy/hampter,
/obj/effect/mapping_helpers/turfs/damage,
/turf/simulated/floor/wood/oak,
/area/station/maintenance/electrical_shop)
@@ -2964,8 +3013,9 @@
dir = 1
},
/obj/item/radio/intercom/directional/south,
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/obj/item/taperecorder,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"ary" = (
/obj/structure/computerframe{
dir = 8
@@ -2997,31 +3047,37 @@
/obj/structure/table/wood,
/obj/item/phone,
/obj/machinery/newscaster/directional/south,
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"arC" = (
-/obj/structure/filingcabinet/chestdrawer,
-/obj/machinery/light/small/directional/south,
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/obj/machinery/papershredder,
+/obj/machinery/light/directional/south,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"arE" = (
/obj/structure/cable{
icon_state = "2-8"
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/plasteel{
+ dir = 6;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"arF" = (
/obj/item/kirbyplants,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"arG" = (
-/obj/structure/table/wood,
-/obj/item/camera,
-/obj/machinery/light/small/directional/south,
-/obj/item/camera_film,
-/obj/item/camera_film,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/machinery/economy/vending/traindrobe,
+/obj/machinery/light/directional/south,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"arH" = (
/obj/machinery/light/small/directional/north,
/obj/effect/decal/cleanable/dirt,
@@ -3260,8 +3316,8 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"ast" = (
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"asw" = (
/obj/machinery/status_display/directional/west,
/obj/machinery/computer/med_data{
@@ -7664,6 +7720,7 @@
/obj/effect/mapping_helpers/airlock/autoname,
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/access/any/service/bar,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -8299,6 +8356,7 @@
c_tag = "Theatre East";
dir = 8
},
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -8887,14 +8945,6 @@
},
/turf/simulated/floor/wood/oak,
/area/station/security/permabrig)
-"aNj" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/simulated/floor/plasteel{
- icon_state = "dark"
- },
-/area/station/service/bar)
"aNk" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -10124,16 +10174,13 @@
},
/area/station/maintenance/fsmaint)
"aTj" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/disposalpipe/segment/corner{
+ dir = 8
},
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
+ icon_state = "dark"
},
-/area/station/hallway/primary/fore)
+/area/station/service/bar)
"aTp" = (
/obj/item/kirbyplants,
/turf/simulated/floor/carpet,
@@ -12412,21 +12459,6 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/plasteel/white,
/area/station/service/kitchen)
-"bdO" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 4
- },
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
- },
-/area/station/hallway/primary/fore)
"bdP" = (
/turf/simulated/floor/plasteel{
icon_state = "redfull"
@@ -12535,7 +12567,7 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/disposalpipe/junction/y{
+/obj/structure/disposalpipe/segment/corner{
dir = 4
},
/turf/simulated/floor/plasteel{
@@ -15979,8 +16011,10 @@
/area/station/hallway/primary/central/north)
"bsq" = (
/obj/machinery/disposal,
-/obj/structure/disposalpipe/trunk,
/obj/machinery/requests_console/directional/north,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -17438,6 +17472,7 @@
/obj/item/aicard{
pixel_y = 5
},
+/obj/item/multitool/command,
/turf/simulated/floor/plasteel/dark,
/area/station/command/bridge)
"bza" = (
@@ -24707,9 +24742,16 @@
/area/station/maintenance/disposal/west)
"bXo" = (
/obj/structure/table/glass,
-/obj/machinery/light_switch/north,
+/obj/machinery/light_switch/north{
+ pixel_x = -6
+ },
/obj/structure/extinguisher_cabinet/directional/east,
-/obj/item/soap,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/machinery/button/windowtint/west{
+ id = "paramedic";
+ pixel_x = 6;
+ pixel_y = 24
+ },
/turf/simulated/floor/plasteel{
dir = 5;
icon_state = "whiteblue"
@@ -28177,6 +28219,9 @@
/obj/effect/mapping_helpers/airlock/autoname,
/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance,
/obj/effect/mapping_helpers/airlock/access/any/service/theatre,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"ckm" = (
@@ -34546,6 +34591,11 @@
pixel_y = 10;
pixel_x = 6
},
+/obj/item/stack/sheet/mineral/plasma{
+ amount = 10;
+ pixel_y = -3;
+ pixel_x = -15
+ },
/turf/simulated/floor/plasteel{
icon_state = "whiteyellowfull"
},
@@ -34939,7 +34989,7 @@
"cOF" = (
/obj/effect/decal/cleanable/blood,
/obj/effect/decal/cleanable/crayon,
-/obj/item/clothing/suit/mantle/old,
+/obj/item/clothing/neck/cloak/old,
/turf/simulated/floor/carpet,
/area/station/maintenance/port)
"cOG" = (
@@ -38932,7 +38982,9 @@
},
/area/station/hallway/primary/aft)
"dgD" = (
-/obj/effect/spawner/window/reinforced/grilled,
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "paramedic"
+ },
/turf/simulated/floor/plating,
/area/station/medical/paramedic)
"dgE" = (
@@ -40436,12 +40488,12 @@
/turf/simulated/floor/plasteel/dark,
/area/station/maintenance/abandonedbar)
"dnJ" = (
-/obj/machinery/disposal,
/obj/machinery/camera{
c_tag = "Medbay Paramedic";
network = list("Medbay","SS13");
dir = 1
},
+/obj/structure/closet/paramedic,
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "whiteblue"
@@ -40725,7 +40777,6 @@
/turf/simulated/floor/plating,
/area/station/maintenance/port2)
"dpf" = (
-/obj/structure/closet/paramedic,
/obj/item/radio/intercom/directional/south,
/turf/simulated/floor/plasteel{
icon_state = "whiteblue"
@@ -41009,6 +41060,15 @@
icon_state = "whitegreen"
},
/area/station/medical/medbay)
+"dqB" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"dqC" = (
/obj/machinery/door/window/classic/reversed{
name = "Chemistry Delivery"
@@ -43300,6 +43360,9 @@
"dCT" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment/corner{
+ dir = 1
+ },
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -48340,6 +48403,9 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "paramedic"
+ },
/obj/effect/mapping_helpers/airlock/access/any/medical/paramedic,
/turf/simulated/floor/plasteel{
icon_state = "white"
@@ -51212,9 +51278,6 @@
/turf/simulated/floor/plating,
/area/station/supply/warehouse)
"fbk" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
@@ -54044,13 +54107,8 @@
},
/area/station/maintenance/port)
"fWM" = (
-/obj/structure/table,
/obj/machinery/firealarm/directional/south,
-/obj/item/stack/sheet/mineral/plasma{
- amount = 10;
- pixel_y = 6
- },
-/obj/item/hand_labeler,
+/obj/structure/reagent_dispensers/oil,
/turf/simulated/floor/plasteel{
icon_state = "whiteyellow"
},
@@ -54843,7 +54901,7 @@
/obj/structure/table/wood,
/obj/item/reagent_containers/drinks/drinkingglass/shotglass,
/obj/effect/decal/cleanable/dirt,
-/obj/item/gun/projectile/revolver/russian{
+/obj/item/toy/russian_revolver{
pixel_y = 12
},
/turf/simulated/floor/wood/oak,
@@ -55404,6 +55462,9 @@
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/structure/disposalpipe/segment/corner{
+ dir = 2
+ },
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
},
@@ -56825,6 +56886,15 @@
/obj/item/shard,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
+"gTa" = (
+/obj/structure/chair/office/dark,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"gTc" = (
/obj/structure/railing/corner{
dir = 8
@@ -57283,6 +57353,17 @@
icon_state = "caution"
},
/area/station/maintenance/electrical)
+"hbo" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"hbq" = (
/obj/effect/spawner/window/reinforced/plasma/grilled,
/obj/machinery/atmospherics/pipe/simple/visible,
@@ -57299,7 +57380,7 @@
/obj/structure/safe/floor{
known_by = list("captain")
},
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/obj/item/toy/figure/crew/captain,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
/obj/item/lighter/zippo/nt_rep,
@@ -59284,7 +59365,7 @@
/area/station/security/checkpoint/south)
"hIj" = (
/obj/structure/bed/psych,
-/obj/random/therapy,
+/obj/effect/spawner/random/toy/therapy_doll,
/obj/effect/turf_decal/siding/wood/oak,
/turf/simulated/floor/wood/oak,
/area/station/medical/psych)
@@ -61133,9 +61214,8 @@
/obj/structure/table/wood,
/obj/item/paper_bin,
/obj/item/pen,
-/obj/machinery/newscaster/directional/north,
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"imx" = (
/obj/item/kirbyplants,
/turf/simulated/floor/plasteel{
@@ -62512,6 +62592,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -64111,6 +64192,9 @@
pixel_y = 6;
pixel_x = 16
},
+/obj/item/hand_labeler{
+ pixel_x = 6
+ },
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whiteyellow"
@@ -65060,7 +65144,7 @@
"jvm" = (
/obj/structure/table/reinforced,
/obj/effect/decal/cleanable/dirt,
-/obj/random/hampter,
+/obj/effect/spawner/random/toy/hampter,
/turf/simulated/floor/plasteel{
icon_state = "redyellowfull"
},
@@ -69874,6 +69958,12 @@
/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance,
/turf/simulated/floor/plasteel,
/area/station/maintenance/port)
+"kWy" = (
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen";
+ dir = 1
+ },
+/area/station/procedure/trainer_office)
"kWB" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -69899,6 +69989,15 @@
/obj/machinery/light/directional/south,
/turf/simulated/floor/engine,
/area/station/science/test_chamber)
+"kWK" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"kWO" = (
/obj/structure/chair/sofa/corp/left{
dir = 1
@@ -72687,7 +72786,7 @@
pixel_x = -6;
pixel_y = 2
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_x = 14;
pixel_y = 4
},
@@ -73180,7 +73279,7 @@
"lYq" = (
/obj/structure/table/wood/poker,
/obj/effect/decal/cleanable/dirt,
-/obj/random/hampter,
+/obj/effect/spawner/random/toy/hampter,
/turf/simulated/floor/plasteel/grimy,
/area/station/maintenance/abandonedbar)
"lYz" = (
@@ -73811,13 +73910,13 @@
/obj/item/clipboard{
pixel_y = 3
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 3
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 9
},
/obj/machinery/door/poddoor/preopen{
@@ -74209,10 +74308,18 @@
},
/area/station/public/toilet)
"mqF" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"mqG" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -75986,6 +76093,15 @@
},
/turf/simulated/floor/wood/parquet/tile,
/area/station/service/library)
+"mWg" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen";
+ dir = 1
+ },
+/area/station/procedure/trainer_office)
"mWM" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -76004,16 +76120,20 @@
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"mXk" = (
-/obj/effect/spawner/window/reinforced/grilled,
-/obj/structure/disposalpipe/segment{
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4
},
-/obj/machinery/door/poddoor/shutters/preopen{
- id_tag = "Bar";
- name = "Bar Privacy Shutters"
+/obj/structure/disposalpipe/segment,
+/turf/simulated/floor/plasteel{
+ icon_state = "neutralfull"
},
-/turf/simulated/floor/plating,
-/area/station/service/bar)
+/area/station/hallway/primary/fore)
"mXo" = (
/obj/structure/chair/sofa/bench/right{
cover_color = "#68452a";
@@ -77425,6 +77545,7 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
},
@@ -77712,6 +77833,9 @@
/obj/structure/cable{
icon_state = "1-4"
},
+/obj/structure/disposalpipe/segment/corner{
+ dir = 4
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"nxy" = (
@@ -78248,8 +78372,11 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/turf/simulated/floor/plasteel{
+ dir = 10;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"nEn" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -78906,6 +79033,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "neutralcorner"
@@ -80468,19 +80598,6 @@
"oij" = (
/turf/simulated/floor/plating,
/area/station/maintenance/fore2)
-"oir" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/disposalpipe/segment/corner{
- dir = 2
- },
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
- },
-/area/station/hallway/primary/fore)
"oiz" = (
/obj/machinery/shower{
dir = 4;
@@ -81520,9 +81637,6 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/secondary/entry)
"oBi" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
@@ -82560,9 +82674,6 @@
},
/area/station/science/lobby)
"oTh" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
@@ -82853,8 +82964,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"oYg" = (
/obj/structure/chair/light{
dir = 1
@@ -83526,18 +83639,6 @@
icon_state = "brown"
},
/area/station/supply/miningdock)
-"pic" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/simulated/floor/plating,
-/area/station/maintenance/fore)
"pid" = (
/obj/structure/table/wood,
/obj/item/storage/fancy/crayons,
@@ -86377,11 +86478,8 @@
/area/station/maintenance/starboard)
"qbx" = (
/obj/structure/table,
-/obj/random/tool,
-/obj/random/tool{
- pixel_x = 3;
- pixel_y = 5
- },
+/obj/effect/spawner/random/engineering/tools,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plating,
/area/station/maintenance/virology_maint)
"qbB" = (
@@ -87062,6 +87160,21 @@
icon_state = "neutral"
},
/area/station/public/locker)
+"qnj" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"qno" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
@@ -87609,6 +87722,9 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment/corner{
+ dir = 1
+ },
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
},
@@ -88879,6 +88995,15 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/turf/simulated/floor/carpet,
/area/station/service/library)
+"qQa" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen";
+ dir = 1
+ },
+/area/station/procedure/trainer_office)
"qQx" = (
/obj/machinery/atmospherics/pipe/simple/heat_exchanging{
dir = 10
@@ -89082,6 +89207,15 @@
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel/dark,
/area/station/maintenance/apmaint)
+"qSe" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkgreencorners"
+ },
+/area/station/procedure/trainer_office)
"qSh" = (
/obj/machinery/door/airlock/external{
hackProof = 1;
@@ -91425,12 +91559,13 @@
/turf/simulated/floor/plasteel,
/area/station/medical/virology/test_room)
"rCA" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/effect/turf_decal/delivery/partial{
dir = 8
},
+/obj/structure/disposalpipe/sortjunction/reversed{
+ dir = 4;
+ sort_type_txt = "19"
+ },
/turf/simulated/floor/plasteel{
dir = 4;
icon_state = "neutralcorner"
@@ -92106,6 +92241,10 @@
icon_state = "dark_small"
},
/area/station/security/execution)
+"rQn" = (
+/obj/machinery/status_display/directional/east,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"rQp" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -93120,11 +93259,9 @@
/area/station/medical/virology)
"sgA" = (
/obj/machinery/disposal,
-/obj/structure/disposalpipe/trunk{
- dir = 4
- },
/obj/effect/turf_decal/delivery,
/obj/machinery/light_switch/north,
+/obj/structure/disposalpipe/trunk,
/turf/simulated/floor/plasteel{
dir = 9;
icon_state = "green"
@@ -96277,7 +96414,7 @@
/area/station/service/library)
"teK" = (
/obj/structure/rack,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
@@ -96792,6 +96929,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
+/obj/structure/sign/nanotrasen{
+ pixel_y = -32
+ },
/turf/simulated/floor/plasteel{
icon_state = "arrival"
},
@@ -98761,14 +98901,17 @@
},
/area/station/maintenance/starboard2)
"tUZ" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 5
+/obj/structure/cable{
+ icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
},
-/turf/simulated/floor/wood/oak,
-/area/station/public/vacant_office)
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"tVj" = (
/obj/effect/spawner/window/reinforced/grilled,
/obj/structure/cable{
@@ -98869,8 +99012,9 @@
},
/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/autoname,
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
/turf/simulated/floor/plating,
-/area/station/public/vacant_office)
+/area/station/procedure/trainer_office)
"tWL" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -99047,12 +99191,14 @@
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"tYC" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-2"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel{
- dir = 1;
- icon_state = "neutralcorner"
+ icon_state = "neutralfull"
},
/area/station/hallway/primary/fore)
"tYD" = (
@@ -102164,6 +102310,7 @@
/obj/effect/landmark/lightsout,
/obj/machinery/hologram/holopad,
/obj/effect/turf_decal/delivery/hollow,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
},
@@ -102382,6 +102529,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/firealarm/directional/west,
+/obj/structure/disposalpipe/segment/corner{
+ dir = 4
+ },
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -103770,7 +103920,7 @@
"vCV" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
-/obj/random/tool,
+/obj/effect/spawner/random/engineering/tools,
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"vCZ" = (
@@ -103912,16 +104062,11 @@
/obj/structure/table/wood,
/obj/item/stack/package_wrap,
/obj/item/hand_labeler,
-/obj/machinery/newscaster/directional/north,
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
-"vEV" = (
-/obj/structure/chair/office/light,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/simulated/floor/plasteel/grimy,
-/area/station/public/vacant_office)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"vFu" = (
/obj/machinery/atmospherics/unary/portables_connector{
dir = 8
@@ -104136,6 +104281,9 @@
icon_state = "4-8"
},
/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"vJi" = (
@@ -105111,7 +105259,6 @@
/turf/simulated/floor/engine/co2,
/area/station/engineering/atmos)
"vYE" = (
-/obj/structure/disposalpipe/junction/reversed,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 8
},
@@ -105124,6 +105271,10 @@
/obj/structure/cable{
icon_state = "2-4"
},
+/obj/structure/disposalpipe/sortjunction/reversed{
+ dir = 2;
+ sort_type_txt = "21"
+ },
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"vYI" = (
@@ -108452,6 +108603,7 @@
},
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/access/any/service/bar,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"xaQ" = (
@@ -110091,11 +110243,11 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/structure/disposalpipe/segment,
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/delivery,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
},
@@ -110451,6 +110603,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -143976,9 +144129,9 @@ aaa
adb
ant
anP
-aoo
+dqB
imf
-apM
+kWy
aqJ
arB
aoo
@@ -144231,12 +144384,12 @@ aaa
abj
aaa
adb
-ant
-nCK
-aoo
+ann
+anP
+qnj
aoV
+mWg
apM
-oYb
arC
aoo
uCt
@@ -144490,9 +144643,9 @@ aaa
acC
ant
anP
-aoo
+kWK
vET
-apM
+qQa
oYb
aqY
aoo
@@ -144749,8 +144902,8 @@ ant
rBP
aoo
aoX
-apM
-vEV
+qQa
+gTa
arx
aoo
aVK
@@ -145006,7 +145159,7 @@ ant
anP
aoo
aoY
-ast
+qSe
aqN
nEe
aoo
@@ -145262,7 +145415,7 @@ acC
ant
dWx
ahy
-mqF
+hbo
mqF
tUZ
arE
@@ -146035,7 +146188,7 @@ nCK
aoo
apc
apT
-ast
+rQn
aqQ
aoo
azb
@@ -147338,7 +147491,7 @@ nxx
xaO
iIC
xIG
-aQb
+aTj
aFA
bsq
adS
@@ -148362,14 +148515,14 @@ aAE
aIQ
aES
aYP
-pic
+mzd
hvS
qCk
aHR
aJb
raD
aZZ
-aNj
+aQb
aQb
dMp
mit
@@ -148626,7 +148779,7 @@ aFA
aFA
aFA
aFA
-mXk
+aOH
aOH
aFA
aFA
@@ -148883,7 +149036,7 @@ bhO
bhO
aKt
qul
-tYC
+bhO
aWq
bhO
qWV
@@ -149134,17 +149287,17 @@ vMg
vMg
uFI
guk
-vMg
+tYC
uXv
-qvT
-qvT
-qvT
+ima
+ima
+ima
nsL
-oir
-bdO
+ima
+mXk
ima
xCn
-aTj
+qvT
beb
bOD
ima
diff --git a/_maps/map_files220/stations/metastation.dmm b/_maps/map_files220/stations/metastation.dmm
index 39851a8b89fd..202f84fb9fd3 100644
--- a/_maps/map_files220/stations/metastation.dmm
+++ b/_maps/map_files220/stations/metastation.dmm
@@ -532,12 +532,20 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"agh" = (
-/obj/structure/table,
-/obj/item/multitool,
+/obj/machinery/light{
+ dir = 8
+ },
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/maintenance,
-/turf/simulated/floor/plating,
-/area/station/maintenance/fsmaint)
+/obj/machinery/requests_console/directional/west,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/mob/living/simple_animal/lizard{
+ name = "Wags-His-Tail";
+ real_name = "Wags-His-Tail"
+ },
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"agi" = (
/turf/simulated/floor/catwalk,
/area/station/maintenance/fore)
@@ -1679,12 +1687,12 @@
/area/station/maintenance/port)
"anI" = (
/obj/structure/rack,
-/obj/item/clothing/accessory/red{
+/obj/item/clothing/neck/tie/red{
pixel_x = -5;
pixel_y = 3
},
-/obj/item/clothing/accessory/horrible,
-/obj/item/clothing/accessory/blue{
+/obj/item/clothing/neck/tie/horrible,
+/obj/item/clothing/neck/tie/blue{
pixel_x = 5;
pixel_y = -2
},
@@ -2465,7 +2473,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -3165,7 +3173,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -3456,12 +3464,6 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
-"awv" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/cyan,
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
- },
-/area/station/maintenance/fsmaint)
"aww" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -5524,15 +5526,6 @@
icon_state = "barber"
},
/area/station/public/dorms)
-"aFM" = (
-/obj/effect/spawner/random/barrier/grille_often,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
- },
-/area/station/maintenance/fsmaint)
"aFO" = (
/obj/effect/spawner/random/fungus/frequent,
/turf/simulated/wall,
@@ -10083,7 +10076,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/turf/simulated/floor/plasteel,
/area/station/public/fitness)
@@ -10094,11 +10087,10 @@
/area/station/command/office/hos)
"aWf" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plating,
-/area/station/maintenance/fsmaint)
+/obj/structure/closet/jcloset,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"aWi" = (
/obj/structure/extinguisher_cabinet/directional/east,
/obj/item/kirbyplants/plant11,
@@ -12213,18 +12205,17 @@
/area/station/service/chapel)
"bdr" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/structure/cable/yellow{
- icon_state = "2-4"
+/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
+ dir = 5;
+ level = 2
},
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"bds" = (
@@ -13746,20 +13737,36 @@
/turf/simulated/wall,
/area/station/service/janitor)
"bhr" = (
+/obj/machinery/door/airlock/command/glass{
+ id_tag = "nct"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/disposalpipe/segment,
-/obj/machinery/door/airlock,
/obj/effect/mapping_helpers/airlock/autoname,
-/obj/effect/mapping_helpers/airlock/access/any/service/janitor,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "NCT"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/procedure/trainer_office)
"bht" = (
/turf/simulated/wall,
/area/station/maintenance/maintcentral)
"bhu" = (
-/obj/machinery/door/airlock,
+/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/autoname,
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -13867,17 +13874,19 @@
},
/area/station/engineering/tech_storage)
"bhK" = (
-/obj/structure/disposalpipe/segment/corner{
- dir = 2
+/obj/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
},
-/obj/structure/closet/jcloset,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light_switch/east{
- pixel_y = -6
+/obj/machinery/camera{
+ c_tag = "Career Trainer's Office"
},
-/obj/machinery/firealarm/directional/north,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/machinery/light_switch/north,
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bhL" = (
/obj/machinery/hologram/holopad,
/obj/structure/cable/yellow{
@@ -14311,30 +14320,30 @@
},
/area/station/hallway/primary/central)
"biY" = (
-/obj/structure/reagent_dispensers/watertank,
-/obj/structure/reagent_dispensers/spacecleanertank/north,
-/obj/machinery/light/directional/west,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/machinery/economy/vending/traindrobe,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"biZ" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/disposalpipe/segment/corner{
dir = 1
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"bja" = (
-/obj/structure/closet/l3closet/janitor,
-/obj/machinery/alarm/directional/north,
+/obj/item/kirbyplants,
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"bjb" = (
/obj/structure/table/wood,
/obj/item/folder/blue,
@@ -14899,54 +14908,46 @@
},
/area/station/hallway/primary/central)
"bkL" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+/obj/structure/chair/comfy/black,
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
-/obj/effect/landmark/start/janitor,
-/turf/simulated/floor/plating,
-/area/station/service/janitor)
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
+ },
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"bkM" = (
/obj/structure/cable/yellow{
- icon_state = "2-4"
+ icon_state = "1-2"
},
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"bkN" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
},
-/obj/structure/disposalpipe/segment,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
-"bkO" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkgreen"
},
+/area/station/procedure/trainer_office)
+"bkO" = (
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer,
/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/autoname,
-/obj/effect/mapping_helpers/airlock/access/any/service/janitor,
-/turf/simulated/floor/plating,
-/area/station/maintenance/maintcentral)
-"bkP" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
/turf/simulated/floor/plating,
-/area/station/maintenance/maintcentral)
+/area/station/procedure/trainer_office)
"bkQ" = (
/obj/item/flashlight{
pixel_x = 1;
pixel_y = 5
},
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
/obj/structure/cable/yellow{
icon_state = "1-2"
},
@@ -15063,27 +15064,18 @@
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central)
"bll" = (
-/obj/structure/closet/emcloset,
-/obj/structure/sign/double/map/left{
- desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
- icon_state = "map-left-MS";
- pixel_y = 32
- },
-/turf/simulated/floor/plasteel{
- icon_state = "darkneutralfull"
- },
-/area/station/hallway/primary/starboard)
+/obj/structure/sign/custodian,
+/turf/simulated/wall,
+/area/station/service/janitor)
"blm" = (
-/obj/structure/sign/double/map/right{
- desc = "A framed picture of the station. Clockwise from security in red at the top, you see engineering in yellow, science in purple, escape in checkered red-and-white, medbay in green, arrivals in checkered red-and-blue, and then cargo in brown.";
- icon_state = "map-right-MS";
- pixel_y = 32
- },
-/obj/structure/closet/firecloset,
-/turf/simulated/floor/plasteel{
- icon_state = "darkneutralfull"
- },
-/area/station/hallway/primary/starboard)
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/effect/mapping_helpers/airlock/access/all/service/janitor,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/door/airlock,
+/obj/effect/mapping_helpers/airlock/autoname,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"bln" = (
/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/autoname,
@@ -15553,26 +15545,46 @@
/turf/simulated/floor/plating,
/area/station/public/storage/emergency)
"bmC" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/structure/table/wood,
+/obj/machinery/door/window/reinforced/normal{
+ name = "NCT";
+ dir = 1
},
-/obj/machinery/atmospherics/unary/vent_pump/on{
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer{
dir = 1
},
-/mob/living/simple_animal/lizard{
- name = "Wags-His-Tail";
- real_name = "Wags-His-Tail"
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/area/station/procedure/trainer_office)
"bmD" = (
+/obj/item/flashlight/lamp/green{
+ pixel_y = 15
+ },
/obj/structure/cable/yellow{
- icon_state = "1-8"
+ icon_state = "1-2"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/machinery/door_control{
+ id = "nct";
+ name = "Office Door";
+ normaldoorcontrol = 1;
+ req_access = list(80);
+ pixel_x = -6
+ },
+/obj/structure/table/wood,
+/obj/machinery/button/windowtint{
+ id = "NCT";
+ dir = 8;
+ pixel_x = 6
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/station/procedure/trainer_office)
"bmE" = (
/obj/machinery/newscaster/directional/east,
/obj/structure/disposalpipe/segment/corner{
@@ -15598,7 +15610,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -15623,30 +15635,41 @@
},
/area/station/security/checkpoint/secondary)
"bmQ" = (
-/obj/structure/table,
-/obj/structure/cable/yellow{
- icon_state = "0-4"
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_y = 4;
+ pixel_x = -5
},
-/obj/item/key/janitor,
-/obj/item/reagent_containers/spray/cleaner,
-/obj/machinery/power/apc/directional/west,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/box/lights/mixed,
-/obj/item/storage/box/lights/mixed,
-/obj/item/grenade/chem_grenade/cleaner,
-/obj/item/grenade/chem_grenade/cleaner,
-/obj/item/grenade/chem_grenade/cleaner,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/item/pen{
+ pixel_x = 8;
+ pixel_y = 5
+ },
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bmR" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
+/obj/item/radio/intercom{
+ name = "east bump";
+ pixel_x = 28
},
-/turf/simulated/floor/plasteel{
- icon_state = "neutralfull"
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 12
},
-/area/station/maintenance/fsmaint)
+/obj/structure/janitorialcart,
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"bmT" = (
/obj/machinery/porta_turret/ai_turret,
/turf/simulated/floor/plasteel{
@@ -15765,15 +15788,6 @@
icon_state = "cautioncorner"
},
/area/station/hallway/primary/starboard)
-"bnj" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/simulated/floor/plasteel{
- dir = 4;
- icon_state = "cautioncorner"
- },
-/area/station/hallway/primary/starboard)
"bnk" = (
/obj/machinery/door/firedoor,
/turf/simulated/floor/plasteel{
@@ -16151,15 +16165,25 @@
/turf/simulated/floor/plasteel,
/area/station/supply/lobby)
"bou" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/economy/vending/janidrobe,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/machinery/requests_console/directional/south,
+/obj/machinery/photocopier/faxmachine/longrange{
+ department = "Nanotrasen Career Trainer's Office"
+ },
+/obj/structure/table/wood,
+/turf/simulated/floor/plasteel{
+ dir = 10;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bov" = (
-/obj/structure/janitorialcart,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/obj/effect/landmark/start/nanotrasen_career_trainer,
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bow" = (
/obj/effect/turf_decal/delivery/hollow,
/obj/machinery/atmospherics/portable/canister/nitrogen,
@@ -16169,13 +16193,16 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos/control)
"box" = (
-/obj/structure/disposalpipe/trunk{
- dir = 1
+/obj/machinery/power/apc/directional/east,
+/obj/machinery/alarm/directional/south,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
},
-/obj/machinery/disposal,
-/obj/effect/decal/cleanable/dirt,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/turf/simulated/floor/plasteel{
+ dir = 6;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"boy" = (
/obj/item/storage/box/lights/mixed,
/turf/simulated/floor/plating,
@@ -16279,22 +16306,13 @@
/turf/simulated/floor/carpet,
/area/station/command/office/captain/bedroom)
"boN" = (
-/obj/item/restraints/legcuffs/beartrap,
-/obj/item/restraints/legcuffs/beartrap,
-/obj/machinery/requests_console/directional/west,
-/obj/machinery/camera{
- c_tag = "Custodial Closet";
- dir = 4
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
},
-/obj/item/mop,
-/obj/item/reagent_containers/glass/bucket,
-/obj/structure/rack,
-/obj/item/clothing/gloves/color/orange,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/box/mousetraps,
-/obj/item/storage/box/mousetraps,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/structure/closet,
+/turf/simulated/floor/carpet/black,
+/area/station/procedure/trainer_office)
"boO" = (
/obj/structure/cable/yellow{
icon_state = "1-4"
@@ -16331,42 +16349,6 @@
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/starboard)
-"boS" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/starboard)
-"boV" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/simulated/floor/plasteel,
-/area/station/hallway/primary/starboard)
"boX" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -16702,13 +16684,18 @@
},
/area/station/supply/office)
"bpQ" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/landmark/start/janitor,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/radio/intercom/directional/east,
-/obj/structure/sink/directional/west,
-/turf/simulated/floor/plasteel,
-/area/station/service/janitor)
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer{
+ dir = 1
+ },
+/obj/machinery/door/window/reinforced/normal{
+ name = "NCT";
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bpS" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/disposalpipe/segment,
@@ -17576,10 +17563,13 @@
},
/area/station/engineering/ai_transit_tube)
"bsE" = (
-/obj/machinery/light/small/directional/south,
-/obj/vehicle/janicart,
-/turf/simulated/floor/plating,
-/area/station/service/janitor)
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "darkgreen"
+ },
+/area/station/procedure/trainer_office)
"bsG" = (
/obj/machinery/hologram/holopad,
/obj/machinery/light/small/directional/north,
@@ -19529,7 +19519,7 @@
/obj/structure/safe/floor{
known_by = list("captain")
},
-/obj/item/gun/projectile/revolver/russian,
+/obj/item/toy/russian_revolver,
/obj/item/reagent_containers/drinks/bottle/absinthe/premium,
/obj/item/lighter/zippo/nt_rep,
/obj/item/storage/fancy/cigarettes/cigpack_robustgold,
@@ -24053,7 +24043,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/machinery/light/small/directional/south,
+/obj/machinery/light/small,
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
},
@@ -27737,11 +27727,11 @@
},
/area/station/command/bridge)
"cca" = (
-/obj/item/clothing/accessory/stethoscope,
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope,
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 3
},
/obj/item/flashlight/pen{
@@ -28371,7 +28361,7 @@
sort_type_txt = "7"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -30982,6 +30972,12 @@
/area/station/medical/reception)
"cop" = (
/obj/structure/closet/secure_closet/paramedic,
+/obj/machinery/light_switch/west,
+/obj/machinery/button/windowtint/west{
+ id = "paramedic";
+ pixel_y = 8;
+ range = 10
+ },
/turf/simulated/floor/plasteel{
icon_state = "whitebluefull"
},
@@ -36733,7 +36729,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/port)
"cKC" = (
-/obj/random/hampter,
+/obj/effect/spawner/random/toy/hampter,
/turf/simulated/floor/mech_bay_recharge_floor,
/area/station/maintenance/apmaint)
"cKD" = (
@@ -39637,7 +39633,7 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -41822,7 +41818,7 @@
/obj/structure/chair{
dir = 8
},
-/obj/random/hampter,
+/obj/effect/spawner/random/toy/hampter,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"dAO" = (
@@ -42260,16 +42256,6 @@
/obj/effect/spawner/wire_splicing/thirty,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
-"dPf" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/spawner/wire_splicing/thirty,
-/turf/simulated/floor/plating,
-/area/station/maintenance/fsmaint)
"dPW" = (
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
@@ -42412,6 +42398,14 @@
/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
+"dTr" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/start/janitor,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"dTt" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -42836,7 +42830,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -43189,6 +43183,20 @@
},
/turf/space,
/area/station/engineering/solar/fore)
+"eos" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/l3closet/janitor,
+/obj/structure/reagent_dispensers/spacecleanertank{
+ pixel_y = 30
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ name = "east bump";
+ pixel_x = 24
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"eow" = (
/obj/machinery/atmospherics/pipe/manifold/visible,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -44417,8 +44425,8 @@
"eTh" = (
/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/autoname,
-/obj/effect/mapping_helpers/airlock/unres,
/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance,
+/obj/effect/mapping_helpers/airlock/unres,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"eTo" = (
@@ -44551,6 +44559,17 @@
icon_state = "whiteblue"
},
/area/station/medical/reception)
+"eVv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/nanotrasen{
+ pixel_y = -32
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "neutralcorner"
+ },
+/area/station/hallway/primary/central)
"eVz" = (
/obj/structure/table,
/obj/item/storage/fancy/rollingpapers,
@@ -44962,6 +44981,11 @@
icon_state = "dark"
},
/area/station/engineering/atmos)
+"fhz" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/vehicle/janicart,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"fhC" = (
/obj/item/kirbyplants/plant22,
/turf/simulated/floor/plasteel{
@@ -45274,7 +45298,7 @@
},
/area/station/engineering/tech_storage)
"fpi" = (
-/obj/random/hampter,
+/obj/effect/spawner/random/toy/hampter,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"fpk" = (
@@ -45529,7 +45553,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/obj/effect/mapping_helpers/airlock/access/any/security/general,
/turf/simulated/floor/plasteel{
@@ -47486,6 +47510,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/area/station/security/prison/cell_block/a)
+"grU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"gsM" = (
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
@@ -47657,18 +47687,6 @@
icon_state = "purple"
},
/area/station/science/xenobiology)
-"gAM" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/turf/simulated/floor/plasteel,
-/area/station/security/permabrig)
"gBa" = (
/obj/machinery/atmospherics/pipe/manifold/hidden{
dir = 8
@@ -48810,6 +48828,12 @@
},
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos)
+"hcb" = (
+/obj/machinery/alarm/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/economy/vending/janidrobe,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"hci" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
@@ -49104,7 +49128,7 @@
"hjn" = (
/obj/structure/table/glass,
/obj/item/folder/blue,
-/obj/item/clothing/accessory/stethoscope,
+/obj/item/clothing/neck/stethoscope,
/obj/item/clothing/glasses/hud/health,
/turf/simulated/floor/plasteel{
dir = 1;
@@ -50267,6 +50291,18 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
+"hIW" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/plating,
+/area/station/maintenance/fsmaint)
"hIZ" = (
/obj/docking_port/stationary{
dir = 8;
@@ -50655,16 +50691,13 @@
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"hSX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
- dir = 6
- },
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
+/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
},
@@ -57772,7 +57805,7 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
@@ -57853,16 +57886,6 @@
/obj/structure/lattice/catwalk,
/turf/space,
/area/space/nearstation)
-"lwL" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/tile/bar,
-/turf/simulated/floor/plasteel{
- dir = 8;
- icon_state = "neutralcorner"
- },
-/area/station/hallway/primary/starboard)
"lwN" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable/yellow{
@@ -57870,6 +57893,15 @@
},
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
+"lxc" = (
+/obj/machinery/door/airlock/maintenance,
+/obj/effect/mapping_helpers/airlock/access/all/service/janitor,
+/obj/effect/mapping_helpers/airlock/autoname,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plating,
+/area/station/service/janitor)
"lxz" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/structure/cable/yellow{
@@ -59645,6 +59677,9 @@
/obj/structure/cable/yellow{
icon_state = "1-8"
},
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central)
"mmB" = (
@@ -60019,6 +60054,10 @@
icon_state = "solarpanel"
},
/area/station/engineering/solar/fore)
+"mzQ" = (
+/obj/effect/mapping_helpers/turfs/rust/probably,
+/turf/simulated/wall,
+/area/station/service/janitor)
"mAa" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
@@ -60424,7 +60463,7 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
@@ -60923,6 +60962,15 @@
/obj/effect/mapping_helpers/airlock/access/any/science/research,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
+"mVV" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"mVW" = (
/obj/effect/turf_decal/stripes/corner{
dir = 8
@@ -61478,18 +61526,6 @@
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
/area/station/engineering/atmos)
-"ngm" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/maintenance,
-/obj/effect/mapping_helpers/airlock/autoname,
-/obj/effect/mapping_helpers/airlock/unres{
- dir = 1
- },
-/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance,
-/turf/simulated/floor/plating,
-/area/station/maintenance/fsmaint)
"ngG" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/structure/cable/yellow{
@@ -62811,7 +62847,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -63523,7 +63559,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/turf/simulated/floor/plasteel,
/area/station/security/brig)
@@ -65446,6 +65482,15 @@
},
/turf/simulated/floor/plasteel,
/area/station/security/permabrig)
+"pox" = (
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "NCT"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/plating,
+/area/station/procedure/trainer_office)
"pps" = (
/obj/structure/rack,
/obj/item/crowbar/red,
@@ -66253,7 +66298,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/obj/effect/mapping_helpers/airlock/access/any/security/general,
/turf/simulated/floor/plasteel{
@@ -68148,6 +68193,9 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/medical/glass,
/obj/effect/mapping_helpers/airlock/autoname,
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "paramedic"
+ },
/obj/effect/mapping_helpers/airlock/access/any/medical/paramedic,
/turf/simulated/floor/plasteel{
icon_state = "whitebluefull"
@@ -69039,6 +69087,9 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/effect/mapping_helpers/airlock/polarized{
+ id = "paramedic"
+ },
/obj/effect/mapping_helpers/airlock/access/any/medical/paramedic,
/turf/simulated/floor/plasteel{
icon_state = "whitebluefull"
@@ -69076,9 +69127,6 @@
},
/area/station/security/brig)
"rhw" = (
-/obj/structure/mirror{
- pixel_y = -34
- },
/obj/effect/decal/cleanable/dirt,
/obj/structure/sink/directional/north,
/turf/simulated/floor/wood,
@@ -70433,7 +70481,7 @@
/obj/machinery/light_switch/west{
pixel_y = -6
},
-/obj/item/clothing/accessory/stethoscope{
+/obj/item/clothing/neck/stethoscope{
pixel_y = 6
},
/turf/simulated/floor/plasteel{
@@ -70901,7 +70949,7 @@
dir = 10
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -71117,11 +71165,19 @@
/area/station/security/main)
"sln" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/unary/vent_pump/on{
+/obj/structure/rack{
dir = 1
},
-/turf/simulated/floor/plating,
-/area/station/maintenance/fsmaint)
+/obj/item/storage/box/mousetraps,
+/obj/item/storage/box/mousetraps,
+/obj/item/clothing/gloves/color/orange,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/restraints/legcuffs/beartrap,
+/obj/item/restraints/legcuffs/beartrap,
+/obj/item/mop,
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"sls" = (
/obj/structure/window/reinforced{
dir = 4
@@ -71740,17 +71796,13 @@
/turf/simulated/floor/plating,
/area/station/security/warden)
"sDT" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 1
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/starboard)
@@ -72474,6 +72526,16 @@
/obj/effect/spawner/window/reinforced/grilled,
/turf/simulated/floor/plating,
/area/station/maintenance/engimaint)
+"sUN" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/machinery/hologram/holopad,
+/turf/simulated/floor/plating,
+/area/station/service/janitor)
"sVu" = (
/obj/effect/spawner/random/maintenance,
/turf/simulated/floor/plating,
@@ -73849,6 +73911,9 @@
/obj/structure/disposalpipe/segment/corner{
dir = 2
},
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
/turf/simulated/floor/plasteel{
icon_state = "neutralcorner"
},
@@ -74426,18 +74491,6 @@
icon_state = "vault"
},
/area/station/security/armory/secure)
-"tYH" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
- dir = 4
- },
-/turf/simulated/floor/plasteel,
-/area/station/security/permabrig)
"tYV" = (
/obj/structure/rack,
/obj/item/reagent_containers/drinks/bottle/rum{
@@ -74697,13 +74750,20 @@
/turf/simulated/floor/plasteel,
/area/station/security/brig)
"ufr" = (
-/obj/structure/table,
-/obj/item/clothing/gloves/color/fyellow,
-/obj/effect/spawner/random/maintenance,
+/obj/machinery/camera{
+ c_tag = "Custodial Closet";
+ dir = 4
+ },
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/directional/west,
-/turf/simulated/floor/plating,
-/area/station/maintenance/fsmaint)
+/obj/effect/landmark/start/janitor,
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"ufw" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -74731,7 +74791,7 @@
sort_type_txt = "8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -77299,6 +77359,7 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/atmos/control)
"vug" = (
+/obj/machinery/autolathe,
/turf/simulated/floor/plasteel{
icon_state = "yellow"
},
@@ -77947,6 +78008,9 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard2)
+"vRi" = (
+/turf/simulated/wall,
+/area/station/procedure/trainer_office)
"vRv" = (
/obj/structure/closet/secure_closet/freezer/fridge,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
@@ -78739,6 +78803,20 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/plasteel,
/area/station/supply/lobby)
+"wpE" = (
+/obj/structure/table,
+/obj/item/key/janitor,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/machinery/power/apc/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/storage/box/lights/mixed,
+/obj/item/storage/box/lights/mixed,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/structure/cable/yellow,
+/turf/simulated/floor/plasteel,
+/area/station/service/janitor)
"wpL" = (
/obj/machinery/disposal,
/obj/structure/disposalpipe/trunk{
@@ -78840,7 +78918,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- dir = 8
+ dir = 4
},
/obj/structure/disposalpipe/sortjunction/reversed{
dir = 2;
@@ -79182,6 +79260,9 @@
c_tag = "Bar - Backroom";
dir = 1
},
+/obj/structure/mirror{
+ pixel_y = -34
+ },
/turf/simulated/floor/wood,
/area/station/service/bar)
"wBl" = (
@@ -80776,7 +80857,9 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"xvh" = (
-/obj/effect/spawner/window/reinforced/grilled,
+/obj/effect/spawner/window/reinforced/polarized/grilled{
+ id = "paramedic"
+ },
/turf/simulated/floor/plating,
/area/station/medical/paramedic)
"xvi" = (
@@ -80969,6 +81052,11 @@
/obj/structure/lattice,
/turf/space,
/area/space/nearstation)
+"xzM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/unary/vent_pump/on,
+/turf/simulated/floor/plating,
+/area/station/maintenance/fsmaint)
"xAl" = (
/obj/structure/rack,
/obj/item/storage/briefcase/inflatable{
@@ -105536,12 +105624,12 @@ mXE
lSa
aFE
bek
-bfK
-bhq
-bhq
-bhq
-bhq
-bhq
+eVv
+vRi
+vRi
+vRi
+vRi
+vRi
bqc
bqc
ezM
@@ -105794,7 +105882,7 @@ lIM
bMC
bek
bfK
-bhq
+pox
biY
boN
bmQ
@@ -106308,7 +106396,7 @@ gYO
bQF
ben
bqb
-bhq
+mVV
bja
bkM
bmD
@@ -106565,7 +106653,7 @@ bbg
bNp
bek
bjA
-bhq
+vRi
bhK
bkN
bpQ
@@ -106822,11 +106910,11 @@ bbh
bcM
bel
bfO
-bhq
-bhq
+vRi
+vRi
bkO
-bhq
-bhq
+vRi
+vRi
bht
brS
bqc
@@ -107081,7 +107169,7 @@ qWN
acw
bht
bjc
-bkP
+bmF
bmF
boy
btP
@@ -108064,9 +108152,9 @@ adi
oLF
xKQ
adi
-gAM
+nju
pXf
-tYH
+hgp
oEm
amx
pPJ
@@ -115821,8 +115909,8 @@ bhB
bjq
bkk
bnr
-boS
-lwL
+hfi
+bqA
bsp
bun
hvW
@@ -116842,12 +116930,12 @@ fWg
aYK
eTh
alb
-dPf
-aIo
-aLl
-aLl
-aLl
-bez
+eTo
+bhq
+bhq
+bhq
+bhq
+bhq
bni
eFD
wwo
@@ -117099,11 +117187,11 @@ aTo
uPu
aLl
dAH
-eTo
-sOy
+hIW
+lxc
agh
ufr
-aLl
+wpE
bll
bnr
boY
@@ -117355,14 +117443,14 @@ aVV
fWg
aYK
aLl
-avA
+sOy
hSX
-awv
+bhq
sln
-avA
-aLl
+sUN
+grU
blm
-bnr
+vEp
sDT
rEV
bHA
@@ -117613,12 +117701,12 @@ aTp
aXm
aLl
mdS
-fvU
-dAH
-avA
-alb
-aLl
-aLl
+eTo
+bhq
+hcb
+dTr
+fhz
+bhq
bnr
bcP
bqA
@@ -117869,15 +117957,15 @@ aTo
aTp
auO
aLl
-dAH
+xzM
bdr
-aFM
-aWf
+bhq
+eos
aWf
bmR
-ngm
-bnj
-boV
+bhq
+bnr
+boY
bqA
bsp
bxH
@@ -118128,11 +118216,11 @@ bbv
aLl
wVi
bPb
-aIo
-aLl
-edZ
-gbM
-aLl
+bhq
+bhq
+bhq
+mzQ
+bhq
bnk
gcq
lhu
diff --git a/code/__DEFINES/access_defines.dm b/code/__DEFINES/access_defines.dm
index b946f7a75ba7..30a4f5c4dc8a 100644
--- a/code/__DEFINES/access_defines.dm
+++ b/code/__DEFINES/access_defines.dm
@@ -65,6 +65,7 @@
#define ACCESS_MINERAL_STOREROOM 76
#define ACCESS_CARGO_BAY 78
#define ACCESS_SUPPLY_SHUTTLE 79
+#define ACCESS_TRAINER 80
#define ACCESS_WEAPONS 99 //! Weapon authorization for secbots.
diff --git a/code/__DEFINES/antag_defines.dm b/code/__DEFINES/antag_defines.dm
index 3123da30e09b..d6214ac272cf 100644
--- a/code/__DEFINES/antag_defines.dm
+++ b/code/__DEFINES/antag_defines.dm
@@ -103,8 +103,8 @@ GLOBAL_LIST(contractors)
#define ORG_PROB_HUNTER 10
#define ORG_PROB_MILD 20
-#define ORG_PROB_AVERAGE 60
-#define ORG_PROB_HIJACK 2 // SS220 EDIT - reduced from 10 to 2
+#define ORG_PROB_AVERAGE 65
+#define ORG_PROB_HIJACK 2 // SS220 EDIT - reduced from 5 to 2
// Chance that a traitor will receive a 'You are being targeted by another syndicate agent' notification regardless of being an actual target
#define ORG_PROB_PARANOIA 5
diff --git a/code/__DEFINES/atmospherics_defines.dm b/code/__DEFINES/atmospherics_defines.dm
index 2df5b9f0a2f0..ae6031aea778 100644
--- a/code/__DEFINES/atmospherics_defines.dm
+++ b/code/__DEFINES/atmospherics_defines.dm
@@ -169,3 +169,15 @@
#define ENVIRONMENT_TEMPERATE "temperate"
/// Cold environment: Normal atmosphere, -93 C.
#define ENVIRONMENT_COLD "cold"
+
+/// How far away should we load the pressure HUD data from MILLA?
+#define PRESSURE_HUD_LOAD_RADIUS 15
+
+/// How far away should we send the pressure HUD to the player?
+#define PRESSURE_HUD_RADIUS 12
+
+// Vent pump modes
+/// Don't go over the external pressure
+#define ONLY_CHECK_EXT_PRESSURE 1
+/// Only release until we reach this pressure
+#define ONLY_CHECK_INT_PRESSURE 2
diff --git a/code/__DEFINES/dcs/atom_signals.dm b/code/__DEFINES/dcs/atom_signals.dm
index 294e5bd5aac1..42745166c8dc 100644
--- a/code/__DEFINES/dcs/atom_signals.dm
+++ b/code/__DEFINES/dcs/atom_signals.dm
@@ -134,5 +134,9 @@
#define COMPONENT_NO_MOUSEDROP (1<<0)
///from base of atom/MouseDrop_T: (/atom/from, /mob/user)
#define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto"
+
+/// Called on the atom being hit, from /datum/component/anti_magic/on_attack() : (obj/item/weapon, mob/user, antimagic_flags)
+#define COMSIG_ATOM_HOLY_ATTACK "atom_holyattacked"
/// On a ranged attack: base of mob/living/carbon/human/RangedAttack (/mob/living/carbon/human)
#define COMSIG_ATOM_RANGED_ATTACKED "atom_range_attacked"
+
diff --git a/code/__DEFINES/dcs/mob_signals.dm b/code/__DEFINES/dcs/mob_signals.dm
index 3d0406f583ea..e9b71bdc58b7 100644
--- a/code/__DEFINES/dcs/mob_signals.dm
+++ b/code/__DEFINES/dcs/mob_signals.dm
@@ -22,11 +22,14 @@
#define COMSIG_MOB_ALTCLICKON "mob_altclickon"
#define COMSIG_MOB_CANCEL_CLICKON (1<<0)
+///from base of mob/can_cast_magic(): (mob/user, magic_flags, charge_cost)
+#define COMSIG_MOB_RESTRICT_MAGIC "mob_cast_magic"
+///from base of mob/can_block_magic(): (mob/user, casted_magic_flags, charge_cost)
+#define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic"
+ #define COMPONENT_MAGIC_BLOCKED (1<<0)
+
///from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj
#define COMSIG_MOB_ALLOWED "mob_allowed"
-///from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources)
-#define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic"
- #define COMPONENT_BLOCK_MAGIC (1<<0)
///from base of mob/create_mob_hud(): ()
#define COMSIG_MOB_HUD_CREATED "mob_hud_created"
///from base of atom/attack_hand(): (mob/user)
diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm
index 9cb28648132b..72be5053f1b0 100644
--- a/code/__DEFINES/hud.dm
+++ b/code/__DEFINES/hud.dm
@@ -27,6 +27,7 @@
#define DIAG_AIRLOCK_HUD "22" // Airlock shock overlay
#define GLAND_HUD "23"//Gland indicators for abductors
#define JANI_HUD "24" // Sign overlay over cleanable decals
+#define PRESSURE_HUD "25" // Pressure coloring for tiles
//by default everything in the hud_list of an atom is an image
//a value in hud_list with one of these will change that behavior
@@ -42,25 +43,26 @@
#define DATA_HUD_DIAGNOSTIC_ADVANCED 6
#define DATA_HUD_HYDROPONIC 7
#define DATA_HUD_JANITOR 8
+#define DATA_HUD_PRESSURE 9
//antag HUD defines
-#define ANTAG_HUD_CULT 9
-#define ANTAG_HUD_REV 10
-#define ANTAG_HUD_OPS 11
-#define ANTAG_HUD_WIZ 12
-#define ANTAG_HUD_SHADOW 13
-#define ANTAG_HUD_TRAITOR 14
-#define ANTAG_HUD_NINJA 15
-#define ANTAG_HUD_CHANGELING 16
-#define ANTAG_HUD_VAMPIRE 17
-#define ANTAG_HUD_ABDUCTOR 18
-#define DATA_HUD_ABDUCTOR 19
-#define ANTAG_HUD_EVENTMISC 20
-#define ANTAG_HUD_BLOB 21
-#define ANTAG_HUD_ZOMBIE 22
-#define ANTAG_HUD_MIND_FLAYER 23
+#define ANTAG_HUD_CULT 10
+#define ANTAG_HUD_REV 11
+#define ANTAG_HUD_OPS 12
+#define ANTAG_HUD_WIZ 13
+#define ANTAG_HUD_SHADOW 14
+#define ANTAG_HUD_TRAITOR 15
+#define ANTAG_HUD_NINJA 16
+#define ANTAG_HUD_CHANGELING 17
+#define ANTAG_HUD_VAMPIRE 18
+#define ANTAG_HUD_ABDUCTOR 19
+#define DATA_HUD_ABDUCTOR 20
+#define ANTAG_HUD_EVENTMISC 21
+#define ANTAG_HUD_BLOB 22
+#define ANTAG_HUD_ZOMBIE 23
+#define ANTAG_HUD_MIND_FLAYER 24
// SS220 EDIT - START
-#define ANTAG_HUD_BLOOD_BROTHER 24
-#define ANTAG_HUD_VOX_RAIDER 25
+#define ANTAG_HUD_BLOOD_BROTHER 25
+#define ANTAG_HUD_VOX_RAIDER 26
// SS220 EDIT - END
// Notification action types
diff --git a/code/__DEFINES/job_defines.dm b/code/__DEFINES/job_defines.dm
index 54e041e11a35..161dd84541a4 100644
--- a/code/__DEFINES/job_defines.dm
+++ b/code/__DEFINES/job_defines.dm
@@ -22,6 +22,7 @@
#define JOB_JUDGE (1<<12)
#define JOB_BLUESHIELD (1<<13)
#define JOB_NANO (1<<14)
+#define JOB_INSTRUCTOR (1<<15)
#define JOBCAT_MEDSCI (1<<1)
diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm
index 60638b439f8a..0dbc154ec0bf 100644
--- a/code/__DEFINES/machines.dm
+++ b/code/__DEFINES/machines.dm
@@ -84,15 +84,16 @@
/**
* Air alarm modes
*/
-#define AALARM_MODE_SCRUBBING 1
-#define AALARM_MODE_VENTING 2 //makes draught
+#define AALARM_MODE_FILTERING 1
+#define AALARM_MODE_DRAUGHT 2 //makes draught
#define AALARM_MODE_PANIC 3 //like siphon, but stronger (enables widenet)
-#define AALARM_MODE_REPLACEMENT 4 //sucks off all air, then refill and swithes to scrubbing
+#define AALARM_MODE_CYCLE 4 //sucks off all air, then refill and swithes to scrubbing
#define AALARM_MODE_SIPHON 5 //Scrubbers suck air
#define AALARM_MODE_CONTAMINATED 6 //Turns on all filtering and widenet scrubbing.
-#define AALARM_MODE_REFILL 7 //just like normal, but with triple the air output
+#define AALARM_MODE_REFILL 7 //just like normal, but disables low pressure check until normalized, then switches to normal
#define AALARM_MODE_OFF 8
#define AALARM_MODE_FLOOD 9 //Emagged mode; turns off scrubbers and pressure checks on vents
+#define AALARM_MODE_CUSTOM 10
#define NUKE_STATUS_INTACT 0
#define NUKE_CORE_MISSING 1
diff --git a/code/__DEFINES/magic_defines.dm b/code/__DEFINES/magic_defines.dm
new file mode 100644
index 000000000000..9d0ee8158cdc
--- /dev/null
+++ b/code/__DEFINES/magic_defines.dm
@@ -0,0 +1,16 @@
+// Bitflags for magic resistance types
+/// Default magic resistance that blocks normal magic (wizard, spells, magical staff projectiles)
+#define MAGIC_RESISTANCE (1<<0)
+/// Tinfoil hat magic resistance that blocks mental magic (telepathy / mind links, mind curses, abductors)
+#define MAGIC_RESISTANCE_MIND (1<<1)
+/// Holy magic resistance that blocks unholy magic (revenant, vampire, voice of god)
+#define MAGIC_RESISTANCE_HOLY (1<<2)
+
+DEFINE_BITFIELD(antimagic_flags, list(
+ "MAGIC_RESISTANCE" = MAGIC_RESISTANCE,
+ "MAGIC_RESISTANCE_HOLY" = MAGIC_RESISTANCE_HOLY,
+ "MAGIC_RESISTANCE_MIND" = MAGIC_RESISTANCE_MIND,
+))
+
+/// Whether the spell can be cast while the user has antimagic on them that corresponds to the spell's own antimagic flags.
+#define SPELL_REQUIRES_NO_ANTIMAGIC (1 << 0)
diff --git a/code/__DEFINES/misc_defines.dm b/code/__DEFINES/misc_defines.dm
index 8b1a340c4bbf..1328cbef4371 100644
--- a/code/__DEFINES/misc_defines.dm
+++ b/code/__DEFINES/misc_defines.dm
@@ -191,30 +191,31 @@
#define FOAM_REACT_BEFORE_SPREAD (1<<3)
//Human Overlays Indexes/////////
-#define EYES_OVERLAY_LAYER 49
-#define MISC_LAYER 48 // Handles eye_shine() -> cybernetic eyes, specific eye traits.
-#define WING_LAYER 47
-#define WING_UNDERLIMBS_LAYER 46
-#define MUTANTRACE_LAYER 45
-#define TAIL_UNDERLIMBS_LAYER 44 //Tail split-rendering.
-#define LIMBS_LAYER 43
-#define MARKINGS_LAYER 42
-#define INTORGAN_LAYER 41
-#define UNDERWEAR_LAYER 40
-#define MUTATIONS_LAYER 39
-#define H_DAMAGE_LAYER 38
-#define UNIFORM_LAYER 37
-#define ID_LAYER 36
-#define HANDS_LAYER 35 //Exists to overlay hands over jumpsuits
-#define SHOES_LAYER 34
-#define L_FOOT_BLOOD_LAYER 33 // Blood overlay separation Left-Foot
-#define R_FOOT_BLOOD_LAYER 32 // Blood overlay separation Right-Foot
-#define GLOVES_LAYER 31
-#define L_HAND_BLOOD_LAYER 30 // Blood overlay separation Left-Hand
-#define R_HAND_BLOOD_LAYER 29 // Blood overlay separation Right-Hand
-#define LEFT_EAR_LAYER 28
-#define RIGHT_EAR_LAYER 27
-#define BELT_LAYER 26 //Possible make this an overlay of something required to wear a belt?
+#define EYES_OVERLAY_LAYER 50
+#define MISC_LAYER 49 // Handles eye_shine() -> cybernetic eyes, specific eye traits.
+#define WING_LAYER 48
+#define WING_UNDERLIMBS_LAYER 47
+#define MUTANTRACE_LAYER 46
+#define TAIL_UNDERLIMBS_LAYER 45 //Tail split-rendering.
+#define LIMBS_LAYER 44
+#define MARKINGS_LAYER 43
+#define INTORGAN_LAYER 42
+#define UNDERWEAR_LAYER 41
+#define MUTATIONS_LAYER 40
+#define H_DAMAGE_LAYER 39
+#define UNIFORM_LAYER 38
+#define ID_LAYER 37
+#define HANDS_LAYER 36 //Exists to overlay hands over jumpsuits
+#define SHOES_LAYER 35
+#define L_FOOT_BLOOD_LAYER 34 // Blood overlay separation Left-Foot
+#define R_FOOT_BLOOD_LAYER 33 // Blood overlay separation Right-Foot
+#define GLOVES_LAYER 32
+#define L_HAND_BLOOD_LAYER 31 // Blood overlay separation Left-Hand
+#define R_HAND_BLOOD_LAYER 30 // Blood overlay separation Right-Hand
+#define LEFT_EAR_LAYER 29
+#define RIGHT_EAR_LAYER 28
+#define BELT_LAYER 27 //Possible make this an overlay of something required to wear a belt?
+#define SPECIAL_NECK_LAYER 26
#define SUIT_LAYER 25
#define SPECIAL_BELT_LAYER 24
#define NECK_LAYER 23
@@ -240,7 +241,7 @@
#define HALO_LAYER 3 //blood cult ascended halo, because there's currently no better solution for adding/removing
#define FIRE_LAYER 2 //If you're on fire
#define FROZEN_LAYER 1
-#define TOTAL_LAYERS 49
+#define TOTAL_LAYERS 50
///Access Region Codes///
#define REGION_ALL 0
diff --git a/code/__DEFINES/rust.dm b/code/__DEFINES/rust.dm
index 0c337d93554b..935f540bafda 100644
--- a/code/__DEFINES/rust.dm
+++ b/code/__DEFINES/rust.dm
@@ -53,14 +53,15 @@
// This needs to go BELOW the above define, otherwise the BYOND compiler can make the above immediate call disappear
#undef RUSTLIBS_SUFFIX
+/// Exists by default in 516, but needs to be defined for 515 or byondapi-rs doesn't like it.
+/proc/byondapi_stack_trace(err)
+ CRASH(err)
+
/proc/milla_init_z(z)
return RUSTLIB_CALL(milla_initialize, z)
-/proc/is_milla_synchronous(tick)
- return RUSTLIB_CALL(milla_is_synchronous, tick)
-
-/proc/set_tile_atmos(turf/T, airtight_north, airtight_east, airtight_south, airtight_west, atmos_mode, environment_id, oxygen, carbon_dioxide, nitrogen, toxins, sleeping_agent, agent_b, temperature, innate_heat_capacity)
- return RUSTLIB_CALL(milla_set_tile, T, airtight_north, airtight_east, airtight_south, airtight_west, atmos_mode, environment_id, oxygen, carbon_dioxide, nitrogen, toxins, sleeping_agent, agent_b, temperature, innate_heat_capacity)
+/proc/set_tile_atmos(turf/T, airtight_north, airtight_east, airtight_south, airtight_west, atmos_mode, environment_id, oxygen, carbon_dioxide, nitrogen, toxins, sleeping_agent, agent_b, temperature, innate_heat_capacity, hotspot_temperature, hotspot_volume)
+ return RUSTLIB_CALL(milla_set_tile, T, airtight_north, airtight_east, airtight_south, airtight_west, atmos_mode, environment_id, oxygen, carbon_dioxide, nitrogen, toxins, sleeping_agent, agent_b, temperature, innate_heat_capacity, hotspot_temperature, hotspot_volume)
/proc/get_tile_atmos(turf/T, list/L)
return RUSTLIB_CALL(milla_get_tile, T, L)
@@ -74,6 +75,9 @@
/proc/get_interesting_atmos_tiles()
return RUSTLIB_CALL(milla_get_interesting_tiles)
+/proc/get_tracked_pressure_tiles()
+ return RUSTLIB_CALL(milla_get_tracked_pressure_tiles)
+
/proc/reduce_superconductivity(turf/T, list/superconductivity)
var/north = superconductivity[1]
var/east = superconductivity[2]
@@ -93,6 +97,14 @@
return RUSTLIB_CALL(milla_set_tile_airtight, T, north, east, south, west)
+/proc/create_hotspot(turf/T, hotspot_temperature, hotspot_volume)
+ return RUSTLIB_CALL(milla_create_hotspot, T, hotspot_temperature, hotspot_volume)
+
+/proc/track_pressure_tiles(atom/A, radius)
+ var/turf/T = get_turf(A)
+ if(istype(T))
+ return RUSTLIB_CALL(milla_track_pressure_tiles, T, radius)
+
/proc/get_random_interesting_tile()
return RUSTLIB_CALL(milla_get_random_interesting_tile)
@@ -122,15 +134,20 @@
#define MILLA_INDEX_SUPERCONDUCTIVITY_WEST 13
#define MILLA_INDEX_INNATE_HEAT_CAPACITY 14
#define MILLA_INDEX_TEMPERATURE 15
+#define MILLA_INDEX_HOTSPOT_TEMPERATURE 16
+#define MILLA_INDEX_HOTSPOT_VOLUME 17
+#define MILLA_INDEX_WIND_X 18
+#define MILLA_INDEX_WIND_Y 19
+#define MILLA_INDEX_FUEL_BURNT 20
/// The number of values per tile.
-#define MILLA_TILE_SIZE MILLA_INDEX_TEMPERATURE
+#define MILLA_TILE_SIZE MILLA_INDEX_FUEL_BURNT
// These are only for InterestingTiles.
-#define MILLA_INDEX_TURF 16
-#define MILLA_INDEX_INTERESTING_REASONS 17
-#define MILLA_INDEX_AIRFLOW_X 18
-#define MILLA_INDEX_AIRFLOW_Y 19
+#define MILLA_INDEX_TURF 21
+#define MILLA_INDEX_INTERESTING_REASONS 22
+#define MILLA_INDEX_AIRFLOW_X 23
+#define MILLA_INDEX_AIRFLOW_Y 24
/// The number of values per interesting tile.
#define MILLA_INTERESTING_TILE_SIZE MILLA_INDEX_AIRFLOW_Y
diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index 465d730a97d6..78f6aa827f03 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -136,6 +136,8 @@
#define STATUS_EFFECT_REVERSED_HIGH_PRIESTESS /datum/status_effect/reversed_high_priestess //Bubblegum will chase the person hit by the effect, grabbing people at random. This can and WILL include the caster.
+#define STATUS_EFFECT_UNBALANCED /datum/status_effect/unbalanced // Prevents you from automatically grabbing walls to stop moving in space.
+
#define STATUS_EFFECT_C_FOAMED /datum/status_effect/c_foamed
#define STATUS_EFFECT_TEMPORAL_SLASH /datum/status_effect/temporal_slash
@@ -165,6 +167,7 @@
#define STATUS_EFFECT_IMMOBILIZED /datum/status_effect/incapacitating/immobilized
#define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping
#define STATUS_EFFECT_SLOWED /datum/status_effect/incapacitating/slowed
+#define STATUS_EFFECT_DIRECTIONAL_SLOW /datum/status_effect/incapacitating/directional_slow
#define STATUS_EFFECT_PARALYZED /datum/status_effect/incapacitating/paralyzed
#define STATUS_EFFECT_FLOORED /datum/status_effect/incapacitating/floored
#define STATUS_EFFECT_ARMBAR /datum/status_effect/judo_armbar
diff --git a/code/__DEFINES/wires_defines.dm b/code/__DEFINES/wires_defines.dm
index c1d1160bbb00..7d267d96e954 100644
--- a/code/__DEFINES/wires_defines.dm
+++ b/code/__DEFINES/wires_defines.dm
@@ -23,7 +23,7 @@
#define WIRE_BOLT_LIGHT "Bolt Lights"
// Air alarm
-#define WIRE_SYPHON "Siphon"
+#define WIRE_SIPHON "Siphon"
#define WIRE_AALARM "Atmospherics Alarm"
// Camera
diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm
index f7d77fad8073..095e02a0fa8a 100644
--- a/code/__HELPERS/trait_helpers.dm
+++ b/code/__HELPERS/trait_helpers.dm
@@ -180,6 +180,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_DWARF "dwarf"
#define TRAIT_SILENT_FOOTSTEPS "silent_footsteps" //makes your footsteps completely silent
#define TRAIT_MESON_VISION "meson_vision"
+#define TRAIT_PRESSURE_VISION "pressure_vision"
#define TRAIT_FLASH_PROTECTION "flash_protection"
#define TRAIT_NIGHT_VISION "night_vision"
#define TRAIT_EMOTE_MUTE "emote_mute"
@@ -243,6 +244,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_EMP_RESIST "emp_resist" //The mob will take less damage from EMPs
#define TRAIT_MINDFLAYER_NULLIFIED "flayer_nullified" //The mindflayer will not be able to activate their abilities, or drain swarms from people
#define TRAIT_FLYING "flying"
+/// This mob is antimagic, and immune to spells / cannot cast spells
+#define TRAIT_ANTIMAGIC "anti_magic"
+/// This allows a person who has antimagic to cast spells without getting blocked
+#define TRAIT_ANTIMAGIC_NO_SELFBLOCK "anti_magic_no_selfblock"
+/// This mob recently blocked magic with some form of antimagic
+#define TRAIT_RECENTLY_BLOCKED_MAGIC "recently_blocked_magic"
#define TRAIT_UNKNOWN "unknown" // The person with this trait always appears as 'unknown'.
#define TRAIT_CRYO_DESPAWNING "cryo_despawning" // dont adminbus this please
@@ -301,6 +308,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
///An organ that was inserted into a dead mob, that has not been revived yet
#define TRAIT_ORGAN_INSERTED_WHILE_DEAD "organ_inserted_while_dead"
+/// Prevents stripping this equipment or seeing it in the strip menu
+#define TRAIT_NO_STRIP "no_strip"
+
+/// Prevents seeing this item on examine when on a mob, or seeing it in the strip menu. It's like ABSTRACT, without making the item fail to interact in several ways. The item can still be stripped however, combine with no_strip unless you have a reason not to.
+#define TRAIT_SKIP_EXAMINE "skip_examine"
+
//****** OBJ TRAITS *****//
///An /obj that should not increase the "depth" of the search for adjacency,
diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm
index dad257b8aac6..b2a70fdf51ad 100644
--- a/code/__HELPERS/type2type.dm
+++ b/code/__HELPERS/type2type.dm
@@ -259,7 +259,7 @@
/proc/heat2color_g(temp)
temp /= 100
if(temp <= 66)
- . = max(0, min(255, 99.4708025861 * log(temp) - 161.1195681661))
+ . = max(0, min(255, 99.4708025861 * log(max(temp, 1)) - 161.1195681661))
else
. = max(0, min(255, 288.1221695283 * ((temp - 60) ** -0.0755148492)))
@@ -271,7 +271,7 @@
if(temp <= 16)
. = 0
else
- . = max(0, min(255, 138.5177312231 * log(temp - 10) - 305.0447927307))
+ . = max(0, min(255, 138.5177312231 * log(max(temp - 10, 1)) - 305.0447927307))
//Argument: Give this a space-separated string consisting of 6 numbers. Returns null if you don't
/proc/text2matrix(matrixtext)
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 2033b926c9a4..822121b2dbe3 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -772,6 +772,14 @@ Returns 1 if the chain up to the area contains the given typepath
var/y_pos
var/z_pos
+/datum/coords/New(x_pos_, y_pos_, z_pos_)
+ x_pos = x_pos_
+ y_pos = y_pos_
+ z_pos = z_pos_
+
+/datum/coords/proc/to_string(z = null)
+ return "([x_pos],[y_pos],[z ? z : z_pos])"
+
/area/proc/move_contents_to(area/A, turf_to_leave, direction) // someone rewrite this function i beg of you
//Takes: Area. Optional: turf type to leave behind.
//Returns: Nothing.
diff --git a/code/_globalvars/lists/reagents_lists.dm b/code/_globalvars/lists/reagents_lists.dm
index a9a04f4a0f6a..447e4783475f 100644
--- a/code/_globalvars/lists/reagents_lists.dm
+++ b/code/_globalvars/lists/reagents_lists.dm
@@ -50,4 +50,5 @@ GLOBAL_LIST_INIT(blocked_chems, list("polonium", "initropidril", "concentrated_i
"teslium_paste", "omnizine_no_addiction", "zombiecure1",
"zombiecure2", "zombiecure3", "zombiecure4",
"admincleaner_all", "admincleaner_item", "admincleaner_mob",
+ "synthetic_omnizine_no_addiction", "surge_plus"
))
diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm
index f86cd7e55eab..e0be5bf3b901 100644
--- a/code/_globalvars/traits.dm
+++ b/code/_globalvars/traits.dm
@@ -49,6 +49,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS,
"TRAIT_ALCOHOL_TOLERANCE" = TRAIT_ALCOHOL_TOLERANCE,
"TRAIT_MESON_VISION" = TRAIT_MESON_VISION,
+ "TRAIT_PRESSURE_VISION" = TRAIT_PRESSURE_VISION,
"TRAIT_FLASH_PROTECTION" = TRAIT_FLASH_PROTECTION,
"TRAIT_NIGHT_VISION" = TRAIT_NIGHT_VISION,
"TRAIT_DRASK_SUPERCOOL" = TRAIT_DRASK_SUPERCOOL,
@@ -105,6 +106,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_CANNOT_PULL" = TRAIT_CANNOT_PULL,
"TRAIT_BSG_IMMUNE" = TRAIT_BSG_IMMUNE,
"TRAIT_FLYING" = TRAIT_FLYING,
+ "TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC,
+ "TRAIT_ANTIMAGIC_NO_SELFBLOCK" = TRAIT_ANTIMAGIC_NO_SELFBLOCK,
+ "TRAIT_RECENTLY_BLOCKED_MAGIC" = TRAIT_RECENTLY_BLOCKED_MAGIC,
"TRAIT_UNKNOWN" = TRAIT_UNKNOWN
),
@@ -132,7 +136,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_NO_THROWN_MESSAGE" = TRAIT_NO_THROWN_MESSAGE,
"TRAIT_SILENT_INSERTION" = TRAIT_SILENT_INSERTION,
"TRAIT_HYPOSPRAY_IMMUNE" = TRAIT_HYPOSPRAY_IMMUNE,
- "TRAIT_ITEM_ACTIVE" = TRAIT_ITEM_ACTIVE
+ "TRAIT_ITEM_ACTIVE" = TRAIT_ITEM_ACTIVE,
+ "TRAIT_NO_STRIP" = TRAIT_NO_STRIP,
+ "TRAIT_SKIP_EXAMINE" = TRAIT_SKIP_EXAMINE
),
/turf = list(
diff --git a/code/_onclick/click_override.dm b/code/_onclick/click_override.dm
index c59506c654e1..5fc15d8e800d 100644
--- a/code/_onclick/click_override.dm
+++ b/code/_onclick/click_override.dm
@@ -65,7 +65,7 @@
if(get_dist(T, target_turf) > P.shock_range)
to_chat(user, "The target is too far away. ")
return FALSE
- target_turf.hotspot_expose(2000, 400)
+ target_turf.hotspot_expose(2000, 1)
playsound(user.loc, 'sound/effects/eleczap.ogg', 40, 1)
var/atom/beam_from = user
diff --git a/code/controllers/subsystem/SSair.dm b/code/controllers/subsystem/SSair.dm
index 6da9b4916c1a..270dbed53129 100644
--- a/code/controllers/subsystem/SSair.dm
+++ b/code/controllers/subsystem/SSair.dm
@@ -3,14 +3,16 @@
#define SSAIR_ATMOSMACHINERY 3
#define SSAIR_INTERESTING_TILES 4
#define SSAIR_HOTSPOTS 5
-#define SSAIR_BOUND_MIXTURES 6
-#define SSAIR_MILLA_TICK 7
+#define SSAIR_WINDY_TILES 6
+#define SSAIR_BOUND_MIXTURES 7
+#define SSAIR_PRESSURE_OVERLAY 8
+#define SSAIR_MILLA_TICK 9
SUBSYSTEM_DEF(air)
name = "Atmospherics"
init_order = INIT_ORDER_AIR
priority = FIRE_PRIORITY_AIR
- wait = 5
+ wait = 2
flags = SS_BACKGROUND
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
offline_implications = "Turfs will no longer process atmos, and all atmospheric machines (including cryotubes) will no longer function. Shuttle call recommended."
@@ -28,12 +30,16 @@ SUBSYSTEM_DEF(air)
var/datum/resumable_cost_counter/cost_interesting_tiles = new()
/// The cost of a pass through hotspots, shown in SS Info's C block as HS.
var/datum/resumable_cost_counter/cost_hotspots = new()
+ /// The cost of a pass through windy tiles, shown in SS Info's C block as WT.
+ var/datum/resumable_cost_counter/cost_windy_tiles = new()
/// The cost of a pass through pipenets, shown in SS Info's C block as PN.
var/datum/resumable_cost_counter/cost_pipenets = new()
/// The cost of a pass through building pipenets, shown in SS Info's C block as DPN.
var/datum/resumable_cost_counter/cost_pipenets_to_build = new()
/// The cost of a pass through atmos machinery, shown in SS Info's C block as AM.
var/datum/resumable_cost_counter/cost_atmos_machinery = new()
+ /// The cost of a pass through loading pressure tiles, shown in SS Info's C block as PT.
+ var/datum/resumable_cost_counter/cost_pressure_tiles = new()
/// The set of current bound mixtures. Shown in SS Info as BM:x+y, where x is the length at the start of the most recent processing, and y is the number of mixtures that have been added during processing.
var/list/bound_mixtures = list()
@@ -45,14 +51,24 @@ SUBSYSTEM_DEF(air)
var/added_bound_mixtures = 0
/// The length of the most recent interesting tiles list, shown in SS Info as IT.
var/interesting_tile_count = 0
- /// The set of current active hotspots. Length shown in SS Info as HS.
- var/list/hotspots = list()
+ /// The length of the most recent hotspot list, shown in SS Info as HS.
+ var/hotspot_count = 0
+ /// The length of the most recent windy tiles list, shown in SS Info as WT.
+ var/windy_tile_count = 0
/// The set of pipenets that need to be built. Length shown in SS Info as PTB.
var/list/pipenets_to_build = list()
/// The set of active pipenets. Length shown in SS Info as PN.
var/list/pipenets = list()
/// The set of active atmos machinery. Length shown in SS Info as AM.
var/list/atmos_machinery = list()
+ /// The set of tiles that are currently on fire.
+ var/list/hotspots
+ /// The set of tiles that are still on fire after this tick.
+ var/list/new_hotspots
+ /// The set of tiles that are currently experiencing wind.
+ var/list/windy_tiles
+ /// The set of tiles that are still experiencing wind after this tick.
+ var/list/new_windy_tiles
/// A list of atmos machinery to set up in Initialize.
var/list/machinery_to_construct = list()
@@ -69,17 +85,19 @@ SUBSYSTEM_DEF(air)
/// Are we currently running in a MILLA-safe context, i.e. is is_synchronous *guaranteed* to be TRUE. Nothing outside of this file should change this.
VAR_PRIVATE/in_milla_safe_code = FALSE
- /// When did we start the last MILLA tick?
- var/milla_tick_start = null
+ /// A list of callbacks waiting for MILLA to finish its tick and enter synchronous mode.
+ var/list/waiting_for_sync = list()
- /// Is MILLA (and hence SSair) reliably healthy?
- var/healthy = TRUE
+ /// The coordinates of the pressure image we're currently loading.
+ var/pressure_x = 0
+ var/pressure_y = 0
+ var/pressure_z = 0
- /// When was MILLA last seen unhealthy?
- var/last_unhealthy = 0
+ /// The people who were using the pressure HUD last tick.
+ var/list/pressure_hud_users = list()
- /// A list of callbacks waiting for MILLA to finish its tick and enter synchronous mode.
- var/list/waiting_for_sync = list()
+ /// What alpha to use for the pressure overlay. Applies to everyone using the overlay.
+ var/pressure_overlay_alpha = 50
/// A cost counter for resumable, repeating processes.
/datum/resumable_cost_counter
@@ -112,13 +130,16 @@ SUBSYSTEM_DEF(air)
msg += "MT:[round(cost_milla_tick,1)]|"
msg += "IT:[cost_interesting_tiles.to_string()]|"
msg += "HS:[cost_hotspots.to_string()]|"
+ msg += "WT:[cost_windy_tiles.to_string()]|"
msg += "PN:[cost_pipenets.to_string()]|"
msg += "PTB:[cost_pipenets_to_build.to_string()]|"
- msg += "AM:[cost_atmos_machinery.to_string()]"
+ msg += "AM:[cost_atmos_machinery.to_string()]|"
+ msg += "PT:[cost_pressure_tiles.to_string()]"
msg += "} "
msg += "BM:[original_bound_mixtures]+[added_bound_mixtures]|"
msg += "IT:[interesting_tile_count]|"
- msg += "HS:[length(hotspots)]|"
+ msg += "HS:[hotspot_count]|"
+ msg += "WT:[windy_tile_count]|"
msg += "PN:[length(pipenets)]|"
msg += "AM:[length(atmos_machinery)]|"
return msg.Join("")
@@ -126,8 +147,9 @@ SUBSYSTEM_DEF(air)
/datum/controller/subsystem/air/get_metrics()
. = ..()
var/list/cust = list()
- cust["hotspots"] = length(hotspots)
cust["interesting turfs"] = interesting_tile_count
+ cust["hotspots"] = hotspot_count
+ cust["windy turfs"] = windy_tile_count
.["cost"] = cost_full.last_complete_ms
.["custom"] = cust
@@ -145,7 +167,6 @@ SUBSYSTEM_DEF(air)
in_milla_safe_code = FALSE
/datum/controller/subsystem/air/Recover()
- hotspots = SSair.hotspots
pipenets_to_build = SSair.pipenets_to_build
pipenets = SSair.pipenets
atmos_machinery = SSair.atmos_machinery
@@ -154,23 +175,23 @@ SUBSYSTEM_DEF(air)
currentpart = SSair.currentpart
is_synchronous = SSair.is_synchronous
+#define SLEEPABLE_TIMER (world.time + world.tick_usage * world.tick_lag / 100)
/datum/controller/subsystem/air/fire(resumed = 0)
// All atmos stuff assumes MILLA is synchronous. Ensure it actually is.
if(!is_synchronous)
- var/timer = TICK_USAGE_REAL
+ var/timer = SLEEPABLE_TIMER
while(!is_synchronous)
// Sleep for 1ms.
sleep(0.01)
if(MC_TICK_CHECK)
- time_slept.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), FALSE)
- cost_full.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), FALSE)
+ time_slept.record_progress((SLEEPABLE_TIMER - timer) * 100, FALSE)
return
- cost_full.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), FALSE)
- time_slept.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), TRUE)
+ time_slept.record_progress((SLEEPABLE_TIMER - timer) * 100, TRUE)
fire_sleepless(resumed)
+#undef SLEEPABLE_TIMER
/datum/controller/subsystem/air/proc/fire_sleepless(resumed)
// Any proc that wants MILLA to be synchronous should not sleep.
@@ -242,6 +263,19 @@ SUBSYSTEM_DEF(air)
in_milla_safe_code = FALSE
return
resumed = 0
+ currentpart = SSAIR_WINDY_TILES
+
+ if(currentpart == SSAIR_WINDY_TILES)
+ timer = TICK_USAGE_REAL
+
+ process_windy_tiles(resumed)
+
+ cost_windy_tiles.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), state != SS_PAUSED && state != SS_PAUSING)
+ cost_full.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), FALSE)
+ if(state == SS_PAUSED || state == SS_PAUSING)
+ in_milla_safe_code = FALSE
+ return
+ resumed = 0
currentpart = SSAIR_BOUND_MIXTURES
if(currentpart == SSAIR_BOUND_MIXTURES)
@@ -255,6 +289,19 @@ SUBSYSTEM_DEF(air)
in_milla_safe_code = FALSE
return
resumed = 0
+ currentpart = SSAIR_PRESSURE_OVERLAY
+
+ if(currentpart == SSAIR_PRESSURE_OVERLAY)
+ timer = TICK_USAGE_REAL
+
+ process_pressure_overlay(resumed)
+
+ cost_pressure_tiles.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), state != SS_PAUSED && state != SS_PAUSING)
+ cost_full.record_progress(TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer), FALSE)
+ if(state == SS_PAUSED || state == SS_PAUSING)
+ in_milla_safe_code = FALSE
+ return
+ resumed = 0
currentpart = SSAIR_MILLA_TICK
if(currentpart == SSAIR_MILLA_TICK)
@@ -309,27 +356,26 @@ SUBSYSTEM_DEF(air)
src.currentrun = atmos_machinery.Copy()
//cache for sanic speed (lists are references anyways)
var/list/currentrun = src.currentrun
+ var/list/supermatters = list()
while(length(currentrun))
var/obj/machinery/atmospherics/M = currentrun[length(currentrun)]
currentrun.len--
- if(isnull(M) || (M.process_atmos(seconds) == PROCESS_KILL))
+ if(istype(M, /obj/machinery/atmospherics/supermatter_crystal))
+ supermatters += M
+ else if(isnull(M) || (M.process_atmos(seconds) == PROCESS_KILL))
atmos_machinery -= M
if(MC_TICK_CHECK)
+ for(var/SM in supermatters)
+ currentrun += SM
return
-
-/datum/controller/subsystem/air/proc/process_hotspots(resumed = 0)
- if(!resumed)
- src.currentrun = hotspots.Copy()
- //cache for sanic speed (lists are references anyways)
- var/list/currentrun = src.currentrun
- while(length(currentrun))
- var/obj/effect/hotspot/H = currentrun[length(currentrun)]
- currentrun.len--
- if(H)
- H.process()
- else
- hotspots -= H
+ while(length(supermatters))
+ var/obj/machinery/atmospherics/supermatter_crystal/SM = supermatters[length(supermatters)]
+ supermatters.len--
+ if(isnull(SM) || (SM.process_atmos(seconds) == PROCESS_KILL))
+ atmos_machinery -= SM
if(MC_TICK_CHECK)
+ for(var/other_sm in supermatters)
+ currentrun += other_sm
return
/datum/controller/subsystem/air/proc/process_interesting_tiles(resumed = 0)
@@ -371,18 +417,183 @@ SUBSYSTEM_DEF(air)
S.update_visuals()
if(reasons & MILLA_INTERESTING_REASON_HOT)
- var/datum/gas_mixture/air = T.get_readonly_air()
- T.hotspot_expose(air.temperature(), CELL_VOLUME)
- for(var/atom/movable/item in T)
- item.temperature_expose(air, air.temperature(), CELL_VOLUME)
- T.temperature_expose(air, air.temperature(), CELL_VOLUME)
+ var/turf/simulated/S = T
+ if(istype(S))
+ if(isnull(S.active_hotspot))
+ // Wasn't an active hotspot before, add it.
+ hotspots += S
+
+ var/datum/gas_mixture/air = T.get_readonly_air()
+ T.temperature_expose(air.temperature())
+ for(var/atom/movable/item in T)
+ item.temperature_expose(air, air.temperature(), CELL_VOLUME)
+ T.temperature_expose(air, air.temperature(), CELL_VOLUME)
if(reasons & MILLA_INTERESTING_REASON_WIND)
+ var/turf/simulated/S = T
+ if(istype(S))
+ if(isnull(S.wind_tick))
+ // Didn't have wind before, add it.
+ windy_tiles += S
+ S.wind_tick = times_fired
+ S.wind_x = x_flow
+ S.wind_y = y_flow
T.high_pressure_movements(x_flow, y_flow)
if(MC_TICK_CHECK)
return
+/datum/controller/subsystem/air/proc/process_hotspots(resumed = 0)
+ if(!resumed)
+ src.currentrun = hotspots
+ new_hotspots = list()
+ hotspot_count = length(src.currentrun)
+ //cache for sanic speed (lists are references anyways)
+ var/list/currentrun = src.currentrun
+ while(length(currentrun))
+ var/turf/simulated/S = currentrun[length(currentrun)]
+ currentrun.len--
+
+ if(!istype(S))
+ continue
+
+ if(S.update_hotspot())
+ // Is still a hotspot, keep it.
+ new_hotspots += S
+
+ if(MC_TICK_CHECK)
+ return
+
+ hotspots = new_hotspots
+
+/datum/controller/subsystem/air/proc/process_windy_tiles(resumed = 0)
+ if(!resumed)
+ src.currentrun = windy_tiles
+ new_windy_tiles = list()
+ //cache for sanic speed (lists are references anyways)
+ var/list/currentrun = src.currentrun
+ while(length(currentrun))
+ var/turf/simulated/S = currentrun[length(currentrun)]
+ currentrun.len--
+
+ if(!istype(S))
+ continue
+
+ if(S.update_wind())
+ // Still has wind, keep it.
+ new_windy_tiles += S
+
+ if(MC_TICK_CHECK)
+ return
+
+ windy_tiles = new_windy_tiles
+
+/datum/controller/subsystem/air/proc/process_pressure_overlay(resumed = 0)
+ if(!resumed)
+ currentrun = list(get_tracked_pressure_tiles(), pressure_hud_users)
+ pressure_hud_users = list()
+
+ //cache for sanic speed (lists are references anyways)
+ var/list/tracked_tiles = currentrun[1]
+ while(length(tracked_tiles))
+ var/x = tracked_tiles[length(tracked_tiles) - 3]
+ var/y = tracked_tiles[length(tracked_tiles) - 2]
+ var/z = tracked_tiles[length(tracked_tiles) - 1]
+ var/pressure = tracked_tiles[length(tracked_tiles) - 0]
+ tracked_tiles.len -= 4
+
+ var/turf/tile = locate(x, y, z)
+ if(istype(tile))
+ var/obj/effect/pressure_overlay/pressure_overlay = tile.ensure_pressure_overlay()
+ var/ratio = pressure / ONE_ATMOSPHERE
+ pressure_overlay.overlay.color = rgb((1 - ratio) * 255, 0, ratio * 255)
+ pressure_overlay.overlay.alpha = pressure_overlay_alpha
+
+ if(MC_TICK_CHECK)
+ return
+
+ var/datum/atom_hud/data/pressure/hud = GLOB.huds[DATA_HUD_PRESSURE]
+
+ //cache for sanic speed (lists are references anyways)
+ var/list/users = currentrun[2]
+ while(length(users))
+ var/mob/user = users[length(users)]
+ var/turf/oldloc = users[user]
+ users.len--
+
+ if(!istype(user) || QDELETED(user) || isnull(user.client) || !istype(oldloc))
+ continue
+
+ if(user in hud.hudusers)
+ var/turf/newloc = get_turf(user)
+ if(oldloc == newloc)
+ // Ya ain't moved, son. Ya get the same tiles ya already had.
+ continue
+ clear_pressure_hud(user, oldloc, FALSE)
+ add_pressure_hud(user, oldloc, FALSE)
+ pressure_hud_users[user] = newloc
+ else
+ clear_pressure_hud(user, oldloc, TRUE)
+
+ if(MC_TICK_CHECK)
+ return
+
+ for(var/mob/user in hud.hudusers)
+ if(isnull(user.client))
+ continue
+ track_pressure_tiles(user, PRESSURE_HUD_LOAD_RADIUS)
+ if(!(user in pressure_hud_users))
+ pressure_hud_users[user] = get_turf(user)
+
+ // Clean up currentrun so we don't confuse the next step.
+ currentrun = list()
+
+/datum/controller/subsystem/air/proc/clear_pressure_hud(mob/user, turf/oldloc, full_clear)
+ if(!istype(oldloc) || isnull(user.client))
+ return
+ var/turf/newloc = get_turf(user)
+ if(!istype(newloc))
+ full_clear = TRUE
+ else if(oldloc.z != newloc.z)
+ full_clear = TRUE
+
+ for(var/x in oldloc.x - PRESSURE_HUD_RADIUS to oldloc.x + PRESSURE_HUD_RADIUS)
+ if(x < 1 || x > world.maxx)
+ continue
+
+ for(var/y in oldloc.y - PRESSURE_HUD_RADIUS to oldloc.y + PRESSURE_HUD_RADIUS)
+ if(y < 1 || y > world.maxy)
+ continue
+ if(!full_clear && abs(newloc.x - x) <= PRESSURE_HUD_RADIUS && abs(newloc.y - y) <= PRESSURE_HUD_RADIUS)
+ continue
+
+ var/turf/tile = locate(x, y, oldloc.z)
+ var/obj/effect/pressure_overlay/pressure_overlay = tile.ensure_pressure_overlay()
+ user.client.images -= pressure_overlay.overlay
+
+/datum/controller/subsystem/air/proc/add_pressure_hud(mob/user, turf/oldloc, full_send)
+ var/turf/newloc = get_turf(user)
+ if(!istype(newloc) || isnull(user.client))
+ return
+ if(!istype(oldloc))
+ full_send = TRUE
+ else if(oldloc.z != newloc.z)
+ full_send = TRUE
+
+ for(var/x in newloc.x - PRESSURE_HUD_RADIUS to newloc.x + PRESSURE_HUD_RADIUS)
+ if(x < 1 || x > world.maxx)
+ continue
+
+ for(var/y in newloc.y - PRESSURE_HUD_RADIUS to newloc.y + PRESSURE_HUD_RADIUS)
+ if(y < 1 || y > world.maxy)
+ continue
+ if(!full_send && abs(oldloc.x - x) <= PRESSURE_HUD_RADIUS && abs(oldloc.y - y) <= PRESSURE_HUD_RADIUS)
+ continue
+
+ var/turf/tile = locate(x, y, newloc.z)
+ var/obj/effect/pressure_overlay/pressure_overlay = tile.ensure_pressure_overlay()
+ user.client.images += pressure_overlay.overlay
+
/datum/controller/subsystem/air/proc/process_bound_mixtures(resumed = 0)
if(!resumed)
original_bound_mixtures = length(bound_mixtures)
@@ -531,6 +742,21 @@ SUBSYSTEM_DEF(air)
SSair.on_milla_tick_finished()
+/proc/milla_tick_error(err)
+ // Any proc that wants MILLA to be synchronous should not sleep.
+ SHOULD_NOT_SLEEP(TRUE)
+
+ log_debug(err)
+ var/msg = "MILLA has crashed. SSair will stop running, and all atmospherics will stop functioning. Every turf will report as full of breathable air, and all fires will be extinguished. Shuttle call highly recommended."
+ to_chat(GLOB.admins, "[msg] ")
+ log_world(msg)
+
+ // Disable firing.
+ SSair.flags |= SS_NO_FIRE
+ // Disable fire, too.
+ for(var/turf/simulated/S in SSair.hotspots)
+ QDEL_NULL(S.active_hotspot)
+
/// Create a subclass of this and implement `on_run` to manipulate tile air safely.
/datum/milla_safe
var/run_args = list()
@@ -589,5 +815,7 @@ SUBSYSTEM_DEF(air)
#undef SSAIR_ATMOSMACHINERY
#undef SSAIR_INTERESTING_TILES
#undef SSAIR_HOTSPOTS
+#undef SSAIR_WINDY_TILES
#undef SSAIR_BOUND_MIXTURES
+#undef SSAIR_PRESSURE_OVERLAY
#undef SSAIR_MILLA_TICK
diff --git a/code/controllers/subsystem/SSdebugview.dm b/code/controllers/subsystem/SSdebugview.dm
index f47d7016aaa9..437d544f01c6 100644
--- a/code/controllers/subsystem/SSdebugview.dm
+++ b/code/controllers/subsystem/SSdebugview.dm
@@ -15,7 +15,7 @@ SUBSYSTEM_DEF(debugview)
// Generate debug text
var/list/entries = list()
entries += "CPU: [round(world.cpu, 1)] | MCPU: [round(world.map_cpu, 1)] | FPS/TPS: [world.fps] | Clients: [length(GLOB.clients)] | BYOND: [world.byond_version].[world.byond_build]"
- entries += "\[Air] Cost: [SSair.get_cost()]ms | MT: [round(SSair.cost_milla_tick, 1)]ms | IT: [SSair.interesting_tile_count]"
+ entries += "\[Air] Cost: [SSair.get_cost()]ms | MT: [round(SSair.cost_milla_tick, 1)]ms | IT: [SSair.interesting_tile_count] | HS: [SSair.hotspot_count] | WT: [SSair.windy_tile_count]"
entries += "\[Debug] Cost: [round(SSdebugview.cost, 1)]ms | P: [length(SSdebugview.processing)]" // meta af (tbf we need to know how much were using)
entries += "\[FP] Cost: [round(SSfastprocess.cost, 1)]ms | P: [length(SSfastprocess.processing)]"
// Snowflakery for SSgarbage
diff --git a/code/controllers/subsystem/SSjobs.dm b/code/controllers/subsystem/SSjobs.dm
index c66340be5aae..dbb9d88b695c 100644
--- a/code/controllers/subsystem/SSjobs.dm
+++ b/code/controllers/subsystem/SSjobs.dm
@@ -183,6 +183,9 @@ SUBSYSTEM_DEF(jobs)
if(job.admin_only) // No admin positions either.
continue
+ if(job.mentor_only) // Neither for mentor positions
+ continue
+
if(jobban_isbanned(player, job.title))
Debug("GRJ isbanned failed, Player: [player], Job: [job.title]")
continue
diff --git a/code/controllers/subsystem/non_firing/SSmapping.dm b/code/controllers/subsystem/non_firing/SSmapping.dm
index aa230347edb1..c9313a79a2d9 100644
--- a/code/controllers/subsystem/non_firing/SSmapping.dm
+++ b/code/controllers/subsystem/non_firing/SSmapping.dm
@@ -88,7 +88,6 @@ SUBSYSTEM_DEF(mapping)
// Load all Z level templates
preloadTemplates()
- preloadTemplates(path = "code/tests/atmos/")
// Load the station
loadStation()
@@ -102,9 +101,14 @@ SUBSYSTEM_DEF(mapping)
else
log_startup_progress("Skipping space ruins...")
- // Makes a blank space level for the sake of randomness
- GLOB.space_manager.add_new_zlevel("Empty Area", linkage = CROSSLINKED, traits = list(REACHABLE_BY_CREW, REACHABLE_SPACE_ONLY))
+ var/empty_z_traits = list(REACHABLE_BY_CREW, REACHABLE_SPACE_ONLY)
+#ifdef GAME_TESTS
+ preloadTemplates(path = "_maps/map_files/tests/")
+ empty_z_traits |= GAME_TEST_LEVEL
+#endif
+ // Makes a blank space level for the sake of randomness
+ GLOB.space_manager.add_new_zlevel("Empty Area", linkage = CROSSLINKED, traits = empty_z_traits)
// Setup the Z-level linkage
GLOB.space_manager.do_transition_setup()
diff --git a/code/controllers/subsystem/tickets/SSmentor_tickets.dm b/code/controllers/subsystem/tickets/SSmentor_tickets.dm
index 10f87fe836c1..6f659339a569 100644
--- a/code/controllers/subsystem/tickets/SSmentor_tickets.dm
+++ b/code/controllers/subsystem/tickets/SSmentor_tickets.dm
@@ -31,7 +31,8 @@ GLOBAL_REAL(SSmentor_tickets, /datum/controller/subsystem/tickets/mentor_tickets
"Clear Cache" = "To fix a blank screen, go to the 'Special Verbs' tab and press 'Reload UI Resources'. If that fails, clear your BYOND cache (instructions provided with 'Reload UI Resources'). If that still fails, please ask for help again, stating you have already done these steps.",
"Experiment!" = "Experiment! Part of the joy of this game is trying out various things, and dealing with the consequences if/when they go horribly wrong.",
"How to Objectives" = "There are lots of ways to accomplish your objectives as an antagonist. A direct frontal assault may work, provided you can get in and out before backup arrives. Sneaking in can work, too, as long as you're quick and avoid prying eyes. But don't forget roleplaying methods! Tricking your target into a maze of bear traps is much more interesting than just shooting them with a gun. Even if it fails, you and your target (or its guardians) are likely to have more fun this way, and that's the most important part.",
- "MHelp was in Russian" = "Привет! Ты попал на английский Paradise сервер. Возможно, ты ошибся. Русский имеет такое название: SS220\[RU]."
+ "MHelp was in Russian" = "Привет! Ты попал на английский Paradise сервер. Возможно, ты ошибся. Русский имеет такое название: SS220\[RU].",
+ "NCT Dispatch" = "A Nanotrasen Career Trainer will be assisting you in-game. You should be able to identify them by their green uniform and black coat."
)
if(GLOB.configuration.url.github_url)
@@ -71,6 +72,21 @@ GLOBAL_REAL(SSmentor_tickets, /datum/controller/subsystem/tickets/mentor_tickets
if(message_key == null)
T.staffAssigned = null //if they cancel we dont need to hold this ticket anymore
return
+ if(message_key == "NCT Dispatch")
+ var/nct_active = list()
+ for(var/mob/living/carbon/human/trainer as anything in GLOB.human_list) // Let's check if we have any active NCTs
+ if(trainer.mind?.assigned_role != "Nanotrasen Career Trainer")
+ continue
+ nct_active += trainer
+ if(!length(nct_active))
+ to_chat(usr, "There are no active NCTs. Autoresponse canceled.") // If we don't, don't solve the ticket and then send feedback.
+ return
+ var/mob/living/carbon/human/trainee = get_mob_by_ckey(T.client_ckey)
+ for(var/mob/living/carbon/human/nct as anything in nct_active)
+ if(!locate(/obj/item/radio/headset) in list(nct.l_ear, nct.r_ear)) // If the NCT doesn't have a headset, ignore it.
+ continue
+ to_chat(nct, "Incoming priority transmission from Nanotrasen Training Center. Request information as follows: Career Trainer, we've received a request from an employee. [trainee.p_their(TRUE)] name is [trainee.real_name], [trainee.p_theyre()] a [trainee.mind.assigned_role]. See if [trainee.p_they()] need [trainee.p_s()] any help. ")
+ SEND_SOUND(nct, 'sound/effects/headset_message.ogg')
SEND_SOUND(returnClient(N), sound('sound/effects/adminhelp.ogg'))
to_chat_safe(returnClient(N), "[key_name_hidden(C)] is autoresponding with: [response_phrases[message_key]] ") //for this we want the full value of whatever key this is to tell the player so we do response_phrases[message_key]
diff --git a/code/datums/atom_hud.dm b/code/datums/atom_hud.dm
index 9ab6f8e0fd20..5178b181fbaf 100644
--- a/code/datums/atom_hud.dm
+++ b/code/datums/atom_hud.dm
@@ -11,6 +11,7 @@ GLOBAL_LIST_INIT(huds, list(
DATA_HUD_DIAGNOSTIC_ADVANCED = new/datum/atom_hud/data/diagnostic/advanced(),
DATA_HUD_HYDROPONIC = new/datum/atom_hud/data/hydroponic(),
DATA_HUD_JANITOR = new/datum/atom_hud/data/janitor(),
+ DATA_HUD_PRESSURE = new/datum/atom_hud/data/pressure(),
ANTAG_HUD_CULT = new/datum/atom_hud/antag(),
ANTAG_HUD_REV = new/datum/atom_hud/antag(),
ANTAG_HUD_OPS = new/datum/atom_hud/antag(),
diff --git a/code/datums/components/anti_magic.dm b/code/datums/components/anti_magic.dm
new file mode 100644
index 000000000000..645e579a7091
--- /dev/null
+++ b/code/datums/components/anti_magic.dm
@@ -0,0 +1,166 @@
+/// This provides different types of magic resistance on an object
+/datum/component/anti_magic
+ /// A bitflag with the types of magic resistance on the object
+ var/antimagic_flags
+ /// The amount of times the object can protect the user from magic
+ /// Set to INFINITY to have, well, infinite charges.
+ var/charges
+ /// The inventory slot the object must be located at in order to activate
+ var/inventory_flags
+ /// The callback invoked when we have been drained a antimagic charge
+ var/datum/callback/drain_antimagic
+ /// The callback invoked when twe have been depleted of all charges
+ var/datum/callback/expiration
+ /// Whether we should, on equipping, alert the caster that this item can block any of their spells
+ /// This changes between true and false on equip and drop, don't set it outright to something
+ var/alert_caster_on_equip = TRUE
+
+/**
+ * Adds magic resistances to an object
+ *
+ * Magic resistance will prevent magic from affecting the user if it has the correct resistance
+ * against the type of magic being used
+ *
+ * args:
+ * * antimagic_flags (optional) A bitflag with the types of magic resistance on the object
+ * * charges (optional) The amount of times the object can protect the user from magic
+ * * inventory_flags (optional) The inventory slot the object must be located at in order to activate
+ * * drain_antimagic (optional) The proc that is triggered when an object has been drained a antimagic charge
+ * * expiration (optional) The proc that is triggered when the object is depleted of charges
+ * *
+ * antimagic bitflags: (see code/__DEFINES/magic.dm)
+ * * MAGIC_RESISTANCE - Default magic resistance that blocks normal magic (wizard, spells, staffs)
+ * * MAGIC_RESISTANCE_MIND - Tinfoil hat magic resistance that blocks mental magic (telepathy, abductors, jelly people)
+ * * MAGIC_RESISTANCE_HOLY - Holy magic resistance that blocks unholy magic (revenant, cult, vampire, voice of god)
+**/
+/datum/component/anti_magic/Initialize(
+ antimagic_flags = MAGIC_RESISTANCE,
+ charges = INFINITY,
+ inventory_flags = ~ITEM_SLOT_IN_BACKPACK, // items in a backpack won't activate, anywhere else is fine
+ datum/callback/drain_antimagic,
+ datum/callback/expiration,
+ )
+
+
+ var/atom/movable/movable = parent
+ if(!istype(movable))
+ return COMPONENT_INCOMPATIBLE
+
+ var/compatible = FALSE
+ if(isitem(movable))
+ RegisterSignal(movable, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip))
+ RegisterSignal(movable, COMSIG_ITEM_DROPPED, PROC_REF(on_drop))
+ RegisterSignal(movable, COMSIG_ATTACK, PROC_REF(on_attack))
+ compatible = TRUE
+ else if(ismob(movable))
+ register_antimagic_signals(movable)
+ compatible = TRUE
+
+ if(movable.can_buckle)
+ RegisterSignal(movable, COMSIG_MOVABLE_BUCKLE, PROC_REF(on_buckle))
+ RegisterSignal(movable, COMSIG_MOVABLE_UNBUCKLE, PROC_REF(on_unbuckle))
+ compatible = TRUE
+
+ if(!compatible)
+ return COMPONENT_INCOMPATIBLE
+
+ src.antimagic_flags = antimagic_flags
+ src.charges = charges
+ src.inventory_flags = inventory_flags
+ src.drain_antimagic = drain_antimagic
+ src.expiration = expiration
+
+/datum/component/anti_magic/Destroy(force)
+ drain_antimagic = null
+ expiration = null
+ return ..()
+
+/datum/component/anti_magic/proc/register_antimagic_signals(datum/on_what)
+ RegisterSignal(on_what, COMSIG_MOB_RECEIVE_MAGIC, PROC_REF(block_receiving_magic), override = TRUE)
+ RegisterSignal(on_what, COMSIG_MOB_RESTRICT_MAGIC, PROC_REF(restrict_casting_magic), override = TRUE)
+
+/datum/component/anti_magic/proc/unregister_antimagic_signals(datum/on_what)
+ UnregisterSignal(on_what, list(COMSIG_MOB_RECEIVE_MAGIC, COMSIG_MOB_RESTRICT_MAGIC))
+
+/datum/component/anti_magic/proc/on_buckle(atom/movable/source, mob/living/bucklee)
+ SIGNAL_HANDLER // COMSIG_MOVABLE_BUCKLE
+ register_antimagic_signals(bucklee)
+
+/datum/component/anti_magic/proc/on_unbuckle(atom/movable/source, mob/living/bucklee)
+ SIGNAL_HANDLER // COMSIG_MOVABLE_UNBUCKLE
+ unregister_antimagic_signals(bucklee)
+
+/datum/component/anti_magic/proc/on_equip(atom/movable/source, mob/equipper, slot)
+ SIGNAL_HANDLER // COMSIG_ITEM_EQUIPPED
+ addtimer(CALLBACK(src, PROC_REF(on_equip_part_2), source, equipper, slot), 0.1 SECONDS) //We wait a moment to see if the item grants antimagic flags
+
+/datum/component/anti_magic/proc/on_equip_part_2(atom/movable/source, mob/equipper, slot)
+ if(!(inventory_flags & slot)) //Check that the slot is valid for antimagic
+ unregister_antimagic_signals(equipper)
+ return
+
+ register_antimagic_signals(equipper)
+ if(HAS_TRAIT(equipper, TRAIT_ANTIMAGIC_NO_SELFBLOCK)) //If they do not care about antimagic, don't warn them
+ return
+ if(!alert_caster_on_equip)
+ return
+
+ // Check to see if we have any spells that are blocked due to antimagic
+ if(!equipper.mind)
+ return
+ for(var/datum/spell/knownspell in equipper.mind.spell_list)
+ if(!(knownspell.spell_requirements & SPELL_REQUIRES_NO_ANTIMAGIC))
+ continue
+
+ if(!(antimagic_flags & knownspell.antimagic_flags))
+ continue
+
+ to_chat(equipper, "[parent] is interfering with your ability to cast magic! ")
+ alert_caster_on_equip = FALSE
+ break
+
+/datum/component/anti_magic/proc/on_drop(atom/movable/source, mob/user)
+ SIGNAL_HANDLER //COMSIG_ITEM_DROPPED
+
+ // Reset alert
+ if(source.loc != user)
+ alert_caster_on_equip = TRUE
+ unregister_antimagic_signals(user)
+
+/datum/component/anti_magic/proc/block_receiving_magic(mob/living/carbon/source, casted_magic_flags, charge_cost, list/antimagic_sources)
+ SIGNAL_HANDLER // COMSIG_MOB_RECEIVE_MAGIC
+
+ // We do not block this type of magic, good day
+ if(!(casted_magic_flags & antimagic_flags))
+ return NONE
+
+ // We have already blocked this spell
+ if(parent in antimagic_sources)
+ return NONE
+
+ // Block success! Add this parent to the list of antimagic sources
+ antimagic_sources += parent
+
+ if((charges != INFINITY) && charge_cost > 0)
+ drain_antimagic?.Invoke(source, parent)
+ charges -= charge_cost
+ if(charges <= 0)
+ expiration?.Invoke(source, parent)
+ qdel(src) // no more antimagic
+
+ return COMPONENT_MAGIC_BLOCKED
+
+/// cannot cast magic with the same type of antimagic present
+/datum/component/anti_magic/proc/restrict_casting_magic(mob/user, magic_flags)
+ SIGNAL_HANDLER // COMSIG_MOB_RESTRICT_MAGIC
+
+ if(magic_flags & antimagic_flags)
+ if(HAS_TRAIT(user, TRAIT_ANTIMAGIC_NO_SELFBLOCK)) // this trait bypasses magic casting restrictions
+ return NONE
+ return COMPONENT_MAGIC_BLOCKED
+
+ return NONE
+
+/datum/component/anti_magic/proc/on_attack(obj/item/source, mob/living/target, mob/living/user)
+ SIGNAL_HANDLER //COMSIG_ATTACK
+ SEND_SIGNAL(target, COMSIG_ATOM_HOLY_ATTACK, source, user, antimagic_flags)
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index 4f0059b543c7..07b21892ed8e 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -402,6 +402,10 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
if("Nanotrasen Representative")
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
+ if("Nanotrasen Career Trainer")
+ clothes_s = new /icon('icons/mob/clothing/under/procedure.dmi', "trainer_s")
+ clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "trainercoat"), ICON_OVERLAY)
if("Blueshield")
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm
index ce26ce82eb35..416facf8aeaa 100644
--- a/code/datums/elements/strippable.dm
+++ b/code/datums/elements/strippable.dm
@@ -318,7 +318,7 @@
var/list/result
var/obj/item/item = item_data.get_item(owner)
- if(item && (item.flags & ABSTRACT))
+ if(item && (item.flags & ABSTRACT || HAS_TRAIT(item, TRAIT_NO_STRIP) || HAS_TRAIT(item, TRAIT_SKIP_EXAMINE)))
items[strippable_key] = result
continue
diff --git a/code/datums/helper_datums/map_template.dm b/code/datums/helper_datums/map_template.dm
index ff159e7d63ca..c25e8bc6bd12 100644
--- a/code/datums/helper_datums/map_template.dm
+++ b/code/datums/helper_datums/map_template.dm
@@ -84,6 +84,12 @@
stack_trace(" The file of [src] appears to be empty/non-existent.")
/datum/map_template/proc/get_affected_turfs(turf/T, centered = 0)
+ var/list/coordinate_bounds = get_coordinate_bounds(T, centered)
+ var/datum/coords/bottom_left = coordinate_bounds["bottom_left"]
+ var/datum/coords/top_right = coordinate_bounds["top_right"]
+ return block(max(bottom_left.x_pos, 1), max(bottom_left.y_pos, 1), T.z, min(top_right.x_pos, world.maxx), min(top_right.y_pos, world.maxy), T.z)
+
+/datum/map_template/proc/get_coordinate_bounds(turf/T, centered = FALSE)
var/turf/placement = T
var/min_x = placement.x
var/min_y = placement.y
@@ -93,7 +99,10 @@
var/max_x = min_x + width-1
var/max_y = min_y + height-1
- return block(max(min_x, 1), max(min_y, 1), placement.z, min(max_x, world.maxx), min(max_y, world.maxy), placement.z)
+
+ var/datum/coords/bottom_left = new(min_x, min_y, 1)
+ var/datum/coords/top_right = new(max_x, max_y, 1)
+ return list("bottom_left" = bottom_left, "top_right" = top_right)
/datum/map_template/proc/fits_in_map_bounds(turf/T, centered = 0)
var/turf/placement = T
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index f40b8fdb3e16..d8ed50b0e04b 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -444,7 +444,7 @@
/datum/mind/proc/memory_edit_eventmisc(mob/living/H)
. = _memory_edit_header("event", list())
- if(src in SSticker.mode.eventmiscs)
+ if(has_antag_datum(/datum/antagonist/eventmisc))
. += "YES |no "
else
. += "Event Role |NO "
@@ -1214,16 +1214,16 @@
else if(href_list["eventmisc"])
switch(href_list["eventmisc"])
if("clear")
- if(src in SSticker.mode.eventmiscs)
- SSticker.mode.eventmiscs -= src
- SSticker.mode.update_eventmisc_icons_removed(src)
- special_role = null
- message_admins("[key_name_admin(usr)] has de-eventantag'ed [current].")
- log_admin("[key_name(usr)] has de-eventantag'ed [current].")
+ if(!has_antag_datum(/datum/antagonist/eventmisc))
+ return
+ remove_antag_datum(/datum/antagonist/eventmisc)
+ message_admins("[key_name_admin(usr)] has de-eventantag'ed [current].")
+ log_admin("[key_name(usr)] has de-eventantag'ed [current].")
if("eventmisc")
- SSticker.mode.eventmiscs += src
- special_role = SPECIAL_ROLE_EVENTMISC
- SSticker.mode.update_eventmisc_icons_added(src)
+ if(has_antag_datum(/datum/antagonist/eventmisc))
+ to_chat(usr, "[current] is already an event antag!")
+ return
+ add_antag_datum(/datum/antagonist/eventmisc)
message_admins("[key_name_admin(usr)] has eventantag'ed [current].")
log_admin("[key_name(usr)] has eventantag'ed [current].")
current.create_log(MISC_LOG, "[current] was made into an event antagonist by [key_name_admin(usr)]")
diff --git a/code/datums/outfits/plasmamen_outfits.dm b/code/datums/outfits/plasmamen_outfits.dm
index 4ba5e9665a34..c18f4e4a0579 100644
--- a/code/datums/outfits/plasmamen_outfits.dm
+++ b/code/datums/outfits/plasmamen_outfits.dm
@@ -188,5 +188,12 @@
/datum/outfit/plasmaman/assistant
name = "Assistant Plasmaman"
+
head = /obj/item/clothing/head/helmet/space/plasmaman/assistant
uniform = /obj/item/clothing/under/plasmaman/assistant
+
+/datum/outfit/plasmaman/trainer
+ name = "Plasmaman Career Trainer"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/trainer
+ uniform = /obj/item/clothing/under/plasmaman/trainer
diff --git a/code/datums/ruins/ruin_placer.dm b/code/datums/ruins/ruin_placer.dm
index 3f0d80bb4a67..0d53c9bb71b7 100644
--- a/code/datums/ruins/ruin_placer.dm
+++ b/code/datums/ruins/ruin_placer.dm
@@ -1,7 +1,107 @@
+#define DEFAULT_PADDING 32
+
+/datum/ruin_placement
+ var/datum/map_template/ruin/ruin
+ var/base_padding
+ var/padding
+
+/datum/ruin_placement/New(datum/map_template/ruin/ruin_, padding_ = DEFAULT_PADDING, base_padding_ = 0)
+ . = ..()
+ ruin = ruin_
+ base_padding = base_padding_
+ padding = padding_
+
+/datum/ruin_placement/proc/reduce_padding()
+ padding = max(floor(padding / 2) - 1, -1)
+
+/datum/ruin_placement/proc/try_to_place(zlist_or_zlevel, area_whitelist)
+ var/list/z_levels = islist(zlist_or_zlevel) ? zlist_or_zlevel : list(zlist_or_zlevel)
+
+ // Our goal is to maximize padding, so we'll perform some number of attempts
+ // on one z-level, then the next, until we reach some limit, then reduce the
+ // padding and start again.
+ padding = DEFAULT_PADDING
+ while(padding >= 0)
+ var/width_border = base_padding + round(ruin.width / 2) + padding
+ var/height_border = base_padding + round(ruin.height / 2) + padding
+
+ for(var/z_level in z_levels)
+ var/placement_tries = PLACEMENT_TRIES
+ while(placement_tries > 0)
+ placement_tries--
+
+ var/turf/central_turf = locate(
+ rand(width_border, world.maxx - width_border),
+ rand(height_border, world.maxy - height_border),
+ z_level
+ )
+ var/valid = TRUE
+
+ if(!central_turf)
+ continue
+
+ // Expand the original bounds of the ruin with our padding and call
+ // that our list of affected turfs.
+ var/list/bounds = ruin.get_coordinate_bounds(central_turf, centered = TRUE)
+ var/datum/coords/bottom_left = bounds["bottom_left"]
+ var/datum/coords/top_right = bounds["top_right"]
+ bottom_left.x_pos -= padding
+ bottom_left.y_pos -= padding
+ top_right.x_pos += padding
+ top_right.y_pos += padding
+ var/list/affected_turfs = block(bottom_left.x_pos, bottom_left.y_pos, z_level, top_right.x_pos, top_right.y_pos, z_level)
+
+ // One sanity check just in case
+ if(!ruin.fits_in_map_bounds(central_turf, centered = TRUE))
+ valid = FALSE
+
+ for(var/turf/check in affected_turfs)
+ var/area/new_area = get_area(check)
+ if(!(istype(new_area, area_whitelist)) || check.flags & NO_RUINS)
+ valid = FALSE
+ break
+
+ if(!valid)
+ continue
+
+ for(var/turf/T in affected_turfs)
+ for(var/obj/structure/spawner/nest in T)
+ qdel(nest)
+ for(var/mob/living/simple_animal/monster in T)
+ qdel(monster)
+ for(var/obj/structure/flora/ash/plant in T)
+ qdel(plant)
+
+ ruin.load(central_turf, centered = TRUE)
+ for(var/turf/T in ruin.get_affected_turfs(central_turf, centered = TRUE)) // Just flag the actual ruin turfs!
+ T.flags |= NO_RUINS
+ new /obj/effect/landmark/ruin(central_turf, ruin)
+ ruin.loaded++
+
+ log_world("Ruin \"[ruin.name]\" placed at ([central_turf.x], [central_turf.y], [central_turf.z])")
+
+ var/map_filename = splittext(ruin.mappath, "/")
+ map_filename = map_filename[length(map_filename)]
+ SSblackbox.record_feedback("associative", "ruin_placement", 1, list(
+ "map" = map_filename,
+ "coords" = "[central_turf.x],[central_turf.y],[central_turf.z]"
+ ))
+
+ return TRUE
+
+ // Ran out of placement tries for this z-level/padding, move to the next z-level
+
+ // Ran out of z-levels to try with this padding, cut it and start again
+ reduce_padding()
+
+ // Ran out of z-levels, we got nowhere to place it
+ return FALSE
+
/datum/ruin_placer
var/ruin_budget
var/area_whitelist
var/list/templates
+ var/base_padding
/datum/ruin_placer/proc/place_ruins(z_levels)
if(!z_levels || !length(z_levels))
@@ -44,17 +144,8 @@
else //Otherwise just pick random one
current_pick = pickweight(ruins_availible)
- var/placement_tries = PLACEMENT_TRIES
- var/failed_to_place = TRUE
- var/z_placed = 0
- while(placement_tries > 0)
- placement_tries--
- z_placed = pick(z_levels)
- if(!current_pick.try_to_place(forced_z ? forced_z : z_placed, area_whitelist))
- continue
- else
- failed_to_place = FALSE
- break
+ var/datum/ruin_placement/placement = new(current_pick, base_padding_ = base_padding)
+ var/placement_success = placement.try_to_place(forced_z ? forced_z : z_levels, area_whitelist)
//That's done remove from priority even if it failed
if(forced)
@@ -62,12 +153,7 @@
forced_ruins -= current_pick
forced = FALSE
- if(failed_to_place)
- for(var/datum/map_template/ruin/R in ruins_availible)
- if(R.id == current_pick.id)
- ruins_availible -= R
- log_world("Failed to place [current_pick.name] ruin.")
- else
+ if(placement_success)
ruin_budget -= current_pick.get_cost()
if(!current_pick.allow_duplicates)
for(var/datum/map_template/ruin/R in ruins_availible)
@@ -78,6 +164,12 @@
for(var/possible_exclusion in ruins_availible)
if(istype(possible_exclusion,blacklisted_type))
ruins_availible -= possible_exclusion
+ else
+ for(var/datum/map_template/ruin/R in ruins_availible)
+ if(R.id == current_pick.id)
+ ruins_availible -= R
+ log_world("Failed to place [current_pick.name] ruin.")
+
forced_z = 0
//Update the availible list
@@ -87,8 +179,11 @@
log_world("Ruin loader finished with [ruin_budget] left to spend.")
+#undef DEFAULT_PADDING
+
/datum/ruin_placer/space
area_whitelist = /area/space
+ base_padding = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD
/datum/ruin_placer/space/New()
ruin_budget = rand(
diff --git a/code/datums/spell.dm b/code/datums/spell.dm
index 8ad1b79793c6..3604140c8193 100644
--- a/code/datums/spell.dm
+++ b/code/datums/spell.dm
@@ -73,8 +73,6 @@ GLOBAL_LIST_INIT(spells, typesof(/datum/spell))
var/should_recharge_after_cast = TRUE
var/still_recharging_msg = "The spell is still recharging. "
- var/holder_var_type = "bruteloss" //only used if charge_type equals to "holder_var"
- var/holder_var_amount = 20 //same. The amount adjusted with the mob's var when the spell is used
var/active = FALSE //Used by toggle based abilities.
var/ranged_mousepointer
var/mob/ranged_ability_user
@@ -97,9 +95,6 @@ GLOBAL_LIST_INIT(spells, typesof(/datum/spell))
var/overlay_icon_state = "spell"
var/overlay_lifespan = 0
- var/sparks_spread = FALSE
- var/sparks_amt = 0
-
///Determines if the spell has smoke, and if so what effect the smoke has. See spell defines.
var/smoke_type = SMOKE_NONE
var/smoke_amt = 0
@@ -139,6 +134,13 @@ GLOBAL_LIST_INIT(spells, typesof(/datum/spell))
var/static/list/spell_handlers = list()
/// handles a given spells cooldowns. tracks the time until its off cooldown,
var/datum/spell_cooldown/cooldown_handler
+ /// Flag for certain states that the spell requires the user be in to cast.
+ var/spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC
+ /// This determines what type of antimagic is needed to block the spell.
+ /// (MAGIC_RESISTANCE, MAGIC_RESISTANCE_MIND, MAGIC_RESISTANCE_HOLY)
+ /// If SPELL_REQUIRES_NO_ANTIMAGIC is set in Spell requirements,
+ /// The spell cannot be cast if the caster has any of the antimagic flags set.
+ var/antimagic_flags = MAGIC_RESISTANCE
/* Checks if the user can cast the spell
* @param charge_check If the proc should do the cooldown check
@@ -389,8 +391,7 @@ GLOBAL_LIST_INIT(spells, typesof(/datum/spell))
location = target
if(isliving(target) && message)
to_chat(target, "[message]")
- if(sparks_spread)
- do_sparks(sparks_amt, 0, location)
+
if(smoke_type)
var/datum/effect_system/smoke_spread/smoke
switch(smoke_type)
@@ -473,6 +474,12 @@ GLOBAL_LIST_INIT(spells, typesof(/datum/spell))
if(T && is_admin_level(T.z))
return FALSE
+ // If the spell requires the user has no antimagic equipped, and they're holding antimagic
+ // that corresponds with the spell's antimagic, then they can't actually cast the spell
+ if((spell_requirements & SPELL_REQUIRES_NO_ANTIMAGIC) && !user.can_cast_magic(antimagic_flags))
+ to_chat(user, "Some form of antimagic is preventing you from casting [src]! ")
+ return FALSE
+
if(!holy_area_cancast && user.holy_check())
return FALSE
diff --git a/code/datums/spells/alien_spells/basetype_alien_spell.dm b/code/datums/spells/alien_spells/basetype_alien_spell.dm
index 12d98e8e489b..02ac8ddab2a2 100644
--- a/code/datums/spells/alien_spells/basetype_alien_spell.dm
+++ b/code/datums/spells/alien_spells/basetype_alien_spell.dm
@@ -24,6 +24,7 @@ Updates the spell's actions on use as well, so they know when they can or can't
create_attack_logs = FALSE
/// Every alien spell creates only logs, no attack messages on someone placing weeds, but you DO get attack messages on neurotoxin and corrosive acid
create_custom_logs = TRUE
+ antimagic_flags = NONE
/// How much plasma it costs to use this
var/plasma_cost = 0
diff --git a/code/datums/spells/alien_spells/basetype_alien_touch.dm b/code/datums/spells/alien_spells/basetype_alien_touch.dm
index c58ff15bed29..f979b2af6ba3 100644
--- a/code/datums/spells/alien_spells/basetype_alien_touch.dm
+++ b/code/datums/spells/alien_spells/basetype_alien_touch.dm
@@ -6,6 +6,7 @@
base_cooldown = 1
action_background_icon_state = "bg_alien"
clothes_req = FALSE
+ antimagic_flags = NONE
create_attack_logs = FALSE
/// Every alien spell creates only logs, no attack messages on someone placing weeds, but you DO get attack messages on neurotoxin and corrosive acid
create_custom_logs = TRUE
diff --git a/code/datums/spells/alien_spells/build_resin_structure.dm b/code/datums/spells/alien_spells/build_resin_structure.dm
index 60bc6bbfa121..b33967cd40a4 100644
--- a/code/datums/spells/alien_spells/build_resin_structure.dm
+++ b/code/datums/spells/alien_spells/build_resin_structure.dm
@@ -85,6 +85,7 @@
to_chat(C, "You viciously rip apart and consume [target]! ")
C.add_plasma(-10)
qdel(target)
+ handle_delete(user)
#undef RESIN_WALL
#undef RESIN_NEST
diff --git a/code/datums/spells/alien_spells/corrosive_acid_spit.dm b/code/datums/spells/alien_spells/corrosive_acid_spit.dm
index b74af9fe38ca..eca1d74ac863 100644
--- a/code/datums/spells/alien_spells/corrosive_acid_spit.dm
+++ b/code/datums/spells/alien_spells/corrosive_acid_spit.dm
@@ -31,6 +31,7 @@
C.add_plasma(-200)
else
to_chat(C, "You cannot dissolve this object. ")
+ handle_delete(user)
/datum/spell/touch/alien_spell/burning_touch
name = "Blazing touch"
@@ -72,3 +73,4 @@
C.visible_message("[C] touches [target] and burns right through it! ")
C.add_plasma(-100)
qdel(target)
+ handle_delete(user)
diff --git a/code/datums/spells/banana_touch.dm b/code/datums/spells/banana_touch.dm
index b7d823bccdb3..9dc684f061a0 100644
--- a/code/datums/spells/banana_touch.dm
+++ b/code/datums/spells/banana_touch.dm
@@ -17,21 +17,21 @@
on_use_sound = 'sound/items/AirHorn.ogg'
icon_state = "banana_touch"
item_state = "banana_touch"
+ var/is_apprentice_spell = FALSE
/datum/spell/touch/banana/apprentice
hand_path = /obj/item/melee/touch_attack/banana/apprentice
/obj/item/melee/touch_attack/banana/apprentice
+ is_apprentice_spell = TRUE
-/obj/item/melee/touch_attack/banana/apprentice/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
+/obj/item/melee/touch_attack/banana/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
- if(iswizard(target) && target != user)
+
+ if(is_apprentice_spell && iswizard(target) && target != user)
to_chat(user, "Seriously?! Honk THEM, not me! ")
return
-
-/obj/item/melee/touch_attack/banana/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
- . = ..()
- if(!proximity_flag || target == user || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
+ if(!proximity_flag || target == user || blocked_by_antimagic || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
return
var/datum/effect_system/smoke_spread/s = new
@@ -41,6 +41,7 @@
to_chat(user, "HONK ")
var/mob/living/carbon/human/H = target
H.bananatouched()
+ handle_delete(user)
/mob/living/carbon/human/proc/bananatouched()
to_chat(src, "HONK ")
diff --git a/code/datums/spells/bloodcrawl.dm b/code/datums/spells/bloodcrawl.dm
index 007ff329932f..9bc2864a656c 100644
--- a/code/datums/spells/bloodcrawl.dm
+++ b/code/datums/spells/bloodcrawl.dm
@@ -8,6 +8,7 @@
overlay = null
action_icon_state = "bloodcrawl"
action_background_icon_state = "bg_demon"
+ antimagic_flags = NONE
var/allowed_type = /obj/effect/decal/cleanable
var/phased = FALSE
diff --git a/code/datums/spells/chaplain_bless.dm b/code/datums/spells/chaplain_bless.dm
index 970cebd638cc..518f51207c8e 100644
--- a/code/datums/spells/chaplain_bless.dm
+++ b/code/datums/spells/chaplain_bless.dm
@@ -7,6 +7,7 @@
clothes_req = FALSE
invocation = "none"
invocation_type = "none"
+ antimagic_flags = NONE
selection_activated_message = "You prepare a blessing. Click on a target to start blessing. "
selection_deactivated_message = "The crew will be blessed another time. "
diff --git a/code/datums/spells/chef.dm b/code/datums/spells/chef.dm
index a28438b397a1..2e42e0b1be66 100644
--- a/code/datums/spells/chef.dm
+++ b/code/datums/spells/chef.dm
@@ -4,6 +4,7 @@
clothes_req = FALSE
base_cooldown = 5 SECONDS
human_req = TRUE
+ antimagic_flags = NONE
action_icon_state = "chef"
action_background_icon_state = "bg_default"
still_recharging_msg = "All this thinking makes your head hurt, wait a bit longer."
diff --git a/code/datums/spells/horsemask.dm b/code/datums/spells/horsemask.dm
index f0614edddd55..32d5cab3dcb3 100644
--- a/code/datums/spells/horsemask.dm
+++ b/code/datums/spells/horsemask.dm
@@ -27,6 +27,13 @@
var/mob/living/carbon/human/target = targets[1]
+ if(target.can_block_magic(antimagic_flags))
+ target.visible_message("[target]'s face bursts into flames, which instantly burst outward, leaving [target.p_them()] unharmed! ",
+ "Your face starts burning up, but the flames are repulsed by your anti-magic protection! ",
+ )
+ to_chat(user, "The spell had no effect! ")
+ return FALSE
+
var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead
magichead.flags |= NODROP | DROPDEL //curses!
magichead.flags_inv = null //so you can still see their face
diff --git a/code/datums/spells/lightning.dm b/code/datums/spells/lightning.dm
index d4a141c1ccb4..c7e79e2e103d 100644
--- a/code/datums/spells/lightning.dm
+++ b/code/datums/spells/lightning.dm
@@ -38,6 +38,12 @@
origin.Beam(target, icon_state = "lightning[rand(1, 12)]", icon = 'icons/effects/effects.dmi', time = 5)
/datum/spell/charge_up/bounce/lightning/apply_bounce_effect(mob/origin, mob/living/target, energy, mob/user)
+ if(target.can_block_magic(antimagic_flags))
+ target.visible_message(
+ "[target] absorbs the spell, remaining unharmed! ",
+ "You absorb the spell, remaining unharmed! "
+ )
+ return
if(damaging)
target.electrocute_act(energy, "Lightning Bolt", flags = SHOCK_NOGLOVES)
else
diff --git a/code/datums/spells/mime.dm b/code/datums/spells/mime.dm
index 2e139981d64e..eda8b9822419 100644
--- a/code/datums/spells/mime.dm
+++ b/code/datums/spells/mime.dm
@@ -9,6 +9,7 @@
clothes_req = FALSE
cast_sound = null
human_req = TRUE
+ antimagic_flags = NONE
action_icon_state = "mime"
action_background_icon_state = "bg_mime"
@@ -87,6 +88,7 @@
clothes_req = FALSE
base_cooldown = 30 SECONDS
human_req = TRUE
+ antimagic_flags = NONE
action_icon_state = "fingergun"
action_background_icon_state = "bg_mime"
diff --git a/code/datums/spells/mime_malaise.dm b/code/datums/spells/mime_malaise.dm
index 63b1c3e2f298..67de63013349 100644
--- a/code/datums/spells/mime_malaise.dm
+++ b/code/datums/spells/mime_malaise.dm
@@ -20,7 +20,8 @@
/obj/item/melee/touch_attack/mime_malaise/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
- if(!proximity_flag || target == user || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
+
+ if(!proximity_flag || target == user || blocked_by_antimagic || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
return
var/datum/effect_system/smoke_spread/s = new
@@ -29,6 +30,7 @@
var/mob/living/carbon/human/H = target
H.mimetouched()
+ handle_delete(user)
/mob/living/carbon/human/proc/mimetouched()
Weaken(14 SECONDS)
diff --git a/code/datums/spells/mind_transfer.dm b/code/datums/spells/mind_transfer.dm
index 4690dec49729..2e3bad262cf0 100644
--- a/code/datums/spells/mind_transfer.dm
+++ b/code/datums/spells/mind_transfer.dm
@@ -9,6 +9,7 @@
selection_activated_message = "You prepare to transfer your mind. Click on a target to cast the spell. "
selection_deactivated_message = "You decide that your current form is good enough. "
cooldown_min = 200 //100 deciseconds reduction per rank
+ antimagic_flags = MAGIC_RESISTANCE|MAGIC_RESISTANCE_MIND
var/list/protected_roles = list(SPECIAL_ROLE_WIZARD, SPECIAL_ROLE_CHANGELING, SPECIAL_ROLE_CULTIST) //which roles are immune to the spell
var/paralysis_amount_caster = 40 SECONDS //how much the caster is paralysed for after the spell
var/paralysis_amount_victim = 40 SECONDS //how much the victim is paralysed for after the spell
@@ -47,6 +48,9 @@ Also, you never added distance checking after target is selected. I've went ahea
if(issilicon(target))
to_chat(user, "You feel this enslaved being is just as dead as its cold, hard exoskeleton. ")
return
+ if(target.can_block_magic(antimagic_flags))
+ to_chat(user, "Their mind is resisting your spell. ")
+ return
var/mob/living/victim = target//The target of the spell whos body will be transferred to.
var/mob/living/caster = user//The wizard/whomever doing the body transferring.
diff --git a/code/datums/spells/night_vision.dm b/code/datums/spells/night_vision.dm
index de085eae1993..ae5c94f97610 100644
--- a/code/datums/spells/night_vision.dm
+++ b/code/datums/spells/night_vision.dm
@@ -4,6 +4,7 @@
base_cooldown = 10
clothes_req = FALSE
+ antimagic_flags = NONE
message = "You toggle your night vision! "
diff --git a/code/datums/spells/rathens.dm b/code/datums/spells/rathens.dm
index 195103244444..22969027c466 100644
--- a/code/datums/spells/rathens.dm
+++ b/code/datums/spells/rathens.dm
@@ -15,6 +15,8 @@
/datum/spell/rathens/cast(list/targets, mob/user = usr)
for(var/mob/living/carbon/human/H in targets)
+ if(H.can_block_magic(antimagic_flags))
+ continue
var/datum/effect_system/smoke_spread/s = new
s.set_up(5, FALSE, H)
s.start()
diff --git a/code/datums/spells/sentient_sword_lunge.dm b/code/datums/spells/sentient_sword_lunge.dm
index 725bc77846c4..2053a75a87e8 100644
--- a/code/datums/spells/sentient_sword_lunge.dm
+++ b/code/datums/spells/sentient_sword_lunge.dm
@@ -16,7 +16,14 @@
to_chat(user, "You cannot use this ability if you're outside a blade! ")
return
var/obj/item/nullrod/scythe/talking/user_sword = user.loc
- var/mob/living/carbon/holder = user_sword.loc
- if(istype(holder))
+ if(ishuman(user_sword.loc))
+ var/mob/living/carbon/holder = user_sword.loc
holder.unEquip(user_sword)
+ else if(isstorage(user_sword.loc))
+ if(prob(50))
+ to_chat(user, "You fail to break out of [user_sword.loc]! ")
+ return
+ var/turf/our_turf = get_turf(user_sword.loc)
+ our_turf.visible_message("[user_sword] leaps out of [user_sword.loc]! ")
+ user_sword.forceMove(our_turf)
user_sword.throw_at(targets[1], 10, 3, user)
diff --git a/code/datums/spells/spacetime_dist.dm b/code/datums/spells/spacetime_dist.dm
index 2e7a45c95eef..9d7b09c16298 100644
--- a/code/datums/spells/spacetime_dist.dm
+++ b/code/datums/spells/spacetime_dist.dm
@@ -82,6 +82,8 @@
desc = "A distortion in spacetime. You can hear faint music..."
icon_state = "nothing"
/// A flags which save people from being thrown about
+ var/antimagic_flags = MAGIC_RESISTANCE
+ /// A flags which save people from being thrown about
var/obj/effect/cross_action/spacetime_dist/linked_dist
/// Used to prevent an infinite loop in the space tiime continuum
var/cant_teleport = FALSE
@@ -101,6 +103,10 @@
AddElement(/datum/element/connect_loc, loc_connections)
/obj/effect/cross_action/spacetime_dist/proc/walk_link(atom/movable/AM)
+ if(ismob(AM))
+ var/mob/M = AM
+ if(M.can_block_magic(antimagic_flags, charge_cost = 0))
+ return
if(linked_dist && walks_left > 0)
flick("purplesparkles", src)
linked_dist.get_walker(AM)
diff --git a/code/datums/spells/wizard_spells.dm b/code/datums/spells/wizard_spells.dm
index 5466ee845cf3..c62f868f4018 100644
--- a/code/datums/spells/wizard_spells.dm
+++ b/code/datums/spells/wizard_spells.dm
@@ -313,6 +313,10 @@
return
var/mob/living/target = targets[1]
+ if(target.can_block_magic(antimagic_flags))
+ to_chat(target, "Your eye itches, but it passes momentarily. ")
+ to_chat(user, "The spell had no effect! ")
+ return FALSE
target.EyeBlurry(40 SECONDS)
target.EyeBlind(30 SECONDS)
@@ -414,6 +418,10 @@
playMagSound()
for(var/turf/T in targets) //Done this way so things don't get thrown all around hilariously.
for(var/atom/movable/AM in T)
+ if(ismob(AM))
+ var/mob/victim_mob = AM
+ if(victim_mob.can_block_magic(antimagic_flags))
+ continue
thrownatoms += AM
for(var/am in thrownatoms)
@@ -457,6 +465,8 @@
/datum/spell/sacred_flame/cast(list/targets, mob/user = usr)
for(var/mob/living/L in targets)
+ if(L.can_block_magic(antimagic_flags))
+ continue
L.adjust_fire_stacks(20)
if(isliving(user))
var/mob/living/U = user
diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm
index 455c70489868..a545c1504e53 100644
--- a/code/datums/station_traits/positive_traits.dm
+++ b/code/datums/station_traits/positive_traits.dm
@@ -200,7 +200,8 @@
/datum/job/judge = /obj/item/organ/internal/cyberimp/arm/telebaton,
/datum/job/explorer = /obj/item/organ/internal/cyberimp/arm/toolset,
/datum/job/nanotrasenrep = /obj/item/organ/internal/heart/cybernetic/upgraded,
- /datum/job/blueshield = /obj/item/organ/internal/cyberimp/arm/flash
+ /datum/job/blueshield = /obj/item/organ/internal/cyberimp/arm/flash,
+ /datum/job/nanotrasentrainer = /obj/item/organ/internal/heart/cybernetic/upgraded
)
/datum/station_trait/cybernetic_revolution/New()
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index c4795b8d71a4..aa8dfa6c23dd 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -92,9 +92,12 @@
var/found_someone = FALSE
for(var/mob/living/L in oview(9, owner))
- found_someone = TRUE
playsound(owner, 'sound/magic/teleport_diss.ogg', 50, TRUE)
L.Beam(owner, "grabber_beam", time = 1 SECONDS, maxdistance = 9)
+ if(L.can_block_magic(MAGIC_RESISTANCE))
+ to_chat(L, "You shake off the tendrils that try to wrap around you! ")
+ continue
+ found_someone = TRUE
L.apply_status_effect(STATUS_EFFECT_VOID_PRICE)
if(found_someone)
owner.visible_message("The violet light around [owner] glows black... and shoots off to those around [owner.p_them()]! ", "The tendrils around you cinch tightly... but then unwravel and fly at others! ")
diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm
index 858f9076582b..5e3b3357b5ee 100644
--- a/code/datums/status_effects/debuffs.dm
+++ b/code/datums/status_effects/debuffs.dm
@@ -696,6 +696,18 @@
if(isnum(_slowdown_value))
slowdown_value = _slowdown_value
+// Directional slow - Like slowed, but only if you're moving in a certain direction.
+/datum/status_effect/incapacitating/directional_slow
+ id = "directional_slow"
+ var/direction
+ var/slowdown_value = 10 // defaults to this value if none is specified
+
+/datum/status_effect/incapacitating/directional_slow/on_creation(mob/living/new_owner, set_duration, _direction, _slowdown_value)
+ . = ..()
+ direction = _direction
+ if(isnum(_slowdown_value))
+ slowdown_value = _slowdown_value
+
/datum/status_effect/transient/silence
id = "silenced"
@@ -1355,6 +1367,18 @@
new /obj/effect/abstract/bubblegum_rend_helper(get_turf(src), null, 10)
qdel(src)
+/// The mob has been pushed by airflow recently, and won't automatically grab nearby objects to stop drifting.
+/datum/status_effect/unbalanced
+ id = "unbalanced"
+ duration = 1 SECONDS
+ status_type = STATUS_EFFECT_REFRESH
+ alert_type = /atom/movable/screen/alert/status_effect/unbalanced
+
+/atom/movable/screen/alert/status_effect/unbalanced
+ name = "Unbalanced"
+ desc = "You're being shoved around by airflow! You can resist this by moving, but moving against the wind will be slow."
+ icon_state = "unbalanced"
+
/datum/status_effect/c_foamed
id = "c_foamed up"
duration = 1 MINUTES
diff --git a/code/datums/wires/alarm.dm b/code/datums/wires/alarm.dm
index 8660a8e64219..08b2ed5a1705 100644
--- a/code/datums/wires/alarm.dm
+++ b/code/datums/wires/alarm.dm
@@ -6,7 +6,7 @@
/datum/wires/alarm/New(atom/_holder)
wires = list(
- WIRE_IDSCAN , WIRE_MAIN_POWER1 , WIRE_SYPHON,
+ WIRE_IDSCAN , WIRE_MAIN_POWER1 , WIRE_SIPHON,
WIRE_AI_CONTROL, WIRE_AALARM
)
return ..()
@@ -39,9 +39,9 @@
if(WIRE_AI_CONTROL)
A.aidisabled = !mend
- if(WIRE_SYPHON)
+ if(WIRE_SIPHON)
if(!mend)
- A.mode = 3 // AALARM_MODE_PANIC
+ A.mode = AALARM_MODE_PANIC
A.apply_mode()
if(WIRE_AALARM)
@@ -68,11 +68,11 @@
addtimer(CALLBACK(A, TYPE_PROC_REF(/obj/machinery/alarm, enable_ai_control_callback)), 10 SECONDS)
- if(WIRE_SYPHON)
- if(A.mode == 1) // AALARM_MODE_SCRUB
- A.mode = 3 // AALARM_MODE_PANIC
+ if(WIRE_SIPHON)
+ if(A.mode == AALARM_MODE_FILTERING)
+ A.mode = AALARM_MODE_PANIC
else
- A.mode = 1 // AALARM_MODE_SCRUB
+ A.mode = AALARM_MODE_FILTERING
A.apply_mode()
if(WIRE_AALARM)
diff --git a/code/game/area/misc_areas.dm b/code/game/area/misc_areas.dm
index 21e334a94d21..e9bd5f40a6a4 100644
--- a/code/game/area/misc_areas.dm
+++ b/code/game/area/misc_areas.dm
@@ -48,6 +48,9 @@
icon_state = "space_notp"
tele_proof = TRUE
+/area/game_test
+ name = "Game Test Area"
+
//SYNDICATES
/area/syndicate_mothership
diff --git a/code/game/area/ss13_areas/procedure_areas.dm b/code/game/area/ss13_areas/procedure_areas.dm
new file mode 100644
index 000000000000..12d2e177b5b2
--- /dev/null
+++ b/code/game/area/ss13_areas/procedure_areas.dm
@@ -0,0 +1,4 @@
+
+/area/station/procedure/trainer_office
+ name = "\improper Trainer's Office"
+ icon_state = "procedure_nct"
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index cdae5dd85d25..8be85ac77933 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -44,7 +44,7 @@
// Atmos
var/pressure_resistance = 10
- var/last_high_pressure_movement_air_cycle = 0
+ var/last_high_pressure_movement_time = 0
/// UID for the atom which the current atom is orbiting
var/orbiting_uid = null
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index c0c0a7fca2ed..da9bc720a4f4 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -60,6 +60,14 @@
/datum/atom_hud/data/janitor
hud_icons = list(JANI_HUD)
+/datum/atom_hud/data/pressure
+ hud_icons = list(PRESSURE_HUD)
+
+/// Pressure hud is special, because it doesn't use hudatoms. SSair manages its images, so tell SSair to add the initial set.
+/datum/atom_hud/data/pressure/add_hud_to(mob/user)
+ ..()
+ SSair.add_pressure_hud(user)
+
/* MED/SEC/DIAG HUD HOOKS */
/*
diff --git a/code/game/dna/mutations/mutation_powers.dm b/code/game/dna/mutations/mutation_powers.dm
index f9cb5574c824..078633409f49 100644
--- a/code/game/dna/mutations/mutation_powers.dm
+++ b/code/game/dna/mutations/mutation_powers.dm
@@ -301,6 +301,7 @@
clothes_req = FALSE
stat_allowed = CONSCIOUS
+ antimagic_flags = NONE
selection_activated_message = "Your mind grow cold. Click on a target to cast the spell. "
selection_deactivated_message = "Your mind returns to normal. "
@@ -372,6 +373,7 @@
clothes_req = FALSE
stat_allowed = CONSCIOUS
invocation_type = "none"
+ antimagic_flags = NONE
action_icon_state = "genetic_eat"
@@ -511,6 +513,7 @@
clothes_req = FALSE
stat_allowed = CONSCIOUS
invocation_type = "none"
+ antimagic_flags = NONE
action_icon_state = "genetic_jump"
var/leap_distance = 10
@@ -636,6 +639,7 @@
selection_deactivated_message = "Your body calms down again. "
invocation_type = "none"
+ antimagic_flags = NONE
action_icon_state = "genetic_poly"
@@ -684,6 +688,7 @@
human_req = TRUE
stat_allowed = CONSCIOUS
invocation_type = "none"
+ antimagic_flags = MAGIC_RESISTANCE_MIND
action_icon_state = "genetic_empath"
@@ -793,6 +798,7 @@
clothes_req = FALSE
stat_allowed = CONSCIOUS
invocation_type = "none"
+ antimagic_flags = NONE
action_icon_state = "genetic_morph"
@@ -983,6 +989,7 @@
clothes_req = FALSE
stat_allowed = CONSCIOUS
invocation_type = "none"
+ antimagic_flags = MAGIC_RESISTANCE_MIND
action_icon_state = "genetic_project"
@@ -1017,6 +1024,7 @@
base_cooldown = 0
clothes_req = FALSE
stat_allowed = CONSCIOUS
+ antimagic_flags = MAGIC_RESISTANCE_MIND
invocation_type = "none"
action_icon_state = "genetic_mindscan"
var/list/expanded_minds = list()
@@ -1105,6 +1113,7 @@
clothes_req = FALSE
stat_allowed = CONSCIOUS
invocation_type = "none"
+ antimagic_flags = MAGIC_RESISTANCE_MIND
action_icon_state = "genetic_view"
diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index bad65ed348e5..ee868afd1be8 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -6,7 +6,7 @@ GLOBAL_LIST_INIT(possible_changeling_IDs, list("Alpha","Beta","Gamma","Delta","E
name = "changeling"
config_tag = "changeling"
restricted_jobs = list("AI", "Cyborg")
- protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General")
+ protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Career Trainer", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General", "Nanotrasen Career Trainer")
species_to_mindflayer = list("Machine")
required_players = 15
required_enemies = 1
diff --git a/code/game/gamemodes/cult/blood_magic.dm b/code/game/gamemodes/cult/blood_magic.dm
index 6f97e380e15e..12b80aa8da5d 100644
--- a/code/game/gamemodes/cult/blood_magic.dm
+++ b/code/game/gamemodes/cult/blood_magic.dm
@@ -385,6 +385,7 @@
var/uses = 1
var/health_cost = 0 //The amount of health taken from the user when invoking the spell
var/datum/action/innate/cult/blood_spell/source
+ var/antimagic_flags = MAGIC_RESISTANCE_HOLY
/obj/item/melee/blood_magic/Initialize(mapload, spell)
. = ..()
@@ -418,6 +419,11 @@
uses = 0
qdel(src)
return
+ if(M.can_block_magic(MAGIC_RESISTANCE_HOLY))
+ to_chat(user, "[M] absorbs your spell! ")
+ uses = 0
+ qdel(src)
+ return
add_attack_logs(user, M, "used a cult spell ([src]) on")
M.lastattacker = user.real_name
diff --git a/code/game/gamemodes/cult/cult_mode.dm b/code/game/gamemodes/cult/cult_mode.dm
index a682eae42551..371eb3200f8a 100644
--- a/code/game/gamemodes/cult/cult_mode.dm
+++ b/code/game/gamemodes/cult/cult_mode.dm
@@ -6,7 +6,7 @@
/datum/game_mode/cult
name = "cult"
config_tag = "cult"
- restricted_jobs = list("Chaplain", "AI", "Cyborg", "Internal Affairs Agent", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Blueshield", "Nanotrasen Representative", "Magistrate", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General")
+ restricted_jobs = list("Chaplain", "AI", "Cyborg", "Internal Affairs Agent", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Blueshield", "Nanotrasen Representative", "Magistrate", "Nanotrasen Career Trainer", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General")
protected_jobs = list()
required_players = 30
required_enemies = 3
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index b76f5a7b857e..a3d2bced9cf8 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -249,9 +249,8 @@ structure_check() searches for nearby cultist structures required for the invoca
qdel(src)
/mob/proc/null_rod_check() //The null rod, if equipped, will protect the holder from the effects of most runes
- var/obj/item/nullrod/N = locate() in src
- if(N)
- return N
+ if(can_block_magic(MAGIC_RESISTANCE_HOLY))
+ return TRUE
return FALSE
//Rite of Enlightenment: Converts a normal crewmember to the cult, or offer them as sacrifice if cant be converted.
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 766ed1eeb669..7edf682a751b 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -625,17 +625,6 @@
if(something_to_print)
print_command_report(trait_list_desc.Join(" "), "NAS Trurl Detected Divergencies", FALSE)
-
-/datum/game_mode/proc/update_eventmisc_icons_added(datum/mind/mob_mind)
- var/datum/atom_hud/antag/antaghud = GLOB.huds[ANTAG_HUD_EVENTMISC]
- antaghud.join_hud(mob_mind.current)
- set_antag_hud(mob_mind.current, "hudevent")
-
-/datum/game_mode/proc/update_eventmisc_icons_removed(datum/mind/mob_mind)
- var/datum/atom_hud/antag/antaghud = GLOB.huds[ANTAG_HUD_EVENTMISC]
- antaghud.leave_hud(mob_mind.current)
- set_antag_hud(mob_mind.current, null)
-
/// Gets the value of all end of round stats through auto_declare and returns them
/datum/game_mode/proc/get_end_of_round_antagonist_statistics()
. = list()
diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm
index 87b88676d3c9..90ba39865b7a 100644
--- a/code/game/gamemodes/malfunction/Malf_Modules.dm
+++ b/code/game/gamemodes/malfunction/Malf_Modules.dm
@@ -13,6 +13,7 @@
base_cooldown = 0
var/uses //If we have multiple uses of the same power
var/auto_use_uses = TRUE //If we automatically use up uses on each activation
+ antimagic_flags = NONE
/datum/spell/ai_spell/create_new_targeting()
return new /datum/spell_targeting/self
diff --git a/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm b/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm
index df5df3aae74a..d44adb00d178 100644
--- a/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm
+++ b/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm
@@ -212,6 +212,8 @@
return
hit = TRUE // to prevent double hits from the pull
. = ..()
+ if(!.)
+ return
for(var/atom/extinguish_target in range(2, src))
extinguish_target.extinguish_light(TRUE)
if(!isliving(target))
diff --git a/code/game/gamemodes/miniantags/guardian/host_actions.dm b/code/game/gamemodes/miniantags/guardian/host_actions.dm
index 4a4ff5144bad..e21f25094156 100644
--- a/code/game/gamemodes/miniantags/guardian/host_actions.dm
+++ b/code/game/gamemodes/miniantags/guardian/host_actions.dm
@@ -106,6 +106,7 @@
name = "Place Teleportation Beacon"
desc = "Mark a floor as your beacon point, allowing you to warp targets to it. Your beacon requires an anchor, will not work on space tiles."
clothes_req = FALSE
+ antimagic_flags = NONE
base_cooldown = 300 SECONDS
action_icon_state = "no_state"
action_background_icon = 'icons/mob/guardian.dmi'
@@ -129,6 +130,7 @@
name = "Set Surveillance Snare"
desc = "Places an invisible Surveillance Snare on the ground, if someone walks over it you'll be alerted. Max of 6 snares active at a time"
clothes_req = FALSE
+ antimagic_flags = NONE
base_cooldown = 3 SECONDS
action_icon_state = "no_state"
action_background_icon = 'icons/mob/guardian.dmi'
@@ -160,6 +162,7 @@
name = "Change battlecry"
desc = "Changes your battlecry."
clothes_req = FALSE
+ antimagic_flags = NONE
base_cooldown = 1 SECONDS
action_icon_state = "no_state"
action_background_icon = 'icons/mob/guardian.dmi'
diff --git a/code/game/gamemodes/miniantags/morph/spells/pass_airlock.dm b/code/game/gamemodes/miniantags/morph/spells/pass_airlock.dm
index b8f2f1623bc8..847ee5cce004 100644
--- a/code/game/gamemodes/miniantags/morph/spells/pass_airlock.dm
+++ b/code/game/gamemodes/miniantags/morph/spells/pass_airlock.dm
@@ -5,6 +5,7 @@
action_background_icon_state = "bg_morph"
action_icon_state = "morph_airlock"
clothes_req = FALSE
+ antimagic_flags = NONE
base_cooldown = 10 SECONDS
selection_activated_message = "Click on an airlock to try pass it. "
diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm
index babc34bc4619..83e7c32d8b69 100644
--- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm
+++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm
@@ -14,7 +14,7 @@
gender = NEUTER
speak_chance = 20
- damage_coeff = list(BRUTE = 0, BURN = 0, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) // Pulse demons take damage from nothing
+ damage_coeff = list(BRUTE = 0, BURN = 0.5, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) // Pulse demons take damage from nothing except some from lasers
emote_hear = list("vibrates", "sizzles")
speak_emote = list("modulates")
@@ -781,9 +781,11 @@
return FALSE
/mob/living/simple_animal/demon/pulse_demon/bullet_act(obj/item/projectile/proj)
- if(istype(proj, /obj/item/projectile/ion))
+ if(proj.damage_type == BURN)
+ regen_lock = max(regen_lock, 1)
return ..()
- visible_message("[proj] goes right through [src]! ")
+ else
+ visible_message("[proj] goes right through [src]! ")
/mob/living/simple_animal/demon/pulse_demon/electrocute_act(shock_damage, source, siemens_coeff, flags)
return
@@ -826,6 +828,18 @@
return FALSE
return TRUE
+/mob/living/simple_animal/demon/pulse_demon/adjustHealth(amount, updating_health)
+ if(amount > 0) // This damages the pulse demon
+ return ..()
+
+ if(!ismachinery(loc))
+ if(health >= (maxHealth / 2))
+ amount = 0
+ else
+ amount = clamp(amount, -((maxHealth / 2) - health), 0)
+ amount = round(amount, 1)
+ return ..()
+
/obj/item/organ/internal/heart/demon/pulse
name = "perpetual pacemaker"
desc = "It still beats furiously, thousands of bright lights shine within it."
diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm
index d248e460ba20..97c86faf060d 100644
--- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm
+++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm
@@ -10,6 +10,7 @@
/datum/spell/pulse_demon
clothes_req = FALSE
+ antimagic_flags = NONE
action_background_icon_state = "bg_pulsedemon"
var/locked = TRUE
var/unlock_cost = 1 KJ
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
index 0a167ec7724c..ad6da8561d80 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
@@ -134,6 +134,7 @@
clothes_req = FALSE
action_icon_state = "r_transmit"
action_background_icon_state = "bg_revenant"
+ antimagic_flags = MAGIC_RESISTANCE_HOLY|MAGIC_RESISTANCE_MIND
/datum/spell/revenant_transmit/create_new_targeting()
var/datum/spell_targeting/targeted/T = new()
@@ -165,6 +166,7 @@
var/unlock_amount = 100
/// How much essence it costs to use
var/cast_amount = 50
+ antimagic_flags = MAGIC_RESISTANCE_HOLY
/datum/spell/aoe/revenant/New()
..()
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index 12def9e3ef48..46ed0c4f3fea 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -7,7 +7,7 @@
/datum/game_mode/revolution
name = "revolution"
config_tag = "revolution"
- restricted_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer", "Blueshield", "Nanotrasen Representative", "Magistrate", "Quartermaster")
+ restricted_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer", "Blueshield", "Nanotrasen Representative", "Magistrate", "Quartermaster", "Nanotrasen Career Trainer")
required_players = 20
required_enemies = 1
recommended_enemies = 3
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index a4f1f3904517..c1a741341948 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -2,7 +2,7 @@
name = "traitor"
config_tag = "traitor"
restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances
- protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General")
+ protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General", "Nanotrasen Career Trainer")
required_players = 0
required_enemies = 1
recommended_enemies = 4
diff --git a/code/game/gamemodes/trifecta/trifecta.dm b/code/game/gamemodes/trifecta/trifecta.dm
index 2e1798c8a8c9..783de206c6bd 100644
--- a/code/game/gamemodes/trifecta/trifecta.dm
+++ b/code/game/gamemodes/trifecta/trifecta.dm
@@ -6,7 +6,7 @@
/datum/game_mode/trifecta
name = "Trifecta"
config_tag = "trifecta"
- protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Trans-Solar Federation General")
+ protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Career Trainer", "Nanotrasen Navy Officer", "Special Operations Officer", "Trans-Solar Federation General", "Nanotrasen Career Trainer")
restricted_jobs = list("Cyborg")
secondary_restricted_jobs = list("AI")
required_players = 25
diff --git a/code/game/gamemodes/vampire/traitor_vamp.dm b/code/game/gamemodes/vampire/traitor_vamp.dm
index 0e6576d4d603..68224edcc120 100644
--- a/code/game/gamemodes/vampire/traitor_vamp.dm
+++ b/code/game/gamemodes/vampire/traitor_vamp.dm
@@ -2,7 +2,7 @@
name = "traitor_vampire"
config_tag = "traitorvamp"
traitors_possible = 3 //hard limit on traitors if scaling is turned off
- protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Trans-Solar Federation General")
+ protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Career Trainer", "Nanotrasen Navy Officer", "Special Operations Officer", "Trans-Solar Federation General")
restricted_jobs = list("Cyborg")
secondary_restricted_jobs = list("AI", "Chaplain")
required_players = 10
diff --git a/code/game/gamemodes/vampire/vampire_chan.dm b/code/game/gamemodes/vampire/vampire_chan.dm
index 29ef10b5c104..f0cd8300ccd6 100644
--- a/code/game/gamemodes/vampire/vampire_chan.dm
+++ b/code/game/gamemodes/vampire/vampire_chan.dm
@@ -2,7 +2,7 @@
name = "vampire_changeling"
config_tag = "vampchan"
restricted_jobs = list("AI", "Cyborg")
- protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Chaplain", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Solar Federation General")
+ protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Chaplain", "Internal Affairs Agent", "Nanotrasen Career Trainer", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Solar Federation General")
species_to_mindflayer = list("Machine")
required_players = 15
required_enemies = 1
diff --git a/code/game/gamemodes/vampire/vampire_gamemode.dm b/code/game/gamemodes/vampire/vampire_gamemode.dm
index 837577382339..05b15dae3a0c 100644
--- a/code/game/gamemodes/vampire/vampire_gamemode.dm
+++ b/code/game/gamemodes/vampire/vampire_gamemode.dm
@@ -2,7 +2,7 @@
name = "vampire"
config_tag = "vampire"
restricted_jobs = list("AI", "Cyborg")
- protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Chaplain", "Internal Affairs Agent", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General")
+ protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Magistrate", "Chaplain", "Internal Affairs Agent", "Nanotrasen Career Trainer", "Nanotrasen Navy Officer", "Special Operations Officer", "Syndicate Officer", "Trans-Solar Federation General", "Nanotrasen Career Trainer")
species_to_mindflayer = list("Machine")
required_players = 15
required_enemies = 1
diff --git a/code/game/gamemodes/wizard/godhand.dm b/code/game/gamemodes/wizard/godhand.dm
index 9c5246972a9a..f75c5a692b83 100644
--- a/code/game/gamemodes/wizard/godhand.dm
+++ b/code/game/gamemodes/wizard/godhand.dm
@@ -16,6 +16,8 @@
throw_range = 0
throw_speed = 0
new_attack_chain = TRUE
+ /// Has it been blocked by antimagic? If so, abort.
+ var/blocked_by_antimagic = FALSE
/obj/item/melee/touch_attack/New(spell)
attached_spell = spell
@@ -39,6 +41,16 @@
/obj/item/melee/touch_attack/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
+ var/mob/mob_victim = target
+ if(istype(mob_victim) && mob_victim.can_block_magic(attached_spell.antimagic_flags))
+ to_chat(user, "[mob_victim] absorbs your spell! ")
+ blocked_by_antimagic = TRUE
+ if(attached_spell && attached_spell.cooldown_handler)
+ attached_spell.cooldown_handler.start_recharge(attached_spell.cooldown_handler.recharge_duration * 0.5)
+ qdel(src)
+ return
+
+/obj/item/melee/touch_attack/proc/handle_delete(mob/user)
if(catchphrase)
user.say(catchphrase)
playsound(get_turf(user), on_use_sound, 50, 1)
@@ -54,13 +66,15 @@
icon_state = "disintegrate"
item_state = "disintegrate"
+
/obj/item/melee/touch_attack/disintegrate/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
- if(!proximity_flag || target == user || !ismob(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) //exploding after touching yourself would be bad
+ if(!proximity_flag || target == user || blocked_by_antimagic || !ismob(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) //exploding after touching yourself would be bad
return
var/mob/M = target
do_sparks(4, 0, M.loc) //no idea what the 0 is
M.gib()
+ handle_delete(user)
/obj/item/melee/touch_attack/fleshtostone
name = "petrifying touch"
@@ -72,11 +86,13 @@
/obj/item/melee/touch_attack/fleshtostone/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
- if(!proximity_flag || target == user || !isliving(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) //getting hard after touching yourself would also be bad
+
+ if(!proximity_flag || target == user || blocked_by_antimagic || !isliving(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) //getting hard after touching yourself would also be bad
return
var/mob/living/L = target
L.Stun(4 SECONDS)
new /obj/structure/closet/statue(L.loc, L)
+ handle_delete(user)
/obj/item/melee/touch_attack/plushify
name = "fabric touch"
@@ -89,10 +105,13 @@
/obj/item/melee/touch_attack/plushify/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
- if(!proximity_flag || target == user || !isliving(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) //There are better ways to get a good nights sleep in a bed.
+
+ if(!proximity_flag || target == user || blocked_by_antimagic || !isliving(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) //There are better ways to get a good nights sleep in a bed.
return
var/mob/living/L = target
L.plushify()
+ handle_delete(user)
+
/obj/item/melee/touch_attack/fake_disintegrate
name = "toy plastic hand"
@@ -105,10 +124,12 @@
/obj/item/melee/touch_attack/fake_disintegrate/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
- if(!proximity_flag || target == user || !ismob(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) //not exploding after touching yourself would be bad
+
+ if(!proximity_flag || target == user || blocked_by_antimagic || !ismob(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) //not exploding after touching yourself would be bad
return
do_sparks(4, 0, target.loc)
playsound(target.loc, 'sound/goonstation/effects/gib.ogg', 50, 1)
+ handle_delete(user)
/obj/item/melee/touch_attack/cluwne
name = "cluwne touch"
@@ -120,7 +141,8 @@
/obj/item/melee/touch_attack/cluwne/after_attack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
- if(!proximity_flag || target == user || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) //clowning around after touching yourself would unsurprisingly, be bad
+
+ if(!proximity_flag || target == user || blocked_by_antimagic || !ishuman(target) || !iscarbon(user) || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) //clowning around after touching yourself would unsurprisingly, be bad
return
if(iswizard(target))
@@ -137,3 +159,4 @@
H.makeCluwne()
else
H.makeAntiCluwne()
+ handle_delete(user)
diff --git a/code/game/gamemodes/wizard/magic_tarot.dm b/code/game/gamemodes/wizard/magic_tarot.dm
index 5f7eed073e96..b6d2cbc6140d 100644
--- a/code/game/gamemodes/wizard/magic_tarot.dm
+++ b/code/game/gamemodes/wizard/magic_tarot.dm
@@ -232,6 +232,11 @@
qdel(src)
/obj/item/magic_tarot_card/proc/pre_activate(mob/user, atom/movable/thrower)
+ if(user != thrower) //Ignore antimagic stuff if the user is the thrower (aka self activation)
+ if(user.can_block_magic(our_tarot.antimagic_flags, 1))
+ visible_message("[src] burns up in a flash on contact with [user]! ")
+ qdel(src)
+ return
has_been_activated = TRUE
forceMove(user)
var/obj/effect/temp_visual/card_preview/tarot/draft = new(user, "tarot_[our_tarot.card_icon]")
@@ -288,6 +293,8 @@
var/card_icon = "the_unknown"
/// Are we reversed? Used for the card back.
var/reversed = FALSE
+ /// What antimagic flags do we have?
+ var/antimagic_flags = MAGIC_RESISTANCE
/datum/tarot/proc/activate(mob/living/target)
stack_trace("A bugged tarot card was spawned and used. Please make an issue report! Type was [src.type]")
@@ -688,8 +695,11 @@
var/sparkle_path = /obj/effect/temp_visual/gravpush
for(var/turf/T in range(5, target)) //Done this way so things don't get thrown all around hilariously.
for(var/atom/movable/AM in T)
+ if(ismob(AM))
+ var/mob/victim_mob = AM
+ if(victim_mob.can_block_magic(antimagic_flags))
+ continue
thrown_atoms += AM
-
for(var/atom/movable/AM as anything in thrown_atoms)
if(AM == target || AM.anchored || (ismob(AM) && !isliving(AM)))
continue
@@ -729,6 +739,9 @@
/datum/tarot/reversed/the_empress/activate(mob/living/target)
for(var/mob/living/L in oview(9, target))
+ if(L.can_block_magic(antimagic_flags))
+ to_chat(L, "You feel calm for a second, but it quickly passes. ")
+ continue
L.apply_status_effect(STATUS_EFFECT_PACIFIED)
/datum/tarot/reversed/the_emperor
@@ -763,6 +776,8 @@
for(var/mob/living/M in shuffle(orange(7, target)))
if(M.stat == DEAD) //Let us not have dead mobs be used to make a disco inferno.
continue
+ if(M.can_block_magic(antimagic_flags)) //Be spared!
+ continue
if(active_chasers >= 2)
return
var/obj/effect/temp_visual/hierophant/chaser/C = new(get_turf(target), target, M, 1, FALSE)
@@ -959,6 +974,7 @@
desc = "May you remember lost memories."
extended_desc = "will reveal the memories of everyone in range to the user."
card_icon = "the_moon?"
+ antimagic_flags = MAGIC_RESISTANCE|MAGIC_RESISTANCE_MIND
/datum/tarot/reversed/the_moon/activate(mob/living/target)
for(var/mob/living/L in view(5, target)) //Shorter range as this kinda can give away antagonists, though that is also funny.
diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index ab14142c562f..22e844b19173 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -499,7 +499,9 @@
//Weapons and Armors
/datum/spellbook_entry/item/battlemage
name = "Battlemage Armor"
- desc = "An ensorceled spaceproof suit of protective yet light armor, protected by a powerful shield. The shield can completely negate 15 attacks before permanently failing."
+ desc = "An ensorceled spaceproof suit of protective yet light armor, protected by a powerful shield. The shield can completely negate 15 attacks before permanently failing. \
+ This armor grants you full protection from magical attacks, and allows you to cast magic despite that. However, this means it will also block wands or staffs of \
+ healing from working on you, and should be removed before application."
item_path = /obj/item/storage/box/wizard/hardsuit
limit = 1
category = "Weapons and Armors"
diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm
index fdf42c755982..cb69a0734013 100644
--- a/code/game/jobs/access.dm
+++ b/code/game/jobs/access.dm
@@ -107,7 +107,7 @@
ACCESS_INTERNAL_AFFAIRS, ACCESS_LIBRARY, ACCESS_MAGISTRATE, ACCESS_MAINT_TUNNELS, ACCESS_HEADS_VAULT, ACCESS_MEDICAL, ACCESS_MIME,
ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_MORGUE, ACCESS_NTREP, ACCESS_PARAMEDIC, ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_ENGINE_EQUIP, ACCESS_PSYCHIATRIST, ACCESS_QM, ACCESS_RD, ACCESS_RC_ANNOUNCE, ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_RESEARCH, ACCESS_SECURITY,
- ACCESS_SURGERY, ACCESS_TECH_STORAGE, ACCESS_TELEPORTER, ACCESS_THEATRE, ACCESS_TCOMSAT, ACCESS_TOX_STORAGE, ACCESS_VIROLOGY, ACCESS_WEAPONS, ACCESS_XENOBIOLOGY)
+ ACCESS_SURGERY, ACCESS_TECH_STORAGE, ACCESS_TELEPORTER, ACCESS_THEATRE, ACCESS_TCOMSAT, ACCESS_TOX_STORAGE, ACCESS_VIROLOGY, ACCESS_WEAPONS, ACCESS_XENOBIOLOGY, ACCESS_TRAINER)
/proc/get_all_centcom_access()
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_SECURITY, ACCESS_CENT_SHUTTLES, ACCESS_CENT_SPECOPS, ACCESS_CENT_SPECOPS_COMMANDER, ACCESS_CENT_COMMANDER)
@@ -126,7 +126,7 @@
if(REGION_ALL)
return get_all_accesses()
if(REGION_GENERAL) //station general
- return list(ACCESS_KITCHEN, ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_INTERNAL_AFFAIRS, ACCESS_MAGISTRATE, ACCESS_CLOWN, ACCESS_MIME)
+ return list(ACCESS_KITCHEN, ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_INTERNAL_AFFAIRS, ACCESS_MAGISTRATE, ACCESS_CLOWN, ACCESS_MIME, ACCESS_TRAINER)
if(REGION_SECURITY) //security
return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_HOS)
if(REGION_MEDBAY) //medbay
@@ -302,6 +302,8 @@
return "AI Satellite"
if(ACCESS_WEAPONS)
return "Weapon Permit"
+ if(ACCESS_TRAINER)
+ return "Nanotrasen Career Trainer"
/proc/get_centcom_access_desc(A)
switch(A)
diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm
index ec1744470965..0d61c9c577b7 100644
--- a/code/game/jobs/job/job.dm
+++ b/code/game/jobs/job/job.dm
@@ -60,6 +60,7 @@
var/hidden_from_job_prefs = FALSE // if true, job preferences screen never shows this job.
var/admin_only = 0
+ var/mentor_only = 0
var/spawn_ert = 0
var/syndicate_command = 0
diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm
index 723ce4f0f603..2b41c27a9e18 100644
--- a/code/game/jobs/job/supervisor.dm
+++ b/code/game/jobs/job/supervisor.dm
@@ -175,7 +175,8 @@
ACCESS_SECURITY,
ACCESS_SUPPLY_SHUTTLE,
ACCESS_THEATRE,
- ACCESS_WEAPONS
+ ACCESS_WEAPONS,
+ ACCESS_TRAINER
)
blacklisted_disabilities = list(DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/nanotrasenrep
@@ -276,7 +277,8 @@
ACCESS_RC_ANNOUNCE,
ACCESS_SEC_DOORS,
ACCESS_SECURITY,
- ACCESS_WEAPONS
+ ACCESS_WEAPONS,
+ ACCESS_TRAINER
)
blacklisted_disabilities = list(DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
outfit = /datum/outfit/job/judge
@@ -349,3 +351,74 @@
bio_chips = list(/obj/item/bio_chip/mindshield)
satchel = /obj/item/storage/backpack/satchel_sec
dufflebag = /obj/item/storage/backpack/duffel/security
+
+/datum/job/nanotrasentrainer
+ title = "Nanotrasen Career Trainer"
+ flag = JOB_INSTRUCTOR
+ department_flag = JOBCAT_ENGSEC
+ total_positions = 2
+ spawn_positions = 2
+ supervisors = "the Nanotrasen Representative"
+ department_head = list("Captain")
+ selection_color = "#ddddff"
+ mentor_only = TRUE
+ job_department_flags = DEP_FLAG_COMMAND
+ transfer_allowed = FALSE
+ access = list(
+ ACCESS_ALL_PERSONAL_LOCKERS,
+ ACCESS_CARGO,
+ ACCESS_MAILSORTING,
+ ACCESS_CONSTRUCTION,
+ ACCESS_COURT,
+ ACCESS_EVA,
+ ACCESS_MAINT_TUNNELS,
+ ACCESS_MEDICAL,
+ ACCESS_RESEARCH,
+ ACCESS_SEC_DOORS,
+ ACCESS_THEATRE,
+ ACCESS_INTERNAL_AFFAIRS,
+ ACCESS_TRAINER
+ )
+ blacklisted_disabilities = list(DISABILITY_FLAG_DEAF, DISABILITY_FLAG_MUTE, DISABILITY_FLAG_NERVOUS, DISABILITY_FLAG_LISP)
+ outfit = /datum/outfit/job/nct
+ important_information = "Your job is to try to assist as many crew members as possible regardless of department. You are NOT permitted to give command staff advice on any command SOP questions or aid in legal advice."
+
+/datum/outfit/job/nct
+ name = "Nanotrasen Career Trainer"
+ jobtype = /datum/job/nanotrasentrainer
+ uniform = /obj/item/clothing/under/rank/procedure/nct
+ suit = /obj/item/clothing/suit/storage/nct
+ gloves = /obj/item/clothing/gloves/color/white
+ shoes = /obj/item/clothing/shoes/centcom
+ head = /obj/item/clothing/head/beret/nct/green
+ glasses = /obj/item/clothing/glasses/hud/skills/sunglasses
+ l_ear = /obj/item/radio/headset/headset_nct
+ id = /obj/item/card/id/nct
+ l_pocket = /obj/item/card/id/nct_data_chip
+ r_pocket = /obj/item/flash
+ pda = /obj/item/pda/heads/ntrep
+ backpack = /obj/item/storage/backpack/satchel
+
+ backpack_contents = list(
+ /obj/item/pinpointer/crew = 1,
+ /obj/item/healthanalyzer/advanced = 1,
+ /obj/item/book/manual/sop_ntinstructor,
+ /obj/item/laser_pointer/blue = 1
+ )
+
+ bio_chips = list(/obj/item/bio_chip/mindshield)
+
+/datum/outfit/job/nct/post_equip(mob/living/carbon/human/H, visualsOnly)
+ . = ..()
+ if(visualsOnly)
+ return
+
+ var/obj/item/card/id/nct_data_chip/I = H.l_store
+ I.registered_user = H.mind.current
+ I.registered_name = H.real_name
+ var/icon/newphoto = get_id_photo(H, "Nanotrasen Career Trainer")
+ I.photo = newphoto
+
+/datum/outfit/job/nct/on_mind_initialize(mob/living/carbon/human/H)
+ . = ..()
+ H.mind.offstation_role = TRUE
diff --git a/code/game/jobs/job_globals.dm b/code/game/jobs/job_globals.dm
index eafaadcfaa14..b81f5e410929 100644
--- a/code/game/jobs/job_globals.dm
+++ b/code/game/jobs/job_globals.dm
@@ -14,7 +14,8 @@ GLOBAL_LIST_INIT(command_positions, list(
"Quartermaster",
"Nanotrasen Representative",
"Magistrate",
- "Blueshield"
+ "Blueshield",
+ "Nanotrasen Career Trainer"
))
/// Only roles that are command of departments, for revolution and similar stuff
diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm
index 42175880711c..6e037b9db450 100644
--- a/code/game/machinery/computer/HolodeckControl.dm
+++ b/code/game/machinery/computer/HolodeckControl.dm
@@ -76,7 +76,7 @@
if(prob(30))
do_sparks(2, 1, T)
T.ex_act(EXPLODE_LIGHT)
- T.hotspot_expose(1000,500,1)
+ T.hotspot_expose(1000,500)
/obj/machinery/computer/holodeck_control/proc/loadProgram(area/A)
diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm
index ae795b6b92e8..9b3fee6c25ca 100644
--- a/code/game/machinery/computer/atmos_alert.dm
+++ b/code/game/machinery/computer/atmos_alert.dm
@@ -12,8 +12,9 @@
/obj/machinery/computer/atmos_alert/Initialize(mapload)
. = ..()
alarm_cache = list()
- alarm_cache["minor"] = list()
alarm_cache["priority"] = list()
+ alarm_cache["minor"] = list()
+ alarm_cache["mode"] = list()
var/area/machine_area = get_area(src)
parent_area_type = machine_area.get_top_parent_type()
@@ -34,6 +35,10 @@
else
alarm_cache["priority"] -= air_alarm.alarm_area.name
alarm_cache["minor"] -= air_alarm.alarm_area.name
+ if(air_alarm.mode == AALARM_MODE_FILTERING)
+ alarm_cache["mode"] -= air_alarm.alarm_area.name
+ else
+ alarm_cache["mode"][air_alarm.alarm_area.name] = GLOB.aalarm_modes["[air_alarm.mode]"]
update_icon()
diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm
index 67247f5aa475..dd3c3014f01e 100644
--- a/code/game/machinery/computer/card.dm
+++ b/code/game/machinery/computer/card.dm
@@ -50,7 +50,8 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
/datum/job/nanotrasenrep,
/datum/job/chaplain,
/datum/job/officer,
- /datum/job/qm
+ /datum/job/qm,
+ /datum/job/nanotrasentrainer
)
//The scaling factor of max total positions in relation to the total amount of people on board the station in %
@@ -154,17 +155,19 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
/obj/machinery/computer/card/attackby__legacy__attackchain(obj/item/card/id/id_card, mob/user, params)
if(!istype(id_card))
return ..()
+ if(istype(id_card, /obj/item/card/id/nct_data_chip))
+ return ..()
if(!scan && check_access(id_card))
user.drop_item()
id_card.forceMove(src)
scan = id_card
- playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
+ playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
else if(!modify)
user.drop_item()
id_card.forceMove(src)
modify = id_card
- playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
+ playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
SStgui.update_uis(src)
attack_hand(user)
@@ -425,14 +428,18 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
else if(Adjacent(usr))
var/obj/item/I = usr.get_active_hand()
if(istype(I, /obj/item/card/id))
+ if(istype(I, /obj/item/card/id/nct_data_chip))
+ playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, FALSE)
+ to_chat(usr, "The data chip doesn't fit! ")
+ return FALSE
if(!check_access(I))
- playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, 0)
+ playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, FALSE)
to_chat(usr, "This card does not have access. ")
return FALSE
usr.drop_item()
I.forceMove(src)
scan = I
- playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
+ playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
return
if("modify") // inserting or removing the ID you plan to modify
if(modify)
@@ -451,6 +458,10 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
else if(Adjacent(usr))
var/obj/item/I = usr.get_active_hand()
if(istype(I, /obj/item/card/id))
+ if(istype(I, /obj/item/card/id/nct_data_chip))
+ playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 50, FALSE)
+ to_chat(usr, "The data chip doesn't fit! ")
+ return FALSE
usr.drop_item()
I.forceMove(src)
modify = I
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 63907c3abe3e..bef6a5ba1474 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1294,6 +1294,7 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays)
return TRUE
SEND_SIGNAL(src, COMSIG_AIRLOCK_OPEN)
operating = DOOR_OPENING
+ recalculate_atmos_connectivity()
update_icon(AIRLOCK_OPENING, 1)
sleep(1)
set_opacity(0)
@@ -1304,7 +1305,6 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays)
density = FALSE
if(width > 1)
set_fillers_density(FALSE)
- recalculate_atmos_connectivity()
sleep(1)
layer = OPEN_DOOR_LAYER
update_icon(AIRLOCK_OPEN, 1)
@@ -1346,7 +1346,6 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays)
density = TRUE
if(width > 1)
set_fillers_density(TRUE)
- recalculate_atmos_connectivity()
if(!override)
sleep(4)
if(!safe)
@@ -1359,6 +1358,7 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays)
sleep(1)
update_icon(AIRLOCK_CLOSED, 1)
operating = NONE
+ recalculate_atmos_connectivity()
if(safe)
CheckForMobs()
return TRUE
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 6b90f4650b56..fd9fd32a64cc 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -142,7 +142,7 @@
return !density
/obj/machinery/door/CanAtmosPass(direction)
- return !density
+ return operating || !density
/obj/machinery/door/get_superconductivity(direction)
if(!density)
@@ -373,6 +373,7 @@
return
SEND_SIGNAL(src, COMSIG_DOOR_OPEN)
operating = DOOR_OPENING
+ recalculate_atmos_connectivity()
do_animate("opening")
set_opacity(0)
if(width > 1)
@@ -388,7 +389,6 @@
if(width > 1)
set_fillers_opacity(0)
operating = NONE
- recalculate_atmos_connectivity()
update_freelook_sight()
if(autoclose)
autoclose_in(normalspeed ? auto_close_time : auto_close_time_dangerous)
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index a3f244b92a8b..2dc5de2e0d25 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -204,6 +204,7 @@
return 0
if(!operating) //in case of emag
operating = DOOR_OPENING
+ recalculate_atmos_connectivity()
do_animate("opening")
set_opacity(FALSE)
playsound(loc, 'sound/machines/windowdoor.ogg', 100, 1)
@@ -235,11 +236,11 @@
density = TRUE
if(polarized_on)
set_opacity(TRUE)
- recalculate_atmos_connectivity()
update_freelook_sight()
sleep(10)
operating = NONE
+ recalculate_atmos_connectivity()
return 1
/obj/machinery/door/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
diff --git a/code/game/machinery/floor_igniter.dm b/code/game/machinery/floor_igniter.dm
index cc1e4c220d9e..7659327ca140 100644
--- a/code/game/machinery/floor_igniter.dm
+++ b/code/game/machinery/floor_igniter.dm
@@ -57,7 +57,7 @@
if(on && !(stat & NOPOWER))
var/turf/location = get_turf(src)
if(isturf(location))
- location.hotspot_expose(1000, 500, 1)
+ location.hotspot_expose(1000, 1)
return TRUE
/obj/machinery/igniter/Initialize(mapload)
@@ -132,7 +132,7 @@
var/turf/location = get_turf(src)
if(isturf(location))
- location.hotspot_expose(1000, 500, 1)
+ location.hotspot_expose(1000, 500)
return TRUE
diff --git a/code/game/machinery/guestpass.dm b/code/game/machinery/guestpass.dm
index 52f90c600d64..3fe784f09c6b 100644
--- a/code/game/machinery/guestpass.dm
+++ b/code/game/machinery/guestpass.dm
@@ -61,6 +61,9 @@
my_terminal_id = ++global_terminal_id
/obj/machinery/computer/guestpass/attackby__legacy__attackchain(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/card/id/nct_data_chip))
+ to_chat(user, "[I] does not seem compatible with this terminal! ")
+ return
if(istype(I, /obj/item/card/id))
if(!scan)
if(user.drop_item())
diff --git a/code/game/machinery/machine_frame.dm b/code/game/machinery/machine_frame.dm
index fb6dbae4e02f..a0f34506ee2a 100644
--- a/code/game/machinery/machine_frame.dm
+++ b/code/game/machinery/machine_frame.dm
@@ -317,7 +317,8 @@ to destroy them and players will be able to make replacements.
"BarDrobe" = /obj/machinery/economy/vending/bardrobe,
"HydroDrobe" = /obj/machinery/economy/vending/hydrodrobe,
"JaniDrobe" = /obj/machinery/economy/vending/janidrobe,
- "LawDrobe" = /obj/machinery/economy/vending/lawdrobe)
+ "LawDrobe" = /obj/machinery/economy/vending/lawdrobe,
+ "TrainDrobe" = /obj/machinery/economy/vending/traindrobe)
var/static/list/unique_vendors = list(
"ShadyCigs Ultra" = /obj/machinery/economy/vending/cigarette/beach,
"SyndiMed Plus" = /obj/machinery/economy/vending/wallmed/syndicate)
diff --git a/code/game/machinery/tcomms/nttc.dm b/code/game/machinery/tcomms/nttc.dm
index d2182137d897..993187499f13 100644
--- a/code/game/machinery/tcomms/nttc.dm
+++ b/code/game/machinery/tcomms/nttc.dm
@@ -132,6 +132,8 @@
"Journalist" = "srvradio",
"Librarian" = "srvradio",
"Mime" = "srvradio",
+ // Procedure
+ "Nanotrasen Career Trainer" = "proradio",
)
/// List of Command jobs
var/list/heads = list("Captain", "Head of Personnel", "Nanotrasen Representative", "Blueshield", "Chief Engineer", "Chief Medical Officer", "Research Director", "Head of Security", "Magistrate", "Quartermaster", "AI")
diff --git a/code/game/machinery/vendors/departmental_vendors.dm b/code/game/machinery/vendors/departmental_vendors.dm
index 63d9b65e5d1f..039d460e9287 100644
--- a/code/game/machinery/vendors/departmental_vendors.dm
+++ b/code/game/machinery/vendors/departmental_vendors.dm
@@ -7,7 +7,7 @@
category = VENDOR_TYPE_DEPARTMENTAL
req_one_access = list(ACCESS_ENGINE_EQUIP, ACCESS_ATMOSPHERICS)
products = list(/obj/item/clothing/glasses/meson/engine = 2,
- /obj/item/clothing/glasses/meson/engine/tray = 4,
+ /obj/item/clothing/glasses/meson/engine/atmos = 4,
/obj/item/multitool = 4,
/obj/item/geiger_counter = 5,
/obj/item/airlock_electronics = 10,
diff --git a/code/game/machinery/vendors/generic_vendors.dm b/code/game/machinery/vendors/generic_vendors.dm
index 33912e12fd4b..e78dba978730 100644
--- a/code/game/machinery/vendors/generic_vendors.dm
+++ b/code/game/machinery/vendors/generic_vendors.dm
@@ -456,23 +456,23 @@
/obj/item/clothing/head/beanie/stripedblue = 3,
/obj/item/clothing/head/beanie/stripedgreen = 3,
/obj/item/clothing/head/beanie/rasta = 3,
- /obj/item/clothing/accessory/scarf/red = 3,
- /obj/item/clothing/accessory/scarf/green = 3,
- /obj/item/clothing/accessory/scarf/darkblue = 3,
- /obj/item/clothing/accessory/scarf/purple = 3,
- /obj/item/clothing/accessory/scarf/yellow = 3,
- /obj/item/clothing/accessory/scarf/orange = 3,
- /obj/item/clothing/accessory/scarf/lightblue = 3,
- /obj/item/clothing/accessory/scarf/white = 3,
- /obj/item/clothing/accessory/scarf/black = 3,
- /obj/item/clothing/accessory/scarf/zebra = 3,
- /obj/item/clothing/accessory/scarf/christmas = 3,
- /obj/item/clothing/accessory/stripedredscarf = 3,
- /obj/item/clothing/accessory/stripedbluescarf = 3,
- /obj/item/clothing/accessory/stripedgreenscarf = 3,
- /obj/item/clothing/accessory/blue = 3,
- /obj/item/clothing/accessory/red = 3,
- /obj/item/clothing/accessory/black = 3,
+ /obj/item/clothing/neck/scarf/red = 3,
+ /obj/item/clothing/neck/scarf/green = 3,
+ /obj/item/clothing/neck/scarf/darkblue = 3,
+ /obj/item/clothing/neck/scarf/purple = 3,
+ /obj/item/clothing/neck/scarf/yellow = 3,
+ /obj/item/clothing/neck/scarf/orange = 3,
+ /obj/item/clothing/neck/scarf/lightblue = 3,
+ /obj/item/clothing/neck/scarf/white = 3,
+ /obj/item/clothing/neck/scarf/black = 3,
+ /obj/item/clothing/neck/scarf/zebra = 3,
+ /obj/item/clothing/neck/scarf/christmas = 3,
+ /obj/item/clothing/neck/scarf/stripedred = 3,
+ /obj/item/clothing/neck/scarf/stripedblue = 3,
+ /obj/item/clothing/neck/scarf/stripedgreen = 3,
+ /obj/item/clothing/neck/tie/blue = 3,
+ /obj/item/clothing/neck/tie/red = 3,
+ /obj/item/clothing/neck/tie/black = 3,
/obj/item/clothing/accessory/waistcoat = 2,
/obj/item/clothing/under/dress/sundress = 2,
/obj/item/clothing/under/dress/stripeddress = 2,
@@ -496,9 +496,9 @@
/obj/item/storage/belt/fannypack = 1,
/obj/item/storage/belt/fannypack/blue = 1,
/obj/item/storage/belt/fannypack/red = 1,
- /obj/item/clothing/suit/mantle = 2,
- /obj/item/clothing/suit/mantle/old = 1,
- /obj/item/clothing/suit/mantle/regal = 2)
+ /obj/item/clothing/neck/cloak/mantle = 2,
+ /obj/item/clothing/neck/cloak/old = 1,
+ /obj/item/clothing/neck/cloak/regal = 2)
contraband = list(/obj/item/clothing/under/syndicate/tacticool = 1,
/obj/item/clothing/mask/balaclava = 1,
@@ -543,23 +543,23 @@
/obj/item/clothing/head/beanie/stripedblue = 40,
/obj/item/clothing/head/beanie/stripedgreen = 40,
/obj/item/clothing/head/beanie/rasta = 40,
- /obj/item/clothing/accessory/scarf/red = 20,
- /obj/item/clothing/accessory/scarf/green = 20,
- /obj/item/clothing/accessory/scarf/darkblue = 20,
- /obj/item/clothing/accessory/scarf/purple = 20,
- /obj/item/clothing/accessory/scarf/yellow = 20,
- /obj/item/clothing/accessory/scarf/orange = 20,
- /obj/item/clothing/accessory/scarf/lightblue = 20,
- /obj/item/clothing/accessory/scarf/white = 20,
- /obj/item/clothing/accessory/scarf/black = 20,
- /obj/item/clothing/accessory/scarf/zebra = 20,
- /obj/item/clothing/accessory/scarf/christmas = 20,
- /obj/item/clothing/accessory/stripedredscarf = 20,
- /obj/item/clothing/accessory/stripedbluescarf = 20,
- /obj/item/clothing/accessory/stripedgreenscarf = 20,
- /obj/item/clothing/accessory/blue = 20,
- /obj/item/clothing/accessory/red = 20,
- /obj/item/clothing/accessory/black = 20,
+ /obj/item/clothing/neck/scarf/red = 20,
+ /obj/item/clothing/neck/scarf/green = 20,
+ /obj/item/clothing/neck/scarf/darkblue = 20,
+ /obj/item/clothing/neck/scarf/purple = 20,
+ /obj/item/clothing/neck/scarf/yellow = 20,
+ /obj/item/clothing/neck/scarf/orange = 20,
+ /obj/item/clothing/neck/scarf/lightblue = 20,
+ /obj/item/clothing/neck/scarf/white = 20,
+ /obj/item/clothing/neck/scarf/black = 20,
+ /obj/item/clothing/neck/scarf/zebra = 20,
+ /obj/item/clothing/neck/scarf/christmas = 20,
+ /obj/item/clothing/neck/scarf/stripedred = 20,
+ /obj/item/clothing/neck/scarf/stripedblue = 20,
+ /obj/item/clothing/neck/scarf/stripedgreen = 20,
+ /obj/item/clothing/neck/tie/blue = 20,
+ /obj/item/clothing/neck/tie/red = 20,
+ /obj/item/clothing/neck/tie/black = 20,
/obj/item/clothing/accessory/waistcoat = 20,
/obj/item/clothing/under/dress/sundress = 75,
/obj/item/clothing/under/dress/stripeddress = 75,
@@ -584,9 +584,9 @@
/obj/item/storage/belt/fannypack = 50,
/obj/item/storage/belt/fannypack/blue = 50,
/obj/item/storage/belt/fannypack/red = 50,
- /obj/item/clothing/suit/mantle = 20,
- /obj/item/clothing/suit/mantle/old = 20,
- /obj/item/clothing/suit/mantle/regal = 30,
+ /obj/item/clothing/neck/cloak/mantle = 20,
+ /obj/item/clothing/neck/cloak/old = 20,
+ /obj/item/clothing/neck/cloak/regal = 30,
/obj/item/clothing/suit/pimpcoat/white = 500,
/obj/item/clothing/under/misc/mailman = 100)
@@ -717,7 +717,7 @@
/obj/item/clothing/suit/poncho = 1,
/obj/item/clothing/suit/poncho/green = 1,
/obj/item/clothing/suit/poncho/red = 1,
- /obj/item/clothing/accessory/horrible = 1,
+ /obj/item/clothing/neck/tie/horrible = 1,
/obj/item/clothing/under/costume/maid = 1,
/obj/item/clothing/under/costume/janimaid = 1,
/obj/item/clothing/under/costume/jester = 1,
@@ -835,7 +835,7 @@
/obj/item/clothing/suit/poncho = 75,
/obj/item/clothing/suit/poncho/green = 75,
/obj/item/clothing/suit/poncho/red = 75,
- /obj/item/clothing/accessory/horrible = 30,
+ /obj/item/clothing/neck/tie/horrible = 30,
/obj/item/clothing/under/costume/maid = 75,
/obj/item/clothing/under/costume/janimaid = 75,
/obj/item/clothing/under/costume/jester = 100,
diff --git a/code/game/machinery/vendors/wardrobe_vendors.dm b/code/game/machinery/vendors/wardrobe_vendors.dm
index a149a1b0d63c..9ef0c7459b3c 100644
--- a/code/game/machinery/vendors/wardrobe_vendors.dm
+++ b/code/game/machinery/vendors/wardrobe_vendors.dm
@@ -922,3 +922,41 @@
/obj/item/clothing/under/plasmaman/enviroslacks = 60)
refill_canister = /obj/item/vending_refill/lawdrobe
+
+/obj/machinery/economy/vending/traindrobe
+ name = "\improper TrainDrobe"
+ desc = "This wardrobe dispenses the attire of Nanotrasen's finest teaching force."
+ icon_state = "traindrobe"
+ icon_lightmask = "base_drobe"
+ icon_panel = "drobe"
+ icon_broken = "base_drobe"
+ icon_off = "base_drobe"
+ category = VENDOR_TYPE_CLOTHING
+ ads_list = list("You're gonna LEARN today!", "What am I supposed to do?")
+ vend_reply = "Thank you for using the TrainDrobe!"
+ products = list(
+ /obj/item/clothing/gloves/color/white = 2,
+ /obj/item/clothing/gloves/color/black = 2,
+ /obj/item/clothing/shoes/laceup = 2,
+ /obj/item/clothing/shoes/black = 2,
+ /obj/item/clothing/shoes/brown = 2,
+ /obj/item/clothing/head/drilltrainer = 2,
+ /obj/item/clothing/under/rank/procedure/nct = 2,
+ /obj/item/clothing/under/rank/procedure/nct/skirt = 2,
+ /obj/item/clothing/suit/storage/nct = 2,
+ /obj/item/clothing/head/helmet/space/plasmaman/trainer = 2,
+ /obj/item/clothing/under/plasmaman/trainer = 2,
+ /obj/item/clothing/accessory/armband/procedure = 2,
+ /obj/item/clothing/head/beret/nct/green = 2,
+ /obj/item/clothing/head/beret/nct/black = 2,
+ /obj/item/clothing/head/beret/sec = 2,
+ /obj/item/clothing/head/beret/med = 2,
+ /obj/item/clothing/head/beret/sci = 2,
+ /obj/item/clothing/head/beret/eng = 2,
+ /obj/item/clothing/head/beret/atmos = 2,
+ /obj/item/clothing/head/beret/cargo = 2,
+ /obj/item/clothing/head/beret/black = 2)
+
+ prices = list()
+
+ refill_canister = /obj/item/vending_refill/traindrobe
diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm
index 9f212e3400a8..4475574cab65 100644
--- a/code/game/mecha/mecha_construction_paths.dm
+++ b/code/game/mecha/mecha_construction_paths.dm
@@ -1529,7 +1529,7 @@
holder.icon_state = "phazon16"
else
user.visible_message("[user] removes the bluespace crystal from the [holder].", "You remove the bluespace crystal from the [holder].")
- new /obj/item/stack/ore/bluespace_crystal(get_turf(holder), new_amount = 5)
+ new /obj/item/stack/ore/bluespace_crystal(get_turf(holder), 5)
holder.icon_state = "phazon14"
if(8)
if(diff==CONSTRUCTION_PATH_FORWARDS)
diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm
index 89aa71313140..1d213eb825e2 100644
--- a/code/game/objects/effects/anomalies.dm
+++ b/code/game/objects/effects/anomalies.dm
@@ -341,7 +341,6 @@
/obj/effect/anomaly/pyro
name = "pyroclastic anomaly"
icon_state = "mustard"
- var/ticks = 0
var/produces_slime = TRUE
aSignal = /obj/item/assembly/signaler/anomaly/pyro
@@ -351,16 +350,11 @@
/obj/effect/anomaly/pyro/anomalyEffect()
..()
- ticks++
for(var/mob/living/M in hearers(4, src))
if(prob(50))
M.adjust_fire_stacks(4)
M.IgniteMob()
- if(ticks < 4)
- return
- else
- ticks = 0
var/turf/simulated/T = get_turf(src)
if(istype(T))
var/datum/gas_mixture/air = new()
@@ -382,8 +376,8 @@
//Make it hot and burny for the new slime
var/datum/gas_mixture/air = new()
air.set_temperature(1000)
- air.set_toxins(500)
- air.set_oxygen(500)
+ air.set_toxins(125)
+ air.set_oxygen(125)
T.blind_release_air(air)
var/new_colour = pick("red", "orange")
var/mob/living/simple_animal/slime/S = new(T, new_colour)
diff --git a/code/game/objects/effects/decals/contraband_posters.dm b/code/game/objects/effects/decals/contraband_posters.dm
index 235c6d836bb9..57344002c4d2 100644
--- a/code/game/objects/effects/decals/contraband_posters.dm
+++ b/code/game/objects/effects/decals/contraband_posters.dm
@@ -580,4 +580,59 @@
desc = "A healthy crew is a happy crew!"
icon_state = "poster40_legit"
+/obj/structure/sign/poster/official/darkpurpl
+ name = "Dark Purp-L"
+ desc = "A poster for the band \"Dark Purp-L\". They label their music 'Plasmawave'; mixed from various space age sounds like creaking hulls and plasma emitters, it's gained traction in recent years amongst bored ship engineers. "
+ icon_state = "poster41_legit"
+
+/obj/structure/sign/poster/official/root
+ name = "Root Song"
+ desc = "A poster for all-Diona Jazz band \"Root Song\". When a travelling jazz band's ship crashed on a Diona overgrowth planet, a whole host of musically-inclined Dionea sprung forth. Though the beloved band members sadly perished in the crash, their love of Jazz lived on with these Dionea, who travel the galaxy in the repaired wreck of that ship, under the moniker \"Root Song\"."
+ icon_state = "poster42_legit"
+
+/obj/structure/sign/poster/official/core
+ name = "CO!RE"
+ desc = "A poster for the all-Slime melodic rap label CO!RE. Known for their unique blend of hard-hitting vocals and traditional Xarxis woodwind instruments, CO!RE took the Federation R&B scene by storm during their debut, and has since engaged in several high-intensity tours across the sector."
+ icon_state = "poster43_legit"
+
+/obj/structure/sign/poster/official/metal
+ name = "METAL"
+ desc = "A poster for an IPC metal band, aptly named \"METAL\". Though their chassis are dated and badly damaged, they rage on evermore! The electric guitarist, SKULL, has an amp built into their head."
+ icon_state = "poster44_legit"
+
+/obj/structure/sign/poster/official/kpop
+ name = "Kidan Pop"
+ desc = "A poster for a Kidan boyband known as \"K-Pop\". Though other species find their chittering vocals grating and tuneless, they're wildly popular among young Kidan living in the TSF."
+ icon_state = "poster45_legit"
+
+/obj/structure/sign/poster/official/graydays
+ name = "Gray Days"
+ desc = "A poster for an emo band of greys. They're known to play a form of Death Metal, but it's so quiet you can only barely hear the words. If you turn the speaker way up, the lyrics are mournful and deep; just remember to turn it back down once you're finished listening."
+ icon_state = "poster46_legit"
+
+/obj/structure/sign/poster/official/unathicrush
+ name = "CRUSH"
+ desc = "A poster for a unathi band called \"Heart Crush\". They mostly write diss tracks about their bitter rivals, the band \"Heart Smash\". Never tell one of their fans you like the other band, or you can expect a violent argument."
+ icon_state = "poster47_legit"
+
+/obj/structure/sign/poster/official/unathismash
+ name = "SMASH"
+ desc = "A poster for a unathi band called \"Heart Smash\". They're famously bitter rivals with a very similar band, \"Heart Crush\", who they constantly accuse of copying their style. After multiple assaults and restraining orders, the two are back on tour."
+ icon_state = "poster48_legit"
+
+/obj/structure/sign/poster/official/star
+ name = "Star"
+ desc = "A poster for a musical called \"Star\". The lead singer and actor searches across the galaxy in a cruise ship for his one true love - the titular \"Star\"."
+ icon_state = "poster49_legit"
+
+/obj/structure/sign/poster/official/soul
+ name = "Kindred Soul"
+ desc = "A poster for a rarely-seen orchestral band known as \"Kindred Soul\". Those who have been lucky enough to catch a performance say their vocals are deeply moving."
+ icon_state = "poster50_legit"
+
+/obj/structure/sign/poster/official/choir
+ name = "\"Skreethoven's\" Choir"
+ desc = "A poster for a classical Vox performance group including a full choir and orchestra. The chorists have a great harmony. Despite his violent protestation, the star organist can't shake his popular nickname, \"Skreethoven\"."
+ icon_state = "poster51_legit"
+
#undef PLACE_SPEED
diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm
index 15cfd65b5434..7d6fbdf0d647 100644
--- a/code/game/objects/effects/effect_system/effects_smoke.dm
+++ b/code/game/objects/effects/effect_system/effects_smoke.dm
@@ -175,53 +175,71 @@
name = "nanofrost smoke"
color = "#B2FFFF"
opacity = FALSE
+ var/spread_range = 6
+ lifetime = 0.5 SECONDS_TO_LIFE_CYCLES
/datum/effect_system/smoke_spread/freezing
effect_type = /obj/effect/particle_effect/smoke/freezing
- var/blast = FALSE
-
-/datum/effect_system/smoke_spread/freezing/proc/Chilled(atom/A)
- if(issimulatedturf(A))
- var/turf/simulated/T = A
- if(!T.blocks_air)
- var/datum/milla_safe/smoke_spread_chill/milla = new()
- milla.invoke_async(src, T)
- for(var/obj/machinery/atmospherics/unary/vent_pump/V in T)
- if(!isnull(V.welded) && !V.welded) //must be an unwelded vent pump.
- V.welded = TRUE
- V.update_icon()
- V.visible_message("[V] was frozen shut! ")
- for(var/obj/machinery/atmospherics/unary/vent_scrubber/U in T)
- if(!isnull(U.welded) && !U.welded) //must be an unwelded vent scrubber.
- U.welded = TRUE
- U.update_icon()
- U.visible_message("[U] was frozen shut! ")
- for(var/mob/living/L in T)
- L.ExtinguishMob()
- for(var/obj/item/Item in T)
- Item.extinguish()
-
-/datum/milla_safe/smoke_spread_chill
-
-/datum/milla_safe/smoke_spread_chill/on_run(datum/effect_system/smoke_spread/smoke, turf/T)
+
+/obj/effect/particle_effect/smoke/freezing/process()
+ . = ..()
+ var/turf/T = get_turf(src)
+ if(!istype(T))
+ return
+
+ for(var/obj/machinery/atmospherics/unary/vent_pump/V in T)
+ if(!isnull(V.welded) && !V.welded) //must be an unwelded vent pump.
+ V.welded = TRUE
+ V.update_icon()
+ V.visible_message("[V] was frozen shut! ")
+ for(var/obj/machinery/atmospherics/unary/vent_scrubber/U in T)
+ if(!isnull(U.welded) && !U.welded) //must be an unwelded vent scrubber.
+ U.welded = TRUE
+ U.update_icon()
+ U.visible_message("[U] was frozen shut! ")
+ for(var/mob/living/L in T)
+ L.ExtinguishMob()
+ for(var/obj/item/Item in T)
+ Item.extinguish()
+
+ var/datum/milla_safe/nanofrost_extinguish/milla = new()
+ milla.invoke_async(src, T)
+
+/datum/milla_safe/nanofrost_extinguish/on_run(obj/effect/particle_effect/smoke/freezing/smoke, turf/T)
+ if(!istype(T))
+ return
var/datum/gas_mixture/env = get_turf_air(T)
- if(get_dist(T, smoke) < 2) // Otherwise we'll get silliness like people using Nanofrost to kill people through walls with cold air
- env.set_temperature(2)
- for(var/obj/effect/hotspot/H in T)
+ for(var/obj/effect/hotspot/fake/H in T)
qdel(H)
- if(env.toxins())
- env.set_nitrogen(env.nitrogen() + env.toxins())
- env.set_toxins(0)
-
-/datum/effect_system/smoke_spread/freezing/set_up(amount = 5, only_cardinals = FALSE, source, desired_direction, datum/reagents/chemicals, blasting = FALSE)
- ..()
- blast = blasting
-
-/datum/effect_system/smoke_spread/freezing/start()
- if(blast)
- for(var/turf/T in RANGE_TURFS(2, location))
- Chilled(T)
- ..()
+
+ if(env.fuel_burnt() == 0)
+ return
+
+ env.set_temperature(2)
+ env.set_nitrogen(env.nitrogen() + env.toxins())
+ env.set_toxins(0)
+
+ if(smoke.spread_range <= 0 || smoke.lifetime > 0)
+ return
+
+ // Spread the smoke, up to spread_range.
+ for(var/direction in list(NORTH, SOUTH, EAST, WEST))
+ var/turf/neighbor = get_step(T, direction)
+ if(isnull(neighbor))
+ continue
+ if(neighbor.density)
+ continue
+ var/has_nanofrost = FALSE
+ for(var/datum/effect_system/smoke_spread/freezing in neighbor)
+ has_nanofrost = TRUE
+ break
+ if(has_nanofrost)
+ continue
+ if(prob(50))
+ continue
+
+ var/obj/effect/particle_effect/smoke/freezing/new_smoke = new(neighbor)
+ new_smoke.spread_range = smoke.spread_range - 1
/////////////////////////////////////////////
// Sleep smoke
diff --git a/code/game/objects/effects/effect_system/effects_sparks.dm b/code/game/objects/effects/effect_system/effects_sparks.dm
index c744bca02c36..69798349d8cd 100644
--- a/code/game/objects/effects/effect_system/effects_sparks.dm
+++ b/code/game/objects/effects/effect_system/effects_sparks.dm
@@ -26,20 +26,20 @@
playsound(src, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
var/turf/T = loc
if(isturf(T))
- T.hotspot_expose(hotspottemp, 100)
+ T.hotspot_expose(hotspottemp, 1)
QDEL_IN(src, 20)
/obj/effect/particle_effect/sparks/Destroy()
var/turf/T = loc
if(isturf(T))
- T.hotspot_expose(hotspottemp,100)
+ T.hotspot_expose(hotspottemp,1)
return ..()
/obj/effect/particle_effect/sparks/Move()
..()
var/turf/T = loc
if(isturf(T))
- T.hotspot_expose(hotspottemp,100)
+ T.hotspot_expose(hotspottemp,1)
/datum/effect_system/spark_spread
effect_type = /obj/effect/particle_effect/sparks
diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm
index 7c59c10efe16..b86ae670a395 100644
--- a/code/game/objects/effects/forcefields.dm
+++ b/code/game/objects/effects/forcefields.dm
@@ -17,6 +17,8 @@
/obj/effect/forcefield/wizard
var/mob/wizard
+ /// Flags for what antimagic can just ignore our forcefields
+ var/antimagic_flags = MAGIC_RESISTANCE
/obj/effect/forcefield/wizard/Initialize(mapload, mob/summoner)
. = ..()
@@ -25,6 +27,10 @@
/obj/effect/forcefield/wizard/CanPass(atom/movable/mover, border_dir)
if(mover == wizard)
return TRUE
+ if(isliving(mover))
+ var/mob/living/living_mover = mover
+ if(living_mover.can_block_magic(antimagic_flags, charge_cost = 0))
+ return TRUE
return FALSE
///////////Mimewalls///////////
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index b4dac11fbc36..f03b08668d82 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -422,9 +422,16 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
name = "Warden"
icon_state = "Warden"
+/obj/effect/landmark/start/nanotrasen_career_trainer
+ name ="Nanotrasen Career Trainer"
+ icon_state = "NCT"
+
/obj/effect/landmark/start/set_tag()
tag = "start*[name]"
+/obj/effect/landmark/game_test/bottom_left_corner
+
+/obj/effect/landmark/game_test/top_right_corner
//Costume spawner landmarks
diff --git a/code/game/objects/effects/spawners/random/bluespace_tap_spawners.dm b/code/game/objects/effects/spawners/random/bluespace_tap_spawners.dm
index a2ca9fce872d..25b21a269546 100644
--- a/code/game/objects/effects/spawners/random/bluespace_tap_spawners.dm
+++ b/code/game/objects/effects/spawners/random/bluespace_tap_spawners.dm
@@ -54,7 +54,7 @@
/obj/machinery/snow_machine = 10,
/obj/item/clothing/head/kitty = 5,
/obj/item/coin/antagtoken = 5,
- /obj/item/toy/prizeball/figure = 15,
+ /obj/item/toy/prizeball/action_figure = 15,
/obj/item/toy/prizeball/therapy = 10,
/obj/item/bedsheet/patriot = 2,
/obj/item/bedsheet/rainbow = 2,
diff --git a/code/game/objects/effects/spawners/random/plushie_spawners.dm b/code/game/objects/effects/spawners/random/plushie_spawners.dm
index 9076664f6162..0eddbbe48197 100644
--- a/code/game/objects/effects/spawners/random/plushie_spawners.dm
+++ b/code/game/objects/effects/spawners/random/plushie_spawners.dm
@@ -83,3 +83,20 @@
/obj/item/toy/plushie/nianplushie/rainbow = 1
),
)
+
+/obj/effect/spawner/random/plushies/explosive
+ /// Chance to spawn a minibomb in the plushie.
+ var/explosive_chance = 1
+
+/obj/effect/spawner/random/plushies/explosive/make_item(spawn_loc, type_path_to_make)
+ var/obj/item/toy/plushie/plushie = ..()
+
+ if(!istype(plushie))
+ return plushie
+
+ if(prob(explosive_chance))
+ plushie.has_stuffing = FALSE
+ var/obj/item/grenade/syndieminibomb/grenade = new(plushie)
+ plushie.grenade = grenade
+
+ return plushie
diff --git a/code/game/objects/effects/spawners/random/toy_spawners.dm b/code/game/objects/effects/spawners/random/toy_spawners.dm
new file mode 100644
index 000000000000..01fb4300baf6
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/toy_spawners.dm
@@ -0,0 +1,29 @@
+/obj/effect/spawner/random/toy
+ name = "random toy spawner"
+ icon = 'icons/effects/random_spawners.dmi'
+ icon_state = "toy"
+
+/obj/effect/spawner/random/toy/mech_figure
+ name = "random mech figurine"
+ loot_subtype_path = /obj/item/toy/figure/mech
+
+/obj/effect/spawner/random/toy/action_figure
+ name = "random action figure"
+ loot_subtype_path = /obj/item/toy/figure/crew
+
+/obj/effect/spawner/random/toy/carp_plushie
+ name = "random carp plushie"
+ loot_type_path = /obj/item/toy/plushie/carpplushie
+
+/obj/effect/spawner/random/toy/therapy_doll
+ name = "random therapy doll"
+ loot_subtype_path = /obj/item/toy/therapy
+
+/obj/effect/spawner/random/toy/clusterbuster
+ loot = list(
+ /obj/item/gun/projectile/shotgun/toy/crossbow,
+ /obj/item/reagent_containers/spray/waterflower,
+ /obj/item/toy/balloon,
+ /obj/item/toy/spinningtoy,
+ )
+ loot_subtype_path = /obj/item/toy/figure/mech
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 647e26610a07..d26400e787f6 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -50,6 +50,8 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons
var/w_class = WEIGHT_CLASS_NORMAL
/// This is used to determine on which slots an item can fit.
var/slot_flags = 0
+ /// If set, this determines which slots are considered when using quick equip
+ var/prefered_slot_flags = 0
/// Determines what it can pass over/through. IE. 'PASSTABLE' will allow it to pass over tables
pass_flags = PASSTABLE
pressure_resistance = 4
@@ -989,7 +991,7 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons
/obj/item/proc/canStrip(mob/stripper, mob/owner)
SHOULD_BE_PURE(TRUE)
- return !(flags & NODROP) && !(flags & ABSTRACT)
+ return !(flags & NODROP) && !(flags & ABSTRACT) && !HAS_TRAIT(src, TRAIT_NO_STRIP)
/obj/item/proc/should_stack_with(obj/item/other)
return type == other.type && name == other.name
diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm
index 9c13bf05c3dc..6885160acf5b 100644
--- a/code/game/objects/items/candle.dm
+++ b/code/game/objects/items/candle.dm
@@ -104,7 +104,7 @@
qdel(src)
if(isturf(loc)) //start a fire if possible
var/turf/T = loc
- T.hotspot_expose(700, 5)
+ T.hotspot_expose(700, 1)
/obj/item/candle/proc/unlight()
if(lit)
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 06efea7d556b..5a4e07005b62 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -188,7 +188,7 @@
/obj/item/flashlight/flare/process()
var/turf/pos = get_turf(src)
if(pos && produce_heat)
- pos.hotspot_expose(produce_heat, 5)
+ pos.hotspot_expose(produce_heat, 1)
fuel = max(fuel - 1, 0)
if(!fuel || !on)
turn_off()
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index 19c8c7319d64..a1999c826e88 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -172,3 +172,8 @@
desc = "Integrated encryption key."
icon_state = "cap_cypherkey"
channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1, "Procedure" = 1)
+
+/obj/item/encryptionkey/headset_nct
+ name = "NCT Radio Encryption Key"
+ icon_state = "com_cypherkey"
+ channels = list("Procedure" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1)
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 201ceb11fcfe..10770f412070 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -308,6 +308,13 @@
item_state = "headset"
ks2type = /obj/item/encryptionkey/heads/ntrep
+/obj/item/radio/headset/headset_nct
+ name = "\improper Nanotrasen career trainer radio headset"
+ desc = "This is used by your well-taught corporate training team."
+ icon_state = "com_headset"
+ item_state = "headset"
+ ks2type = /obj/item/encryptionkey/headset_nct
+
/obj/item/radio/headset/heads/magistrate
name = "magistrate's headset"
desc = "The headset of the Magistrate."
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index f164e8283d0c..077f349263f4 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -625,18 +625,17 @@ SLIME SCANNER
* Used in chat-based gas scans.
*/
/proc/atmos_scan(mob/user, atom/target, silent = FALSE, print = TRUE, milla_turf_details = FALSE)
- var/mixture
+ var/datum/gas_mixture/air
var/list/milla = null
- if(milla_turf_details)
+ if(milla_turf_details && istype(target, /turf))
milla = new/list(MILLA_TILE_SIZE)
get_tile_atmos(target, milla)
- var/datum/gas_mixture/GM = new()
- GM.copy_from_milla(milla)
- mixture = GM
+ air = new()
+ air.copy_from_milla(milla)
else
- mixture = target.return_analyzable_air()
- if(!mixture)
- return FALSE
+ air = target.return_analyzable_air()
+ if(!air)
+ return FALSE
var/list/message = list()
if(!silent && isliving(user))
@@ -646,64 +645,53 @@ SLIME SCANNER
if(!print)
return TRUE
- var/list/airs = islist(mixture) ? mixture : list(mixture)
- for(var/datum/gas_mixture/air as anything in airs)
- var/mix_name = capitalize(lowertext(target.name))
- if(length(air) > 1) //not a unary gas mixture
- var/mix_number = airs.Find(air)
- message += "Node [mix_number] "
- mix_name += " - Node [mix_number]"
-
- var/total_moles = air.total_moles()
- var/pressure = air.return_pressure()
- var/volume = air.return_volume() //could just do mixture.volume... but safety, I guess?
- var/heat_capacity = air.heat_capacity()
- var/thermal_energy = air.thermal_energy()
-
- if(total_moles)
- message += "Total: [round(total_moles, 0.01)] moles "
- if(air.oxygen() && (milla_turf_details || air.oxygen() / total_moles > 0.01))
- message += " Oxygen: [round(air.oxygen(), 0.01)] moles ([round(air.oxygen() / total_moles * 100, 0.01)] %) "
- if(air.nitrogen() && (milla_turf_details || air.nitrogen() / total_moles > 0.01))
- message += " Nitrogen: [round(air.nitrogen(), 0.01)] moles ([round(air.nitrogen() / total_moles * 100, 0.01)] %) "
- if(air.carbon_dioxide() && (milla_turf_details || air.carbon_dioxide() / total_moles > 0.01))
- message += " Carbon Dioxide: [round(air.carbon_dioxide(), 0.01)] moles ([round(air.carbon_dioxide() / total_moles * 100, 0.01)] %) "
- if(air.toxins() && (milla_turf_details || air.toxins() / total_moles > 0.01))
- message += " Plasma: [round(air.toxins(), 0.01)] moles ([round(air.toxins() / total_moles * 100, 0.01)] %) "
- if(air.sleeping_agent() && (milla_turf_details || air.sleeping_agent() / total_moles > 0.01))
- message += " Nitrous Oxide: [round(air.sleeping_agent(), 0.01)] moles ([round(air.sleeping_agent() / total_moles * 100, 0.01)] %) "
- if(air.agent_b() && (milla_turf_details || air.agent_b() / total_moles > 0.01))
- message += " Agent B: [round(air.agent_b(), 0.01)] moles ([round(air.agent_b() / total_moles * 100, 0.01)] %) "
- message += "Temperature: [round(air.temperature()-T0C)] °C ([round(air.temperature())] K) "
- message += "Volume: [round(volume)] Liters "
- message += "Pressure: [round(pressure, 0.1)] kPa "
- message += "Heat Capacity: [DisplayJoules(heat_capacity)] / K "
- message += "Thermal Energy: [DisplayJoules(thermal_energy)] "
- else
- message += length(airs) > 1 ? "This node is empty! " : "[target] is empty! "
- message += "Volume: [round(volume)] Liters " // don't want to change the order volume appears in, suck it
-
- if(milla)
- // Values from milla/src/lib.rs, +1 due to array indexing difference.
- message += "Airtight North: [(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_NORTH) ? "yes" : "no"] "
- message += "Airtight East: [(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_EAST) ? "yes" : "no"] "
- message += "Airtight South: [(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_SOUTH) ? "yes" : "no"] "
- message += "Airtight West: [(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_WEST) ? "yes" : "no"] "
- switch(milla[MILLA_INDEX_ATMOS_MODE])
- // These are enum values, so they don't get increased.
- if(0)
- message += "Atmos Mode: Space "
- if(1)
- message += "Atmos Mode: Sealed "
- if(2)
- message += "Atmos Mode: Exposed to Environment (ID: [milla[MILLA_INDEX_ENVIRONMENT_ID]]) "
- else
- message += "Atmos Mode: Unknown ([milla[MILLA_INDEX_ATMOS_MODE]]), contact a coder. "
- message += "Superconductivity North: [milla[MILLA_INDEX_SUPERCONDUCTIVITY_NORTH]] "
- message += "Superconductivity East: [milla[MILLA_INDEX_SUPERCONDUCTIVITY_EAST]] "
- message += "Superconductivity South: [milla[MILLA_INDEX_SUPERCONDUCTIVITY_SOUTH]] "
- message += "Superconductivity West: [milla[MILLA_INDEX_SUPERCONDUCTIVITY_WEST]] "
- message += "Turf's Innate Heat Capacity: [milla[MILLA_INDEX_INNATE_HEAT_CAPACITY]] "
+ var/total_moles = air.total_moles()
+ var/pressure = air.return_pressure()
+ var/volume = air.return_volume() //could just do mixture.volume... but safety, I guess?
+ var/heat_capacity = air.heat_capacity()
+ var/thermal_energy = air.thermal_energy()
+
+ if(total_moles)
+ message += "Total: [round(total_moles, 0.01)] moles "
+ if(air.oxygen() && (milla_turf_details || air.oxygen() / total_moles > 0.01))
+ message += " Oxygen: [round(air.oxygen(), 0.01)] moles ([round(air.oxygen() / total_moles * 100, 0.01)] %) "
+ if(air.nitrogen() && (milla_turf_details || air.nitrogen() / total_moles > 0.01))
+ message += " Nitrogen: [round(air.nitrogen(), 0.01)] moles ([round(air.nitrogen() / total_moles * 100, 0.01)] %) "
+ if(air.carbon_dioxide() && (milla_turf_details || air.carbon_dioxide() / total_moles > 0.01))
+ message += " Carbon Dioxide: [round(air.carbon_dioxide(), 0.01)] moles ([round(air.carbon_dioxide() / total_moles * 100, 0.01)] %) "
+ if(air.toxins() && (milla_turf_details || air.toxins() / total_moles > 0.01))
+ message += " Plasma: [round(air.toxins(), 0.01)] moles ([round(air.toxins() / total_moles * 100, 0.01)] %) "
+ if(air.sleeping_agent() && (milla_turf_details || air.sleeping_agent() / total_moles > 0.01))
+ message += " Nitrous Oxide: [round(air.sleeping_agent(), 0.01)] moles ([round(air.sleeping_agent() / total_moles * 100, 0.01)] %) "
+ if(air.agent_b() && (milla_turf_details || air.agent_b() / total_moles > 0.01))
+ message += " Agent B: [round(air.agent_b(), 0.01)] moles ([round(air.agent_b() / total_moles * 100, 0.01)] %) "
+ message += "Temperature: [round(air.temperature()-T0C)] °C ([round(air.temperature())] K) "
+ message += "Volume: [round(volume)] Liters "
+ message += "Pressure: [round(pressure, 0.1)] kPa "
+ message += "Heat Capacity: [DisplayJoules(heat_capacity)] / K "
+ message += "Thermal Energy: [DisplayJoules(thermal_energy)] "
+ else
+ message += "[target] is empty! "
+ message += "Volume: [round(volume)] Liters " // don't want to change the order volume appears in, suck it
+
+ if(milla)
+ // Values from milla/src/lib.rs, +1 due to array indexing difference.
+ message += "Airtight N/E/S/W: [(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_NORTH) ? "yes" : "no"]/[(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_EAST) ? "yes" : "no"]/[(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_SOUTH) ? "yes" : "no"]/[(milla[MILLA_INDEX_AIRTIGHT_DIRECTIONS] & MILLA_WEST) ? "yes" : "no"] "
+ switch(milla[MILLA_INDEX_ATMOS_MODE])
+ // These are enum values, so they don't get increased.
+ if(0)
+ message += "Atmos Mode: Space "
+ if(1)
+ message += "Atmos Mode: Sealed "
+ if(2)
+ message += "Atmos Mode: Exposed to Environment (ID: [milla[MILLA_INDEX_ENVIRONMENT_ID]]) "
+ else
+ message += "Atmos Mode: Unknown ([milla[MILLA_INDEX_ATMOS_MODE]]), contact a coder. "
+ message += "Superconductivity N/E/S/W: [milla[MILLA_INDEX_SUPERCONDUCTIVITY_NORTH]]/[milla[MILLA_INDEX_SUPERCONDUCTIVITY_EAST]]/[milla[MILLA_INDEX_SUPERCONDUCTIVITY_SOUTH]]/[milla[MILLA_INDEX_SUPERCONDUCTIVITY_WEST]] "
+ message += "Turf's Innate Heat Capacity: [milla[MILLA_INDEX_INNATE_HEAT_CAPACITY]] "
+ message += "Hotspot: [floor(milla[MILLA_INDEX_HOTSPOT_TEMPERATURE]-T0C)] °C ([floor(milla[MILLA_INDEX_HOTSPOT_TEMPERATURE])] K), [round(milla[MILLA_INDEX_HOTSPOT_VOLUME] * CELL_VOLUME, 1)] Liters ([milla[MILLA_INDEX_HOTSPOT_VOLUME]]x) "
+ message += "Wind: ([round(milla[MILLA_INDEX_WIND_X], 0.001)], [round(milla[MILLA_INDEX_WIND_Y], 0.001)]) "
+ message += "Fuel burnt last tick: [milla[MILLA_INDEX_FUEL_BURNT]] moles "
to_chat(user, chat_box_examine(message.Join("\n")))
return TRUE
diff --git a/code/game/objects/items/his_grace.dm b/code/game/objects/items/his_grace.dm
index 393209b5c0f5..e5232ec4bc20 100644
--- a/code/game/objects/items/his_grace.dm
+++ b/code/game/objects/items/his_grace.dm
@@ -14,7 +14,7 @@
lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi'
w_class = WEIGHT_CLASS_GIGANTIC
- force = 15
+ force = 20
attack_verb = list("robusted")
hitsound = 'sound/weapons/smash.ogg'
drop_sound = 'sound/items/handling/toolbox_drop.ogg'
@@ -77,6 +77,16 @@
else
return ..()
+/obj/item/his_grace/attack_obj(obj/attacked_obj, mob/living/user, params)
+ if(!awakened && (isstructure(attacked_obj) || ismachinery(attacked_obj)))
+ return ..()
+ var/mob/living/carbon/human/H = user
+ H.changeNext_move(CLICK_CD_MELEE)
+ H.do_attack_animation(attacked_obj)
+ H.visible_message("[H] has hit [attacked_obj] with [src]! ", "You hit [attacked_obj] with [src]! ")
+ var/damage = force
+ attacked_obj.take_damage(damage * 3, BRUTE, MELEE, TRUE, get_dir(src, user), 30) // yoinked from breaching cleaver
+
/obj/item/his_grace/can_be_pulled(user, grab_state, force, show_message = FALSE) //you can't pull his grace
return FALSE
@@ -111,7 +121,7 @@
drowse()
return
if(bloodthirst < HIS_GRACE_CONSUME_OWNER)
- adjust_bloodthirst(0.5 + round(length(contents) * (1 / 6), 1))
+ adjust_bloodthirst(0.5 + round(length(contents) * (1 / 10), 1))
else
adjust_bloodthirst(0.5) //don't cool off rapidly once we're at the point where His Grace consumes all.
diff --git a/code/game/objects/items/robot/cyborg_gripper.dm b/code/game/objects/items/robot/cyborg_gripper.dm
index 4f81cdc5f977..cac644d7c839 100644
--- a/code/game/objects/items/robot/cyborg_gripper.dm
+++ b/code/game/objects/items/robot/cyborg_gripper.dm
@@ -62,7 +62,10 @@
if(!gripped_item)
to_chat(user, "[src] is empty. ")
return
- gripped_item.attack_self__legacy__attackchain(user)
+ if(gripped_item.new_attack_chain)
+ gripped_item.activate_self(user)
+ else
+ gripped_item.attack_self__legacy__attackchain(user)
// This is required to ensure that the forceMove checks on some objects don't rip the gripper out of the borg's inventory and toss it on the floor. That would hurt, a lot!
/obj/item/gripper/forceMove(atom/destination)
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index 61960c940942..5a23bae121cc 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -60,10 +60,9 @@ GLOBAL_LIST_INIT(rod_recipes, list (
/obj/item/stack/rods/fifty
amount = 50
-/obj/item/stack/rods/New(loc, amount=null)
- ..()
+/obj/item/stack/rods/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.rod_recipes
- update_icon(UPDATE_ICON_STATE)
/obj/item/stack/rods/update_icon_state()
var/amount = get_amount()
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index edc0dd43ba74..52ff0308ffa7 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -61,9 +61,9 @@ GLOBAL_LIST_INIT(glass_recipes, list (
/obj/item/stack/sheet/glass/cyborg/drone
energy_type = /datum/robot_storage/energy/glass
-/obj/item/stack/sheet/glass/New(loc, amount)
+/obj/item/stack/sheet/glass/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.glass_recipes
- ..()
/obj/item/stack/sheet/glass/attackby__legacy__attackchain(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stack/cable_coil))
@@ -128,9 +128,9 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list (
/obj/item/stack/sheet/rglass/fifty
amount = 50
-/obj/item/stack/sheet/rglass/New(loc, amount)
+/obj/item/stack/sheet/rglass/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.reinforced_glass_recipes
- ..()
GLOBAL_LIST_INIT(pglass_recipes, list (
new /datum/stack_recipe("plasma shard", /obj/item/shard/plasma, time = 0 SECONDS),
@@ -183,9 +183,9 @@ GLOBAL_LIST_INIT(pglass_recipes, list (
/obj/item/stack/sheet/plasmaglass/fifty
amount = 50
-/obj/item/stack/sheet/plasmaglass/New(loc, amount)
+/obj/item/stack/sheet/plasmaglass/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.pglass_recipes
- ..()
/obj/item/stack/sheet/plasmaglass/attackby__legacy__attackchain(obj/item/W, mob/user, params)
..()
@@ -241,9 +241,9 @@ GLOBAL_LIST_INIT(prglass_recipes, list (
/obj/item/stack/sheet/plasmarglass/fifty
amount = 50
-/obj/item/stack/sheet/plasmarglass/New(loc, amount)
+/obj/item/stack/sheet/plasmarglass/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.prglass_recipes
- ..()
GLOBAL_LIST_INIT(titaniumglass_recipes, list(
new /datum/stack_recipe/window("shuttle window", /obj/structure/window/full/shuttle, 2, time = 0 SECONDS, on_floor = TRUE, window_checks = TRUE)
@@ -274,9 +274,9 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list(
/obj/item/stack/sheet/titaniumglass/fifty
amount = 50
-/obj/item/stack/sheet/titaniumglass/New(loc, amount)
+/obj/item/stack/sheet/titaniumglass/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.titaniumglass_recipes
- ..()
GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
new /datum/stack_recipe/window("plastitanium window", /obj/structure/window/full/plastitanium, 2, time = 0 SECONDS, on_floor = TRUE, window_checks = TRUE)
@@ -308,7 +308,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
/obj/item/stack/sheet/plastitaniumglass/fifty
amount = 50
-/obj/item/stack/sheet/plastitaniumglass/New(loc, amount)
+/obj/item/stack/sheet/plastitaniumglass/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.plastitaniumglass_recipes
- ..()
diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm
index de7987e35c92..6423b9edd94d 100644
--- a/code/game/objects/items/stacks/sheets/leather.dm
+++ b/code/game/objects/items/stacks/sheets/leather.dm
@@ -17,9 +17,9 @@ GLOBAL_LIST_INIT(human_recipes, list(
new /datum/stack_recipe("bloated human costume head", /obj/item/clothing/head/human_head, 5, on_floor = TRUE),
))
-/obj/item/stack/sheet/animalhide/human/New(loc, amount=null)
+/obj/item/stack/sheet/animalhide/human/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.human_recipes
- return ..()
/obj/item/stack/sheet/animalhide/generic
name = "generic skin"
@@ -152,11 +152,11 @@ GLOBAL_LIST_INIT(leather_recipes, list (
new /datum/stack_recipe("leather jacket", /obj/item/clothing/suit/jacket/leather, 7),
new /datum/stack_recipe("leather shoes", /obj/item/clothing/shoes/leather, 2),
new /datum/stack_recipe("leather overcoat", /obj/item/clothing/suit/jacket/leather/overcoat, 10),
- new /datum/stack_recipe("hide mantle", /obj/item/clothing/suit/unathi/mantle, 4)))
+ new /datum/stack_recipe("hide mantle", /obj/item/clothing/neck/cloak/unathi, 4)))
-/obj/item/stack/sheet/leather/New(loc, new_amount, merge = TRUE)
+/obj/item/stack/sheet/leather/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.leather_recipes
- return ..()
/obj/item/stack/sheet/sinew
name = "watcher sinew"
@@ -172,9 +172,9 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
new /datum/stack_recipe("sinew restraints", /obj/item/restraints/handcuffs/sinew, 1, on_floor = 1),
))
-/obj/item/stack/sheet/sinew/New(loc, amount=null)
+/obj/item/stack/sheet/sinew/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.sinew_recipes
- return ..()
/obj/item/stack/sheet/animalhide/goliath_hide
name = "goliath hide plates"
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index 2e53e687d1e9..5f45c2e3a02b 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -42,7 +42,7 @@ GLOBAL_LIST_INIT(silver_recipes, list (
new /datum/stack_recipe("Corgi Statue", /obj/structure/statue/silver/corgi, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
)),
null,
- new /datum/stack_recipe("Silver Locket", /obj/item/clothing/accessory/necklace/locket/silver, 1),
+ new /datum/stack_recipe("Silver Locket", /obj/item/clothing/neck/necklace/locket/silver, 1),
))
GLOBAL_LIST_INIT(diamond_recipes, list (
@@ -87,9 +87,9 @@ GLOBAL_LIST_INIT(gold_recipes, list (
new /datum/stack_recipe_list("gold clothing", list(
new /datum/stack_recipe("Simple Crown", /obj/item/clothing/head/crown, 5),
null,
- new /datum/stack_recipe("Simple Necklace", /obj/item/clothing/accessory/necklace, 1),
- new /datum/stack_recipe("Large Necklace", /obj/item/clothing/accessory/necklace/long, 2),
- new /datum/stack_recipe("Gold Locket", /obj/item/clothing/accessory/necklace/locket, 1),
+ new /datum/stack_recipe("Simple Necklace", /obj/item/clothing/neck/necklace, 1),
+ new /datum/stack_recipe("Large Necklace", /obj/item/clothing/neck/necklace/long, 2),
+ new /datum/stack_recipe("Gold Locket", /obj/item/clothing/neck/necklace/locket, 1),
)),
))
@@ -148,8 +148,8 @@ GLOBAL_LIST_INIT(snow_recipes, list(
throwforce = 5
throw_speed = 3
-/obj/item/stack/sheet/mineral/New()
- ..()
+/obj/item/stack/sheet/mineral/Initialize(mapload, new_amount, merge)
+ . = ..()
pixel_x = rand(0,4)-4
pixel_y = rand(0,4)-4
@@ -167,8 +167,8 @@ GLOBAL_LIST_INIT(snow_recipes, list(
/obj/item/stack/sheet/mineral/sandstone/fifty
amount = 50
-/obj/item/stack/sheet/mineral/sandstone/New()
- ..()
+/obj/item/stack/sheet/mineral/sandstone/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.sandstone_recipes
/*
@@ -188,9 +188,9 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
new /datum/stack_recipe("sandbags", /obj/structure/barricade/sandbags, 1, time = 25, one_per_turf = TRUE, on_floor = TRUE),
))
-/obj/item/stack/sheet/mineral/sandbags/New()
+/obj/item/stack/sheet/mineral/sandbags/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.sandbag_recipes
- ..()
/obj/item/emptysandbag
name = "empty sandbag"
@@ -230,8 +230,8 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
. += ""
. += "Diamond is highly sought after for both aesthetic uses and as a component of many advanced technologies."
-/obj/item/stack/sheet/mineral/diamond/New()
- ..()
+/obj/item/stack/sheet/mineral/diamond/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.diamond_recipes
/obj/item/stack/sheet/mineral/diamond/fifty
@@ -258,8 +258,8 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
/obj/item/stack/sheet/mineral/uranium/fifty
amount = 50
-/obj/item/stack/sheet/mineral/uranium/New()
- ..()
+/obj/item/stack/sheet/mineral/uranium/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.uranium_recipes
/obj/item/stack/sheet/mineral/plasma
@@ -288,8 +288,8 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
. += "Despite its flammability, plasma-enhanced materials such as plasteel or plasma glass generally possess extreme fire resistance, ultra-low thermal conductivity, and a high emissivity. \
This allows, for example, a relatively thin pane of plasma glass to be cool to the touch even when a massive inferno is burning on the other side."
-/obj/item/stack/sheet/mineral/plasma/New()
- ..()
+/obj/item/stack/sheet/mineral/plasma/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.plasma_recipes
/obj/item/stack/sheet/mineral/plasma/fifty
@@ -341,8 +341,8 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
/obj/item/stack/sheet/mineral/gold/fifty
amount = 50
-/obj/item/stack/sheet/mineral/gold/New()
- ..()
+/obj/item/stack/sheet/mineral/gold/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.gold_recipes
/obj/item/stack/sheet/mineral/silver
@@ -367,8 +367,8 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
/obj/item/stack/sheet/mineral/silver/fifty
amount = 50
-/obj/item/stack/sheet/mineral/silver/New()
- ..()
+/obj/item/stack/sheet/mineral/silver/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.silver_recipes
/obj/item/stack/sheet/mineral/bananium
@@ -396,8 +396,8 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
/obj/item/stack/sheet/mineral/bananium/fifty
amount = 50
-/obj/item/stack/sheet/mineral/bananium/New(loc, amount=null)
- ..()
+/obj/item/stack/sheet/mineral/bananium/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.bananium_recipes
/obj/item/stack/sheet/mineral/tranquillite
@@ -427,8 +427,8 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
/obj/item/stack/sheet/mineral/tranquillite/fifty
amount = 50
-/obj/item/stack/sheet/mineral/tranquillite/New(loc, amount=null)
- ..()
+/obj/item/stack/sheet/mineral/tranquillite/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.tranquillite_recipes
/*
@@ -464,9 +464,9 @@ GLOBAL_LIST_INIT(titanium_recipes, list(
new /datum/stack_recipe("surgical tray", /obj/structure/table/tray, 2, one_per_turf = TRUE, on_floor = TRUE),
))
-/obj/item/stack/sheet/mineral/titanium/New(loc, amount=null)
+/obj/item/stack/sheet/mineral/titanium/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.titanium_recipes
- ..()
/obj/item/stack/sheet/mineral/titanium/fifty
amount = 50
@@ -507,9 +507,9 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list(
new /datum/stack_recipe("reinforced wheelchair", /obj/structure/chair/wheelchair/plastitanium, 15, time = 7 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
))
-/obj/item/stack/sheet/mineral/plastitanium/New(loc, amount=null)
+/obj/item/stack/sheet/mineral/plastitanium/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.plastitanium_recipes
- ..()
//Alien Alloy
@@ -537,9 +537,9 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list(
/obj/item/stack/sheet/mineral/abductor/fifty
amount = 50
-/obj/item/stack/sheet/mineral/abductor/New(loc, amount=null)
+/obj/item/stack/sheet/mineral/abductor/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.abductor_recipes
- ..()
/obj/item/stack/sheet/mineral/adamantine
name = "adamantine"
@@ -551,9 +551,9 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list(
merge_type = /obj/item/stack/sheet/mineral/adamantine
wall_allowed = FALSE
-/obj/item/stack/sheet/mineral/adamantine/New(loc, amount = null)
+/obj/item/stack/sheet/mineral/adamantine/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.adamantine_recipes
- ..()
/obj/item/stack/sheet/mineral/adamantine/fifty
@@ -571,6 +571,6 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list(
throwforce = 2
merge_type = /obj/item/stack/sheet/mineral/snow
-/obj/item/stack/sheet/mineral/snow/New(loc, amount = null)
+/obj/item/stack/sheet/mineral/snow/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.snow_recipes
- ..()
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index c35f465cbf01..a3deade91962 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -172,9 +172,9 @@ GLOBAL_LIST_INIT(metal_recipes, list(
new /obj/item/stack/sheet/runed_metal(loc, amount)
qdel(src)
-/obj/item/stack/sheet/metal/New(loc, amount=null)
+/obj/item/stack/sheet/metal/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.metal_recipes
- return ..()
//////////////////////////////
// MARK: PLASTEEL
@@ -226,9 +226,9 @@ GLOBAL_LIST_INIT(plasteel_recipes, list(
/obj/item/stack/sheet/plasteel/fifty
amount = 50
-/obj/item/stack/sheet/plasteel/New(loc, amount=null)
+/obj/item/stack/sheet/plasteel/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.plasteel_recipes
- return ..()
/obj/item/stack/sheet/wood/cyborg
energy_type = /datum/robot_storage/energy/wood
@@ -291,9 +291,9 @@ GLOBAL_LIST_INIT(wood_recipes, list(
sheettype = "wood"
table_type = /obj/structure/table/wood
-/obj/item/stack/sheet/wood/New(loc, amount=null)
+/obj/item/stack/sheet/wood/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.wood_recipes
- return ..()
//////////////////////////////
// MARK: BAMBOO
@@ -330,9 +330,9 @@ GLOBAL_LIST_INIT(bamboo_recipes, list(
sheettype = "bamboo"
merge_type = /obj/item/stack/sheet/bamboo
-/obj/item/stack/sheet/bamboo/New(loc, amount=null)
+/obj/item/stack/sheet/bamboo/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.bamboo_recipes
- return ..()
/obj/item/stack/sheet/bamboo/fifty
amount = 50
@@ -343,7 +343,7 @@ GLOBAL_LIST_INIT(bamboo_recipes, list(
GLOBAL_LIST_INIT(cloth_recipes, list (
new /datum/stack_recipe_list("cloth clothings", list(
new /datum/stack_recipe("white jumpsuit", /obj/item/clothing/under/color/white, 3),
- new /datum/stack_recipe("white scarf", /obj/item/clothing/accessory/scarf/white, 1),
+ new /datum/stack_recipe("white scarf", /obj/item/clothing/neck/scarf/white, 1),
new /datum/stack_recipe("white shoes", /obj/item/clothing/shoes/white, 2),
new /datum/stack_recipe("cloth footwraps", /obj/item/clothing/shoes/footwraps, 2),
null,
@@ -395,9 +395,9 @@ GLOBAL_LIST_INIT(cloth_recipes, list (
drop_sound = 'sound/items/handling/cloth_drop.ogg'
pickup_sound = 'sound/items/handling/cloth_pickup.ogg'
-/obj/item/stack/sheet/cloth/New(loc, amount=null)
+/obj/item/stack/sheet/cloth/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.cloth_recipes
- ..()
/obj/item/stack/sheet/cloth/ten
amount = 10
@@ -512,9 +512,9 @@ GLOBAL_LIST_INIT(cardboard_recipes, list (
resistance_flags = FLAMMABLE
merge_type = /obj/item/stack/sheet/cardboard
-/obj/item/stack/sheet/cardboard/New(loc, amt = null)
+/obj/item/stack/sheet/cardboard/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.cardboard_recipes
- return ..()
//////////////////////////////
// MARK: SOIL
@@ -566,7 +566,7 @@ GLOBAL_LIST_INIT(cult_recipes, list (
. += ""
. += "Mundane matter turned extraordinary by the dark blessings of those things that lie in wait - such as this - is the canvas used to build the works that shall one day tear asunder the veil that shields our world."
-/obj/item/stack/sheet/runed_metal/New()
+/obj/item/stack/sheet/runed_metal/Initialize(mapload, new_amount, merge)
. = ..()
icon_state = GET_CULT_DATA(runed_metal_icon_state, initial(icon_state))
item_state = GET_CULT_DATA(runed_metal_item_state, initial(item_state))
@@ -654,9 +654,9 @@ GLOBAL_LIST_INIT(brass_recipes, list (
new /obj/item/stack/sheet/runed_metal(loc, amount)
qdel(src)
-/obj/item/stack/tile/brass/New(loc, amount=null)
- recipes = GLOB.brass_recipes
+/obj/item/stack/tile/brass/Initialize(mapload, new_amount, merge)
. = ..()
+ recipes = GLOB.brass_recipes
pixel_x = 0
pixel_y = 0
@@ -747,9 +747,9 @@ GLOBAL_LIST_INIT(plastic_recipes, list(
. += "Despite the extensive uses of plastics, they are not as ubiquitous as other materials (especially steel). This is due to a combination of environmental regulations, \
established market patterns, and the operational requirements for many space-based installations to employ easily recycled materials to conserve limited supplies."
-/obj/item/stack/sheet/plastic/New()
- recipes = GLOB.plastic_recipes
+/obj/item/stack/sheet/plastic/Initialize(mapload, new_amount, merge)
. = ..()
+ recipes = GLOB.plastic_recipes
/obj/item/stack/sheet/plastic/fifty
amount = 50
diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm
index 2ead9e4593ca..55472aaab835 100644
--- a/code/game/objects/items/stacks/tiles/tile_mineral.dm
+++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm
@@ -40,8 +40,8 @@ GLOBAL_LIST_INIT(gold_tile_recipes, list ( \
mineralType = "gold"
materials = list(MAT_GOLD=500)
-/obj/item/stack/tile/mineral/gold/New(loc, amount=null)
- ..()
+/obj/item/stack/tile/mineral/gold/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.gold_tile_recipes
GLOBAL_LIST_INIT(goldfancy_tile_recipes, list ( \
@@ -52,8 +52,8 @@ GLOBAL_LIST_INIT(goldfancy_tile_recipes, list ( \
icon_state = "tile_goldfancy"
turf_type = /turf/simulated/floor/mineral/gold/fancy
-/obj/item/stack/tile/mineral/gold/fancy/New(loc, amount=null)
- ..()
+/obj/item/stack/tile/mineral/gold/fancy/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.goldfancy_tile_recipes
GLOBAL_LIST_INIT(silver_tile_recipes, list ( \
@@ -69,8 +69,8 @@ GLOBAL_LIST_INIT(silver_tile_recipes, list ( \
mineralType = "silver"
materials = list(MAT_SILVER=500)
-/obj/item/stack/tile/mineral/silver/New(loc, amount=null)
- ..()
+/obj/item/stack/tile/mineral/silver/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.silver_tile_recipes
GLOBAL_LIST_INIT(silverfancy_tile_recipes, list ( \
@@ -81,8 +81,8 @@ GLOBAL_LIST_INIT(silverfancy_tile_recipes, list ( \
icon_state = "tile_silverfancy"
turf_type = /turf/simulated/floor/mineral/silver/fancy
-/obj/item/stack/tile/mineral/silver/fancy/New(loc, amount=null)
- ..()
+/obj/item/stack/tile/mineral/silver/fancy/Initialize(mapload, new_amount, merge)
+ . = ..()
recipes = GLOB.silverfancy_tile_recipes
/obj/item/stack/tile/mineral/diamond
diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm
index da72b17dade1..9eb64dd31302 100644
--- a/code/game/objects/items/stacks/tiles/tile_types.dm
+++ b/code/game/objects/items/stacks/tiles/tile_types.dm
@@ -16,8 +16,8 @@
var/turf_type = null
var/mineralType = null
-/obj/item/stack/tile/New(loc, amount)
- ..()
+/obj/item/stack/tile/Initialize(mapload, new_amount, merge)
+ . = ..()
pixel_x = rand(-3, 3)
pixel_y = rand(-3, 3) //randomize a little
diff --git a/code/game/objects/items/tools/welder.dm b/code/game/objects/items/tools/welder.dm
index 9208ae62090b..c4711fa34ba9 100644
--- a/code/game/objects/items/tools/welder.dm
+++ b/code/game/objects/items/tools/welder.dm
@@ -71,7 +71,7 @@
if(tool_enabled)
var/turf/T = get_turf(src)
if(T) // Implants for instance won't find a turf
- T.hotspot_expose(2500, 5)
+ T.hotspot_expose(2500, 1)
if(prob(5))
remove_fuel(1)
if(refills_over_time)
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 775dd5d25138..8190b14d1a4b 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -478,15 +478,6 @@
playsound(user, 'sound/items/squeaktoy.ogg', 20, TRUE)
cooldown = world.time
-/obj/random/therapy
- name = "Random Therapy Doll"
- desc = "This is a random therapy doll."
- icon = 'icons/obj/toy.dmi'
- icon_state = "therapyred"
-
-/obj/random/therapy/item_to_spawn()
- return pick(subtypesof(/obj/item/toy/therapy)) //exclude the base type.
-
/obj/item/toy/therapy/red
item_state = "egg4" // It's the red egg in items_left/righthand
item_color = "red"
@@ -542,15 +533,6 @@
poof_sound = list('sound/weapons/bite.ogg' = 1)
-/obj/random/carp_plushie
- name = "Random Carp Plushie"
- desc = "This is a random plushie."
- icon = 'icons/obj/toy.dmi'
- icon_state = "carpplushie"
-
-/obj/random/carp_plushie/item_to_spawn()
- return pick(typesof(/obj/item/toy/plushie/carpplushie)) //can pick any carp plushie, even the original.
-
/obj/item/toy/plushie/carpplushie/ice
icon_state = "icecarp"
@@ -691,28 +673,6 @@
cursed_plushie_victim = null
qdel(src)
-/obj/random/plushie
- name = "Random Plushie"
- desc = "This is a random plushie."
- icon = 'icons/obj/toy.dmi'
- icon_state = "redfox"
-
-/obj/random/plushie/item_to_spawn()
- return pick(subtypesof(/obj/item/toy/plushie) - typesof(/obj/item/toy/plushie/fluff) - typesof(/obj/item/toy/plushie/carpplushie)) //exclude the base type.
-
-/obj/random/plushie/explosive
- var/explosive_chance = 1 // 1% to spawn a blahbomb!
-
-/obj/random/plushie/explosive/spawn_item()
- var/obj/item/toy/plushie/plushie = ..()
- if(!prob(explosive_chance))
- return plushie
- var/obj/item/I = new /obj/item/grenade/syndieminibomb
- plushie.has_stuffing = FALSE
- plushie.grenade = I
- I.forceMove(plushie)
- return plushie
-
/obj/item/toy/plushie/corgi
name = "corgi plushie"
icon_state = "corgi"
@@ -1181,7 +1141,7 @@
/obj/item/toy/plushie/plasmamanplushie
name = "plasmaman plushie"
- desc = "A freindly plasma-being in plush form. WARNING: KEEP AWAY FROM OPEN FLAME!"
+ desc = "A friendly plasma-being in plush form. WARNING: KEEP AWAY FROM OPEN FLAME!"
icon_state = "plushie_plasma"
rare_hug_sound = 'sound/voice/plas_rattle.ogg'
rare_hug_word = "Rattle!"
@@ -1525,6 +1485,7 @@
attack_verb = list("struck", "hit", "bashed")
var/bullets_left = 0
var/max_shots = 6
+ var/cursed_shot = FALSE
/obj/item/toy/russian_revolver/suicide_act(mob/user)
user.visible_message("[user] quickly loads six bullets into [src]'s cylinder and points it at [user.p_their()] head before pulling the trigger! It looks like [user.p_theyre()] trying to commit suicide! ")
@@ -1577,6 +1538,11 @@
playsound(src, 'sound/weapons/gunshots/gunshot_strong.ogg', 50, 1)
user.visible_message("[src] goes off! ")
post_shot(user)
+ if(cursed_shot)
+ var/obj/item/soulstone/anybody/SS = new /obj/item/soulstone/anybody(get_turf(src))
+ SS.transfer_soul("FORCE", user)
+ user.death(FALSE)
+ user.visible_message("[user.name]'s soul is captured by [src]! ", "You've lost the gamble! Your soul is forfeit! ")
user.apply_damage(300, BRUTE, zone, sharp = TRUE, used_weapon = "Self-inflicted gunshot wound to the [zone].")
user.bleed(BLOOD_VOLUME_NORMAL)
user.death() // Just in case
@@ -1587,66 +1553,10 @@
to_chat(user, "[src] needs to be reloaded. ")
return FALSE
-/obj/item/toy/russian_revolver/trick_revolver
- name = "\improper .357 revolver"
- desc = "A suspicious revolver. Uses .357 ammo."
- icon_state = "revolver"
- max_shots = 1
- var/fake_bullets = 0
-
-/obj/item/toy/russian_revolver/trick_revolver/New()
- ..()
- fake_bullets = rand(2, 7)
-
-/obj/item/toy/russian_revolver/trick_revolver/examine(mob/user) //Sneaky sneaky
- . = ..()
- . += "Use a pen on it to rename it. "
- . += "Has [fake_bullets] round\s remaining."
- . += "Use in hand to empty the gun's ammo reserves. "
- . += "[fake_bullets] of those are live rounds."
- . += "You can Alt-Click [src] to spin it's barrel. "
-
-/obj/item/toy/russian_revolver/trick_revolver/post_shot(user)
- to_chat(user, "[src] did look pretty dodgey! ")
- SEND_SOUND(user, sound('sound/misc/sadtrombone.ogg')) //HONK
-
-/obj/item/toy/russian_revolver/trick_revolver/AltClick(mob/user)
- if(user.stat || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user))
- return
-
- to_chat(user, "You go to spin the chamber... and it goes off in your face! ")
- shoot_gun(user)
-
-/obj/item/toy/russian_revolver/trick_revolver/activate_self(mob/user)
- if(..())
- return
- if(!bullets_left) //You can re-arm the trap...
- user.visible_message("[user] loads a bullet into [src]'s cylinder before spinning it. ")
- spin_cylinder()
- else //But if you try to spin it to see if it was fake...
- user.visible_message("[user] tries to empty [src], but it goes off in their face! ")
- shoot_gun(user)
-
-/obj/item/toy/russian_revolver/trick_revolver/attack_by(obj/item/attacking, mob/user, params)
- if(..())
- return FINISH_ATTACK
- if(is_pen(attacking))
- to_chat(user, "You go to write on [src].. and it goes off in your face! ")
- shoot_gun(user)
- if(istype(attacking, /obj/item/ammo_casing/a357))
- to_chat(user, "You go to load a bullet into [src].. and it goes off in your face! ")
- shoot_gun(user)
- if(istype(attacking, /obj/item/ammo_box/a357))
- to_chat(user, "You go to speedload [src].. and it goes off in your face! ")
- shoot_gun(user)
-
-/obj/item/toy/russian_revolver/trick_revolver/run_pointed_on_item(mob/pointer_mob, atom/target_atom)
- if(target_atom != src)
- pointer_mob.visible_message("[pointer_mob] points [src] at- and [src] goes off in their hand! ")
- shoot_gun(pointer_mob)
- return TRUE
- return ..()
-
+/obj/item/toy/russian_revolver/soul
+ name = "cursed russian revolver"
+ desc = "To play with this revolver requires wagering your very soul."
+ cursed_shot = TRUE
/*
* Rubber Chainsaw
*/
@@ -1689,16 +1599,6 @@
*/
-/obj/random/figure
- name = "Random Action Figure"
- desc = "This is a random toy action figure."
- icon = 'icons/obj/toy.dmi'
- icon_state = "nuketoy"
-
-/obj/random/figure/item_to_spawn()
- return pick(subtypesof(/obj/item/toy/figure/crew))
-
-
/obj/item/toy/figure
name = "Non-Specific Action Figure action figure"
desc = "A \"Space Life\" brand... wait, what the hell is this thing?"
@@ -2015,15 +1915,6 @@
to_chat(user, "You play with [src]. ")
playsound(src, 'sound/mecha/mechstep.ogg', 20, TRUE)
-/obj/random/mech
- name = "Random Mech Prize"
- desc = "This is a random prize."
- icon = 'icons/obj/toy.dmi'
- icon_state = "ripleytoy"
-
-/obj/random/mech/item_to_spawn()
- return pick(subtypesof(/obj/item/toy/figure/mech)) //exclude the base type.
-
/obj/item/toy/figure/mech/ripley
name = "toy Ripley"
desc = "Mini-Mecha action figure! Collect them all! 1/11. This one is a ripley, a mining and engineering mecha."
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 38416775f880..f869ea3c0660 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -11,6 +11,8 @@
desc = "A card."
icon = 'icons/obj/card.dmi'
w_class = WEIGHT_CLASS_TINY
+ slot_flags = ITEM_SLOT_ID
+
new_attack_chain = TRUE
var/associated_account_number = 0
@@ -29,6 +31,7 @@
icon_state = "emag"
item_state = "card-id"
origin_tech = "magnets=2;syndicate=2"
+ prefered_slot_flags = ITEM_SLOT_BOTH_POCKETS
/obj/item/card/emag
desc = "It's a card with a magnetic strip attached to some circuitry."
@@ -38,6 +41,7 @@
origin_tech = "magnets=2;syndicate=2"
flags = NOBLUDGEON
flags_2 = NO_MAT_REDEMPTION_2
+ prefered_slot_flags = ITEM_SLOT_BOTH_POCKETS
/obj/item/card/emag/pre_attack(atom/target, mob/living/user, params)
if(..() || ismob(target))
@@ -71,6 +75,7 @@
origin_tech = "magnets=2;syndicate=2"
flags = NOBLUDGEON
flags_2 = NO_MAT_REDEMPTION_2
+ prefered_slot_flags = ITEM_SLOT_BOTH_POCKETS
/obj/item/card/cmag/Initialize(mapload)
. = ..()
@@ -95,7 +100,6 @@
var/total_mining_points = 0
var/list/access = list()
var/registered_name = "Unknown" // The name registered_name on the card
- slot_flags = ITEM_SLOT_ID
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 100, ACID = 100)
resistance_flags = FIRE_PROOF | ACID_PROOF
var/untrackable // Can not be tracked by AI's
@@ -620,6 +624,13 @@
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_HEADS_VAULT, ACCESS_MINING_STATION,
ACCESS_CLOWN, ACCESS_MIME, ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_EXPEDITION, ACCESS_WEAPONS, ACCESS_NTREP)
+/obj/item/card/id/nct
+ name = "\improper Nanotrasen Career Trainer ID"
+ registered_name = "Nanotrasen Career Trainer"
+ icon_state = "nctrainer"
+ access = list(ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_CARGO, ACCESS_CONSTRUCTION, ACCESS_COURT, ACCESS_EVA, ACCESS_TRAINER, ACCESS_MAINT_TUNNELS,
+ ACCESS_MEDICAL, ACCESS_RESEARCH, ACCESS_SEC_DOORS, ACCESS_THEATRE, ACCESS_INTERNAL_AFFAIRS)
+
/obj/item/card/id/blueshield
name = "Blueshield ID"
registered_name = "Blueshield"
@@ -776,6 +787,55 @@
/obj/item/card/id/data
icon_state = "data"
+/obj/item/card/id/nct_data_chip
+ name = "\improper NCT Trainee Access Chip"
+ desc = "A small electronic access token that allows its user to copy the access of their Trainee. Only accessible by NT Career Trainers!"
+ icon_state = "nct_chip"
+ assignment = "Nanotrasen Career Trainer"
+ var/registered_user = null
+ var/trainee = null
+
+/obj/item/card/id/nct_data_chip/examine(mob/user)
+ . = ..()
+ . += " The current registered Trainee is: [trainee] "
+ . += "Use in hand to reset the assigned trainee and access. "
+ . += "The datachip is unable to copy any access that has been deemed high-risk by Nanotrasen Officials. That includes some, if not most, head related access permissions. "
+
+/obj/item/card/id/nct_data_chip/activate_self(mob/user)
+ if(..())
+ return
+ if(!trainee)
+ return
+
+ var/response = tgui_alert(user, "Would you like to remove [trainee] as your current active Trainee?", "Choose", list("Yes", "No"))
+ if(response == "Yes")
+ trainee = null
+ icon_state = "nct_chip"
+ access = list()
+
+/obj/item/card/id/nct_data_chip/interact_with_atom(atom/target, mob/living/user, list/modifiers)
+ if(!istype(target, /obj/item/card/id))
+ return
+ if(!(isliving(user) && user.mind))
+ return
+
+ if(user.mind.current != registered_user)
+ to_chat(user, "You do not have access to use this NCT Trainee Access Chip! ")
+ return
+
+ if(istype(target, /obj/item/card/id/ert))
+ to_chat(user, "The chip's screen blinks red as you attempt scanning this ID. ")
+ return
+
+ var/obj/item/card/id/I = target
+ to_chat(user, "The chip's microscanners activate as you scan [I.registered_name]'s ID, copying its access. ")
+ access = I.access.Copy()
+ access.Remove(ACCESS_AI_UPLOAD, ACCESS_ARMORY, ACCESS_CAPTAIN, ACCESS_CE, ACCESS_RD, ACCESS_HOP, ACCESS_QM, ACCESS_CMO, ACCESS_HOS, ACCESS_NTREP,
+ ACCESS_MAGISTRATE, ACCESS_BLUESHIELD, ACCESS_HEADS_VAULT, ACCESS_KEYCARD_AUTH, ACCESS_RC_ANNOUNCE,
+ ACCESS_CHANGE_IDS, ACCESS_MINISAT)
+ trainee = I.registered_name
+ icon_state = "nct_chip_active"
+
// Decals
/obj/item/id_decal
name = "identification card decal"
@@ -829,10 +889,10 @@
override_name = 1
/proc/get_station_card_skins()
- return list("data","id","gold","silver","security","detective","warden","internalaffairsagent","medical","coroner","chemist","virologist","paramedic","psychiatrist","geneticist","research","roboticist","quartermaster","cargo","shaftminer","engineering","atmostech","captain","HoP","HoS","CMO","RD","CE","assistant","clown","mime","botanist","librarian","chaplain","bartender","chef","janitor","rainbow","prisoner","explorer")
+ return list("data", "id", "gold", "silver", "security", "detective", "warden", "internalaffairsagent", "medical", "coroner", "chemist", "virologist", "paramedic", "psychiatrist", "geneticist", "research", "roboticist", "quartermaster", "cargo", "shaftminer", "engineering", "atmostech", "captain", "HoP", "HoS", "CMO", "RD", "CE", "assistant", "clown", "mime", "botanist", "librarian", "chaplain", "bartender", "chef", "janitor", "rainbow", "prisoner", "explorer", "nct")
/proc/get_centcom_card_skins()
- return list("centcom","blueshield","magistrate","ntrep","ERT_leader","ERT_empty","ERT_security","ERT_engineering","ERT_medical","ERT_janitorial","ERT_paranormal","deathsquad","commander","syndie","TDred","TDgreen")
+ return list("centcom", "blueshield", "magistrate", "ntrep", "ERT_leader", "ERT_empty", "ERT_security", "ERT_engineering", "ERT_medical", "ERT_janitorial", "ERT_paranormal", "deathsquad", "commander", "syndie", "TDred", "TDgreen")
/proc/get_all_card_skins()
return get_station_card_skins() + get_centcom_card_skins()
@@ -853,6 +913,8 @@
return "Security Officer"
if("internalaffairsagent")
return "Internal Affairs Agent"
+ if("nct")
+ return "Nanotrasen Career Trainer"
if("atmostech")
return "Life Support Specialist"
if("HoP")
diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm
index bdaaceb28fe9..6d404496973d 100644
--- a/code/game/objects/items/weapons/cigs.dm
+++ b/code/game/objects/items/weapons/cigs.dm
@@ -269,7 +269,7 @@ LIGHTERS ARE IN LIGHTERS.DM
// There used to be a species check here, but synthetics can smoke now
is_being_smoked = TRUE
if(location)
- location.hotspot_expose(700, 5)
+ location.hotspot_expose(700, 1)
if(reagents && reagents.total_volume) // check if it has any reagents at all
if(is_being_smoked) // if it's being smoked, transfer reagents to the mob
var/mob/living/carbon/C = loc
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index a8f28a7eab7e..9932bdbe4884 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -54,7 +54,12 @@
qdel(src)
/obj/item/a_gift/attack_self__legacy__attackchain(mob/M as mob)
- var/gift_type = pick(/obj/item/sord,
+ var/gift_type = pick(
+ /obj/effect/spawner/random/toy/carp_plushie,
+ /obj/effect/spawner/random/plushies,
+ /obj/effect/spawner/random/toy/action_figure,
+ /obj/effect/spawner/random/toy/mech_figure,
+ /obj/item/sord,
/obj/item/storage/wallet,
/obj/item/storage/photo_album,
/obj/item/storage/box/snappops,
@@ -76,7 +81,6 @@
/obj/item/gun/projectile/shotgun/toy/crossbow,
/obj/item/gun/projectile/revolver/capgun,
/obj/item/toy/katana,
- /obj/random/mech,
/obj/item/toy/spinningtoy,
/obj/item/toy/sword,
/obj/item/food/grown/ambrosia/deus,
@@ -85,10 +89,7 @@
/obj/item/instrument/violin,
/obj/item/instrument/guitar,
/obj/item/storage/belt/utility/full,
- /obj/item/clothing/accessory/horrible,
- /obj/random/carp_plushie,
- /obj/random/plushie,
- /obj/random/figure,
+ /obj/item/clothing/neck/tie/horrible,
/obj/item/deck/cards,
/obj/item/deck/cards/tiny,
/obj/item/deck/unum,
diff --git a/code/game/objects/items/weapons/grenades/clusterbuster.dm b/code/game/objects/items/weapons/grenades/clusterbuster.dm
index 054f3f97b7a7..ce1e42e9181f 100644
--- a/code/game/objects/items/weapons/grenades/clusterbuster.dm
+++ b/code/game/objects/items/weapons/grenades/clusterbuster.dm
@@ -173,21 +173,16 @@
desc = "No matter what, do not EVER use this."
payload = /obj/singularity
-/obj/item/grenade/clusterbuster/tools
- name = "\improper Engineering Deployment Platfom"
- desc = "For the that time when gearing up was just too hard."
- payload = /obj/random/tech_supply
-
-/obj/item/grenade/clusterbuster/tide
- name = "\improper Quick Repair Grenade"
- desc = "An assistant's every dream."
- payload = /obj/random/tool
-
/obj/item/grenade/clusterbuster/toys
name = "\improper Toy Delivery System"
desc = "Who needs skill at arcades anyway?"
payload = /obj/item/toy/random
+/obj/item/grenade/clusterbuster/random_toys
+ name = "\improper Toy Delivery System"
+ desc = "Who needs skill at arcades anyway?"
+ payload = /obj/effect/spawner/random/toy/clusterbuster
+
/obj/item/grenade/clusterbuster/banquet
name = "\improper Bork Bork Bonanza"
desc = "Bork bork bork."
diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm
index a1179c681676..0b567a426af7 100644
--- a/code/game/objects/items/weapons/holy_weapons.dm
+++ b/code/game/objects/items/weapons/holy_weapons.dm
@@ -21,9 +21,12 @@
var/list/fluff_transformations = list()
/// Extra 'Holy' burn damage for ERT null rods
var/sanctify_force = 0
+ /// The antimagic type the nullrod has.
+ var/antimagic_type = MAGIC_RESISTANCE_HOLY
/obj/item/nullrod/Initialize(mapload)
. = ..()
+ AddComponent(/datum/component/anti_magic, antimagic_type)
if(!length(variant_names))
for(var/I in typesof(/obj/item/nullrod))
var/obj/item/nullrod/rod = I
@@ -37,11 +40,6 @@
/obj/item/nullrod/attack__legacy__attackchain(mob/M, mob/living/carbon/user)
..()
- var/datum/antagonist/vampire/V = M.mind?.has_antag_datum(/datum/antagonist/vampire)
- if(ishuman(M) && V && HAS_MIND_TRAIT(M, TRAIT_HOLY))
- if(!V.get_ability(/datum/vampire_passive/full))
- to_chat(M, "The nullrod's power interferes with your own! ")
- V.adjust_nullification(30 + sanctify_force, 15 + sanctify_force)
if(!sanctify_force)
return
if(isliving(M))
@@ -593,6 +591,16 @@
to_chat(user, "Your prayer to [SSticker.Bible_deity_name] was interrupted. ")
praying = FALSE
+
+/obj/item/nullrod/nazar
+ name = "nazar"
+ icon_state = "nazar"
+ item_state = null
+ desc = "A set of glass beads and amulet, which has been forged to provide powerful magic protection to the wielder."
+ force = 0
+ throwforce = 0
+ antimagic_type = ALL
+
/obj/item/nullrod/salt
name = "Holy Salt"
icon = 'icons/obj/food/containers.dmi'
diff --git a/code/game/objects/items/weapons/lighters.dm b/code/game/objects/items/weapons/lighters.dm
index 1f1d539a9edb..96f06a1766bd 100644
--- a/code/game/objects/items/weapons/lighters.dm
+++ b/code/game/objects/items/weapons/lighters.dm
@@ -135,7 +135,7 @@
/obj/item/lighter/process()
var/turf/location = get_turf(src)
if(location)
- location.hotspot_expose(700, 5)
+ location.hotspot_expose(700, 1)
return
/obj/item/lighter/update_icon_state()
@@ -263,7 +263,7 @@
if(smoketime < 1)
matchburnout()
if(location)
- location.hotspot_expose(700, 5)
+ location.hotspot_expose(700, 1)
return
/obj/item/match/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE)
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index 23cf610f5cf0..7e43d87e2a64 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -996,6 +996,39 @@
title = "Science Standard Operating Procedures"
wiki_article_title = "Standard_Operating_Procedure_(Science)"
+/obj/item/book/manual/sop_ntinstructor
+ name = "Career Trainer SOP"
+ desc = "A set of guidelines for Instructors."
+ icon_state = "sop_legal"
+ author = "Nanotrasen"
+ title = "Instructor SOP"
+ pages = list({"
+
+
+
+
+
+ Instructor SOP
+
+
+ NT Career Trainers are to wear their company-provided uniform and jacket OR their issued beret/hat at all times while on duty. They are free to choose a beret that best matches their primary field of knowledge if they so desire. Additionally, Identifying equipment SHOULD not be distributed to crew members.
+ NT Career Trainers are to be available to all Crewmembers, regardless of Department. You may not only assist a singular Department.
+ NT Career Trainers are not to do a Trainee's work for them.
+ NT Career Trainers are to use NCT Data Chips only to acquire the access necessary for providing training. They are not to use said access for other purposes.
+ In the event of a lost or stolen NCT Data Chip, the NT Career Trainer is to report the incident to their local Nanotrasen Representative or Station Captain.
+ NT Career Trainers are permitted to carry a flash for self-defense.
+
+
+
+ "})
+
//* MANUAL SPAWNERS *// (and space Law)
/obj/item/book/manual/random
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index d732db1d9fce..724e387b6d1c 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -162,6 +162,7 @@
icon_state = "satchel"
origin_tech = "engineering=2"
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BOTH_POCKETS
+ prefered_slot_flags = ITEM_SLOT_BOTH_POCKETS
w_class = WEIGHT_CLASS_NORMAL
storage_slots = 10
max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class
@@ -230,6 +231,7 @@
storage_slots = 40 //the number of plant pieces it can carry.
max_combined_w_class = 40 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class
max_w_class = WEIGHT_CLASS_NORMAL
+ prefered_slot_flags = ITEM_SLOT_BOTH_POCKETS
w_class = WEIGHT_CLASS_TINY
can_hold = list(
/obj/item/seeds,
@@ -444,6 +446,7 @@
desc = "A bag for storing pills, patches, and bottles."
storage_slots = 50
max_combined_w_class = 200
+ prefered_slot_flags = ITEM_SLOT_BOTH_POCKETS
w_class = WEIGHT_CLASS_TINY
can_hold = list(/obj/item/reagent_containers/pill,
/obj/item/reagent_containers/patch,
@@ -461,6 +464,7 @@
desc = "A bag for the safe transportation and disposal of biowaste and other biological materials."
storage_slots = 25
max_combined_w_class = 200
+ prefered_slot_flags = ITEM_SLOT_BOTH_POCKETS
w_class = WEIGHT_CLASS_TINY
can_hold = list(/obj/item/slime_extract, /obj/item/food/monkeycube,
/obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/beaker,
@@ -479,6 +483,7 @@
item_state = "mailbag"
storage_slots = 14
max_combined_w_class = 28
+ prefered_slot_flags = ITEM_SLOT_BOTH_POCKETS
w_class = WEIGHT_CLASS_TINY
can_hold = list(/obj/item/envelope, /obj/item/stamp, /obj/item/pen, /obj/item/paper, /obj/item/mail_scanner)
resistance_flags = FLAMMABLE
@@ -494,6 +499,7 @@
item_state = "construction_bag"
storage_slots = 30
max_combined_w_class = 60
+ prefered_slot_flags = ITEM_SLOT_BOTH_POCKETS
w_class = WEIGHT_CLASS_TINY
can_hold = list(/obj/item/airlock_electronics, /obj/item/firelock_electronics, /obj/item/firealarm_electronics, /obj/item/apc_electronics, /obj/item/airalarm_electronics, /obj/item/camera_assembly, /obj/item/stock_parts/cell, /obj/item/circuitboard, /obj/item/stack/cable_coil)
resistance_flags = FLAMMABLE
@@ -509,6 +515,7 @@
icon_state = "satchel"
origin_tech = "engineering=2"
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BOTH_POCKETS
+ prefered_slot_flags = ITEM_SLOT_BOTH_POCKETS
w_class = WEIGHT_CLASS_NORMAL
storage_slots = 15
max_combined_w_class = 60
diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm
index d29ba66b3456..402d6ec2d417 100644
--- a/code/game/objects/items/weapons/storage/briefcase.dm
+++ b/code/game/objects/items/weapons/storage/briefcase.dm
@@ -22,7 +22,7 @@
/obj/item/storage/briefcase/sniperbundle/populate_contents()
new /obj/item/gun/projectile/automatic/sniper_rifle/syndicate(src)
- new /obj/item/clothing/accessory/red(src)
+ new /obj/item/clothing/neck/tie/red(src)
new /obj/item/clothing/under/syndicate/sniper(src)
new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src)
new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src)
diff --git a/code/game/objects/items/weapons/storage/garment.dm b/code/game/objects/items/weapons/storage/garment.dm
index a56fdaf3d71f..28e0b39d3477 100644
--- a/code/game/objects/items/weapons/storage/garment.dm
+++ b/code/game/objects/items/weapons/storage/garment.dm
@@ -39,7 +39,7 @@
new /obj/item/clothing/suit/armor/vest/capcarapace/jacket/tunic(src)
new /obj/item/clothing/suit/armor/vest/capcarapace/coat(src)
new /obj/item/clothing/suit/armor/vest/capcarapace/coat/white(src)
- new /obj/item/clothing/suit/mantle/armor/captain(src)
+ new /obj/item/clothing/neck/cloak/captain_mantle(src)
new /obj/item/clothing/under/rank/captain(src)
new /obj/item/clothing/under/rank/captain/parade(src)
new /obj/item/clothing/under/rank/captain/dress(src)
@@ -60,7 +60,7 @@
new /obj/item/clothing/head/hop(src)
new /obj/item/clothing/head/beret/hop(src)
new /obj/item/clothing/neck/cloak/head_of_personnel(src)
- new /obj/item/clothing/suit/mantle/armor/hop(src)
+ new /obj/item/clothing/neck/cloak/hop_mantle(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/suit/hopcoat(src)
new /obj/item/clothing/under/rank/civilian/hop(src)
@@ -88,7 +88,7 @@
new /obj/item/clothing/neck/cloak/head_of_security(src)
new /obj/item/clothing/suit/armor/hos(src)
new /obj/item/clothing/suit/armor/hos/alt(src)
- new /obj/item/clothing/suit/mantle/armor(src)
+ new /obj/item/clothing/neck/cloak/hos_mantle(src)
new /obj/item/clothing/under/rank/security/head_of_security(src)
new /obj/item/clothing/under/rank/security/formal/head_of_security(src)
new /obj/item/clothing/under/rank/security/head_of_security/corporate(src)
@@ -107,7 +107,7 @@
new /obj/item/clothing/neck/cloak/research_director(src)
new /obj/item/clothing/under/rank/rnd/research_director(src)
new /obj/item/clothing/suit/storage/labcoat/rd(src)
- new /obj/item/clothing/suit/mantle/labcoat(src)
+ new /obj/item/clothing/neck/cloak/rd_mantle(src)
new /obj/item/clothing/suit/storage/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/gloves/color/latex(src)
@@ -133,7 +133,7 @@
new /obj/item/clothing/under/rank/medical/scrubs/green(src)
new /obj/item/clothing/under/rank/medical/scrubs/purple(src)
new /obj/item/clothing/suit/storage/labcoat/cmo(src)
- new /obj/item/clothing/suit/mantle/labcoat/chief_medical_officer(src)
+ new /obj/item/clothing/neck/cloak/cmo_mantle(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/shoes/brown (src)
new /obj/item/clothing/gloves/color/latex/nitrile(src)
@@ -151,7 +151,7 @@
new /obj/item/clothing/neck/cloak/chief_engineer(src)
new /obj/item/clothing/under/rank/engineering/chief_engineer(src)
new /obj/item/clothing/under/rank/engineering/chief_engineer/skirt(src)
- new /obj/item/clothing/suit/mantle/chief_engineer(src)
+ new /obj/item/clothing/neck/cloak/ce_mantle(src)
new /obj/item/clothing/suit/storage/hazardvest/ce(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/glasses/welding/superior(src)
@@ -214,7 +214,7 @@
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/clothing/glasses/hud/health/sunglasses(src)
new /obj/item/clothing/glasses/hud/skills/sunglasses(src)
- new /obj/item/clothing/accessory/blue(src)
+ new /obj/item/clothing/neck/tie/blue(src)
new /obj/item/clothing/head/helmet/space/plasmaman/blueshield(src)
new /obj/item/clothing/under/plasmaman/blueshield(src)
@@ -234,7 +234,7 @@
new /obj/item/clothing/neck/cloak/quartermaster(src)
new /obj/item/clothing/head/hardhat/orange(src)
new /obj/item/clothing/suit/qmcoat(src)
- new /obj/item/clothing/suit/mantle/qm(src)
+ new /obj/item/clothing/neck/cloak/qm_mantle(src)
new /obj/item/clothing/suit/storage/hazardvest/qm(src)
new /obj/item/clothing/gloves/color/black(src)
new /obj/item/tank/internals/emergency_oxygen/double(src)
@@ -273,7 +273,7 @@
new /obj/item/clothing/head/det_hat(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/suit/armor/vest/det_suit(src)
- new /obj/item/clothing/accessory/black(src)
+ new /obj/item/clothing/neck/tie/black(src)
new /obj/item/clothing/accessory/holster/armpit(src)
new /obj/item/clothing/glasses/sunglasses/yeah(src)
@@ -291,14 +291,9 @@
new /obj/item/clothing/suit/witchhunter(src)
new /obj/item/clothing/head/witchhunter_hat(src)
new /obj/item/clothing/suit/holidaypriest(src)
- new /obj/item/clothing/under/dress/wedding/bride_white(src)
new /obj/item/clothing/head/helmet/riot/knight/templar(src)
new /obj/item/clothing/suit/armor/riot/knight/templar(src)
new /obj/item/clothing/suit/storage/labcoat(src)
- new /obj/item/clothing/gloves/ring/silver(src)
- new /obj/item/clothing/gloves/ring/silver(src)
- new /obj/item/clothing/gloves/ring/gold(src)
- new /obj/item/clothing/gloves/ring/gold(src)
new /obj/item/clothing/head/helmet/space/plasmaman/chaplain(src)
new /obj/item/clothing/under/plasmaman/chaplain(src)
@@ -315,7 +310,7 @@
new /obj/item/clothing/shoes/laceup(src)
new /obj/item/clothing/glasses/hud/health(src)
new /obj/item/clothing/glasses/hud/skills(src)
- new /obj/item/clothing/accessory/blue(src)
+ new /obj/item/clothing/neck/tie/blue(src)
new /obj/item/clothing/head/helmet/space/plasmaman(src)
new /obj/item/clothing/under/plasmaman(src)
diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm
index a866e4b14488..82d882da36a5 100644
--- a/code/game/objects/items/weapons/storage/toolbox.dm
+++ b/code/game/objects/items/weapons/storage/toolbox.dm
@@ -90,12 +90,12 @@
new /obj/item/wirecutters(src)
new /obj/item/t_scanner(src)
new /obj/item/crowbar(src)
- new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor)
- new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor)
+ new /obj/item/stack/cable_coil(src, 30, pickedcolor)
+ new /obj/item/stack/cable_coil(src, 30, pickedcolor)
if(prob(5))
new /obj/item/clothing/gloves/color/yellow(src)
else
- new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor)
+ new /obj/item/stack/cable_coil(src, 30, pickedcolor)
/obj/item/storage/toolbox/syndicate
name = "suspicious looking toolbox"
@@ -132,7 +132,7 @@
new /obj/item/wrench(src)
new /obj/item/weldingtool(src)
new /obj/item/crowbar(src)
- new /obj/item/stack/cable_coil(src, 30, paramcolor = pickedcolor)
+ new /obj/item/stack/cable_coil(src, 30, pickedcolor)
new /obj/item/wirecutters(src)
new /obj/item/multitool(src)
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index 6aca07ab1cfd..8092c6ab84b4 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -154,7 +154,7 @@
/obj/item/bio_chip_implanter/shock, // 50TC
/obj/item/dnainjector/telemut/darkbundle, // 0TC
/obj/item/clothing/suit/hooded/chaplain_hoodie, // 0TC
- /obj/item/clothing/glasses/meson/engine/tray, // 0TC
+ /obj/item/clothing/glasses/meson/engine/atmos, // 0TC
/obj/item/clothing/mask/chameleon/voice_change, // 10TC
/obj/item/card/id/syndicate, // 10TC
/obj/item/clothing/shoes/chameleon/noslip, // 10TC
@@ -222,7 +222,7 @@
/obj/item/encryptionkey/syndicate, // 10TC
/obj/item/clothing/under/syndicate/combat, //0TC
/obj/item/clothing/accessory/holster, // 0TC
- /obj/item/clothing/accessory/scarf/red, //0TC
+ /obj/item/clothing/neck/scarf/red, //0TC
/obj/item/clothing/head/beret, // 0TC
/obj/item/clothing/gloves/combat, // 0TC
/obj/item/clothing/shoes/combat) // 0TC
@@ -455,7 +455,7 @@
/obj/item/storage/box/syndie_kit/safecracking/populate_contents()
new /obj/item/clothing/gloves/color/latex/nitrile(src)
new /obj/item/clothing/mask/balaclava(src)
- new /obj/item/clothing/accessory/stethoscope(src)
+ new /obj/item/clothing/neck/stethoscope(src)
new /obj/item/book/manual/wiki/hacking(src)
/obj/item/storage/box/syndie_kit/chameleon
diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm
index 01ad9ed3764a..13494689a6fe 100644
--- a/code/game/objects/items/weapons/tanks/watertank.dm
+++ b/code/game/objects/items/weapons/tanks/watertank.dm
@@ -328,7 +328,7 @@
/obj/effect/nanofrost_container/proc/Smoke()
var/datum/effect_system/smoke_spread/freezing/S = new
- S.set_up(amount = 6, only_cardinals = FALSE, source = loc, desired_direction = null, chemicals = null, blasting = TRUE)
+ S.set_up(amount = 6, only_cardinals = FALSE, source = loc)
S.start()
new /obj/effect/decal/cleanable/flour/nanofrost(get_turf(src))
playsound(src, 'sound/effects/bamf.ogg', 100, TRUE)
diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm
index d29ae94b95cb..cdc924381720 100644
--- a/code/game/objects/items/weapons/teleportation.dm
+++ b/code/game/objects/items/weapons/teleportation.dm
@@ -72,6 +72,7 @@
turfs += T
if(length(turfs))
L["None (Dangerous)"] = pick(turfs)
+ flick("hand_tele_activated", src)
var/t1 = tgui_input_list(user, "Please select a teleporter to lock in on.", "Hand Teleporter", L)
if(!t1 || (!user.is_in_active_hand(src) || user.stat || user.restrained()))
return
diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm
index 6995d3ad4426..835b69599391 100644
--- a/code/game/objects/items/weapons/vending_items.dm
+++ b/code/game/objects/items/weapons/vending_items.dm
@@ -223,3 +223,7 @@
/obj/item/vending_refill/lawdrobe
machine_name = "LawDrobe"
icon_state = "refill_clothes"
+
+/obj/item/vending_refill/traindrobe
+ machine_name = "TrainDrobe"
+ icon_state = "refill_clothes"
diff --git a/code/game/objects/mail.dm b/code/game/objects/mail.dm
index 57397c00ef0a..25843fd4cbca 100644
--- a/code/game/objects/mail.dm
+++ b/code/game/objects/mail.dm
@@ -198,7 +198,7 @@
/obj/item/toy/figure/crew/iaa,
/obj/item/toy/figure/crew/dsquad,
/obj/item/storage/box/scratch_cards)
- job_list = list("Captain", "Magistrate", "Nanotrasen Representative", "Blueshield", "Internal Affairs Agent")
+ job_list = list("Captain", "Magistrate", "Nanotrasen Representative", "Blueshield", "Internal Affairs Agent", "Nanotrasen Career Trainer")
/obj/item/envelope/misc
possible_contents = list(/obj/item/clothing/under/misc/assistantformal,
diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm
deleted file mode 100644
index 0b18507cd002..000000000000
--- a/code/game/objects/random/random.dm
+++ /dev/null
@@ -1,110 +0,0 @@
-// TODO: Refactor these into spawners
-/obj/random
- name = "Random Object"
- desc = "This item type is used to spawn random objects at round-start."
- icon = 'icons/misc/mark.dmi'
- icon_state = "rup"
- var/spawn_nothing_percentage = 0 // this variable determines the likelyhood that this random object will not spawn anything
-
-
-// creates a new object and deletes itself
-/obj/random/Initialize(mapload)
- . = ..()
- if(!prob(spawn_nothing_percentage))
- spawn_item()
- return INITIALIZE_HINT_QDEL
-
-
-// this function should return a specific item to spawn
-/obj/random/proc/item_to_spawn()
- return
-
-
-// creates the random item
-/obj/random/proc/spawn_item()
- var/build_path = item_to_spawn()
- return (new build_path(src.loc))
-
-
-/obj/random/tool
- name = "Random Tool"
- desc = "This is a random tool."
- icon = 'icons/obj/tools.dmi'
- icon_state = "random_tool"
-
-/obj/random/tool/item_to_spawn()
- return pick(/obj/item/screwdriver,\
- /obj/item/wirecutters,\
- /obj/item/weldingtool,\
- /obj/item/crowbar,\
- /obj/item/wrench,\
- /obj/item/flashlight)
-
-
-/obj/random/technology_scanner
- name = "Random Scanner"
- desc = "This is a random technology scanner."
- icon = 'icons/obj/device.dmi'
- icon_state = "atmos"
-
-/obj/random/technology_scanner/item_to_spawn()
- return pick(prob(5);/obj/item/t_scanner,\
- prob(2);/obj/item/radio/intercom,\
- prob(5);/obj/item/analyzer)
-
-
-/obj/random/powercell
- name = "Random Powercell"
- desc = "This is a random powercell."
- icon = 'icons/obj/power.dmi'
- icon_state = "cell"
-
-/obj/random/powercell/item_to_spawn()
- return pick(prob(10);/obj/item/stock_parts/cell/crap,\
- prob(40);/obj/item/stock_parts/cell,\
- prob(40);/obj/item/stock_parts/cell/high,\
- prob(9);/obj/item/stock_parts/cell/super,\
- prob(1);/obj/item/stock_parts/cell/hyper)
-
-/obj/random/bomb_supply
- name = "Bomb Supply"
- desc = "This is a random bomb supply."
- icon = 'icons/obj/assemblies/new_assemblies.dmi'
- icon_state = "signaller"
-
-/obj/random/bomb_supply/item_to_spawn()
- return pick(/obj/item/assembly/igniter,\
- /obj/item/assembly/prox_sensor,\
- /obj/item/assembly/signaler)
-
-
-/obj/random/toolbox
- name = "Random Toolbox"
- desc = "This is a random toolbox."
- icon = 'icons/obj/storage.dmi'
- icon_state = "red"
-
-/obj/random/toolbox/item_to_spawn()
- return pick(prob(3);/obj/item/storage/toolbox/mechanical,\
- prob(2);/obj/item/storage/toolbox/electrical,\
- prob(1);/obj/item/storage/toolbox/emergency)
-
-/obj/random/tech_supply
- name = "Random Tech Supply"
- desc = "This is a random piece of technology supplies."
- icon = 'icons/obj/power.dmi'
- icon_state = "cell"
- spawn_nothing_percentage = 50
-
-/obj/random/tech_supply/item_to_spawn()
- return pick(prob(3);/obj/random/powercell,\
- prob(2);/obj/random/technology_scanner,\
- prob(1);/obj/item/stack/package_wrap,\
- prob(2);/obj/random/bomb_supply,\
- prob(1);/obj/item/extinguisher,\
- prob(1);/obj/item/clothing/gloves/color/fyellow,\
- prob(3);/obj/item/stack/cable_coil,\
- prob(2);/obj/random/toolbox,\
- prob(2);/obj/item/storage/belt/utility,\
- prob(5);/obj/random/tool,\
- prob(3);/obj/item/stack/tape_roll)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering_lockers.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering_lockers.dm
index 6e86905ddbaf..6703f3bbe317 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering_lockers.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering_lockers.dm
@@ -22,6 +22,7 @@
new /obj/item/holosign_creator/engineering(src)
new /obj/item/flash(src)
new /obj/item/clothing/glasses/meson/engine(src)
+ new /obj/item/clothing/glasses/meson/engine/atmos(src)
new /obj/item/door_remote/chief_engineer(src)
new /obj/item/rpd(src)
new /obj/item/reagent_containers/drinks/mug/ce(src)
@@ -119,6 +120,6 @@
new /obj/item/watertank/atmos(src)
new /obj/item/clothing/suit/fire/firefighter/atmos(src)
new /obj/item/clothing/head/hardhat/atmos(src)
- new /obj/item/clothing/glasses/meson/engine(src)
+ new /obj/item/clothing/glasses/meson/engine/atmos(src)
new /obj/item/rpd(src)
new /obj/item/dest_tagger(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical_lockers.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical_lockers.dm
index a40f7373bace..bccd658bfc80 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical_lockers.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical_lockers.dm
@@ -73,7 +73,7 @@
new /obj/item/clothing/mask/surgical(src)
new /obj/item/clothing/glasses/hud/health(src)
new /obj/item/clothing/gloves/color/latex/nitrile(src)
- new /obj/item/clothing/accessory/stethoscope(src)
+ new /obj/item/clothing/neck/stethoscope(src)
new /obj/item/flashlight/pen(src)
new /obj/item/storage/firstaid/regular(src)
new /obj/item/storage/firstaid/adv(src)
@@ -127,7 +127,7 @@
new /obj/item/storage/fancy/cigarettes/cigpack_med(src)
new /obj/item/storage/fancy/cigarettes/cigpack_med(src)
new /obj/item/storage/pill_bottle/psychiatrist(src)
- new /obj/random/plushie(src)
+ new /obj/effect/spawner/random/plushies
for(var/i in 0 to 3)
var/candy = pick(subtypesof(/obj/item/food/candy/fudge))
new candy(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index cab056f24be0..77d0d6da3a6e 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -129,7 +129,7 @@
closed_door_sprite = "green"
/obj/structure/closet/wardrobe/xenos/populate_contents()
- new /obj/item/clothing/suit/unathi/mantle(src)
+ new /obj/item/clothing/neck/cloak/unathi(src)
new /obj/item/clothing/suit/unathi/robe(src)
new /obj/item/clothing/gloves/handwraps(src)
new /obj/item/clothing/gloves/handwraps(src)
diff --git a/code/game/objects/structures/plasmafire_generator.dm b/code/game/objects/structures/plasmafire_generator.dm
new file mode 100644
index 000000000000..288eb567443e
--- /dev/null
+++ b/code/game/objects/structures/plasmafire_generator.dm
@@ -0,0 +1,41 @@
+/obj/structure/plasmafire_generator
+ name = "Plasmafire Generator"
+ desc = "A magical thing that you really shouldn't be able to see."
+ anchored = TRUE
+ alpha = 0
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ resistance_flags = LAVA_PROOF | FIRE_PROOF
+ flags = NODECONSTRUCT
+
+/obj/structure/plasmafire_generator/Initialize(mapload)
+ . = ..()
+ START_PROCESSING(SSprocessing, src)
+
+// for sanity checks
+/obj/structure/plasmafire_generator/Destroy()
+ STOP_PROCESSING(SSprocessing, src)
+ return ..()
+
+/obj/structure/plasmafire_generator/process()
+ var/turf/T = get_turf(src)
+ if(!istype(T))
+ return
+
+ var/datum/gas_mixture/fire = new()
+ fire.set_toxins(10)
+ fire.set_oxygen(4)
+ fire.set_temperature(500)
+ T.blind_release_air(fire)
+
+/obj/structure/plasmafire_generator/shadow
+ var/enabled = FALSE
+
+/obj/structure/plasmafire_generator/shadow/onShuttleMove(turf/oldT, turf/T1, rotation, mob/caller)
+ if(T1.z != 1)
+ enabled = TRUE
+ return ..()
+
+/obj/structure/plasmafire_generator/shadow/process()
+ if(!enabled)
+ return
+ return ..()
diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm
index ee476c27cbdc..0ee1015e25db 100644
--- a/code/game/objects/structures/safe.dm
+++ b/code/game/objects/structures/safe.dm
@@ -209,7 +209,7 @@ GLOBAL_LIST_EMPTY(safes)
else
to_chat(user, "[I] won't fit in [src]. ")
else
- if(istype(I, /obj/item/clothing/accessory/stethoscope))
+ if(istype(I, /obj/item/clothing/neck/stethoscope))
attack_hand(user)
return
else if(istype(I, /obj/item/thermal_drill))
@@ -270,10 +270,10 @@ GLOBAL_LIST_EMPTY(safes)
var/mob/living/carbon/human/H = usr
var/list/accessories = H.w_uniform?.accessories
if(H.can_hear()) // This is cursed but is_type_in_list somehow fails
- if(H.is_in_hands(/obj/item/clothing/accessory/stethoscope))
+ if(H.is_in_hands(/obj/item/clothing/neck/stethoscope))
canhear = TRUE
else
- for(var/obj/item/clothing/accessory/stethoscope/S in accessories)
+ for(var/obj/item/clothing/neck/stethoscope/S in accessories)
canhear = TRUE
break
diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm
index 303e8d5b6efc..9c85caa033f2 100644
--- a/code/game/turfs/simulated.dm
+++ b/code/game/turfs/simulated.dm
@@ -30,6 +30,14 @@
/// If a fire is ongoing, how much fuel did we burn last tick?
/// Value is not updated while below PLASMA_MINIMUM_BURN_TEMPERATURE.
var/fuel_burnt = 0
+ /// When do we last remember having wind?
+ var/wind_tick = null
+ /// Wind's X component
+ var/wind_x = null
+ /// Wind's Y component
+ var/wind_y = null
+ /// Wind effect
+ var/obj/effect/wind/wind_effect = null
/turf/simulated/proc/break_tile()
return
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index c863cde3f8f6..e0864966cd6f 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -56,12 +56,12 @@ GLOBAL_LIST_INIT(icons_to_ignore_at_floor_init, list("damaged1","damaged2","dama
break_tile_to_plating()
else
break_tile()
- hotspot_expose(1000,CELL_VOLUME)
+ hotspot_expose(1000, 100)
if(prob(33)) new /obj/item/stack/sheet/metal(src)
if(3.0)
if(prob(50))
break_tile()
- hotspot_expose(1000,CELL_VOLUME)
+ hotspot_expose(1000, 100)
return
/turf/simulated/floor/burn_down()
@@ -118,6 +118,10 @@ GLOBAL_LIST_INIT(icons_to_ignore_at_floor_init, list("damaged1","damaged2","dama
burnt = TRUE
update_icon()
+/turf/simulated/floor/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
+ if(exposed_temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST && prob(1))
+ burn_tile()
+
/turf/simulated/floor/proc/make_plating()
return ChangeTurf(/turf/simulated/floor/plating)
diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm
index 49bc5dda1771..786514e0e56c 100644
--- a/code/game/turfs/simulated/floor/plasteel_floor.dm
+++ b/code/game/turfs/simulated/floor/plasteel_floor.dm
@@ -9,6 +9,23 @@
/turf/simulated/floor/plasteel/get_broken_states()
return list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5")
+/turf/simulated/floor/plasteel/pressure_debug
+
+/turf/simulated/floor/plasteel/pressure_debug/airless
+ name = "airless floor"
+ oxygen = 0
+ nitrogen = 0
+ temperature = TCMB
+
+/turf/simulated/floor/plasteel/pressure_debug/Initialize(mapload)
+ ..()
+ addtimer(CALLBACK(src, PROC_REF(update_color)), 1, TIMER_LOOP)
+
+/turf/simulated/floor/plasteel/pressure_debug/proc/update_color()
+ var/datum/gas_mixture/air = get_readonly_air()
+ var/ratio = min(1, air.return_pressure() / ONE_ATMOSPHERE)
+ color = rgb(255 * (1 - ratio), 0, 255 * ratio)
+
/turf/simulated/floor/plasteel/airless
name = "airless floor"
oxygen = 0
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index c295188fd93b..b0eda64b7f60 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -82,6 +82,9 @@
var/datum/gas_mixture/bound_to_turf/bound_air
+ /// The effect used to render a pressure overlay from this tile.
+ var/obj/effect/pressure_overlay/pressure_overlay
+
/turf/Initialize(mapload)
SHOULD_CALL_PARENT(FALSE)
if(initialized)
@@ -651,8 +654,98 @@
/datum/milla_safe/turf_blind_set/on_run(turf/T, datum/gas_mixture/air)
get_turf_air(T).copy_from(air)
+/turf/simulated/proc/update_hotspot()
+ var/datum/gas_mixture/air = get_readonly_air()
+ if(air.fuel_burnt() < 0.001)
+ if(isnull(active_hotspot))
+ return FALSE
+
+ // If it's old, delete it.
+ if(active_hotspot.death_timer < SSair.times_fired)
+ QDEL_NULL(active_hotspot)
+ return FALSE
+ else
+ return TRUE
+
+ if(isnull(active_hotspot))
+ active_hotspot = new(src)
+
+ active_hotspot.death_timer = SSair.times_fired + 4
+ if(air.hotspot_volume() > 0)
+ active_hotspot.temperature = air.hotspot_temperature()
+ active_hotspot.volume = air.hotspot_volume() * CELL_VOLUME
+ else
+ active_hotspot.temperature = air.temperature()
+ active_hotspot.volume = CELL_VOLUME
+
+ active_hotspot.update_visuals()
+ return TRUE
+
+/turf/simulated/proc/update_wind()
+ if(wind_tick != SSair.times_fired)
+ QDEL_NULL(wind_effect)
+ wind_tick = null
+ return FALSE
+
+ if(isnull(wind_effect))
+ wind_effect = new(src)
+
+ wind_effect.dir = wind_direction(wind_x, wind_y)
+
+ var/datum/gas_mixture/air = get_readonly_air()
+ var/wind = sqrt(wind_x ** 2 + wind_y ** 2)
+ var/wind_strength = wind * air.total_moles() / MOLES_CELLSTANDARD
+ wind_effect.alpha = min(255, 5 + wind_strength * 25)
+ return TRUE
+
/turf/return_analyzable_air()
return get_readonly_air()
+/obj/effect/pressure_overlay
+ icon_state = "nothing"
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ // I'm really not sure this is the right var for this, but it's what the suply shuttle is using to determine if anything is blocking a tile, so let's not do that.
+ simulated = FALSE
+ // Please do not splat the visual effect with a shuttle.
+ flags_2 = IMMUNE_TO_SHUTTLECRUSH_2
+
+ var/image/overlay
+
+/obj/effect/pressure_overlay/Initialize(mapload)
+ . = ..()
+ overlay = new(icon, src, "white")
+ overlay.alpha = 0
+ overlay.plane = ABOVE_LIGHTING_PLANE
+ overlay.blend_mode = BLEND_OVERLAY
+ overlay.appearance_flags = RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM
+
+/obj/effect/pressure_overlay/onShuttleMove(turf/oldT, turf/T1, rotation, mob/caller)
+ // No, I don't think I will.
+ return FALSE
+
+/obj/effect/pressure_overlay/singularity_pull()
+ // I am not a physical object, you have no control over me!
+ return FALSE
+
+/obj/effect/pressure_overlay/singularity_act()
+ // I don't taste good, either!
+ return FALSE
+
+/turf/proc/ensure_pressure_overlay()
+ if(isnull(pressure_overlay))
+ for(var/obj/effect/pressure_overlay/found_overlay in src)
+ pressure_overlay = found_overlay
+ if(isnull(pressure_overlay))
+ pressure_overlay = new(src)
+
+ if(isnull(pressure_overlay.loc))
+ // Not sure how exactly this happens, but I've seen it happen, so fix it.
+ pressure_overlay.forceMove(src)
+
+ if(isnull(pressure_overlay.overlay))
+ pressure_overlay.Initialize()
+
+ return pressure_overlay
+
/turf/_clear_signal_refs()
return
diff --git a/code/modules/admin/misc_admin_procs.dm b/code/modules/admin/misc_admin_procs.dm
index afec64f26193..b3b3f1ac9f40 100644
--- a/code/modules/admin/misc_admin_procs.dm
+++ b/code/modules/admin/misc_admin_procs.dm
@@ -744,7 +744,7 @@ GLOBAL_VAR_INIT(disable_explosions, FALSE)
if(length(matches)==1)
chosen = matches[1]
else
- chosen = input("Select an atom type", "Spawn Atom", matches[1]) as null|anything in matches
+ chosen = tgui_input_list(usr, "Select an Atom Type", "Spawn Atom", matches)
if(!chosen)
return
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 042deefc35d0..dd917e6744ec 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -67,7 +67,8 @@
to_chat(M, "You hear a voice in your head... [msg] ")
log_admin("SubtlePM: [key_name(usr)] -> [key_name(M)] : [msg]")
- message_admins("SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg] ", 1)
+ message_admins("Subtle Message: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg] ", 1)
+ M.create_log(MISC_LOG, "Subtle Message: [msg]", "From: [key_name_admin(usr)]")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_mentor_check_new_players() //Allows mentors / admins to determine who the newer players are.
@@ -145,7 +146,8 @@
to_chat(M, msg)
log_admin("DirectNarrate: [key_name(usr)] to ([key_name(M)]): [msg]")
- message_admins("DirectNarrate: [key_name_admin(usr)] to ([key_name_admin(M)]): [msg] ", 1)
+ message_admins("Direct Narrate: [key_name_admin(usr)] to ([key_name_admin(M)]): [msg] ", 1)
+ M.create_log(MISC_LOG, "Direct Narrate: [msg]", "From: [key_name_admin(usr)]")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -182,6 +184,7 @@
log_admin("[key_name(src)] replied to [key_name(H)]'s [sender] message with the message [input].")
message_admins("[key_name_admin(src)] replied to [key_name_admin(H)]'s [sender] message with: \"[input]\"")
+ H.create_log(MISC_LOG, "Headset Message: [input]", "From: [key_name_admin(src)]")
to_chat(H, "Incoming priority transmission from [sender == "Syndicate" ? "your benefactor" : "Central Command"]. Message as follows[sender == "Syndicate" ? ", agent." : ":"] [input] ")
SEND_SOUND(H, 'sound/effects/headset_message.ogg')
@@ -1167,7 +1170,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!D)
return
- var/add_or_remove = input("Remove/Add?", "Trait Remove/Add") as null|anything in list("Add","Remove")
+ var/add_or_remove = tgui_input_list(usr, "Add or Remove Trait?", "Modify Trait", list("Add","Remove"))
if(!add_or_remove)
return
var/list/availible_traits = list()
@@ -1175,7 +1178,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
switch(add_or_remove)
if("Add")
for(var/key in GLOB.traits_by_type)
- if(istype(D,key))
+ if(istype(D, key))
availible_traits += GLOB.traits_by_type[key]
if("Remove")
if(!GLOB.trait_name_map)
@@ -1184,7 +1187,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
var/name = GLOB.trait_name_map[trait] || trait
availible_traits[name] = trait
- var/chosen_trait = input("Select trait to modify", "Trait") as null|anything in availible_traits
+ var/chosen_trait = tgui_input_list(usr, "Select trait to modify.", "Traits", availible_traits)
if(!chosen_trait)
return
chosen_trait = availible_traits[chosen_trait]
@@ -1194,14 +1197,14 @@ Traitors and the like can also be revived with the previous role mostly intact.
if("Add") //Not doing source choosing here intentionally to make this bit faster to use, you can always vv it.
ADD_TRAIT(D, chosen_trait, source)
if("Remove")
- var/specific = input("All or specific source ?", "Trait Remove/Add") as null|anything in list("All","Specific")
+ var/specific = tgui_input_list(usr, "All or from a specific source?", "Add or Remove Trait", list("All","Specific"))
if(!specific)
return
switch(specific)
if("All")
source = null
if("Specific")
- source = input("Source to be removed","Trait Remove/Add") as null|anything in D.status_traits[chosen_trait]
+ source = tgui_input_list(usr, "Source to be removed?", "Add or Remove Trait", D.status_traits[chosen_trait])
if(!source)
return
REMOVE_TRAIT(D, chosen_trait, source)
diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm
index 30317213363a..89605c6e59f3 100644
--- a/code/modules/antagonists/_common/antag_datum.dm
+++ b/code/modules/antagonists/_common/antag_datum.dm
@@ -406,11 +406,11 @@ GLOBAL_LIST_EMPTY(antagonists)
/**
* Create and assign a full set of randomized, basic human traitor objectives.
- * can_hijack - If you want the 10% chance for the antagonist to be able to roll hijack, only true for traitors
+ * can_hijack - If you want the 5% chance for the antagonist to be able to roll hijack, only true for traitors
*/
/datum/antagonist/proc/forge_basic_objectives(can_hijack = FALSE)
// Hijack objective.
- if(can_hijack && prob(10) && !(locate(/datum/objective/hijack) in owner.get_all_objectives()))
+ if(can_hijack && prob(5) && !(locate(/datum/objective/hijack) in owner.get_all_objectives()))
add_antag_objective(/datum/objective/hijack)
return // Hijack should be their only objective (normally), so return.
diff --git a/code/modules/antagonists/cult/team_cult.dm b/code/modules/antagonists/cult/team_cult.dm
index 7301d9abb9a6..39fb80f62b60 100644
--- a/code/modules/antagonists/cult/team_cult.dm
+++ b/code/modules/antagonists/cult/team_cult.dm
@@ -34,10 +34,6 @@ RESTRICT_TYPE(/datum/team/cult)
/// Timer until we do a recount of cultist members
var/recount_timer
-/datum/team/cult/New(list/starting_members)
- . = ..()
- recount_timer = addtimer(CALLBACK(src, PROC_REF(cult_threshold_check)), 5 MINUTES, TIMER_STOPPABLE|TIMER_DELETE_ME|TIMER_LOOP)
-
/datum/team/cult/Destroy(force, ...)
deltimer(recount_timer)
return ..()
@@ -51,6 +47,7 @@ RESTRICT_TYPE(/datum/team/cult)
cult_status = NARSIE_DEMANDS_SACRIFICE
create_next_sacrifice()
+ recount_timer = addtimer(CALLBACK(src, PROC_REF(cult_threshold_check)), 5 MINUTES, TIMER_STOPPABLE|TIMER_DELETE_ME|TIMER_LOOP)
for(var/datum/mind/M as anything in starting_members)
var/datum/antagonist/cultist/cultist = M.has_antag_datum(/datum/antagonist/cultist)
diff --git a/code/modules/antagonists/event/datum_eventmisc.dm b/code/modules/antagonists/event/datum_eventmisc.dm
new file mode 100644
index 000000000000..c86ed49603a4
--- /dev/null
+++ b/code/modules/antagonists/event/datum_eventmisc.dm
@@ -0,0 +1,15 @@
+RESTRICT_TYPE(/datum/antagonist/eventmisc)
+
+/datum/antagonist/eventmisc
+ name = "Event"
+ job_rank = ROLE_EVENTMISC
+ special_role = SPECIAL_ROLE_EVENTMISC
+ give_objectives = FALSE
+ antag_hud_name = "hudevent"
+ antag_hud_type = ANTAG_HUD_EVENTMISC
+
+/datum/antagonist/eventmisc/add_owner_to_gamemode()
+ SSticker.mode.eventmiscs |= owner
+
+/datum/antagonist/eventmisc/remove_owner_from_gamemode()
+ SSticker.mode.eventmiscs -= owner
diff --git a/code/modules/antagonists/mind_flayer/flayer_power.dm b/code/modules/antagonists/mind_flayer/flayer_power.dm
index b48c9c25ca92..481c3d0a78ac 100644
--- a/code/modules/antagonists/mind_flayer/flayer_power.dm
+++ b/code/modules/antagonists/mind_flayer/flayer_power.dm
@@ -3,6 +3,7 @@
desc = "This spell needs a description!"
human_req = TRUE
clothes_req = FALSE
+ antimagic_flags = NONE
/// A reference to the owner mindflayer's antag datum.
var/datum/antagonist/mindflayer/flayer
diff --git a/code/modules/antagonists/traitor/contractor/datums/objective_contract.dm b/code/modules/antagonists/traitor/contractor/datums/objective_contract.dm
index 107eae3200f5..b140da97864b 100644
--- a/code/modules/antagonists/traitor/contractor/datums/objective_contract.dm
+++ b/code/modules/antagonists/traitor/contractor/datums/objective_contract.dm
@@ -8,6 +8,7 @@
/// Jobs that cannot be the kidnapping target.
var/static/list/forbidden_jobs = list(
"Captain",
+ "Nanotrasen Career Trainer"
)
/// Static whitelist of area names that can be used as an extraction zone, structured by difficulty.
/// An area's difficulty should be measured in how crowded it generally is, how out of the way it is and so on.
diff --git a/code/modules/antagonists/vampire/vamp_datum.dm b/code/modules/antagonists/vampire/vamp_datum.dm
index 3fe4dcc76609..b6e97c0c6717 100644
--- a/code/modules/antagonists/vampire/vamp_datum.dm
+++ b/code/modules/antagonists/vampire/vamp_datum.dm
@@ -93,6 +93,7 @@ RESTRICT_TYPE(/datum/antagonist/vampire)
mob_override.dna?.species.hunger_icon = initial(mob_override.dna.species.hunger_icon)
owner.current.alpha = 255
REMOVE_TRAITS_IN(owner.current, "vampire")
+ UnregisterSignal(owner, COMSIG_ATOM_HOLY_ATTACK)
#define BLOOD_GAINED_MODIFIER 0.5
@@ -362,8 +363,21 @@ RESTRICT_TYPE(/datum/antagonist/vampire)
mob_override.dna?.species.hunger_icon = 'icons/mob/screen_hunger_vampire.dmi'
check_vampire_upgrade(FALSE)
+ RegisterSignal(mob_override, COMSIG_ATOM_HOLY_ATTACK, PROC_REF(holy_attack_reaction))
-
+/datum/antagonist/vampire/proc/holy_attack_reaction(mob/target, obj/item/source, mob/user, antimagic_flags)
+ SIGNAL_HANDLER // COMSIG_ATOM_HOLY_ATTACK
+ if(!HAS_MIND_TRAIT(user, TRAIT_HOLY)) // Sec officer with a nullrod, or miner with a talisman, does not get to do this
+ return
+ if(!source.force) // Needs force to work.
+ return
+ var/bonus_force = 0
+ if(istype(source, /obj/item/nullrod))
+ var/obj/item/nullrod/N = source
+ bonus_force = N.sanctify_force
+ if(!get_ability(/datum/vampire_passive/full))
+ to_chat(owner.current, "[source]'s power interferes with your own! ")
+ adjust_nullification(30 + bonus_force, 15 + bonus_force)
/datum/antagonist/vampire/custom_blurb()
return "On the date [GLOB.current_date_string], at [station_time_timestamp()],\n in the [station_name()], [get_area_name(owner.current, TRUE)]...\nThe hunt begins again..."
diff --git a/code/modules/antagonists/vampire/vampire_powers/dantalion_powers.dm b/code/modules/antagonists/vampire/vampire_powers/dantalion_powers.dm
index d749bfccee37..c38b8523e3d7 100644
--- a/code/modules/antagonists/vampire/vampire_powers/dantalion_powers.dm
+++ b/code/modules/antagonists/vampire/vampire_powers/dantalion_powers.dm
@@ -161,6 +161,10 @@
/datum/spell/vampire/switch_places/cast(list/targets, mob/user)
var/mob/living/target = targets[1]
+ if(target.can_block_magic(antimagic_flags))
+ to_chat(user, "The spell had no effect! ")
+ to_chat(target, "You feel space bending, but it rapidly dissipates. ")
+ return FALSE
var/turf/user_turf = get_turf(user)
var/turf/target_turf = get_turf(target)
if(!(SEND_SIGNAL(target, COMSIG_MOVABLE_TELEPORTING, user_turf) & COMPONENT_BLOCK_TELEPORT))
diff --git a/code/modules/antagonists/vampire/vampire_powers/gargantua_powers.dm b/code/modules/antagonists/vampire/vampire_powers/gargantua_powers.dm
index 20071ab2ebf5..5207ccf7d97c 100644
--- a/code/modules/antagonists/vampire/vampire_powers/gargantua_powers.dm
+++ b/code/modules/antagonists/vampire/vampire_powers/gargantua_powers.dm
@@ -157,6 +157,8 @@
/obj/item/projectile/magic/demonic_grasp/on_hit(atom/target, blocked, hit_zone)
. = ..()
+ if(!.)
+ return
if(!isliving(target))
return
var/mob/living/L = target
diff --git a/code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm b/code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm
index ff227c1774bf..21e6b97f5fae 100644
--- a/code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm
+++ b/code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm
@@ -3,6 +3,9 @@
//Other vampires and thralls aren't affected
if(mind?.has_antag_datum(/datum/antagonist/vampire) || mind?.has_antag_datum(/datum/antagonist/mindslave/thrall))
return FALSE
+ /// Chaplains with their nullrod can block a full power vampire, but a chaplain by themselfs or a crew with a null rod can not.
+ if(can_block_magic(MAGIC_RESISTANCE_HOLY) && HAS_MIND_TRAIT(src, TRAIT_HOLY))
+ return FALSE
//Vampires who have reached their full potential can affect nearly everything
var/datum/antagonist/vampire/V = user?.mind.has_antag_datum(/datum/antagonist/vampire)
if(V?.get_ability(/datum/vampire_passive/full))
@@ -10,12 +13,15 @@
//Holy characters are resistant to vampire powers
if(HAS_MIND_TRAIT(src, TRAIT_HOLY))
return FALSE
+ if(can_block_magic(MAGIC_RESISTANCE_HOLY))
+ return FALSE
return TRUE
/datum/spell/vampire
action_background_icon_state = "bg_vampire"
human_req = TRUE
clothes_req = FALSE
+ antimagic_flags = MAGIC_RESISTANCE_HOLY
/// How much blood this ability costs to use
var/required_blood
var/deduct_blood_on_cast = TRUE
@@ -52,6 +58,7 @@
action_icon_state = "vampire_rejuvinate"
base_cooldown = 20 SECONDS
stat_allowed = UNCONSCIOUS
+ antimagic_flags = NONE // So. If you have a null rod on your person, you can't cast vampire spells. I would rather not have officers abuse this by putting a nullrod in their pocket or something to block rejuvinate.
/datum/spell/vampire/self/rejuvenate/cast(list/targets, mob/user = usr)
var/mob/living/U = user
diff --git a/code/modules/antagonists/zombie/zombie_spells.dm b/code/modules/antagonists/zombie/zombie_spells.dm
index 3739a953438c..39d02fa99823 100644
--- a/code/modules/antagonists/zombie/zombie_spells.dm
+++ b/code/modules/antagonists/zombie/zombie_spells.dm
@@ -5,6 +5,7 @@
action_background_icon_state = "bg_vampire"
human_req = TRUE
clothes_req = FALSE
+ antimagic_flags = NONE
base_cooldown = 0 SECONDS
var/list/our_claws = list()
var/infection_stage = 1 // mostly for adminbus and testing
diff --git a/code/modules/arcade/arcade_prize.dm b/code/modules/arcade/arcade_prize.dm
index e17d803d5ff9..10912d16b370 100644
--- a/code/modules/arcade/arcade_prize.dm
+++ b/code/modules/arcade/arcade_prize.dm
@@ -8,7 +8,13 @@
icon = 'icons/obj/arcade.dmi'
icon_state = "prizeball_1"
var/opening = 0
- var/possible_contents = list(/obj/random/carp_plushie, /obj/random/plushie, /obj/random/figure, /obj/item/toy/eight_ball, /obj/item/stack/tickets)
+ var/possible_contents = list(
+ /obj/effect/spawner/random/toy/carp_plushie,
+ /obj/effect/spawner/random/plushies,
+ /obj/effect/spawner/random/toy/action_figure,
+ /obj/item/toy/eight_ball,
+ /obj/item/stack/tickets,
+ )
/obj/item/toy/prizeball/Initialize(mapload)
. = ..()
@@ -34,27 +40,37 @@
/obj/item/toy/prizeball/mech
name = "mecha figure capsule"
desc = "Contains one collectible mecha figure!"
- possible_contents = list(/obj/random/mech)
+ possible_contents = list(
+ /obj/effect/spawner/random/toy/mech_figure,
+ )
/obj/item/toy/prizeball/carp_plushie
name = "carp plushie capsule"
desc = "Contains one space carp plushie!"
- possible_contents = list(/obj/random/carp_plushie)
+ possible_contents = list(
+ /obj/effect/spawner/random/toy/carp_plushie,
+ )
/obj/item/toy/prizeball/plushie
name = "plushie capsule"
desc = "Contains one cuddly plushie!"
- possible_contents = list(/obj/random/plushie)
+ possible_contents = list(
+ /obj/effect/spawner/random/plushies,
+ )
-/obj/item/toy/prizeball/figure
+/obj/item/toy/prizeball/action_figure
name = "action figure capsule"
desc = "Contains one action figure!"
- possible_contents = list(/obj/random/figure)
+ possible_contents = list(
+ /obj/effect/spawner/random/toy/action_figure,
+ )
/obj/item/toy/prizeball/therapy
name = "therapy doll capsule"
desc = "Contains one squishy therapy doll."
- possible_contents = list(/obj/random/therapy)
+ possible_contents = list(
+ /obj/effect/spawner/random/toy/therapy_doll,
+ )
/obj/item/stack/tickets
name = "prize ticket"
@@ -69,10 +85,6 @@
w_class = WEIGHT_CLASS_TINY
max_amount = 9999 //Dang that's a lot of tickets
-/obj/item/stack/tickets/New(loc, amount=null)
- ..()
- update_icon(UPDATE_ICON_STATE)
-
/obj/item/stack/tickets/attack_self__legacy__attackchain(mob/user as mob)
return
diff --git a/code/modules/arcade/prize_datums.dm b/code/modules/arcade/prize_datums.dm
index 72cddba9eca2..289c203526d0 100644
--- a/code/modules/arcade/prize_datums.dm
+++ b/code/modules/arcade/prize_datums.dm
@@ -236,7 +236,7 @@ GLOBAL_DATUM_INIT(global_prizes, /datum/prizes, new())
/datum/prize_item/action_figure
name = "Random Action Figure"
desc = "A random action figure, collect them all!"
- typepath = /obj/item/toy/prizeball/figure
+ typepath = /obj/item/toy/prizeball/action_figure
cost = 75
/datum/prize_item/ai
diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm
index f3433f5b208f..66aa95bde49b 100644
--- a/code/modules/assembly/igniter.dm
+++ b/code/modules/assembly/igniter.dm
@@ -27,7 +27,7 @@
var/turf/location = get_turf(loc)
if(location)
- location.hotspot_expose(1000, 1000)
+ location.hotspot_expose(1000, 1)
visible_message(
"Sparks shoot out of [src]. ",
"You hear a shower of sparks shooting out from something! "
diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm
index dac9ad424bf7..234aa4a500d7 100644
--- a/code/modules/atmospherics/environmental/LINDA_fire.dm
+++ b/code/modules/atmospherics/environmental/LINDA_fire.dm
@@ -2,41 +2,24 @@
/atom/proc/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(reagents)
reagents.temperature_reagents(exposed_temperature)
- return null
-/turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0)
- return FALSE
-
-/turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh)
+/turf/simulated/temperature_expose(exposed_temperature)
if(reagents)
reagents.temperature_reagents(exposed_temperature, 10, 300)
- if(!issimulatedturf(src))
- return FALSE
- var/datum/gas_mixture/air = get_readonly_air()
- if(!air)
- return FALSE
- if(active_hotspot)
- if(soh)
- if(air.toxins() > 0.5 && air.oxygen() > 0.5)
- if(active_hotspot.temperature < exposed_temperature)
- active_hotspot.temperature = exposed_temperature
- if(active_hotspot.volume < exposed_volume)
- active_hotspot.volume = exposed_volume
- return TRUE
-
- if(exposed_temperature > PLASMA_MINIMUM_BURN_TEMPERATURE && air.oxygen() > 0.5 && air.toxins() > 0.5)
- var/total = air.total_moles()
- if(air.toxins() < 0.01 * total || air.oxygen() < 0.01 * total)
- // The rest of the gas is snuffing out the reaction.
- return FALSE
- active_hotspot = new /obj/effect/hotspot(src)
- active_hotspot.temperature = exposed_temperature
- active_hotspot.volume = exposed_volume
- return TRUE
-
- return FALSE
-
-//This is the icon for fire on turfs, also helps for nurturing small fires until they are full tile
+
+/turf/proc/hotspot_expose(exposed_temperature, exposed_volume)
+ return
+
+/turf/simulated/hotspot_expose(exposed_temperature, exposed_volume)
+ var/datum/milla_safe/make_hotspot/milla = new()
+ milla.invoke_async(src, exposed_temperature, exposed_volume)
+
+/datum/milla_safe/make_hotspot
+
+/datum/milla_safe/make_hotspot/on_run(turf/simulated/tile, exposed_temperature, exposed_volume)
+ create_hotspot(tile, exposed_temperature, exposed_volume)
+
+//This is the icon for fire on turfs.
/obj/effect/hotspot
anchored = TRUE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
@@ -49,143 +32,25 @@
var/volume = 125
var/temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST
- var/fake = FALSE
- var/burn_time = 0
+ // The last tick this hotspot should be alive for.
+ var/death_timer = 0
/obj/effect/hotspot/New()
..()
- if(!fake)
- SSair.hotspots += src
- var/datum/milla_safe/hotspot_burn_plasma/milla = new()
- milla.invoke_async(src)
dir = pick(GLOB.cardinal)
-/datum/milla_safe/hotspot_burn_plasma
-
-/// Burns the air affected by this hotspot. A hotspot is effectively a gas fire that might not cover the entire tile yet. This proc makes that "partial fire" burn, altering the tile as a whole, and potentially setting the entire tile on fire.
-/datum/milla_safe/hotspot_burn_plasma/on_run(obj/effect/hotspot/hotspot)
- var/turf/simulated/location = get_turf(hotspot)
- if(!istype(location) || location.blocks_air)
- // We're in the wrong neighborhood.
- qdel(hotspot)
- return
-
- var/datum/gas_mixture/location_air = get_turf_air(location)
- if(location_air.temperature() >= min(hotspot.temperature, PLASMA_UPPER_TEMPERATURE))
- // The cell is already hot enough, no need to do more.
- hotspot.temperature = location_air.temperature()
- hotspot.volume = CELL_VOLUME
- hotspot.recolor()
- return
-
- if(location_air.toxins() < 0.5 || location_air.oxygen() < 0.5)
- // Burn what, exactly?
- qdel(hotspot)
- return
-
- var/total = location_air.total_moles()
- if(location_air.toxins() < 0.01 * total || location_air.oxygen() < 0.01 * total)
- // The rest of the gas is snuffing out the reaction.
- qdel(hotspot)
- return
-
- // Get some of the surrounding air for the hotspot to burn.
- var/datum/gas_mixture/burning = location_air.remove_ratio(hotspot.volume / location_air.volume)
-
- // Temporarily boost the temperature of this air to the hotspot temperature.
- var/old_temperature = burning.temperature()
- burning.set_temperature(hotspot.temperature)
-
- // Record how much plasma we had initially.
- var/old_toxins = burning.toxins()
-
- // Burn it.
- burning.react()
-
- // Calculate how much thermal energy was produced.
- // (Yes, gas_mixture has its own .fuel_burnt, but I dont' trust that code.)
- var/fuel_burnt = old_toxins - burning.toxins()
- var/thermal_energy = FIRE_PLASMA_ENERGY_RELEASED * fuel_burnt
-
- // Update the hotspot based on the reaction.
- hotspot.temperature = burning.temperature()
- hotspot.volume = min(CELL_VOLUME, fuel_burnt * FIRE_GROWTH_RATE)
- hotspot.recolor()
-
- // Revert the air's temperature to where it started.
- burning.set_temperature(old_temperature)
-
- var/heat_capacity = burning.heat_capacity()
- if(heat_capacity)
- // Add in the produced thermal energy.
- burning.set_temperature(burning.temperature() + thermal_energy / burning.heat_capacity())
-
- // And add it back to the tile.
- location_air.merge(burning)
-
-/obj/effect/hotspot/process()
- var/turf/simulated/location = loc
- if(!istype(location))
- qdel(src)
- return
-
- if((temperature < FIRE_MINIMUM_TEMPERATURE_TO_EXIST) || (volume <= 1))
- qdel(src)
- return
-
- var/datum/gas_mixture/location_air = location.get_readonly_air()
- if(location.blocks_air || location_air.toxins() < 0.5 || location_air.oxygen() < 0.5)
- qdel(src)
- return
-
- var/datum/milla_safe/hotspot_burn_plasma/milla = new()
- milla.invoke_async(src)
- if(QDELETED(src))
- return
-
- for(var/A in loc)
- var/atom/item = A
- if(!QDELETED(item) && item != src) // It's possible that the item is deleted in temperature_expose
- item.fire_act(null, temperature, volume)
-
- if(!istype(location))
- // We are now space. No need to do anything else.
- return
-
- if(location.wet)
- location.wet = TURF_DRY
-
- if(volume >= CELL_VOLUME * 0.95)
+/obj/effect/hotspot/proc/update_visuals()
+ color = heat2color(temperature)
+ set_light(l_color = color)
+ var/turf/here = get_turf(src)
+ var/datum/gas_mixture/gas = here.get_readonly_air()
+ var/fuel_burnt = gas.fuel_burnt()
+ if(fuel_burnt > 1)
icon_state = "3"
- location.burn_tile()
-
- //Possible spread due to radiated heat
- if(temperature > FIRE_MINIMUM_TEMPERATURE_TO_SPREAD)
- var/radiated_temperature = temperature * FIRE_SPREAD_RADIOSITY_SCALE
- for(var/direction in GLOB.cardinal)
- var/turf/simulated/T = get_step(location, direction)
- if(!istype(T))
- continue
- if(T.active_hotspot)
- continue
- if(src.CanAtmosPass(direction) && T.CanAtmosPass(turn(direction, 180)))
- T.hotspot_expose(radiated_temperature, CELL_VOLUME / 4)
-
+ else if(fuel_burnt > 0.1)
+ icon_state = "2"
else
- if(volume > CELL_VOLUME*0.4)
- icon_state = "2"
- else
- icon_state = "1"
-
- if(temperature > location.max_fire_temperature_sustained)
- location.max_fire_temperature_sustained = temperature
-
- if(location.heat_capacity && temperature > location.heat_capacity)
- location.to_be_destroyed = TRUE
- /*if(prob(25))
- location.ReplaceWithSpace()
- return 0*/
- return 1
+ icon_state = "1"
/obj/effect/hotspot/Initialize(mapload)
@@ -199,18 +64,16 @@
/obj/effect/hotspot/Destroy()
set_light(0)
- SSair.hotspots -= src
var/turf/simulated/T = loc
if(istype(T) && T.active_hotspot == src)
T.active_hotspot = null
- if(!fake)
- DestroyTurf()
return ..()
/obj/effect/hotspot/proc/recolor()
color = heat2color(temperature)
set_light(l_color = color)
+// TODO: Vestigal, kept temporarily to avoid a merge conflict.
/obj/effect/hotspot/proc/DestroyTurf()
if(issimulatedturf(loc))
var/turf/simulated/T = loc
@@ -237,8 +100,7 @@
/// Largely for the fireflash procs below
/obj/effect/hotspot/fake
- fake = TRUE
- burn_time = 30
+ var/burn_time = 3 SECONDS
/obj/effect/hotspot/fake/New()
..()
diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
index a629c4dec325..59b1d94e9f0b 100644
--- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
+++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
@@ -26,6 +26,7 @@
/turf/simulated/Destroy()
QDEL_NULL(active_hotspot)
QDEL_NULL(wet_overlay)
+ QDEL_NULL(wind_effect)
return ..()
/turf/simulated/proc/mimic_temperature_solid(turf/model, conduction_coefficient)
@@ -82,43 +83,79 @@
return null
/turf/proc/high_pressure_movements(flow_x, flow_y)
- var/atom/movable/M
- for(var/thing in src)
- M = thing
+ for(var/atom/movable/M in src)
if(QDELETED(M))
continue
if(M.anchored)
continue
if(M.pulledby)
continue
- if(M.last_high_pressure_movement_air_cycle < SSair.times_fired)
- M.experience_pressure_difference(flow_x, flow_y)
-
-/atom/movable/proc/experience_pressure_difference(flow_x, flow_y, pressure_resistance_prob_delta = 0)
- var/const/PROBABILITY_OFFSET = 25
- var/const/PROBABILITY_BASE_PRECENT = 75
-
- var/pressure_difference = sqrt(flow_x ** 2 + flow_y ** 2)
- var/max_force = sqrt(pressure_difference) * (MOVE_FORCE_DEFAULT / 5)
- set waitfor = 0
- var/move_prob = 100
- if(pressure_resistance > 0)
- move_prob = (pressure_difference / pressure_resistance * PROBABILITY_BASE_PRECENT) - PROBABILITY_OFFSET
- move_prob += pressure_resistance_prob_delta
- if(move_prob > PROBABILITY_OFFSET && prob(move_prob) && (move_resist != INFINITY) && (!anchored && (max_force >= (move_resist * MOVE_FORCE_PUSH_RATIO))) || (anchored && (max_force >= (move_resist * MOVE_FORCE_FORCEPUSH_RATIO))))
- var/direction = 0
- if(flow_x > 0.5)
- direction |= EAST
- if(flow_x < -0.5)
- direction |= WEST
- if(flow_y > 0.5)
- direction |= NORTH
- if(flow_y < -0.5)
- direction |= SOUTH
- step(src, direction)
- last_high_pressure_movement_air_cycle = SSair.times_fired
-
- return pressure_difference
+ M.experience_pressure_difference(flow_x, flow_y)
+
+/proc/wind_direction(flow_x, flow_y)
+ var/direction = 0
+ if(flow_x > 0.5)
+ direction |= EAST
+ if(flow_x < -0.5)
+ direction |= WEST
+ if(flow_y > 0.5)
+ direction |= NORTH
+ if(flow_y < -0.5)
+ direction |= SOUTH
+
+ return direction
+
+/atom/movable/proc/experience_pressure_difference(flow_x, flow_y)
+ if(move_resist == INFINITY)
+ return
+
+ var/force_needed = max(move_resist, 1)
+ if(anchored)
+ force_needed *= MOVE_FORCE_FORCEPUSH_RATIO
+ else
+ force_needed *= MOVE_FORCE_PUSH_RATIO
+
+ var/turf/my_turf = get_turf(src)
+ var/datum/gas_mixture/my_air = my_turf.get_readonly_air()
+
+ var/air = my_air.total_moles() / MOLES_CELLSTANDARD
+ var/wind = sqrt(flow_x ** 2 + flow_y ** 2)
+ var/force = wind * air * (MOVE_FORCE_DEFAULT / 5)
+
+ if(force < force_needed)
+ return
+
+ var/direction = wind_direction(flow_x, flow_y)
+ if(direction == 0)
+ return
+
+ if(last_high_pressure_movement_time >= SSair.times_fired - 3)
+ return
+ last_high_pressure_movement_time = SSair.times_fired
+
+ air_push(direction, (force - force_needed) / force_needed)
+
+/atom/movable/proc/air_push(direction, strength)
+ step(src, direction)
+
+/mob/living/air_push(direction, strength)
+ if(HAS_TRAIT(src, TRAIT_MAGPULSE))
+ return
+
+ apply_status_effect(STATUS_EFFECT_UNBALANCED)
+ apply_status_effect(STATUS_EFFECT_DIRECTIONAL_SLOW, 1 SECONDS, REVERSE_DIR(direction), min(10, strength * 5))
+
+ if(client?.input_data?.desired_move_dir)
+ return
+ if(!pulling)
+ return ..()
+
+ // Make sure we don't let go of something just because the wind pushed us into it.
+ var/atom/movable/was_pulling = pulling
+ . = ..()
+ // We were just pulling it, so we can skip all the other stuff in start_pulling and just re-establish the pull.
+ pulling = was_pulling
+ was_pulling.pulledby = src
/turf/simulated/proc/radiate_to_spess() //Radiate excess tile heat to space
if(temperature > T0C) //Considering 0 degC as te break even point for radiation in and out
@@ -198,6 +235,14 @@
reset_superconductivity(T)
reduce_superconductivity(T, superconductivity)
+/obj/effect/wind
+ anchored = TRUE
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ icon = 'icons/effects/tile_effects.dmi'
+ icon_state = "wind"
+ layer = MASSIVE_OBJ_LAYER
+ blend_mode = BLEND_OVERLAY
+
#undef INDEX_NORTH
#undef INDEX_EAST
#undef INDEX_SOUTH
diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
index eba569848dd9..e39ccf5ef5f9 100644
--- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm
+++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
@@ -33,6 +33,9 @@ What are the archived variables for?
var/private_sleeping_agent = 0
var/private_agent_b = 0
var/private_temperature = 0 //in Kelvin
+ var/private_hotspot_temperature = 0
+ var/private_hotspot_volume = 0
+ var/private_fuel_burnt = 0
// Archived versions of the private fields.
// Only gas_mixture should use these.
@@ -100,6 +103,15 @@ What are the archived variables for?
/datum/gas_mixture/proc/set_temperature(value)
private_temperature = value
+/datum/gas_mixture/proc/hotspot_temperature()
+ return private_hotspot_temperature
+
+/datum/gas_mixture/proc/hotspot_volume()
+ return private_hotspot_volume
+
+/datum/gas_mixture/proc/fuel_burnt()
+ return private_fuel_burnt
+
///joules per kelvin
/datum/gas_mixture/proc/heat_capacity()
return HEAT_CAPACITY_CALCULATION(private_oxygen, private_carbon_dioxide, private_nitrogen, private_toxins, private_sleeping_agent, private_agent_b, innate_heat_capacity)
@@ -651,6 +663,9 @@ What are the archived variables for?
private_agent_b = milla[MILLA_INDEX_AGENT_B]
innate_heat_capacity = milla[MILLA_INDEX_INNATE_HEAT_CAPACITY]
private_temperature = milla[MILLA_INDEX_TEMPERATURE]
+ private_hotspot_temperature = milla[MILLA_INDEX_HOTSPOT_TEMPERATURE]
+ private_hotspot_volume = milla[MILLA_INDEX_HOTSPOT_VOLUME]
+ private_fuel_burnt = milla[MILLA_INDEX_FUEL_BURNT]
/proc/share_many_airs(list/mixtures)
var/total_volume = 0
@@ -700,16 +715,8 @@ What are the archived variables for?
G.private_temperature = temperature
G.set_dirty()
-
-
-///Mathematical proofs:
-/**
-get_breath_partial_pressure(gas_pp) --> gas_pp/total_moles()*breath_pp = pp
-get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp*total_moles()
-
-10/20*5 = 2.5
-10 = 2.5/5*20
-**/
+/datum/gas_mixture/proc/hotspot_expose(temperature, volume)
+ return
#undef SPECIFIC_HEAT_TOXIN
#undef SPECIFIC_HEAT_AIR
@@ -742,6 +749,9 @@ get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp*total_moles()
readonly.private_sleeping_agent = private_sleeping_agent
readonly.private_agent_b = private_agent_b
readonly.private_temperature = private_temperature
+ readonly.private_hotspot_temperature = private_hotspot_temperature
+ readonly.private_hotspot_volume = private_hotspot_volume
+ readonly.private_fuel_burnt = private_fuel_burnt
if(istype(bound_turf, /turf/simulated))
var/turf/simulated/S = bound_turf
@@ -776,6 +786,12 @@ get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp*total_moles()
private_temperature = value
set_dirty()
+/datum/gas_mixture/bound_to_turf/hotspot_expose(temperature, volume)
+ if(temperature > private_temperature)
+ set_dirty()
+ private_hotspot_temperature = max(private_hotspot_temperature, temperature)
+ private_hotspot_volume = max(private_hotspot_volume, (volume / CELL_VOLUME))
+
/datum/gas_mixture/bound_to_turf/proc/private_unsafe_write()
set_tile_atmos(bound_turf, oxygen = private_oxygen, carbon_dioxide = private_carbon_dioxide, nitrogen = private_nitrogen, toxins = private_toxins, sleeping_agent = private_sleeping_agent, agent_b = private_agent_b, temperature = private_temperature)
@@ -796,6 +812,9 @@ get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp*total_moles()
private_agent_b = parent.private_agent_b
private_temperature = parent.private_temperature
+ private_hotspot_temperature = parent.private_hotspot_temperature
+ private_hotspot_volume = parent.private_hotspot_volume
+ private_fuel_burnt = parent.private_fuel_burnt
/datum/gas_mixture/readonly/set_dirty()
CRASH("Attempted to modify a readonly gas_mixture.")
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index 164d81a60815..87fd428c61dc 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -47,6 +47,19 @@
#define MAX_TEMPERATURE 363.15 // 90C
#define MIN_TEMPERATURE 233.15 // -40C
+GLOBAL_LIST_INIT(aalarm_modes, list(
+ "[AALARM_MODE_FILTERING]" = "Filtering",
+ "[AALARM_MODE_DRAUGHT]" = "Draught",
+ "[AALARM_MODE_PANIC]" = "Panic",
+ "[AALARM_MODE_CYCLE]" = "Cycle",
+ "[AALARM_MODE_SIPHON]" = "Siphon",
+ "[AALARM_MODE_CONTAMINATED]" = "Contaminated",
+ "[AALARM_MODE_REFILL]" = "Refill",
+ "[AALARM_MODE_CUSTOM]" = "Custom",
+ "[AALARM_MODE_OFF]" = "Off",
+ "[AALARM_MODE_FLOOD]" = "Flood",
+))
+
/obj/machinery/alarm
name = "air alarm"
desc = "A wall-mounted device used to control atmospheric equipment. It looks a little cheaply made..."
@@ -75,7 +88,7 @@
var/AAlarmwires = 31
var/shorted = FALSE
- var/mode = AALARM_MODE_SCRUBBING
+ var/mode = AALARM_MODE_FILTERING
var/preset = AALARM_PRESET_HUMAN
var/area/alarm_area
var/danger_level = ATMOS_ALARM_NONE
@@ -187,7 +200,7 @@
)
if(!no_cycle_after)
- mode = AALARM_MODE_REPLACEMENT
+ mode = AALARM_MODE_CYCLE
apply_mode()
/obj/machinery/alarm/Initialize(mapload, direction, building = 0)
@@ -272,6 +285,15 @@
cur_tlv = TLV["pressure"]
var/environment_pressure = environment.return_pressure()
var/pressure_dangerlevel = cur_tlv.get_danger_level(environment_pressure)
+ if(environment_pressure < cur_tlv.min2 && mode == AALARM_MODE_FILTERING)
+ mode = AALARM_MODE_OFF
+ apply_mode()
+ var/area/A = location.loc
+ A.firealert(src)
+
+ if(mode == AALARM_MODE_REFILL && environment_pressure >= cur_tlv.min1)
+ mode = AALARM_MODE_FILTERING
+ apply_mode()
cur_tlv = TLV["oxygen"]
var/oxygen_dangerlevel = cur_tlv.get_danger_level(environment.oxygen() * GET_PP)
@@ -309,8 +331,9 @@
if(old_danger_level != danger_level)
apply_danger_level()
- if(mode == AALARM_MODE_REPLACEMENT && environment_pressure < ONE_ATMOSPHERE * 0.05)
- mode = AALARM_MODE_SCRUBBING
+ cur_tlv = TLV["pressure"]
+ if(mode == AALARM_MODE_CYCLE && environment_pressure < cur_tlv.min2 * 0.05)
+ mode = AALARM_MODE_REFILL
apply_mode()
/datum/milla_safe/airalarm_heat_cool
@@ -393,8 +416,9 @@
underlays += emissive_appearance(icon, "alarm_lightmask")
/obj/machinery/alarm/proc/apply_mode()
+ var/datum/tlv/pressure_tlv = TLV["pressure"]
switch(mode)
- if(AALARM_MODE_SCRUBBING)
+ if(AALARM_MODE_FILTERING)
for(var/obj/machinery/atmospherics/unary/vent_scrubber/S as anything in alarm_area.scrubbers)
if(S.stat & (NOPOWER|BROKEN))
continue
@@ -412,8 +436,8 @@
if(P.stat & (NOPOWER|BROKEN))
continue
P.on = TRUE
- P.pressure_checks = TRUE
- P.external_pressure_bound = ONE_ATMOSPHERE
+ P.pressure_checks = ONLY_CHECK_EXT_PRESSURE
+ P.external_pressure_bound = (pressure_tlv.min1 + pressure_tlv.max1) / 2
P.update_icon(UPDATE_ICON_STATE)
@@ -433,12 +457,12 @@
if(P.stat & (NOPOWER|BROKEN))
continue
P.on = TRUE
- P.pressure_checks = TRUE
- P.external_pressure_bound = ONE_ATMOSPHERE
+ P.pressure_checks = ONLY_CHECK_EXT_PRESSURE
+ P.external_pressure_bound = (pressure_tlv.min1 + pressure_tlv.max1) / 2
P.update_icon(UPDATE_ICON_STATE)
- if(AALARM_MODE_VENTING)
+ if(AALARM_MODE_DRAUGHT)
for(var/obj/machinery/atmospherics/unary/vent_scrubber/S as anything in alarm_area.scrubbers)
if(S.stat & (NOPOWER|BROKEN))
continue
@@ -451,8 +475,8 @@
if(P.stat & (NOPOWER|BROKEN))
continue
P.on = TRUE
- P.pressure_checks = TRUE
- P.external_pressure_bound = ONE_ATMOSPHERE * 2
+ P.pressure_checks = ONLY_CHECK_EXT_PRESSURE
+ P.external_pressure_bound = pressure_tlv.max1
P.update_icon(UPDATE_ICON_STATE)
@@ -472,12 +496,12 @@
if(P.stat & (NOPOWER|BROKEN))
continue
P.on = TRUE
- P.pressure_checks = TRUE
- P.external_pressure_bound = ONE_ATMOSPHERE * 3
+ P.pressure_checks = ONLY_CHECK_EXT_PRESSURE
+ P.external_pressure_bound = (pressure_tlv.min1 + pressure_tlv.max1) / 2
P.update_icon(UPDATE_ICON_STATE)
- if(AALARM_MODE_PANIC, AALARM_MODE_REPLACEMENT)
+ if(AALARM_MODE_PANIC, AALARM_MODE_CYCLE)
for(var/obj/machinery/atmospherics/unary/vent_scrubber/S as anything in alarm_area.scrubbers)
if(S.stat & (NOPOWER|BROKEN))
continue
@@ -534,7 +558,7 @@
if(P.stat & (NOPOWER|BROKEN))
continue
P.on = TRUE
- P.pressure_checks = 2
+ P.pressure_checks = ONLY_CHECK_INT_PRESSURE
P.internal_pressure_bound = 0
P.update_icon(UPDATE_ICON_STATE)
@@ -671,15 +695,16 @@
data["atmos_alarm"] = alarm_area.atmosalm
data["emagged"] = emagged
data["modes"] = list(
- AALARM_MODE_SCRUBBING = list("name"="Filtering", "desc"="Scrubs out contaminants", "id" = AALARM_MODE_SCRUBBING),\
- AALARM_MODE_VENTING = list("name"="Draught", "desc"="Siphons out air while replacing", "id" = AALARM_MODE_VENTING),\
- AALARM_MODE_PANIC = list("name"="Panic Siphon","desc"="Siphons air out of the room quickly", "id" = AALARM_MODE_PANIC),\
- AALARM_MODE_REPLACEMENT = list("name"="Cycle", "desc"="Siphons air before replacing", "id" = AALARM_MODE_REPLACEMENT),\
- AALARM_MODE_SIPHON = list("name"="Siphon", "desc"="Siphons air out of the room", "id" = AALARM_MODE_SIPHON),\
- AALARM_MODE_CONTAMINATED= list("name"="Contaminated","desc"="Scrubs out all contaminants quickly", "id" = AALARM_MODE_CONTAMINATED),\
- AALARM_MODE_REFILL = list("name"="Refill", "desc"="Triples vent output", "id" = AALARM_MODE_REFILL),\
- AALARM_MODE_OFF = list("name"="Off", "desc"="Shuts off vents and scrubbers", "id" = AALARM_MODE_OFF),\
- AALARM_MODE_FLOOD = list("name"="Flood", "desc"="Shuts off scrubbers and opens vents", "emagonly" = TRUE, "id" = AALARM_MODE_FLOOD)
+ "mode[AALARM_MODE_FILTERING]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_FILTERING]"], "desc"="Scrubs out contaminants. Will shut off and drop firelocks if pressure drops too low.", "id" = AALARM_MODE_FILTERING),
+ "mode[AALARM_MODE_DRAUGHT]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_DRAUGHT]"], "desc"="Siphons out air while replacing", "id" = AALARM_MODE_DRAUGHT),
+ "mode[AALARM_MODE_PANIC]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_PANIC]"], "desc"="Siphons air out of the room quickly", "id" = AALARM_MODE_PANIC),
+ "mode[AALARM_MODE_CYCLE]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_CYCLE]"], "desc"="Siphons air before replacing", "id" = AALARM_MODE_CYCLE),
+ "mode[AALARM_MODE_SIPHON]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_SIPHON]"], "desc"="Siphons air out of the room", "id" = AALARM_MODE_SIPHON),
+ "mode[AALARM_MODE_CONTAMINATED]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_CONTAMINATED]"], "desc"="Scrubs out all contaminants quickly", "id" = AALARM_MODE_CONTAMINATED),
+ "mode[AALARM_MODE_REFILL]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_REFILL]"], "desc"="Refills a room to normal pressure, then switches to Filtering.", "id" = AALARM_MODE_REFILL),
+ "mode[AALARM_MODE_CUSTOM]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_CUSTOM]"], "desc"="Custom settings with no automatic mode switching.", "id" = AALARM_MODE_CUSTOM),
+ "mode[AALARM_MODE_OFF]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_OFF]"], "desc"="Shuts off vents and scrubbers", "id" = AALARM_MODE_OFF),
+ "mode[AALARM_MODE_FLOOD]" = list("name"=GLOB.aalarm_modes["[AALARM_MODE_FLOOD]"], "desc"="Shuts off scrubbers and opens vents", "emagonly" = TRUE, "id" = AALARM_MODE_FLOOD)
)
data["mode"] = mode
data["presets"] = list(
@@ -872,6 +897,8 @@
message_admins("[key_name_admin(usr)] attempted to href-exploit an air alarm to control another object!!! ")
return
+ mode = AALARM_MODE_CUSTOM
+
// Its a vent. Handle
if(istype(U, /obj/machinery/atmospherics/unary/vent_pump))
var/obj/machinery/atmospherics/unary/vent_pump/V = U
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm b/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm
index 1aa7e9fff815..f88104e808b5 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/passive_vent.dm
@@ -44,7 +44,7 @@
if(pressure_delta > 0)
// transfer from pipe air to environment
if((vent.air_contents.total_moles() > 0) && (vent.air_contents.temperature() > 0))
- var/transfer_moles = pressure_delta * environment.volume / (vent.air_contents.temperature() * R_IDEAL_GAS_EQUATION)
+ var/transfer_moles = pressure_delta * vent.air_contents.volume / (vent.air_contents.temperature() * R_IDEAL_GAS_EQUATION)
transfer_moles = min(transfer_moles, vent.volume)
var/datum/gas_mixture/removed = vent.air_contents.remove(transfer_moles)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
index e59f55d0b45a..2743bfdd7f92 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
@@ -1,6 +1,5 @@
#define EXTERNAL_PRESSURE_BOUND ONE_ATMOSPHERE
#define INTERNAL_PRESSURE_BOUND 0
-#define PRESSURE_CHECKS 1
/obj/machinery/atmospherics/unary/vent_pump
name = "air vent"
@@ -11,29 +10,27 @@
plane = FLOOR_PLANE
layer = GAS_PIPE_VISIBLE_LAYER + GAS_SCRUBBER_OFFSET
layer_offset = GAS_SCRUBBER_OFFSET
-
can_unwrench = TRUE
- var/open = FALSE
+
+ /// Is the vent open to put a piece of paper in it
+ var/open = FALSE // A living relic of papercult
var/area/initial_loc
- var/releasing = TRUE //FALSE = siphoning, TRUE = releasing
+ /// If false, siphons instead of releasing air
+ var/releasing = TRUE
+ var/max_transfer_joules = 200 /*kPa*/ * 2 * ONE_ATMOSPHERE
var/external_pressure_bound = EXTERNAL_PRESSURE_BOUND
var/internal_pressure_bound = INTERNAL_PRESSURE_BOUND
- var/pressure_checks = PRESSURE_CHECKS
- //1: Do not pass external_pressure_bound
- //2: Do not pass internal_pressure_bound
- //3: Do not pass either
-
- // Used when handling incoming radio signals requesting default settings
- var/external_pressure_bound_default = EXTERNAL_PRESSURE_BOUND
- var/internal_pressure_bound_default = INTERNAL_PRESSURE_BOUND
- var/pressure_checks_default = PRESSURE_CHECKS
+ /// What do we check when releasing/siphoning air - internal or external pressure
+ var/pressure_checks = ONLY_CHECK_EXT_PRESSURE
- var/welded = FALSE // Added for aliens -- TLE
- var/weld_burst_pressure = 50 * ONE_ATMOSPHERE //the (internal) pressure at which welded covers will burst off
+ /// Is this vent welded shut
+ var/welded = FALSE
+ /// How much pressure does there have to be in the pipe to burst the vent open?
+ var/weld_burst_pressure = 50 * ONE_ATMOSPHERE
connect_types = list(CONNECT_TYPE_NORMAL, CONNECT_TYPE_SUPPLY) //connects to regular and supply pipes
@@ -143,26 +140,31 @@
var/environment_pressure = environment.return_pressure()
if(vent_pump.releasing) //internal -> external
var/pressure_delta = 10000
- if(vent_pump.pressure_checks & 1)
+ if(vent_pump.pressure_checks == ONLY_CHECK_EXT_PRESSURE)
+ // Only checks difference between set pressure and environment pressure
pressure_delta = min(pressure_delta, (vent_pump.external_pressure_bound - environment_pressure))
- if(vent_pump.pressure_checks & 2)
+ if(vent_pump.pressure_checks == ONLY_CHECK_INT_PRESSURE)
pressure_delta = min(pressure_delta, (vent_pump.air_contents.return_pressure() - vent_pump.internal_pressure_bound))
if(pressure_delta > 0.5 && vent_pump.air_contents.temperature() > 0)
- var/transfer_moles = pressure_delta * environment.volume / (vent_pump.air_contents.temperature() * R_IDEAL_GAS_EQUATION)
+ // 1kPa * 1L = 1J
+ var/wanted_joules = pressure_delta * environment.volume
+ var/transfer_moles = min(vent_pump.max_transfer_joules, wanted_joules) / (vent_pump.air_contents.temperature() * R_IDEAL_GAS_EQUATION)
var/datum/gas_mixture/removed = vent_pump.air_contents.remove(transfer_moles)
environment.merge(removed)
vent_pump.parent.update = TRUE
else //external -> internal
var/pressure_delta = 10000
- if(vent_pump.pressure_checks & 1)
+ if(vent_pump.pressure_checks == ONLY_CHECK_EXT_PRESSURE)
pressure_delta = min(pressure_delta, (environment_pressure - vent_pump.external_pressure_bound))
- if(vent_pump.pressure_checks & 2)
+ if(vent_pump.pressure_checks == ONLY_CHECK_INT_PRESSURE)
pressure_delta = min(pressure_delta, (vent_pump.internal_pressure_bound - vent_pump.air_contents.return_pressure()))
if(pressure_delta > 0.5 && environment.temperature() > 0)
- var/transfer_moles = pressure_delta * vent_pump.air_contents.volume / (environment.temperature() * R_IDEAL_GAS_EQUATION)
+ // 1kPa * 1L = 1J
+ var/wanted_joules = pressure_delta * environment.volume
+ var/transfer_moles = min(vent_pump.max_transfer_joules, wanted_joules) / (environment.temperature() * R_IDEAL_GAS_EQUATION)
var/datum/gas_mixture/removed = environment.remove(transfer_moles)
vent_pump.air_contents.merge(removed)
vent_pump.parent.update = TRUE
@@ -252,4 +254,3 @@
#undef EXTERNAL_PRESSURE_BOUND
#undef INTERNAL_PRESSURE_BOUND
-#undef PRESSURE_CHECKS
diff --git a/code/modules/awaymissions/zlevel_helpers.dm b/code/modules/awaymissions/zlevel_helpers.dm
index d624671002b2..50da68cfb319 100644
--- a/code/modules/awaymissions/zlevel_helpers.dm
+++ b/code/modules/awaymissions/zlevel_helpers.dm
@@ -39,50 +39,3 @@
for(var/otherthing in T)
qdel(otherthing)
T.ChangeTurf(T.baseturf)
-
-/datum/map_template/ruin/proc/try_to_place(z,allowed_areas)
- var/sanity = PLACEMENT_TRIES
- while(sanity > 0)
- sanity--
- var/width_border = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD + round(width / 2)
- var/height_border = TRANSITIONEDGE + SPACERUIN_MAP_EDGE_PAD + round(height / 2)
- var/turf/central_turf = locate(rand(width_border, world.maxx - width_border), rand(height_border, world.maxy - height_border), z)
- var/valid = TRUE
-
- for(var/turf/check in get_affected_turfs(central_turf,1))
- var/area/new_area = get_area(check)
- if(!(istype(new_area, allowed_areas)) || check.flags & NO_RUINS)
- valid = FALSE
- break
-
- if(!valid)
- continue
-
- log_world("Ruin \"[name]\" placed at ([central_turf.x], [central_turf.y], [central_turf.z])")
-
- for(var/i in get_affected_turfs(central_turf, 1))
- var/turf/T = i
- for(var/obj/structure/spawner/nest in T)
- qdel(nest)
- for(var/mob/living/simple_animal/monster in T)
- qdel(monster)
- for(var/obj/structure/flora/ash/plant in T)
- qdel(plant)
-
- load(central_turf,centered = TRUE)
- loaded++
-
- for(var/turf/T in get_affected_turfs(central_turf, 1))
- T.flags |= NO_RUINS
-
- new /obj/effect/landmark/ruin(central_turf, src)
-
- var/map_filename = splittext(mappath, "/")
- map_filename = map_filename[length(map_filename)]
- SSblackbox.record_feedback("associative", "ruin_placement", 1, list(
- "map" = map_filename,
- "coords" = "[central_turf.x],[central_turf.y],[central_turf.z]"
- ))
-
- return TRUE
- return FALSE
diff --git a/code/modules/client/preference/character.dm b/code/modules/client/preference/character.dm
index 1196cf946cbc..c5e9e6937c40 100644
--- a/code/modules/client/preference/character.dm
+++ b/code/modules/client/preference/character.dm
@@ -1539,6 +1539,17 @@
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-norm"), ICON_OVERLAY)
if(4)
clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
+ if(JOB_INSTRUCTOR)
+ clothes_s = new /icon('icons/mob/clothing/under/procedure.dmi', "trainer_s")
+ clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "laceups"), ICON_UNDERLAY)
+ clothes_s.Blend(new /icon('icons/mob/clothing/suit.dmi', "trainercoat"), ICON_OVERLAY)
+ switch(backbag)
+ if(2)
+ clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "securitypack"), ICON_OVERLAY)
+ if(3)
+ clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel-norm"), ICON_OVERLAY)
+ if(4)
+ clothes_s.Blend(new /icon('icons/mob/clothing/back.dmi', "satchel"), ICON_OVERLAY)
if(disabilities & DISABILITY_FLAG_NEARSIGHTED)
preview_icon.Blend(new /icon('icons/mob/clothing/eyes.dmi', "glasses"), ICON_OVERLAY)
@@ -2048,6 +2059,10 @@
if(job.hidden_from_job_prefs)
continue
+
+ if(job.mentor_only)
+ if(!check_rights(R_MENTOR | R_ADMIN, FALSE, user))
+ continue
// ===== SS220 ADD - NEW JOBS ======
// ============= START =============
@@ -2080,6 +2095,7 @@
if(jobban_isbanned(user, job.title))
html += "[rank] \[BANNED] "
continue
+
var/restrictions = job.get_exp_restrictions(user.client)
if(restrictions)
html += "[rank] \[[restrictions]] "
diff --git a/code/modules/client/preference/loadout/loadout_accessories.dm b/code/modules/client/preference/loadout/loadout_accessories.dm
index a4a8f50368c0..f63e945c3afd 100644
--- a/code/modules/client/preference/loadout/loadout_accessories.dm
+++ b/code/modules/client/preference/loadout/loadout_accessories.dm
@@ -16,66 +16,6 @@
slot = ITEM_SLOT_ACCESSORY
sort_category = "Accessories"
-/datum/gear/accessory/scarf
- display_name = "Scarf"
- path = /obj/item/clothing/accessory/scarf
-
-/datum/gear/accessory/scarf/red
- display_name = "Scarf, red"
- path = /obj/item/clothing/accessory/scarf/red
-
-/datum/gear/accessory/scarf/green
- display_name = "Scarf, green"
- path = /obj/item/clothing/accessory/scarf/green
-
-/datum/gear/accessory/scarf/darkblue
- display_name = "Scarf, dark blue"
- path = /obj/item/clothing/accessory/scarf/darkblue
-
-/datum/gear/accessory/scarf/purple
- display_name = "Scarf, purple"
- path = /obj/item/clothing/accessory/scarf/purple
-
-/datum/gear/accessory/scarf/yellow
- display_name = "Scarf, yellow"
- path = /obj/item/clothing/accessory/scarf/yellow
-
-/datum/gear/accessory/scarf/orange
- display_name = "Scarf, orange"
- path = /obj/item/clothing/accessory/scarf/orange
-
-/datum/gear/accessory/scarf/lightblue
- display_name = "Scarf, light blue"
- path = /obj/item/clothing/accessory/scarf/lightblue
-
-/datum/gear/accessory/scarf/white
- display_name = "Scarf, white"
- path = /obj/item/clothing/accessory/scarf/white
-
-/datum/gear/accessory/scarf/black
- display_name = "Scarf, black"
- path = /obj/item/clothing/accessory/scarf/black
-
-/datum/gear/accessory/scarf/zebra
- display_name = "Scarf, zebra"
- path = /obj/item/clothing/accessory/scarf/zebra
-
-/datum/gear/accessory/scarf/christmas
- display_name = "Scarf, christmas"
- path = /obj/item/clothing/accessory/scarf/christmas
-
-/datum/gear/accessory/scarf/stripedred
- display_name = "Scarf, striped red"
- path = /obj/item/clothing/accessory/stripedredscarf
-
-/datum/gear/accessory/scarf/stripedgreen
- display_name = "Scarf, striped green"
- path = /obj/item/clothing/accessory/stripedgreenscarf
-
-/datum/gear/accessory/scarf/stripedblue
- display_name = "Scarf, striped blue"
- path = /obj/item/clothing/accessory/stripedbluescarf
-
/datum/gear/accessory/holobadge
display_name = "Holobadge, pin"
path = /obj/item/clothing/accessory/holobadge
@@ -86,27 +26,6 @@
path = /obj/item/clothing/accessory/holobadge/cord
allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer")
-/datum/gear/accessory/tieblue
- display_name = "Tie, blue"
- path = /obj/item/clothing/accessory/blue
-
-/datum/gear/accessory/tiered
- display_name = "Tie, red"
- path = /obj/item/clothing/accessory/red
-
-/datum/gear/accessory/tieblack
- display_name = "Tie, black"
- path = /obj/item/clothing/accessory/black
-
-/datum/gear/accessory/tiehorrible
- display_name = "Tie, vomit green"
- path = /obj/item/clothing/accessory/horrible
-
-/datum/gear/accessory/stethoscope
- display_name = "Stethoscope"
- path = /obj/item/clothing/accessory/stethoscope
- allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Paramedic")
-
/datum/gear/accessory/cowboyshirt
display_name = "Cowboy shirt, black"
path = /obj/item/clothing/accessory/cowboyshirt
@@ -147,22 +66,6 @@
display_name = "Cowboy shirt, short sleeved navy"
path = /obj/item/clothing/accessory/cowboyshirt/navy/short_sleeved
-/datum/gear/accessory/locket/silver
- display_name = "Silver locket"
- path = /obj/item/clothing/accessory/necklace/locket/silver
-
-/datum/gear/accessory/locket
- display_name = "Gold locket"
- path = /obj/item/clothing/accessory/necklace/locket
-
-/datum/gear/accessory/necklace/long
- display_name = "Large necklace"
- path = /obj/item/clothing/accessory/necklace/long
-
-/datum/gear/accessory/necklace
- display_name = "Simple necklace"
- path = /obj/item/clothing/accessory/necklace
-
/datum/gear/accessory/corset
display_name = "Corset, black"
path = /obj/item/clothing/accessory/corset
@@ -233,7 +136,7 @@
/datum/gear/accessory/armband_job/procedure
display_name = "Armband, procedure"
path = /obj/item/clothing/accessory/armband/procedure
- allowed_roles = list("Captain", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent")
+ allowed_roles = list("Captain", "Nanotrasen Representative", "Magistrate", "Internal Affairs Agent", "Nanotrasen Career Trainer")
/datum/gear/accessory/armband_job/service
display_name = "Armband, service"
diff --git a/code/modules/client/preference/loadout/loadout_donor.dm b/code/modules/client/preference/loadout/loadout_donor.dm
index aad1a4f22b6a..b2d6184a1674 100644
--- a/code/modules/client/preference/loadout/loadout_donor.dm
+++ b/code/modules/client/preference/loadout/loadout_donor.dm
@@ -30,7 +30,7 @@
/datum/gear/donor/furcape
display_name = "Fur Cape"
- path = /obj/item/clothing/suit/furcape
+ path = /obj/item/clothing/neck/cloak/furcape
/datum/gear/donor/furcoat
display_name = "Fur Coat"
@@ -76,6 +76,20 @@
display_name = "Fur Cap"
path = /obj/item/clothing/head/furcap
+/datum/gear/donor/welding_blueflame
+ display_name = "Blue flame decal welding helmet"
+ path = /obj/item/clothing/head/welding/flamedecal/blue
+ allowed_roles = list("Chief Engineer", "Station Engineer", "Life Support Specialist", "Roboticist")
+ donator_tier = 2
+ cost = 2
+
+/datum/gear/donor/welding_white
+ display_name = "White decal welding helmet"
+ path = /obj/item/clothing/head/welding/white
+ allowed_roles = list("Chief Engineer", "Station Engineer", "Life Support Specialist", "Roboticist")
+ donator_tier = 2
+ cost = 2
+
/datum/gear/donor/fawkes
display_name = "Guy Fawkes mask"
path = /obj/item/clothing/mask/fawkes
diff --git a/code/modules/client/preference/loadout/loadout_neck.dm b/code/modules/client/preference/loadout/loadout_neck.dm
new file mode 100644
index 000000000000..c8879c7201fd
--- /dev/null
+++ b/code/modules/client/preference/loadout/loadout_neck.dm
@@ -0,0 +1,206 @@
+/*
+######################################################################################
+## ##
+## IMPORTANT README ##
+## ##
+## Changing any /datum/gear typepaths --WILL-- break people's loadouts. ##
+## The typepaths are stored directly in the `characters.gear` column of the DB. ##
+## Please inform the server host if you wish to modify any of these. ##
+## ##
+######################################################################################
+*/
+
+
+/datum/gear/neck
+ main_typepath = /datum/gear/neck
+ slot = ITEM_SLOT_NECK
+ sort_category = "Neck"
+
+/datum/gear/neck/tie
+ display_name = "Tie, blue"
+ path = /obj/item/clothing/neck/tie/blue
+
+/datum/gear/neck/tie/red
+ display_name = "Tie, red"
+ path = /obj/item/clothing/neck/tie/red
+
+/datum/gear/neck/tie/black
+ display_name = "Tie, black"
+ path = /obj/item/clothing/neck/tie/black
+
+/datum/gear/neck/tie/horrible
+ display_name = "Tie, vomit green"
+ path = /obj/item/clothing/neck/tie/horrible
+
+/datum/gear/neck/scarf
+ display_name = "Scarf, red"
+ path = /obj/item/clothing/neck/scarf/red
+
+/datum/gear/neck/scarf/green
+ display_name = "Scarf, green"
+ path = /obj/item/clothing/neck/scarf/green
+
+/datum/gear/neck/scarf/darkblue
+ display_name = "Scarf, dark blue"
+ path = /obj/item/clothing/neck/scarf/darkblue
+
+/datum/gear/neck/scarf/purple
+ display_name = "Scarf, purple"
+ path = /obj/item/clothing/neck/scarf/purple
+
+/datum/gear/neck/scarf/yellow
+ display_name = "Scarf, yellow"
+ path = /obj/item/clothing/neck/scarf/yellow
+
+/datum/gear/neck/scarf/orange
+ display_name = "Scarf, orange"
+ path = /obj/item/clothing/neck/scarf/orange
+
+/datum/gear/neck/scarf/lightblue
+ display_name = "Scarf, light blue"
+ path = /obj/item/clothing/neck/scarf/lightblue
+
+/datum/gear/neck/scarf/white
+ display_name = "Scarf, white"
+ path = /obj/item/clothing/neck/scarf/white
+
+/datum/gear/neck/scarf/black
+ display_name = "Scarf, black"
+ path = /obj/item/clothing/neck/scarf/black
+
+/datum/gear/neck/scarf/zebra
+ display_name = "Scarf, zebra"
+ path = /obj/item/clothing/neck/scarf/zebra
+
+/datum/gear/neck/scarf/christmas
+ display_name = "Scarf, christmas"
+ path = /obj/item/clothing/neck/scarf/christmas
+
+/datum/gear/neck/scarf/stripedred
+ display_name = "Scarf, striped red"
+ path = /obj/item/clothing/neck/scarf/stripedred
+
+/datum/gear/neck/scarf/stripedgreen
+ display_name = "Scarf, striped green"
+ path = /obj/item/clothing/neck/scarf/stripedgreen
+
+/datum/gear/neck/scarf/stripedblue
+ display_name = "Scarf, striped blue"
+ path = /obj/item/clothing/neck/scarf/stripedblue
+
+/datum/gear/neck/stethoscope
+ display_name = "Stethoscope"
+ path = /obj/item/clothing/neck/stethoscope
+ allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Paramedic")
+
+/datum/gear/neck/locket
+ display_name = "Gold locket"
+ path = /obj/item/clothing/neck/necklace/locket
+
+/datum/gear/neck/locket/silver
+ display_name = "Silver locket"
+ path = /obj/item/clothing/neck/necklace/locket/silver
+
+/datum/gear/neck/necklace
+ display_name = "Simple necklace"
+ path = /obj/item/clothing/neck/necklace
+
+/datum/gear/neck/necklace/long
+ display_name = "Large necklace"
+ path = /obj/item/clothing/neck/necklace/long
+
+//Cloaks and mantles
+
+/datum/gear/neck/cloak
+ display_name = "Cloak"
+ path = /obj/item/clothing/neck/cloak
+
+/datum/gear/neck/cloak/job
+ main_typepath = /datum/gear/neck/cloak/job
+ subtype_selection_cost = FALSE
+
+/datum/gear/neck/cloak/job/captain
+ display_name = "Cloak, captain"
+ path = /obj/item/clothing/neck/cloak/captain
+ allowed_roles = list("Captain")
+
+/datum/gear/neck/cloak/job/hos
+ display_name = "Cloak, head of security"
+ path = /obj/item/clothing/neck/cloak/head_of_security
+ allowed_roles = list("Head of Security")
+
+/datum/gear/neck/cloak/job/hop
+ display_name = "Cloak, head of personnel"
+ path = /obj/item/clothing/neck/cloak/head_of_personnel
+ allowed_roles = list("Head of Personnel")
+
+/datum/gear/neck/cloak/job/rd
+ display_name = "Cloak, research director"
+ path = /obj/item/clothing/neck/cloak/research_director
+ allowed_roles = list("Research Director")
+
+/datum/gear/neck/cloak/job/ce
+ display_name = "Cloak, chief engineer"
+ path = /obj/item/clothing/neck/cloak/chief_engineer
+ allowed_roles = list("Chief Engineer")
+
+/datum/gear/neck/cloak/job/cmo
+ display_name = "Cloak, chief medical officer"
+ path = /obj/item/clothing/neck/cloak/chief_medical_officer
+ allowed_roles = list("Chief Medical Officer")
+
+/datum/gear/neck/cloak/job/qm
+ display_name = "Cloak, quartermaster"
+ path = /obj/item/clothing/neck/cloak/quartermaster
+ allowed_roles = list("Quartermaster")
+
+/datum/gear/neck/old_scarf
+ display_name = "Old scarf"
+ path = /obj/item/clothing/neck/cloak/old
+
+/datum/gear/neck/regal_shawl
+ display_name = "Regal shawl"
+ path = /obj/item/clothing/neck/cloak/regal
+
+/datum/gear/neck/mantle
+ display_name = "Mantle"
+ path = /obj/item/clothing/neck/cloak/mantle
+
+/datum/gear/neck/mantle/job
+ main_typepath = /datum/gear/neck/mantle/job
+ subtype_selection_cost = FALSE
+
+/datum/gear/neck/mantle/job/captain
+ display_name = "Mantle, captain"
+ path = /obj/item/clothing/neck/cloak/captain_mantle
+ allowed_roles = list("Captain")
+
+/datum/gear/neck/mantle/job/hos
+ display_name = "Mantle, head of security"
+ path = /obj/item/clothing/neck/cloak/hos_mantle
+ allowed_roles = list("Head of Security")
+
+/datum/gear/neck/mantle/job/hop
+ display_name = "Mantle, head of personnel"
+ path = /obj/item/clothing/neck/cloak/hop_mantle
+ allowed_roles = list("Head of Personnel")
+
+/datum/gear/neck/mantle/job/rd
+ display_name = "Mantle, research director"
+ path = /obj/item/clothing/neck/cloak/rd_mantle
+ allowed_roles = list("Research Director")
+
+/datum/gear/neck/mantle/job/ce
+ display_name = "Mantle, chief engineer"
+ path = /obj/item/clothing/neck/cloak/ce_mantle
+ allowed_roles = list("Chief Engineer")
+
+/datum/gear/neck/mantle/job/cmo
+ display_name = "Mantle, chief medical officer"
+ path = /obj/item/clothing/neck/cloak/cmo_mantle
+ allowed_roles = list("Chief Medical Officer")
+
+/datum/gear/neck/mantle/job/qm
+ display_name = "Mantle, quartermaster"
+ path = /obj/item/clothing/neck/cloak/qm_mantle
+ allowed_roles = list("Quartermaster")
diff --git a/code/modules/client/preference/loadout/loadout_suit.dm b/code/modules/client/preference/loadout/loadout_suit.dm
index 4023a2a82e23..3ad597f09bb9 100644
--- a/code/modules/client/preference/loadout/loadout_suit.dm
+++ b/code/modules/client/preference/loadout/loadout_suit.dm
@@ -252,53 +252,6 @@
display_name = "Suit jacket, purple"
path = /obj/item/clothing/suit/storage/iaa/purplejacket
-//Mantles!
-/datum/gear/suit/mantle
- display_name = "Mantle"
- path = /obj/item/clothing/suit/mantle
-
-/datum/gear/suit/old_scarf
- display_name = "Old scarf"
- path = /obj/item/clothing/suit/mantle/old
-
-/datum/gear/suit/regal_shawl
- display_name = "Regal shawl"
- path = /obj/item/clothing/suit/mantle/regal
-
-/datum/gear/suit/mantle/job
- main_typepath = /datum/gear/suit/mantle/job
- subtype_selection_cost = FALSE
-
-/datum/gear/suit/mantle/job/captain
- display_name = "Mantle, captain"
- path = /obj/item/clothing/suit/mantle/armor/captain
- allowed_roles = list("Captain")
-
-/datum/gear/suit/mantle/job/ce
- display_name = "Mantle, chief engineer"
- path = /obj/item/clothing/suit/mantle/chief_engineer
- allowed_roles = list("Chief Engineer")
-
-/datum/gear/suit/mantle/job/cmo
- display_name = "Mantle, chief medical officer"
- path = /obj/item/clothing/suit/mantle/labcoat/chief_medical_officer
- allowed_roles = list("Chief Medical Officer")
-
-/datum/gear/suit/mantle/job/hos
- display_name = "Mantle, head of security"
- path = /obj/item/clothing/suit/mantle/armor
- allowed_roles = list("Head of Security")
-
-/datum/gear/suit/mantle/job/hop
- display_name = "Mantle, head of personnel"
- path = /obj/item/clothing/suit/mantle/armor/hop
- allowed_roles = list("Head of Personnel")
-
-/datum/gear/suit/mantle/job/rd
- display_name = "Mantle, research director"
- path = /obj/item/clothing/suit/mantle/labcoat
- allowed_roles = list("Research Director")
-
//Robes!
/datum/gear/suit/witch
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index 97b535890a1a..5d5ac61035e5 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -4,10 +4,11 @@
#define MODE_MESON "meson"
#define MODE_TRAY "t-ray"
#define MODE_RAD "radiation"
+#define MODE_PRESSURE "pressure"
/obj/item/clothing/glasses/meson/engine
name = "engineering scanner goggles"
- desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, the T-ray Scanner mode lets you see underfloor objects such as cables and pipes, and the Radiation Scanner mode lets you see objects contaminated by radiation."
+ desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, the T-ray Scanner mode lets you see underfloor objects such as cables and pipes, the Radiation Scanner mode lets you see objects contaminated by radiation, and the Pressure Scanner mode lets you visualize air pressure."
icon_state = "trayson-meson"
item_state = "trayson-meson"
actions_types = list(/datum/action/item_action/toggle_mode)
@@ -37,6 +38,11 @@
if(active_on_equip_rad && mode == MODE_RAD && slot == ITEM_SLOT_EYES)
ADD_TRAIT(user, SM_HALLUCINATION_IMMUNE, "meson_glasses[UID()]")
+ if(mode == MODE_PRESSURE && slot == ITEM_SLOT_EYES)
+ ADD_TRAIT(user, TRAIT_PRESSURE_VISION, "meson_glasses[UID()]")
+ if(mode == MODE_PRESSURE && slot != ITEM_SLOT_EYES)
+ REMOVE_TRAIT(user, TRAIT_PRESSURE_VISION, "meson_glasses[UID()]")
+
/obj/item/clothing/glasses/meson/engine/proc/toggle_mode(mob/user, voluntary)
mode = modes[mode]
to_chat(user, "[voluntary ? "You turn the goggles" : "The goggles turn"] [mode ? "to [mode] mode" : "off"][voluntary ? "." : "!"] ")
@@ -57,6 +63,12 @@
REMOVE_TRAIT(user, SM_HALLUCINATION_IMMUNE, "meson_glasses[UID()]")
active_on_equip_rad = FALSE
+ if(mode == MODE_PRESSURE)
+ if(!HAS_TRAIT_FROM(user, TRAIT_PRESSURE_VISION, "meson_glasses[UID()]") && user.get_item_by_slot(ITEM_SLOT_EYES) == src)
+ ADD_TRAIT(user, TRAIT_PRESSURE_VISION, "meson_glasses[UID()]")
+ else
+ REMOVE_TRAIT(user, TRAIT_PRESSURE_VISION, "meson_glasses[UID()]")
+
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(H.glasses == src)
@@ -101,17 +113,18 @@
user.update_inv_l_hand()
user.update_inv_r_hand()
-/// atmos techs have lived far too long without tray goggles while those damned engineers get their dual-purpose gogles all to themselves
-/obj/item/clothing/glasses/meson/engine/tray
- name = "optical t-ray scanner"
- icon_state = "trayson-t-ray"
- item_state = "trayson-t-ray"
- desc = "Used by engineering staff to see underfloor objects such as cables and pipes."
+/// Atmospherics techs get their own version with T-ray and an exlusive Pressure view.
+/obj/item/clothing/glasses/meson/engine/atmos
+ name = "atmospherics scanner goggles"
+ icon_state = "trayson-pressure"
+ item_state = "trayson-pressure"
+ desc = "Used by atmospherics techs to visualize pressure, see station structure, and see underfloor objects such as cables and pipes."
range = 2
origin_tech = "materials=3;magnets=2;engineering=2"
- modes = list(MODE_NONE = MODE_TRAY, MODE_TRAY = MODE_NONE)
+ modes = list(MODE_NONE = MODE_PRESSURE, MODE_PRESSURE = MODE_MESON, MODE_MESON = MODE_TRAY, MODE_TRAY = MODE_NONE)
#undef MODE_NONE
#undef MODE_MESON
#undef MODE_TRAY
#undef MODE_RAD
+#undef MODE_PRESSURE
diff --git a/code/modules/clothing/head/beret.dm b/code/modules/clothing/head/beret.dm
index 0d39a0870cd8..0f8fe78cb0af 100644
--- a/code/modules/clothing/head/beret.dm
+++ b/code/modules/clothing/head/beret.dm
@@ -178,6 +178,26 @@
"Drask" = 'icons/mob/clothing/species/drask/head/beret.dmi'
)
+//NT Career Trainer
+/obj/item/clothing/head/beret/nct/black
+ name = "\improper NT Career Trainer's beret"
+ desc = "A beret worn by the mentors and trainers of the Career Training Team. This one is black!"
+ icon_state = "beret_trainerblack"
+
+ sprite_sheets = list(
+ "Vox" = 'icons/mob/clothing/species/vox/head/beret.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/head/beret.dmi'
+ )
+
+/obj/item/clothing/head/beret/nct/green
+ name = "\improper NT Career Trainer's beret"
+ desc = "A beret worn by the mentors and trainers of the Career Training Team. This one is green!"
+ icon_state = "beret_trainergreen"
+
+ sprite_sheets = list(
+ "Vox" = 'icons/mob/clothing/species/vox/head/beret.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/head/beret.dmi'
+ )
//Special Roles
/obj/item/clothing/head/beret/solgov
diff --git a/code/modules/clothing/head/job_hats.dm b/code/modules/clothing/head/job_hats.dm
index 2d9e423cd9f2..2a1b5b6ea744 100644
--- a/code/modules/clothing/head/job_hats.dm
+++ b/code/modules/clothing/head/job_hats.dm
@@ -193,3 +193,14 @@
desc = "A cap coroners wear during autopsies. Keeps their hair from falling into the cadavers. It is as dark as the coroner's humor."
icon_state = "surgcap_black"
dog_fashion = /datum/dog_fashion/head/surgery
+
+// NT Career Trainer
+/obj/item/clothing/head/drilltrainer
+ name = "campaign hat"
+ desc = "A wide-brimmed campaign hat with a drill sergeant feel, worn by Career Trainers to project knowledge and guide new employees with classic style."
+ icon_state = "trainercampaign"
+ item_state = "trainercampaign"
+
+ sprite_sheets = list(
+ "Vox" = 'icons/mob/clothing/species/vox/head.dmi'
+ )
diff --git a/code/modules/clothing/neck/cloaks.dm b/code/modules/clothing/neck/cloaks.dm
index 02ae9f4d4f18..780c61326b2f 100644
--- a/code/modules/clothing/neck/cloaks.dm
+++ b/code/modules/clothing/neck/cloaks.dm
@@ -45,3 +45,74 @@
name = "head of personnel's cloak"
desc = "Worn by the Head of Personnel. It smells faintly of bureaucracy."
icon_state = "hopcloak"
+
+//Mantles.
+
+/obj/item/clothing/neck/cloak/mantle
+ name = "mantle"
+ desc = "A heavy quilted mantle, for keeping your shoulders warm and stylish."
+ icon_state = "mantle"
+ item_state = "mantle"
+
+/obj/item/clothing/neck/cloak/regal
+ name = "regal shawl"
+ desc = "A fancy shawl for nobility, made from high quality materials."
+ icon_state = "regal_mantle"
+ item_state = "regal_mantle"
+
+/obj/item/clothing/neck/cloak/old
+ name = "old wrap"
+ desc = "A tattered fabric wrap, faded over the years. Smells faintly of cigars."
+ icon_state = "old_mantle"
+ item_state = "old_mantle"
+
+/obj/item/clothing/neck/cloak/unathi
+ name = "hide mantle"
+ desc = "A rather grisly selection of cured hides and skin, sewn together to form a ragged mantle."
+ icon_state = "mantle-unathi"
+ item_state = "mantle-unathi"
+ sprite_sheets = list(
+ "Vox" = 'icons/mob/clothing/species/vox/neck.dmi'
+ )
+
+/obj/item/clothing/neck/cloak/captain_mantle
+ name = "captain's mantle"
+ desc = "A piece of fashion for the ruling elite."
+ icon_state = "capmantle"
+ item_state = "capmantle"
+
+/obj/item/clothing/neck/cloak/hos_mantle
+ name = "head of security's shawl"
+ desc = "An unarmored shawl, worn by the Head of Security. Do you dare take up their mantle?"
+ icon_state = "hosmantle"
+ item_state = "hosmantle"
+
+/obj/item/clothing/neck/cloak/hop_mantle
+ name = "head of personnel's shawl"
+ desc = "A shawl for the head of personnel. It's remarkably well kept."
+ icon_state = "hopmantle"
+ item_state = "hopmantle"
+
+/obj/item/clothing/neck/cloak/ce_mantle
+ name = "chief engineer's mantle"
+ desc = "A slick, authoritative mantle designed for the Chief Engineer."
+ icon_state = "cemantle"
+ item_state = "cemantle"
+
+/obj/item/clothing/neck/cloak/cmo_mantle
+ name = "chief medical officer's mantle"
+ desc = "An absorbent, clean cover found around the neck of the Chief Medical Officer."
+ icon_state = "cmomantle"
+ item_state = "cmomantle"
+
+/obj/item/clothing/neck/cloak/qm_mantle
+ name = "quartermaster's mantle"
+ desc = "A shawl for the quartermaster. Keeps the breeze from the vents away from your neck."
+ icon_state = "qmmantle"
+ item_state = "qmmantle"
+
+/obj/item/clothing/neck/cloak/rd_mantle
+ name = "research director's mantle"
+ desc = "A tweed mantle, worn by the Research Director. Smells like science."
+ icon_state = "rdmantle"
+ item_state = "rdmantle"
diff --git a/code/modules/clothing/neck/neck.dm b/code/modules/clothing/neck/neck.dm
new file mode 100644
index 000000000000..bf9b754ed32b
--- /dev/null
+++ b/code/modules/clothing/neck/neck.dm
@@ -0,0 +1,96 @@
+/obj/item/clothing/neck/tie
+ name = "tie"
+ desc = "A neosilk clip-on tie."
+ w_class = WEIGHT_CLASS_SMALL
+ var/under_suit = FALSE
+
+/obj/item/clothing/neck/tie/blue
+ name = "blue tie"
+ icon_state = "bluetie"
+ item_color = "bluetie"
+
+/obj/item/clothing/neck/tie/red
+ name = "red tie"
+ icon_state = "redtie"
+ item_color = "redtie"
+
+/obj/item/clothing/neck/tie/black
+ name = "black tie"
+ icon_state = "blacktie"
+ item_color = "blacktie"
+
+/obj/item/clothing/neck/tie/horrible
+ name = "horrible tie"
+ desc = "A neosilk clip-on tie. This one is disgusting."
+ icon_state = "horribletie"
+ item_color = "horribletie"
+
+/obj/item/clothing/neck/tie/examine(mob/user)
+ . = ..()
+ . += "You can Alt-Click [src] to adjust if it is worn under or over your suit. "
+
+/obj/item/clothing/neck/tie/AltClick(mob/living/carbon/human/user)
+ if(user.stat || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user) || !istype(user))
+ return
+
+ under_suit = !under_suit
+ if(user.neck == src)
+ user.update_inv_neck()
+ to_chat(user, "You adjust [src] to be worn [under_suit ? "under" : "over"] your suit. ")
+
+/obj/item/clothing/neck/stethoscope
+ name = "stethoscope"
+ desc = "An outdated medical apparatus, used to get a rough idea of the condition of the heart and lungs. It also makes you look like you know what you're doing."
+ icon_state = "stethoscope"
+ item_color = "stethoscope"
+
+/obj/item/clothing/neck/stethoscope/attack__legacy__attackchain(mob/living/carbon/human/M, mob/living/user)
+ if(!ishuman(M) || !isliving(user))
+ return ..(M, user)
+
+ if(user == M)
+ user.visible_message("[user] places [src] against [user.p_their()] chest and listens attentively.", "You place [src] against your chest...")
+ else
+ user.visible_message("[user] places [src] against [M]'s chest and listens attentively.", "You place [src] against [M]'s chest...")
+ var/datum/organ/heart/heart_datum = M.get_int_organ_datum(ORGAN_DATUM_HEART)
+ var/datum/organ/lungs/lung_datum = M.get_int_organ_datum(ORGAN_DATUM_LUNGS)
+ if(!lung_datum || !heart_datum)
+ to_chat(user, "You don't hear anything. ")
+ return
+
+ var/obj/item/organ/internal/H = heart_datum.linked_organ
+ var/obj/item/organ/internal/L = lung_datum.linked_organ
+ if(!M.pulse || (!H || !(L && !HAS_TRAIT(M, TRAIT_NOBREATH))))
+ to_chat(user, "You don't hear anything. ")
+ return
+
+ var/color = "notice"
+ if(H)
+ var/heart_sound
+ switch(H.damage)
+ if(0 to 1)
+ heart_sound = "healthy"
+ if(1 to 25)
+ heart_sound = "offbeat"
+ if(25 to 50)
+ heart_sound = "uneven"
+ color = "warning"
+ if(50 to INFINITY)
+ heart_sound = "weak, unhealthy"
+ color = "warning"
+ to_chat(user, "You hear \an [heart_sound] pulse. ")
+
+ if(L)
+ var/lung_sound
+ switch(L.damage)
+ if(0 to 1)
+ lung_sound = "healthy respiration"
+ if(1 to 25)
+ lung_sound = "labored respiration"
+ if(25 to 50)
+ lung_sound = "pained respiration"
+ color = "warning"
+ if(50 to INFINITY)
+ lung_sound = "gurgling"
+ color = "warning"
+ to_chat(user, "You hear [lung_sound]. ")
diff --git a/code/modules/clothing/neck/necklace.dm b/code/modules/clothing/neck/necklace.dm
new file mode 100644
index 000000000000..9a46d7cfadf9
--- /dev/null
+++ b/code/modules/clothing/neck/necklace.dm
@@ -0,0 +1,79 @@
+/obj/item/clothing/neck/necklace
+ name = "necklace"
+ desc = "A simple necklace."
+ icon_state = "necklace"
+ item_state = "necklace"
+ item_color = "necklace"
+ w_class = WEIGHT_CLASS_SMALL
+
+/obj/item/clothing/neck/necklace/long
+ name = "large necklace"
+ desc = "A large necklace."
+ icon_state = "necklacelong"
+ item_state = "necklacelong"
+ item_color = "necklacelong"
+
+/obj/item/clothing/neck/necklace/dope
+ name = "gold necklace"
+ desc = "Damn, it feels good to be a gangster."
+ icon_state = "bling"
+ item_state = "bling"
+ item_color = "bling"
+
+/obj/item/clothing/neck/necklace/locket
+ name = "gold locket"
+ desc = "A gold locket that seems to have space for a photo within."
+ icon_state = "locketgold"
+ item_state = "locketgold"
+ item_color = "locketgold"
+ var/base_icon
+ var/open
+ /// Item inside locket.
+ var/obj/item/held
+
+/obj/item/clothing/neck/necklace/locket/Destroy()
+ QDEL_NULL(held)
+ return ..()
+
+
+/obj/item/clothing/neck/necklace/locket/attack_self__legacy__attackchain(mob/user)
+ if(!base_icon)
+ base_icon = icon_state
+
+ if(!("[base_icon]_open" in icon_states(icon)))
+ to_chat(user, "[src] doesn't seem to open.")
+ return
+
+ open = !open
+ to_chat(user, "You flip [src] [open ? "open" : "closed"].")
+ if(open)
+ icon_state = "[base_icon]_open"
+ if(held)
+ to_chat(user, "[held] falls out! ")
+ held.forceMove(get_turf(user))
+ held = null
+ else
+ icon_state = "[base_icon]"
+
+/obj/item/clothing/neck/necklace/locket/attackby__legacy__attackchain(obj/item/O, mob/user)
+ if(!open)
+ to_chat(user, "You have to open it first.")
+ return
+
+ if(istype(O, /obj/item/paper) || istype(O, /obj/item/photo))
+ if(held)
+ to_chat(usr, "[src] already has something inside it.")
+ else
+ to_chat(usr, "You slip [O] into [src].")
+ user.drop_item()
+ O.forceMove(src)
+ held = O
+ else
+ return ..()
+
+/obj/item/clothing/neck/necklace/locket/silver
+ name = "silver locket"
+ desc = "A silver locket that seems to have space for a photo within."
+ icon_state = "locketsilver"
+ item_state = "locketsilver"
+ item_color = "locketsilver"
diff --git a/code/modules/clothing/neck/scarfs.dm b/code/modules/clothing/neck/scarfs.dm
new file mode 100644
index 000000000000..ffa1a4b0dd8f
--- /dev/null
+++ b/code/modules/clothing/neck/scarfs.dm
@@ -0,0 +1,78 @@
+/obj/item/clothing/neck/scarf
+ name = "scarf"
+ desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
+ w_class = WEIGHT_CLASS_SMALL
+ dog_fashion = /datum/dog_fashion/head
+
+/obj/item/clothing/neck/scarf/red
+ name = "red scarf"
+ icon_state = "redscarf"
+ item_color = "redscarf"
+
+/obj/item/clothing/neck/scarf/green
+ name = "green scarf"
+ icon_state = "greenscarf"
+ item_color = "greenscarf"
+
+/obj/item/clothing/neck/scarf/darkblue
+ name = "dark blue scarf"
+ icon_state = "darkbluescarf"
+ item_color = "darkbluescarf"
+
+/obj/item/clothing/neck/scarf/purple
+ name = "purple scarf"
+ icon_state = "purplescarf"
+ item_color = "purplescarf"
+
+/obj/item/clothing/neck/scarf/yellow
+ name = "yellow scarf"
+ icon_state = "yellowscarf"
+ item_color = "yellowscarf"
+
+/obj/item/clothing/neck/scarf/orange
+ name = "orange scarf"
+ icon_state = "orangescarf"
+ item_color = "orangescarf"
+
+/obj/item/clothing/neck/scarf/lightblue
+ name = "light blue scarf"
+ icon_state = "lightbluescarf"
+ item_color = "lightbluescarf"
+
+/obj/item/clothing/neck/scarf/white
+ name = "white scarf"
+ icon_state = "whitescarf"
+ item_color = "whitescarf"
+
+/obj/item/clothing/neck/scarf/black
+ name = "black scarf"
+ icon_state = "blackscarf"
+ item_color = "blackscarf"
+
+/obj/item/clothing/neck/scarf/zebra
+ name = "zebra scarf"
+ icon_state = "zebrascarf"
+ item_color = "zebrascarf"
+
+/obj/item/clothing/neck/scarf/christmas
+ name = "christmas scarf"
+ icon_state = "christmasscarf"
+ item_color = "christmasscarf"
+
+/obj/item/clothing/neck/scarf/stripedred
+ name = "striped red scarf"
+ icon_state = "stripedredscarf"
+ item_color = "stripedredscarf"
+ dog_fashion = null
+
+/obj/item/clothing/neck/scarf/stripedgreen
+ name = "striped green scarf"
+ icon_state = "stripedgreenscarf"
+ item_color = "stripedgreenscarf"
+ dog_fashion = null
+
+/obj/item/clothing/neck/scarf/stripedblue
+ name = "striped blue scarf"
+ icon_state = "stripedbluescarf"
+ item_color = "stripedbluescarf"
+ dog_fashion = null
diff --git a/code/modules/clothing/spacesuits/ert_hardsuits.dm b/code/modules/clothing/spacesuits/ert_hardsuits.dm
index 6a41c7d41375..158cdde67748 100644
--- a/code/modules/clothing/spacesuits/ert_hardsuits.dm
+++ b/code/modules/clothing/spacesuits/ert_hardsuits.dm
@@ -56,6 +56,7 @@
desc = "A powered combat hardsuit produced by Citadel Armories. Decently armored, environmentally sealed, and fire-resistant."
icon_state = "ert_commander"
item_state = "suit-command"
+ slowdown = 0
w_class = WEIGHT_CLASS_NORMAL
armor = list(MELEE = 40, BULLET = 15, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 50, FIRE = 200, ACID = 200)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/t_scanner, /obj/item/rcd, /obj/item/crowbar, \
diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm
index 91cfe6e8e4cd..b72c0f71d524 100644
--- a/code/modules/clothing/spacesuits/plasmamen.dm
+++ b/code/modules/clothing/spacesuits/plasmamen.dm
@@ -359,3 +359,9 @@
if(!H.is_in_hands(src) || HAS_TRAIT(H, TRAIT_HANDS_BLOCKED))
return FALSE
return TRUE
+
+/obj/item/clothing/head/helmet/space/plasmaman/trainer
+ name = "\improper NT Career Trainer envirosuit helmet"
+ desc = "A plasmaman envirohelm designed for the nanotrasen career trainer."
+ icon_state = "trainer_envirohelm"
+ item_state = "trainer_envirohelm"
diff --git a/code/modules/clothing/suits/job_suits.dm b/code/modules/clothing/suits/job_suits.dm
index 59d1a603287e..5fd8bd0a31bb 100644
--- a/code/modules/clothing/suits/job_suits.dm
+++ b/code/modules/clothing/suits/job_suits.dm
@@ -29,13 +29,6 @@
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi'
)
-/obj/item/clothing/suit/mantle/armor/captain
- name = "captain's mantle"
- desc = "An armor-plated piece of fashion for the ruling elite. Protect your upper half in style."
- icon_state = "capmantle"
- item_state = "capmantle"
- armor = list(MELEE = 50, BULLET = 35, LASER = 50, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50)
-
//Chaplain
/obj/item/clothing/suit/hooded/chaplain_hoodie
name = "chaplain hoodie"
@@ -115,21 +108,6 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO
allowed = list(/obj/item/kitchen/knife)
-//Chief Engineer
-/obj/item/clothing/suit/mantle/chief_engineer
- name = "chief engineer's mantle"
- desc = "A slick, authoritative cloak designed for the Chief Engineer."
- icon_state = "cemantle"
- item_state = "cemantle"
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/t_scanner, /obj/item/rcd, /obj/item/rpd)
-
-//Chief Medical Officer
-/obj/item/clothing/suit/mantle/labcoat/chief_medical_officer
- name = "chief medical officer's mantle"
- desc = "An absorbent, clean cover found on the shoulders of the Chief Medical Officer."
- icon_state = "cmomantle"
- item_state = "cmomantle"
-
//Detective
/obj/item/clothing/suit/storage/det_suit
name = "coat"
@@ -266,29 +244,7 @@
icon_state = "suitjacket_purple"
item_state = "suitjacket_purple"
-//Head of Security
-/obj/item/clothing/suit/mantle/armor
- name = "armored shawl"
- desc = "A reinforced shawl, worn by the Head of Security. Do you dare take up their mantle?"
- icon_state = "hosmantle"
- item_state = "hosmantle"
- allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic, /obj/item/kitchen/knife/combat)
- armor = list(MELEE = 20, BULLET = 20, LASER = 20, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50)
- min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
- heat_protection = UPPER_TORSO|ARMS
- max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
- strip_delay = 60
- put_on_delay = 40
- resistance_flags = NONE
-
//Head of Personnel
-/obj/item/clothing/suit/mantle/armor/hop
- name = "head of personnel's shawl"
- desc = "An armored shawl for the head of personnel. It's remarkably well kept."
- icon_state = "hopmantle"
- item_state = "hopmantle"
- armor = list(MELEE = 15, BULLET = 10, LASER = 15, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50)
-
/obj/item/clothing/suit/hopcoat
name = "head of personnel's coat"
desc = "A big coat for the Head of Personnel who wants to make a fashion statement. Has armour woven within the fabric."
@@ -304,14 +260,6 @@
)
//Quartermaster
-/obj/item/clothing/suit/mantle/qm
- name = "quartermaster's mantle"
- desc = "An armored shawl for the quartermaster. Keeps the breeze from the vents away from your neck."
- icon_state = "qmmantle"
- item_state = "qmmantle"
- allowed = list(/obj/item/paper, /obj/item/clipboard, /obj/item/gun/energy/kinetic_accelerator, /obj/item/melee/baton, /obj/item/flashlight/seclite, /obj/item/melee/classic_baton/telescopic, /obj/item/melee/knuckleduster, /obj/item/rcs)
- armor = list(MELEE = 15, BULLET = 10, LASER = 15, ENERGY = 5, BOMB = 15, RAD = 0, FIRE = 50, ACID = 50)
-
/obj/item/clothing/suit/qmcoat
name = "quartermaster's coat"
desc = "A brown trenchcoat to show the station you mean business. Has armor woven within the fabric."
@@ -402,11 +350,18 @@
item_state = "surgical"
allowed = list(/obj/item/scalpel, /obj/item/surgical_drapes, /obj/item/cautery, /obj/item/hemostat, /obj/item/retractor)
-//Research Director
-/obj/item/clothing/suit/mantle/labcoat
- name = "research director's mantle"
- desc = "A tweed mantle, worn by the Research Director. Smells like science."
- icon_state = "rdmantle"
- item_state = "rdmantle"
- allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/applicator, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper)
- armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 50)
+//NT Career Trainer
+/obj/item/clothing/suit/storage/nct
+ name = "\improper NT Career Trainer's jacket"
+ desc = "A sharp black coat with beige trim around the cuffs and collar, offering a mix of professionalism and approachability."
+ icon_state = "trainercoat"
+ blood_overlay_type = "coat"
+ body_parts_covered = UPPER_TORSO|ARMS
+ ignore_suitadjust = TRUE
+
+ sprite_sheets = list(
+ "Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
+ "Kidan" = 'icons/mob/clothing/species/kidan/suit.dmi',
+ "Drask" = 'icons/mob/clothing/species/drask/suit.dmi',
+ "Grey" = 'icons/mob/clothing/species/grey/suit.dmi',
+ )
diff --git a/code/modules/clothing/suits/misc_suits.dm b/code/modules/clothing/suits/misc_suits.dm
index 8be566f41237..5b5f3db86d6f 100644
--- a/code/modules/clothing/suits/misc_suits.dm
+++ b/code/modules/clothing/suits/misc_suits.dm
@@ -1369,28 +1369,6 @@
icon_state = "ladiesredvictoriancoat"
item_state = "ladiesredvictoriancoat"
-//Mantles!
-/obj/item/clothing/suit/mantle
- name = "mantle"
- desc = "A heavy quilted mantle, for keeping your shoulders warm and stylish."
- icon_state = "mantle"
- item_state = "mantle"
- body_parts_covered = UPPER_TORSO|ARMS
- cold_protection = UPPER_TORSO|ARMS
- min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
-
-/obj/item/clothing/suit/mantle/regal
- name = "regal shawl"
- desc = "A fancy shawl for nobility, made from high quality materials."
- icon_state = "regal_mantle"
- item_state = "regal_mantle"
-
-/obj/item/clothing/suit/mantle/old
- name = "old wrap"
- desc = "A tattered fabric wrap, faded over the years. Smells faintly of cigars."
- icon_state = "old_mantle"
- item_state = "old_mantle"
-
/obj/item/clothing/suit/ghost_sheet
name = "ghost sheet"
desc = "The hands float by themselves, so it's extra spooky."
@@ -1403,15 +1381,11 @@
flags = BLOCKHAIR
flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE
-/obj/item/clothing/suit/furcape
+/obj/item/clothing/neck/cloak/furcape
name = "fur cape"
desc = "A cape made from fur. You'll really be stylin' now."
icon_state = "furcape"
item_state = "furcape"
- blood_overlay_type = "armor"
- body_parts_covered = UPPER_TORSO|ARMS
- cold_protection = UPPER_TORSO | ARMS
- min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
/obj/item/clothing/suit/hooded/abaya
name = "abaya"
diff --git a/code/modules/clothing/suits/unathi_suits.dm b/code/modules/clothing/suits/unathi_suits.dm
index 4021f4404339..73a04970873c 100644
--- a/code/modules/clothing/suits/unathi_suits.dm
+++ b/code/modules/clothing/suits/unathi_suits.dm
@@ -10,10 +10,3 @@
icon_state = "robe-unathi"
item_state = "robe-unathi"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
-
-/obj/item/clothing/suit/unathi/mantle
- name = "hide mantle"
- desc = "A rather grisly selection of cured hides and skin, sewn together to form a ragged mantle."
- icon_state = "mantle-unathi"
- item_state = "mantle-unathi"
- body_parts_covered = UPPER_TORSO
diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm
index 6a4511534f1d..7314f8984974 100644
--- a/code/modules/clothing/suits/wiz_robe.dm
+++ b/code/modules/clothing/suits/wiz_robe.dm
@@ -200,6 +200,17 @@
/obj/item/clothing/suit/space/hardsuit/wizard/setup_shielding()
AddComponent(/datum/component/shielded, max_charges = 15, recharge_start_delay = 0 SECONDS)
+/obj/item/clothing/suit/space/hardsuit/wizard/equipped(mob/user, slot)
+ . = ..()
+ ADD_TRAIT(user, TRAIT_ANTIMAGIC, "[UID(src)]")
+ ADD_TRAIT(user, TRAIT_ANTIMAGIC_NO_SELFBLOCK, "[UID(src)]")
+
+/obj/item/clothing/suit/space/hardsuit/wizard/dropped(mob/user)
+ . = ..()
+ REMOVE_TRAIT(user, TRAIT_ANTIMAGIC, "[UID(src)]")
+ REMOVE_TRAIT(user, TRAIT_ANTIMAGIC_NO_SELFBLOCK, "[UID(src)]")
+
+
/obj/item/clothing/suit/space/hardsuit/wizard/arch
desc = "For the arch wizard in need of additional protection."
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm
index 24d8fef0ac1b..3f62bbae4842 100644
--- a/code/modules/clothing/under/accessories/accessory.dm
+++ b/code/modules/clothing/under/accessories/accessory.dm
@@ -1,20 +1,23 @@
/obj/item/clothing/accessory
- name = "tie"
- desc = "A neosilk clip-on tie."
- icon = 'icons/obj/clothing/ties.dmi'
- icon_state = "bluetie"
- item_state = "" //no inhands
- item_color = "bluetie"
+ name = "accessory"
+ desc = "If you see this contact a developer."
+ icon = 'icons/obj/clothing/accessories.dmi'
+ icon_state = ""
+ item_state = ""
+ item_color = ""
slot_flags = ITEM_SLOT_ACCESSORY
w_class = WEIGHT_CLASS_SMALL
var/slot = ACCESSORY_SLOT_DECOR
- var/obj/item/clothing/under/has_suit = null //the suit the tie may be attached to
- var/image/inv_overlay = null //overlay used when attached to clothing.
- var/allow_duplicates = TRUE // Allow accessories of the same type.
+ /// the suit the accessory may be attached to
+ var/obj/item/clothing/under/has_suit = null
+ /// overlay used when attached to clothing.
+ var/image/inv_overlay = null
+ /// Allow accessories of the same type.
+ var/allow_duplicates = TRUE
/obj/item/clothing/accessory/Initialize(mapload)
. = ..()
- inv_overlay = image("icon" = 'icons/obj/clothing/ties_overlay.dmi', "icon_state" = "[item_color? "[item_color]" : "[icon_state]"]")
+ inv_overlay = image("icon" = 'icons/obj/clothing/accessories_overlay.dmi', "icon_state" = "[item_color? "[item_color]" : "[icon_state]"]")
/obj/item/clothing/accessory/Moved(atom/OldLoc, Dir, Forced)
. = ..()
@@ -112,27 +115,6 @@
/obj/item/clothing/accessory/proc/attached_equip(mob/user) // If we need to do something special when clothing is removed from the user
return
-/obj/item/clothing/accessory/blue
- name = "blue tie"
- icon_state = "bluetie"
- item_color = "bluetie"
-
-/obj/item/clothing/accessory/red
- name = "red tie"
- icon_state = "redtie"
- item_color = "redtie"
-
-/obj/item/clothing/accessory/black
- name = "black tie"
- icon_state = "blacktie"
- item_color = "blacktie"
-
-/obj/item/clothing/accessory/horrible
- name = "horrible tie"
- desc = "A neosilk clip-on tie. This one is disgusting."
- icon_state = "horribletie"
- item_color = "horribletie"
-
/// No overlay
/obj/item/clothing/accessory/waistcoat
name = "waistcoat"
@@ -145,63 +127,6 @@
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi'
)
-/obj/item/clothing/accessory/stethoscope
- name = "stethoscope"
- desc = "An outdated medical apparatus, used to get a rough idea of the condition of the heart and lungs. It also makes you look like you know what you're doing."
- icon_state = "stethoscope"
- item_color = "stethoscope"
-
-/obj/item/clothing/accessory/stethoscope/attack__legacy__attackchain(mob/living/carbon/human/M, mob/living/user)
- if(!ishuman(M) || !isliving(user))
- return ..(M, user)
-
- if(user == M)
- user.visible_message("[user] places [src] against [user.p_their()] chest and listens attentively.", "You place [src] against your chest...")
- else
- user.visible_message("[user] places [src] against [M]'s chest and listens attentively.", "You place [src] against [M]'s chest...")
- var/datum/organ/heart/heart_datum = M.get_int_organ_datum(ORGAN_DATUM_HEART)
- var/datum/organ/lungs/lung_datum = M.get_int_organ_datum(ORGAN_DATUM_LUNGS)
- if(!lung_datum || !heart_datum)
- to_chat(user, "You don't hear anything. ")
- return
-
- var/obj/item/organ/internal/H = heart_datum.linked_organ
- var/obj/item/organ/internal/L = lung_datum.linked_organ
- if(!M.pulse || (!H || !(L && !HAS_TRAIT(M, TRAIT_NOBREATH))))
- to_chat(user, "You don't hear anything. ")
- return
-
- var/color = "notice"
- if(H)
- var/heart_sound
- switch(H.damage)
- if(0 to 1)
- heart_sound = "healthy"
- if(1 to 25)
- heart_sound = "offbeat"
- if(25 to 50)
- heart_sound = "uneven"
- color = "warning"
- if(50 to INFINITY)
- heart_sound = "weak, unhealthy"
- color = "warning"
- to_chat(user, "You hear \an [heart_sound] pulse. ")
-
- if(L)
- var/lung_sound
- switch(L.damage)
- if(0 to 1)
- lung_sound = "healthy respiration"
- if(1 to 25)
- lung_sound = "labored respiration"
- if(25 to 50)
- lung_sound = "pained respiration"
- color = "warning"
- if(50 to INFINITY)
- lung_sound = "gurgling"
- color = "warning"
- to_chat(user, "You hear [lung_sound]. ")
-
//Medals
/obj/item/clothing/accessory/medal
name = "bronze medal"
@@ -512,117 +437,7 @@
desc = "Marks you as an expert of Standard Operating Procedure, and as a soul-crushing paper pusher."
what_you_are = "HUMAN RESOURCES"
-///////////
-//SCARVES//
-///////////
-
-/// No overlay
-/obj/item/clothing/accessory/scarf
- name = "scarf"
- desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
- dog_fashion = /datum/dog_fashion/head
-
-/obj/item/clothing/accessory/scarf/red
- name = "red scarf"
- icon_state = "redscarf"
- item_color = "redscarf"
-
-/obj/item/clothing/accessory/scarf/green
- name = "green scarf"
- icon_state = "greenscarf"
- item_color = "greenscarf"
-
-/obj/item/clothing/accessory/scarf/darkblue
- name = "dark blue scarf"
- icon_state = "darkbluescarf"
- item_color = "darkbluescarf"
-
-/obj/item/clothing/accessory/scarf/purple
- name = "purple scarf"
- icon_state = "purplescarf"
- item_color = "purplescarf"
-
-/obj/item/clothing/accessory/scarf/yellow
- name = "yellow scarf"
- icon_state = "yellowscarf"
- item_color = "yellowscarf"
-
-/obj/item/clothing/accessory/scarf/orange
- name = "orange scarf"
- icon_state = "orangescarf"
- item_color = "orangescarf"
-
-/obj/item/clothing/accessory/scarf/lightblue
- name = "light blue scarf"
- icon_state = "lightbluescarf"
- item_color = "lightbluescarf"
-
-/obj/item/clothing/accessory/scarf/white
- name = "white scarf"
- icon_state = "whitescarf"
- item_color = "whitescarf"
-
-/obj/item/clothing/accessory/scarf/black
- name = "black scarf"
- icon_state = "blackscarf"
- item_color = "blackscarf"
-
-/obj/item/clothing/accessory/scarf/zebra
- name = "zebra scarf"
- icon_state = "zebrascarf"
- item_color = "zebrascarf"
-
-/obj/item/clothing/accessory/scarf/christmas
- name = "christmas scarf"
- icon_state = "christmasscarf"
- item_color = "christmasscarf"
-
-//The three following scarves don't have the scarf subtype
-//This is because Ian can equip anything from that subtype
-//However, these 3 don't have corgi versions of their sprites
-/obj/item/clothing/accessory/stripedredscarf
- name = "striped red scarf"
- desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
- icon_state = "stripedredscarf"
- item_color = "stripedredscarf"
-
-/obj/item/clothing/accessory/stripedgreenscarf
- name = "striped green scarf"
- desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
- icon_state = "stripedgreenscarf"
- item_color = "stripedgreenscarf"
-
-/obj/item/clothing/accessory/stripedbluescarf
- name = "striped blue scarf"
- desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks."
- icon_state = "stripedbluescarf"
- item_color = "stripedbluescarf"
-
-//Necklaces
-/obj/item/clothing/accessory/necklace
- name = "necklace"
- desc = "A simple necklace."
- icon_state = "necklace"
- item_state = "necklace"
- item_color = "necklace"
- slot_flags = ITEM_SLOT_ACCESSORY
-
-/obj/item/clothing/accessory/necklace/long
- name = "large necklace"
- desc = "A large necklace."
- icon_state = "necklacelong"
- item_state = "necklacelong"
- item_color = "necklacelong"
-
-
-/obj/item/clothing/accessory/necklace/dope
- name = "gold necklace"
- desc = "Damn, it feels good to be a gangster."
- icon_state = "bling"
- item_state = "bling"
- item_color = "bling"
-
-/obj/item/clothing/accessory/necklace/skullcodpiece
+/obj/item/clothing/accessory/skullcodpiece
name = "skull codpiece"
desc = "A skull shaped ornament, intended to protect the important things in life."
icon_state = "skull"
@@ -631,7 +446,7 @@
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 10, RAD = 5, FIRE = 0, ACID = 15)
allow_duplicates = FALSE
-/obj/item/clothing/accessory/necklace/talisman
+/obj/item/clothing/accessory/talisman
name = "bone talisman"
desc = "A hunter's talisman, some say the old gods smile on those who wear it."
icon_state = "talisman"
@@ -640,64 +455,6 @@
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 10, RAD = 5, FIRE = 0, ACID = 15)
allow_duplicates = FALSE
-/obj/item/clothing/accessory/necklace/locket
- name = "gold locket"
- desc = "A gold locket that seems to have space for a photo within."
- icon_state = "locketgold"
- item_state = "locketgold"
- item_color = "locketgold"
- slot_flags = ITEM_SLOT_ACCESSORY
- var/base_icon
- var/open
- var/obj/item/held //Item inside locket.
-
-/obj/item/clothing/accessory/necklace/locket/Destroy()
- QDEL_NULL(held)
- return ..()
-
-
-/obj/item/clothing/accessory/necklace/locket/attack_self__legacy__attackchain(mob/user as mob)
- if(!base_icon)
- base_icon = icon_state
-
- if(!("[base_icon]_open" in icon_states(icon)))
- to_chat(user, "[src] doesn't seem to open.")
- return
-
- open = !open
- to_chat(user, "You flip [src] [open?"open":"closed"].")
- if(open)
- icon_state = "[base_icon]_open"
- if(held)
- to_chat(user, "[held] falls out!")
- held.forceMove(get_turf(user))
- held = null
- else
- icon_state = "[base_icon]"
-
-/obj/item/clothing/accessory/necklace/locket/attackby__legacy__attackchain(obj/item/O as obj, mob/user as mob)
- if(!open)
- to_chat(user, "You have to open it first.")
- return
-
- if(istype(O,/obj/item/paper) || istype(O, /obj/item/photo))
- if(held)
- to_chat(usr, "[src] already has something inside it.")
- else
- to_chat(usr, "You slip [O] into [src].")
- user.drop_item()
- O.forceMove(src)
- held = O
- else
- return ..()
-
-/obj/item/clothing/accessory/necklace/locket/silver
- name = "silver locket"
- desc = "A silver locket that seems to have space for a photo within."
- icon_state = "locketsilver"
- item_state = "locketsilver"
- item_color = "locketsilver"
-
//Cowboy Shirts
/obj/item/clothing/accessory/cowboyshirt
name = "black cowboy shirt"
@@ -881,7 +638,7 @@
icon_state = pin_icon_state
item_state = pin_icon_state
item_color = pin_icon_state
- inv_overlay = image("icon" = 'icons/obj/clothing/ties_overlay.dmi', "icon_state" = "[item_color? "[item_color]" : "[icon_state]"]")
+ inv_overlay = image("icon" = 'icons/obj/clothing/accessories_overlay.dmi', "icon_state" = "[item_color? "[item_color]" : "[icon_state]"]")
/proc/english_accessory_list(obj/item/clothing/under/U)
if(!istype(U) || !length(U.accessories))
diff --git a/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm b/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm
index a11e17175869..b7fa92dcbcc9 100644
--- a/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm
+++ b/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm
@@ -134,3 +134,10 @@
item_state = "tacticool_envirosuit"
item_color = "tacticool_envirosuit"
has_sensor = FALSE
+
+/obj/item/clothing/under/plasmaman/trainer
+ name = "\improper NT career trainer's envirosuit"
+ desc = "An envirosuit designed for plasmamen employed as the nanotrasen career trainer."
+ icon_state = "trainer_envirosuit"
+ item_state = "trainer_envirosuit"
+ item_color = "trainer_envirosuit"
diff --git a/code/modules/clothing/under/jobs/procedure.dm b/code/modules/clothing/under/jobs/procedure.dm
index 33a997dc2186..7351e2a245b7 100644
--- a/code/modules/clothing/under/jobs/procedure.dm
+++ b/code/modules/clothing/under/jobs/procedure.dm
@@ -159,3 +159,17 @@
icon_state = "iaa_formal_goodman_skirt"
item_state = "iaa_formal_goodman_skirt"
item_color = "iaa_formal_goodman_skirt"
+
+/obj/item/clothing/under/rank/procedure/nct
+ name = "\improper NT Career Trainer's uniform"
+ desc = "A neatly pressed olive green shirt paired with black jeans, worn by those dedicated to shaping the future of the workforce."
+ icon_state = "trainer"
+ item_state = "trainer"
+ item_color = "trainer"
+
+/obj/item/clothing/under/rank/procedure/nct/skirt
+ name = "\improper NT Career Trainer's skirt"
+ desc = "A neatly pressed olive green shirt paired with a sleek black skirt, worn by those committed to mentoring the next generation."
+ icon_state = "trainer_skirt"
+ item_state = "trainer_skirt"
+ item_color = "trainer_skirt"
diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm
index 53df828a3efc..92bd619396ca 100644
--- a/code/modules/crafting/recipes.dm
+++ b/code/modules/crafting/recipes.dm
@@ -746,7 +746,7 @@
/datum/crafting_recipe/bonetalisman
name = "Bone Talisman"
- result = list(/obj/item/clothing/accessory/necklace/talisman)
+ result = list(/obj/item/clothing/accessory/talisman)
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/sinew = 1)
@@ -754,7 +754,7 @@
/datum/crafting_recipe/bonecodpiece
name = "Skull Codpiece"
- result = list(/obj/item/clothing/accessory/necklace/skullcodpiece)
+ result = list(/obj/item/clothing/accessory/skullcodpiece)
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/animalhide/goliath_hide = 1)
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index d3e4b0bd5b19..3081eddac134 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -1432,7 +1432,7 @@
/obj/item/clothing/suit/armor/vest/fluff/tactical
name = "tactical armor vest"
desc = "A tactical vest with armored plate inserts."
- icon = 'icons/obj/clothing/ties.dmi'
+ icon = 'icons/obj/clothing/accessories.dmi'
icon_state = "vest_black"
item_state = "vest_black"
sprite_sheets = null
@@ -1549,7 +1549,7 @@
/// Fethas: Sefra'neem
-/obj/item/clothing/accessory/necklace/locket/fluff/fethasnecklace
+/obj/item/clothing/accessory/locket/fluff/fethasnecklace
name = "Orange gemmed locket"
desc = "A locket with a orange gem set on the front, the picture inside seems to be of a Tajaran."
icon = 'icons/obj/custom_items.dmi'
diff --git a/code/modules/events/bureaucratic_error.dm b/code/modules/events/bureaucratic_error.dm
index abb4187273c8..320b563ac32a 100644
--- a/code/modules/events/bureaucratic_error.dm
+++ b/code/modules/events/bureaucratic_error.dm
@@ -21,7 +21,8 @@
/datum/job/hop,
/datum/job/nanotrasenrep,
/datum/job/judge,
- /datum/job/qm
+ /datum/job/qm,
+ /datum/job/nanotrasentrainer
)
/datum/event/bureaucratic_error/announce()
diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm
index 106fe9c902dd..e4c85d74ab2c 100644
--- a/code/modules/events/event_container.dm
+++ b/code/modules/events/event_container.dm
@@ -171,7 +171,6 @@ GLOBAL_LIST_EMPTY(event_last_fired)
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Radiation Storm", /datum/event/radiation_storm, 25, list(ASSIGNMENT_MEDICAL = 50), TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 100, list(ASSIGNMENT_SECURITY = 30), TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ion_storm, 0, list(ASSIGNMENT_AI = 50, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)),
- new /datum/event_meta(EVENT_LEVEL_MODERATE, "Immovable Rod", /datum/event/immovable_rod, 0, list(ASSIGNMENT_ENGINEER = 30), TRUE),
//new /datum/event_meta/ninja(EVENT_LEVEL_MODERATE, "Space Ninja", /datum/event/space_ninja, 0, list(ASSIGNMENT_SECURITY = 15), TRUE),
// NON-BAY EVENTS
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Mass Hallucination", /datum/event/mass_hallucination, 300),
@@ -188,7 +187,6 @@ GLOBAL_LIST_EMPTY(event_last_fired)
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravitational Anomaly", /datum/event/anomaly/anomaly_grav, 200),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Revenant", /datum/event/revenant, 150),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/spawn_morph, 40, list(ASSIGNMENT_SECURITY = 10), is_one_shot = TRUE),
- new /datum/event_meta(EVENT_LEVEL_MODERATE, "Pulse Demon Infiltration", /datum/event/spawn_pulsedemon, 150, list(ASSIGNMENT_ENGINEER = 10), is_one_shot = TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Disease Outbreak", /datum/event/disease_outbreak, 50, list(ASSIGNMENT_MEDICAL = 30), TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Door Runtime", /datum/event/door_runtime, 50, list(ASSIGNMENT_ENGINEER = 25, ASSIGNMENT_AI = 150), TRUE),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Tourist Arrivals", /datum/event/tourist_arrivals, 100, list(ASSIGNMENT_SECURITY = 15), TRUE)
@@ -208,7 +206,9 @@ GLOBAL_LIST_EMPTY(event_last_fired)
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Traders", /datum/event/traders, 85, is_one_shot = TRUE),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Terror Spiders", /datum/event/spider_terror, 15, list(ASSIGNMENT_SECURITY = 3), TRUE),
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Slaughter Demon", /datum/event/spawn_slaughter, 20, is_one_shot = TRUE),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Shadow Demon", /datum/event/spawn_slaughter/shadow, 20, is_one_shot = TRUE)
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Shadow Demon", /datum/event/spawn_slaughter/shadow, 20, is_one_shot = TRUE),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Pulse Demon Infiltration", /datum/event/spawn_pulsedemon, 20, is_one_shot = TRUE),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Immovable Rod", /datum/event/immovable_rod, 0, list(ASSIGNMENT_ENGINEER = 10), TRUE)
//new /datum/event_meta(EVENT_LEVEL_MAJOR, "Floor Cluwne", /datum/event/spawn_floor_cluwne, 15, is_one_shot = TRUE)
)
diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm
index b70aa66502e8..63e2a1f78567 100644
--- a/code/modules/events/immovable_rod.dm
+++ b/code/modules/events/immovable_rod.dm
@@ -70,44 +70,69 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
/obj/effect/immovablerod/singularity_pull()
return
-/obj/effect/immovablerod/Bump(atom/clong)
+/obj/effect/immovablerod/Move(turf/newloc, direction)
+ if(!istype(newloc))
+ return ..()
+
+ if(!direction)
+ direction = get_dir(src, newloc)
+ forceMove(newloc)
+ setDir(direction)
+
if(prob(10))
playsound(src, 'sound/effects/bang.ogg', 50, TRUE)
audible_message("CLANG")
- if(clong && prob(25))
- x = clong.x
- y = clong.y
-
- if(isturf(clong) || isobj(clong))
- if(clong.density)
- clong.ex_act(EXPLODE_HEAVY)
-
- else if(ismob(clong))
- if(ishuman(clong))
- var/mob/living/carbon/human/H = clong
+ clong_turf(newloc)
+ for(var/atom/victim as anything in newloc)
+ clong_thing(victim)
+
+/obj/effect/immovablerod/proc/clong_turf(turf/victim)
+ if(!victim.density)
+ return
+
+ if(iswallturf(victim))
+ var/turf/simulated/wall/W = victim
+ W.take_damage(rand(W.damage_cap / 3, W.damage_cap * 4 / 3))
+ else
+ victim.ex_act(EXPLODE_LIGHT)
+
+/obj/effect/immovablerod/proc/clong_thing(atom/victim)
+ if(isobj(victim) && victim.density)
+ victim.ex_act(EXPLODE_HEAVY)
+ else if(ismob(victim))
+ if(ishuman(victim))
+ var/mob/living/carbon/human/H = victim
H.visible_message("[H.name] is penetrated by an immovable rod! ",
"The rod penetrates you! ",
"You hear a CLANG! ")
H.adjustBruteLoss(160)
- if(clong.density || prob(10))
- clong.ex_act(EXPLODE_HEAVY)
+ if(victim.density || prob(10))
+ victim.ex_act(EXPLODE_HEAVY)
/obj/effect/immovablerod/event
// The base chance to "damage" the floor when passing. This is not guaranteed to cause a full on hull breach.
- // Chance to expose the tile to space is like 60% of this value.
+ // Chance to expose the tile to space is like 15% of this value.
var/floor_rip_chance = 40
/obj/effect/immovablerod/event/Move()
- var/atom/oldloc = loc
. = ..()
- if(prob(floor_rip_chance))
- var/turf/simulated/floor/T = get_turf(oldloc)
- if(istype(T))
- T.ex_act(EXPLODE_HEAVY)
if(loc == end)
qdel(src)
+/obj/effect/immovablerod/event/clong_turf(turf/victim)
+ if(!isfloorturf(victim))
+ return ..()
+
+ if(!prob(floor_rip_chance))
+ return
+
+ var/turf/simulated/floor/T = victim
+ if(prob(25))
+ T.ex_act(EXPLODE_HEAVY)
+ else
+ T.ex_act(EXPLODE_LIGHT)
+
/obj/effect/immovablerod/deadchat_plays(mode = DEADCHAT_DEMOCRACY_MODE, cooldown = 6 SECONDS)
return AddComponent(/datum/component/deadchat_control/immovable_rod, mode, list(), cooldown)
diff --git a/code/modules/events/traders.dm b/code/modules/events/traders.dm
index 8cb3977d0302..a8505827d6a0 100644
--- a/code/modules/events/traders.dm
+++ b/code/modules/events/traders.dm
@@ -149,7 +149,7 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol"))
/datum/traders/cyber
trader_type = "Cybersun Industries"
- trader_location = "-=ERROR: Unregisted Station Charter=-"
+ trader_location = "-=ERROR: Unregistered Station Charter=-"
dock_site = "an undercover robotics factory"
trader_species = /mob/living/carbon/human
trader_outfit = /datum/outfit/admin/trader/cyber
diff --git a/code/modules/food_and_drinks/kitchen_machinery/cooker.dm b/code/modules/food_and_drinks/kitchen_machinery/cooker.dm
index 0ae75aedd439..17d86d656afd 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/cooker.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/cooker.dm
@@ -160,8 +160,7 @@
oil.name = "fat"
oil.desc = "Uh oh, looks like some fat from [src]!"
oil.loc = location
- location.hotspot_expose(700, 50, 1)
- //TODO have a chance of setting the tile on fire
+ location.hotspot_expose(700, 1)
/obj/machinery/cooker/proc/changename(obj/item/name, obj/item/setme)
setme.name = "[thiscooktype] [name.name]"
diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm
index c2dc17adf74b..827188db878c 100644
--- a/code/modules/hydroponics/grown/towercap.dm
+++ b/code/modules/hydroponics/grown/towercap.dm
@@ -217,7 +217,7 @@
/obj/structure/bonfire/proc/Burn()
var/turf/current_location = get_turf(src)
- current_location.hotspot_expose(1000,500,1)
+ current_location.hotspot_expose(1000, 10)
for(var/A in current_location)
if(A == src)
continue
diff --git a/code/modules/mapping/access_helpers.dm b/code/modules/mapping/access_helpers.dm
index 6b6506c6fc28..e1e542aaf6e4 100644
--- a/code/modules/mapping/access_helpers.dm
+++ b/code/modules/mapping/access_helpers.dm
@@ -492,3 +492,10 @@
/obj/effect/mapping_helpers/airlock/access/all/centcomm/traders
access = ACCESS_TRADE_SOL
+
+// -------------------- Procedure access helpers
+/obj/effect/mapping_helpers/airlock/access/all/procedure
+ icon_state = "access_helper_pro"
+
+/obj/effect/mapping_helpers/airlock/access/all/procedure/trainer
+ access = ACCESS_TRAINER
diff --git a/code/modules/mapping/windoor_access_helpers.dm b/code/modules/mapping/windoor_access_helpers.dm
index d193060c9a5f..dca6f386b5ac 100644
--- a/code/modules/mapping/windoor_access_helpers.dm
+++ b/code/modules/mapping/windoor_access_helpers.dm
@@ -446,3 +446,10 @@
/obj/effect/mapping_helpers/airlock/windoor/access/all/supply/mule_bot
access = ACCESS_CARGO_BOT
+
+// -------------------- Procedure access helpers
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure
+ icon_state = "access_windoor_pro"
+
+/obj/effect/mapping_helpers/airlock/windoor/access/all/procedure/trainer
+ access = ACCESS_TRAINER
diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm
index d5b9394871f2..e6d347e44e04 100644
--- a/code/modules/mining/abandonedcrates.dm
+++ b/code/modules/mining/abandonedcrates.dm
@@ -49,7 +49,7 @@
if(46 to 50)
new /obj/item/clothing/under/chameleon(src)
for(var/i in 1 to 7)
- new /obj/item/clothing/accessory/horrible(src)
+ new /obj/item/clothing/neck/tie/horrible(src)
if(51 to 52) // 2% chance
new /obj/item/melee/classic_baton(src)
if(53 to 54)
diff --git a/code/modules/mining/lavaland/loot/tendril_loot.dm b/code/modules/mining/lavaland/loot/tendril_loot.dm
index d0329bf4fcbc..4cf0d24f8ce6 100644
--- a/code/modules/mining/lavaland/loot/tendril_loot.dm
+++ b/code/modules/mining/lavaland/loot/tendril_loot.dm
@@ -338,6 +338,7 @@
max_charges = 1
flags = NOBLUDGEON
force = 18
+ antimagic_flags = NONE
/obj/item/ammo_casing/magic/hook
name = "hook"
@@ -384,7 +385,7 @@
//Immortality Talisman
/obj/item/immortality_talisman
- name = "Immortality Talisman"
+ name = "\improper Immortality Talisman"
desc = "A dread talisman that can render you completely invulnerable."
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "talisman"
@@ -393,6 +394,21 @@
actions_types = list(/datum/action/item_action/immortality)
var/cooldown = 0
+/obj/item/immortality_talisman/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/anti_magic, ALL)
+
+/obj/item/immortality_talisman/equipped(mob/user, slot)
+ ..()
+ if(slot != ITEM_SLOT_IN_BACKPACK)
+ var/user_UID = user.UID()
+ ADD_TRAIT(user, TRAIT_ANTIMAGIC_NO_SELFBLOCK, user_UID)
+
+/obj/item/immortality_talisman/dropped(mob/user, silent)
+ . = ..()
+ var/user_UID = user.UID()
+ REMOVE_TRAIT(user, TRAIT_ANTIMAGIC_NO_SELFBLOCK, user_UID)
+
/datum/action/item_action/immortality
name = "Immortality"
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index e4b1f52529db..89e0de5217f5 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -184,6 +184,10 @@
)
hide_tail_by_species = list("Unathi", "Tajaran", "Vox", "Vulpkanin")
+/obj/item/clothing/suit/hooded/berserker/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/anti_magic, ALL, inventory_flags = ITEM_SLOT_OUTER_SUIT)
+
/obj/item/clothing/head/hooded/berserker
name = "berserker helmet"
desc = "Peering into the eyes of the helmet is enough to seal damnation."
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index d82d8351d673..f068ace4aa94 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -364,7 +364,7 @@
EQUIPMENT("Big Burger", /obj/item/food/burger/bigbite, 250),
EQUIPMENT("Recycled Prisoner", /obj/item/food/soylentgreen, 500),
EQUIPMENT("Crayons", /obj/item/storage/fancy/crayons, 350),
- EQUIPMENT("Plushie", /obj/random/plushie, 750),
+ EQUIPMENT("Plushie", /obj/effect/spawner/random/plushies, 750),
EQUIPMENT("Dnd set", /obj/item/storage/box/characters, 500),
EQUIPMENT("Dice set", /obj/item/storage/box/dice, 250),
EQUIPMENT("Cards", /obj/item/deck/cards, 150),
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index 731285e775ce..dcc350ea9ade 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -17,8 +17,8 @@
var/points = 0 //How many points this ore gets you from the ore redemption machine
var/refined_type = null //What this ore defaults to being refined into
-/obj/item/stack/ore/New(loc, new_amount, merge = TRUE)
- ..()
+/obj/item/stack/ore/Initialize(mapload, new_amount, merge = TRUE)
+ . = ..()
pixel_x = rand(0, 16) - 8
pixel_y = rand(0, 8) - 8
@@ -349,14 +349,12 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
var/cooldown = 0
var/credits = 10
-/obj/item/coin/New()
- ..()
+/obj/item/coin/Initialize(mapload)
+ . = ..()
icon_state = "coin_[cmineral]_[sideslist[1]]"
if(cmineral && name_by_cmineral)
name = "[cmineral] coin"
-
-/obj/item/coin/Initialize(mapload)
- . = ..()
+ update_appearance(UPDATE_NAME|UPDATE_ICON_STATE)
AddComponent(/datum/component/surgery_initiator/robo)
/obj/item/coin/gold
diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm
index 9f13488cba08..c83753cb1ad8 100644
--- a/code/modules/mob/dead/observer/orbit.dm
+++ b/code/modules/mob/dead/observer/orbit.dm
@@ -107,6 +107,7 @@ GLOBAL_DATUM_INIT(orbit_menu, /datum/orbit_menu, new)
- vampire
- changelings
- revolutionaries/headrevs
+ - event
*/
for(var/_A in mind.antag_datums)
var/datum/antagonist/A = _A
@@ -121,8 +122,7 @@ GLOBAL_DATUM_INIT(orbit_menu, /datum/orbit_menu, new)
other_antags += list(
"Blob" = (mind.special_role == SPECIAL_ROLE_BLOB),
"Nuclear Operative" = (mind in SSticker.mode.syndicates),
- "Abductor" = (mind in SSticker.mode.abductors),
- "Event Roles" = (mind.special_role == SPECIAL_ROLE_EVENTMISC)
+ "Abductor" = (mind in SSticker.mode.abductors)
)
for(var/antag_name in other_antags)
diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm
index c634b429d711..4f2d5abaa865 100644
--- a/code/modules/mob/living/carbon/examine.dm
+++ b/code/modules/mob/living/carbon/examine.dm
@@ -145,6 +145,8 @@
grab_items |= item
if(item.flags & ABSTRACT)
abstract_items |= item
+ if(HAS_TRAIT(item, TRAIT_SKIP_EXAMINE))
+ continue
else
var/item_words = item.name
if(item.blood_DNA)
diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm
index b28bf42d048d..91860b6a8822 100644
--- a/code/modules/mob/living/carbon/human/human_update_icons.dm
+++ b/code/modules/mob/living/carbon/human/human_update_icons.dm
@@ -612,7 +612,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
else if(A.sprite_sheets && A.sprite_sheets[dna.species.sprite_sheet_name])
standing.overlays += image("icon" = A.sprite_sheets[dna.species.sprite_sheet_name], "icon_state" = "[A.icon_state]")
else
- standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[tie_color]")
+ standing.overlays += image("icon" = 'icons/mob/accessories.dmi', "icon_state" = "[tie_color]")
standing.alpha = w_uniform.alpha
standing.color = w_uniform.color
overlays_standing[UNIFORM_LAYER] = standing
@@ -1062,20 +1062,31 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_neck()
remove_overlay(NECK_LAYER)
+ remove_overlay(SPECIAL_NECK_LAYER)
+
if(client && hud_used)
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[ITEM_SLOT_2_INDEX(ITEM_SLOT_NECK)]
if(inv)
inv.update_icon()
if(neck)
+ var/mutable_appearance/new_neck
update_hud_neck(neck)
+
if(neck.icon_override)
- overlays_standing[NECK_LAYER] = mutable_appearance(neck.icon_override, "[neck.icon_state]", layer = -NECK_LAYER)
+ new_neck = mutable_appearance(neck.icon_override, "[neck.icon_state]", layer = -NECK_LAYER)
else if(neck.sprite_sheets && neck.sprite_sheets[dna.species.sprite_sheet_name])
- overlays_standing[NECK_LAYER] = mutable_appearance(neck.sprite_sheets[dna.species.sprite_sheet_name], "[neck.icon_state]", layer = -NECK_LAYER)
+ new_neck = mutable_appearance(neck.sprite_sheets[dna.species.sprite_sheet_name], "[neck.icon_state]", layer = -NECK_LAYER)
+ else
+ new_neck = mutable_appearance('icons/mob/clothing/neck.dmi', "[neck.icon_state]", layer = -NECK_LAYER)
+ var/obj/item/clothing/neck/tie/N = neck
+ if(istype(N) && N.under_suit)
+ new_neck.layer = -SPECIAL_NECK_LAYER
+ overlays_standing[SPECIAL_NECK_LAYER] = new_neck
+ apply_overlay(SPECIAL_NECK_LAYER)
else
- overlays_standing[NECK_LAYER] = mutable_appearance('icons/mob/clothing/neck.dmi', "[neck.icon_state]", layer = -NECK_LAYER)
- apply_overlay(NECK_LAYER)
+ overlays_standing[NECK_LAYER] = new_neck
+ apply_overlay(NECK_LAYER)
/mob/living/carbon/human/update_inv_back()
..()
diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm
index 774181c27857..91303d807667 100644
--- a/code/modules/mob/living/carbon/human/species/plasmaman.dm
+++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm
@@ -147,6 +147,9 @@
if("Assistant")
O = new /datum/outfit/plasmaman/assistant
+ if("Nanotrasen Career Trainer")
+ O = new /datum/outfit/plasmaman/trainer
+
H.equipOutfit(O, visualsOnly)
H.internal = H.r_hand
H.update_action_buttons_icon()
diff --git a/code/modules/mob/living/carbon/superheroes.dm b/code/modules/mob/living/carbon/superheroes.dm
index a7f63bd6e071..cb497112049f 100644
--- a/code/modules/mob/living/carbon/superheroes.dm
+++ b/code/modules/mob/living/carbon/superheroes.dm
@@ -143,6 +143,7 @@
desc = "Allows you to recruit a conscious, non-braindead, non-catatonic human to be part of the Greyshirts, your personal henchmen. This works on Assistants only and you can recruit a maximum of 3!."
base_cooldown = 450
clothes_req = FALSE
+ antimagic_flags = NONE
action_icon_state = "spell_greytide"
var/recruiting = 0
diff --git a/code/modules/mob/living/init_signals.dm b/code/modules/mob/living/init_signals.dm
index 07baa8e3c926..adf03cbff7e4 100644
--- a/code/modules/mob/living/init_signals.dm
+++ b/code/modules/mob/living/init_signals.dm
@@ -30,6 +30,8 @@
RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_UNKNOWN), PROC_REF(on_unknown_trait))
RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_UNKNOWN), PROC_REF(on_unknown_trait))
+ RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_PRESSURE_VISION), PROC_REF(on_pressure_vision_trait_gain))
+ RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_PRESSURE_VISION), PROC_REF(on_pressure_vision_trait_loss))
/// Called when [TRAIT_KNOCKEDOUT] is added to the mob.
/mob/living/proc/on_knockedout_trait_gain(datum/source)
@@ -172,3 +174,17 @@
/mob/living/proc/on_unknown_trait_part_2()
name = get_visible_name()
sec_hud_set_ID()
+
+/// Called when [TRAIT_PRESSURE_VISION] is added to the mob.
+/mob/living/proc/on_pressure_vision_trait_gain(datum/source)
+ SIGNAL_HANDLER
+ var/datum/atom_hud/data/pressure/hud = GLOB.huds[DATA_HUD_PRESSURE]
+ if(!(src in hud.hudusers))
+ hud.add_hud_to(src)
+
+/// Called when [TRAIT_PRESSURE_VISION] is removed from the mob.
+/mob/living/proc/on_pressure_vision_trait_loss(datum/source)
+ SIGNAL_HANDLER
+ var/datum/atom_hud/data/pressure/hud = GLOB.huds[DATA_HUD_PRESSURE]
+ if(src in hud.hudusers)
+ hud.remove_hud_from(src)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 267343b767b8..2df2bb1a32b7 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -121,6 +121,10 @@
if(moving_diagonally) //no mob swap during diagonal moves.
return TRUE
+ if(has_status_effect(STATUS_EFFECT_UNBALANCED))
+ // Don't swap while being shoved by air.
+ return TRUE
+
if(a_intent == INTENT_HELP) // Help intent doesn't mob swap a mob pulling a structure
if(isstructure(M.pulling) || isstructure(pulling))
return TRUE
@@ -589,6 +593,11 @@
/mob/living/proc/UpdateDamageIcon()
return
+/mob/living/get_spacemove_backup(movement_dir)
+ if(movement_dir == 0 && has_status_effect(STATUS_EFFECT_UNBALANCED))
+ return
+ return ..()
+
/mob/living/Move(atom/newloc, direct, movetime)
if(buckled && buckled.loc != newloc) //not updating position
if(!buckled.anchored)
@@ -683,41 +692,7 @@
/mob/living/experience_pressure_difference(flow_x, flow_y, pressure_resistance_prob_delta = 0)
if(buckled)
return
- if(client && client.move_delay >= world.time + world.tick_lag * 2)
- pressure_resistance_prob_delta -= 30
-
- var/list/turfs_to_check = list()
-
- if(has_limbs)
- var/direction = 0
- if(flow_x > 100)
- direction |= EAST
- if(flow_x < -100)
- direction |= WEST
- if(flow_y > 100)
- direction |= NORTH
- if(flow_y < -100)
- direction |= SOUTH
-
- var/turf/T = get_step(src, angle2dir(dir2angle(direction) + 90))
- if(T)
- turfs_to_check += T
-
- T = get_step(src, angle2dir(dir2angle(direction) - 90))
- if(T)
- turfs_to_check += T
-
- for(var/t in turfs_to_check)
- T = t
- if(T.density)
- pressure_resistance_prob_delta -= 20
- continue
- for(var/atom/movable/AM in T)
- if(AM.density && AM.anchored)
- pressure_resistance_prob_delta -= 20
- break
-
- ..(flow_x, flow_y, pressure_resistance_prob_delta)
+ ..()
/*//////////////////////
START RESIST PROCS
@@ -982,6 +957,29 @@
var/datum/status_effect/incapacitating/slowed/S = IsSlowed()
if(S)
. += S.slowdown_value
+ else
+ // Only apply directional slow if we don't have a full slow.
+ var/datum/status_effect/incapacitating/directional_slow/DS = has_status_effect(STATUS_EFFECT_DIRECTIONAL_SLOW)
+ if(DS)
+ if(DS.direction == last_move)
+ // Moving directly in the direction we're slowed, full penalty
+ . += DS.slowdown_value
+ else if(REVERSE_DIR(DS.direction) == last_move)
+ // Moving directly opposite to the slow, no penalty.
+ // Lint doesn't like this block being empty so, uh, add zero, I guess.
+ . += 0
+ else if(IS_DIR_CARDINAL(DS.direction) || IS_DIR_CARDINAL(last_move))
+ if(DS.direction & last_move)
+ // Moving roughly in the direction we're slowed, full penalty.
+ . += DS.slowdown_value
+ else if(!(REVERSE_DIR(DS.direction) & last_move))
+ // Moving perpendicular to the slow, partial penalty.
+ . += DS.slowdown_value / 2
+ // Moving roughly opposite to the slow, no penalty.
+ else
+ // Diagonal move perpendicular to the slow, partial penalty.
+ . += DS.slowdown_value / 2
+
if(forced_look)
. += DIRECTION_LOCK_SLOWDOWN
if(ignorewalk)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 074081bba93f..d872d92ec7ee 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -228,7 +228,7 @@
if(!G || G.oxygen() < 1)
ExtinguishMob() //If there's no oxygen in the tile we're on, put out the fire
return FALSE
- T.hotspot_expose(700, 50, 1)
+ T.hotspot_expose(700, 10)
SEND_SIGNAL(src, COMSIG_LIVING_FIRE_TICK)
return TRUE
diff --git a/code/modules/mob/living/living_status_procs.dm b/code/modules/mob/living/living_status_procs.dm
index 35a56aa0ae62..97433d8b3fda 100644
--- a/code/modules/mob/living/living_status_procs.dm
+++ b/code/modules/mob/living/living_status_procs.dm
@@ -512,26 +512,26 @@ STATUS EFFECTS
/mob/living/proc/IsSlowed()
return has_status_effect(STATUS_EFFECT_SLOWED)
-/mob/living/proc/Slowed(amount, _slowdown_value)
+/mob/living/proc/Slowed(amount, slowdown_value)
var/datum/status_effect/incapacitating/slowed/S = IsSlowed()
if(S)
S.duration = max(world.time + amount, S.duration)
- S.slowdown_value = _slowdown_value
+ S.slowdown_value = slowdown_value
else if(amount > 0)
- S = apply_status_effect(STATUS_EFFECT_SLOWED, amount, _slowdown_value)
+ S = apply_status_effect(STATUS_EFFECT_SLOWED, amount, slowdown_value)
return S
-/mob/living/proc/SetSlowed(amount, _slowdown_value)
+/mob/living/proc/SetSlowed(amount, slowdown_value)
var/datum/status_effect/incapacitating/slowed/S = IsSlowed()
- if(amount <= 0 || _slowdown_value <= 0)
+ if(amount <= 0 || slowdown_value <= 0)
if(S)
qdel(S)
else
if(S)
S.duration = amount
- S.slowdown_value = _slowdown_value
+ S.slowdown_value = slowdown_value
else
- S = apply_status_effect(STATUS_EFFECT_SLOWED, amount, _slowdown_value)
+ S = apply_status_effect(STATUS_EFFECT_SLOWED, amount, slowdown_value)
return S
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index dd136add437d..653a6c7cdb32 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -242,6 +242,7 @@
name = "Unfold/Fold Chassis"
desc = "Allows you to fold in/out of your mobile form."
clothes_req = FALSE
+ antimagic_flags = NONE
base_cooldown = 20 SECONDS
action_icon_state = "repairbot"
action_background_icon_state = "bg_tech_blue"
diff --git a/code/modules/mob/living/silicon/robot/robot_module_actions.dm b/code/modules/mob/living/silicon/robot/robot_module_actions.dm
index cb6834e24746..84b34b0d345a 100644
--- a/code/modules/mob/living/silicon/robot/robot_module_actions.dm
+++ b/code/modules/mob/living/silicon/robot/robot_module_actions.dm
@@ -40,6 +40,7 @@
#define MODE_MESON "meson"
#define MODE_TRAY "t-ray"
#define MODE_RAD "radiation"
+#define MODE_PRESSURE "pressure"
#define RAD_RANGE 5
/datum/action/innate/robot_sight/engineering_scanner
@@ -47,7 +48,7 @@
sight_mode = BORGMESON
button_overlay_icon = 'icons/obj/clothing/glasses.dmi'
button_overlay_icon_state = "trayson-meson"
- var/list/mode_list = list(MODE_NONE = MODE_MESON, MODE_MESON = MODE_TRAY, MODE_TRAY = MODE_RAD, MODE_RAD = MODE_NONE)
+ var/list/mode_list = list(MODE_NONE = MODE_MESON, MODE_MESON = MODE_TRAY, MODE_TRAY = MODE_RAD, MODE_RAD = MODE_PRESSURE, MODE_PRESSURE = MODE_NONE)
var/mode = MODE_NONE
/datum/action/innate/robot_sight/engineering_scanner/Activate()
@@ -67,8 +68,13 @@
else
STOP_PROCESSING(SSobj, src)
+ if(mode == MODE_PRESSURE)
+ ADD_TRAIT(R, TRAIT_PRESSURE_VISION, "borgsight")
+ else
+ REMOVE_TRAIT(R, TRAIT_PRESSURE_VISION, "borgsight")
+
/datum/action/innate/robot_sight/engineering_scanner/Deactivate()
- return
+ REMOVE_TRAIT(owner, TRAIT_PRESSURE_VISION, "borgsight")
/datum/action/innate/robot_sight/engineering_scanner/process()
var/mob/living/silicon/robot/user = owner
@@ -84,6 +90,7 @@
#undef MODE_MESON
#undef MODE_TRAY
#undef MODE_RAD
+#undef MODE_PRESSURE
#undef RAD_RANGE
/datum/action/innate/robot_magpulse
diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm
index 89ff5cc82ea6..4f5a17da5088 100644
--- a/code/modules/mob/living/silicon/robot/robot_movement.dm
+++ b/code/modules/mob/living/silicon/robot/robot_movement.dm
@@ -25,5 +25,6 @@
return ..() || mob_negates_gravity()
/mob/living/silicon/robot/experience_pressure_difference(flow_x, flow_y)
- if(!HAS_TRAIT(src, TRAIT_MAGPULSE))
- return ..()
+ if(HAS_TRAIT(src, TRAIT_MAGPULSE))
+ return
+ ..()
diff --git a/code/modules/mob/living/silicon/robot/syndicate_robot.dm b/code/modules/mob/living/silicon/robot/syndicate_robot.dm
index 35215d7f2362..891f0fa7d1cc 100644
--- a/code/modules/mob/living/silicon/robot/syndicate_robot.dm
+++ b/code/modules/mob/living/silicon/robot/syndicate_robot.dm
@@ -40,6 +40,11 @@
playsound(loc, 'sound/mecha/nominalsyndi.ogg', 75, 0)
+/mob/living/silicon/robot/syndicate/air_push(direction, strength)
+ // Syndicate borgs ignore airflow, because they're bloody expensive.
+ // This should probably be revisited later, as part of a broader move_resist/move_force/pull_force rework.
+ return
+
/mob/living/silicon/robot/syndicate/medical
base_icon = "syndi-medi"
icon_state = "syndi-medi"
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index d17e5842d695..dbb791303b86 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -305,9 +305,9 @@
health = 40
melee_damage_lower = 20
melee_damage_upper = 25
- attacktext = "prods"
+ attacktext = "rends"
environment_smash = ENVIRONMENT_SMASH_RWALLS
- attack_sound = 'sound/weapons/tap.ogg'
+ attack_sound = 'sound/weapons/bladeslice.ogg'
construct_type = "harvester"
construct_spells = list(/datum/spell/night_vision,
/datum/spell/aoe/conjure/build/wall,
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm
index 5b4d0624eb42..5d1dcec846cb 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm
@@ -596,7 +596,7 @@ Difficulty: Hard
var/obj/effect/hotspot/hotspot = new /obj/effect/hotspot/fake(T)
hotspot.temperature = 1000
hotspot.recolor()
- T.hotspot_expose(700,50,1)
+ T.hotspot_expose(700, 50)
if(mode == VORTEX)
var/turf/T = get_turf(src)
for(var/atom/A in T)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
index b9bddd139c78..ef5abf4224e9 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
@@ -282,7 +282,7 @@ Difficulty: Medium
var/obj/effect/hotspot/hotspot = new /obj/effect/hotspot/fake(T)
hotspot.temperature = 1000
hotspot.recolor()
- T.hotspot_expose(700,50,1)
+ T.hotspot_expose(700, 50)
for(var/mob/living/L in T.contents)
if((L in hit_list) || L == source)
continue
diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.dm
index 5f8c3709735e..bc4f66ae3a1e 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.dm
@@ -40,7 +40,7 @@
mouse_opacity = MOUSE_OPACITY_ICON
death_sound = 'sound/magic/repulse.ogg'
deathmessage = "'s lights flicker, before its top part falls down."
- loot_drop = /obj/item/clothing/accessory/necklace/pandora_hope
+ loot_drop = /obj/item/clothing/accessory/pandora_hope
attack_action_types = list(/datum/action/innate/elite_attack/chaser_burst,
/datum/action/innate/elite_attack/magic_box,
@@ -199,7 +199,8 @@
//Pandora's loot: Hope
-/obj/item/clothing/accessory/necklace/pandora_hope
+//This should probably be turned into a pin at some point
+/obj/item/clothing/accessory/pandora_hope
name = "Hope"
desc = "Found at the bottom of Pandora. After all the evil was released, this was the only thing left inside."
icon = 'icons/obj/lavaland/elite_trophies.dmi'
@@ -210,13 +211,13 @@
allow_duplicates = FALSE
resistance_flags = FIRE_PROOF
-/obj/item/clothing/accessory/necklace/pandora_hope/on_attached(obj/item/clothing/under/S, mob/user)
+/obj/item/clothing/accessory/pandora_hope/on_attached(obj/item/clothing/under/S, mob/user)
. = ..()
if(isliving(S.loc))
var/mob/living/M = S.loc
M.apply_status_effect(STATUS_EFFECT_HOPE)
-/obj/item/clothing/accessory/necklace/pandora_hope/on_removed(mob/user)
+/obj/item/clothing/accessory/pandora_hope/on_removed(mob/user)
if(isliving(has_suit.loc))
var/mob/living/M = has_suit.loc
M.remove_status_effect(STATUS_EFFECT_HOPE)
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/combat_drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/combat_drone.dm
index b8dacf1f796d..bc0df94d6242 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/combat_drone.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/combat_drone.dm
@@ -146,64 +146,61 @@
K.amount = pick(1, 2, 3, 4)
K.update_icon()
- //also drop dummy circuit boards deconstructable for research (loot)
- var/obj/item/circuitboard/C
-
- //spawn 1-4 boards of a random type
- var/spawnees = 0
+ // Spawn 1-4 boards of a random type
var/num_boards = rand(1, 4)
- var/list/options = list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512)
- for(var/i=0, i 0 && !HAS_TRAIT(src, TRAIT_RECENTLY_BLOCKED_MAGIC))
+ on_block_magic_effects(casted_magic_flags, antimagic_sources)
+
+ return is_magic_blocked
+
+/// Called whenever a magic effect with a charge cost is blocked and we haven't recently blocked magic.
+/mob/proc/on_block_magic_effects(magic_flags, list/antimagic_sources)
+ return
+
+/mob/living/on_block_magic_effects(magic_flags, list/antimagic_sources)
+ ADD_TRAIT(src, TRAIT_RECENTLY_BLOCKED_MAGIC, MAGIC_TRAIT)
+ addtimer(CALLBACK(src, PROC_REF(remove_recent_magic_block)), 6 SECONDS)
+
+ var/mutable_appearance/antimagic_effect
+ var/antimagic_color
+ var/atom/antimagic_source = length(antimagic_sources) ? pick(antimagic_sources) : src
+
+ if(magic_flags & MAGIC_RESISTANCE)
+ visible_message(
+ "[src] pulses red as [ismob(antimagic_source) ? p_they() : antimagic_source] absorbs magic energy! ",
+ "An intense magical aura pulses around [ismob(antimagic_source) ? "you" : antimagic_source] as it dissipates into the air! ",
+ )
+ antimagic_effect = mutable_appearance('icons/effects/effects.dmi', "shield-red", ABOVE_MOB_LAYER)
+ antimagic_color = LIGHT_COLOR_BLOOD_MAGIC
+ playsound(src, 'sound/magic/magic_block.ogg', 50, TRUE)
+
+ else if(magic_flags & MAGIC_RESISTANCE_HOLY)
+ visible_message(
+ "[src] starts to glow as [ismob(antimagic_source) ? p_they() : antimagic_source] emits a halo of light! ",
+ "A feeling of warmth washes over [ismob(antimagic_source) ? "you" : antimagic_source] as rays of light surround your body and protect you! ",
+ )
+ antimagic_effect = mutable_appearance('icons/mob/genetics.dmi', "servitude", ABOVE_MOB_LAYER)
+ antimagic_color = LIGHT_COLOR_HOLY_MAGIC
+ playsound(src, 'sound/magic/magic_block_holy.ogg', 50, TRUE)
+
+ else if(magic_flags & MAGIC_RESISTANCE_MIND)
+ visible_message(
+ "[src] forehead shines as [ismob(antimagic_source) ? p_they() : antimagic_source] repulses magic from their mind! ",
+ "A feeling of cold splashes on [ismob(antimagic_source) ? "you" : antimagic_source] as your forehead reflects magic usering your mind! ",
+ )
+ antimagic_effect = mutable_appearance('icons/mob/genetics.dmi', "telekinesishead", ABOVE_MOB_LAYER)
+ antimagic_color = LIGHT_COLOR_DARK_BLUE
+ playsound(src, 'sound/magic/magic_block_mind.ogg', 50, TRUE)
+
+ mob_light(_color = antimagic_color, _range = 2, _power = 2, _duration = 5 SECONDS)
+ add_overlay(antimagic_effect)
+ addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, cut_overlay), antimagic_effect), 5 SECONDS)
+
+/mob/living/proc/remove_recent_magic_block()
+ REMOVE_TRAIT(src, TRAIT_RECENTLY_BLOCKED_MAGIC, MAGIC_TRAIT)
diff --git a/code/modules/mob/mob_holder.dm b/code/modules/mob/mob_holder.dm
index 18290c6cecb0..5f7200b17347 100644
--- a/code/modules/mob/mob_holder.dm
+++ b/code/modules/mob/mob_holder.dm
@@ -3,7 +3,7 @@
name = "holder"
desc = "You shouldn't ever see this."
icon = 'icons/obj/objects.dmi'
- slot_flags = ITEM_SLOT_HEAD|ITEM_SLOT_BOTH_EARS
+ slot_flags = ITEM_SLOT_HEAD|ITEM_SLOT_NECK
/obj/item/holder/New()
..()
diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm
index c3a043807110..db5d91b22557 100644
--- a/code/modules/mob/new_player/new_player.dm
+++ b/code/modules/mob/new_player/new_player.dm
@@ -289,6 +289,8 @@
return FALSE
if(job.get_exp_restrictions(client))
return FALSE
+ if(job.mentor_only && !check_rights(R_MENTOR | R_ADMIN, FALSE))
+ return FALSE
if(GLOB.configuration.jobs.assistant_limit)
if(job.title == "Assistant")
diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm
index 74176c1a1640..af6292a6284e 100644
--- a/code/modules/mod/mod_types.dm
+++ b/code/modules/mod/mod_types.dm
@@ -366,12 +366,17 @@
var/insignia_type = /obj/item/mod/module/insignia
/// Additional module we add, as a treat.
var/additional_module
+ /// Inquisitorial module, as we have reached that point.
+ var/inquisitorial_module
/obj/item/mod/control/pre_equipped/responsory/Initialize(mapload, new_theme, new_skin, new_core)
applied_modules.Insert(1, insignia_type)
if(additional_module)
applied_modules += additional_module
default_pins += additional_module
+ if(inquisitorial_module)
+ applied_modules += inquisitorial_module
+
return ..()
/obj/item/mod/control/pre_equipped/responsory/commander
@@ -410,9 +415,10 @@
insignia_type = /obj/item/mod/module/insignia/chaplain
additional_module = /obj/item/mod/module/injector
-/// Diffrent look, as well as magic proof on TG. We don't have the magic proof stuff here, but it's perfect for inqusitors. Or if you want to give your ERT a fancy look.
+/// Diffrent look, as well as magic proof. It's perfect for inqusitors. Or if you want to give your ERT a fancy look. At this time, the other ones are unused, and frankly I don't like the idea of antimagic gamma.
/obj/item/mod/control/pre_equipped/responsory/inquisitory
applied_skin = "inquisitory"
+ inquisitorial_module = /obj/item/mod/module/anti_magic
/obj/item/mod/control/pre_equipped/responsory/inquisitory/commander
insignia_type = /obj/item/mod/module/insignia/commander
diff --git a/code/modules/mod/modules/modules_antag.dm b/code/modules/mod/modules/modules_antag.dm
index f33db48aa27f..002de3f3b308 100644
--- a/code/modules/mod/modules/modules_antag.dm
+++ b/code/modules/mod/modules/modules_antag.dm
@@ -527,6 +527,24 @@
/obj/item/mod/module/energy_shield/gamma
shield_icon = "shield-old"
+///Magic Nullifier - Protects you from magic.
+/obj/item/mod/module/anti_magic
+ name = "MOD magic nullifier module"
+ desc = "A series of obsidian rods installed into critical points around the suit, \
+ vibrated at a certain low frequency to enable them to resonate. \
+ This creates a low-range, yet strong, magic nullification field around the user, \
+ aided by a full replacement of the suit's normal coolant with holy water. \
+ Spells will spall right off this field, though it'll do nothing to help others believe you about all this."
+ icon_state = "magic_nullifier"
+ removable = FALSE
+ incompatible_modules = list(/obj/item/mod/module/anti_magic)
+
+/obj/item/mod/module/anti_magic/on_suit_activation()
+ ADD_TRAIT(mod.wearer, TRAIT_ANTIMAGIC, "[UID(src)]")
+
+/obj/item/mod/module/anti_magic/on_suit_deactivation(deleting = FALSE)
+ REMOVE_TRAIT(mod.wearer, TRAIT_ANTIMAGIC, "[UID(src)]")
+
/obj/item/mod/module/anomaly_locked/teslawall
name = "MOD arc-shield module" // temp
desc = "A module that uses a flux core to project an unstable protective shield." //change
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm
index 2d20a77d9037..38bd6bf1b3cc 100644
--- a/code/modules/paperwork/photography.dm
+++ b/code/modules/paperwork/photography.dm
@@ -172,7 +172,7 @@
icon_state = "camera"
item_state = "electropack"
w_class = WEIGHT_CLASS_SMALL
- slot_flags = ITEM_SLOT_BELT
+ slot_flags = ITEM_SLOT_NECK
var/list/matter = list("metal" = 2000)
var/pictures_max = 10
// cameras historically were varedited to start with 30 shots despite
diff --git a/code/modules/power/cables/cable.dm b/code/modules/power/cables/cable.dm
index e46b052f0a3f..23c6b28e3003 100644
--- a/code/modules/power/cables/cable.dm
+++ b/code/modules/power/cables/cable.dm
@@ -157,9 +157,9 @@ By design, d1 is the smallest direction and d2 is the highest
investigate_log("was deconstructed by [key_name(usr, 1)] in [get_area(usr)]([T.x], [T.y], [T.z] - [ADMIN_JMP(T)])","wires")
if(!(flags & NODECONSTRUCT))
if(d1) // 0-X cables are 1 unit, X-X cables are 2 units long
- new/obj/item/stack/cable_coil(T, 2, paramcolor = color)
+ new/obj/item/stack/cable_coil(T, 2, color)
else
- new/obj/item/stack/cable_coil(T, 1, paramcolor = color)
+ new/obj/item/stack/cable_coil(T, 1, color)
qdel(src)
/* ===POWERNET PROCS=== */
diff --git a/code/modules/power/cables/cable_coil.dm b/code/modules/power/cables/cable_coil.dm
index 9f5ec33fc4e5..f688d0ab2679 100644
--- a/code/modules/power/cables/cable_coil.dm
+++ b/code/modules/power/cables/cable_coil.dm
@@ -28,13 +28,10 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe/cable_restrain
usesound = 'sound/items/deconstruct.ogg'
toolspeed = 1
-/obj/item/stack/cable_coil/New(location, length, paramcolor)
+/obj/item/stack/cable_coil/Initialize(mapload, length, paramcolor)
. = ..()
if(paramcolor)
color = paramcolor
-
-/obj/item/stack/cable_coil/Initialize(mapload)
- . = ..()
update_icon()
recipes = GLOB.cable_coil_recipes
update_wclass()
@@ -210,7 +207,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe/cable_restrain
if(C.shock(user, 50))
if(prob(50)) //fail
- new /obj/item/stack/cable_coil(get_turf(C), 1, paramcolor = C.color)
+ new /obj/item/stack/cable_coil(get_turf(C), 1, C.color)
C.deconstruct()
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CABLE_UPDATED, T)
@@ -378,9 +375,9 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe/cable_restrain
/obj/item/stack/cable_coil/white
color = COLOR_WHITE
-/obj/item/stack/cable_coil/random/New()
+/obj/item/stack/cable_coil/random/Initialize(mapload)
+ . = ..()
color = pick(COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN, COLOR_ORANGE)
- ..()
/obj/item/stack/cable_coil/cut
item_state = "coil2"
diff --git a/code/modules/power/engines/supermatter/supermatter.dm b/code/modules/power/engines/supermatter/supermatter.dm
index f2d3a7d1e57a..335c56dbfe48 100644
--- a/code/modules/power/engines/supermatter/supermatter.dm
+++ b/code/modules/power/engines/supermatter/supermatter.dm
@@ -44,7 +44,7 @@
#define DAMAGE_INCREASE_MULTIPLIER 0.25
-#define THERMAL_RELEASE_MODIFIER 5 //Higher == less heat released during reaction, not to be confused with the above values
+#define THERMAL_RELEASE_MODIFIER 1 //Higher == less heat released during reaction, not to be confused with the above values
#define PLASMA_RELEASE_MODIFIER 750 //Higher == less plasma released by reaction
#define OXYGEN_RELEASE_MODIFIER 325 //Higher == less oxygen released at high temperature/power
@@ -230,6 +230,11 @@
/// Run S-Class event? So we can only run one S-class event per round per crystal
var/has_run_sclass = FALSE
+ /// How often do we want to process the crystal?
+ var/ticks_per_run = 5
+ /// How long has it been since we processed the crystal?
+ var/tick_counter = 0
+
/obj/machinery/atmospherics/supermatter_crystal/Initialize(mapload)
. = ..()
@@ -410,8 +415,11 @@
qdel(src)
/obj/machinery/atmospherics/supermatter_crystal/process_atmos()
- var/datum/milla_safe/supermatter_process/milla = new()
- milla.invoke_async(src)
+ tick_counter += SSair.wait
+ if(tick_counter >= ticks_per_run)
+ var/datum/milla_safe/supermatter_process/milla = new()
+ milla.invoke_async(src)
+ tick_counter -= ticks_per_run
/datum/milla_safe/supermatter_process
@@ -427,7 +435,7 @@
if(isnull(T)) // We have a null turf...something is wrong, stop processing this entity.
return PROCESS_KILL
- if(!istype(T)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now.
+ if(!istype(loc, /turf)) //We are in a crate or somewhere that isn't turf, if we return to turf resume processing but for now.
return //Yeah just stop.
if(T.density)
@@ -569,15 +577,11 @@
//Power * 0.55 * a value between 1 and 0.8
var/device_energy = power * REACTION_POWER_MODIFIER
- //To figure out how much temperature to add each tick, consider that at one atmosphere's worth
- //of pure oxygen, with all four lasers firing at standard energy and no N2 present, at room temperature
- //that the device energy is around 2140. At that stage, we don't want too much heat to be put out
- //Since the core is effectively "cold"
-
- //Also keep in mind we are only adding this temperature to (efficiency)% of the one tile the rock
- //is on. An increase of 4*C @ 25% efficiency here results in an increase of 1*C / (#tilesincore) overall.
- //Power * 0.55 * (some value between 1.5 and 23) / 5
- removed.set_temperature(removed.temperature() + max(0, min((2500 * dynamic_heat_modifier) - removed.temperature(), (((device_energy * dynamic_heat_modifier) / THERMAL_RELEASE_MODIFIER) * heat_multiplier))))
+ // Calculate temperature change in terms of thermal energy, scaled by the average specific heat of the gas.
+ if(removed.total_moles())
+ var/produced_joules = max(0, ((device_energy * dynamic_heat_modifier) / THERMAL_RELEASE_MODIFIER) * heat_multiplier)
+ produced_joules *= (removed.heat_capacity() / removed.total_moles())
+ removed.set_temperature((removed.thermal_energy() + produced_joules) / removed.heat_capacity())
//Calculate how much gas to release
//Varies based on power and gas content
diff --git a/code/modules/power/lights.dm b/code/modules/power/lights.dm
index 659c6d4d7bdd..344d73a4bbac 100644
--- a/code/modules/power/lights.dm
+++ b/code/modules/power/lights.dm
@@ -76,7 +76,7 @@
stage = LIGHT_CONSTRUCT_EMPTY_FRAME
update_icon(UPDATE_ICON_STATE)
- new /obj/item/stack/cable_coil(get_turf(loc), 1, paramcolor = COLOR_RED)
+ new /obj/item/stack/cable_coil(get_turf(loc), 1, COLOR_RED)
WIRECUTTER_SNIP_MESSAGE
/obj/machinery/light_construct/screwdriver_act(mob/living/user, obj/item/I)
diff --git a/code/modules/projectiles/guns/chaos_bolt.dm b/code/modules/projectiles/guns/chaos_bolt.dm
index fab8d9955f4a..cd197bd82757 100644
--- a/code/modules/projectiles/guns/chaos_bolt.dm
+++ b/code/modules/projectiles/guns/chaos_bolt.dm
@@ -18,7 +18,8 @@
/obj/item/projectile/magic/chaos/on_hit(atom/target, blocked = 0)
. = ..()
-
+ if(!.)
+ return
if(iswallturf(target) || isobj(target))
target.color = pick(GLOB.random_color_list)
return
diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index c542ffa00417..795e31760862 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -15,6 +15,7 @@
var/can_charge = TRUE
var/ammo_type
var/no_den_usage
+ var/antimagic_flags = MAGIC_RESISTANCE
origin_tech = null
clumsy_check = FALSE
trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses magic instead
@@ -31,6 +32,9 @@
return
else
no_den_usage = 0
+ if(!user.can_cast_magic(antimagic_flags))
+ to_chat(user, "[src] whizzles quietly. ")
+ return FALSE
..()
/obj/item/gun/magic/can_shoot()
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index 8a82da356006..ff3ef65d9324 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -197,111 +197,6 @@
origin_tech = "combat=3;biotech=5"
mag_type = /obj/item/ammo_box/magazine/internal/overgrown
-// A gun to play Russian Roulette!
-// You can spin the chamber to randomize the position of the bullet.
-
-/obj/item/gun/projectile/revolver/russian
- name = "\improper Russian Revolver"
- desc = "A Russian-made revolver for drinking games. Uses .357 ammo, and has a mechanism that spins the chamber before each trigger pull."
- icon_state = "russian_revolver"
- origin_tech = "combat=2;materials=2"
- mag_type = /obj/item/ammo_box/magazine/internal/rus357
- var/spun = 0
-
-
-/obj/item/gun/projectile/revolver/russian/Initialize(mapload)
- . = ..()
- Spin()
- update_icon()
-
-/obj/item/gun/projectile/revolver/russian/proc/Spin()
- chambered = null
- var/random = rand(1, magazine.max_ammo)
- if(random <= get_ammo(0,0))
- chamber_round()
- spun = 1
-
-/obj/item/gun/projectile/revolver/russian/attackby__legacy__attackchain(obj/item/A, mob/user, params)
- var/num_loaded = ..()
- if(num_loaded)
- user.visible_message("[user] loads a single bullet into the revolver and spins the chamber.", "You load a single bullet into the chamber and spin it. ")
- else
- user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber. ")
- if(get_ammo() > 0)
- Spin()
- update_icon()
- A.update_icon()
- return
-
-/obj/item/gun/projectile/revolver/russian/attack_self__legacy__attackchain(mob/user)
- if(!spun && can_shoot())
- user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber. ")
- Spin()
- else
- var/num_unloaded = 0
- while(get_ammo() > 0)
- var/obj/item/ammo_casing/CB
- CB = magazine.get_round()
- chambered = null
- CB.loc = get_turf(loc)
- CB.update_icon()
- playsound(get_turf(CB), "casingdrop", 60, 1)
- num_unloaded++
- if(num_unloaded)
- to_chat(user, "You unload [num_unloaded] shell\s from [src]. ")
- else
- to_chat(user, "[src] is empty. ")
-
-/obj/item/gun/projectile/revolver/russian/afterattack__legacy__attackchain(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params)
- if(flag)
- if(!(target in user.contents) && ismob(target))
- if(user.a_intent == INTENT_HARM) // Flogging action
- return
-
- if(isliving(user))
- if(!can_trigger_gun(user))
- return
- if(target != user)
- if(ismob(target))
- to_chat(user, "A mechanism prevents you from shooting anyone but yourself! ")
- return
-
- if(ishuman(user))
- if(!spun)
- to_chat(user, "You need to spin the revolver's chamber first! ")
- return
-
- spun = 0
-
- if(chambered)
- var/obj/item/ammo_casing/AC = chambered
- if(AC.fire(user, user, firer_source_atom = src))
- playsound(user, fire_sound, 50, 1)
- var/zone = check_zone(user.zone_selected)
- if(zone == "head" || zone == "eyes" || zone == "mouth")
- shoot_self(user, zone)
- else
- user.visible_message("[user.name] cowardly fires [src] at [user.p_their()] [zone]! ", "You cowardly fire [src] at your [zone]! ", "You hear a gunshot! ")
- return
-
- user.visible_message("*click* ")
- playsound(user, 'sound/weapons/empty.ogg', 100, 1)
-
-/obj/item/gun/projectile/revolver/russian/proc/shoot_self(mob/living/carbon/human/user, affecting = "head")
- user.apply_damage(300, BRUTE, affecting)
- user.visible_message("[user.name] fires [src] at [user.p_their()] head! ", "You fire [src] at your head! ", "You hear a gunshot! ")
-
-/obj/item/gun/projectile/revolver/russian/soul
- name = "cursed Russian revolver"
- desc = "To play with this revolver requires wagering your very soul."
-
-/obj/item/gun/projectile/revolver/russian/soul/shoot_self(mob/living/user)
- ..()
- var/obj/item/soulstone/anybody/SS = new /obj/item/soulstone/anybody(get_turf(src))
- SS.transfer_soul("FORCE", user)
- user.death(FALSE)
- user.visible_message("[user.name]'s soul is captured by \the [src]! ", "You've lost the gamble! Your soul is forfeit! ")
-
/obj/item/gun/projectile/revolver/capgun
name = "cap gun"
desc = "Looks almost like the real thing! Ages 8 and up."
diff --git a/code/modules/projectiles/guns/projectile/saw.dm b/code/modules/projectiles/guns/projectile/saw.dm
index c8ddc466f2da..81c7305c2102 100644
--- a/code/modules/projectiles/guns/projectile/saw.dm
+++ b/code/modules/projectiles/guns/projectile/saw.dm
@@ -101,7 +101,7 @@
var/obj/effect/hotspot/hotspot = new /obj/effect/hotspot/fake(location)
hotspot.temperature = 1000
hotspot.recolor()
- location.hotspot_expose(700, 50, 1)
+ location.hotspot_expose(700, 50)
//magazines//
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index 77ce0bb8af19..39387e18b811 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -167,7 +167,7 @@
var/obj/effect/hotspot/hotspot = new /obj/effect/hotspot/fake(location)
hotspot.temperature = 1000
hotspot.recolor()
- location.hotspot_expose(700, 50, 1)
+ location.hotspot_expose(700, 50)
/obj/item/projectile/bullet/incendiary/shell/dragonsbreath
name = "dragonsbreath round"
diff --git a/code/modules/projectiles/projectile/magic_projectiles.dm b/code/modules/projectiles/projectile/magic_projectiles.dm
index 99c40d5929c3..7f06491c7e93 100644
--- a/code/modules/projectiles/projectile/magic_projectiles.dm
+++ b/code/modules/projectiles/projectile/magic_projectiles.dm
@@ -6,6 +6,28 @@
nodamage = 1
armour_penetration_percentage = 100
flag = MAGIC
+ /// determines what type of antimagic can block the spell projectile
+ var/antimagic_flags = MAGIC_RESISTANCE
+ /// determines the drain cost on the antimagic item
+ var/antimagic_charge_cost = 1
+
+/obj/item/projectile/magic/prehit(atom/target)
+ if(isliving(target))
+ var/mob/living/victim = target
+ if(victim.can_block_magic(antimagic_flags, antimagic_charge_cost))
+ visible_message("[src] fizzles on contact with [victim]! ")
+ damage = 0
+ nodamage = 1
+ return FALSE
+ return ..()
+
+/obj/item/projectile/magic/on_hit(atom/target, blocked, hit_zone)
+ if(isliving(target))
+ var/mob/living/victim = target
+ if(victim.can_block_magic(antimagic_flags, antimagic_charge_cost)) // Yes we have to check this twice welcome to bullet hell code
+ return FALSE
+ return ..()
+
/obj/item/projectile/magic/death
name = "bolt of death"
@@ -21,7 +43,7 @@
muzzle_flash_range = 2
muzzle_flash_color_override = LIGHT_COLOR_PURPLE
impact_light_intensity = 7
- impact_light_range = 2.5
+ impact_light_range = 2.5
impact_light_color_override = LIGHT_COLOR_PURPLE
/obj/item/projectile/magic/fireball
@@ -41,6 +63,8 @@
/obj/item/projectile/magic/death/on_hit(mob/living/carbon/target)
. = ..()
+ if(!.)
+ return .
if(isliving(target))
if(target.mob_biotypes & MOB_UNDEAD) //negative energy heals the undead
if(target.revive())
@@ -75,6 +99,8 @@
/obj/item/projectile/magic/fireball/on_hit(target)
. = ..()
+ if(!.)
+ return .
var/turf/T = get_turf(target)
explosion(T, exp_devastate, exp_heavy, exp_light, exp_flash, 0, flame_range = exp_fire)
if(ismob(target)) //multiple flavors of pain
@@ -95,6 +121,8 @@
/obj/item/projectile/magic/resurrection/on_hit(mob/living/carbon/target)
. = ..()
+ if(!.)
+ return .
if(ismob(target))
if(target.mob_biotypes & MOB_UNDEAD) //positive energy harms the undead
target.death(FALSE)
@@ -121,6 +149,8 @@
/obj/item/projectile/magic/teleport/on_hit(mob/target)
. = ..()
+ if(!.)
+ return .
var/teleammount = 0
var/teleloc = target
if(!isturf(target))
@@ -142,6 +172,8 @@
/obj/item/projectile/magic/door/on_hit(atom/target)
. = ..()
+ if(!.)
+ return .
var/atom/T = target.loc
if(isturf(target) && target.density)
if(!(istype(target, /turf/simulated/wall/indestructible)))
@@ -179,6 +211,8 @@
/obj/item/projectile/magic/change/on_hit(atom/change)
. = ..()
+ if(!.)
+ return .
wabbajack(change)
GLOBAL_LIST_INIT(wabbajack_hostile_animals, list(
@@ -380,6 +414,9 @@ GLOBAL_LIST_INIT(wabbajack_docile_animals, list(
SpinAnimation()
/obj/item/projectile/magic/slipping/on_hit(atom/target, blocked = 0)
+ . = ..()
+ if(!.)
+ return .
if(ishuman(target))
var/mob/living/carbon/human/H = target
H.slip(src, slip_weaken, 0, FALSE, TRUE) //Slips even with noslips/magboots on. NO ESCAPE!
@@ -394,7 +431,6 @@ GLOBAL_LIST_INIT(wabbajack_docile_animals, list(
to_chat(target, "You get splatted by [src]. ")
L.Weaken(slip_weaken)
L.Stun(slip_stun)
- . = ..()
/obj/item/projectile/magic/arcane_barrage
name = "arcane bolt"
diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm
index 1484b49792e2..f80992e0347c 100644
--- a/code/modules/reagents/reagent_containers/glass_containers.dm
+++ b/code/modules/reagents/reagent_containers/glass_containers.dm
@@ -306,6 +306,7 @@
volume = 120
armor = list(MELEE = 10, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 75, ACID = 50) //Weak melee protection, because you can wear it on your head
slot_flags = ITEM_SLOT_HEAD
+ prefered_slot_flags = ITEM_SLOT_IN_BACKPACK
resistance_flags = NONE
blocks_emissive = EMISSIVE_BLOCK_GENERIC
container_type = OPENCONTAINER
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index f41f02f2ad57..f01a8d1c1a02 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -548,7 +548,7 @@
id = "stethoscope"
build_type = AUTOLATHE
materials = list(MAT_METAL = 500)
- build_path = /obj/item/clothing/accessory/stethoscope
+ build_path = /obj/item/clothing/neck/stethoscope
category = list("initial", "Medical")
/datum/design/timer
diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm
index 443d9361bf62..995af56462d2 100644
--- a/code/modules/research/designs/equipment_designs.dm
+++ b/code/modules/research/designs/equipment_designs.dm
@@ -92,14 +92,14 @@
build_path = /obj/item/clothing/glasses/meson/engine
category = list("Equipment")
-/datum/design/tray_goggles
- name = "Optical T-Ray Scanners"
- desc = "Used by engineering staff to see underfloor objects such as cables and pipes."
- id = "tray_goggles"
+/datum/design/atmos_goggles
+ name = "Atmospherics Scanner Goggles"
+ desc = "Used by atmospherics techs to see pressure and underfloor objects such as cables and pipes."
+ id = "atmos_goggles"
req_tech = list("materials" = 3, "magnets" = 2, "engineering" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
- build_path = /obj/item/clothing/glasses/meson/engine/tray
+ build_path = /obj/item/clothing/glasses/meson/engine/atmos
category = list("Equipment")
/datum/design/nvgmesons
diff --git a/code/modules/response_team/ert.dm b/code/modules/response_team/ert.dm
index 0a3784e212c2..fcf87416b445 100644
--- a/code/modules/response_team/ert.dm
+++ b/code/modules/response_team/ert.dm
@@ -95,8 +95,8 @@ GLOBAL_LIST_EMPTY(ert_request_messages)
A.close()
var/list/ert_species_prefs = list()
for(var/mob/M in GLOB.response_team_members)
- ert_species_prefs.Add(input_async(M, "Please select a species (10 seconds):", list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin", "Nian", "Drask", "Kidan", "Grey", "Random")))
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(get_ert_role_prefs), GLOB.response_team_members, ert_gender_prefs, ert_species_prefs), 10 SECONDS)
+ ert_species_prefs.Add(input_async(M, "Please select a species (10 seconds):", list("Human"))) // SS220 EDIT - Human only ERT
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(get_ert_role_prefs), GLOB.response_team_members, ert_gender_prefs, ert_species_prefs), 0 SECONDS) // SS220 EDIT - Human only ERT
/proc/get_ert_role_prefs(list/response_team_members, list/ert_gender_prefs, list/ert_species_prefs) // Why the FUCK is this variable the EXACT SAME as the global one
var/list/ert_role_prefs = list()
diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm
index bc32bedbe9fe..c77d8b9a11df 100644
--- a/code/modules/shuttle/supply.dm
+++ b/code/modules/shuttle/supply.dm
@@ -219,6 +219,10 @@
var/obj/effect/E = AM
if(E.is_cleanable())
return CARGO_OK
+ return CARGO_SKIP_ATOM
+
+ if(istype(AM, /mob/dead))
+ return CARGO_SKIP_ATOM
return CARGO_OK
diff --git a/code/modules/supply/supply_packs/pack_miscellaneous.dm b/code/modules/supply/supply_packs/pack_miscellaneous.dm
index 1908e9aa0467..73326fdf98bd 100644
--- a/code/modules/supply/supply_packs/pack_miscellaneous.dm
+++ b/code/modules/supply/supply_packs/pack_miscellaneous.dm
@@ -351,7 +351,11 @@
name = "Collectable Plushies Crate"
cost = 1000
containername = "collectable plushies crate! Brought to you by Bass.inc!"
- contains = list(/obj/random/plushie, /obj/random/plushie, /obj/random/plushie/explosive)
+ contains = list(
+ /obj/effect/spawner/random/plushies,
+ /obj/effect/spawner/random/plushies,
+ /obj/effect/spawner/random/plushies/explosive,
+ )
/datum/supply_packs/misc/foamforce
name = "Foam Force Crate"
@@ -430,9 +434,9 @@
/obj/item/clothing/under/rank/procedure/iaa,
/obj/item/clothing/suit/storage/iaa/blackjacket,
/obj/item/clothing/accessory/waistcoat,
- /obj/item/clothing/accessory/blue,
- /obj/item/clothing/accessory/red,
- /obj/item/clothing/accessory/black,
+ /obj/item/clothing/neck/tie/blue,
+ /obj/item/clothing/neck/tie/red,
+ /obj/item/clothing/neck/tie/black,
/obj/item/clothing/head/bowlerhat,
/obj/item/clothing/head/fedora,
/obj/item/clothing/head/flatcap,
diff --git a/code/modules/supply/supply_packs/pack_vendor.dm b/code/modules/supply/supply_packs/pack_vendor.dm
index ae1054479b83..969378756839 100644
--- a/code/modules/supply/supply_packs/pack_vendor.dm
+++ b/code/modules/supply/supply_packs/pack_vendor.dm
@@ -84,3 +84,8 @@
name = "Chinese Supply Crate"
contains = list(/obj/item/vending_refill/chinese)
containername = "chinese supply crate"
+
+/datum/supply_packs/vending/trainer
+ name = "TrainDrobe Supply Crate"
+ contains = list(/obj/item/vending_refill/traindrobe)
+ containername = "traindrobe supply crate"
diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm
index 90698ed3b918..a96307d18a71 100644
--- a/code/modules/surgery/organs/augments_internal.dm
+++ b/code/modules/surgery/organs/augments_internal.dm
@@ -506,6 +506,7 @@
clothes_req = FALSE
invocation = "none"
invocation_type = "none"
+ antimagic_flags = NONE
selection_activated_message = "You warm up your Binyat deck, there's an idle buzzing at the back of your mind as it awaits a target."
selection_deactivated_message = "Your hacking deck makes an almost disappointed sounding buzz at the back of your mind as it powers down."
action_icon_state = "hackerman"
@@ -678,6 +679,10 @@
COOLDOWN_DECLARE(reviver_cooldown)
/// How long till we can try to defib again
COOLDOWN_DECLARE(defib_cooldown)
+ /// This check is an aditional minute delay applied to nuggeted IPCS, so they are not endlessly instantly reviving.
+ COOLDOWN_DECLARE(nugget_contingency)
+ /// The trigger when nuggeted is detected. Resets when revived. Prevents the cooldown from being applied again.
+ var/applied_nugget_cooldown = FALSE
/obj/item/organ/internal/cyberimp/chest/reviver/hardened
name = "Hardened reviver implant"
@@ -699,12 +704,18 @@
COOLDOWN_START(src, reviver_cooldown, revive_cost)
reviving = FALSE
to_chat(owner, "Your reviver implant shuts down and starts recharging. It will be ready again in [DisplayTimeText(revive_cost)]. ")
+ applied_nugget_cooldown = FALSE
else
addtimer(CALLBACK(src, PROC_REF(heal)), 3 SECONDS)
return
- if(!COOLDOWN_FINISHED(src, reviver_cooldown) || owner.suiciding) // don't heal while you're in cooldown!
+ if(!COOLDOWN_FINISHED(src, reviver_cooldown) || owner.suiciding || !COOLDOWN_FINISHED(src, nugget_contingency)) // don't heal while you're in cooldown!
return
if(owner.health <= 0 || owner.stat == DEAD)
+ if(ismachineperson(owner))
+ if(!applied_nugget_cooldown && length(owner.bodyparts) <= 2)
+ COOLDOWN_START(src, nugget_contingency, 1 MINUTES)
+ applied_nugget_cooldown = TRUE
+ return
revive_cost = 0
reviving = TRUE
has_defibed = FALSE
diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm
index 65782477e2ea..e83adeb5efaf 100644
--- a/code/modules/telesci/bscrystal.dm
+++ b/code/modules/telesci/bscrystal.dm
@@ -29,8 +29,8 @@
. += ""
. += "Nanotrasen and many of its rivals are scrambling to be the first to develop practical mass-producible bluespace technologies so they they can become the hegemon of a new market monopoly."
-/obj/item/stack/ore/bluespace_crystal/New(loc, new_amount, merge = TRUE)
- ..()
+/obj/item/stack/ore/bluespace_crystal/Initialize(mapload, new_amount, merge)
+ . = ..()
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
diff --git a/code/modules/telesci/rcs.dm b/code/modules/telesci/rcs.dm
index 92f7a1109fef..67b938b11fb7 100644
--- a/code/modules/telesci/rcs.dm
+++ b/code/modules/telesci/rcs.dm
@@ -10,14 +10,14 @@
desc = "A device used to teleport crates and closets to cargo telepads."
icon = 'icons/obj/telescience.dmi'
icon_state = "rcs"
- item_state = "rcd"
+ item_state = "rcs"
flags = CONDUCT
force = 10.0
throwforce = 10.0
throw_speed = 2
throw_range = 5
toolspeed = 1
- usesound = 'sound/machines/click.ogg'
+ usesound = 'sound/weapons/flash.ogg'
/// Power cell (10000W)
var/obj/item/stock_parts/cell/high/rcell = null
/// Selected telepad
@@ -124,7 +124,7 @@
/obj/item/rcs/proc/teleport(mob/user, obj/structure/closet/C, target)
to_chat(user, "Teleporting [C]... ")
- playsound(src, usesound, 50, TRUE)
+ playsound(get_turf(src), usesound, 25, TRUE)
teleporting = TRUE
if(!do_after(user, 50 * toolspeed, target = C))
teleporting = FALSE
@@ -132,6 +132,6 @@
teleporting = FALSE
rcell.use(chargecost)
- do_sparks(5, TRUE, C)
+ playsound(get_turf(src), 'sound/weapons/emitter2.ogg', 25, TRUE)
do_teleport(C, target)
to_chat(user, "Teleport successful. [round(rcell.charge/chargecost)] charge\s left. ")
diff --git a/code/modules/tgui/modules/ghost_hud_panel.dm b/code/modules/tgui/modules/ghost_hud_panel.dm
index 2e6a6b8d58d9..307bed5119c9 100644
--- a/code/modules/tgui/modules/ghost_hud_panel.dm
+++ b/code/modules/tgui/modules/ghost_hud_panel.dm
@@ -13,7 +13,8 @@ GLOBAL_DATUM_INIT(ghost_hud_panel, /datum/ui_module/ghost_hud_panel, new)
var/list/hud_type_lookup = list(
"medical" = DATA_HUD_MEDICAL_ADVANCED,
"security" = DATA_HUD_SECURITY_ADVANCED,
- "diagnostic" = DATA_HUD_DIAGNOSTIC_ADVANCED
+ "diagnostic" = DATA_HUD_DIAGNOSTIC_ADVANCED,
+ "pressure" = DATA_HUD_PRESSURE
)
/datum/ui_module/ghost_hud_panel/ui_state(mob/user)
diff --git a/code/modules/vehicle/tg_vehicles/scooter.dm b/code/modules/vehicle/tg_vehicles/scooter.dm
index 6ff3e1b4a168..b42b7044935a 100644
--- a/code/modules/vehicle/tg_vehicles/scooter.dm
+++ b/code/modules/vehicle/tg_vehicles/scooter.dm
@@ -176,7 +176,7 @@
if(location)
if(prob(33))
- location.hotspot_expose(1000, 1000)
+ location.hotspot_expose(1000, 1)
sparks.start() //the most radical way to start plasma fires
for(var/mob/living/carbon/victim in location)
if(victim.body_position == LYING_DOWN)
diff --git a/code/tests/_game_test.dm b/code/tests/_game_test.dm
index 784540d7759a..3781987af15c 100644
--- a/code/tests/_game_test.dm
+++ b/code/tests/_game_test.dm
@@ -47,8 +47,7 @@
var/list/procs_tested
//usable vars
- var/turf/run_loc_bottom_left
- var/turf/run_loc_top_right
+ var/static/list/available_turfs
//internal shit
var/succeeded = TRUE
@@ -56,14 +55,25 @@
var/list/fail_reasons
/datum/game_test/New()
- run_loc_bottom_left = locate(1, 1, 1)
- run_loc_top_right = locate(5, 5, 1)
+ if(!length(available_turfs))
+ load_testing_area()
+ available_turfs = get_test_turfs()
+
+/datum/game_test/proc/load_testing_area()
+ var/list/testing_levels = levels_by_trait(GAME_TEST_LEVEL)
+ if(!length(testing_levels))
+ Fail("Could not find appropriate z-level for spawning test areas")
+ var/testing_z_level = pick(testing_levels)
+ var/datum/map_template/generic_test_area = GLOB.map_templates["test_generic.dmm"]
+ if(!generic_test_area.load(locate(TRANSITIONEDGE + 1, TRANSITIONEDGE + 1, testing_z_level)))
+ Fail("Could not place generic testing area on z-level [testing_z_level]")
/datum/game_test/Destroy()
QDEL_LIST_CONTENTS(allocated)
- //clear the test area
- for(var/atom/movable/AM in block(run_loc_bottom_left, run_loc_top_right))
- qdel(AM)
+ // clear the whole test area, not just the bounds of the landmarks
+ for(var/turf/T in get_area_turfs(/area/game_test))
+ for(var/atom/movable/AM in T)
+ qdel(AM)
return ..()
/datum/game_test/proc/Run()
@@ -77,15 +87,36 @@
LAZYADD(fail_reasons, list(list(reason, file, line)))
+/datum/game_test/proc/get_test_turfs()
+ var/list/result = list()
+ var/obj/effect/landmark/bottom_left
+ var/obj/effect/landmark/top_right
+ for(var/obj/effect/landmark in GLOB.landmarks_list)
+ if(istype(landmark, /obj/effect/landmark/game_test/bottom_left_corner))
+ bottom_left = landmark
+ else if(istype(landmark, /obj/effect/landmark/game_test/top_right_corner))
+ top_right = landmark
+
+ if(!(bottom_left && top_right))
+ Fail("could not find test area landmarks")
+
+ for(var/turf/T in block(bottom_left.loc, top_right.loc))
+ result |= T
+
+ if(!length(result))
+ Fail("could not find any test turfs")
+
+ return result
+
/// Allocates an instance of the provided type, and places it somewhere in an available loc
/// Instances allocated through this proc will be destroyed when the test is over
/datum/game_test/proc/allocate(type, ...)
var/list/arguments = args.Copy(2)
if(ispath(type, /atom))
if(!arguments.len)
- arguments = list(run_loc_bottom_left)
+ arguments = list(pick(available_turfs))
else if(arguments[1] == null)
- arguments[1] = run_loc_bottom_left
+ arguments[1] = pick(available_turfs)
var/instance
// Byond will throw an index out of bounds if arguments is empty in that arglist call. Sigh
if(length(arguments))
diff --git a/code/tests/atmos/test_ventcrawl.dm b/code/tests/atmos/test_ventcrawl.dm
index fd4ca7c4e38a..c757bc9e11e7 100644
--- a/code/tests/atmos/test_ventcrawl.dm
+++ b/code/tests/atmos/test_ventcrawl.dm
@@ -7,14 +7,16 @@
/datum/milla_safe/ventcrawl_test_setup
/datum/milla_safe/ventcrawl_test_setup/on_run(datum/game_test/ventcrawl/test)
+ // I'm sure get_area_turfs is totally deterministic and this will never go wrong
+ var/turf/run_loc_bottom_left = test.available_turfs[1]
// This setup creates turfs that initialize themselves in MILLA on creation, which is why we need to be MILLA-safe.
var/datum/map_template/template = GLOB.map_templates["test_ventcrawl.dmm"]
- if(!template.load(test.run_loc_bottom_left))
+ if(!template.load(run_loc_bottom_left))
test.Fail("Failed to load 'test_ventcrawl.dmm'")
- test.slime = new /mob/living/simple_animal/slime/unit_test_dummy(test.run_loc_bottom_left)
- test.vent = test.find_spawned_test_object(test.run_loc_bottom_left, /obj/machinery/atmospherics/unary/vent_pump)
- test.table = test.find_spawned_test_object(get_step(test.run_loc_bottom_left, EAST), /obj/structure/table)
+ test.slime = new /mob/living/simple_animal/slime/unit_test_dummy(run_loc_bottom_left)
+ test.vent = test.find_spawned_test_object(run_loc_bottom_left, /obj/machinery/atmospherics/unary/vent_pump)
+ test.table = test.find_spawned_test_object(get_step(run_loc_bottom_left, EAST), /obj/structure/table)
test.setup_complete = TRUE
/datum/game_test/ventcrawl/proc/find_spawned_test_object(turf/location as turf, test_object_type)
diff --git a/code/tests/games/test_cards.dm b/code/tests/games/test_cards.dm
index 209fdfb92c13..c74f52bc1a94 100644
--- a/code/tests/games/test_cards.dm
+++ b/code/tests/games/test_cards.dm
@@ -16,7 +16,7 @@
/datum/game_test/card_deck/Run()
// setup
- var/loc = pick(block(run_loc_bottom_left, run_loc_top_right))
+ var/loc = pick(available_turfs)
var/obj/item/deck/cards/cards = allocate(/obj/item/deck/cards, loc)
cards.build_decks()
diff --git a/code/tests/test_spawn_humans.dm b/code/tests/test_spawn_humans.dm
index ca0a6d6bd4a7..f7bb6c6cd22a 100644
--- a/code/tests/test_spawn_humans.dm
+++ b/code/tests/test_spawn_humans.dm
@@ -1,8 +1,6 @@
/datum/game_test/spawn_humans/Run()
- var/locs = block(run_loc_bottom_left, run_loc_top_right)
-
for(var/I in 1 to 5)
- allocate(/mob/living/carbon/human, pick(locs))
+ allocate(/mob/living/carbon/human, pick(available_turfs))
// There is a 5 second delay here so that all the items on the humans have time to initialize and spawn
sleep(50)
diff --git a/icons/_nanomaps/BoxStation220_nanomap_z1.png b/icons/_nanomaps/BoxStation220_nanomap_z1.png
index 89129efc0734..1a47040565da 100644
Binary files a/icons/_nanomaps/BoxStation220_nanomap_z1.png and b/icons/_nanomaps/BoxStation220_nanomap_z1.png differ
diff --git a/icons/_nanomaps/BoxStation_nanomap_z1.png b/icons/_nanomaps/BoxStation_nanomap_z1.png
index e9a136ce907f..54ad9eefdaf5 100644
Binary files a/icons/_nanomaps/BoxStation_nanomap_z1.png and b/icons/_nanomaps/BoxStation_nanomap_z1.png differ
diff --git a/icons/_nanomaps/CereStation_nanomap_z1.png b/icons/_nanomaps/CereStation_nanomap_z1.png
index fa5a964348ce..b60e9a8c63ca 100644
Binary files a/icons/_nanomaps/CereStation_nanomap_z1.png and b/icons/_nanomaps/CereStation_nanomap_z1.png differ
diff --git a/icons/_nanomaps/DeltaStation220_nanomap_z1.png b/icons/_nanomaps/DeltaStation220_nanomap_z1.png
index ff773b6c4264..cf5fedb4e4f4 100644
Binary files a/icons/_nanomaps/DeltaStation220_nanomap_z1.png and b/icons/_nanomaps/DeltaStation220_nanomap_z1.png differ
diff --git a/icons/_nanomaps/DeltaStation_nanomap_z1.png b/icons/_nanomaps/DeltaStation_nanomap_z1.png
index e5208546cbb2..f8f770860793 100644
Binary files a/icons/_nanomaps/DeltaStation_nanomap_z1.png and b/icons/_nanomaps/DeltaStation_nanomap_z1.png differ
diff --git a/icons/_nanomaps/EmeraldStation_nanomap_z1.png b/icons/_nanomaps/EmeraldStation_nanomap_z1.png
index bc69d82ecdba..23390fd0f2f7 100644
Binary files a/icons/_nanomaps/EmeraldStation_nanomap_z1.png and b/icons/_nanomaps/EmeraldStation_nanomap_z1.png differ
diff --git a/icons/_nanomaps/MetaStation220_nanomap_z1.png b/icons/_nanomaps/MetaStation220_nanomap_z1.png
index a2ad6fd4e95c..189e412538e8 100644
Binary files a/icons/_nanomaps/MetaStation220_nanomap_z1.png and b/icons/_nanomaps/MetaStation220_nanomap_z1.png differ
diff --git a/icons/_nanomaps/MetaStation_nanomap_z1.png b/icons/_nanomaps/MetaStation_nanomap_z1.png
index bace9e87d755..7c19ef34fab6 100644
Binary files a/icons/_nanomaps/MetaStation_nanomap_z1.png and b/icons/_nanomaps/MetaStation_nanomap_z1.png differ
diff --git a/icons/effects/mapping_helpers.dmi b/icons/effects/mapping_helpers.dmi
index eb702d225df5..ca99e6fc18ce 100644
Binary files a/icons/effects/mapping_helpers.dmi and b/icons/effects/mapping_helpers.dmi differ
diff --git a/icons/effects/random_spawners.dmi b/icons/effects/random_spawners.dmi
index ad6f8e96837f..4cccc5ddfadf 100644
Binary files a/icons/effects/random_spawners.dmi and b/icons/effects/random_spawners.dmi differ
diff --git a/icons/effects/spawner_icons.dmi b/icons/effects/spawner_icons.dmi
index 3f8518c5e123..9ba31a537ca5 100644
Binary files a/icons/effects/spawner_icons.dmi and b/icons/effects/spawner_icons.dmi differ
diff --git a/icons/effects/tile_effects.dmi b/icons/effects/tile_effects.dmi
index 9b5e2d877dc2..4a1a04f3438d 100644
Binary files a/icons/effects/tile_effects.dmi and b/icons/effects/tile_effects.dmi differ
diff --git a/icons/mecha/mecha_mouse.dmi b/icons/mecha/mecha_mouse.dmi
index 765199388565..3518094b8439 100644
Binary files a/icons/mecha/mecha_mouse.dmi and b/icons/mecha/mecha_mouse.dmi differ
diff --git a/icons/mob/accessories.dmi b/icons/mob/accessories.dmi
new file mode 100644
index 000000000000..f769c25b7fc0
Binary files /dev/null and b/icons/mob/accessories.dmi differ
diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi
index 8c855c614265..cc1bae10c47f 100644
Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ
diff --git a/icons/mob/clothing/ears.dmi b/icons/mob/clothing/ears.dmi
index ca9351f857b4..e039f0663f6d 100644
Binary files a/icons/mob/clothing/ears.dmi and b/icons/mob/clothing/ears.dmi differ
diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi
index 15765964a0d2..728ea3f4a8bb 100644
Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ
diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi
index 866d32557e33..5fbb0f01023c 100644
Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ
diff --git a/icons/mob/clothing/head/beret.dmi b/icons/mob/clothing/head/beret.dmi
index bc5b8facb798..5b1df173b2a7 100644
Binary files a/icons/mob/clothing/head/beret.dmi and b/icons/mob/clothing/head/beret.dmi differ
diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi
index 0cfe1952e5a3..c1527a6e638e 100644
Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ
diff --git a/icons/mob/clothing/species/drask/head/beret.dmi b/icons/mob/clothing/species/drask/head/beret.dmi
index 7254e00ca5b6..30e60a411f83 100644
Binary files a/icons/mob/clothing/species/drask/head/beret.dmi and b/icons/mob/clothing/species/drask/head/beret.dmi differ
diff --git a/icons/mob/clothing/species/drask/suit.dmi b/icons/mob/clothing/species/drask/suit.dmi
index 764bb78c135f..1ec8cc17a93f 100644
Binary files a/icons/mob/clothing/species/drask/suit.dmi and b/icons/mob/clothing/species/drask/suit.dmi differ
diff --git a/icons/mob/clothing/species/drask/under/procedure.dmi b/icons/mob/clothing/species/drask/under/procedure.dmi
index 916ecd9f68c2..dd7a0080a454 100644
Binary files a/icons/mob/clothing/species/drask/under/procedure.dmi and b/icons/mob/clothing/species/drask/under/procedure.dmi differ
diff --git a/icons/mob/clothing/species/grey/back.dmi b/icons/mob/clothing/species/grey/back.dmi
index e8a8ea198353..8e074d22774e 100644
Binary files a/icons/mob/clothing/species/grey/back.dmi and b/icons/mob/clothing/species/grey/back.dmi differ
diff --git a/icons/mob/clothing/species/grey/suit.dmi b/icons/mob/clothing/species/grey/suit.dmi
index a16b779e26fe..eedd850ff7d5 100644
Binary files a/icons/mob/clothing/species/grey/suit.dmi and b/icons/mob/clothing/species/grey/suit.dmi differ
diff --git a/icons/mob/clothing/species/grey/under/procedure.dmi b/icons/mob/clothing/species/grey/under/procedure.dmi
index 94850a5ae561..1fab9081bad3 100644
Binary files a/icons/mob/clothing/species/grey/under/procedure.dmi and b/icons/mob/clothing/species/grey/under/procedure.dmi differ
diff --git a/icons/mob/clothing/species/kidan/suit.dmi b/icons/mob/clothing/species/kidan/suit.dmi
index da7fb0c82a7d..883012947395 100644
Binary files a/icons/mob/clothing/species/kidan/suit.dmi and b/icons/mob/clothing/species/kidan/suit.dmi differ
diff --git a/icons/mob/clothing/species/kidan/suits/utility.dmi b/icons/mob/clothing/species/kidan/suits/utility.dmi
index a3b278bae094..5f0993d1c7f8 100644
Binary files a/icons/mob/clothing/species/kidan/suits/utility.dmi and b/icons/mob/clothing/species/kidan/suits/utility.dmi differ
diff --git a/icons/mob/clothing/species/kidan/under/centcom.dmi b/icons/mob/clothing/species/kidan/under/centcom.dmi
index 405f30624061..08dd0d2b33a7 100644
Binary files a/icons/mob/clothing/species/kidan/under/centcom.dmi and b/icons/mob/clothing/species/kidan/under/centcom.dmi differ
diff --git a/icons/mob/clothing/species/kidan/under/procedure.dmi b/icons/mob/clothing/species/kidan/under/procedure.dmi
index 1007af530f0b..49e9f892e52d 100644
Binary files a/icons/mob/clothing/species/kidan/under/procedure.dmi and b/icons/mob/clothing/species/kidan/under/procedure.dmi differ
diff --git a/icons/mob/clothing/species/kidan/under/suit.dmi b/icons/mob/clothing/species/kidan/under/suit.dmi
index 8dc146c45489..c648a85e9177 100644
Binary files a/icons/mob/clothing/species/kidan/under/suit.dmi and b/icons/mob/clothing/species/kidan/under/suit.dmi differ
diff --git a/icons/mob/clothing/species/plasmaman/helmet.dmi b/icons/mob/clothing/species/plasmaman/helmet.dmi
index 04feebb6aa9b..64b5361aa4ca 100644
Binary files a/icons/mob/clothing/species/plasmaman/helmet.dmi and b/icons/mob/clothing/species/plasmaman/helmet.dmi differ
diff --git a/icons/mob/clothing/species/plasmaman/uniform.dmi b/icons/mob/clothing/species/plasmaman/uniform.dmi
index bf1e7080881c..23eb37b89d2f 100644
Binary files a/icons/mob/clothing/species/plasmaman/uniform.dmi and b/icons/mob/clothing/species/plasmaman/uniform.dmi differ
diff --git a/icons/mob/clothing/species/vox/back.dmi b/icons/mob/clothing/species/vox/back.dmi
index 60cf1f0989e9..e1e1b6cd985b 100644
Binary files a/icons/mob/clothing/species/vox/back.dmi and b/icons/mob/clothing/species/vox/back.dmi differ
diff --git a/icons/mob/clothing/species/vox/head.dmi b/icons/mob/clothing/species/vox/head.dmi
index f98d218d01a0..d375080b891f 100644
Binary files a/icons/mob/clothing/species/vox/head.dmi and b/icons/mob/clothing/species/vox/head.dmi differ
diff --git a/icons/mob/clothing/species/vox/head/beret.dmi b/icons/mob/clothing/species/vox/head/beret.dmi
index 827f085bf540..1a3d4308f5d2 100644
Binary files a/icons/mob/clothing/species/vox/head/beret.dmi and b/icons/mob/clothing/species/vox/head/beret.dmi differ
diff --git a/icons/mob/clothing/species/vox/neck.dmi b/icons/mob/clothing/species/vox/neck.dmi
new file mode 100644
index 000000000000..e49ab4e91f66
Binary files /dev/null and b/icons/mob/clothing/species/vox/neck.dmi differ
diff --git a/icons/mob/clothing/species/vox/suit.dmi b/icons/mob/clothing/species/vox/suit.dmi
index 7f23a6c79cb8..7276a815d9cb 100644
Binary files a/icons/mob/clothing/species/vox/suit.dmi and b/icons/mob/clothing/species/vox/suit.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/procedure.dmi b/icons/mob/clothing/species/vox/under/procedure.dmi
index e06e6c2b2bcb..a83061dcf9cc 100644
Binary files a/icons/mob/clothing/species/vox/under/procedure.dmi and b/icons/mob/clothing/species/vox/under/procedure.dmi differ
diff --git a/icons/mob/clothing/species/vox/under/suit.dmi b/icons/mob/clothing/species/vox/under/suit.dmi
index 7021585a4aec..44ed7d6794e3 100644
Binary files a/icons/mob/clothing/species/vox/under/suit.dmi and b/icons/mob/clothing/species/vox/under/suit.dmi differ
diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi
index 06ab83e88584..6fcc795c6b3a 100644
Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ
diff --git a/icons/mob/clothing/under/procedure.dmi b/icons/mob/clothing/under/procedure.dmi
index 9b781e24ba38..329b28a15375 100644
Binary files a/icons/mob/clothing/under/procedure.dmi and b/icons/mob/clothing/under/procedure.dmi differ
diff --git a/icons/mob/genetics.dmi b/icons/mob/genetics.dmi
new file mode 100644
index 000000000000..cb5a3df029c9
Binary files /dev/null and b/icons/mob/genetics.dmi differ
diff --git a/icons/mob/hud/sechud.dmi b/icons/mob/hud/sechud.dmi
index 20f7cdf6495e..18e336332ef7 100644
Binary files a/icons/mob/hud/sechud.dmi and b/icons/mob/hud/sechud.dmi differ
diff --git a/icons/mob/inhands/clothing_lefthand.dmi b/icons/mob/inhands/clothing_lefthand.dmi
index 4b1908d93761..6c753baefcfd 100644
Binary files a/icons/mob/inhands/clothing_lefthand.dmi and b/icons/mob/inhands/clothing_lefthand.dmi differ
diff --git a/icons/mob/inhands/clothing_righthand.dmi b/icons/mob/inhands/clothing_righthand.dmi
index 1d228c3e05bd..6ddf8bf55d85 100644
Binary files a/icons/mob/inhands/clothing_righthand.dmi and b/icons/mob/inhands/clothing_righthand.dmi differ
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index b69382632e6c..81322117b123 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 39878c80842a..5d19aed57507 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi
index 5591755e0190..a18666708200 100644
Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ
diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi
deleted file mode 100644
index 6b10d61b77e9..000000000000
Binary files a/icons/mob/ties.dmi and /dev/null differ
diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi
index afadfaa14da0..f89f5d783bfd 100644
Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ
diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi
new file mode 100644
index 000000000000..ac7094fea86e
Binary files /dev/null and b/icons/obj/clothing/accessories.dmi differ
diff --git a/icons/obj/clothing/accessories_overlay.dmi b/icons/obj/clothing/accessories_overlay.dmi
new file mode 100644
index 000000000000..f667b8dc04e9
Binary files /dev/null and b/icons/obj/clothing/accessories_overlay.dmi differ
diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi
index b4775ad0f4d0..ca7685c79d43 100644
Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 255c1d7f9340..020c2e847166 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/head/beret.dmi b/icons/obj/clothing/head/beret.dmi
index fae5d85c0e95..075c5f6f2fa0 100644
Binary files a/icons/obj/clothing/head/beret.dmi and b/icons/obj/clothing/head/beret.dmi differ
diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi
index c06d4875bcfd..dc6419550b82 100644
Binary files a/icons/obj/clothing/neck.dmi and b/icons/obj/clothing/neck.dmi differ
diff --git a/icons/obj/clothing/species/plasmaman/hats.dmi b/icons/obj/clothing/species/plasmaman/hats.dmi
index f216a84f05a6..27aba871aa9d 100644
Binary files a/icons/obj/clothing/species/plasmaman/hats.dmi and b/icons/obj/clothing/species/plasmaman/hats.dmi differ
diff --git a/icons/obj/clothing/species/plasmaman/uniform.dmi b/icons/obj/clothing/species/plasmaman/uniform.dmi
index 3486bd07b43d..bddb3b810563 100644
Binary files a/icons/obj/clothing/species/plasmaman/uniform.dmi and b/icons/obj/clothing/species/plasmaman/uniform.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index b866b44ad753..d61e20a90f10 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi
deleted file mode 100644
index b840b321a59d..000000000000
Binary files a/icons/obj/clothing/ties.dmi and /dev/null differ
diff --git a/icons/obj/clothing/ties_overlay.dmi b/icons/obj/clothing/ties_overlay.dmi
deleted file mode 100644
index fe3433bdbb06..000000000000
Binary files a/icons/obj/clothing/ties_overlay.dmi and /dev/null differ
diff --git a/icons/obj/clothing/under/procedure.dmi b/icons/obj/clothing/under/procedure.dmi
index 5a04123668d4..cc5e677c64ac 100644
Binary files a/icons/obj/clothing/under/procedure.dmi and b/icons/obj/clothing/under/procedure.dmi differ
diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi
index b88a147b4674..d31f87e96ebd 100644
Binary files a/icons/obj/contraband.dmi and b/icons/obj/contraband.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index 9d78a9877d0b..c72150b5abc7 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/icons/obj/flag.dmi b/icons/obj/flag.dmi
index fc10ab104d00..ac37ee5bd377 100644
Binary files a/icons/obj/flag.dmi and b/icons/obj/flag.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index bb0271c71353..6621c3da0e9f 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/icons/obj/telescience.dmi b/icons/obj/telescience.dmi
index 290be6c34e85..54f9a03812dd 100644
Binary files a/icons/obj/telescience.dmi and b/icons/obj/telescience.dmi differ
diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi
index 0f9f31c90031..174a89c25e18 100755
Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ
diff --git a/icons/obj/weapons/magical_weapons.dmi b/icons/obj/weapons/magical_weapons.dmi
index f8be67a8c08c..154cd8790155 100644
Binary files a/icons/obj/weapons/magical_weapons.dmi and b/icons/obj/weapons/magical_weapons.dmi differ
diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi
index 371e919052e4..d27c76b49de6 100755
Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ
diff --git a/modular_ss220/_defines220/code/job_defines.dm b/modular_ss220/_defines220/code/job_defines.dm
index e93e785a5198..3d16c629cb7a 100644
--- a/modular_ss220/_defines220/code/job_defines.dm
+++ b/modular_ss220/_defines220/code/job_defines.dm
@@ -11,17 +11,17 @@
// ====================================
// JOBCAT_ENGSEC
-// Начинаются с JOB_NANO (1<<14)
-#define JOB_TRAINEE (1<<15)
-#define JOB_CADET (1<<16)
-//#define JOB_PILOT (1<<17)
-
-#define JOB_REPRESENTATIVE_TSF (1<<17)
-#define JOB_REPRESENTATIVE_USSP (1<<18)
-#define JOB_DEALER (1<<19)
-#define JOB_VIP_GUEST (1<<20)
-#define JOB_BANKER (1<<21)
-#define JOB_SECURITY_CLOWN (1<<22)
+// Начинаются с JOB_INSTRUCTOR (1<<15)
+#define JOB_TRAINEE (1<<16)
+#define JOB_CADET (1<<17)
+//#define JOB_PILOT (1<<18)
+
+#define JOB_REPRESENTATIVE_TSF (1<<18)
+#define JOB_REPRESENTATIVE_USSP (1<<19)
+#define JOB_DEALER (1<<20)
+#define JOB_VIP_GUEST (1<<21)
+#define JOB_BANKER (1<<22)
+#define JOB_SECURITY_CLOWN (1<<23)
#define JOBCAT_LAST_ENGSEC (1<<23)
diff --git a/modular_ss220/aesthetics/better_ids/icons/card.dmi b/modular_ss220/aesthetics/better_ids/icons/card.dmi
index a6270c06d585..ae3f789f1758 100644
Binary files a/modular_ss220/aesthetics/better_ids/icons/card.dmi and b/modular_ss220/aesthetics/better_ids/icons/card.dmi differ
diff --git a/modular_ss220/aesthetics_sounds/code/items.dm b/modular_ss220/aesthetics_sounds/code/items.dm
index 91f8c2c4bf50..1f30d18d11b4 100644
--- a/modular_ss220/aesthetics_sounds/code/items.dm
+++ b/modular_ss220/aesthetics_sounds/code/items.dm
@@ -111,7 +111,7 @@
drop_sound = 'modular_ss220/aesthetics_sounds/sound/handling/drop/accessory.ogg'
pickup_sound = 'modular_ss220/aesthetics_sounds/sound/handling/pickup/accessory.ogg'
-/obj/item/clothing/accessory/necklace
+/obj/item/clothing/neck/necklace
drop_sound = 'modular_ss220/aesthetics_sounds/sound/handling/drop/accessory.ogg'
pickup_sound = 'modular_ss220/aesthetics_sounds/sound/handling/pickup/accessory.ogg'
diff --git a/modular_ss220/clothing/_clothing.dme b/modular_ss220/clothing/_clothing.dme
index a70b69054c10..7d41d6f1a1d2 100644
--- a/modular_ss220/clothing/_clothing.dme
+++ b/modular_ss220/clothing/_clothing.dme
@@ -11,4 +11,3 @@
#include "code/shoes.dm"
#include "code/suits.dm"
#include "code/under.dm"
-#include "code/mod.dm"
diff --git a/modular_ss220/clothing/code/cloaks.dm b/modular_ss220/clothing/code/cloaks.dm
index 00a8afca9355..d1fdd6b4fb36 100644
--- a/modular_ss220/clothing/code/cloaks.dm
+++ b/modular_ss220/clothing/code/cloaks.dm
@@ -1,4 +1,4 @@
-/obj/item/clothing/suit/mantle/armor/captain/black
+/obj/item/clothing/neck/cloak/captain_mantle/black
name = "чёрная капитанская мантия"
desc = "Носится верховным лидером станции NSS Cyberiad."
icon = 'modular_ss220/clothing/icons/object/cloaks.dmi'
@@ -6,7 +6,7 @@
icon_override = 'modular_ss220/clothing/icons/mob/cloaks.dmi'
item_state = "capcloak_black"
-/obj/item/clothing/suit/mantle/armor/captain/black/Initialize(mapload)
+/obj/item/clothing/neck/cloak/captain_mantle/black/Initialize(mapload)
. = ..()
desc = "Носится верховным лидером станции [station_name()]."
diff --git a/modular_ss220/clothing/code/garment_bag.dm b/modular_ss220/clothing/code/garment_bag.dm
index 461b6d20af61..1520419fe499 100644
--- a/modular_ss220/clothing/code/garment_bag.dm
+++ b/modular_ss220/clothing/code/garment_bag.dm
@@ -1,7 +1,7 @@
/obj/item/storage/bag/garment/captain/populate_contents()
. = ..()
new /obj/item/clothing/head/caphat/beret_black(src)
- new /obj/item/clothing/suit/mantle/armor/captain/black(src)
+ new /obj/item/clothing/neck/cloak/captain_mantle/black(src)
/obj/item/storage/bag/garment/head_of_security/populate_contents()
. = ..()
diff --git a/modular_ss220/clothing/code/mod.dm b/modular_ss220/clothing/code/mod.dm
deleted file mode 100644
index b0cbf5f3daa1..000000000000
--- a/modular_ss220/clothing/code/mod.dm
+++ /dev/null
@@ -1,317 +0,0 @@
-// MARK: MODsuit clothes
-/obj/item/clothing/head/mod/exclusive
- icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
- item_state = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
- icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
- sprite_sheets = list(
- "Skrell" = 'modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi',
- "Grey" = 'modular_ss220/clothing/icons/mob/species/grey/mod_clothing.dmi',
- "Vulpkanin" = 'modular_ss220/clothing/icons/mob/species/vulpkanin/mod_clothing.dmi',
- "Tajaran" = 'modular_ss220/clothing/icons/mob/species/tajaran/mod_clothing.dmi',
- "Unathi" = 'modular_ss220/clothing/icons/mob/species/unathi/mod_clothing.dmi',
- "Vox" = 'modular_ss220/clothing/icons/mob/species/vox/mod_clothing.dmi',
- )
-
-/obj/item/clothing/suit/mod/exclusive
- icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
- item_state = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
- icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
- sprite_sheets = list(
- "Skrell" = 'modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi',
- "Grey" = 'modular_ss220/clothing/icons/mob/species/grey/mod_clothing.dmi',
- "Vulpkanin" = 'modular_ss220/clothing/icons/mob/species/vulpkanin/mod_clothing.dmi',
- "Tajaran" = 'modular_ss220/clothing/icons/mob/species/tajaran/mod_clothing.dmi',
- "Unathi" = 'modular_ss220/clothing/icons/mob/species/unathi/mod_clothing.dmi',
- "Vox" = 'modular_ss220/clothing/icons/mob/species/vox/mod_clothing.dmi',
- )
-
-/obj/item/clothing/gloves/mod/exclusive
- icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
- item_state = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
- icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
- sprite_sheets = list(
- "Skrell" = 'modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi',
- "Grey" = 'modular_ss220/clothing/icons/mob/species/grey/mod_clothing.dmi',
- "Vulpkanin" = 'modular_ss220/clothing/icons/mob/species/vulpkanin/mod_clothing.dmi',
- "Tajaran" = 'modular_ss220/clothing/icons/mob/species/tajaran/mod_clothing.dmi',
- "Unathi" = 'modular_ss220/clothing/icons/mob/species/unathi/mod_clothing.dmi',
- "Vox" = 'modular_ss220/clothing/icons/mob/species/vox/mod_clothing.dmi',
- )
-
-/obj/item/clothing/shoes/mod/exclusive
- icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
- item_state = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
- icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
- sprite_sheets = list(
- "Skrell" = 'modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi',
- "Grey" = 'modular_ss220/clothing/icons/mob/species/grey/mod_clothing.dmi',
- "Vulpkanin" = 'modular_ss220/clothing/icons/mob/species/vulpkanin/mod_clothing.dmi',
- "Tajaran" = 'modular_ss220/clothing/icons/mob/species/tajaran/mod_clothing.dmi',
- "Unathi" = 'modular_ss220/clothing/icons/mob/species/unathi/mod_clothing.dmi',
- "Vox" = 'modular_ss220/clothing/icons/mob/species/vox/mod_clothing.dmi',
- )
-
-// MARK: MODsuit control
-/obj/item/mod/control/proc/build_head()
- return new /obj/item/clothing/head/mod(src)
-
-/obj/item/mod/control/proc/build_suit()
- return new /obj/item/clothing/suit/mod(src)
-
-/obj/item/mod/control/proc/build_gloves()
- return new /obj/item/clothing/gloves/mod(src)
-
-/obj/item/mod/control/proc/build_shoes()
- return new /obj/item/clothing/shoes/mod(src)
-
-/obj/item/mod/control/proc/is_any_part_deployed()
- for(var/obj/item/part as anything in mod_parts)
- if(part.loc != src)
- return TRUE
- return FALSE
-
-// This is kinda sick but we need to retract it before the actual species change.
-/obj/item/mod/control/proc/pre_species_gain(datum/species/new_species)
- if(!wearer)
- return
- if(is_any_part_deployed() && !theme.is_species_allowed(new_species))
- // Deactivate MODsuit to respect the species allowed.
- to_chat(wearer, span_warning("Ошибка видовой принадлежности! Деактивация."))
- if(active)
- var/old_activation_step_time = activation_step_time
- activation_step_time = 0.1 SECONDS // gotta go fast
- toggle_activate(wearer, force_deactivate = TRUE)
- activation_step_time = old_activation_step_time
- quick_deploy(wearer)
-
-/obj/item/mod/control/quick_deploy(mob/user)
- user = user || loc // why the fuck this is nullable
- if(!is_any_part_deployed() && !theme.is_species_allowed(user.dna.species))
- to_chat(user, span_warning("Ошибка видовой принадлежности! Развертывание недоступно."))
- playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
- return FALSE
- return ..()
-
-/obj/item/mod/control/deploy(mob/user, obj/item/part, mass)
- user = user || loc // why the fuck this is nullable
- if(!mass && part.loc != user && !theme.is_species_allowed(user.dna.species))
- to_chat(user, span_warning("Ошибка видовой принадлежности! Развертывание недоступно."))
- playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
- return FALSE
- return ..()
-
-/obj/item/mod/control/pre_equipped/exclusive
- icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
- icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
-
-/obj/item/mod/control/pre_equipped/exclusive/build_head()
- return new /obj/item/clothing/head/mod/exclusive(src)
-
-/obj/item/mod/control/pre_equipped/exclusive/build_suit()
- return new /obj/item/clothing/suit/mod/exclusive(src)
-
-/obj/item/mod/control/pre_equipped/exclusive/build_gloves()
- return new /obj/item/clothing/gloves/mod/exclusive(src)
-
-/obj/item/mod/control/pre_equipped/exclusive/build_shoes()
- return new /obj/item/clothing/shoes/mod/exclusive(src)
-
-// MARK: MODsuit Theme
-/datum/mod_theme
- /// Which species are allowed to deploy MODsuit. Consider empty list as no restriction.
- var/list/species_allowed = list()
-
-/datum/mod_theme/proc/is_species_allowed(datum/species/species)
- if(!length(species_allowed))
- return TRUE
- if(!(species.name in species_allowed))
- return FALSE
- return TRUE
-
-/mob/living/carbon/human/change_dna(datum/dna/new_dna, include_species_change)
- if(istype(back, /obj/item/mod/control))
- INVOKE_ASYNC(back, TYPE_PROC_REF(/obj/item/mod/control, pre_species_gain), new_dna.species)
- return ..()
-
-/mob/living/carbon/human/set_species(datum/species/new_species, use_default_color = FALSE, delay_icon_update = FALSE, skip_same_check = FALSE, retain_damage = FALSE, transformation = FALSE, keep_missing_bodyparts = FALSE)
- if(istype(back, /obj/item/mod/control))
- INVOKE_ASYNC(back, TYPE_PROC_REF(/obj/item/mod/control, pre_species_gain), new_species)
- return ..()
-
-// MARK: Skrell elite MODsuit - Raskinta
-/datum/mod_theme/skrell_raskinta
- name = "\improper raskinta"
- desc = "Боевая броня с функцией костюма для ВКД, созданная для воинов Раскинта Ме'керр-Кэтиш."
- extended_desc = "Массивный бронекостюм, выполненный в черно-синих цветах, является отличительной чертой \
- военных формирований Раскинта-Кэтиш. Защитные пластины состоят из укрепленной керамики, в то время как \
- каркасные пластины выполнены из сплавов вороной пластали, позволяющей эффективно поглощать и рассеивать энергию \
- через радиаторные отводы на \"хвостовых\" окончаниях шлема. \
- Этот костюм является самым часто встречаемым в штурмовых отрядах Оборонительных Сил Скреллов."
- default_skin = "skrell_elite"
- armor_type_1 = /obj/item/mod/armor/mod_theme_skrell_raskinta
- flag_2_flags = RAD_PROTECT_CONTENTS_2
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- siemens_coefficient = 0
- slowdown_inactive = 1
- slowdown_active = 0.25
- complexity_max = DEFAULT_MAX_COMPLEXITY + 5
- allowed_suit_storage = list(
- /obj/item/ammo_box,
- /obj/item/ammo_casing,
- /obj/item/restraints/handcuffs,
- /obj/item/flash,
- /obj/item/melee/baton,
- /obj/item/gun,
- /obj/item/melee/vibroblade,
- )
- species_allowed = list("Skrell")
- skins = list(
- "skrell_elite" = list(
- MOD_ICON_OVERRIDE = 'modular_ss220/clothing/icons/object/mod_clothing.dmi',
- HELMET_FLAGS = list(
- UNSEALED_LAYER = COLLAR_LAYER,
-
- SEALED_CLOTHING = THICKMATERIAL | STOPSPRESSUREDMAGE | BLOCK_GAS_SMOKE_EFFECT | BLOCKHAIR,
- UNSEALED_INVISIBILITY = HIDEFACE,
- SEALED_INVISIBILITY = HIDEMASK | HIDEEYES | HIDEEARS | HIDEFACE,
- SEALED_COVER = HEADCOVERSMOUTH | HEADCOVERSEYES,
- ),
- CHESTPLATE_FLAGS = list(
- UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDMAGE,
- SEALED_INVISIBILITY = HIDEJUMPSUIT | HIDETAIL,
- ),
- GAUNTLETS_FLAGS = list(
- UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDMAGE,
- CAN_OVERSLOT = TRUE,
- ),
- BOOTS_FLAGS = list(
- UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDMAGE,
- CAN_OVERSLOT = TRUE,
- ),
- ),
- )
-
-/obj/item/mod/armor/mod_theme_skrell_raskinta
- armor = list(MELEE = 40, BULLET = 25, LASER = 25, ENERGY = 20, BOMB = 25, RAD = INFINITY, FIRE = 200, ACID = 200)
-
-/obj/item/mod/control/pre_equipped/exclusive/skrell_raskinta
- theme = /datum/mod_theme/skrell_raskinta
- applied_cell = /obj/item/stock_parts/cell/super
- applied_modules = list(
- /obj/item/mod/module/storage/syndicate,
- /obj/item/mod/module/emp_shield,
- /obj/item/mod/module/status_readout,
- /obj/item/mod/module/flashlight,
- /obj/item/mod/module/magboot/advanced,
- /obj/item/mod/module/jetpack/advanced,
- )
- default_pins = list(
- /obj/item/mod/module/jetpack/advanced,
- /obj/item/mod/module/magboot/advanced,
- )
-
-// MARK: Skrell elite MODsuit - Sardaukars
-/datum/mod_theme/skrell_sardaukars
- name = "\improper emperor guard"
- desc = "Элитная боевая броня гвардейцев Скреллианской империи."
- extended_desc = "Благодаря высшим технологическим достижениям скреллов этот костюм сочетает в себе \
- невероятные показатели защищенности и мобильности, являясь незаменимой вещью на вооружении свирепых Куи'кверр-Кэтиш. \
- Носящие его воины являются личной гвардией Императора и выполняют самые сложные задачи по его воле. \
- Кроваво-белоснежные цвета, отождествляющие кровь врагов и власть Его Величества, скорее всего последнее \
- что вы увидите в своей жизни."
- default_skin = "skrell_white"
- armor_type_1 = /obj/item/mod/armor/mod_theme_skrell_sardaukars
- resistance_flags = FIRE_PROOF
- flag_2_flags = RAD_PROTECT_CONTENTS_2
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- siemens_coefficient = 0
- slowdown_inactive = 0.5
- slowdown_active = 0
- complexity_max = DEFAULT_MAX_COMPLEXITY + 10
- allowed_suit_storage = list(
- /obj/item/ammo_box,
- /obj/item/ammo_casing,
- /obj/item/restraints/handcuffs,
- /obj/item/flash,
- /obj/item/melee/baton,
- /obj/item/gun,
- /obj/item/melee/vibroblade,
- )
- species_allowed = list("Skrell")
- skins = list(
- "skrell_white" = list(
- MOD_ICON_OVERRIDE = 'modular_ss220/clothing/icons/object/mod_clothing.dmi',
- HELMET_FLAGS = list(
- UNSEALED_LAYER = COLLAR_LAYER,
-
- SEALED_CLOTHING = THICKMATERIAL | STOPSPRESSUREDMAGE | BLOCK_GAS_SMOKE_EFFECT | BLOCKHAIR,
- UNSEALED_INVISIBILITY = HIDEFACE,
- SEALED_INVISIBILITY = HIDEMASK | HIDEEYES | HIDEEARS | HIDEFACE,
- SEALED_COVER = HEADCOVERSMOUTH | HEADCOVERSEYES,
- ),
- CHESTPLATE_FLAGS = list(
- UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDMAGE,
- SEALED_INVISIBILITY = HIDEJUMPSUIT | HIDETAIL,
- ),
- GAUNTLETS_FLAGS = list(
- UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDMAGE,
- CAN_OVERSLOT = TRUE,
- ),
- BOOTS_FLAGS = list(
- UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDMAGE,
- CAN_OVERSLOT = TRUE,
- ),
- ),
- )
-
-/obj/item/mod/armor/mod_theme_skrell_sardaukars
- armor = list(MELEE = 120, BULLET = 120, LASER = 100, ENERGY = 50, BOMB = 100, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)
-
-/obj/item/mod/control/pre_equipped/exclusive/skrell_sardaukars
- theme = /datum/mod_theme/skrell_sardaukars
- applied_cell = /obj/item/stock_parts/cell/bluespace
- applied_modules = list(
- /obj/item/mod/module/storage/bluespace,
- /obj/item/mod/module/emp_shield,
- /obj/item/mod/module/flashlight,
- /obj/item/mod/module/jetpack/advanced,
- /obj/item/mod/module/status_readout,
- /obj/item/mod/module/magboot/advanced,
- /obj/item/mod/module/visor/thermal
- )
- default_pins = list(
- /obj/item/mod/module/jetpack/advanced,
- /obj/item/mod/module/magboot/advanced,
- /obj/item/mod/module/visor/thermal
- )
-
-/obj/item/mod/control/pre_equipped/exclusive/skrell_sardaukars/Initialize(mapload, new_theme, new_skin, new_core, new_access)
- . = ..()
- ADD_TRAIT(chestplate, TRAIT_RSG_IMMUNE, ROUNDSTART_TRAIT)
-
-// MARK: Corporate MODsuit
-/obj/item/mod/control/pre_equipped/corporate
- icon = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
- icon_override = 'modular_ss220/clothing/icons/mob/mod_clothing.dmi'
-
-/datum/mod_theme/corporate/New()
- . = ..()
- skins["corporate"][MOD_ICON_OVERRIDE] = 'modular_ss220/clothing/icons/object/mod_clothing.dmi'
-
-/obj/item/mod/control/pre_equipped/corporate/build_head()
- return new /obj/item/clothing/head/mod/exclusive(src)
-
-/obj/item/mod/control/pre_equipped/corporate/build_suit()
- return new /obj/item/clothing/suit/mod/exclusive(src)
-
-/obj/item/mod/control/pre_equipped/corporate/build_gloves()
- return new /obj/item/clothing/gloves/mod/exclusive(src)
-
-/obj/item/mod/control/pre_equipped/corporate/build_shoes()
- return new /obj/item/clothing/shoes/mod/exclusive(src)
diff --git a/modular_ss220/clothing/icons/mob/mod_clothing.dmi b/modular_ss220/clothing/icons/mob/mod_clothing.dmi
index cc7d72e6d5d1..61c711ef595f 100644
Binary files a/modular_ss220/clothing/icons/mob/mod_clothing.dmi and b/modular_ss220/clothing/icons/mob/mod_clothing.dmi differ
diff --git a/modular_ss220/clothing/icons/object/mod_clothing.dmi b/modular_ss220/clothing/icons/object/mod_clothing.dmi
index d1b91725df35..1018abdd4a1c 100644
Binary files a/modular_ss220/clothing/icons/object/mod_clothing.dmi and b/modular_ss220/clothing/icons/object/mod_clothing.dmi differ
diff --git a/modular_ss220/jobs/code/donor/job/2_tier_jobs.dm b/modular_ss220/jobs/code/donor/job/2_tier_jobs.dm
index 74bbbf0f8243..c5aa45ca2a9f 100644
--- a/modular_ss220/jobs/code/donor/job/2_tier_jobs.dm
+++ b/modular_ss220/jobs/code/donor/job/2_tier_jobs.dm
@@ -50,7 +50,7 @@
jobtype = /datum/job/donor/bath
uniform = /obj/item/clothing/under/costume/pirate_rags
- suit = /obj/item/clothing/suit/mantle
+ suit = /obj/item/clothing/neck/cloak/mantle
shoes = /obj/item/clothing/shoes/sandal
glasses = /obj/item/clothing/glasses/goggles
l_ear = /obj/item/radio/headset/headset_service
diff --git a/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm b/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm
index d197421957d7..d595dda5a9a2 100644
--- a/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm
+++ b/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm
@@ -326,7 +326,7 @@
jobtype = /datum/job/donor/uncertain
uniform = /obj/item/clothing/under/costume/kilt
- suit = /obj/item/clothing/suit/unathi/mantle
+ suit = /obj/item/clothing/neck/cloak/unathi
shoes = /obj/item/clothing/shoes/footwraps
head = /obj/item/clothing/head/beanie/yellow
glasses = /obj/item/clothing/glasses/eyepatch
@@ -339,10 +339,10 @@
/obj/item/storage/fancy/cigarettes/cigpack_random = 2,
/obj/item/food/fancy/doshik = 3,
/obj/item/food/fancy/doshik_spicy = 3,
- /obj/item/clothing/suit/mantle/old = 1,
+ /obj/item/clothing/neck/cloak/old = 1,
/obj/item/clothing/head/flatcap = 1,
/obj/item/clothing/suit/browntrenchcoat = 1,
- /obj/item/clothing/accessory/horrible = 1,
+ /obj/item/clothing/neck/tie/horrible = 1,
/obj/item/clothing/under/costume/pirate_rags = 1,
/obj/item/clothing/head/cowboyhat = 1,
/obj/item/clothing/shoes/sandal = 1,
diff --git a/modular_ss220/jobs/code/objects/job_objects.dm b/modular_ss220/jobs/code/objects/job_objects.dm
index 2f2fb49fd5f9..e11b08dfd2da 100644
--- a/modular_ss220/jobs/code/objects/job_objects.dm
+++ b/modular_ss220/jobs/code/objects/job_objects.dm
@@ -63,7 +63,6 @@
/obj/item/toy/balloon,
/obj/item/toy/blink,
/obj/item/toy/katana,
- /obj/random/mech,
/obj/item/toy/spinningtoy,
/obj/item/toy/sword,
/obj/item/dualsaber/toy,
@@ -71,10 +70,7 @@
/obj/item/instrument/violin,
/obj/item/instrument/guitar,
/obj/item/storage/belt/utility/full,
- /obj/item/clothing/accessory/horrible,
- /obj/random/carp_plushie,
- /obj/random/plushie,
- /obj/random/figure,
+ /obj/item/clothing/neck/tie/horrible,
/obj/item/deck/cards,
/obj/item/deck/cards/tiny,
/obj/item/deck/unum,
@@ -100,7 +96,7 @@
/obj/item/stack/tile/fakespace/loaded,
/obj/item/stack/tile/brass/fifty,
/obj/item/sord,
- /obj/item/toy/prizeball/figure,
+ /obj/item/toy/prizeball/action_figure,
/obj/item/toy/prizeball/therapy,
// pew pew
diff --git a/modular_ss220/jobs/code/objects/medical_job_objects.dm b/modular_ss220/jobs/code/objects/medical_job_objects.dm
index 0090302fe1bd..7dd346db2570 100644
--- a/modular_ss220/jobs/code/objects/medical_job_objects.dm
+++ b/modular_ss220/jobs/code/objects/medical_job_objects.dm
@@ -9,10 +9,6 @@
// loadout
-/datum/gear/accessory/stethoscope/New()
- . = ..()
- allowed_roles |= GLOB.medical_positions_ss220
-
/datum/gear/accessory/armband_job/medical/New()
. = ..()
allowed_roles |= GLOB.medical_positions_ss220
diff --git a/modular_ss220/maps220/icons/mapping_helpers.dmi b/modular_ss220/maps220/icons/mapping_helpers.dmi
index 98f6b9118df8..fc470b6072c9 100644
Binary files a/modular_ss220/maps220/icons/mapping_helpers.dmi and b/modular_ss220/maps220/icons/mapping_helpers.dmi differ
diff --git a/modular_ss220/mod/_mods.dm b/modular_ss220/mod/_mods.dm
new file mode 100644
index 000000000000..b3fb7fe7c853
--- /dev/null
+++ b/modular_ss220/mod/_mods.dm
@@ -0,0 +1,4 @@
+/datum/modpack/mods
+ name = "МОДсьюты"
+ desc = "Неочевидная штука - там внутри МОДсьюты"
+ author = "Konushi, Kar4es"
diff --git a/modular_ss220/mod/_mods.dme b/modular_ss220/mod/_mods.dme
new file mode 100644
index 000000000000..23a6c3dfed3c
--- /dev/null
+++ b/modular_ss220/mod/_mods.dme
@@ -0,0 +1,7 @@
+#include "_mods.dm"
+
+#include "code/mod_control.dm"
+#include "code/mod_modules.dm"
+#include "code/mod_theme.dm"
+#include "code/mod_clothes.dm"
+#include "code/mod_types.dm"
diff --git a/modular_ss220/mod/code/mod_clothes.dm b/modular_ss220/mod/code/mod_clothes.dm
new file mode 100644
index 000000000000..03828eef35d9
--- /dev/null
+++ b/modular_ss220/mod/code/mod_clothes.dm
@@ -0,0 +1,53 @@
+// MARK: MODsuit clothes
+/obj/item/clothing/head/mod/exclusive
+ icon = 'modular_ss220/mod/icons/object/mod_clothing.dmi'
+ item_state = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+ icon_override = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+ sprite_sheets = list(
+ "Skrell" = 'modular_ss220/mod/icons/mob/species/skrell/mod_clothing.dmi',
+ "Grey" = 'modular_ss220/mod/icons/mob/species/grey/mod_clothing.dmi',
+ "Vulpkanin" = 'modular_ss220/mod/icons/mob/species/vulpkanin/mod_clothing.dmi',
+ "Tajaran" = 'modular_ss220/mod/icons/mob/species/tajaran/mod_clothing.dmi',
+ "Unathi" = 'modular_ss220/mod/icons/mob/species/unathi/mod_clothing.dmi',
+ "Vox" = 'modular_ss220/mod/icons/mob/species/vox/mod_clothing.dmi',
+ )
+
+/obj/item/clothing/suit/mod/exclusive
+ icon = 'modular_ss220/mod/icons/object/mod_clothing.dmi'
+ item_state = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+ icon_override = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+ sprite_sheets = list(
+ "Skrell" = 'modular_ss220/mod/icons/mob/species/skrell/mod_clothing.dmi',
+ "Grey" = 'modular_ss220/mod/icons/mob/species/grey/mod_clothing.dmi',
+ "Vulpkanin" = 'modular_ss220/mod/icons/mob/species/vulpkanin/mod_clothing.dmi',
+ "Tajaran" = 'modular_ss220/mod/icons/mob/species/tajaran/mod_clothing.dmi',
+ "Unathi" = 'modular_ss220/mod/icons/mob/species/unathi/mod_clothing.dmi',
+ "Vox" = 'modular_ss220/mod/icons/mob/species/vox/mod_clothing.dmi',
+ )
+
+/obj/item/clothing/gloves/mod/exclusive
+ icon = 'modular_ss220/mod/icons/object/mod_clothing.dmi'
+ item_state = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+ icon_override = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+ sprite_sheets = list(
+ "Skrell" = 'modular_ss220/mod/icons/mob/species/skrell/mod_clothing.dmi',
+ "Grey" = 'modular_ss220/mod/icons/mob/species/grey/mod_clothing.dmi',
+ "Vulpkanin" = 'modular_ss220/mod/icons/mob/species/vulpkanin/mod_clothing.dmi',
+ "Tajaran" = 'modular_ss220/mod/icons/mob/species/tajaran/mod_clothing.dmi',
+ "Unathi" = 'modular_ss220/mod/icons/mob/species/unathi/mod_clothing.dmi',
+ "Vox" = 'modular_ss220/mod/icons/mob/species/vox/mod_clothing.dmi',
+ )
+
+/obj/item/clothing/shoes/mod/exclusive
+ icon = 'modular_ss220/mod/icons/object/mod_clothing.dmi'
+ item_state = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+ icon_override = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+ sprite_sheets = list(
+ "Skrell" = 'modular_ss220/mod/icons/mob/species/skrell/mod_clothing.dmi',
+ "Grey" = 'modular_ss220/mod/icons/mob/species/grey/mod_clothing.dmi',
+ "Vulpkanin" = 'modular_ss220/mod/icons/mob/species/vulpkanin/mod_clothing.dmi',
+ "Tajaran" = 'modular_ss220/mod/icons/mob/species/tajaran/mod_clothing.dmi',
+ "Unathi" = 'modular_ss220/mod/icons/mob/species/unathi/mod_clothing.dmi',
+ "Vox" = 'modular_ss220/mod/icons/mob/species/vox/mod_clothing.dmi',
+ )
+
diff --git a/modular_ss220/mod/code/mod_control.dm b/modular_ss220/mod/code/mod_control.dm
new file mode 100644
index 000000000000..770b5a1b9901
--- /dev/null
+++ b/modular_ss220/mod/code/mod_control.dm
@@ -0,0 +1,90 @@
+// MARK: MODsuit control
+/obj/item/mod/control/proc/build_head()
+ return new /obj/item/clothing/head/mod(src)
+
+/obj/item/mod/control/proc/build_suit()
+ return new /obj/item/clothing/suit/mod(src)
+
+/obj/item/mod/control/proc/build_gloves()
+ return new /obj/item/clothing/gloves/mod(src)
+
+/obj/item/mod/control/proc/build_shoes()
+ return new /obj/item/clothing/shoes/mod(src)
+
+/obj/item/mod/control/proc/is_any_part_deployed()
+ for(var/obj/item/part as anything in mod_parts)
+ if(part.loc != src)
+ return TRUE
+ return FALSE
+
+// This is kinda sick but we need to retract it before the actual species change.
+/obj/item/mod/control/proc/pre_species_gain(datum/species/new_species)
+ if(!wearer)
+ return
+ if(is_any_part_deployed() && !theme.is_species_allowed(new_species))
+ // Deactivate MODsuit to respect the species allowed.
+ to_chat(wearer, span_warning("Ошибка видовой принадлежности! Деактивация."))
+ if(active)
+ var/old_activation_step_time = activation_step_time
+ activation_step_time = 0.1 SECONDS // gotta go fast
+ toggle_activate(wearer, force_deactivate = TRUE)
+ activation_step_time = old_activation_step_time
+ quick_deploy(wearer)
+
+/obj/item/mod/control/quick_deploy(mob/user)
+ user = user || loc // why the fuck this is nullable
+ if(!is_any_part_deployed() && !theme.is_species_allowed(user.dna.species))
+ to_chat(user, span_warning("Ошибка видовой принадлежности! Развертывание недоступно."))
+ playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
+ return FALSE
+ return ..()
+
+/obj/item/mod/control/deploy(mob/user, obj/item/part, mass)
+ user = user || loc // why the fuck this is nullable
+ if(!mass && part.loc != user && !theme.is_species_allowed(user.dna.species))
+ to_chat(user, span_warning("Ошибка видовой принадлежности! Развертывание недоступно."))
+ playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
+ return FALSE
+ return ..()
+
+/obj/item/mod/control/pre_equipped/exclusive
+ icon = 'modular_ss220/mod/icons/object/mod_clothing.dmi'
+ icon_override = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+
+/obj/item/mod/control/pre_equipped/exclusive/build_head()
+ return new /obj/item/clothing/head/mod/exclusive(src)
+
+/obj/item/mod/control/pre_equipped/exclusive/build_suit()
+ return new /obj/item/clothing/suit/mod/exclusive(src)
+
+/obj/item/mod/control/pre_equipped/exclusive/build_gloves()
+ return new /obj/item/clothing/gloves/mod/exclusive(src)
+
+/obj/item/mod/control/pre_equipped/exclusive/build_shoes()
+ return new /obj/item/clothing/shoes/mod/exclusive(src)
+
+//MARK: Corporate
+/obj/item/mod/control/pre_equipped/corporate/build_head()
+ return new /obj/item/clothing/head/mod/exclusive(src)
+
+/obj/item/mod/control/pre_equipped/corporate/build_suit()
+ return new /obj/item/clothing/suit/mod/exclusive(src)
+
+/obj/item/mod/control/pre_equipped/corporate/build_gloves()
+ return new /obj/item/clothing/gloves/mod/exclusive(src)
+
+/obj/item/mod/control/pre_equipped/corporate/build_shoes()
+ return new /obj/item/clothing/shoes/mod/exclusive(src)
+
+//MARK: ERT Red
+/obj/item/mod/control/pre_equipped/responsory/red/build_head()
+ return new /obj/item/clothing/head/mod/exclusive(src)
+
+/obj/item/mod/control/pre_equipped/responsory/red/build_suit()
+ return new /obj/item/clothing/suit/mod/exclusive(src)
+
+/obj/item/mod/control/pre_equipped/responsory/red/build_gloves()
+ return new /obj/item/clothing/gloves/mod/exclusive(src)
+
+/obj/item/mod/control/pre_equipped/responsory/red/build_shoes()
+ return new /obj/item/clothing/shoes/mod/exclusive(src)
diff --git a/modular_ss220/mod/code/mod_modules.dm b/modular_ss220/mod/code/mod_modules.dm
new file mode 100644
index 000000000000..8b94a6a3f523
--- /dev/null
+++ b/modular_ss220/mod/code/mod_modules.dm
@@ -0,0 +1,23 @@
+/obj/item/mod/module/insignia/red
+ overlay_icon_file = 'modular_ss220/mod/icons/mob/mod_modules.dmi'
+
+/obj/item/mod/module/insignia/red/commander
+ color = "#4980a5"
+
+/obj/item/mod/module/insignia/red/security
+ color = "#b30d1e"
+
+/obj/item/mod/module/insignia/red/engineer
+ color = "#e9c80e"
+
+/obj/item/mod/module/insignia/red/medic
+ color = "#ebebf5"
+
+/obj/item/mod/module/insignia/red/janitor
+ color = "#7925c7"
+
+/obj/item/mod/module/insignia/red/clown
+ color = "#ff1fc7"
+
+/obj/item/mod/module/insignia/red/chaplain
+ color = "#f0a00c"
diff --git a/modular_ss220/mod/code/mod_theme.dm b/modular_ss220/mod/code/mod_theme.dm
new file mode 100644
index 000000000000..ee79402128de
--- /dev/null
+++ b/modular_ss220/mod/code/mod_theme.dm
@@ -0,0 +1,228 @@
+// MARK: MODsuit Theme
+/datum/mod_theme
+ /// Which species are allowed to deploy MODsuit. Consider empty list as no restriction.
+ var/list/species_allowed = list()
+
+/datum/mod_theme/proc/is_species_allowed(datum/species/species)
+ if(!length(species_allowed))
+ return TRUE
+ if(!(species.name in species_allowed))
+ return FALSE
+ return TRUE
+
+/mob/living/carbon/human/change_dna(datum/dna/new_dna, include_species_change)
+ if(istype(back, /obj/item/mod/control))
+ INVOKE_ASYNC(back, TYPE_PROC_REF(/obj/item/mod/control, pre_species_gain), new_dna.species)
+ return ..()
+
+/mob/living/carbon/human/set_species(datum/species/new_species, use_default_color = FALSE, delay_icon_update = FALSE, skip_same_check = FALSE, retain_damage = FALSE, transformation = FALSE, keep_missing_bodyparts = FALSE)
+ if(istype(back, /obj/item/mod/control))
+ INVOKE_ASYNC(back, TYPE_PROC_REF(/obj/item/mod/control, pre_species_gain), new_species)
+ return ..()
+
+// MARK: Skrell elite MODsuit - Raskinta
+/datum/mod_theme/skrell_raskinta
+ name = "\improper raskinta"
+ desc = "Боевая броня с функцией костюма для ВКД, созданная для воинов Раскинта Ме'керр-Кэтиш."
+ extended_desc = "Массивный бронекостюм, выполненный в черно-синих цветах, является отличительной чертой \
+ военных формирований Раскинта-Кэтиш. Защитные пластины состоят из укрепленной керамики, в то время как \
+ каркасные пластины выполнены из сплавов вороной пластали, позволяющей эффективно поглощать и рассеивать энергию \
+ через радиаторные отводы на \"хвостовых\" окончаниях шлема. \
+ Этот костюм является самым часто встречаемым в штурмовых отрядах Оборонительных Сил Скреллов."
+ default_skin = "skrell_elite"
+ armor_type_1 = /obj/item/mod/armor/mod_theme_skrell_raskinta
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
+ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
+ siemens_coefficient = 0
+ slowdown_inactive = 1
+ slowdown_active = 0.25
+ complexity_max = DEFAULT_MAX_COMPLEXITY + 5
+ allowed_suit_storage = list(
+ /obj/item/ammo_box,
+ /obj/item/ammo_casing,
+ /obj/item/restraints/handcuffs,
+ /obj/item/flash,
+ /obj/item/melee/baton,
+ /obj/item/gun,
+ /obj/item/melee/vibroblade,
+ )
+ species_allowed = list("Skrell")
+ skins = list(
+ "skrell_elite" = list(
+ MOD_ICON_OVERRIDE = 'modular_ss220/mod/icons/object/mod_clothing.dmi',
+ HELMET_FLAGS = list(
+ UNSEALED_LAYER = COLLAR_LAYER,
+
+ SEALED_CLOTHING = THICKMATERIAL | STOPSPRESSUREDMAGE | BLOCK_GAS_SMOKE_EFFECT | BLOCKHAIR,
+ UNSEALED_INVISIBILITY = HIDEFACE,
+ SEALED_INVISIBILITY = HIDEMASK | HIDEEYES | HIDEEARS | HIDEFACE,
+ SEALED_COVER = HEADCOVERSMOUTH | HEADCOVERSEYES,
+ ),
+ CHESTPLATE_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ SEALED_INVISIBILITY = HIDEJUMPSUIT | HIDETAIL,
+ ),
+ GAUNTLETS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ CAN_OVERSLOT = TRUE,
+ ),
+ BOOTS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ CAN_OVERSLOT = TRUE,
+ ),
+ ),
+ )
+
+/obj/item/mod/armor/mod_theme_skrell_raskinta
+ armor = list(MELEE = 40, BULLET = 25, LASER = 25, ENERGY = 20, BOMB = 25, RAD = INFINITY, FIRE = 200, ACID = 200)
+
+// MARK: Skrell elite MODsuit - Sardaukars
+/datum/mod_theme/skrell_sardaukars
+ name = "\improper emperor guard"
+ desc = "Элитная боевая броня гвардейцев Скреллианской империи."
+ extended_desc = "Благодаря высшим технологическим достижениям скреллов этот костюм сочетает в себе \
+ невероятные показатели защищенности и мобильности, являясь незаменимой вещью на вооружении свирепых Куи'кверр-Кэтиш. \
+ Носящие его воины являются личной гвардией Императора и выполняют самые сложные задачи по его воле. \
+ Кроваво-белоснежные цвета, отождествляющие кровь врагов и власть Его Величества, скорее всего последнее \
+ что вы увидите в своей жизни."
+ default_skin = "skrell_white"
+ armor_type_1 = /obj/item/mod/armor/mod_theme_skrell_sardaukars
+ resistance_flags = FIRE_PROOF
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
+ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
+ siemens_coefficient = 0
+ slowdown_inactive = 0.5
+ slowdown_active = 0
+ complexity_max = DEFAULT_MAX_COMPLEXITY + 10
+ allowed_suit_storage = list(
+ /obj/item/ammo_box,
+ /obj/item/ammo_casing,
+ /obj/item/restraints/handcuffs,
+ /obj/item/flash,
+ /obj/item/melee/baton,
+ /obj/item/gun,
+ /obj/item/melee/vibroblade,
+ )
+ species_allowed = list("Skrell")
+ skins = list(
+ "skrell_white" = list(
+ MOD_ICON_OVERRIDE = 'modular_ss220/mod/icons/object/mod_clothing.dmi',
+ HELMET_FLAGS = list(
+ UNSEALED_LAYER = COLLAR_LAYER,
+
+ SEALED_CLOTHING = THICKMATERIAL | STOPSPRESSUREDMAGE | BLOCK_GAS_SMOKE_EFFECT | BLOCKHAIR,
+ UNSEALED_INVISIBILITY = HIDEFACE,
+ SEALED_INVISIBILITY = HIDEMASK | HIDEEYES | HIDEEARS | HIDEFACE,
+ SEALED_COVER = HEADCOVERSMOUTH | HEADCOVERSEYES,
+ ),
+ CHESTPLATE_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ SEALED_INVISIBILITY = HIDEJUMPSUIT | HIDETAIL,
+ ),
+ GAUNTLETS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ CAN_OVERSLOT = TRUE,
+ ),
+ BOOTS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ CAN_OVERSLOT = TRUE,
+ ),
+ ),
+ )
+
+/obj/item/mod/armor/mod_theme_skrell_sardaukars
+ armor = list(MELEE = 120, BULLET = 120, LASER = 100, ENERGY = 50, BOMB = 100, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)
+
+//MARK: Corporate MODsuit
+/datum/mod_theme/corporate/New()
+ . = ..()
+ skins["corporate"][MOD_ICON_OVERRIDE] = 'modular_ss220/mod/icons/object/mod_clothing.dmi'
+
+//MARK: ERT Red MODsuit
+/datum/mod_theme/responsory/red
+ name = "\improper 'Rhino' responsory"
+ desc = "Высокотехнологичный боевой MODsuit 'Носорог', разработанный и произведенный Нанотрейзен. Хорошо бронированный, герметичный и оснащенный всевозможными полезными приспособлениями. \
+ Лучшее корпоративное оборудование для обеспечения безопасности."
+ extended_desc = "Костюм быстрого реагирования NS-20 'Носорог' - один из самых лучших в категории 'цена и качество' из всех боевых костюмов на рынке. \
+ Внутри NS-20 установлена система NTOS-11, что позволяет использовать несравненные возможности настройки в сочетании с \
+ необычайно щедрыми техническими характеристиками 'Носорога'. NS-20 можно встретить только в отряде быстрого реагирования Нанотрейзен."
+ default_skin = "rhino"
+ armor_type_1 = /obj/item/mod/armor/mod_theme_responsory/red
+ resistance_flags = FIRE_PROOF
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
+ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
+ siemens_coefficient = 0
+ slowdown_inactive = 0.5
+ slowdown_active = 0
+ complexity_max = DEFAULT_MAX_COMPLEXITY + 5
+ allowed_suit_storage = list(
+ /obj/item/ammo_box,
+ /obj/item/ammo_casing,
+ /obj/item/restraints/handcuffs,
+ /obj/item/flash,
+ /obj/item/melee/baton,
+ /obj/item/gun,
+ )
+ species_allowed = list("Human")
+ skins = list(
+ "rhino" = list(
+ MOD_ICON_OVERRIDE = 'modular_ss220/mod/icons/object/mod_clothing.dmi',
+ HELMET_FLAGS = list(
+ UNSEALED_LAYER = COLLAR_LAYER,
+
+ SEALED_CLOTHING = THICKMATERIAL | STOPSPRESSUREDMAGE | BLOCK_GAS_SMOKE_EFFECT | BLOCKHAIR,
+ UNSEALED_INVISIBILITY = HIDEFACE,
+ SEALED_INVISIBILITY = HIDEMASK | HIDEEYES | HIDEEARS | HIDEFACE,
+ SEALED_COVER = HEADCOVERSMOUTH | HEADCOVERSEYES,
+ ),
+ CHESTPLATE_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ SEALED_INVISIBILITY = HIDEJUMPSUIT | HIDETAIL,
+ ),
+ GAUNTLETS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ CAN_OVERSLOT = TRUE,
+ ),
+ BOOTS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ CAN_OVERSLOT = TRUE,
+ ),
+ ),
+ "inquisitory" = list(
+ HELMET_FLAGS = list(
+ UNSEALED_LAYER = null,
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE | BLOCK_GAS_SMOKE_EFFECT | BLOCKHAIR,
+ UNSEALED_INVISIBILITY = HIDEFACE | HIDEMASK | HIDEEARS | HIDEEYES,
+ UNSEALED_COVER = HEADCOVERSMOUTH | HEADCOVERSEYES,
+ ),
+ CHESTPLATE_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ SEALED_INVISIBILITY = HIDEJUMPSUIT | HIDETAIL,
+ ),
+ GAUNTLETS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ CAN_OVERSLOT = TRUE,
+ ),
+ BOOTS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDMAGE,
+ CAN_OVERSLOT = TRUE,
+ ),
+ ),
+ )
+
+/obj/item/mod/armor/mod_theme_responsory/red
+ armor = list(MELEE = 30, BULLET = 25, LASER = 25, ENERGY = 15, BOMB = 40, RAD = 25, FIRE = INFINITY, ACID = 150)
+
diff --git a/modular_ss220/mod/code/mod_types.dm b/modular_ss220/mod/code/mod_types.dm
new file mode 100644
index 000000000000..de4250b308bc
--- /dev/null
+++ b/modular_ss220/mod/code/mod_types.dm
@@ -0,0 +1,90 @@
+// MARK: Skrell elite MODsuit - Raskinta
+/obj/item/mod/control/pre_equipped/exclusive/skrell_raskinta
+ theme = /datum/mod_theme/skrell_raskinta
+ applied_cell = /obj/item/stock_parts/cell/super
+ applied_modules = list(
+ /obj/item/mod/module/storage/syndicate,
+ /obj/item/mod/module/emp_shield,
+ /obj/item/mod/module/status_readout,
+ /obj/item/mod/module/flashlight,
+ /obj/item/mod/module/magboot/advanced,
+ /obj/item/mod/module/jetpack/advanced,
+ )
+ default_pins = list(
+ /obj/item/mod/module/jetpack/advanced,
+ /obj/item/mod/module/magboot/advanced,
+ )
+
+// MARK: Skrell elite MODsuit - Sardaukars
+/obj/item/mod/control/pre_equipped/exclusive/skrell_sardaukars
+ theme = /datum/mod_theme/skrell_sardaukars
+ applied_cell = /obj/item/stock_parts/cell/bluespace
+ applied_modules = list(
+ /obj/item/mod/module/storage/bluespace,
+ /obj/item/mod/module/emp_shield,
+ /obj/item/mod/module/flashlight,
+ /obj/item/mod/module/jetpack/advanced,
+ /obj/item/mod/module/status_readout,
+ /obj/item/mod/module/magboot/advanced,
+ /obj/item/mod/module/visor/thermal
+ )
+ default_pins = list(
+ /obj/item/mod/module/jetpack/advanced,
+ /obj/item/mod/module/magboot/advanced,
+ /obj/item/mod/module/visor/thermal
+ )
+
+/obj/item/mod/control/pre_equipped/exclusive/skrell_sardaukars/Initialize(mapload, new_theme, new_skin, new_core, new_access)
+ . = ..()
+ ADD_TRAIT(chestplate, TRAIT_RSG_IMMUNE, ROUNDSTART_TRAIT)
+
+// MARK: Corporate MODsuit
+/obj/item/mod/control/pre_equipped/corporate
+ icon = 'modular_ss220/mod/icons/object/mod_clothing.dmi'
+ icon_override = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+
+// MARK: ERT RED MODsuit
+/obj/item/mod/control/pre_equipped/responsory/red
+ icon = 'modular_ss220/mod/icons/object/mod_clothing.dmi'
+ icon_override = 'modular_ss220/mod/icons/mob/mod_clothing.dmi'
+ theme = /datum/mod_theme/responsory/red
+ req_access = list(ACCESS_CENT_GENERAL)
+ applied_modules = list(
+ /obj/item/mod/module/storage/syndicate,
+ /obj/item/mod/module/welding,
+ /obj/item/mod/module/emp_shield,
+ /obj/item/mod/module/status_readout,
+ /obj/item/mod/module/flashlight,
+ /obj/item/mod/module/magboot,
+ /obj/item/mod/module/jetpack/advanced,
+ /obj/item/mod/module/ert_camera,
+ )
+ insignia_type = /obj/item/mod/module/insignia/red
+
+/obj/item/mod/control/pre_equipped/responsory/red/commander
+ insignia_type = /obj/item/mod/module/insignia/red/commander
+
+/obj/item/mod/control/pre_equipped/responsory/red/security
+ insignia_type = /obj/item/mod/module/insignia/red/security
+
+/obj/item/mod/control/pre_equipped/responsory/red/engineer
+ insignia_type = /obj/item/mod/module/insignia/red/engineer
+
+/obj/item/mod/control/pre_equipped/responsory/red/medic
+ insignia_type = /obj/item/mod/module/insignia/red/medic
+
+/obj/item/mod/control/pre_equipped/responsory/red/medic/Initialize(mapload, new_theme, new_skin, new_core, new_access)
+ . = ..()
+ ADD_TRAIT(chestplate, TRAIT_RSG_IMMUNE, ROUNDSTART_TRAIT)
+
+/obj/item/mod/control/pre_equipped/responsory/red/janitor
+ insignia_type = /obj/item/mod/module/insignia/red/janitor
+
+/obj/item/mod/control/pre_equipped/responsory/red/clown
+ insignia_type = /obj/item/mod/module/insignia/red/clown
+
+/obj/item/mod/control/pre_equipped/responsory/red/chaplain
+ insignia_type = /obj/item/mod/module/insignia/red/chaplain
+
+/obj/item/mod/control/pre_equipped/responsory/red/inquisitory
+ applied_skin = "inquisitory"
diff --git a/modular_ss220/mod/icons/mob/mod_clothing.dmi b/modular_ss220/mod/icons/mob/mod_clothing.dmi
new file mode 100644
index 000000000000..e00e724a7049
Binary files /dev/null and b/modular_ss220/mod/icons/mob/mod_clothing.dmi differ
diff --git a/modular_ss220/mod/icons/mob/mod_modules.dmi b/modular_ss220/mod/icons/mob/mod_modules.dmi
new file mode 100644
index 000000000000..27cd854bdb14
Binary files /dev/null and b/modular_ss220/mod/icons/mob/mod_modules.dmi differ
diff --git a/modular_ss220/clothing/icons/mob/species/grey/mod_clothing.dmi b/modular_ss220/mod/icons/mob/species/grey/mod_clothing.dmi
similarity index 100%
rename from modular_ss220/clothing/icons/mob/species/grey/mod_clothing.dmi
rename to modular_ss220/mod/icons/mob/species/grey/mod_clothing.dmi
diff --git a/modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi b/modular_ss220/mod/icons/mob/species/skrell/mod_clothing.dmi
similarity index 100%
rename from modular_ss220/clothing/icons/mob/species/skrell/mod_clothing.dmi
rename to modular_ss220/mod/icons/mob/species/skrell/mod_clothing.dmi
diff --git a/modular_ss220/clothing/icons/mob/species/tajaran/mod_clothing.dmi b/modular_ss220/mod/icons/mob/species/tajaran/mod_clothing.dmi
similarity index 100%
rename from modular_ss220/clothing/icons/mob/species/tajaran/mod_clothing.dmi
rename to modular_ss220/mod/icons/mob/species/tajaran/mod_clothing.dmi
diff --git a/modular_ss220/clothing/icons/mob/species/unathi/mod_clothing.dmi b/modular_ss220/mod/icons/mob/species/unathi/mod_clothing.dmi
similarity index 100%
rename from modular_ss220/clothing/icons/mob/species/unathi/mod_clothing.dmi
rename to modular_ss220/mod/icons/mob/species/unathi/mod_clothing.dmi
diff --git a/modular_ss220/clothing/icons/mob/species/vox/mod_clothing.dmi b/modular_ss220/mod/icons/mob/species/vox/mod_clothing.dmi
similarity index 100%
rename from modular_ss220/clothing/icons/mob/species/vox/mod_clothing.dmi
rename to modular_ss220/mod/icons/mob/species/vox/mod_clothing.dmi
diff --git a/modular_ss220/clothing/icons/mob/species/vulpkanin/mod_clothing.dmi b/modular_ss220/mod/icons/mob/species/vulpkanin/mod_clothing.dmi
similarity index 100%
rename from modular_ss220/clothing/icons/mob/species/vulpkanin/mod_clothing.dmi
rename to modular_ss220/mod/icons/mob/species/vulpkanin/mod_clothing.dmi
diff --git a/modular_ss220/mod/icons/object/mod_clothing.dmi b/modular_ss220/mod/icons/object/mod_clothing.dmi
new file mode 100644
index 000000000000..31f1b0c88ea5
Binary files /dev/null and b/modular_ss220/mod/icons/object/mod_clothing.dmi differ
diff --git a/modular_ss220/modular_ss220.dme b/modular_ss220/modular_ss220.dme
index 4b3c55d3098d..7e2626f94768 100644
--- a/modular_ss220/modular_ss220.dme
+++ b/modular_ss220/modular_ss220.dme
@@ -68,6 +68,7 @@
#include "logs/_logs.dme"
#include "mecha_skins/mecha_skins.dme"
#include "mobs/_mobs.dme"
+#include "mod/_mods.dme"
#include "outfits/_outfits.dme"
#include "phrases/_phrases.dme"
#include "pixel_shift/_pixel_shift.dme"
diff --git a/modular_ss220/objects/code/plushies/hampters.dm b/modular_ss220/objects/code/plushies/hampters.dm
index 38fbeb436d29..c2478575d6be 100644
--- a/modular_ss220/objects/code/plushies/hampters.dm
+++ b/modular_ss220/objects/code/plushies/hampters.dm
@@ -38,14 +38,11 @@
play_squeak()
// Спавнер рандомного хамптера для карты
-/obj/random/hampter
- name = "Random Hampter"
- desc = "This is a random hampter spawner."
+/obj/effect/spawner/random/toy/hampter
+ name = "random hampter toy"
icon = 'modular_ss220/objects/icons/plushies.dmi'
icon_state = "hampter"
-
-/obj/random/hampter/item_to_spawn()
- return pick(typesof(/obj/item/toy/hampter))
+ loot_type_path = /obj/item/toy/hampter
// Хамптер
/obj/item/toy/hampter
diff --git a/modular_ss220/objects/icons/posters.dmi b/modular_ss220/objects/icons/posters.dmi
index 3e9e1fdaaae5..8ec9a3975e2f 100644
Binary files a/modular_ss220/objects/icons/posters.dmi and b/modular_ss220/objects/icons/posters.dmi differ
diff --git a/modular_ss220/outfits/code/outfits.dm b/modular_ss220/outfits/code/outfits.dm
index e3b3fc8e5ce7..4dde3bb4e9e1 100644
--- a/modular_ss220/outfits/code/outfits.dm
+++ b/modular_ss220/outfits/code/outfits.dm
@@ -152,7 +152,7 @@
gloves =/obj/item/clothing/gloves/ring/silver
mask = /obj/item/clothing/mask/holo_cigar
backpack_contents = list(
- /obj/item/clothing/accessory/scarf/purple,
+ /obj/item/clothing/neck/scarf/purple,
/obj/item/clothing/gloves/combat,
/obj/item/gun/projectile/revolver/mateba,
/obj/item/ammo_box/a357,
@@ -312,11 +312,117 @@
/datum/outfit/job/centcom/response_team/commander/amber
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
+/datum/outfit/job/response_team/commander/red
+ name = "RT Commander (Red)"
+ shoes = /obj/item/clothing/shoes/combat
+ back = /obj/item/mod/control/pre_equipped/responsory/red/commander
+ suit = null
+ glasses = /obj/item/clothing/glasses/sunglasses
+ mask = /obj/item/clothing/mask/gas/sechailer/swat
+ belt = /obj/item/gun/energy/gun/blueshield/pdw9
+
+ backpack_contents = list(
+ /obj/item/camera_bug/ert = 1,
+ /obj/item/door_remote/omni = 1,
+ /obj/item/restraints/handcuffs = 1,
+ /obj/item/clothing/shoes/magboots = 1,
+ /obj/item/storage/box/mindshield = 1
+ )
+
+/* Security */
+/datum/outfit/job/response_team/security/red
+ name = "RT Security (Red)"
+ shoes = /obj/item/clothing/shoes/combat
+ back = /obj/item/mod/control/pre_equipped/responsory/red/security
+ suit = null
+ suit_store = /obj/item/gun/energy/gun/blueshield/pdw9
+ glasses = /obj/item/clothing/glasses/sunglasses
+ mask = /obj/item/clothing/mask/gas/sechailer
+ l_hand = /obj/item/gun/projectile/automatic/lasercarbine
+
+ backpack_contents = list(
+ /obj/item/clothing/shoes/magboots = 1,
+ /obj/item/storage/box/handcuffs = 1,
+ /obj/item/grenade/flashbang = 2,
+ /obj/item/ammo_box/magazine/laser/ert = 2
+ )
+
/* Engineer */
/datum/outfit/job/centcom/response_team/engineer/amber
suit = /obj/item/clothing/suit/space/ert_engineer
head = /obj/item/clothing/head/helmet/space/ert_engineer
+/datum/outfit/job/response_team/engineer/red
+ name = "RT Engineer (Red)"
+ shoes = /obj/item/clothing/shoes/magboots/advance
+ back = /obj/item/mod/control/pre_equipped/responsory/red/engineer
+ suit = null
+ suit_store = /obj/item/tank/internals/emergency_oxygen/double
+ glasses = /obj/item/clothing/glasses/meson/engine
+ mask = /obj/item/clothing/mask/gas
+ l_pocket = /obj/item/t_scanner
+ r_pocket = /obj/item/melee/classic_baton/telescopic
+
+ backpack_contents = list(
+ /obj/item/rcd/preloaded = 1,
+ /obj/item/rcd_ammo = 3,
+ /obj/item/gun/energy/gun = 1,
+ /obj/item/rpd/bluespace = 1,
+ /obj/item/storage/bag/construction = 1
+ )
+
+/* Medic */
+/datum/outfit/job/response_team/medic/red
+ name = "RT Medic (Red)"
+ rt_mob_job = "ERT Medical"
+ shoes = /obj/item/clothing/shoes/magboots
+ back = /obj/item/mod/control/pre_equipped/responsory/red/medic
+ suit = null
+ glasses = /obj/item/clothing/glasses/hud/health/sunglasses
+ suit_store = /obj/item/gun/energy/gun
+ belt = /obj/item/defibrillator/compact/advanced/loaded
+ l_pocket = /obj/item/reagent_containers/hypospray/safety/ert
+ r_pocket = /obj/item/melee/classic_baton/telescopic
+
+ backpack_contents = list(
+ /obj/item/clothing/mask/surgical = 1,
+ /obj/item/storage/firstaid/ert = 1,
+ /obj/item/storage/box/autoinjectors = 1,
+ /obj/item/roller/holo = 1,
+ /obj/item/bodyanalyzer = 1,
+ /obj/item/handheld_defibrillator = 1,
+ /obj/item/storage/pill_bottle/ert_red = 1,
+ /obj/item/storage/pill_bottle/patch_pack/ert = 1,
+ /obj/item/soap/nanotrasen = 1
+ )
+
+/* Paranormal */
+/datum/outfit/job/response_team/paranormal/red
+ name = "RT Paranormal (Red)"
+ back = /obj/item/mod/control/pre_equipped/responsory/red/chaplain
+ suit = null
+ suit_store = /obj/item/gun/energy/gun
+ r_pocket = /obj/item/nullrod/ert
+ glasses = /obj/item/clothing/glasses/sunglasses
+
+ backpack_contents = list(
+ /obj/item/clothing/shoes/magboots = 1,
+ /obj/item/storage/box/zipties = 1,
+ /obj/item/flashlight/seclite = 1,
+ /obj/item/storage/bible = 1
+ )
+
+/* Janitor */
+/datum/outfit/job/response_team/janitorial/red
+ name = "RT Janitor (Red)"
+ back = /obj/item/mod/control/pre_equipped/responsory/red/janitor
+ suit = null
+ glasses = /obj/item/clothing/glasses/hud/janitor/sunglasses
+ shoes = /obj/item/clothing/shoes/galoshes/dry/lightweight
+ r_pocket = /obj/item/scythe/tele
+ suit_store = /obj/item/gun/energy/gun
+
+
// MARK: Skrell
/datum/outfit/admin/sdtf
name = "Skrellian Defence Task Forces Marine"
diff --git a/modular_ss220/species/code/mob/living/carbon/human/eat/eat_list_clothing.dm b/modular_ss220/species/code/mob/living/carbon/human/eat/eat_list_clothing.dm
index 759c55a79b75..b61830a682c4 100644
--- a/modular_ss220/species/code/mob/living/carbon/human/eat/eat_list_clothing.dm
+++ b/modular_ss220/species/code/mob/living/carbon/human/eat/eat_list_clothing.dm
@@ -49,7 +49,7 @@
/obj/item/clothing/accessory/legal_badge/Initialize(mapload)
. = ..()
material_type = MATERIAL_CLASS_NONE
-/obj/item/clothing/accessory/necklace/Initialize(mapload)
+/obj/item/clothing/neck/necklace/Initialize(mapload)
. = ..()
material_type = MATERIAL_CLASS_NONE
/obj/item/clothing/accessory/medal/Initialize(mapload)
diff --git a/modular_ss220/text_to_speech/code/tts_subsystem.dm b/modular_ss220/text_to_speech/code/tts_subsystem.dm
index 02bdfafdf1a6..350ce993ba9d 100644
--- a/modular_ss220/text_to_speech/code/tts_subsystem.dm
+++ b/modular_ss220/text_to_speech/code/tts_subsystem.dm
@@ -94,6 +94,10 @@ SUBSYSTEM_DEF(tts220)
"вкд" = "Вэ Ка Дэ",
"нтр" = "Эн Тэ Эр",
"пнт" = "Пэ Эн Тэ",
+ "птн" = "Пэ Тэ Эн",
+ "нст" = "Эн Эс Тэ",
+ "нкт" = "Эн Кэ Тэ",
+ "nct" = "Эн Кэ Тэ",
"авд" = "А Вэ Дэ",
"пнв" = "Пэ Эн Вэ",
"ссд" = "Эс Эс Дэ",
diff --git a/paradise.dme b/paradise.dme
index d0c7b2a6dd2f..0f8cfac0a1b9 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -83,6 +83,7 @@
#include "code\__DEFINES\lighting_defines.dm"
#include "code\__DEFINES\logs.dm"
#include "code\__DEFINES\machines.dm"
+#include "code\__DEFINES\magic_defines.dm"
#include "code\__DEFINES\mappers.dm"
#include "code\__DEFINES\martial_arts.dm"
#include "code\__DEFINES\MC.dm"
@@ -109,8 +110,8 @@
#include "code\__DEFINES\radio_defines.dm"
#include "code\__DEFINES\reagents_defines.dm"
#include "code\__DEFINES\regex.dm"
-#include "code\__DEFINES\revolution_defines.dm"
#include "code\__DEFINES\resonator_defines.dm"
+#include "code\__DEFINES\revolution_defines.dm"
#include "code\__DEFINES\role_preferences.dm"
#include "code\__DEFINES\rolebans.dm"
#include "code\__DEFINES\rust.dm"
@@ -430,6 +431,7 @@
#include "code\datums\cache\crew.dm"
#include "code\datums\cache\powermonitor.dm"
#include "code\datums\components\_component.dm"
+#include "code\datums\components\anti_magic.dm"
#include "code\datums\components\boomerang.dm"
#include "code\datums\components\boss_music.dm"
#include "code\datums\components\caltrop.dm"
@@ -722,6 +724,7 @@
#include "code\game\area\ss13_areas\legal_areas.dm"
#include "code\game\area\ss13_areas\maintenance_areas.dm"
#include "code\game\area\ss13_areas\medical_areas.dm"
+#include "code\game\area\ss13_areas\procedure_areas.dm"
#include "code\game\area\ss13_areas\public_areas.dm"
#include "code\game\area\ss13_areas\science_areas.dm"
#include "code\game\area\ss13_areas\security_areas.dm"
@@ -931,8 +934,8 @@
#include "code\game\machinery\computer\prisoner.dm"
#include "code\game\machinery\computer\robot_control.dm"
#include "code\game\machinery\computer\security_records.dm"
-#include "code\game\machinery\computer\sm_monitor.dm"
#include "code\game\machinery\computer\singulo_monitor.dm"
+#include "code\game\machinery\computer\sm_monitor.dm"
#include "code\game\machinery\computer\station_alert.dm"
#include "code\game\machinery\computer\arcade_games\recruiter.dm"
#include "code\game\machinery\doors\airlock.dm"
@@ -1059,6 +1062,7 @@
#include "code\game\objects\effects\spawners\random\misc_spawners.dm"
#include "code\game\objects\effects\spawners\random\plushie_spawners.dm"
#include "code\game\objects\effects\spawners\random\random_spawner.dm"
+#include "code\game\objects\effects\spawners\random\toy_spawners.dm"
#include "code\game\objects\effects\spawners\random\trash_spawners.dm"
#include "code\game\objects\effects\spawners\random\pool\pool_spawner.dm"
#include "code\game\objects\effects\spawners\random\pool\spawn_pool.dm"
@@ -1309,7 +1313,6 @@
#include "code\game\objects\items\weapons\tanks\tank_types.dm"
#include "code\game\objects\items\weapons\tanks\tanks.dm"
#include "code\game\objects\items\weapons\tanks\watertank.dm"
-#include "code\game\objects\random\random.dm"
#include "code\game\objects\structures\aliens.dm"
#include "code\game\objects\structures\barsign.dm"
#include "code\game\objects\structures\bedsheet_bin.dm"
@@ -1347,6 +1350,7 @@
#include "code\game\objects\structures\nest.dm"
#include "code\game\objects\structures\noticeboard.dm"
#include "code\game\objects\structures\plasma_geyser.dm"
+#include "code\game\objects\structures\plasmafire_generator.dm"
#include "code\game\objects\structures\plasticflaps.dm"
#include "code\game\objects\structures\pondering_orb.dm"
#include "code\game\objects\structures\railings.dm"
@@ -1549,6 +1553,7 @@
#include "code\modules\antagonists\changeling\powers\transform.dm"
#include "code\modules\antagonists\cult\datum_cultist.dm"
#include "code\modules\antagonists\cult\team_cult.dm"
+#include "code\modules\antagonists\event\datum_eventmisc.dm"
#include "code\modules\antagonists\mind_flayer\flayer_datum.dm"
#include "code\modules\antagonists\mind_flayer\flayer_power.dm"
#include "code\modules\antagonists\mind_flayer\mindflayer_gamemode.dm"
@@ -1750,6 +1755,7 @@
#include "code\modules\client\preference\loadout\loadout_glasses.dm"
#include "code\modules\client\preference\loadout\loadout_gloves.dm"
#include "code\modules\client\preference\loadout\loadout_hat.dm"
+#include "code\modules\client\preference\loadout\loadout_neck.dm"
#include "code\modules\client\preference\loadout\loadout_racial.dm"
#include "code\modules\client\preference\loadout\loadout_shoes.dm"
#include "code\modules\client\preference\loadout\loadout_suit.dm"
@@ -1782,6 +1788,9 @@
#include "code\modules\clothing\masks\misc_masks.dm"
#include "code\modules\clothing\masks\voicemodulator.dm"
#include "code\modules\clothing\neck\cloaks.dm"
+#include "code\modules\clothing\neck\neck.dm"
+#include "code\modules\clothing\neck\necklace.dm"
+#include "code\modules\clothing\neck\scarfs.dm"
#include "code\modules\clothing\patreon\hats.dm"
#include "code\modules\clothing\patreon\patreon_glasses.dm"
#include "code\modules\clothing\shoes\colour.dm"
diff --git a/rust/Cargo.lock b/rust/Cargo.lock
index a3c486a8d949..ffbbc755efac 100644
--- a/rust/Cargo.lock
+++ b/rust/Cargo.lock
@@ -36,6 +36,21 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "atomic_float"
version = "1.0.0"
@@ -78,16 +93,14 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
[[package]]
name = "bindgen"
-version = "0.69.4"
+version = "0.70.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
+checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f"
dependencies = [
"bitflags 2.5.0",
"cexpr",
"clang-sys",
- "itertools 0.12.1",
- "lazy_static",
- "lazycell",
+ "itertools",
"log",
"prettyplease",
"proc-macro2",
@@ -96,7 +109,6 @@ dependencies = [
"rustc-hash",
"shlex",
"syn 2.0.60",
- "which",
]
[[package]]
@@ -129,22 +141,20 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "byondapi"
-version = "0.4.7"
-source = "git+https://github.com/spacestation13/byondapi-rs.git#aa4addd95c33b66652b3e35e7401a0ad82aa028e"
+version = "0.4.11"
+source = "git+https://github.com/spacestation13/byondapi-rs.git#c3b15e8574eca87865c640616029e6ea72da4cd1"
dependencies = [
"byondapi-macros",
"byondapi-sys",
"inventory",
- "lazy_static",
"libloading",
"num_enum",
- "walkdir",
]
[[package]]
name = "byondapi-macros"
-version = "0.1.2"
-source = "git+https://github.com/spacestation13/byondapi-rs.git#aa4addd95c33b66652b3e35e7401a0ad82aa028e"
+version = "0.1.3"
+source = "git+https://github.com/spacestation13/byondapi-rs.git#c3b15e8574eca87865c640616029e6ea72da4cd1"
dependencies = [
"proc-macro2",
"quote",
@@ -153,14 +163,12 @@ dependencies = [
[[package]]
name = "byondapi-sys"
-version = "0.11.1"
-source = "git+https://github.com/spacestation13/byondapi-rs.git#aa4addd95c33b66652b3e35e7401a0ad82aa028e"
+version = "0.11.2"
+source = "git+https://github.com/spacestation13/byondapi-rs.git#c3b15e8574eca87865c640616029e6ea72da4cd1"
dependencies = [
"bindgen",
"doxygen-rs",
"libloading",
- "rustc_version",
- "walkdir",
]
[[package]]
@@ -189,6 +197,15 @@ version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+[[package]]
+name = "cc"
+version = "1.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333"
+dependencies = [
+ "shlex",
+]
+
[[package]]
name = "cexpr"
version = "0.6.0"
@@ -204,6 +221,20 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+[[package]]
+name = "chrono"
+version = "0.4.39"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "wasm-bindgen",
+ "windows-targets",
+]
+
[[package]]
name = "clang-sys"
version = "1.7.0"
@@ -227,6 +258,12 @@ version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52fdfaf2bee6357023bf7f95b15a8ef0b82759d2bce705cc45efcae9ae10f0ff"
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
+
[[package]]
name = "crc32fast"
version = "1.4.2"
@@ -325,16 +362,6 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-[[package]]
-name = "errno"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
-dependencies = [
- "libc",
- "windows-sys",
-]
-
[[package]]
name = "eyre"
version = "0.6.12"
@@ -345,6 +372,15 @@ dependencies = [
"once_cell",
]
+[[package]]
+name = "fdeflate"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
+dependencies = [
+ "simd-adler32",
+]
+
[[package]]
name = "flate2"
version = "1.0.33"
@@ -411,12 +447,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
[[package]]
-name = "home"
-version = "0.5.9"
+name = "iana-time-zone"
+version = "0.1.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220"
dependencies = [
- "windows-sys",
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
]
[[package]]
@@ -480,15 +530,6 @@ dependencies = [
"either",
]
-[[package]]
-name = "itertools"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
-dependencies = [
- "either",
-]
-
[[package]]
name = "itoa"
version = "1.0.11"
@@ -496,16 +537,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "lazycell"
-version = "1.3.0"
+name = "js-sys"
+version = "0.3.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7"
+dependencies = [
+ "once_cell",
+ "wasm-bindgen",
+]
[[package]]
name = "libc"
@@ -515,20 +554,14 @@ checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
[[package]]
name = "libloading"
-version = "0.8.3"
+version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
+checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
dependencies = [
"cfg-if",
"windows-targets",
]
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
-
[[package]]
name = "lodepng"
version = "3.10.7"
@@ -576,6 +609,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
dependencies = [
"adler2",
+ "simd-adler32",
]
[[package]]
@@ -630,18 +664,18 @@ dependencies = [
[[package]]
name = "num_enum"
-version = "0.7.2"
+version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
+checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179"
dependencies = [
"num_enum_derive",
]
[[package]]
name = "num_enum_derive"
-version = "0.7.2"
+version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
+checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@@ -706,6 +740,19 @@ dependencies = [
"siphasher",
]
+[[package]]
+name = "png"
+version = "0.17.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
[[package]]
name = "ppv-lite86"
version = "0.2.17"
@@ -887,40 +934,20 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
-dependencies = [
- "bitflags 2.5.0",
- "errno",
- "libc",
- "linux-raw-sys",
- "windows-sys",
-]
-
[[package]]
name = "rustlibs"
-version = "1.0.0"
+version = "2.0.0"
dependencies = [
"atomic_float",
"bitflags 2.5.0",
"byondapi",
+ "chrono",
"diff",
"dmm-tools",
"eyre",
"fxhash",
- "itertools 0.10.5",
+ "itertools",
+ "png",
"rand",
"regex",
"scc",
@@ -966,12 +993,6 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b84345e4c9bd703274a082fb80caaa99b7612be48dfaa1dd9266577ec412309d"
-[[package]]
-name = "semver"
-version = "1.0.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
-
[[package]]
name = "serde"
version = "1.0.210"
@@ -1010,6 +1031,12 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
[[package]]
name = "siphasher"
version = "0.3.11"
@@ -1122,17 +1149,59 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
-name = "which"
-version = "4.4.2"
+name = "wasm-bindgen"
+version = "0.2.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396"
dependencies = [
- "either",
- "home",
+ "cfg-if",
"once_cell",
- "rustix",
+ "wasm-bindgen-macro",
]
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.99"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79"
+dependencies = [
+ "bumpalo",
+ "log",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.99"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.99"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.99"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6"
+
[[package]]
name = "winapi"
version = "0.3.9"
@@ -1164,6 +1233,15 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets",
+]
+
[[package]]
name = "windows-sys"
version = "0.52.0"
diff --git a/rust/Cargo.toml b/rust/Cargo.toml
index 06e948f3bec0..77be2902dbb9 100644
--- a/rust/Cargo.toml
+++ b/rust/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "rustlibs"
-version = "1.0.0"
+version = "2.0.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -33,3 +33,5 @@ serde_json = { version = "1.0" }
walkdir = "2.5.0"
# regex
regex = "1.10.5"
+png = "0.17.16"
+chrono = "0.4.39"
diff --git a/rust/src/logging/mod.rs b/rust/src/logging/mod.rs
index fc5312ae5941..97d524f8773c 100644
--- a/rust/src/logging/mod.rs
+++ b/rust/src/logging/mod.rs
@@ -1,16 +1,14 @@
+use byondapi::global_call::call_global;
+use byondapi::prelude::ByondValue;
+use byondapi::threadsync::thread_sync;
+use chrono::prelude::Utc;
+use eyre;
+
/// Call stack trace dm method with message.
-pub(crate) fn dm_call_stack_trace(msg: String) {
- let msg = byondapi::value::ByondValue::try_from(msg).unwrap();
- // this is really ugly, cause we want to get id/ref to a proc name string
- // that is already allocated, and don't want to allocate a new string entirely
- byondapi::global_call::call_global_id(
- {
- static STRING_ID: std::sync::OnceLock = std::sync::OnceLock::new();
- *STRING_ID.get_or_init(|| byondapi::byond_string::str_id_of("_stack_trace").unwrap())
- },
- &[msg],
- )
- .unwrap();
+pub(crate) fn dm_call_stack_trace(msg: String) -> eyre::Result<()> {
+ call_global("stack_trace", &[ByondValue::new_str(msg)?])?;
+
+ Ok(())
}
/// Panic handler, called on unhandled errors.
@@ -18,7 +16,17 @@ pub(crate) fn dm_call_stack_trace(msg: String) {
pub(crate) fn setup_panic_handler() {
std::panic::set_hook(Box::new(|info| {
let msg = format!("Panic \n {:#?}", info);
- let _ = std::fs::write("./rustlibs_panic.txt", msg.clone());
- dm_call_stack_trace(msg);
+ let msg_copy = msg.clone();
+ let _ = thread_sync(
+ || -> ByondValue {
+ if let Err(error) = dm_call_stack_trace(msg_copy) {
+ let second_msg = format!("BYOND error \n {:#?}", error);
+ let _ = std::fs::write(Utc::now().format("data/rustlibs_dm_trace_failed_%Y%m%d_%H%M%S.txt").to_string(), second_msg.clone());
+ }
+ Default::default()
+ },
+ true,
+ );
+ let _ = std::fs::write(Utc::now().format("data/rustlibs_panic_%Y%m%d_%H%M%S.txt").to_string(), msg.clone());
}))
}
diff --git a/rust/src/mapmanip/mod.rs b/rust/src/mapmanip/mod.rs
index 70bc79b8cf34..f9c7f25b0df7 100644
--- a/rust/src/mapmanip/mod.rs
+++ b/rust/src/mapmanip/mod.rs
@@ -170,7 +170,7 @@ fn mapmanip_submap_extract_insert(
///
#[byondapi::bind]
-fn mapmanip_read_dmm_file(path: ByondValue) {
+fn mapmanip_read_dmm_file(path: ByondValue) -> eyre::Result {
internal_mapmanip_read_dmm_file(path)
}
@@ -235,7 +235,7 @@ pub unsafe extern "C" fn read_dmm_file_ffi(
) {
Ok(val) => val,
Err(info) => {
- dm_call_stack_trace(format!("Rustlibs ERROR read_dmm_file_ffi() \n {info:#?}"));
+ let _ = dm_call_stack_trace(format!("Rustlibs ERROR read_dmm_file_ffi() \n {info:#?}"));
ByondValue::null()
}
}
diff --git a/rust/src/milla/api.rs b/rust/src/milla/api.rs
index b5393a58859a..d6fb9845d30d 100644
--- a/rust/src/milla/api.rs
+++ b/rust/src/milla/api.rs
@@ -2,6 +2,7 @@ use crate::logging;
use crate::milla::constants::*;
use crate::milla::conversion;
use crate::milla::model::*;
+use crate::milla::simulate;
use crate::milla::statics::*;
use crate::milla::tick;
use byondapi::global_call::call_global;
@@ -9,20 +10,22 @@ use byondapi::map::byond_xyz;
use byondapi::prelude::*;
use eyre::eyre;
use eyre::Result;
+use std::env;
use std::thread;
use std::time::Instant;
/// BYOND API for ensuring the buffers are usable.
#[byondapi::bind]
-fn milla_initialize(byond_z: ByondValue) {
+fn milla_initialize(byond_z: ByondValue) -> eyre::Result {
logging::setup_panic_handler();
+ env::set_var("RUST_BACKTRACE", "1");
let z = f32::try_from(byond_z)? as i32 - 1;
internal_initialize(z)?;
- Ok(Default::default())
+ Ok(ByondValue::null())
}
/// Ensure that buffers are available.
-pub(crate) fn internal_initialize(z: i32) -> Result<(), eyre::Error> {
+pub(crate) fn internal_initialize(z: i32) -> eyre::Result {
if z >= MAX_Z_LEVELS {
return Err(eyre!(
"Suspiciously high Z level {} initialized, update MAX_Z_LEVELS if this is intentional.",
@@ -31,7 +34,7 @@ pub(crate) fn internal_initialize(z: i32) -> Result<(), eyre::Error> {
}
let buffers = BUFFERS.get_or_init(Buffers::new);
buffers.init_to(z);
- Ok(Default::default())
+ Ok(ByondValue::null())
}
/// BYOND API for defining an environment that a tile can be exposed to.
@@ -44,7 +47,7 @@ fn milla_create_environment(
sleeping_agent: ByondValue,
agent_b: ByondValue,
temperature: ByondValue,
-) {
+) -> eyre::Result {
logging::setup_panic_handler();
Ok(ByondValue::from(internal_create_environment(
conversion::byond_to_option_f32(oxygen)?,
@@ -112,7 +115,9 @@ fn milla_set_tile(
agent_b: ByondValue,
temperature: ByondValue,
_innate_heat_capacity: ByondValue,
-) {
+ hotspot_temperature: ByondValue,
+ hotspot_volume: ByondValue,
+) -> eyre::Result {
logging::setup_panic_handler();
let (x, y, z) = byond_xyz(&turf)?.coordinates();
internal_set_tile(
@@ -136,8 +141,10 @@ fn milla_set_tile(
// Temporarily disabled to better match the existing system.
//bounded_byond_to_option_f32(innate_heat_capacity, 0.0, f32::INFINITY)?,
Some(0.0),
+ conversion::bounded_byond_to_option_f32(hotspot_temperature, 0.0, f32::INFINITY)?,
+ conversion::bounded_byond_to_option_f32(hotspot_volume, 0.0, 1.0)?,
)?;
- Ok(Default::default())
+ Ok(ByondValue::null())
}
/// BYOND API for setting the directions a tile is airtight in.
@@ -149,7 +156,7 @@ fn milla_set_tile_airtight(
airtight_east: ByondValue,
airtight_south: ByondValue,
airtight_west: ByondValue,
-) {
+) -> eyre::Result {
logging::setup_panic_handler();
let (x, y, z) = byond_xyz(&turf)?.coordinates();
internal_set_tile(
@@ -171,8 +178,10 @@ fn milla_set_tile_airtight(
None,
None,
None,
+ None,
+ None,
)?;
- Ok(Default::default())
+ Ok(ByondValue::null())
}
/// Rust version of setting the atmos details of a tile.
@@ -196,6 +205,8 @@ pub(crate) fn internal_set_tile(
temperature: Option,
thermal_energy: Option,
innate_heat_capacity: Option,
+ hotspot_temperature: Option,
+ hotspot_volume: Option,
) -> Result<()> {
let buffers = BUFFERS.get().ok_or(eyre!("BUFFERS not initialized."))?;
let active = buffers.get_active().read().unwrap();
@@ -272,25 +283,45 @@ pub(crate) fn internal_set_tile(
if let Some(value) = thermal_energy {
tile.thermal_energy = value;
}
+ if let Some(value) = hotspot_temperature {
+ tile.hotspot_temperature = value;
+ }
+ if let Some(value) = hotspot_volume {
+ tile.hotspot_volume = value;
+ }
Ok(())
}
/// BYOND API for fetching the atmos details of a tile.
#[byondapi::bind]
-fn milla_get_tile(turf: ByondValue, list: ByondValue) {
+fn milla_get_tile(turf: ByondValue, list: ByondValue) -> eyre::Result {
logging::setup_panic_handler();
let (x, y, z) = byond_xyz(&turf)?.coordinates();
- let tile = internal_get_tile(x as i32 - 1, y as i32 - 1, z as i32 - 1)?;
- let vec: Vec = (&tile).into();
+ let vec: Vec;
+ if let Ok(tile) = internal_get_tile(x as i32 - 1, y as i32 - 1, z as i32 - 1) {
+ vec = (&tile).into();
+ } else {
+ // MILLA has died and is unrecoverable.
+ // Uh... uh... report everything as breathable air, I guess?
+ let mut air = Tile::new();
+ air.gases.set_oxygen(20.0);
+ air.gases.set_nitrogen(80.0);
+ air.thermal_energy = air.heat_capacity() * T20C;
+ vec = (&air).into();
+ }
list.write_list(vec.as_slice())?;
- Ok(Default::default())
+ Ok(ByondValue::null())
}
/// Rust version of fetching the atmos details of a tile.
pub(crate) fn internal_get_tile(x: i32, y: i32, z: i32) -> Result {
let buffers = BUFFERS.get().ok_or(eyre!("BUFFERS not initialized."))?;
- let active = buffers.get_active().read().unwrap();
+ let maybe_active = buffers.get_active().read();
+ if maybe_active.is_err() {
+ return Err(eyre!("MILLA buffers have been poisoned."));
+ }
+ let active = maybe_active.unwrap();
let z_level = active.0[z as usize].read().unwrap();
Ok(z_level
.get_tile(ZLevel::maybe_get_index(x, y).ok_or(eyre!(
@@ -308,7 +339,7 @@ pub(crate) fn internal_get_tile(x: i32, y: i32, z: i32) -> Result {
/// * Turfs that just passed the threshold for showing plasma or sleeping gas.
/// * Turfs with strong airflow out.
#[byondapi::bind]
-fn milla_get_interesting_tiles() {
+fn milla_get_interesting_tiles() -> eyre::Result {
logging::setup_panic_handler();
let interesting_tiles = INTERESTING_TILES.lock().unwrap();
let byond_interesting_tiles = interesting_tiles
@@ -320,7 +351,7 @@ fn milla_get_interesting_tiles() {
/// BYOND API for getting a single random interesting tile.
#[byondapi::bind]
-fn milla_get_random_interesting_tile() {
+fn milla_get_random_interesting_tile() -> eyre::Result {
logging::setup_panic_handler();
let interesting_tiles = INTERESTING_TILES.lock().unwrap();
let length = interesting_tiles.len() as f32;
@@ -342,7 +373,8 @@ fn milla_reduce_superconductivity(
east: ByondValue,
south: ByondValue,
west: ByondValue,
-) {
+) -> eyre::Result {
+ logging::setup_panic_handler();
let (x, y, z) = byond_xyz(&turf)?.coordinates();
let rust_north = conversion::bounded_byond_to_option_f32(north, 0.0, 1.0)?;
let rust_east = conversion::bounded_byond_to_option_f32(east, 0.0, 1.0)?;
@@ -357,7 +389,7 @@ fn milla_reduce_superconductivity(
rust_south,
rust_west,
)?;
- Ok(Default::default())
+ Ok(ByondValue::null())
}
/// Rust version of capping the superconductivity of a tile.
@@ -371,7 +403,7 @@ pub(crate) fn internal_reduce_superconductivity(
east: Option,
south: Option,
west: Option,
-) -> Result<(), eyre::Error> {
+) -> eyre::Result<()> {
let buffers = BUFFERS.get().ok_or(eyre!("BUFFERS not initialized."))?;
let active = buffers.get_active().read().unwrap();
let maybe_z_level = active.0[z as usize].try_write();
@@ -404,10 +436,11 @@ pub(crate) fn internal_reduce_superconductivity(
/// BYOND API for resetting the superconductivity of a tile.
#[byondapi::bind]
-fn milla_reset_superconductivity(turf: ByondValue) {
+fn milla_reset_superconductivity(turf: ByondValue) -> eyre::Result {
+ logging::setup_panic_handler();
let (x, y, z) = byond_xyz(&turf)?.coordinates();
internal_reset_superconductivity(x as i32 - 1, y as i32 - 1, z as i32 - 1)?;
- Ok(Default::default())
+ Ok(ByondValue::null())
}
/// Rust version of resetting the superconductivity of a tile.
@@ -434,27 +467,185 @@ pub(crate) fn internal_reset_superconductivity(x: i32, y: i32, z: i32) -> Result
Ok(())
}
-/// BYOND API for starting an atmos tick.
+/// BYOND API for a heat source creating a hotspot on a tile.
#[byondapi::bind]
-fn milla_spawn_tick_thread() {
+fn milla_create_hotspot(
+ turf: ByondValue,
+ temperature: ByondValue,
+ volume: ByondValue,
+) -> eyre::Result {
logging::setup_panic_handler();
+ let (x, y, z) = byond_xyz(&turf)?.coordinates();
+ let rust_temperature =
+ conversion::bounded_byond_to_option_f32(temperature, 0.0, f32::INFINITY)?
+ .ok_or(eyre!("Hotspot temperature is required.."))?;
+ let rust_volume = conversion::bounded_byond_to_option_f32(volume, 0.0, TILE_VOLUME)?
+ .ok_or(eyre!("Hotspot volume is required.."))?;
+
+ internal_create_hotspot(
+ x as i32 - 1,
+ y as i32 - 1,
+ z as i32 - 1,
+ rust_temperature,
+ rust_volume / TILE_VOLUME,
+ )?;
+ Ok(ByondValue::null())
+}
+
+/// Rust version of a heat source creating a hotspot.
+pub(crate) fn internal_create_hotspot(
+ x: i32,
+ y: i32,
+ z: i32,
+ temperature: f32,
+ volume: f32,
+) -> Result<()> {
+ let buffers = BUFFERS.get().ok_or(eyre!("BUFFERS not initialized."))?;
+ let active = buffers.get_active().read().unwrap();
+ let maybe_z_level = active.0[z as usize].try_write();
+ if maybe_z_level.is_err() {
+ return Err(eyre!(
+ "Tried to write during asynchronous, read-only atmos. Use a /datum/milla_safe/..."
+ ));
+ }
+ let mut z_level = maybe_z_level.unwrap();
+ let tile = z_level.get_tile_mut(ZLevel::maybe_get_index(x, y).ok_or(eyre!(
+ "Bad coordinates ({}, {}, {})",
+ x + 1,
+ y + 1,
+ z + 1
+ ))?);
+
+ if temperature <= tile.temperature() || volume == 0.0 {
+ return Ok(());
+ }
+
+ if tile.hotspot_volume == 0.0 {
+ tile.hotspot_temperature = temperature;
+ tile.hotspot_volume = volume;
+ return Ok(());
+ }
+
+ let excess_thermal_energy = (temperature - tile.temperature()) * tile.heat_capacity() * volume;
+ if excess_thermal_energy > 0.0 {
+ simulate::adjust_hotspot(tile, excess_thermal_energy);
+ }
+
+ Ok(())
+}
+
+/// BYOND API for tracking the pressure of all nearby tiles next tick.
+#[byondapi::bind]
+fn milla_track_pressure_tiles(
+ turf: ByondValue,
+ byond_radius: ByondValue,
+) -> eyre::Result {
+ logging::setup_panic_handler();
+ let (x, y, z) = byond_xyz(&turf)?.coordinates();
+ let radius = conversion::bounded_byond_to_option_f32(byond_radius, 0.0, MAP_SIZE as f32)?
+ .ok_or(eyre!("Invalid radius: {:#?}", byond_radius))? as i32;
+
+ internal_track_pressure_tiles(x as i32 - 1, y as i32 - 1, z as i32 - 1, radius)?;
+ Ok(ByondValue::null())
+}
+
+/// Rust version of tracking the pressure of all nearby tiles next tick.
+fn internal_track_pressure_tiles(x: i32, y: i32, z: i32, radius: i32) -> eyre::Result<()> {
+ let mut tracked_pressure_tiles = TRACKED_PRESSURE_TILES.lock().unwrap();
+ for dx in -radius..=radius {
+ if x + dx < 0 {
+ continue;
+ }
+ if x + dx >= MAP_SIZE as i32 {
+ break;
+ }
+ for dy in -radius..=radius {
+ if y + dy < 0 {
+ continue;
+ }
+ if y + dy >= MAP_SIZE as i32 {
+ break;
+ }
+ tracked_pressure_tiles.push((x + dx, y + dy, z as usize));
+ }
+ }
+
+ Ok(())
+}
+
+/// BYOND API for getting the tracked pressure tiles.
+#[byondapi::bind]
+fn milla_get_tracked_pressure_tiles() -> eyre::Result {
+ logging::setup_panic_handler();
+ let tracked_pressures = internal_get_tracked_pressure_tiles()?
+ .iter()
+ .map(|v: &f32| ByondValue::from(*v))
+ .collect::>();
+ Ok(tracked_pressures.as_slice().try_into()?)
+}
+
+/// Rust version of getting the tracked pressure tiles.
+fn internal_get_tracked_pressure_tiles() -> eyre::Result> {
+ let buffers = BUFFERS.get().ok_or(eyre!("BUFFERS not initialized."))?;
+ let inactive = buffers.get_inactive().read().unwrap();
+ let mut tracked_pressure_tiles = TRACKED_PRESSURE_TILES.lock().unwrap();
+
+ let mut tiles_by_zlevel: Vec> = Vec::new();
+ for _z in 0..inactive.0.len() {
+ tiles_by_zlevel.push(Vec::new());
+ }
+
+ for (x, y, z) in tracked_pressure_tiles.drain(..) {
+ if z < tiles_by_zlevel.len() {
+ tiles_by_zlevel[z].push((x, y));
+ }
+ }
+
+ // This is a bit gross, but the easiest way to return the coordinates and data is to cast the
+ // coordinates to f32. It feels bad in Rust, but everything is an f32 in BYOND, so it's more or
+ // less a no-op.
+ let mut tracked_pressures: Vec = Vec::new();
+ for z in 0..tiles_by_zlevel.len() {
+ let z_level = inactive.0[z as usize].read().unwrap();
+ for (x, y) in &tiles_by_zlevel[z] {
+ if let Some(index) = ZLevel::maybe_get_index(*x, *y) {
+ tracked_pressures.push(*x as f32 + 1.0);
+ tracked_pressures.push(*y as f32 + 1.0);
+ tracked_pressures.push(z as f32 + 1.0);
+ tracked_pressures.push(z_level.get_tile(index).pressure());
+ }
+ }
+ }
+
+ Ok(tracked_pressures)
+}
+
+/// BYOND API for starting an atmos tick.
+#[byondapi::bind]
+fn milla_spawn_tick_thread() -> eyre::Result {
thread::spawn(|| -> Result<(), eyre::Error> {
let now = Instant::now();
let buffers = BUFFERS.get_or_init(Buffers::new);
- tick::tick(buffers)?;
+ let result = tick::tick(buffers);
TICK_TIME.store(
now.elapsed().as_millis() as usize,
std::sync::atomic::Ordering::Relaxed,
);
- call_global("milla_tick_finished", &[])?;
+ if result.is_ok() {
+ call_global("milla_tick_finished", &[])?;
+ } else {
+ let err = format!("MILLA tick error:\n----\n{:#?}\n----", result);
+ call_global("milla_tick_error", &[ByondValue::new_str(err)?])?;
+ }
+
Ok(())
});
- Ok(Default::default())
+ Ok(ByondValue::null())
}
/// BYOND API for asking how long the prior tick took.
#[byondapi::bind]
-fn milla_get_tick_time() {
+fn milla_get_tick_time() -> eyre::Result {
logging::setup_panic_handler();
Ok(ByondValue::from(
TICK_TIME.load(std::sync::atomic::Ordering::Relaxed) as f32,
@@ -492,6 +683,8 @@ mod tests {
None,
None,
Some(1.0),
+ None,
+ Some(1.0),
)
.unwrap();
@@ -507,6 +700,8 @@ mod tests {
}
assert_eq!(tile.thermal_energy, 0.0);
assert_eq!(tile.innate_heat_capacity, 1.0);
+ assert_eq!(tile.hotspot_temperature, 0.0);
+ assert_eq!(tile.hotspot_volume, 1.0);
}
// Set a different set of arbitrary data.
@@ -529,6 +724,8 @@ mod tests {
None,
Some(1.0),
None,
+ Some(1.0),
+ None,
)
.unwrap();
@@ -544,6 +741,8 @@ mod tests {
}
assert_eq!(tile.thermal_energy, 1.0);
assert_eq!(tile.innate_heat_capacity, 0.0);
+ assert_eq!(tile.hotspot_temperature, 1.0);
+ assert_eq!(tile.hotspot_volume, 0.0);
}
}
}
diff --git a/rust/src/milla/constants.rs b/rust/src/milla/constants.rs
index fa0e6e8569bb..d0f4d8b9160e 100644
--- a/rust/src/milla/constants.rs
+++ b/rust/src/milla/constants.rs
@@ -4,6 +4,12 @@ pub(crate) const MAX_Z_LEVELS: i32 = 14;
/// How big is the map? Assumed square.
pub(crate) const MAP_SIZE: usize = 255;
+/// One atmosphere, in kPa.
+pub(crate) const ONE_ATMOSPHERE: f32 = 101.325;
+
+/// The temperature of space, in Kelvin
+pub(crate) const TCMB: f32 = 2.725;
+
/// 0 degrees Celsius, in Kelvin
pub(crate) const T0C: f32 = 273.15;
@@ -19,17 +25,15 @@ pub(crate) const R_IDEAL_GAS_EQUATION: f32 = 8.31;
/// How big a tile is, in liters.
pub(crate) const TILE_VOLUME: f32 = 2500.0;
-/// How many moles are needed to make toxins visible.
-pub(crate) const TOXINS_VISIBILITY_MOLES: f32 = 0.5;
+/// How many moles of toxins are needed for a fire to exist. For reasons, this is also how hany
+/// moles are needed to be visible.
+pub(crate) const TOXINS_MIN_VISIBILITY_MOLES: f32 = 0.5;
/// How many moles are needed to make sleeping gas visible.
pub(crate) const SLEEPING_GAS_VISIBILITY_MOLES: f32 = 1.0;
-/// How many moles of each gas are needed before a reaction should happen.
-pub(crate) const REACTION_SIGNIFICANCE_MOLES: f32 = 0.5;
-
-/// How much of the tile a reaction's gas needs to occupy to happen.
-pub(crate) const REACTION_SIGNIFICANCE_RATIO: f32 = 0.01;
+/// How much stuff needs to react before we think hotspots and BYOND care.
+pub(crate) const REACTION_SIGNIFICANCE_MOLES: f32 = 0.1;
/// How hot does it need to be for Agent B to work?
pub(crate) const AGENT_B_CONVERSION_TEMP: f32 = 900.0;
@@ -58,12 +62,25 @@ pub(crate) const GAS_AGENT_B: usize = 5;
/// How many gases are there?
pub(crate) const GAS_COUNT: usize = GAS_AGENT_B + 1;
-/// The two axes, Y and X. The order is arbitrary, but will break the copy from active to inactive
-/// if changed.
-pub(crate) const AXES: [(i32, i32); 2] = [(0, 1), (1, 0)];
+/// The two axes, Y and X. The order is arbitrary, but may break things if changed.
+pub(crate) const AXES: [(i32, i32); 2] = [(1, 0), (0, 1)];
+
+/// The index of the X axis in AXES.
+pub(crate) const AXIS_X: usize = 0;
+/// The index of the Y axis in AXES.
+pub(crate) const AXIS_Y: usize = 1;
+
+/// The four directions: up, down, right, and left. The order is arbitrary, but may break things if changed.
+pub(crate) const DIRECTIONS: [(i32, i32); 4] = [(1, 0), (-1, 0), (0, -1), (0, 1)];
+
+/// Gives the axis for each direction.
+pub(crate) const DIRECTION_AXIS: [usize; 4] = [0, 0, 1, 1];
-/// The four cardinal directions. The order is arbitrary, and doesn't matter.
-pub(crate) const DIRECTIONS: [(i32, i32); 4] = [(0, 1), (1, 0), (0, -1), (-1, 0)];
+/// Index for incoming gas.
+pub(crate) const GAS_FLOW_IN: usize = 0;
+
+/// Index for outgoing gas.
+pub(crate) const GAS_FLOW_OUT: usize = 1;
// The numbers here are completely wrong for actual gases, but they're what LINDA used, so we'll
// keep them for now.
@@ -102,17 +119,17 @@ pub(crate) const PLASMA_BURN_MIN_TEMP: f32 = 100.0 + T0C;
/// How hot does it need to be for a plasma fire to work as well as possible?
pub(crate) const PLASMA_BURN_OPTIMAL_TEMP: f32 = 1370.0 + T0C;
-/// How much oxygen needs to be available per unit of plasma.
-pub(crate) const PLASMA_BURN_REQUIRED_OXYGEN_AVAILABILITY: f32 = 10.0;
-
/// How much of the plasma are we willing to burn each tick?
-pub(crate) const PLASMA_BURN_MAX_RATIO: f32 = 0.25;
+pub(crate) const PLASMA_BURN_MAX_RATIO: f32 = 0.05;
+
+/// How much of the plasma do we burn anyway if the ratio would make it really small?
+pub(crate) const PLASMA_BURN_MIN_MOLES: f32 = 0.001;
-/// How much oxygen do we use per plasma at min temp?
-pub(crate) const PLASMA_BURN_WORST_OXYGEN_PER_PLASMA: f32 = 1.4;
+/// How much of a boost to burn ratio do we give to hotspots?
+pub(crate) const PLASMA_BURN_HOTSPOT_RATIO_BOOST: f32 = 10.0;
-/// How much oxygen do we use per plasma at optimal temp?
-pub(crate) const PLASMA_BURN_BEST_OXYGEN_PER_PLASMA: f32 = 0.4;
+/// How much oxygen do we use per plasma?
+pub(crate) const PLASMA_BURN_OXYGEN_PER_PLASMA: f32 = 0.4;
/// How much thermal energy is produced, in joules per mole of agent b.
pub(crate) const AGENT_B_CONVERSION_ENERGY: f32 = 20_000.0;
@@ -123,12 +140,67 @@ pub(crate) const NITROUS_BREAKDOWN_ENERGY: f32 = 200_000.0;
/// How much thermal energy is produced, in joules per mole of sleeping toxins.
pub(crate) const PLASMA_BURN_ENERGY: f32 = 3_000_000.0;
-/// We allow small deviations in tests, so that floating point precision doesn't cause problems.
+/// We allow small deviations in tests as our spring chain solution is not exact.
#[cfg(test)]
-pub(crate) const TEST_TOLERANCE: f32 = 0.00001;
+pub(crate) const TEST_TOLERANCE: f32 = 0.1;
-/// Lose this multiple of heat energy per tick if above T20C.
-pub(crate) const SPACE_COOLING_FACTOR: f32 = 0.005;
+/// When space cooling starts, in Kelvin.
+pub(crate) const SPACE_COOLING_THRESHOLD: f32 = T20C;
+
+/// Lose this amount of heat energy per tick if above SPACE_COOLING_THRESHOLD.
+pub(crate) const SPACE_COOLING_FLAT: f32 = 2000.0;
+
+/// Lose this ratio of heat energy per tick if above SPACE_COOLING_THRESHOLD.
+pub(crate) const SPACE_COOLING_RATIO: f32 = 0.002;
/// Tiles with less than this much gas will become empty.
pub(crate) const MINIMUM_NONZERO_MOLES: f32 = 0.1;
+
+/// How many iterations of gas flow are we willing to run per tick?
+pub(crate) const MAX_ITERATIONS: usize = 100;
+
+/// When we stop caring about gas changes and end iteration, in moles on a single tile.
+pub(crate) const GAS_CHANGE_SIGNIFICANCE: f32 = 0.01;
+
+/// When we stop caring about gas changes and end iteration, roughly as a fraction of the gas.
+pub(crate) const GAS_CHANGE_SIGNIFICANCE_FRACTION: f32 = 0.001;
+
+/// When we stop caring about thermal energy changes and end iteration, in thermal energy on a
+/// single tile.
+pub(crate) const THERMAL_CHANGE_SIGNIFICANCE: f32 = 0.1;
+
+/// When we stop caring about thermal energy changes and end iteration, roughly as a fraction of
+/// the thermal energy.
+pub(crate) const THERMAL_CHANGE_SIGNIFICANCE_FRACTION: f32 = 0.001;
+
+/// Controls how strongly each type of gas moves towards an even spread, ignoring wind.
+/// [0.0, f32::INFINITY]
+pub(crate) const DIFFUSION_SPEED: f32 = 0.2;
+
+/// Controls how quickly the wind moves air.
+/// (0.0, f32::INFINITY]
+pub(crate) const WIND_STRENGTH: f32 = 8.0;
+
+/// Controls how fast the wind changes towards what the current pressur gradient wants.
+/// (0.0, 1.0], a value of 0.25 means getting 25% closer every tick.
+pub(crate) const WIND_ACCELERATION: f32 = 0.05;
+
+/// Controls how quickly the wind spreads from tile to tile.
+/// [0.0, f32::INFINITY]
+pub(crate) const WIND_SPEED: f32 = 0.5;
+
+/// A hard cap on how strong wind can become.
+/// [0.0, f32::INFINITY]
+pub(crate) const MAX_WIND: f32 = f32::INFINITY;
+
+/// How fast should temperature flow?
+/// [0.0, f32::INFINITY]
+pub(crate) const TEMPERATURE_FLOW_RATE: f32 = 0.2;
+
+/// Direct multiplier on strength of wind reported to BYOND.
+/// [0.0, f32::INFINITY]
+pub(crate) const BYOND_WIND_MULTIPLIER: f32 = 0.5;
+
+/// The smallest temperature allowed for the purpose of caluclating pressure.
+/// Prevents weirdness from absolute-zero gas having no pressure at all.
+pub(crate) const MINIMUM_TEMPERATURE_FOR_PRESSURE: f32 = 1.0;
diff --git a/rust/src/milla/model.rs b/rust/src/milla/model.rs
index 13044a6d879c..4b7ac10036eb 100644
--- a/rust/src/milla/model.rs
+++ b/rust/src/milla/model.rs
@@ -3,6 +3,8 @@ use atomic_float::AtomicF32;
use bitflags::bitflags;
use byondapi::map::{byond_locatexyz, ByondXYZ};
use byondapi::prelude::*;
+use std::collections::HashSet;
+use std::ops::Add;
use std::sync::{atomic::AtomicBool, atomic::Ordering::Relaxed, RwLock};
/// Represents a collection of gases, with amounts in moles.
@@ -69,7 +71,7 @@ impl GasSet {
pub(crate) fn set_dirty(&mut self) {
self.dirty.store(true, Relaxed);
}
- fn recalculate(&self) {
+ pub(crate) fn recalculate(&self) {
let mut moles = 0.0;
let mut heat_capacity = 0.0;
for i in 0..GAS_COUNT {
@@ -99,7 +101,7 @@ impl GasSet {
pub(crate) fn copy_from(&mut self, other: &GasSet) {
for i in 0..GAS_COUNT {
self.values[i] = other.values[i];
- let dirty = self.dirty.load(Relaxed);
+ let dirty = other.dirty.load(Relaxed);
if dirty {
self.dirty.store(true, Relaxed);
} else {
@@ -111,6 +113,17 @@ impl GasSet {
}
}
}
+ pub(crate) fn add_gases(&mut self, other: &Self) {
+ for i in 0..GAS_COUNT {
+ self.values[i] += other.values[i];
+ }
+ }
+ #[allow(dead_code)]
+ pub(crate) fn clear(&mut self) {
+ for i in 0..GAS_COUNT {
+ self.values[i] = 0.0;
+ }
+ }
}
impl Clone for GasSet {
@@ -121,6 +134,16 @@ impl Clone for GasSet {
}
}
+impl Add for GasSet {
+ type Output = Self;
+
+ fn add(self, other: Self) -> Self {
+ let mut result = self.clone();
+ result.add_gases(&other);
+ result
+ }
+}
+
/// Determines the general behavior of a tile.
#[derive(Debug, Copy, Clone, PartialEq)]
pub(crate) enum AtmosMode {
@@ -130,8 +153,8 @@ pub(crate) enum AtmosMode {
Sealed,
/// Tile is exposed to the given environment.
ExposedTo { environment_id: u8 },
- /// Prevents hot tiles from automatically decaying towards T20C
- NoDecay,
+ /// Prevents hot tiles from automatically decaying towards T20C
+ NoDecay,
}
impl From for ByondValue {
@@ -140,7 +163,7 @@ impl From for ByondValue {
AtmosMode::Space => ByondValue::from(0.0),
AtmosMode::Sealed => ByondValue::from(1.0),
AtmosMode::ExposedTo { .. } => ByondValue::from(2.0),
- AtmosMode::NoDecay => ByondValue::from(3.0),
+ AtmosMode::NoDecay => ByondValue::from(3.0),
}
}
}
@@ -198,6 +221,17 @@ pub(crate) struct Tile {
pub(crate) superconductivity: Superconductivity,
/// How much heat capacity the tile itself has, in joules per kelvin.
pub(crate) innate_heat_capacity: f32,
+ /// How hot the tile's hotspot is. A hotspot is a sub-tile reagion that's caught fire.
+ pub(crate) hotspot_temperature: f32,
+ /// How much of the tile the hotspot covers. 1.0 would be the entire tile.
+ pub(crate) hotspot_volume: f32,
+ /// How strongly the air in this tile is flowing towards +axis.
+ pub(crate) wind: [f32; AXES.len()],
+ /// Is there a wall in this direction?
+ pub(crate) wall: [bool; AXES.len()],
+ pub(crate) gas_flow: [[[f32; 2]; GAS_COUNT]; AXES.len()],
+ /// How much fuel was burnt this tick?
+ pub(crate) fuel_burnt: f32,
}
impl Tile {
@@ -209,6 +243,12 @@ impl Tile {
mode: AtmosMode::Space,
superconductivity: Superconductivity::new(),
innate_heat_capacity: 0.0,
+ hotspot_temperature: 0.0,
+ hotspot_volume: 0.0,
+ wind: [0.0, 0.0],
+ wall: [false, false],
+ gas_flow: [[[0.0; 2]; GAS_COUNT]; AXES.len()],
+ fuel_burnt: 0.0,
}
}
/// The total heat capacity of this tile and its gases, in joules per kelvin.
@@ -224,8 +264,7 @@ impl Tile {
self.thermal_energy / heat_capacity
}
}
- // Calculates the pressure of a tile.
- #[allow(clippy::needless_range_loop)]
+ /// Calculates the pressure of a tile.
pub(crate) fn pressure(&self) -> f32 {
if let AtmosMode::Space = self.mode {
return 0.0;
@@ -233,12 +272,27 @@ impl Tile {
let mut heat_capacity = self.gases.heat_capacity();
heat_capacity += self.innate_heat_capacity;
if heat_capacity <= 0.0 {
- 0.0
- } else {
- let temperature = self.thermal_energy / heat_capacity;
- self.gases.moles() * temperature * R_IDEAL_GAS_EQUATION / TILE_VOLUME
+ return 0.0;
+ }
+ let temperature = self.thermal_energy / heat_capacity;
+ self.gases.moles()
+ * temperature.max(MINIMUM_TEMPERATURE_FOR_PRESSURE)
+ * R_IDEAL_GAS_EQUATION
+ / TILE_VOLUME
+ }
+ /// Calculates the partial pressure of a gas in a tile.
+ pub(crate) fn partial_pressure(&self, gas: usize) -> f32 {
+ if self.gases.values[gas] <= 0.0 {
+ return 0.0;
}
+
+ self.gases.values[gas]
+ * self.temperature().max(MINIMUM_TEMPERATURE_FOR_PRESSURE)
+ * R_IDEAL_GAS_EQUATION
+ / TILE_VOLUME
}
+
+ #[allow(clippy::needless_range_loop)]
pub(crate) fn copy_from(&mut self, other: &Tile) {
self.airtight_directions = other.airtight_directions;
self.gases.copy_from(&other.gases);
@@ -246,6 +300,17 @@ impl Tile {
self.mode = other.mode;
self.superconductivity.copy_from(&other.superconductivity);
self.innate_heat_capacity = other.innate_heat_capacity;
+ self.hotspot_temperature = other.hotspot_temperature;
+ self.hotspot_volume = other.hotspot_volume;
+ for axis in 0..AXES.len() {
+ self.wind[axis] = other.wind[axis];
+ self.wall[axis] = other.wall[axis];
+ for gas in 0..GAS_COUNT {
+ self.gas_flow[axis][gas][GAS_FLOW_IN] = other.gas_flow[axis][gas][GAS_FLOW_IN];
+ self.gas_flow[axis][gas][GAS_FLOW_OUT] = other.gas_flow[axis][gas][GAS_FLOW_OUT];
+ }
+ }
+ self.fuel_burnt = other.fuel_burnt;
}
}
@@ -276,6 +341,11 @@ impl From<&Tile> for Vec {
ByondValue::from(value.superconductivity.west),
ByondValue::from(value.innate_heat_capacity),
ByondValue::from(value.temperature()),
+ ByondValue::from(value.hotspot_temperature),
+ ByondValue::from(value.hotspot_volume),
+ ByondValue::from(value.wind[AXIS_X]),
+ ByondValue::from(value.wind[AXIS_Y]),
+ ByondValue::from(value.fuel_burnt),
]
}
}
@@ -298,12 +368,12 @@ pub(crate) struct InterestingTile {
pub(crate) coords: ByondXYZ,
/// A bitmask of reasons this tile is interesting, values are REASON_*.
pub(crate) reasons: ReasonFlags,
- /// These represent the net force generated by air flowing out of the tile along each axis.
+ /// These represent the net force generated by air winding out of the tile along each axis.
/// For a tile losing air equally in all directions, they will be zero.
- /// For a tile losing air towards positive X only, flow_x will be the air pressure moved.
- pub(crate) flow_x: f32,
- /// See flow_x.
- pub(crate) flow_y: f32,
+ /// For a tile losing air towards positive X only, wind_x will be the air pressure moved.
+ pub(crate) wind_x: f32,
+ /// See wind_x.
+ pub(crate) wind_y: f32,
}
/// Convert an InterestingTile into a flat vector of ByondValues.
@@ -319,8 +389,8 @@ impl From<&InterestingTile> for Vec {
ret.extend(vec![
byond_locatexyz(value.coords).unwrap(),
ByondValue::from(value.reasons.bits() as f32),
- ByondValue::from(value.flow_x),
- ByondValue::from(value.flow_y),
+ ByondValue::from(value.wind_x),
+ ByondValue::from(value.wind_y),
]);
ret
@@ -328,7 +398,10 @@ impl From<&InterestingTile> for Vec {
}
/// A single Z level in the atmos model.
-pub(crate) struct ZLevel(Box<[Tile; MAP_SIZE * MAP_SIZE]>);
+pub(crate) struct ZLevel {
+ tiles: Box<[Tile; MAP_SIZE * MAP_SIZE]>,
+ pub(crate) active_pressure_chunks: HashSet<(u8, u8)>,
+}
impl ZLevel {
pub(crate) fn new() -> Self {
@@ -336,7 +409,10 @@ impl ZLevel {
for _ in 0..MAP_SIZE * MAP_SIZE {
unbuilt.push(Tile::new());
}
- ZLevel(unbuilt.into_boxed_slice().try_into().unwrap())
+ ZLevel {
+ tiles: unbuilt.into_boxed_slice().try_into().unwrap(),
+ active_pressure_chunks: HashSet::new(),
+ }
}
pub(crate) fn maybe_get_index(x: i32, y: i32) -> Option {
@@ -348,21 +424,22 @@ impl ZLevel {
}
pub(crate) fn get_tile(&self, index: usize) -> &Tile {
- &self.0[index]
+ &self.tiles[index]
}
+ #[allow(dead_code)]
pub(crate) fn maybe_get_tile(&self, x: i32, y: i32) -> Option<&Tile> {
- Some(&self.0[ZLevel::maybe_get_index(x, y)?])
+ Some(&self.tiles[ZLevel::maybe_get_index(x, y)?])
}
pub(crate) fn get_tile_mut(&mut self, index: usize) -> &mut Tile {
- &mut self.0[index]
+ &mut self.tiles[index]
}
pub(crate) fn get_pair_mut(&mut self, index1: usize, index2: usize) -> (&mut Tile, &mut Tile) {
// Split borrow to get two mutable tiles at the same time.
// Ref: https://doc.rust-lang.org/nomicon/borrow-splitting.html
- let ptr = self.0.as_mut_ptr();
+ let ptr = self.tiles.as_mut_ptr();
unsafe {
assert!(index1 != index2);
@@ -374,9 +451,10 @@ impl ZLevel {
}
pub(crate) fn copy_from(&mut self, other: &ZLevel) {
- for i in 0..self.0.len() {
- self.0[i].copy_from(&other.0[i]);
+ for i in 0..self.tiles.len() {
+ self.tiles[i].copy_from(&other.tiles[i]);
}
+ self.active_pressure_chunks = other.active_pressure_chunks.clone();
}
}
@@ -455,9 +533,11 @@ impl Buffers {
}
/// Create an environment for ExposedTo.
- pub(crate) fn create_environment(&self, tile: Tile) -> u8 {
+ pub(crate) fn create_environment(&self, mut tile: Tile) -> u8 {
let mut environments = self.environments.write().unwrap();
let id = environments.len() as u8;
+ tile.mode = AtmosMode::ExposedTo { environment_id: id };
+ tile.gases.recalculate();
environments.push(tile);
id
}
diff --git a/rust/src/milla/simulate.rs b/rust/src/milla/simulate.rs
index b663b77f7081..befff52558eb 100644
--- a/rust/src/milla/simulate.rs
+++ b/rust/src/milla/simulate.rs
@@ -3,158 +3,424 @@ use crate::milla::model::*;
use byondapi::map::ByondXYZ;
use eyre::eyre;
use scc::Bag;
+use std::collections::HashSet;
+
+pub(crate) fn find_walls(next: &mut ZLevel) {
+ for my_index in 0..MAP_SIZE * MAP_SIZE {
+ let x = (my_index / MAP_SIZE) as i32;
+ let y = (my_index % MAP_SIZE) as i32;
+
+ for (axis, (dx, dy)) in AXES.iter().enumerate() {
+ let their_index = match ZLevel::maybe_get_index(x + dx, y + dy) {
+ Some(index) => index,
+ None => {
+ // Edge of the map, acts like a wall.
+ let my_tile = next.get_tile_mut(my_index);
+ my_tile.wall[axis] = true;
+ continue;
+ }
+ };
-/// Calculates the pressure flow out from this tile to the two neighboring tiles on this axis.
-/// For a tile losing air equally in all directions, flow will be zero.
-/// For a tile losing air towards positive only, flow will be the air pressure moved.
-pub(crate) fn calculate_flow(
- maybe_negative_tile: Option<&Tile>,
- tile: &Tile,
- maybe_positive_tile: Option<&Tile>,
- is_x: bool,
-) -> f32 {
- let mut flow = 0.0;
- let my_pressure = tile.pressure();
- if let Some(negative_tile) = maybe_negative_tile {
- // Make sure air can pass this way.
- let mut permeable = true;
- if is_x {
- permeable = permeable
- && !negative_tile
+ let (my_tile, their_tile) = next.get_pair_mut(my_index, their_index);
+ if *dx > 0
+ && (my_tile
.airtight_directions
- .contains(AirtightDirections::EAST);
- permeable = permeable && !tile.airtight_directions.contains(AirtightDirections::WEST);
- } else {
- permeable = permeable
- && !negative_tile
+ .contains(AirtightDirections::EAST)
+ || their_tile
+ .airtight_directions
+ .contains(AirtightDirections::WEST))
+ {
+ // Something's blocking airflow.
+ my_tile.wall[axis] = true;
+ continue;
+ } else if *dy > 0
+ && (my_tile
.airtight_directions
- .contains(AirtightDirections::NORTH);
- permeable = permeable && !tile.airtight_directions.contains(AirtightDirections::SOUTH);
+ .contains(AirtightDirections::NORTH)
+ || their_tile
+ .airtight_directions
+ .contains(AirtightDirections::SOUTH))
+ {
+ // Something's blocking airflow.
+ my_tile.wall[axis] = true;
+ continue;
+ }
+ my_tile.wall[axis] = false;
}
- if permeable {
- let negative_pressure = negative_tile.pressure();
- if negative_pressure < my_pressure {
- // Causes flow in the negative direction.
- flow += negative_pressure - my_pressure;
+ }
+}
+
+/// Calculate the new wind at each boundary.
+pub(crate) fn update_wind(prev: &ZLevel, next: &mut ZLevel) {
+ for my_index in 0..MAP_SIZE * MAP_SIZE {
+ let x = (my_index / MAP_SIZE) as i32;
+ let y = (my_index % MAP_SIZE) as i32;
+ let my_tile = prev.get_tile(my_index);
+
+ for (axis, (dx, dy)) in AXES.iter().enumerate() {
+ let neighbor_index = match ZLevel::maybe_get_index(x + dx, y + dy) {
+ Some(index) => index,
+ None => continue,
+ };
+ let neighbor = prev.get_tile(neighbor_index);
+ let my_new_tile = next.get_tile_mut(my_index);
+
+ // No wind across walls.
+ if my_new_tile.wall[axis] {
+ my_new_tile.wind[axis] = 0.0;
+ for i in 0..GAS_COUNT {
+ my_new_tile.gas_flow[axis][i][GAS_FLOW_IN] = 0.0;
+ my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT] = 0.0;
+ }
+ continue;
+ }
+
+ // If there's no air, there's no wind.
+ if my_tile.pressure() + neighbor.pressure() <= 0.0 {
+ my_new_tile.wind[axis] = 0.0;
+ for i in 0..GAS_COUNT {
+ my_new_tile.gas_flow[axis][i][GAS_FLOW_IN] = 0.0;
+ my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT] = 0.0;
+ }
+ continue;
+ }
+
+ // How much pressure do these tiles have together?
+ let combined_pressure = my_tile.pressure() + neighbor.pressure();
+
+ // A bias from [-1.0, 1.0] representing how much air is flowing from the negative tile
+ // to the positive one, based purely on pressure.
+ let pressure_bias = 2.0 * (my_tile.pressure() / combined_pressure) - 1.0;
+
+ // New wind mixes the pressure bias with the old wind, and clamps it to reasonable
+ // bounds.
+ my_new_tile.wind[axis] = (my_tile.wind[axis]
+ + WIND_ACCELERATION * (pressure_bias * WIND_STRENGTH - my_tile.wind[axis]))
+ .clamp(-MAX_WIND, MAX_WIND);
+
+ for i in 0..GAS_COUNT {
+ my_new_tile.gas_flow[axis][i][GAS_FLOW_IN] = 0.0;
+ my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT] = 0.0;
+
+ // Calculate how much gas should flow based on pressure.
+ let combined_partial_pressure =
+ my_tile.partial_pressure(i) + neighbor.partial_pressure(i);
+ if combined_partial_pressure <= 0.0 {
+ // Gas? What gas?
+ continue;
+ }
+ let wind_gas_flow = (1.0 + WIND_SPEED).powf(my_new_tile.wind[axis].abs()) - 1.0;
+ if my_new_tile.wind[axis] > 0.0 {
+ my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT] += wind_gas_flow;
+ } else {
+ my_new_tile.gas_flow[axis][i][GAS_FLOW_IN] += wind_gas_flow;
+ }
+
+ // And how much gas should flow based on diffusion.
+ let diffusion_gas_flow = DIFFUSION_SPEED;
+ my_new_tile.gas_flow[axis][i][GAS_FLOW_IN] += diffusion_gas_flow;
+ my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT] += diffusion_gas_flow;
}
}
}
- if let Some(positive_tile) = maybe_positive_tile {
- // Make sure air can pass this way.
- let mut permeable = true;
- if is_x {
- permeable = permeable
- && !positive_tile
- .airtight_directions
- .contains(AirtightDirections::WEST);
- permeable = permeable && !tile.airtight_directions.contains(AirtightDirections::EAST);
- } else {
- permeable = permeable
- && !positive_tile
- .airtight_directions
- .contains(AirtightDirections::SOUTH);
- permeable = permeable && !tile.airtight_directions.contains(AirtightDirections::NORTH);
+}
+
+pub(crate) struct AirflowOutcome {
+ active_tiles: HashSet,
+ max_gas_delta: f32,
+ max_thermal_energy_delta: f32,
+}
+
+/// Let the air flow until it stabilizes for this tick or we run out of patience.
+pub(crate) fn flow_air(prev: &ZLevel, next: &mut ZLevel) -> Result {
+ let mut outcome = flow_air_once(prev, next, None)?;
+ for _iter in 1..MAX_ITERATIONS {
+ outcome = flow_air_once(prev, next, Some(outcome))?;
+
+ // Check for significant changes.
+ if outcome.max_gas_delta < GAS_CHANGE_SIGNIFICANCE
+ && outcome.max_thermal_energy_delta < THERMAL_CHANGE_SIGNIFICANCE
+ {
+ // We've stabilized.
+ return Ok(outcome);
}
- if permeable {
- let positive_pressure = positive_tile.pressure();
- if positive_pressure < my_pressure {
- // Causes flow in the positive direction.
- flow += my_pressure - positive_pressure;
- }
+ }
+
+ Ok(outcome)
+}
+
+/// Let the air flow at every active tile by one step.
+pub(crate) fn flow_air_once(
+ prev: &ZLevel,
+ next: &mut ZLevel,
+ maybe_old_outcome: Option,
+) -> Result {
+ let mut new_outcome = AirflowOutcome {
+ active_tiles: HashSet::new(),
+ max_gas_delta: 0.0,
+ max_thermal_energy_delta: 0.0,
+ };
+
+ if let Some(old_outcome) = maybe_old_outcome {
+ for my_index in &old_outcome.active_tiles {
+ flow_air_once_at_index(prev, next, *my_index, &mut new_outcome)?;
+ }
+ } else {
+ for my_index in 0..MAP_SIZE * MAP_SIZE {
+ flow_air_once_at_index(prev, next, my_index, &mut new_outcome)?;
}
}
- flow
+
+ Ok(new_outcome)
}
-/// Counts the number of adjacent tiles that can share atmos with this tile, i.e. have no blockers
-/// on either tile.
-#[allow(clippy::if_same_then_else)]
-pub(crate) fn count_connected_dirs(
- z_level: &ZLevel,
- index: usize,
- x: i32,
- y: i32,
-) -> Result {
- let mut connected_dirs = 0;
+pub(crate) fn flow_air_once_at_index(
+ prev: &ZLevel,
+ next: &mut ZLevel,
+ my_index: usize,
+ outcome: &mut AirflowOutcome,
+) -> Result<(), eyre::Error> {
+ let x = (my_index / MAP_SIZE) as i32;
+ let y = (my_index % MAP_SIZE) as i32;
+ let my_tile = prev.get_tile(my_index);
- let tile = z_level.get_tile(index);
- if let AtmosMode::Space = tile.mode {
- // Space can always accept as much air as you throw at it.
- return Ok(1);
+ // Skip tiles that can't change.
+ match my_tile.mode {
+ // Space is always empty.
+ AtmosMode::Space => return Ok(()),
+ // Tiles exposed to an environment always contain that environment.
+ AtmosMode::ExposedTo { .. } => return Ok(()),
+ _ => (),
}
- for (dx, dy) in DIRECTIONS {
- let maybe_other_index = ZLevel::maybe_get_index(x + dx, y + dy);
- let other_index;
- match maybe_other_index {
- Some(index) => other_index = index,
+
+ // Save the values from the prior iteration so we can check how much they changed.
+ let prev_iter = next.get_tile(my_index).clone();
+ {
+ // We're doing a modified Gauss-Seidel method, and while it's counter-intuitive, one of
+ // the necessary steps is to reset the current tile to its original values before
+ // processing this iteration.
+ // See https://en.wikipedia.org/wiki/Gauss%E2%80%93Seidel_method#Element-based_formula
+ let my_new_tile = next.get_tile_mut(my_index);
+ my_new_tile.gases.copy_from(&my_tile.gases);
+ my_new_tile.thermal_energy = my_tile.thermal_energy;
+ }
+ let mut outgoing_gas_mult: [f32; GAS_COUNT] = [0.0; GAS_COUNT];
+ let mut total_weighted_temperature = my_tile.temperature() * my_tile.heat_capacity();
+ let mut total_temperature_weights: f32 = my_tile.heat_capacity();
+ for (dir, (dx, dy)) in DIRECTIONS.iter().enumerate() {
+ let neighbor_index = match ZLevel::maybe_get_index(x + dx, y + dy) {
+ Some(value) => value,
None => continue,
+ };
+ let (my_new_tile, new_neighbor) = next.get_pair_mut(my_index, neighbor_index);
+
+ let axis = DIRECTION_AXIS[dir];
+
+ // Don't do anything across walls.
+ if dx + dy > 0 {
+ if my_new_tile.wall[axis] {
+ continue;
+ }
+ } else {
+ if new_neighbor.wall[axis] {
+ continue;
+ }
}
- let other_tile = z_level.get_tile(other_index);
- if dx > 0
- && !tile.airtight_directions.contains(AirtightDirections::EAST)
- && !other_tile
- .airtight_directions
- .contains(AirtightDirections::WEST)
- {
- connected_dirs += 1;
- } else if dy > 0
- && !tile.airtight_directions.contains(AirtightDirections::NORTH)
- && !other_tile
- .airtight_directions
- .contains(AirtightDirections::SOUTH)
+ // If there's no air, don't do anything.
+ let total_pressure = my_tile.pressure() + new_neighbor.pressure();
+ if total_pressure <= 0.0 {
+ continue;
+ }
+
+ for i in 0..GAS_COUNT {
+ // Normalise the gas flow direction.
+ let gas_flow_in;
+ let gas_flow_out;
+ if dx + dy > 0 {
+ gas_flow_in = my_new_tile.gas_flow[axis][i][GAS_FLOW_IN];
+ gas_flow_out = my_new_tile.gas_flow[axis][i][GAS_FLOW_OUT];
+ } else {
+ gas_flow_in = new_neighbor.gas_flow[axis][i][GAS_FLOW_OUT];
+ gas_flow_out = new_neighbor.gas_flow[axis][i][GAS_FLOW_IN];
+ }
+
+ // Once again, this may looks a bit odd, but it's the second step of Gauss-Seidel,
+ // summing together this tile's value from the last iteration with the incoming values
+ // from other tiles this tick.
+ my_new_tile.gases.values[i] += gas_flow_in * new_neighbor.gases.values[i];
+ let temperature_weight = gas_flow_in * new_neighbor.gases.values[i] * SPECIFIC_HEATS[i];
+
+ // Track the outgoing values as well.
+ outgoing_gas_mult[i] += gas_flow_out;
+
+ // Temperature is not Gauss-Seidel, though it looks similar. It's just a weighted
+ // average.
+ total_weighted_temperature +=
+ new_neighbor.temperature() * temperature_weight * TEMPERATURE_FLOW_RATE;
+ total_temperature_weights += temperature_weight * TEMPERATURE_FLOW_RATE;
+ }
+
+ my_new_tile.gases.set_dirty();
+ }
+
+ // And now we finish off Gauss-Seidel by dividing by the total outgoing weights, plus one
+ // to represent this tile.
+ let mut max_gas_delta: f32 = 0.0;
+ let my_new_tile = next.get_tile_mut(my_index);
+ for i in 0..GAS_COUNT {
+ my_new_tile.gases.values[i] /= 1.0 + outgoing_gas_mult[i];
+
+ if (prev_iter.gases.values[i] - my_new_tile.gases.values[i]).abs()
+ >= GAS_CHANGE_SIGNIFICANCE
{
- connected_dirs += 1;
- } else if dx < 0
- && !tile.airtight_directions.contains(AirtightDirections::WEST)
- && !other_tile
- .airtight_directions
- .contains(AirtightDirections::EAST)
+ let new_gas_delta = (2.0 * prev_iter.gases.values[i]
+ / (prev_iter.gases.values[i] + my_new_tile.gases.values[i])
+ - 1.0)
+ .abs();
+ max_gas_delta = max_gas_delta.max(new_gas_delta);
+ }
+ }
+ my_new_tile.gases.set_dirty();
+
+ my_new_tile.thermal_energy =
+ my_new_tile.heat_capacity() * total_weighted_temperature / total_temperature_weights;
+
+ let new_thermal_energy_delta;
+ if (prev_iter.thermal_energy - my_new_tile.thermal_energy).abs() >= THERMAL_CHANGE_SIGNIFICANCE
+ {
+ new_thermal_energy_delta = (2.0 * prev_iter.thermal_energy
+ / (prev_iter.thermal_energy + my_new_tile.thermal_energy)
+ - 1.0)
+ .abs();
+ } else {
+ new_thermal_energy_delta = 0.0
+ }
+
+ // outcome is the global version across all tiles.
+ outcome.max_gas_delta = outcome.max_gas_delta.max(max_gas_delta);
+ outcome.max_thermal_energy_delta = outcome
+ .max_thermal_energy_delta
+ .max(new_thermal_energy_delta);
+
+ // Check for significant changes.
+ if max_gas_delta < GAS_CHANGE_SIGNIFICANCE_FRACTION {
+ if new_thermal_energy_delta < THERMAL_CHANGE_SIGNIFICANCE_FRACTION {
+ return Ok(());
+ }
+ }
+
+ // If any change was significant, mark this tile and all neighbors as active.
+ outcome.active_tiles.insert(my_index);
+ for (dx, dy) in DIRECTIONS {
+ if let Some(neighbor_index) = ZLevel::maybe_get_index(x + dx, y + dy) {
+ outcome.active_tiles.insert(neighbor_index);
+ }
+ }
+
+ Ok(())
+}
+
+/// Applies effects that happen after the main airflow routine:
+/// * Tile modes
+/// * Superconductivity
+/// * Reactions
+/// * Hotspot cleanup
+/// * Sanitization
+/// * Looking for interesting tiles.
+pub(crate) fn post_process(
+ prev: &ZLevel,
+ next: &mut ZLevel,
+ environments: &Box<[Tile]>,
+ new_interesting_tiles: &Bag,
+ z: i32,
+) -> Result<(), eyre::Error> {
+ for my_index in 0..MAP_SIZE * MAP_SIZE {
+ let x = (my_index / MAP_SIZE) as i32;
+ let y = (my_index % MAP_SIZE) as i32;
+ let my_tile = prev.get_tile(my_index);
+
{
- connected_dirs += 1;
- } else if dy < 0
- && !tile.airtight_directions.contains(AirtightDirections::SOUTH)
- && !other_tile
- .airtight_directions
- .contains(AirtightDirections::NORTH)
+ let my_next_tile = next.get_tile_mut(my_index);
+ apply_tile_mode(my_next_tile, environments)?;
+ }
+
+ if let AtmosMode::Space = my_tile.mode {
+ // Space doesn't superconduct, has no reactions, doesn't need to be sanitized, and is never interesting. (Take that, astrophysicists and astronomers!)
+ continue;
+ }
+
+ for (dx, dy) in AXES {
+ let their_index = match ZLevel::maybe_get_index(x + dx, y + dy) {
+ Some(index) => index,
+ None => continue,
+ };
+
+ let (my_next_tile, their_next_tile) = next.get_pair_mut(my_index, their_index);
+
+ if their_next_tile.mode != AtmosMode::Space {
+ superconduct(my_next_tile, their_next_tile, dx > 0, false);
+ }
+ }
+
{
- connected_dirs += 1;
+ let my_next_tile = next.get_tile_mut(my_index);
+ // New tick, reset the fuel tracker.
+ my_next_tile.fuel_burnt = 0.0;
+
+ react(my_next_tile, false);
+ if my_next_tile.hotspot_volume > 0.0 {
+ react(my_next_tile, true);
+ }
+
+ // Sanitize the tile, to avoid negative/NaN/infinity spread.
+ sanitize(my_next_tile, my_tile);
}
- }
- Ok(connected_dirs)
+ check_interesting(x, y, z, next, my_tile, my_index, new_interesting_tiles)?;
+ }
+ Ok(())
}
-/// Sanitizes a tile to make sure it's not problematic.
-pub(crate) fn sanitize(my_inactive_tile: &mut Tile, my_tile: &Tile) -> bool {
+pub(crate) fn sanitize(my_next_tile: &mut Tile, my_tile: &Tile) -> bool {
let mut sanitized = false;
for i in 0..GAS_COUNT {
- if !my_inactive_tile.gases.values[i].is_finite() {
+ if !my_next_tile.gases.values[i].is_finite() {
// Reset back to the last value, in the hopes that it's safe.
- my_inactive_tile.gases.values[i] = my_tile.gases.values[i];
- my_inactive_tile.gases.set_dirty();
+ my_next_tile.gases.values[i] = my_tile.gases.values[i];
+ my_next_tile.gases.set_dirty();
sanitized = true;
- } else if my_inactive_tile.gases.values[i] < 0.0 {
+ } else if my_next_tile.gases.values[i] < 0.0 {
// Zero out anything that becomes negative.
- my_inactive_tile.gases.values[i] = 0.0;
- my_inactive_tile.gases.set_dirty();
+ my_next_tile.gases.values[i] = 0.0;
+ my_next_tile.gases.set_dirty();
sanitized = true;
}
}
- if !my_inactive_tile.thermal_energy.is_finite() {
+ if !my_next_tile.thermal_energy.is_finite() {
// Reset back to the last value, in the hopes that it's safe.
- my_inactive_tile.thermal_energy = my_tile.thermal_energy;
+ my_next_tile.thermal_energy = my_tile.thermal_energy;
sanitized = true;
- } else if my_inactive_tile.thermal_energy < 0.0 {
+ } else if my_next_tile.thermal_energy < 0.0 {
// Zero out anything that becomes negative.
- my_inactive_tile.thermal_energy = 0.0;
+ my_next_tile.thermal_energy = 0.0;
sanitized = true;
}
- if my_inactive_tile.gases.moles() < MINIMUM_NONZERO_MOLES {
+ if !my_next_tile.wind[0].is_finite() {
+ // Reset back to the last value, in the hopes that it's safe.
+ my_next_tile.wind[0] = my_tile.wind[0];
+ sanitized = true;
+ }
+ if !my_next_tile.wind[1].is_finite() {
+ // Reset back to the last value, in the hopes that it's safe.
+ my_next_tile.wind[1] = my_tile.wind[1];
+ sanitized = true;
+ }
+ if my_next_tile.gases.moles() < MINIMUM_NONZERO_MOLES {
for i in 0..GAS_COUNT {
- my_inactive_tile.gases.values[i] = 0.0;
+ my_next_tile.gases.values[i] = 0.0;
}
- my_inactive_tile.thermal_energy = 0.0;
+ my_next_tile.thermal_energy = 0.0;
// We don't count this as sanitized because it's expected.
}
@@ -167,274 +433,257 @@ pub(crate) fn check_interesting(
x: i32,
y: i32,
z: i32,
- active: &std::sync::RwLockReadGuard,
- environments: &Box<[Tile]>,
+ next: &mut ZLevel,
my_tile: &Tile,
- my_inactive_tile: &Tile,
- fuel_burnt: f32,
+ my_index: usize,
new_interesting_tiles: &Bag,
) -> Result<(), eyre::Error> {
let mut reasons: ReasonFlags = ReasonFlags::empty();
- if (my_inactive_tile.gases.toxins() >= TOXINS_VISIBILITY_MOLES)
- != (my_tile.gases.toxins() >= TOXINS_VISIBILITY_MOLES)
- {
- // Crossed the toxins visibility threshold.
- reasons |= ReasonFlags::DISPLAY;
- } else if (my_inactive_tile.gases.sleeping_agent() >= SLEEPING_GAS_VISIBILITY_MOLES)
- != (my_tile.gases.sleeping_agent() >= SLEEPING_GAS_VISIBILITY_MOLES)
{
- // Crossed the sleeping agent visibility threshold.
- reasons |= ReasonFlags::DISPLAY;
- }
- let temperature = my_inactive_tile.temperature();
- if temperature > PLASMA_BURN_MIN_TEMP {
- match my_inactive_tile.mode {
- // In environments we expect to be hot, we don't normally flag that as interesting.
- AtmosMode::ExposedTo { environment_id } => {
- if fuel_burnt > 0.0 {
- // Active fires are interesting, even if it's hot here normally.
+ let my_next_tile = next.get_tile_mut(my_index);
+ if (my_next_tile.fuel_burnt > REACTION_SIGNIFICANCE_MOLES)
+ != (my_tile.fuel_burnt > REACTION_SIGNIFICANCE_MOLES)
+ {
+ // Fire started or stopped.
+ reasons |= ReasonFlags::DISPLAY;
+ } else if (my_next_tile.gases.toxins() >= TOXINS_MIN_VISIBILITY_MOLES)
+ != (my_tile.gases.toxins() >= TOXINS_MIN_VISIBILITY_MOLES)
+ {
+ // Crossed the toxins visibility threshold.
+ reasons |= ReasonFlags::DISPLAY;
+ } else if (my_next_tile.gases.sleeping_agent() >= SLEEPING_GAS_VISIBILITY_MOLES)
+ != (my_tile.gases.sleeping_agent() >= SLEEPING_GAS_VISIBILITY_MOLES)
+ {
+ // Crossed the sleeping agent visibility threshold.
+ reasons |= ReasonFlags::DISPLAY;
+ }
+
+ if my_next_tile.temperature() > PLASMA_BURN_MIN_TEMP {
+ if let AtmosMode::ExposedTo { .. } = my_next_tile.mode {
+ // Since environments have fixed gases and temperatures, we only count them as
+ // interesting (for heat) if there's an active fire.
+ if my_next_tile.fuel_burnt > REACTION_SIGNIFICANCE_MOLES {
reasons |= ReasonFlags::HOT;
- } else {
- if environment_id as usize > environments.len() {
- return Err(eyre!("Invalid environment ID {}", environment_id));
- }
-
- let environment_temp = environments[environment_id as usize].temperature();
- if environment_temp + 1.0 >= temperature {
- // No active fire, not hotter than normal. Not interesting.
- } else {
- // Oh, hey, we're hotter than normal, and can start fires.
- // That's interesting.
- reasons |= ReasonFlags::HOT;
- }
}
+ } else {
+ // Anywhere else is interesting if it's hot enough to start a fire.
+ reasons |= ReasonFlags::HOT;
}
- // Anywhere else is interesting if it can start fires.
- _ => reasons |= ReasonFlags::HOT,
}
}
- let flow_x = calculate_flow(
- active.maybe_get_tile(x - 1, y),
- my_tile,
- active.maybe_get_tile(x + 1, y),
- true,
- );
- if flow_x.abs() > 1.0 {
- // Pressure flowing out of this tile along the X axis.
- reasons |= ReasonFlags::WIND;
+ let my_next_tile = next.get_tile(my_index);
+ let mut wind_x: f32 = 0.0;
+ if my_next_tile.wind[AXIS_X] > 0.0 {
+ wind_x += my_next_tile.wind[AXIS_X] * WIND_SPEED * BYOND_WIND_MULTIPLIER;
+ }
+ if let Some(index) = ZLevel::maybe_get_index(x - 1, y) {
+ let their_next_tile = next.get_tile(index);
+ if their_next_tile.wind[AXIS_X] < 0.0 {
+ // This is negative, but that's good, because we want it to fight against the wind
+ // towards +X.
+ wind_x += their_next_tile.wind[AXIS_X] * BYOND_WIND_MULTIPLIER;
+ }
+ }
+ wind_x *= my_next_tile.pressure();
+ let mut wind_y: f32 = 0.0;
+ if my_next_tile.wind[AXIS_Y] > 0.0 {
+ wind_y += my_next_tile.wind[AXIS_Y] * BYOND_WIND_MULTIPLIER;
+ }
+ if let Some(index) = ZLevel::maybe_get_index(x, y - 1) {
+ let their_next_tile = next.get_tile(index);
+ if their_next_tile.wind[AXIS_Y] < 0.0 {
+ // This is negative, but that's good, because we want it to fight against the wind
+ // towards +Y.
+ wind_y += their_next_tile.wind[AXIS_Y] * BYOND_WIND_MULTIPLIER;
+ }
}
- let flow_y = calculate_flow(
- active.maybe_get_tile(x, y - 1),
- my_tile,
- active.maybe_get_tile(x, y + 1),
- false,
- );
- if flow_x.powi(2) + flow_y.powi(2) > 1.0 {
- // Pressure flowing out of this tile along the Y axis.
+ wind_y *= my_next_tile.pressure();
+ if wind_x.powi(2) + wind_y.powi(2) > 1.0 {
+ // Pressure flowing out of this tile might move stuff.
reasons |= ReasonFlags::WIND;
}
if !reasons.is_empty() {
- // Boooooring.
-
// :eyes:
new_interesting_tiles.push(InterestingTile {
- tile: my_inactive_tile.clone(),
+ tile: my_next_tile.clone(),
// +1 here to convert from our 0-indexing to BYOND's 1-indexing.
coords: ByondXYZ::with_coords((x as i16 + 1, y as i16 + 1, z as i16 + 1)),
reasons,
- flow_x,
- flow_y,
+ wind_x,
+ wind_y,
});
}
Ok(())
}
-/// Is the amount of gas present significant?
-pub(crate) fn is_significant(tile: &Tile, gas: usize) -> bool {
- if tile.gases.values[gas] < REACTION_SIGNIFICANCE_MOLES {
- return false;
- }
- if gas != GAS_AGENT_B
- && tile.gases.values[gas] / tile.gases.moles() < REACTION_SIGNIFICANCE_RATIO
- {
- return false;
+/// Perform chemical reactions on the tile.
+pub(crate) fn react(my_next_tile: &mut Tile, hotspot_step: bool) {
+ let fraction: f32;
+ let hotspot_boost: f32;
+ let mut cached_heat_capacity: f32;
+ let mut cached_temperature: f32;
+ let mut thermal_energy: f32;
+ if hotspot_step {
+ fraction = my_next_tile.hotspot_volume;
+ hotspot_boost = PLASMA_BURN_HOTSPOT_RATIO_BOOST;
+ cached_heat_capacity = fraction * my_next_tile.heat_capacity();
+ cached_temperature = my_next_tile.hotspot_temperature;
+ thermal_energy = cached_temperature * cached_heat_capacity;
+ } else {
+ fraction = 1.0 - my_next_tile.hotspot_volume;
+ hotspot_boost = 1.0;
+ cached_heat_capacity = fraction * my_next_tile.heat_capacity();
+ thermal_energy = fraction * my_next_tile.thermal_energy;
+ cached_temperature = thermal_energy / cached_heat_capacity;
}
- return true;
-}
+ let initial_thermal_energy = thermal_energy;
-/// Perform chemical reactions on the tile.
-pub(crate) fn react(my_inactive_tile: &mut Tile) -> f32 {
- let mut fuel_burnt: f32 = 0.0;
- // Handle reactions
- let mut my_inactive_temperature = my_inactive_tile.temperature();
// Agent B converting CO2 to O2
- if my_inactive_temperature > AGENT_B_CONVERSION_TEMP
- && is_significant(my_inactive_tile, GAS_AGENT_B)
- && is_significant(my_inactive_tile, GAS_CARBON_DIOXIDE)
- && is_significant(my_inactive_tile, GAS_TOXINS)
+ if cached_temperature > AGENT_B_CONVERSION_TEMP
+ && my_next_tile.gases.agent_b() > 0.0
+ && my_next_tile.gases.carbon_dioxide() > 0.0
+ && my_next_tile.gases.toxins() > 0.0
{
- let co2_converted = (my_inactive_tile.gases.carbon_dioxide() * 0.75)
- .min(my_inactive_tile.gases.toxins() * 0.25)
- .min(my_inactive_tile.gases.agent_b() * 0.05);
+ let co2_converted = fraction
+ * (my_next_tile.gases.carbon_dioxide() * 0.75)
+ .min(my_next_tile.gases.toxins() * 0.25)
+ .min(my_next_tile.gases.agent_b() * 0.05);
- my_inactive_tile
+ my_next_tile
.gases
- .set_carbon_dioxide(my_inactive_tile.gases.carbon_dioxide() - co2_converted);
- my_inactive_tile
+ .set_carbon_dioxide(my_next_tile.gases.carbon_dioxide() - co2_converted);
+ my_next_tile
.gases
- .set_oxygen(my_inactive_tile.gases.oxygen() + co2_converted);
- my_inactive_tile
+ .set_oxygen(my_next_tile.gases.oxygen() + co2_converted);
+ my_next_tile
.gases
- .set_agent_b(my_inactive_tile.gases.agent_b() - co2_converted * 0.05);
- // Recalculate existing thermal energy to account for the decrease in heat capacity
- // caused by turning very high capacity toxins into much lower capacity carbon
- // dioxide.
- my_inactive_tile.thermal_energy =
- my_inactive_temperature * my_inactive_tile.heat_capacity();
+ .set_agent_b(my_next_tile.gases.agent_b() - co2_converted * 0.05);
+ // Recalculate existing thermal energy to account for the change in heat capacity.
+ cached_heat_capacity = fraction * my_next_tile.heat_capacity();
+ thermal_energy = cached_temperature * cached_heat_capacity;
// THEN we can add in the new thermal energy.
- my_inactive_tile.thermal_energy += co2_converted * AGENT_B_CONVERSION_ENERGY;
+ thermal_energy += AGENT_B_CONVERSION_ENERGY * co2_converted;
// Recalculate temperature for any subsequent reactions.
- my_inactive_temperature = my_inactive_tile.temperature();
- fuel_burnt += co2_converted;
+ cached_temperature = thermal_energy / cached_heat_capacity;
+ my_next_tile.fuel_burnt += co2_converted;
}
// Nitrous Oxide breaking down into nitrogen and oxygen.
- if my_inactive_temperature > SLEEPING_GAS_BREAKDOWN_TEMP
- && is_significant(my_inactive_tile, GAS_SLEEPING_AGENT)
+ if cached_temperature > SLEEPING_GAS_BREAKDOWN_TEMP && my_next_tile.gases.sleeping_agent() > 0.0
{
let reaction_percent = (0.00002
- * (my_inactive_temperature - (0.00001 * (my_inactive_temperature.powi(2)))))
+ * (cached_temperature - (0.00001 * (cached_temperature.powi(2)))))
.max(0.0)
.min(1.0);
- let nitrous_decomposed = reaction_percent * my_inactive_tile.gases.sleeping_agent();
+ let nitrous_decomposed = reaction_percent * fraction * my_next_tile.gases.sleeping_agent();
- my_inactive_tile
+ my_next_tile
.gases
- .set_sleeping_agent(my_inactive_tile.gases.sleeping_agent() - nitrous_decomposed);
- my_inactive_tile
+ .set_sleeping_agent(my_next_tile.gases.sleeping_agent() - nitrous_decomposed);
+ my_next_tile
.gases
- .set_nitrogen(my_inactive_tile.gases.nitrogen() + nitrous_decomposed);
- my_inactive_tile
+ .set_nitrogen(my_next_tile.gases.nitrogen() + nitrous_decomposed);
+ my_next_tile
.gases
- .set_oxygen(my_inactive_tile.gases.oxygen() + nitrous_decomposed / 2.0);
- // Recalculate existing thermal energy to account for the decrease in heat capacity
- // caused by turning very high capacity toxins into much lower capacity carbon
- // dioxide.
- my_inactive_tile.thermal_energy =
- my_inactive_temperature * my_inactive_tile.heat_capacity();
+ .set_oxygen(my_next_tile.gases.oxygen() + nitrous_decomposed / 2.0);
+
+ // Recalculate existing thermal energy to account for the change in heat capacity.
+ cached_heat_capacity = fraction * my_next_tile.heat_capacity();
+ thermal_energy = cached_temperature * cached_heat_capacity;
// THEN we can add in the new thermal energy.
- my_inactive_tile.thermal_energy += NITROUS_BREAKDOWN_ENERGY * nitrous_decomposed;
+ thermal_energy += NITROUS_BREAKDOWN_ENERGY * nitrous_decomposed;
// Recalculate temperature for any subsequent reactions.
- my_inactive_temperature = my_inactive_tile.temperature();
- fuel_burnt += nitrous_decomposed;
+ cached_temperature = thermal_energy / cached_heat_capacity;
+
+ my_next_tile.fuel_burnt += nitrous_decomposed;
}
// Plasmafire!
- if my_inactive_temperature > PLASMA_BURN_MIN_TEMP
- && is_significant(my_inactive_tile, GAS_TOXINS)
- && is_significant(my_inactive_tile, GAS_OXYGEN)
+ if cached_temperature > PLASMA_BURN_MIN_TEMP
+ && my_next_tile.gases.toxins() > 0.0
+ && my_next_tile.gases.oxygen() > 0.0
{
// How efficient is the burn?
// Linear scaling fom 0 to 1 as temperatue goes from minimum to optimal.
- let efficiency = ((my_inactive_temperature - PLASMA_BURN_MIN_TEMP)
+ let efficiency = ((cached_temperature - PLASMA_BURN_MIN_TEMP)
/ (PLASMA_BURN_OPTIMAL_TEMP - PLASMA_BURN_MIN_TEMP))
.max(0.0)
.min(1.0);
- // How much oxygen do we consume per plasma burnt?
- // Linear scaling from worst to best as efficiency goes from 0 to 1.
- let oxygen_per_plasma = PLASMA_BURN_WORST_OXYGEN_PER_PLASMA
- + (PLASMA_BURN_BEST_OXYGEN_PER_PLASMA - PLASMA_BURN_WORST_OXYGEN_PER_PLASMA)
- * efficiency;
-
// How much plasma is available to burn?
- // Capped by oxygen availability. Significantly more oxygen is required than is
- // consumed. This means that if there is enough oxygen to burn all the plasma, the
- // oxygen-to-plasm ratio will increase while burning.
- let burnable_plasma = my_inactive_tile
- .gases
- .toxins()
- .min(my_inactive_tile.gases.oxygen() / PLASMA_BURN_REQUIRED_OXYGEN_AVAILABILITY);
+ let burnable_plasma = fraction * my_next_tile.gases.toxins();
// Actual burn amount.
- let plasma_burnt = efficiency * PLASMA_BURN_MAX_RATIO * burnable_plasma;
+ let mut plasma_burnt = efficiency * PLASMA_BURN_MAX_RATIO * hotspot_boost * burnable_plasma;
+ if plasma_burnt < PLASMA_BURN_MIN_MOLES {
+ // Boost up to the minimum.
+ plasma_burnt = PLASMA_BURN_MIN_MOLES.min(burnable_plasma);
+ }
+ if plasma_burnt * PLASMA_BURN_OXYGEN_PER_PLASMA > fraction * my_next_tile.gases.oxygen() {
+ // Restrict based on available oxygen.
+ plasma_burnt = fraction * my_next_tile.gases.oxygen() / PLASMA_BURN_OXYGEN_PER_PLASMA;
+ }
- my_inactive_tile
+ my_next_tile
.gases
- .set_toxins(my_inactive_tile.gases.toxins() - plasma_burnt);
- my_inactive_tile
+ .set_toxins(my_next_tile.gases.toxins() - plasma_burnt);
+ my_next_tile
.gases
- .set_carbon_dioxide(my_inactive_tile.gases.carbon_dioxide() + plasma_burnt);
- my_inactive_tile
+ .set_carbon_dioxide(my_next_tile.gases.carbon_dioxide() + plasma_burnt);
+ my_next_tile
.gases
- .set_oxygen(my_inactive_tile.gases.oxygen() - plasma_burnt * oxygen_per_plasma);
- // Recalculate existing thermal energy to account for the decrease in heat capacity
- // caused by turning very high capacity toxins into much lower capacity carbon
- // dioxide.
- my_inactive_tile.thermal_energy =
- my_inactive_temperature * my_inactive_tile.heat_capacity();
+ .set_oxygen(my_next_tile.gases.oxygen() - plasma_burnt * PLASMA_BURN_OXYGEN_PER_PLASMA);
+
+ // Recalculate existing thermal energy to account for the change in heat capacity.
+ cached_heat_capacity = fraction * my_next_tile.heat_capacity();
+ thermal_energy = cached_temperature * cached_heat_capacity;
// THEN we can add in the new thermal energy.
- my_inactive_tile.thermal_energy += PLASMA_BURN_ENERGY * plasma_burnt;
- fuel_burnt += plasma_burnt;
+ thermal_energy += PLASMA_BURN_ENERGY * plasma_burnt;
+ // Recalculate temperature for any subsequent reactions.
+ // (or we would, but this is the last reaction)
+ //cached_temperature = thermal_energy / cached_heat_capacity;
+
+ my_next_tile.fuel_burnt += plasma_burnt;
}
- fuel_burnt
+ if hotspot_step {
+ adjust_hotspot(my_next_tile, thermal_energy - initial_thermal_energy);
+ } else {
+ my_next_tile.thermal_energy += thermal_energy - initial_thermal_energy;
+ }
}
/// Apply effects caused by the tile's atmos mode.
pub(crate) fn apply_tile_mode(
- my_tile: &Tile,
- my_inactive_tile: &mut Tile,
+ my_next_tile: &mut Tile,
environments: &Box<[Tile]>,
) -> Result<(), eyre::Error> {
- match my_tile.mode {
+ match my_next_tile.mode {
AtmosMode::Space => {
// Space tiles lose all gas and thermal energy every tick.
for gas in 0..GAS_COUNT {
- my_inactive_tile.gases.values[gas] = 0.0;
+ my_next_tile.gases.values[gas] = 0.0;
}
- my_inactive_tile.gases.set_dirty();
- my_inactive_tile.thermal_energy = 0.0;
+ my_next_tile.gases.set_dirty();
+ my_next_tile.thermal_energy = 0.0;
}
AtmosMode::ExposedTo { environment_id } => {
+ // Exposed tiles reset back to the same state every tick.
if environment_id as usize > environments.len() {
return Err(eyre!("Invalid environment ID {}", environment_id));
}
- let mut environment = environments[environment_id as usize].clone();
-
- // Calculate the amount of air and thermal energy transferred.
- let (gas_change, thermal_energy_change) = share_air(
- // Planetary atmos is aggressive and does a 1-connected-direction share
- // with the otherwise-final air.
- my_inactive_tile,
- &environment,
- 1,
- 1,
- );
-
- // Transfer it.
- for i in 0..GAS_COUNT {
- if gas_change.values[i] != 0.0 {
- my_inactive_tile.gases.values[i] += gas_change.values[i];
- my_inactive_tile.gases.set_dirty();
- }
- }
- my_inactive_tile.thermal_energy += thermal_energy_change;
-
- // Temporarily override the tile's superconductivity, since there's no UP.
- let real_superconductivity = my_inactive_tile.superconductivity;
- my_inactive_tile.superconductivity = Superconductivity::new();
-
- // Superconduct with planetary atmos.
- superconduct(my_inactive_tile, &mut environment, true);
-
- // Restore original superconductivity
- my_inactive_tile.superconductivity = real_superconductivity;
+ let environment = &environments[environment_id as usize];
+ my_next_tile.gases.copy_from(&environment.gases);
+ my_next_tile.thermal_energy = environment.thermal_energy;
}
AtmosMode::Sealed => {
- if my_inactive_tile.temperature() > T20C {
- my_inactive_tile.thermal_energy *= 1.0 - SPACE_COOLING_FACTOR;
+ if my_next_tile.temperature() > SPACE_COOLING_THRESHOLD {
+ let excess_thermal_energy = my_next_tile.thermal_energy
+ - SPACE_COOLING_THRESHOLD * my_next_tile.heat_capacity();
+ let cooling = (SPACE_COOLING_FLAT + SPACE_COOLING_RATIO * excess_thermal_energy)
+ .min(excess_thermal_energy);
+ my_next_tile.thermal_energy -= cooling;
}
}
AtmosMode::NoDecay => {} // No special interactions
@@ -442,54 +691,27 @@ pub(crate) fn apply_tile_mode(
Ok(())
}
-/// Shares air between two connected tiles.
-#[allow(clippy::needless_range_loop)]
-pub(crate) fn share_air(
- mine: &Tile,
- theirs: &Tile,
- my_connected_dirs: i32,
- their_connected_dirs: i32,
-) -> (GasSet, f32) {
- let mut delta_gases = GasSet::new();
- let mut delta_thermal_energy: f32 = 0.0;
-
- // Since we're moving bits of gas independantly, we need to know the temperature of the gas
- // mix.
- let my_old_temperature = mine.temperature();
- let their_old_temperature = theirs.temperature();
-
- // Each gas is handled separately. This is dumb, but it's how LINDA did it, so it's used in V1.
- for gas in 0..GAS_COUNT {
- delta_gases.values[gas] = theirs.gases.values[gas] - mine.gases.values[gas];
- if delta_gases.values[gas] > 0.0 {
- // Gas flowing in from the other tile, limit by its connected_dirs.
- delta_gases.values[gas] /= (their_connected_dirs + 1) as f32;
- // Heat flowing in.
- delta_thermal_energy +=
- SPECIFIC_HEATS[gas] * delta_gases.values[gas] * their_old_temperature;
- } else {
- // Gas flowing out from this tile, limit by our connected_dirs.
- delta_gases.values[gas] /= (my_connected_dirs + 1) as f32;
- // Heat flowing out.
- delta_thermal_energy +=
- SPECIFIC_HEATS[gas] * delta_gases.values[gas] * my_old_temperature;
- }
- }
-
- (delta_gases, delta_thermal_energy)
-}
-
-/// Performs superconduction between two superconductivity-connected tiles.
-pub(crate) fn superconduct(my_tile: &mut Tile, their_tile: &mut Tile, is_east: bool) {
+// Performs superconduction between two superconductivity-connected tiles.
+pub(crate) fn superconduct(my_tile: &mut Tile, their_tile: &mut Tile, is_east: bool, force: bool) {
// Superconduction is scaled to the smaller directional superconductivity setting of the two
// tiles.
let mut transfer_coefficient: f32;
- if is_east {
+ if force {
+ transfer_coefficient = OPEN_HEAT_TRANSFER_COEFFICIENT;
+ } else if is_east {
+ if !my_tile.wall[AXIS_X] {
+ // Atmos flows freely here, no need to superconduct.
+ return;
+ }
transfer_coefficient = my_tile
.superconductivity
.east
.min(their_tile.superconductivity.west);
} else {
+ if !my_tile.wall[AXIS_Y] {
+ // Atmos flows freely here, no need to superconduct.
+ return;
+ }
transfer_coefficient = my_tile
.superconductivity
.north
@@ -509,107 +731,128 @@ pub(crate) fn superconduct(my_tile: &mut Tile, their_tile: &mut Tile, is_east: b
}
// This is the formula from LINDA. I have no idea if it's a good one, I just copied it.
+ // Positive means heat flow from us to them.
+ // Negative means heat flow from them to us.
let conduction = transfer_coefficient
* (my_tile.temperature() - their_tile.temperature())
* my_heat_capacity
* their_heat_capacity
/ (my_heat_capacity + their_heat_capacity);
- my_tile.thermal_energy -= conduction;
- their_tile.thermal_energy += conduction;
+
+ // Half of the conduction always goes to the overall heat of the tile
+ my_tile.thermal_energy -= conduction / 2.0;
+ their_tile.thermal_energy += conduction / 2.0;
+
+ // The other half can spawn or expand hotspots.
+ if conduction > 0.0
+ && my_tile.temperature() > PLASMA_BURN_OPTIMAL_TEMP
+ && their_tile.temperature() < PLASMA_BURN_OPTIMAL_TEMP
+ {
+ // Positive: Spawn or expand their hotspot.
+ adjust_hotspot(their_tile, conduction / 2.0);
+ my_tile.thermal_energy -= conduction / 2.0;
+ } else if conduction < 0.0
+ && my_tile.temperature() < PLASMA_BURN_OPTIMAL_TEMP
+ && their_tile.temperature() > PLASMA_BURN_OPTIMAL_TEMP
+ {
+ // Negative: Spawn or expand my hotspot.
+ adjust_hotspot(my_tile, -conduction / 2.0);
+ their_tile.thermal_energy += conduction / 2.0;
+ } else {
+ // No need for hotspot adjustment.
+ my_tile.thermal_energy -= conduction / 2.0;
+ their_tile.thermal_energy += conduction / 2.0;
+ }
}
-// Yay, tests!
-#[cfg(test)]
-mod tests {
- use super::*;
- // share_air() should do nothing to two space tiles.
- #[test]
- fn share_nothing() {
- let tile_a = Tile::new();
- let tile_b = Tile::new();
+pub(crate) fn normalise_hotspot(tile: &mut Tile) {
+ if tile.hotspot_volume <= 0.0 || tile.hotspot_temperature <= tile.temperature() {
+ // Unnecesary hotspot.
+ tile.hotspot_temperature = 0.0;
+ tile.hotspot_volume = 0.0;
+ return;
+ }
- let (gas_change, thermal_energy_change) = share_air(&tile_a, &tile_b, 1, 1);
- for i in 0..GAS_COUNT {
- assert_eq!(gas_change.values[i], 0.0, "{}", i);
- }
- assert_eq!(thermal_energy_change, 0.0);
- }
-
- // share_air() should do nothing to two matching tiles.
- #[test]
- fn share_equilibrium() {
- let mut tile_a = Tile::new();
- tile_a.gases.set_oxygen(80.0);
- tile_a.gases.set_nitrogen(20.0);
- tile_a.thermal_energy = 100.0;
- let mut tile_b = Tile::new();
- tile_b.gases.set_oxygen(80.0);
- tile_b.gases.set_nitrogen(20.0);
- tile_b.thermal_energy = 100.0;
-
- let (gas_change, thermal_energy_change) = share_air(&tile_a, &tile_b, 1, 1);
- for i in 0..GAS_COUNT {
- assert_eq!(gas_change.values[i], 0.0, "{}", i);
- }
- assert_eq!(thermal_energy_change, 0.0);
+ if tile.hotspot_volume >= 1.0 {
+ // Hotspot has expanded to fill the tile.
+ tile.thermal_energy = tile.hotspot_temperature * tile.heat_capacity();
+ tile.hotspot_temperature = 0.0;
+ tile.hotspot_volume = 0.0;
+ return;
}
- // share_air() should split air into 2 equal parts with connected_dirs of 1.
- #[test]
- fn share_splits_air_cd1() {
- let mut tile_a = Tile::new();
- tile_a.gases.set_oxygen(100.0);
- tile_a.thermal_energy = 100.0;
- let tile_b = Tile::new();
+ let optimal_thermal_energy = PLASMA_BURN_OPTIMAL_TEMP * tile.heat_capacity();
+ let hotspot_extra_thermal_energy = tile.hotspot_volume
+ * (tile.hotspot_temperature - tile.temperature())
+ * tile.heat_capacity();
+ if tile.thermal_energy + hotspot_extra_thermal_energy >= optimal_thermal_energy {
+ // Hotspot has done its job, dump the remaining heat into the tile.
+ tile.thermal_energy += hotspot_extra_thermal_energy;
+ tile.hotspot_temperature = 0.0;
+ tile.hotspot_volume = 0.0;
+ return;
+ }
- let (gas_change, thermal_energy_change) = share_air(&tile_a, &tile_b, 1, 1);
- for i in 0..GAS_COUNT {
- if i == GAS_OXYGEN {
- assert_eq!(gas_change.values[i], -50.0);
- } else {
- assert_eq!(gas_change.values[i], 0.0, "{}", i);
- }
- }
- assert_eq!(thermal_energy_change, -50.0);
+ let hotspot_thermal_energy =
+ tile.hotspot_volume * tile.hotspot_temperature * tile.heat_capacity();
+ if tile.hotspot_temperature > PLASMA_BURN_OPTIMAL_TEMP {
+ // Use excess heat to expand the hotspot.
+ tile.hotspot_volume = hotspot_thermal_energy / optimal_thermal_energy;
+ tile.hotspot_temperature = PLASMA_BURN_OPTIMAL_TEMP;
+ return;
}
- // share_air() should split air into 5 equal parts with connected_dirs of 4.
- #[test]
- fn share_splits_air_cd4() {
- let mut tile_a = Tile::new();
- tile_a.gases.set_oxygen(100.0);
- tile_a.thermal_energy = 100.0;
- let tile_b = Tile::new();
+ if tile.hotspot_temperature < PLASMA_BURN_MIN_TEMP
+ || tile.gases.toxins() <= REACTION_SIGNIFICANCE_MOLES
+ || tile.gases.oxygen() <= REACTION_SIGNIFICANCE_MOLES
+ {
+ // Hotspot can't sustain combustion.
+ tile.thermal_energy += hotspot_extra_thermal_energy;
+ tile.hotspot_temperature = 0.0;
+ tile.hotspot_volume = 0.0;
+ return;
+ }
+}
- let (gas_change, thermal_energy_change) = share_air(&tile_a, &tile_b, 4, 4);
- for i in 0..GAS_COUNT {
- if i == GAS_OXYGEN {
- assert_eq!(gas_change.values[i], -20.0);
- } else {
- assert_eq!(gas_change.values[i], 0.0, "{}", i);
- }
+// Adjusts the hotspot based on the given thermal energy delta.
+// For positive values, the energy will first be used to reach PLASMA_BURN_OPTIMAL_TEMP, then
+// to expand volume up to 1 (filled), and finally dumped into the tile's thermal energy.
+// For negative values, only the hotspot's volume is affected.
+pub(crate) fn adjust_hotspot(tile: &mut Tile, thermal_energy_delta: f32) {
+ if thermal_energy_delta < 0.0 {
+ if tile.hotspot_volume <= 0.0 {
+ // No hotspot to sap heat from.
+ return;
}
- assert_eq!(thermal_energy_change, -20.0);
+ // Shrink volume accordingly.
+ // How much heat do we need to fill the whole tile?
+ let total_heat_needed = tile.heat_capacity() * tile.hotspot_temperature;
+ // How much heat do we have now?
+ let heat_available = tile.heat_capacity() * tile.hotspot_temperature * tile.hotspot_volume
+ + thermal_energy_delta;
+ // We fill that portion of the tile.
+ tile.hotspot_volume = (heat_available / total_heat_needed).max(0.0);
+ } else if tile.hotspot_volume > 0.0 {
+ // Heat up the hotspot; it'll expand when normalised.
+ tile.hotspot_temperature +=
+ thermal_energy_delta / (tile.heat_capacity() * tile.hotspot_volume);
+ } else if tile.temperature() > PLASMA_BURN_OPTIMAL_TEMP {
+ // No need to make a hotspot, just heat the tile.
+ tile.thermal_energy += thermal_energy_delta;
+ } else {
+ // Create an optimal hotspot with the available energy.
+ let optimal_thermal_energy = PLASMA_BURN_OPTIMAL_TEMP * tile.heat_capacity();
+ tile.hotspot_temperature = PLASMA_BURN_OPTIMAL_TEMP;
+ tile.hotspot_volume = thermal_energy_delta / (optimal_thermal_energy - tile.thermal_energy);
}
- // superconduct() should transfer part of the thermal energy between two tiles that differ
- // only in thermal energy.
- #[test]
- fn superconduct_temperature() {
- let mut tile_a = Tile::new();
- tile_a.gases.set_oxygen(80.0);
- tile_a.gases.set_nitrogen(20.0);
- tile_a.thermal_energy = 100.0;
- let mut tile_b = Tile::new();
- tile_b.gases.set_oxygen(80.0);
- tile_b.gases.set_nitrogen(20.0);
- tile_b.thermal_energy = 200.0;
+ normalise_hotspot(tile);
+}
- superconduct(&mut tile_a, &mut tile_b, true);
+// Yay, tests!
+#[cfg(test)]
+mod tests {
+ use super::*;
- // These values are arbitrary, they're just what we get right now.
- // Update them if the calculations changed intentionally.
- assert_eq!(tile_a.thermal_energy, 120.0);
- assert_eq!(tile_b.thermal_energy, 180.0);
- }
+ // TODO
}
diff --git a/rust/src/milla/statics.rs b/rust/src/milla/statics.rs
index 4ecdd702c1b8..d179b5ad74aa 100644
--- a/rust/src/milla/statics.rs
+++ b/rust/src/milla/statics.rs
@@ -10,5 +10,10 @@ pub(crate) static BUFFERS: OnceLock = OnceLock::new();
/// We only write this once per tick, and only read it on user input.
pub(crate) static INTERESTING_TILES: Mutex> = Mutex::new(Vec::new());
+/// The current set of tiles BYOND wants the pressure of.
+/// Written to via BYOND call.
+/// Read from and cleared via BYOND call.
+pub(crate) static TRACKED_PRESSURE_TILES: Mutex> = Mutex::new(Vec::new());
+
/// How long the last tick took, in milliseconds.
pub(crate) static TICK_TIME: AtomicUsize = AtomicUsize::new(0);
diff --git a/rust/src/milla/tick.rs b/rust/src/milla/tick.rs
index bc9afafff1f8..ee197e5788fb 100644
--- a/rust/src/milla/tick.rs
+++ b/rust/src/milla/tick.rs
@@ -1,7 +1,7 @@
-use crate::milla::constants::*;
use crate::milla::model::*;
use crate::milla::simulate;
use crate::milla::statics::*;
+use eyre;
use scc::Bag;
use std::sync::RwLock;
use std::thread;
@@ -13,11 +13,12 @@ pub(crate) fn tick(buffers: &Buffers) -> Result<(), eyre::Error> {
assert!(thread_priority::ThreadPriority::Min
.set_for_current()
.is_ok());
- let active = buffers.get_active().read().unwrap();
- let inactive = buffers.get_inactive().read().unwrap();
+ let prev = buffers.get_active().read().unwrap();
+ let next = buffers.get_inactive().read().unwrap();
let new_interesting_tiles: Bag = Bag::default();
- let mut result: Result<(), eyre::Error> = Ok(());
+ let mut result: eyre::Result<()> = Ok(());
+ let handle_results: RwLock>> = RwLock::new(Vec::new());
// The scope tells Rust that all the threads we create here will end by the time the scope
// closes. This allows us to pass things into them that are only borrowed for the lifetime of
@@ -25,30 +26,39 @@ pub(crate) fn tick(buffers: &Buffers) -> Result<(), eyre::Error> {
thread::scope(|s| {
// Force most things to be captured by reference, despite the `move`
// in the thread spawn, which is really just for `z`.
- let active = &active;
- let inactive = &inactive;
+ let prev = &prev;
+ let next = &next;
let new_interesting_tiles = &new_interesting_tiles;
// Handle each Z level in its own thread.
let mut handles = Vec::>::new();
- for z in 0..active.0.len() {
+ let handle_results = &handle_results;
+ for z in 0..prev.0.len() {
handles.push(s.spawn(move || {
assert!(thread_priority::ThreadPriority::Min
.set_for_current()
.is_ok());
- tick_z_level(
+ let result = tick_z_level(
buffers,
- &active.0[z],
- &inactive.0[z],
+ &prev.0[z],
+ &next.0[z],
z as i32,
&new_interesting_tiles,
- )
- .unwrap();
+ );
+ let mut results = handle_results.write().unwrap();
+ results.push(result);
}));
}
for handle in handles {
- if let Err(e) = handle.join() {
- result = Err(eyre::eyre!("Worker thread failed: {:#?}", e));
+ let _ = handle.join();
+ }
+ let readable_results = handle_results.read().unwrap();
+ for index in 0..readable_results.len() {
+ if readable_results[index].is_err() {
+ result = Err(eyre::eyre!(
+ "MILLA worker thread failed: {:#?}",
+ readable_results[index].as_ref().err()
+ ));
}
}
});
@@ -69,118 +79,28 @@ pub(crate) fn tick(buffers: &Buffers) -> Result<(), eyre::Error> {
/// Runs a single tick of one Z level's atmospherics model.
pub(crate) fn tick_z_level(
buffers: &Buffers,
- active_atmos_lock: &RwLock,
- inactive_atmos_lock: &RwLock,
+ prev_atmos_lock: &RwLock,
+ next_atmos_lock: &RwLock,
z: i32,
new_interesting_tiles: &Bag,
-) -> Result<(), eyre::Error> {
+) -> eyre::Result<()> {
let environments;
{
let global_environments = buffers.environments.read().unwrap();
environments = global_environments.clone().into_boxed_slice();
}
- let active = active_atmos_lock.read().unwrap();
- let mut inactive = inactive_atmos_lock.write().unwrap();
- // Initialize the new frame as a copy of the old one.
- inactive.copy_from(&active);
- for my_index in 0..MAP_SIZE * MAP_SIZE {
- let x = (my_index / MAP_SIZE) as i32;
- let y = (my_index % MAP_SIZE) as i32;
- let my_tile = active.get_tile(my_index);
- let my_connected_dirs = simulate::count_connected_dirs(&active, my_index, x, y)?;
-
- // Handle gas and heat exchange with neighbors.
- for (dx, dy) in AXES {
- let maybe_their_index = ZLevel::maybe_get_index(x + dx, y + dy);
- let their_index;
- match maybe_their_index {
- Some(index) => their_index = index,
- None => continue,
- }
-
- let their_tile = active.get_tile(their_index);
- if let AtmosMode::Space = my_tile.mode {
- if let AtmosMode::Space = their_tile.mode {
- // Exchange what, exactly?
- continue;
- }
- }
- let their_connected_dirs =
- simulate::count_connected_dirs(&active, their_index, x + dx, y + dy)?;
-
- let (my_inactive_tile, their_inactive_tile) =
- inactive.get_pair_mut(my_index, their_index);
+ let prev = prev_atmos_lock.read().unwrap();
+ let mut next = next_atmos_lock.write().unwrap();
- // Bail if we shouldn't share air this way, but still run superconductivity.
- if dx > 0
- && (my_tile
- .airtight_directions
- .contains(AirtightDirections::EAST)
- || their_tile
- .airtight_directions
- .contains(AirtightDirections::WEST))
- {
- simulate::superconduct(my_inactive_tile, their_inactive_tile, true);
- continue;
- }
- if dy > 0
- && (my_tile
- .airtight_directions
- .contains(AirtightDirections::NORTH)
- || their_tile
- .airtight_directions
- .contains(AirtightDirections::SOUTH))
- {
- simulate::superconduct(my_inactive_tile, their_inactive_tile, false);
- continue;
- }
-
- // Calculate the amount of air and thermal energy transferred.
- let (gas_change, thermal_energy_change) =
- simulate::share_air(my_tile, their_tile, my_connected_dirs, their_connected_dirs);
-
- // Transfer it.
- for i in 0..GAS_COUNT {
- if gas_change.values[i] != 0.0 {
- my_inactive_tile.gases.values[i] += gas_change.values[i];
- my_inactive_tile.gases.set_dirty();
- their_inactive_tile.gases.values[i] -= gas_change.values[i];
- their_inactive_tile.gases.set_dirty();
- }
- }
- my_inactive_tile.thermal_energy += thermal_energy_change;
- their_inactive_tile.thermal_energy -= thermal_energy_change;
-
- // Run superconductivity.
- simulate::superconduct(my_inactive_tile, their_inactive_tile, dx > 0);
- }
-
- let my_inactive_tile = inactive.get_tile_mut(my_index);
- simulate::apply_tile_mode(my_tile, my_inactive_tile, &environments)?;
-
- if let AtmosMode::Space = my_tile.mode {
- // Space has no reactions, doesn't need to be sanitized, and is never interesting.
- continue;
- }
-
- // Track how much "fuel" was burnt across all reactions.
- let fuel_burnt = simulate::react(my_inactive_tile);
+ // Initialize the new frame as a copy of the old one.
+ next.copy_from(&prev);
- // Sanitize the tile, to avoid negative/NaN/infinity spread.
- simulate::sanitize(my_inactive_tile, my_tile);
+ simulate::find_walls(&mut next);
+ simulate::update_wind(&prev, &mut next);
+ simulate::flow_air(&prev, &mut next)?;
+ simulate::post_process(&prev, &mut next, &environments, new_interesting_tiles, z)?;
- simulate::check_interesting(
- x,
- y,
- z,
- &active,
- &environments,
- my_tile,
- my_inactive_tile,
- fuel_burnt,
- new_interesting_tiles,
- )?;
- }
+ next.active_pressure_chunks.clear();
Ok(())
}
@@ -189,6 +109,7 @@ pub(crate) fn tick_z_level(
#[cfg(test)]
mod tests {
use super::*;
+ use crate::constants::*;
fn set_with_defaults(legend: F) -> impl Fn(char) -> Tile
where
@@ -226,8 +147,8 @@ mod tests {
where
F: Fn(char) -> Tile,
{
- let active = buffers.get_active().read().unwrap();
- let mut z_level = active.0[z as usize].write().unwrap();
+ let current = buffers.get_active().read().unwrap();
+ let mut z_level = current.0[z as usize].write().unwrap();
for inv_y in 0..pattern.len() {
// Reverse the Y direction, so +Y is up, like in the game.
let y = pattern.len() - inv_y - 1;
@@ -277,8 +198,8 @@ mod tests {
where
F: Fn(char) -> TileChecker,
{
- let active = buffers.get_active().read().unwrap();
- let z_level = active.0[z as usize].read().unwrap();
+ let current = buffers.get_active().read().unwrap();
+ let z_level = current.0[z as usize].read().unwrap();
for inv_y in 0..pattern.len() {
// Reverse the Y direction, so +Y is up, like in the game.
let y = pattern.len() - inv_y - 1;
@@ -525,386 +446,5 @@ mod tests {
// unfortunately, the compiler won't let it be applied in the middle of
// the code right now. It formats right, it just won't compile.
- // Air should split evenly to surrounding vacuum tiles.
- #[test]
- fn tick_splits_air() {
- let buffers = Buffers::new();
- buffers.init_to(0);
-
- set_pattern(
- &buffers,
- &[
- "#######", //
- "# #", //
- "# 0 #", //
- "# 0X0 #", //
- "# 0 #", //
- "# #", //
- "#######", //
- ],
- set_with_defaults(|_c: char| None),
- 0,
- );
-
- tick(&buffers).unwrap();
-
- expect_pattern(
- &buffers,
- &[
- "#######", //
- "# #", //
- "# x #", //
- "# xxx #", //
- "# x #", //
- "# #", //
- "#######", //
- ],
- expect_with_defaults(|c: char| match c {
- 'x' => Some(
- TileChecker::new() //
- .oxygen(20.0)
- .thermal_energy(20.0),
- ),
- _ => None,
- }),
- 0,
- );
- }
-
- // Air should not flow into walls.
- #[test]
- fn tick_respects_walls() {
- let buffers = Buffers::new();
- buffers.init_to(0);
-
- set_pattern(
- &buffers,
- &[
- "###", //
- "#X#", //
- "###", //
- ],
- set_with_defaults(|_c: char| None),
- 0,
- );
-
- tick(&buffers).unwrap();
-
- expect_pattern(
- &buffers,
- &[
- "#0#", //
- "0X0", //
- "#0#", //
- ],
- expect_with_defaults(|_c: char| None),
- 0,
- );
- }
-
- // Air should flow properly into dead-end tiles.
- #[test]
- fn tick_handles_different_connections() {
- let buffers = Buffers::new();
- buffers.init_to(0);
-
- set_pattern(
- &buffers,
- &[
- "#####", //
- "##0##", //
- "#0X0#", //
- "##0##", //
- "#####", //
- ],
- set_with_defaults(|_c: char| None),
- 0,
- );
-
- tick(&buffers).unwrap();
-
- expect_pattern(
- &buffers,
- &[
- "#####", //
- "##x##", //
- "#xxx#", //
- "##x##", //
- "#####", //
- ],
- expect_with_defaults(|c: char| match c {
- 'x' => Some(
- TileChecker::new() //
- .oxygen(20.0)
- .thermal_energy(20.0),
- ),
- _ => None,
- }),
- 0,
- );
- }
-
- // Four equal dead-end tiles around a vacuum should distribute air evenly between all 5 tiles.
- // Temp: Or not, because we're matching MILLA behavior.
- #[test]
- fn tick_merges_properly() {
- let buffers = Buffers::new();
- buffers.init_to(0);
-
- set_pattern(
- &buffers,
- &[
- "#####", //
- "##X##", //
- "#X0X#", //
- "##X##", //
- "#####", //
- ],
- set_with_defaults(|_c: char| None),
- 0,
- );
-
- tick(&buffers).unwrap();
-
- expect_pattern(
- &buffers,
- &[
- "#####", //
- "##x##", //
- "#x!x#", //
- "##x##", //
- "#####", //
- ],
- expect_with_defaults(|c: char| match c {
- '!' => Some(
- TileChecker::new() //
- .oxygen(200.0)
- .thermal_energy(200.0),
- ),
- 'x' => Some(
- TileChecker::new() //
- .oxygen(50.0)
- .thermal_energy(50.0),
- ),
- _ => None,
- }),
- 0,
- );
- }
-
- // Energy should be transferred into superconducting walls.
- #[test]
- fn tick_superconducts_into_walls() {
- let buffers = Buffers::new();
- buffers.init_to(0);
-
- set_pattern(
- &buffers,
- &[
- "######", //
- "##XS##", //
- "#S##X#", //
- "#X##S#", //
- "##SX##", //
- "######", //
- ],
- set_with_defaults(|c: char| match c {
- 'S' => Some(
- TileBuilder::wall() //
- .superconducts(OPEN_HEAT_TRANSFER_COEFFICIENT)
- .innate_heat_capacity(2000.0)
- .build(),
- ),
- _ => None,
- }),
- 0,
- );
-
- tick(&buffers).unwrap();
-
- expect_pattern(
- &buffers,
- &[
- "######", //
- "##xS##", //
- "#S##x#", //
- "#x##S#", //
- "##Sx##", //
- "######", //
- ],
- expect_with_defaults(|c: char| match c {
- 'x' => Some(
- TileChecker::new() //
- .oxygen(100.0)
- // This value is arbitrary, it's just what we get right now.
- // Update it if the calculations changed intentionally.
- .thermal_energy(80.0),
- ),
- 'S' => Some(
- TileChecker::new() //
- // This value is arbitrary, it's just what we get right now.
- // Update it if the calculations changed intentionally.
- .thermal_energy(20.0),
- ),
- _ => None,
- }),
- 0,
- );
- }
-
- // Air should flow into a space tile, and be deleted.
- #[test]
- fn tick_empties_space() {
- let buffers = Buffers::new();
- buffers.init_to(0);
-
- set_pattern(
- &buffers,
- &[
- "#####", //
- "##X##", //
- "#X X#", //
- "##X##", //
- "#####", //
- ],
- set_with_defaults(|c: char| match c {
- 'x' => Some(
- TileBuilder::sealed() //
- .oxygen(100.0)
- .thermal_energy(100.0)
- .build(),
- ),
- _ => None,
- }),
- 0,
- );
-
- tick(&buffers).unwrap();
-
- expect_pattern(
- &buffers,
- &[
- "#####", //
- "##x##", //
- "#x0x#", //
- "##x##", //
- "#####", //
- ],
- expect_with_defaults(|c: char| match c {
- 'x' => Some(
- TileChecker::new() //
- .oxygen(50.0)
- .thermal_energy(50.0),
- ),
- _ => None,
- }),
- 0,
- );
- }
-
- // Air should tend towards the environment's temperature, if any.
- #[test]
- fn tick_affected_by_environment_temperature() {
- let buffers = Buffers::new();
- buffers.init_to(0);
- let lavaland = buffers.create_environment(
- TileBuilder::sealed() //
- .oxygen(8.0)
- .nitrogen(14.0)
- .temperature(500.0)
- .build(),
- );
-
- set_pattern(
- &buffers,
- &[
- "###", //
- "#X#", //
- "###", //
- ],
- set_with_defaults(|c: char| match c {
- 'X' => Some(
- TileBuilder::exposed_to(lavaland)
- .oxygen(8.0)
- .nitrogen(14.0)
- .thermal_energy(0.0)
- .build(),
- ),
- _ => None,
- }),
- 0,
- );
-
- tick(&buffers).unwrap();
-
- expect_pattern(
- &buffers,
- &[
- "###", //
- "#Y#", //
- "###", //
- ],
- expect_with_defaults(|c: char| match c {
- 'Y' => Some(
- TileChecker::new() //
- .oxygen(8.0)
- .nitrogen(14.0)
- // This value is arbitrary, it's just what we get right now.
- // Update it if the calculations changed intentionally.
- .thermal_energy(44_000.0),
- ),
- _ => None,
- }),
- 0,
- );
- }
-
- // Air should exchange with the tile's environment, if any.
- #[test]
- fn tick_affected_by_environment() {
- let buffers = Buffers::new();
- buffers.init_to(0);
- let lavaland = buffers.create_environment(
- TileBuilder::sealed() //
- .oxygen(8.0)
- .nitrogen(14.0)
- .temperature(500.0)
- .build(),
- );
-
- set_pattern(
- &buffers,
- &[
- "###", //
- "#X#", //
- "###", //
- ],
- set_with_defaults(|c: char| match c {
- 'X' => Some(TileBuilder::exposed_to(lavaland).build()),
- _ => None,
- }),
- 0,
- );
-
- tick(&buffers).unwrap();
-
- expect_pattern(
- &buffers,
- &[
- "###", //
- "#Y#", //
- "###", //
- ],
- expect_with_defaults(|c: char| match c {
- 'Y' => Some(
- TileChecker::new() //
- .oxygen(4.0)
- .nitrogen(7.0)
- .temperature(500.0),
- ),
- _ => None,
- }),
- 0,
- );
- }
+ // TODO
}
diff --git a/rustlibs.dll b/rustlibs.dll
index 963afa5910ed..2339d9779627 100644
Binary files a/rustlibs.dll and b/rustlibs.dll differ
diff --git a/rustlibs_prod.dll b/rustlibs_prod.dll
index 355c4be35408..2e59e3f4fb96 100644
Binary files a/rustlibs_prod.dll and b/rustlibs_prod.dll differ
diff --git a/sound/magic/magic_block.ogg b/sound/magic/magic_block.ogg
new file mode 100644
index 000000000000..e9c4ffdca948
Binary files /dev/null and b/sound/magic/magic_block.ogg differ
diff --git a/sound/magic/magic_block_holy.ogg b/sound/magic/magic_block_holy.ogg
new file mode 100644
index 000000000000..eb34f01a8960
Binary files /dev/null and b/sound/magic/magic_block_holy.ogg differ
diff --git a/sound/magic/magic_block_mind.ogg b/sound/magic/magic_block_mind.ogg
new file mode 100644
index 000000000000..3b824da3e4c4
Binary files /dev/null and b/sound/magic/magic_block_mind.ogg differ
diff --git a/tgui/packages/tgui/interfaces/AirAlarm.js b/tgui/packages/tgui/interfaces/AirAlarm.js
index 0aa5845671d3..b56a410d14e8 100644
--- a/tgui/packages/tgui/interfaces/AirAlarm.js
+++ b/tgui/packages/tgui/interfaces/AirAlarm.js
@@ -364,24 +364,24 @@ const AirAlarmModesView = (props, context) => {
return (
<>
-
- {modes.map(
- (m) =>
- (!m.emagonly || (m.emagonly && !!emagged)) && (
-
-
- act('mode', { mode: m.id })}
- />
-
- {m.desc}
-
- )
- )}
-
+ {Object.keys(modes).map((key) => {
+ let m = modes[key];
+ if (!m.emagonly || !!emagged) {
+ return (
+
+
+ act('mode', { mode: m.id })}
+ />
+
+ {m.desc}
+
+ );
+ }
+ })}
After making a selection, the system will automatically cycle in order to remove contaminants.
diff --git a/tgui/packages/tgui/interfaces/AtmosAlertConsole.js b/tgui/packages/tgui/interfaces/AtmosAlertConsole.js
index 15f9c2fb978a..30a1fc31bc03 100644
--- a/tgui/packages/tgui/interfaces/AtmosAlertConsole.js
+++ b/tgui/packages/tgui/interfaces/AtmosAlertConsole.js
@@ -6,6 +6,7 @@ export const AtmosAlertConsole = (props, context) => {
const { act, data } = useBackend(context);
const priorityAlerts = data.priority || [];
const minorAlerts = data.minor || [];
+ const areaModes = data.mode || {};
return (
@@ -23,6 +24,12 @@ export const AtmosAlertConsole = (props, context) => {
{alert}
))}
+ {Object.keys(areaModes).length === 0 && All Areas Filtering }
+ {Object.keys(areaModes).map((label) => (
+
+ {label} mode is {areaModes[label]}
+
+ ))}
diff --git a/tgui/packages/tgui/interfaces/GhostHudPanel.js b/tgui/packages/tgui/interfaces/GhostHudPanel.js
index 742db732f0f9..ba0362a47d03 100644
--- a/tgui/packages/tgui/interfaces/GhostHudPanel.js
+++ b/tgui/packages/tgui/interfaces/GhostHudPanel.js
@@ -4,14 +4,15 @@ import { Window } from '../layouts';
export const GhostHudPanel = (props, context) => {
const { data } = useBackend(context);
- const { security, medical, diagnostic, radioactivity, ahud } = data;
+ const { security, medical, diagnostic, pressure, radioactivity, ahud } = data;
return (
-
+
+
{
const [tweakedGear, setTweakedGear] = useLocalState(context, 'tweakedGear', '');
return (
-
+
{tweakedGear && }
diff --git a/tgui/public/tgui.bundle.js b/tgui/public/tgui.bundle.js
index 011bb77e2bdd..66c97ba0ff0d 100644
--- a/tgui/public/tgui.bundle.js
+++ b/tgui/public/tgui.bundle.js
@@ -1,30 +1,30 @@
-(function(){(function(){var Jt={96376:function(A,r,n){"use strict";r.__esModule=!0,r.createPopper=void 0,r.popperGenerator=m;var e=g(n(74758)),a=g(n(28811)),t=g(n(98309)),o=g(n(44896)),f=g(n(33118)),b=g(n(10579)),S=g(n(56500)),I=g(n(17633));r.detectOverflow=I.default;var k=n(75573);function g(d){return d&&d.__esModule?d:{default:d}}var u={placement:"bottom",modifiers:[],strategy:"absolute"};function c(){for(var d=arguments.length,s=new Array(d),i=0;i0&&(0,a.round)(g.width)/S.offsetWidth||1,c=S.offsetHeight>0&&(0,a.round)(g.height)/S.offsetHeight||1);var m=(0,e.isElement)(S)?(0,t.default)(S):window,l=m.visualViewport,d=!(0,o.default)()&&k,s=(g.left+(d&&l?l.offsetLeft:0))/u,i=(g.top+(d&&l?l.offsetTop:0))/c,h=g.width/u,C=g.height/c;return{width:h,height:C,top:i,right:s+h,bottom:i+C,left:s,x:s,y:i}}},49035:function(A,r,n){"use strict";r.__esModule=!0,r.default=C;var e=n(46206),a=d(n(87991)),t=d(n(79752)),o=d(n(98309)),f=d(n(44896)),b=d(n(40600)),S=d(n(16599)),I=n(75573),k=d(n(37786)),g=d(n(57819)),u=d(n(4206)),c=d(n(12972)),m=d(n(81666)),l=n(63618);function d(v){return v&&v.__esModule?v:{default:v}}function s(v,p){var N=(0,k.default)(v,!1,p==="fixed");return N.top=N.top+v.clientTop,N.left=N.left+v.clientLeft,N.bottom=N.top+v.clientHeight,N.right=N.left+v.clientWidth,N.width=v.clientWidth,N.height=v.clientHeight,N.x=N.left,N.y=N.top,N}function i(v,p,N){return p===e.viewport?(0,m.default)((0,a.default)(v,N)):(0,I.isElement)(p)?s(p,N):(0,m.default)((0,t.default)((0,b.default)(v)))}function h(v){var p=(0,o.default)((0,g.default)(v)),N=["absolute","fixed"].indexOf((0,S.default)(v).position)>=0,V=N&&(0,I.isHTMLElement)(v)?(0,f.default)(v):v;return(0,I.isElement)(V)?p.filter(function(y){return(0,I.isElement)(y)&&(0,u.default)(y,V)&&(0,c.default)(y)!=="body"}):[]}function C(v,p,N,V){var y=p==="clippingParents"?h(v):[].concat(p),B=[].concat(y,[N]),L=B[0],w=B.reduce(function(x,T){var M=i(v,T,V);return x.top=(0,l.max)(M.top,x.top),x.right=(0,l.min)(M.right,x.right),x.bottom=(0,l.min)(M.bottom,x.bottom),x.left=(0,l.max)(M.left,x.left),x},i(v,L,V));return w.width=w.right-w.left,w.height=w.bottom-w.top,w.x=w.left,w.y=w.top,w}},74758:function(A,r,n){"use strict";r.__esModule=!0,r.default=u;var e=k(n(37786)),a=k(n(13390)),t=k(n(12972)),o=n(75573),f=k(n(79697)),b=k(n(40600)),S=k(n(10798)),I=n(63618);function k(c){return c&&c.__esModule?c:{default:c}}function g(c){var m=c.getBoundingClientRect(),l=(0,I.round)(m.width)/c.offsetWidth||1,d=(0,I.round)(m.height)/c.offsetHeight||1;return l!==1||d!==1}function u(c,m,l){l===void 0&&(l=!1);var d=(0,o.isHTMLElement)(m),s=(0,o.isHTMLElement)(m)&&g(m),i=(0,b.default)(m),h=(0,e.default)(c,s,l),C={scrollLeft:0,scrollTop:0},v={x:0,y:0};return(d||!d&&!l)&&(((0,t.default)(m)!=="body"||(0,S.default)(i))&&(C=(0,a.default)(m)),(0,o.isHTMLElement)(m)?(v=(0,e.default)(m,!0),v.x+=m.clientLeft,v.y+=m.clientTop):i&&(v.x=(0,f.default)(i))),{x:h.left+C.scrollLeft-v.x,y:h.top+C.scrollTop-v.y,width:h.width,height:h.height}}},16599:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(95115));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){return(0,e.default)(o).getComputedStyle(o)}},40600:function(A,r,n){"use strict";r.__esModule=!0,r.default=a;var e=n(75573);function a(t){return(((0,e.isElement)(t)?t.ownerDocument:t.document)||window.document).documentElement}},79752:function(A,r,n){"use strict";r.__esModule=!0,r.default=S;var e=b(n(40600)),a=b(n(16599)),t=b(n(79697)),o=b(n(43750)),f=n(63618);function b(I){return I&&I.__esModule?I:{default:I}}function S(I){var k,g=(0,e.default)(I),u=(0,o.default)(I),c=(k=I.ownerDocument)==null?void 0:k.body,m=(0,f.max)(g.scrollWidth,g.clientWidth,c?c.scrollWidth:0,c?c.clientWidth:0),l=(0,f.max)(g.scrollHeight,g.clientHeight,c?c.scrollHeight:0,c?c.clientHeight:0),d=-u.scrollLeft+(0,t.default)(I),s=-u.scrollTop;return(0,a.default)(c||g).direction==="rtl"&&(d+=(0,f.max)(g.clientWidth,c?c.clientWidth:0)-m),{width:m,height:l,x:d,y:s}}},3073:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}},28811:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(37786));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){var f=(0,e.default)(o),b=o.offsetWidth,S=o.offsetHeight;return Math.abs(f.width-b)<=1&&(b=f.width),Math.abs(f.height-S)<=1&&(S=f.height),{x:o.offsetLeft,y:o.offsetTop,width:b,height:S}}},12972:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return e?(e.nodeName||"").toLowerCase():null}},13390:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(43750)),a=f(n(95115)),t=n(75573),o=f(n(3073));function f(S){return S&&S.__esModule?S:{default:S}}function b(S){return S===(0,a.default)(S)||!(0,t.isHTMLElement)(S)?(0,e.default)(S):(0,o.default)(S)}},44896:function(A,r,n){"use strict";r.__esModule=!0,r.default=u;var e=I(n(95115)),a=I(n(12972)),t=I(n(16599)),o=n(75573),f=I(n(87031)),b=I(n(57819)),S=I(n(35366));function I(c){return c&&c.__esModule?c:{default:c}}function k(c){return!(0,o.isHTMLElement)(c)||(0,t.default)(c).position==="fixed"?null:c.offsetParent}function g(c){var m=/firefox/i.test((0,S.default)()),l=/Trident/i.test((0,S.default)());if(l&&(0,o.isHTMLElement)(c)){var d=(0,t.default)(c);if(d.position==="fixed")return null}var s=(0,b.default)(c);for((0,o.isShadowRoot)(s)&&(s=s.host);(0,o.isHTMLElement)(s)&&["html","body"].indexOf((0,a.default)(s))<0;){var i=(0,t.default)(s);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||m&&i.willChange==="filter"||m&&i.filter&&i.filter!=="none")return s;s=s.parentNode}return null}function u(c){for(var m=(0,e.default)(c),l=k(c);l&&(0,f.default)(l)&&(0,t.default)(l).position==="static";)l=k(l);return l&&((0,a.default)(l)==="html"||(0,a.default)(l)==="body"&&(0,t.default)(l).position==="static")?m:l||g(c)||m}},57819:function(A,r,n){"use strict";r.__esModule=!0,r.default=f;var e=o(n(12972)),a=o(n(40600)),t=n(75573);function o(b){return b&&b.__esModule?b:{default:b}}function f(b){return(0,e.default)(b)==="html"?b:b.assignedSlot||b.parentNode||((0,t.isShadowRoot)(b)?b.host:null)||(0,a.default)(b)}},24426:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(57819)),a=f(n(10798)),t=f(n(12972)),o=n(75573);function f(S){return S&&S.__esModule?S:{default:S}}function b(S){return["html","body","#document"].indexOf((0,t.default)(S))>=0?S.ownerDocument.body:(0,o.isHTMLElement)(S)&&(0,a.default)(S)?S:b((0,e.default)(S))}},87991:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(95115)),a=f(n(40600)),t=f(n(79697)),o=f(n(89331));function f(S){return S&&S.__esModule?S:{default:S}}function b(S,I){var k=(0,e.default)(S),g=(0,a.default)(S),u=k.visualViewport,c=g.clientWidth,m=g.clientHeight,l=0,d=0;if(u){c=u.width,m=u.height;var s=(0,o.default)();(s||!s&&I==="fixed")&&(l=u.offsetLeft,d=u.offsetTop)}return{width:c,height:m,x:l+(0,t.default)(S),y:d}}},95115:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var a=e.ownerDocument;return a&&a.defaultView||window}return e}},43750:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(95115));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){var f=(0,e.default)(o),b=f.pageXOffset,S=f.pageYOffset;return{scrollLeft:b,scrollTop:S}}},79697:function(A,r,n){"use strict";r.__esModule=!0,r.default=f;var e=o(n(37786)),a=o(n(40600)),t=o(n(43750));function o(b){return b&&b.__esModule?b:{default:b}}function f(b){return(0,e.default)((0,a.default)(b)).left+(0,t.default)(b).scrollLeft}},75573:function(A,r,n){"use strict";r.__esModule=!0,r.isElement=t,r.isHTMLElement=o,r.isShadowRoot=f;var e=a(n(95115));function a(b){return b&&b.__esModule?b:{default:b}}function t(b){var S=(0,e.default)(b).Element;return b instanceof S||b instanceof Element}function o(b){var S=(0,e.default)(b).HTMLElement;return b instanceof S||b instanceof HTMLElement}function f(b){if(typeof ShadowRoot=="undefined")return!1;var S=(0,e.default)(b).ShadowRoot;return b instanceof S||b instanceof ShadowRoot}},89331:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(35366));function a(o){return o&&o.__esModule?o:{default:o}}function t(){return!/^((?!chrome|android).)*safari/i.test((0,e.default)())}},10798:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(16599));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){var f=(0,e.default)(o),b=f.overflow,S=f.overflowX,I=f.overflowY;return/auto|scroll|overlay|hidden/.test(b+I+S)}},87031:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(12972));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){return["table","td","th"].indexOf((0,e.default)(o))>=0}},98309:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(24426)),a=f(n(57819)),t=f(n(95115)),o=f(n(10798));function f(S){return S&&S.__esModule?S:{default:S}}function b(S,I){var k;I===void 0&&(I=[]);var g=(0,e.default)(S),u=g===((k=S.ownerDocument)==null?void 0:k.body),c=(0,t.default)(g),m=u?[c].concat(c.visualViewport||[],(0,o.default)(g)?g:[]):g,l=I.concat(m);return u?l:l.concat(b((0,a.default)(m)))}},46206:function(A,r){"use strict";r.__esModule=!0,r.write=r.viewport=r.variationPlacements=r.top=r.start=r.right=r.reference=r.read=r.popper=r.placements=r.modifierPhases=r.main=r.left=r.end=r.clippingParents=r.bottom=r.beforeWrite=r.beforeRead=r.beforeMain=r.basePlacements=r.auto=r.afterWrite=r.afterRead=r.afterMain=void 0;var n=r.top="top",e=r.bottom="bottom",a=r.right="right",t=r.left="left",o=r.auto="auto",f=r.basePlacements=[n,e,a,t],b=r.start="start",S=r.end="end",I=r.clippingParents="clippingParents",k=r.viewport="viewport",g=r.popper="popper",u=r.reference="reference",c=r.variationPlacements=f.reduce(function(y,B){return y.concat([B+"-"+b,B+"-"+S])},[]),m=r.placements=[].concat(f,[o]).reduce(function(y,B){return y.concat([B,B+"-"+b,B+"-"+S])},[]),l=r.beforeRead="beforeRead",d=r.read="read",s=r.afterRead="afterRead",i=r.beforeMain="beforeMain",h=r.main="main",C=r.afterMain="afterMain",v=r.beforeWrite="beforeWrite",p=r.write="write",N=r.afterWrite="afterWrite",V=r.modifierPhases=[l,d,s,i,h,C,v,p,N]},95996:function(A,r,n){"use strict";r.__esModule=!0;var e={popperGenerator:!0,detectOverflow:!0,createPopperBase:!0,createPopper:!0,createPopperLite:!0};r.popperGenerator=r.detectOverflow=r.createPopperLite=r.createPopperBase=r.createPopper=void 0;var a=n(46206);Object.keys(a).forEach(function(S){S==="default"||S==="__esModule"||Object.prototype.hasOwnProperty.call(e,S)||S in r&&r[S]===a[S]||(r[S]=a[S])});var t=n(39805);Object.keys(t).forEach(function(S){S==="default"||S==="__esModule"||Object.prototype.hasOwnProperty.call(e,S)||S in r&&r[S]===t[S]||(r[S]=t[S])});var o=n(96376);r.popperGenerator=o.popperGenerator,r.detectOverflow=o.detectOverflow,r.createPopperBase=o.createPopper;var f=n(83312);r.createPopper=f.createPopper;var b=n(2473);r.createPopperLite=b.createPopper},19975:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=t(n(12972)),a=n(75573);function t(S){return S&&S.__esModule?S:{default:S}}function o(S){var I=S.state;Object.keys(I.elements).forEach(function(k){var g=I.styles[k]||{},u=I.attributes[k]||{},c=I.elements[k];!(0,a.isHTMLElement)(c)||!(0,e.default)(c)||(Object.assign(c.style,g),Object.keys(u).forEach(function(m){var l=u[m];l===!1?c.removeAttribute(m):c.setAttribute(m,l===!0?"":l)}))})}function f(S){var I=S.state,k={popper:{position:I.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(I.elements.popper.style,k.popper),I.styles=k,I.elements.arrow&&Object.assign(I.elements.arrow.style,k.arrow),function(){Object.keys(I.elements).forEach(function(g){var u=I.elements[g],c=I.attributes[g]||{},m=Object.keys(I.styles.hasOwnProperty(g)?I.styles[g]:k[g]),l=m.reduce(function(d,s){return d[s]="",d},{});!(0,a.isHTMLElement)(u)||!(0,e.default)(u)||(Object.assign(u.style,l),Object.keys(c).forEach(function(d){u.removeAttribute(d)}))})}}var b=r.default={name:"applyStyles",enabled:!0,phase:"write",fn:o,effect:f,requires:["computeStyles"]}},52744:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=g(n(83104)),a=g(n(28811)),t=g(n(4206)),o=g(n(44896)),f=g(n(41199)),b=n(28595),S=g(n(43286)),I=g(n(81447)),k=n(46206);function g(d){return d&&d.__esModule?d:{default:d}}var u=function(){function d(s,i){return s=typeof s=="function"?s(Object.assign({},i.rects,{placement:i.placement})):s,(0,S.default)(typeof s!="number"?s:(0,I.default)(s,k.basePlacements))}return d}();function c(d){var s,i=d.state,h=d.name,C=d.options,v=i.elements.arrow,p=i.modifiersData.popperOffsets,N=(0,e.default)(i.placement),V=(0,f.default)(N),y=[k.left,k.right].indexOf(N)>=0,B=y?"height":"width";if(!(!v||!p)){var L=u(C.padding,i),w=(0,a.default)(v),x=V==="y"?k.top:k.left,T=V==="y"?k.bottom:k.right,M=i.rects.reference[B]+i.rects.reference[V]-p[V]-i.rects.popper[B],O=p[V]-i.rects.reference[V],D=(0,o.default)(v),E=D?V==="y"?D.clientHeight||0:D.clientWidth||0:0,P=M/2-O/2,R=L[x],j=E-w[B]-L[T],F=E/2-w[B]/2+P,W=(0,b.within)(R,F,j),z=V;i.modifiersData[h]=(s={},s[z]=W,s.centerOffset=W-F,s)}}function m(d){var s=d.state,i=d.options,h=i.element,C=h===void 0?"[data-popper-arrow]":h;C!=null&&(typeof C=="string"&&(C=s.elements.popper.querySelector(C),!C)||(0,t.default)(s.elements.popper,C)&&(s.elements.arrow=C))}var l=r.default={name:"arrow",enabled:!0,phase:"main",fn:c,effect:m,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]}},59894:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0,r.mapToStyles=c;var e=n(46206),a=k(n(44896)),t=k(n(95115)),o=k(n(40600)),f=k(n(16599)),b=k(n(83104)),S=k(n(45)),I=n(63618);function k(d){return d&&d.__esModule?d:{default:d}}var g={top:"auto",right:"auto",bottom:"auto",left:"auto"};function u(d,s){var i=d.x,h=d.y,C=s.devicePixelRatio||1;return{x:(0,I.round)(i*C)/C||0,y:(0,I.round)(h*C)/C||0}}function c(d){var s,i=d.popper,h=d.popperRect,C=d.placement,v=d.variation,p=d.offsets,N=d.position,V=d.gpuAcceleration,y=d.adaptive,B=d.roundOffsets,L=d.isFixed,w=p.x,x=w===void 0?0:w,T=p.y,M=T===void 0?0:T,O=typeof B=="function"?B({x:x,y:M}):{x:x,y:M};x=O.x,M=O.y;var D=p.hasOwnProperty("x"),E=p.hasOwnProperty("y"),P=e.left,R=e.top,j=window;if(y){var F=(0,a.default)(i),W="clientHeight",z="clientWidth";if(F===(0,t.default)(i)&&(F=(0,o.default)(i),(0,f.default)(F).position!=="static"&&N==="absolute"&&(W="scrollHeight",z="scrollWidth")),F=F,C===e.top||(C===e.left||C===e.right)&&v===e.end){R=e.bottom;var K=L&&F===j&&j.visualViewport?j.visualViewport.height:F[W];M-=K-h.height,M*=V?1:-1}if(C===e.left||(C===e.top||C===e.bottom)&&v===e.end){P=e.right;var G=L&&F===j&&j.visualViewport?j.visualViewport.width:F[z];x-=G-h.width,x*=V?1:-1}}var J=Object.assign({position:N},y&&g),Q=B===!0?u({x:x,y:M},(0,t.default)(i)):{x:x,y:M};if(x=Q.x,M=Q.y,V){var ue;return Object.assign({},J,(ue={},ue[R]=E?"0":"",ue[P]=D?"0":"",ue.transform=(j.devicePixelRatio||1)<=1?"translate("+x+"px, "+M+"px)":"translate3d("+x+"px, "+M+"px, 0)",ue))}return Object.assign({},J,(s={},s[R]=E?M+"px":"",s[P]=D?x+"px":"",s.transform="",s))}function m(d){var s=d.state,i=d.options,h=i.gpuAcceleration,C=h===void 0?!0:h,v=i.adaptive,p=v===void 0?!0:v,N=i.roundOffsets,V=N===void 0?!0:N,y={placement:(0,b.default)(s.placement),variation:(0,S.default)(s.placement),popper:s.elements.popper,popperRect:s.rects.popper,gpuAcceleration:C,isFixed:s.options.strategy==="fixed"};s.modifiersData.popperOffsets!=null&&(s.styles.popper=Object.assign({},s.styles.popper,c(Object.assign({},y,{offsets:s.modifiersData.popperOffsets,position:s.options.strategy,adaptive:p,roundOffsets:V})))),s.modifiersData.arrow!=null&&(s.styles.arrow=Object.assign({},s.styles.arrow,c(Object.assign({},y,{offsets:s.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:V})))),s.attributes.popper=Object.assign({},s.attributes.popper,{"data-popper-placement":s.placement})}var l=r.default={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:m,data:{}}},36692:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=a(n(95115));function a(b){return b&&b.__esModule?b:{default:b}}var t={passive:!0};function o(b){var S=b.state,I=b.instance,k=b.options,g=k.scroll,u=g===void 0?!0:g,c=k.resize,m=c===void 0?!0:c,l=(0,e.default)(S.elements.popper),d=[].concat(S.scrollParents.reference,S.scrollParents.popper);return u&&d.forEach(function(s){s.addEventListener("scroll",I.update,t)}),m&&l.addEventListener("resize",I.update,t),function(){u&&d.forEach(function(s){s.removeEventListener("scroll",I.update,t)}),m&&l.removeEventListener("resize",I.update,t)}}var f=r.default={name:"eventListeners",enabled:!0,phase:"write",fn:function(){function b(){}return b}(),effect:o,data:{}}},23798:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=I(n(71376)),a=I(n(83104)),t=I(n(86459)),o=I(n(17633)),f=I(n(9041)),b=n(46206),S=I(n(45));function I(c){return c&&c.__esModule?c:{default:c}}function k(c){if((0,a.default)(c)===b.auto)return[];var m=(0,e.default)(c);return[(0,t.default)(c),m,(0,t.default)(m)]}function g(c){var m=c.state,l=c.options,d=c.name;if(!m.modifiersData[d]._skip){for(var s=l.mainAxis,i=s===void 0?!0:s,h=l.altAxis,C=h===void 0?!0:h,v=l.fallbackPlacements,p=l.padding,N=l.boundary,V=l.rootBoundary,y=l.altBoundary,B=l.flipVariations,L=B===void 0?!0:B,w=l.allowedAutoPlacements,x=m.options.placement,T=(0,a.default)(x),M=T===x,O=v||(M||!L?[(0,e.default)(x)]:k(x)),D=[x].concat(O).reduce(function(re,oe){return re.concat((0,a.default)(oe)===b.auto?(0,f.default)(m,{placement:oe,boundary:N,rootBoundary:V,padding:p,flipVariations:L,allowedAutoPlacements:w}):oe)},[]),E=m.rects.reference,P=m.rects.popper,R=new Map,j=!0,F=D[0],W=0;W=0,Q=J?"width":"height",ue=(0,o.default)(m,{placement:z,boundary:N,rootBoundary:V,altBoundary:y,padding:p}),ie=J?G?b.right:b.left:G?b.bottom:b.top;E[Q]>P[Q]&&(ie=(0,e.default)(ie));var pe=(0,e.default)(ie),te=[];if(i&&te.push(ue[K]<=0),C&&te.push(ue[ie]<=0,ue[pe]<=0),te.every(function(re){return re})){F=z,j=!1;break}R.set(z,te)}if(j)for(var q=L?3:1,ne=function(){function re(oe){var fe=D.find(function(me){var Y=R.get(me);if(Y)return Y.slice(0,oe).every(function(ve){return ve})});if(fe)return F=fe,"break"}return re}(),le=q;le>0;le--){var ee=ne(le);if(ee==="break")break}m.placement!==F&&(m.modifiersData[d]._skip=!0,m.placement=F,m.reset=!0)}}var u=r.default={name:"flip",enabled:!0,phase:"main",fn:g,requiresIfExists:["offset"],data:{_skip:!1}}},83761:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=n(46206),a=t(n(17633));function t(I){return I&&I.__esModule?I:{default:I}}function o(I,k,g){return g===void 0&&(g={x:0,y:0}),{top:I.top-k.height-g.y,right:I.right-k.width+g.x,bottom:I.bottom-k.height+g.y,left:I.left-k.width-g.x}}function f(I){return[e.top,e.right,e.bottom,e.left].some(function(k){return I[k]>=0})}function b(I){var k=I.state,g=I.name,u=k.rects.reference,c=k.rects.popper,m=k.modifiersData.preventOverflow,l=(0,a.default)(k,{elementContext:"reference"}),d=(0,a.default)(k,{altBoundary:!0}),s=o(l,u),i=o(d,c,m),h=f(s),C=f(i);k.modifiersData[g]={referenceClippingOffsets:s,popperEscapeOffsets:i,isReferenceHidden:h,hasPopperEscaped:C},k.attributes.popper=Object.assign({},k.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":C})}var S=r.default={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:b}},39805:function(A,r,n){"use strict";r.__esModule=!0,r.preventOverflow=r.popperOffsets=r.offset=r.hide=r.flip=r.eventListeners=r.computeStyles=r.arrow=r.applyStyles=void 0;var e=g(n(19975));r.applyStyles=e.default;var a=g(n(52744));r.arrow=a.default;var t=g(n(59894));r.computeStyles=t.default;var o=g(n(36692));r.eventListeners=o.default;var f=g(n(23798));r.flip=f.default;var b=g(n(83761));r.hide=b.default;var S=g(n(61410));r.offset=S.default;var I=g(n(40107));r.popperOffsets=I.default;var k=g(n(75137));r.preventOverflow=k.default;function g(u){return u&&u.__esModule?u:{default:u}}},61410:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0,r.distanceAndSkiddingToXY=o;var e=t(n(83104)),a=n(46206);function t(S){return S&&S.__esModule?S:{default:S}}function o(S,I,k){var g=(0,e.default)(S),u=[a.left,a.top].indexOf(g)>=0?-1:1,c=typeof k=="function"?k(Object.assign({},I,{placement:S})):k,m=c[0],l=c[1];return m=m||0,l=(l||0)*u,[a.left,a.right].indexOf(g)>=0?{x:l,y:m}:{x:m,y:l}}function f(S){var I=S.state,k=S.options,g=S.name,u=k.offset,c=u===void 0?[0,0]:u,m=a.placements.reduce(function(i,h){return i[h]=o(h,I.rects,c),i},{}),l=m[I.placement],d=l.x,s=l.y;I.modifiersData.popperOffsets!=null&&(I.modifiersData.popperOffsets.x+=d,I.modifiersData.popperOffsets.y+=s),I.modifiersData[g]=m}var b=r.default={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:f}},40107:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=a(n(89951));function a(f){return f&&f.__esModule?f:{default:f}}function t(f){var b=f.state,S=f.name;b.modifiersData[S]=(0,e.default)({reference:b.rects.reference,element:b.rects.popper,strategy:"absolute",placement:b.placement})}var o=r.default={name:"popperOffsets",enabled:!0,phase:"read",fn:t,data:{}}},75137:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=n(46206),a=c(n(83104)),t=c(n(41199)),o=c(n(28066)),f=n(28595),b=c(n(28811)),S=c(n(44896)),I=c(n(17633)),k=c(n(45)),g=c(n(34780)),u=n(63618);function c(d){return d&&d.__esModule?d:{default:d}}function m(d){var s=d.state,i=d.options,h=d.name,C=i.mainAxis,v=C===void 0?!0:C,p=i.altAxis,N=p===void 0?!1:p,V=i.boundary,y=i.rootBoundary,B=i.altBoundary,L=i.padding,w=i.tether,x=w===void 0?!0:w,T=i.tetherOffset,M=T===void 0?0:T,O=(0,I.default)(s,{boundary:V,rootBoundary:y,padding:L,altBoundary:B}),D=(0,a.default)(s.placement),E=(0,k.default)(s.placement),P=!E,R=(0,t.default)(D),j=(0,o.default)(R),F=s.modifiersData.popperOffsets,W=s.rects.reference,z=s.rects.popper,K=typeof M=="function"?M(Object.assign({},s.rects,{placement:s.placement})):M,G=typeof K=="number"?{mainAxis:K,altAxis:K}:Object.assign({mainAxis:0,altAxis:0},K),J=s.modifiersData.offset?s.modifiersData.offset[s.placement]:null,Q={x:0,y:0};if(F){if(v){var ue,ie=R==="y"?e.top:e.left,pe=R==="y"?e.bottom:e.right,te=R==="y"?"height":"width",q=F[R],ne=q+O[ie],le=q-O[pe],ee=x?-z[te]/2:0,re=E===e.start?W[te]:z[te],oe=E===e.start?-z[te]:-W[te],fe=s.elements.arrow,me=x&&fe?(0,b.default)(fe):{width:0,height:0},Y=s.modifiersData["arrow#persistent"]?s.modifiersData["arrow#persistent"].padding:(0,g.default)(),ve=Y[ie],he=Y[pe],Ve=(0,f.within)(0,W[te],me[te]),Be=P?W[te]/2-ee-Ve-ve-G.mainAxis:re-Ve-ve-G.mainAxis,be=P?-W[te]/2+ee+Ve+he+G.mainAxis:oe+Ve+he+G.mainAxis,Le=s.elements.arrow&&(0,S.default)(s.elements.arrow),we=Le?R==="y"?Le.clientTop||0:Le.clientLeft||0:0,xe=(ue=J==null?void 0:J[R])!=null?ue:0,Re=q+Be-xe-we,He=q+be-xe,ye=(0,f.within)(x?(0,u.min)(ne,Re):ne,q,x?(0,u.max)(le,He):le);F[R]=ye,Q[R]=ye-q}if(N){var de,Ce=R==="x"?e.top:e.left,ke=R==="x"?e.bottom:e.right,ge=F[j],Se=j==="y"?"height":"width",Pe=ge+O[Ce],je=ge-O[ke],_e=[e.top,e.left].indexOf(D)!==-1,ze=(de=J==null?void 0:J[j])!=null?de:0,We=_e?Pe:ge-W[Se]-z[Se]-ze+G.altAxis,Ue=_e?ge+W[Se]+z[Se]-ze-G.altAxis:je,Xe=x&&_e?(0,f.withinMaxClamp)(We,ge,Ue):(0,f.within)(x?We:Pe,ge,x?Ue:je);F[j]=Xe,Q[j]=Xe-ge}s.modifiersData[h]=Q}}var l=r.default={name:"preventOverflow",enabled:!0,phase:"main",fn:m,requiresIfExists:["offset"]}},2473:function(A,r,n){"use strict";r.__esModule=!0,r.defaultModifiers=r.createPopper=void 0;var e=n(96376);r.popperGenerator=e.popperGenerator,r.detectOverflow=e.detectOverflow;var a=b(n(36692)),t=b(n(40107)),o=b(n(59894)),f=b(n(19975));function b(k){return k&&k.__esModule?k:{default:k}}var S=r.defaultModifiers=[a.default,t.default,o.default,f.default],I=r.createPopper=(0,e.popperGenerator)({defaultModifiers:S})},83312:function(A,r,n){"use strict";r.__esModule=!0;var e={createPopper:!0,createPopperLite:!0,defaultModifiers:!0,popperGenerator:!0,detectOverflow:!0};r.defaultModifiers=r.createPopperLite=r.createPopper=void 0;var a=n(96376);r.popperGenerator=a.popperGenerator,r.detectOverflow=a.detectOverflow;var t=l(n(36692)),o=l(n(40107)),f=l(n(59894)),b=l(n(19975)),S=l(n(61410)),I=l(n(23798)),k=l(n(75137)),g=l(n(52744)),u=l(n(83761)),c=n(2473);r.createPopperLite=c.createPopper;var m=n(39805);Object.keys(m).forEach(function(i){i==="default"||i==="__esModule"||Object.prototype.hasOwnProperty.call(e,i)||i in r&&r[i]===m[i]||(r[i]=m[i])});function l(i){return i&&i.__esModule?i:{default:i}}var d=r.defaultModifiers=[t.default,o.default,f.default,b.default,S.default,I.default,k.default,g.default,u.default],s=r.createPopperLite=r.createPopper=(0,a.popperGenerator)({defaultModifiers:d})},9041:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(45)),a=n(46206),t=f(n(17633)),o=f(n(83104));function f(S){return S&&S.__esModule?S:{default:S}}function b(S,I){I===void 0&&(I={});var k=I,g=k.placement,u=k.boundary,c=k.rootBoundary,m=k.padding,l=k.flipVariations,d=k.allowedAutoPlacements,s=d===void 0?a.placements:d,i=(0,e.default)(g),h=i?l?a.variationPlacements:a.variationPlacements.filter(function(p){return(0,e.default)(p)===i}):a.basePlacements,C=h.filter(function(p){return s.indexOf(p)>=0});C.length===0&&(C=h);var v=C.reduce(function(p,N){return p[N]=(0,t.default)(S,{placement:N,boundary:u,rootBoundary:c,padding:m})[(0,o.default)(N)],p},{});return Object.keys(v).sort(function(p,N){return v[p]-v[N]})}},89951:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(83104)),a=f(n(45)),t=f(n(41199)),o=n(46206);function f(S){return S&&S.__esModule?S:{default:S}}function b(S){var I=S.reference,k=S.element,g=S.placement,u=g?(0,e.default)(g):null,c=g?(0,a.default)(g):null,m=I.x+I.width/2-k.width/2,l=I.y+I.height/2-k.height/2,d;switch(u){case o.top:d={x:m,y:I.y-k.height};break;case o.bottom:d={x:m,y:I.y+I.height};break;case o.right:d={x:I.x+I.width,y:l};break;case o.left:d={x:I.x-k.width,y:l};break;default:d={x:I.x,y:I.y}}var s=u?(0,t.default)(u):null;if(s!=null){var i=s==="y"?"height":"width";switch(c){case o.start:d[s]=d[s]-(I[i]/2-k[i]/2);break;case o.end:d[s]=d[s]+(I[i]/2-k[i]/2);break;default:}}return d}},10579:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){var a;return function(){return a||(a=new Promise(function(t){Promise.resolve().then(function(){a=void 0,t(e())})})),a}}},17633:function(A,r,n){"use strict";r.__esModule=!0,r.default=u;var e=g(n(49035)),a=g(n(40600)),t=g(n(37786)),o=g(n(89951)),f=g(n(81666)),b=n(46206),S=n(75573),I=g(n(43286)),k=g(n(81447));function g(c){return c&&c.__esModule?c:{default:c}}function u(c,m){m===void 0&&(m={});var l=m,d=l.placement,s=d===void 0?c.placement:d,i=l.strategy,h=i===void 0?c.strategy:i,C=l.boundary,v=C===void 0?b.clippingParents:C,p=l.rootBoundary,N=p===void 0?b.viewport:p,V=l.elementContext,y=V===void 0?b.popper:V,B=l.altBoundary,L=B===void 0?!1:B,w=l.padding,x=w===void 0?0:w,T=(0,I.default)(typeof x!="number"?x:(0,k.default)(x,b.basePlacements)),M=y===b.popper?b.reference:b.popper,O=c.rects.popper,D=c.elements[L?M:y],E=(0,e.default)((0,S.isElement)(D)?D:D.contextElement||(0,a.default)(c.elements.popper),v,N,h),P=(0,t.default)(c.elements.reference),R=(0,o.default)({reference:P,element:O,strategy:"absolute",placement:s}),j=(0,f.default)(Object.assign({},O,R)),F=y===b.popper?j:P,W={top:E.top-F.top+T.top,bottom:F.bottom-E.bottom+T.bottom,left:E.left-F.left+T.left,right:F.right-E.right+T.right},z=c.modifiersData.offset;if(y===b.popper&&z){var K=z[s];Object.keys(W).forEach(function(G){var J=[b.right,b.bottom].indexOf(G)>=0?1:-1,Q=[b.top,b.bottom].indexOf(G)>=0?"y":"x";W[G]+=K[Q]*J})}return W}},81447:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e,a){return a.reduce(function(t,o){return t[o]=e,t},{})}},28066:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return e==="x"?"y":"x"}},83104:function(A,r,n){"use strict";r.__esModule=!0,r.default=a;var e=n(46206);function a(t){return t.split("-")[0]}},34780:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(){return{top:0,right:0,bottom:0,left:0}}},41199:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}},71376:function(A,r){"use strict";r.__esModule=!0,r.default=e;var n={left:"right",right:"left",bottom:"top",top:"bottom"};function e(a){return a.replace(/left|right|bottom|top/g,function(t){return n[t]})}},86459:function(A,r){"use strict";r.__esModule=!0,r.default=e;var n={start:"end",end:"start"};function e(a){return a.replace(/start|end/g,function(t){return n[t]})}},45:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return e.split("-")[1]}},63618:function(A,r){"use strict";r.__esModule=!0,r.round=r.min=r.max=void 0;var n=r.max=Math.max,e=r.min=Math.min,a=r.round=Math.round},56500:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){var a=e.reduce(function(t,o){var f=t[o.name];return t[o.name]=f?Object.assign({},f,o,{options:Object.assign({},f.options,o.options),data:Object.assign({},f.data,o.data)}):o,t},{});return Object.keys(a).map(function(t){return a[t]})}},43286:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(34780));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){return Object.assign({},(0,e.default)(),o)}},33118:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=n(46206);function a(o){var f=new Map,b=new Set,S=[];o.forEach(function(k){f.set(k.name,k)});function I(k){b.add(k.name);var g=[].concat(k.requires||[],k.requiresIfExists||[]);g.forEach(function(u){if(!b.has(u)){var c=f.get(u);c&&I(c)}}),S.push(k)}return o.forEach(function(k){b.has(k.name)||I(k)}),S}function t(o){var f=a(o);return e.modifierPhases.reduce(function(b,S){return b.concat(f.filter(function(I){return I.phase===S}))},[])}},81666:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}},35366:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(a){return a.brand+"/"+a.version}).join(" "):navigator.userAgent}},28595:function(A,r,n){"use strict";r.__esModule=!0,r.within=a,r.withinMaxClamp=t;var e=n(63618);function a(o,f,b){return(0,e.max)(o,(0,e.min)(f,b))}function t(o,f,b){var S=a(o,f,b);return S>b?b:S}},15875:function(A,r){"use strict";r.__esModule=!0,r.VNodeFlags=r.ChildFlags=void 0;var n;(function(a){a[a.Unknown=0]="Unknown",a[a.HtmlElement=1]="HtmlElement",a[a.ComponentUnknown=2]="ComponentUnknown",a[a.ComponentClass=4]="ComponentClass",a[a.ComponentFunction=8]="ComponentFunction",a[a.Text=16]="Text",a[a.SvgElement=32]="SvgElement",a[a.InputElement=64]="InputElement",a[a.TextareaElement=128]="TextareaElement",a[a.SelectElement=256]="SelectElement",a[a.Portal=1024]="Portal",a[a.ReCreate=2048]="ReCreate",a[a.ContentEditable=4096]="ContentEditable",a[a.Fragment=8192]="Fragment",a[a.InUse=16384]="InUse",a[a.ForwardRef=32768]="ForwardRef",a[a.Normalized=65536]="Normalized",a[a.ForwardRefComponent=32776]="ForwardRefComponent",a[a.FormElement=448]="FormElement",a[a.Element=481]="Element",a[a.Component=14]="Component",a[a.DOMRef=1521]="DOMRef",a[a.InUseOrNormalized=81920]="InUseOrNormalized",a[a.ClearInUse=-16385]="ClearInUse",a[a.ComponentKnown=12]="ComponentKnown"})(n||(r.VNodeFlags=n={}));var e;(function(a){a[a.UnknownChildren=0]="UnknownChildren",a[a.HasInvalidChildren=1]="HasInvalidChildren",a[a.HasVNodeChildren=2]="HasVNodeChildren",a[a.HasNonKeyedChildren=4]="HasNonKeyedChildren",a[a.HasKeyedChildren=8]="HasKeyedChildren",a[a.HasTextChildren=16]="HasTextChildren",a[a.MultipleChildren=12]="MultipleChildren"})(e||(r.ChildFlags=e={}))},89292:function(A,r){"use strict";r.__esModule=!0,r.Fragment=r.EMPTY_OBJ=r.Component=r.AnimationQueues=void 0,r._CI=Ot,r._HI=me,r._M=$e,r._MCCC=_t,r._ME=Dt,r._MFCC=Ft,r._MP=Mt,r._MR=at,r._RFC=gt,r.__render=Ht,r.createComponentVNode=ue,r.createFragment=pe,r.createPortal=ee,r.createRef=nn,r.createRenderer=En,r.createTextVNode=ie,r.createVNode=K,r.directClone=ne,r.findDOMFromVNode=V,r.forwardRef=on,r.getFlagsForElementVnode=oe,r.linkEvent=g,r.normalizeProps=te,r.options=void 0,r.render=zt,r.rerender=Kt,r.version=void 0;var n=Array.isArray;function e(_){var U=typeof _;return U==="string"||U==="number"}function a(_){return _==null}function t(_){return _===null||_===!1||_===!0||_===void 0}function o(_){return typeof _=="function"}function f(_){return typeof _=="string"}function b(_){return typeof _=="number"}function S(_){return _===null}function I(_){return _===void 0}function k(_,U){var H={};if(_)for(var $ in _)H[$]=_[$];if(U)for(var Z in U)H[Z]=U[Z];return H}function g(_,U){return o(U)?{data:_,event:U}:null}function u(_){return!S(_)&&typeof _=="object"}var c=r.EMPTY_OBJ={},m=r.Fragment="$F",l=r.AnimationQueues=function(){function _(){this.componentDidAppear=[],this.componentWillDisappear=[],this.componentWillMove=[]}return _}();function d(_){return _.substring(2).toLowerCase()}function s(_,U){_.appendChild(U)}function i(_,U,H){S(H)?s(_,U):_.insertBefore(U,H)}function h(_,U){return U?document.createElementNS("http://www.w3.org/2000/svg",_):document.createElement(_)}function C(_,U,H){_.replaceChild(U,H)}function v(_,U){_.removeChild(U)}function p(_){for(var U=0;U<_.length;U++)_[U]()}function N(_,U,H){var $=_.children;return H&4?$.$LI:H&8192?_.childFlags===2?$:$[U?0:$.length-1]:$}function V(_,U){for(var H;_;){if(H=_.flags,H&1521)return _.dom;_=N(_,U,H)}return null}function y(_,U){for(var H=_.length,$;($=_.pop())!==void 0;)$(function(){--H<=0&&o(U)&&U()})}function B(_){for(var U=0;U<_.length;U++)_[U].fn();for(var H=0;H<_.length;H++){var $=_[H];i($.parent,$.dom,$.next)}_.splice(0,_.length)}function L(_,U,H){do{var $=_.flags;if($&1521){(!H||_.dom.parentNode===U)&&v(U,_.dom);return}var Z=_.children;if($&4&&(_=Z.$LI),$&8&&(_=Z),$&8192)if(_.childFlags===2)_=Z;else{for(var ae=0,ce=Z.length;ae0?y(H.componentWillDisappear,w(_,U)):L(_,U,!1)}function T(_,U,H,$,Z,ae,ce,se){_.componentWillMove.push({dom:$,fn:function(){function Ne(){ce&4?H.componentWillMove(U,Z,$):ce&8&&H.onComponentWillMove(U,Z,$,se)}return Ne}(),next:ae,parent:Z})}function M(_,U,H,$,Z){var ae,ce,se=U.flags;do{var Ne=U.flags;if(Ne&1521){!a(ae)&&(o(ae.componentWillMove)||o(ae.onComponentWillMove))?T(Z,_,ae,U.dom,H,$,se,ce):i(H,U.dom,$);return}var Te=U.children;if(Ne&4)ae=U.children,ce=U.props,U=Te.$LI;else if(Ne&8)ae=U.ref,ce=U.props,U=Te;else if(Ne&8192)if(U.childFlags===2)U=Te;else{for(var Ie=0,Ee=Te.length;Ie0,Te=S(se),Ie=f(se)&&se[0]===W;Ne||Te||Ie?(H=H||U.slice(0,ae),(Ne||Ie)&&(ce=ne(ce)),(Te||Ie)&&(ce.key=W+ae),H.push(ce)):H&&H.push(ce),ce.flags|=65536}}H=H||U,H.length===0?$=1:$=8}else H=U,H.flags|=65536,U.flags&81920&&(H=ne(U)),$=2;return _.children=H,_.childFlags=$,_}function me(_){return t(_)||e(_)?ie(_,null):n(_)?pe(_,0,null):_.flags&16384?ne(_):_}var Y="http://www.w3.org/1999/xlink",ve="http://www.w3.org/XML/1998/namespace",he={"xlink:actuate":Y,"xlink:arcrole":Y,"xlink:href":Y,"xlink:role":Y,"xlink:show":Y,"xlink:title":Y,"xlink:type":Y,"xml:base":ve,"xml:lang":ve,"xml:space":ve};function Ve(_){return{onClick:_,onDblClick:_,onFocusIn:_,onFocusOut:_,onKeyDown:_,onKeyPress:_,onKeyUp:_,onMouseDown:_,onMouseMove:_,onMouseUp:_,onTouchEnd:_,onTouchMove:_,onTouchStart:_}}var Be=Ve(0),be=Ve(null),Le=Ve(!0);function we(_,U){var H=U.$EV;return H||(H=U.$EV=Ve(null)),H[_]||++Be[_]===1&&(be[_]=je(_)),H}function xe(_,U){var H=U.$EV;H&&H[_]&&(--Be[_]===0&&(document.removeEventListener(d(_),be[_]),be[_]=null),H[_]=null)}function Re(_,U,H,$){if(o(H))we(_,$)[_]=H;else if(u(H)){if(R(U,H))return;we(_,$)[_]=H}else xe(_,$)}function He(_){return o(_.composedPath)?_.composedPath()[0]:_.target}function ye(_,U,H,$){var Z=He(_);do{if(U&&Z.disabled)return;var ae=Z.$EV;if(ae){var ce=ae[H];if(ce&&($.dom=Z,ce.event?ce.event(ce.data,_):ce(_),_.cancelBubble))return}Z=Z.parentNode}while(!S(Z))}function de(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function Ce(){return this.defaultPrevented}function ke(){return this.cancelBubble}function ge(_){var U={dom:document};return _.isDefaultPrevented=Ce,_.isPropagationStopped=ke,_.stopPropagation=de,Object.defineProperty(_,"currentTarget",{configurable:!0,get:function(){function H(){return U.dom}return H}()}),U}function Se(_){return function(U){if(U.button!==0){U.stopPropagation();return}ye(U,!0,_,ge(U))}}function Pe(_){return function(U){ye(U,!1,_,ge(U))}}function je(_){var U=_==="onClick"||_==="onDblClick"?Se(_):Pe(_);return document.addEventListener(d(_),U),U}function _e(_,U){var H=document.createElement("i");return H.innerHTML=U,H.innerHTML===_.innerHTML}function ze(_,U,H){if(_[U]){var $=_[U];$.event?$.event($.data,H):$(H)}else{var Z=U.toLowerCase();_[Z]&&_[Z](H)}}function We(_,U){var H=function(){function $(Z){var ae=this.$V;if(ae){var ce=ae.props||c,se=ae.dom;if(f(_))ze(ce,_,Z);else for(var Ne=0;Ne<_.length;++Ne)ze(ce,_[Ne],Z);if(o(U)){var Te=this.$V,Ie=Te.props||c;U(Ie,se,!1,Te)}}}return $}();return Object.defineProperty(H,"wrapped",{configurable:!1,enumerable:!1,value:!0,writable:!1}),H}function Ue(_,U,H){var $="$"+U,Z=_[$];if(Z){if(Z[1].wrapped)return;_.removeEventListener(Z[0],Z[1]),_[$]=null}o(H)&&(_.addEventListener(U,H),_[$]=[U,H])}function Xe(_){return _==="checkbox"||_==="radio"}var yt=We("onInput",dt),St=We(["onClick","onChange"],dt);function Ct(_){_.stopPropagation()}Ct.wrapped=!0;function Bt(_,U){Xe(U.type)?(Ue(_,"change",St),Ue(_,"click",Ct)):Ue(_,"input",yt)}function dt(_,U){var H=_.type,$=_.value,Z=_.checked,ae=_.multiple,ce=_.defaultValue,se=!a($);H&&H!==U.type&&U.setAttribute("type",H),!a(ae)&&ae!==U.multiple&&(U.multiple=ae),!a(ce)&&!se&&(U.defaultValue=ce+""),Xe(H)?(se&&(U.value=$),a(Z)||(U.checked=Z)):se&&U.value!==$?(U.defaultValue=$,U.value=$):a(Z)||(U.checked=Z)}function rt(_,U){if(_.type==="option")It(_,U);else{var H=_.children,$=_.flags;if($&4)rt(H.$LI,U);else if($&8)rt(H,U);else if(_.childFlags===2)rt(H,U);else if(_.childFlags&12)for(var Z=0,ae=H.length;Z-1&&U.options[ae]&&(se=U.options[ae].value),H&&a(se)&&(se=_.defaultValue),rt($,se)}}var Zt=We("onInput",Tt),qt=We("onChange");function en(_,U){Ue(_,"input",Zt),U.onChange&&Ue(_,"change",qt)}function Tt(_,U,H){var $=_.value,Z=U.value;if(a($)){if(H){var ae=_.defaultValue;!a(ae)&&ae!==Z&&(U.defaultValue=ae,U.value=ae)}}else Z!==$&&(U.defaultValue=$,U.value=$)}function xt(_,U,H,$,Z,ae){_&64?dt($,H):_&256?wt($,H,Z,U):_&128&&Tt($,H,Z),ae&&(H.$V=U)}function tn(_,U,H){_&64?Bt(U,H):_&256?Qt(U):_&128&&en(U,H)}function At(_){return _.type&&Xe(_.type)?!a(_.checked):!a(_.value)}function nn(){return{current:null}}function on(_){var U={render:_};return U}function st(_){_&&!F(_,null)&&_.current&&(_.current=null)}function at(_,U,H){_&&(o(_)||_.current!==void 0)&&H.push(function(){!F(_,U)&&_.current!==void 0&&(_.current=U)})}function Je(_,U,H){Ze(_,H),x(_,U,H)}function Ze(_,U){var H=_.flags,$=_.children,Z;if(H&481){Z=_.ref;var ae=_.props;st(Z);var ce=_.childFlags;if(!S(ae))for(var se=Object.keys(ae),Ne=0,Te=se.length;Ne0?y(H.componentWillDisappear,rn(U,_)):_.textContent=""}function pt(_,U,H,$){ct(H,$),U.flags&8192?x(U,_,$):mt(_,H,$)}function Et(_,U,H,$,Z){_.componentWillDisappear.push(function(ae){$&4?U.componentWillDisappear(H,ae):$&8&&U.onComponentWillDisappear(H,Z,ae)})}function an(_){var U=_.event;return function(H){U(_.data,H)}}function cn(_,U,H,$){if(u(H)){if(R(U,H))return;H=an(H)}Ue($,d(_),H)}function ln(_,U,H){if(a(U)){H.removeAttribute("style");return}var $=H.style,Z,ae;if(f(U)){$.cssText=U;return}if(!a(_)&&!f(_)){for(Z in U)ae=U[Z],ae!==_[Z]&&$.setProperty(Z,ae);for(Z in _)a(U[Z])&&$.removeProperty(Z)}else for(Z in U)ae=U[Z],$.setProperty(Z,ae)}function un(_,U,H,$,Z){var ae=_&&_.__html||"",ce=U&&U.__html||"";ae!==ce&&!a(ce)&&!_e($,ce)&&(S(H)||(H.childFlags&12?ct(H.children,Z):H.childFlags===2&&Ze(H.children,Z),H.children=null,H.childFlags=1),$.innerHTML=ce)}function vt(_,U,H,$,Z,ae,ce,se){switch(_){case"children":case"childrenType":case"className":case"defaultValue":case"key":case"multiple":case"ref":case"selectedIndex":break;case"autoFocus":$.autofocus=!!H;break;case"allowfullscreen":case"autoplay":case"capture":case"checked":case"controls":case"default":case"disabled":case"hidden":case"indeterminate":case"loop":case"muted":case"novalidate":case"open":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"selected":$[_]=!!H;break;case"defaultChecked":case"value":case"volume":if(ae&&_==="value")break;var Ne=a(H)?"":H;$[_]!==Ne&&($[_]=Ne);break;case"style":ln(U,H,$);break;case"dangerouslySetInnerHTML":un(U,H,ce,$,se);break;default:Le[_]?Re(_,U,H,$):_.charCodeAt(0)===111&&_.charCodeAt(1)===110?cn(_,U,H,$):a(H)?$.removeAttribute(_):Z&&he[_]?$.setAttributeNS(he[_],_,H):$.setAttribute(_,H);break}}function Mt(_,U,H,$,Z,ae){var ce=!1,se=(U&448)>0;se&&(ce=At(H),ce&&tn(U,$,H));for(var Ne in H)vt(Ne,null,H[Ne],$,Z,ce,null,ae);se&&xt(U,_,$,H,!0,ce)}function Pt(_,U,H){var $=me(_.render(U,_.state,H)),Z=H;return o(_.getChildContext)&&(Z=k(H,_.getChildContext())),_.$CX=Z,$}function Ot(_,U,H,$,Z,ae){var ce=new U(H,$),se=ce.$N=!!(U.getDerivedStateFromProps||ce.getSnapshotBeforeUpdate);if(ce.$SVG=Z,ce.$L=ae,_.children=ce,ce.$BS=!1,ce.context=$,ce.props===c&&(ce.props=H),se)ce.state=O(ce,H,ce.state);else if(o(ce.componentWillMount)){ce.$BR=!0,ce.componentWillMount();var Ne=ce.$PS;if(!S(Ne)){var Te=ce.state;if(S(Te))ce.state=Ne;else for(var Ie in Ne)Te[Ie]=Ne[Ie];ce.$PS=null}ce.$BR=!1}return ce.$LI=Pt(ce,H,$),ce}function gt(_,U){var H=_.props||c;return _.flags&32768?_.type.render(H,_.ref,U):_.type(H,U)}function $e(_,U,H,$,Z,ae,ce){var se=_.flags|=16384;se&481?Dt(_,U,H,$,Z,ae,ce):se&4?mn(_,U,H,$,Z,ae,ce):se&8?pn(_,U,H,$,Z,ae,ce):se&16?Rt(_,U,Z):se&8192?sn(_,H,U,$,Z,ae,ce):se&1024&&dn(_,H,U,Z,ae,ce)}function dn(_,U,H,$,Z,ae){$e(_.children,_.ref,U,!1,null,Z,ae);var ce=le();Rt(ce,H,$),_.dom=ce.dom}function sn(_,U,H,$,Z,ae,ce){var se=_.children,Ne=_.childFlags;Ne&12&&se.length===0&&(Ne=_.childFlags=2,se=_.children=le()),Ne===2?$e(se,H,U,$,Z,ae,ce):ot(se,H,U,$,Z,ae,ce)}function Rt(_,U,H){var $=_.dom=document.createTextNode(_.children);S(U)||i(U,$,H)}function Dt(_,U,H,$,Z,ae,ce){var se=_.flags,Ne=_.props,Te=_.className,Ie=_.childFlags,Ee=_.dom=h(_.type,$=$||(se&32)>0),Ae=_.children;if(!a(Te)&&Te!==""&&($?Ee.setAttribute("class",Te):Ee.className=Te),Ie===16)P(Ee,Ae);else if(Ie!==1){var Me=$&&_.type!=="foreignObject";Ie===2?(Ae.flags&16384&&(_.children=Ae=ne(Ae)),$e(Ae,Ee,H,Me,null,ae,ce)):(Ie===8||Ie===4)&&ot(Ae,Ee,H,Me,null,ae,ce)}S(U)||i(U,Ee,Z),S(Ne)||Mt(_,se,Ne,Ee,$,ce),at(_.ref,Ee,ae)}function ot(_,U,H,$,Z,ae,ce){for(var se=0;se<_.length;++se){var Ne=_[se];Ne.flags&16384&&(_[se]=Ne=ne(Ne)),$e(Ne,U,H,$,Z,ae,ce)}}function mn(_,U,H,$,Z,ae,ce){var se=Ot(_,_.type,_.props||c,H,$,ae),Ne=ce;o(se.componentDidAppear)&&(Ne=new l),$e(se.$LI,U,se.$CX,$,Z,ae,Ne),_t(_.ref,se,ae,ce)}function pn(_,U,H,$,Z,ae,ce){var se=_.ref,Ne=ce;!a(se)&&o(se.onComponentDidAppear)&&(Ne=new l),$e(_.children=me(gt(_,H)),U,H,$,Z,ae,Ne),Ft(_,ae,ce)}function fn(_){return function(){_.componentDidMount()}}function jt(_,U,H,$,Z){_.componentDidAppear.push(function(){$&4?U.componentDidAppear(H):$&8&&U.onComponentDidAppear(H,Z)})}function _t(_,U,H,$){at(_,U,H),o(U.componentDidMount)&&H.push(fn(U)),o(U.componentDidAppear)&&jt($,U,U.$LI.dom,4,void 0)}function hn(_,U){return function(){_.onComponentDidMount(V(U,!0),U.props||c)}}function Ft(_,U,H){var $=_.ref;a($)||(F($.onComponentWillMount,_.props||c),o($.onComponentDidMount)&&U.push(hn($,_)),o($.onComponentDidAppear)&&jt(H,$,V(_,!0),8,_.props))}function Cn(_,U,H,$,Z,ae,ce){Ze(_,ce),U.flags&_.flags&1521?($e(U,null,$,Z,null,ae,ce),C(H,U.dom,_.dom)):($e(U,H,$,Z,V(_,!0),ae,ce),x(_,H,ce))}function qe(_,U,H,$,Z,ae,ce,se){var Ne=U.flags|=16384;_.flags!==Ne||_.type!==U.type||_.key!==U.key||Ne&2048?_.flags&16384?Cn(_,U,H,$,Z,ce,se):$e(U,H,$,Z,ae,ce,se):Ne&481?bn(_,U,$,Z,Ne,ce,se):Ne&4?Sn(_,U,H,$,Z,ae,ce,se):Ne&8?Bn(_,U,H,$,Z,ae,ce,se):Ne&16?In(_,U):Ne&8192?Nn(_,U,H,$,Z,ce,se):Vn(_,U,$,ce,se)}function vn(_,U,H){_!==U&&(_!==""?H.firstChild.nodeValue=U:P(H,U))}function gn(_,U){_.textContent!==U&&(_.textContent=U)}function Nn(_,U,H,$,Z,ae,ce){var se=_.children,Ne=U.children,Te=_.childFlags,Ie=U.childFlags,Ee=null;Ie&12&&Ne.length===0&&(Ie=U.childFlags=2,Ne=U.children=le());var Ae=(Ie&2)!==0;if(Te&12){var Me=se.length;(Te&8&&Ie&8||Ae||!Ae&&Ne.length>Me)&&(Ee=V(se[Me-1],!1).nextSibling)}Nt(Te,Ie,se,Ne,H,$,Z,Ee,_,ae,ce)}function Vn(_,U,H,$,Z){var ae=_.ref,ce=U.ref,se=U.children;if(Nt(_.childFlags,U.childFlags,_.children,se,ae,H,!1,null,_,$,Z),U.dom=_.dom,ae!==ce&&!t(se)){var Ne=se.dom;v(ae,Ne),s(ce,Ne)}}function bn(_,U,H,$,Z,ae,ce){var se=U.dom=_.dom,Ne=_.props,Te=U.props,Ie=!1,Ee=!1,Ae;if($=$||(Z&32)>0,Ne!==Te){var Me=Ne||c;if(Ae=Te||c,Ae!==c){Ie=(Z&448)>0,Ie&&(Ee=At(Ae));for(var Fe in Ae){var Oe=Me[Fe],Ke=Ae[Fe];Oe!==Ke&&vt(Fe,Oe,Ke,se,$,Ee,_,ce)}}if(Me!==c)for(var De in Me)a(Ae[De])&&!a(Me[De])&&vt(De,Me[De],null,se,$,Ee,_,ce)}var tt=U.children,Ye=U.className;_.className!==Ye&&(a(Ye)?se.removeAttribute("class"):$?se.setAttribute("class",Ye):se.className=Ye),Z&4096?gn(se,tt):Nt(_.childFlags,U.childFlags,_.children,tt,se,H,$&&U.type!=="foreignObject",null,_,ae,ce),Ie&&xt(Z,U,se,Ae,!1,Ee);var it=U.ref,Qe=_.ref;Qe!==it&&(st(Qe),at(it,se,ae))}function kn(_,U,H,$,Z,ae,ce){Ze(_,ce),ot(U,H,$,Z,V(_,!0),ae,ce),x(_,H,ce)}function Nt(_,U,H,$,Z,ae,ce,se,Ne,Te,Ie){switch(_){case 2:switch(U){case 2:qe(H,$,Z,ae,ce,se,Te,Ie);break;case 1:Je(H,Z,Ie);break;case 16:Ze(H,Ie),P(Z,$);break;default:kn(H,$,Z,ae,ce,Te,Ie);break}break;case 1:switch(U){case 2:$e($,Z,ae,ce,se,Te,Ie);break;case 1:break;case 16:P(Z,$);break;default:ot($,Z,ae,ce,se,Te,Ie);break}break;case 16:switch(U){case 16:vn(H,$,Z);break;case 2:mt(Z,H,Ie),$e($,Z,ae,ce,se,Te,Ie);break;case 1:mt(Z,H,Ie);break;default:mt(Z,H,Ie),ot($,Z,ae,ce,se,Te,Ie);break}break;default:switch(U){case 16:ct(H,Ie),P(Z,$);break;case 2:pt(Z,Ne,H,Ie),$e($,Z,ae,ce,se,Te,Ie);break;case 1:pt(Z,Ne,H,Ie);break;default:var Ee=H.length|0,Ae=$.length|0;Ee===0?Ae>0&&ot($,Z,ae,ce,se,Te,Ie):Ae===0?pt(Z,Ne,H,Ie):U===8&&_===8?wn(H,$,Z,ae,ce,Ee,Ae,se,Ne,Te,Ie):Ln(H,$,Z,ae,ce,Ee,Ae,se,Te,Ie);break}break}}function yn(_,U,H,$,Z){Z.push(function(){_.componentDidUpdate(U,H,$)})}function Wt(_,U,H,$,Z,ae,ce,se,Ne,Te){var Ie=_.state,Ee=_.props,Ae=!!_.$N,Me=o(_.shouldComponentUpdate);if(Ae&&(U=O(_,H,U!==Ie?k(Ie,U):U)),ce||!Me||Me&&_.shouldComponentUpdate(H,U,Z)){!Ae&&o(_.componentWillUpdate)&&_.componentWillUpdate(H,U,Z),_.props=H,_.state=U,_.context=Z;var Fe=null,Oe=Pt(_,H,Z);Ae&&o(_.getSnapshotBeforeUpdate)&&(Fe=_.getSnapshotBeforeUpdate(Ee,Ie)),qe(_.$LI,Oe,$,_.$CX,ae,se,Ne,Te),_.$LI=Oe,o(_.componentDidUpdate)&&yn(_,Ee,Ie,Fe,Ne)}else _.props=H,_.state=U,_.context=Z}function Sn(_,U,H,$,Z,ae,ce,se){var Ne=U.children=_.children;if(!S(Ne)){Ne.$L=ce;var Te=U.props||c,Ie=U.ref,Ee=_.ref,Ae=Ne.state;if(!Ne.$N){if(o(Ne.componentWillReceiveProps)){if(Ne.$BR=!0,Ne.componentWillReceiveProps(Te,$),Ne.$UN)return;Ne.$BR=!1}S(Ne.$PS)||(Ae=k(Ae,Ne.$PS),Ne.$PS=null)}Wt(Ne,Ae,Te,H,$,Z,!1,ae,ce,se),Ee!==Ie&&(st(Ee),at(Ie,Ne,ce))}}function Bn(_,U,H,$,Z,ae,ce,se){var Ne=!0,Te=U.props||c,Ie=U.ref,Ee=_.props,Ae=!a(Ie),Me=_.children;if(Ae&&o(Ie.onComponentShouldUpdate)&&(Ne=Ie.onComponentShouldUpdate(Ee,Te)),Ne!==!1){Ae&&o(Ie.onComponentWillUpdate)&&Ie.onComponentWillUpdate(Ee,Te);var Fe=me(gt(U,$));qe(Me,Fe,H,$,Z,ae,ce,se),U.children=Fe,Ae&&o(Ie.onComponentDidUpdate)&&Ie.onComponentDidUpdate(Ee,Te)}else U.children=Me}function In(_,U){var H=U.children,$=U.dom=_.dom;H!==_.children&&($.nodeValue=H)}function Ln(_,U,H,$,Z,ae,ce,se,Ne,Te){for(var Ie=ae>ce?ce:ae,Ee=0,Ae,Me;Eece)for(Ee=Ie;EeEe||Me>Ae)break e;Fe=_[Me],Oe=U[Me]}for(Fe=_[Ee],Oe=U[Ae];Fe.key===Oe.key;){if(Oe.flags&16384&&(U[Ae]=Oe=ne(Oe)),qe(Fe,Oe,H,$,Z,se,Te,Ie),_[Ee]=Oe,Ee--,Ae--,Me>Ee||Me>Ae)break e;Fe=_[Ee],Oe=U[Ae]}}if(Me>Ee){if(Me<=Ae)for(Ke=Ae+1,De=KeAe)for(;Me<=Ee;)Je(_[Me++],H,Ie);else Tn(_,U,$,ae,ce,Ee,Ae,Me,H,Z,se,Ne,Te,Ie)}function Tn(_,U,H,$,Z,ae,ce,se,Ne,Te,Ie,Ee,Ae,Me){var Fe,Oe,Ke=0,De=0,tt=se,Ye=se,it=ae-se+1,Qe=ce-se+1,lt=new Int32Array(Qe+1),nt=it===$,bt=!1,Ge=0,ut=0;if(Z<4||(it|Qe)<32)for(De=tt;De<=ae;++De)if(Fe=_[De],utse?bt=!0:Ge=se,Oe.flags&16384&&(U[se]=Oe=ne(Oe)),qe(Fe,Oe,Ne,H,Te,Ie,Ae,Me),++ut;break}!nt&&se>ce&&Je(Fe,Ne,Me)}else nt||Je(Fe,Ne,Me);else{var Yt={};for(De=Ye;De<=ce;++De)Yt[U[De].key]=De;for(De=tt;De<=ae;++De)if(Fe=_[De],uttt;)Je(_[tt++],Ne,Me);lt[se-Ye]=De+1,Ge>se?bt=!0:Ge=se,Oe=U[se],Oe.flags&16384&&(U[se]=Oe=ne(Oe)),qe(Fe,Oe,Ne,H,Te,Ie,Ae,Me),++ut}else nt||Je(Fe,Ne,Me);else nt||Je(Fe,Ne,Me)}if(nt)pt(Ne,Ee,_,Me),ot(U,Ne,H,Te,Ie,Ae,Me);else if(bt){var Xt=xn(lt);for(se=Xt.length-1,De=Qe-1;De>=0;De--)lt[De]===0?(Ge=De+Ye,Oe=U[Ge],Oe.flags&16384&&(U[Ge]=Oe=ne(Oe)),Ke=Ge+1,$e(Oe,Ne,H,Te,Ke0&&B(Me.componentWillMove)}else if(ut!==Qe)for(De=Qe-1;De>=0;De--)lt[De]===0&&(Ge=De+Ye,Oe=U[Ge],Oe.flags&16384&&(U[Ge]=Oe=ne(Oe)),Ke=Ge+1,$e(Oe,Ne,H,Te,KeUt&&(Ut=Ne,et=new Int32Array(Ne),ft=new Int32Array(Ne));H>1,_[et[se]]0&&(ft[H]=et[ae-1]),et[ae]=H)}ae=Z+1;var Te=new Int32Array(ae);for(ce=et[ae-1];ae-- >0;)Te[ae]=ce,ce=ft[ce],et[ae]=0;return Te}var An=typeof document!="undefined";An&&window.Node&&(Node.prototype.$EV=null,Node.prototype.$V=null);function Ht(_,U,H,$){var Z=[],ae=new l,ce=U.$V;D.v=!0,a(ce)?a(_)||(_.flags&16384&&(_=ne(_)),$e(_,U,$,!1,null,Z,ae),U.$V=_,ce=_):a(_)?(Je(ce,U,ae),U.$V=null):(_.flags&16384&&(_=ne(_)),qe(ce,_,U,$,!1,null,Z,ae),ce=U.$V=_),p(Z),y(ae.componentDidAppear),D.v=!1,o(H)&&H(),o(E.renderComplete)&&E.renderComplete(ce,U)}function zt(_,U,H,$){H===void 0&&(H=null),$===void 0&&($=c),Ht(_,U,H,$)}function En(_){return function(){function U(H,$,Z,ae){_||(_=H),zt($,_,Z,ae)}return U}()}var ht=[],Mn=typeof Promise!="undefined"?Promise.resolve().then.bind(Promise.resolve()):function(_){window.setTimeout(_,0)},Vt=!1;function $t(_,U,H,$){var Z=_.$PS;if(o(U)&&(U=U(Z?k(_.state,Z):_.state,_.props,_.context)),a(Z))_.$PS=U;else for(var ae in U)Z[ae]=U[ae];if(_.$BR)o(H)&&_.$L.push(H.bind(_));else{if(!D.v&&ht.length===0){Gt(_,$),o(H)&&H.call(_);return}if(ht.indexOf(_)===-1&&ht.push(_),$&&(_.$F=!0),Vt||(Vt=!0,Mn(Kt)),o(H)){var ce=_.$QU;ce||(ce=_.$QU=[]),ce.push(H)}}}function Pn(_){for(var U=_.$QU,H=0;H=0;--F){var W=this.tryEntries[F],z=W.completion;if(W.tryLoc==="root")return j("end");if(W.tryLoc<=this.prev){var K=a.call(W,"catchLoc"),G=a.call(W,"finallyLoc");if(K&&G){if(this.prev=0;--j){var F=this.tryEntries[j];if(F.tryLoc<=this.prev&&a.call(F,"finallyLoc")&&this.prev=0;--R){var j=this.tryEntries[R];if(j.finallyLoc===P)return this.complete(j.completion,j.afterLoc),T(j),s}}return E}(),catch:function(){function E(P){for(var R=this.tryEntries.length-1;R>=0;--R){var j=this.tryEntries[R];if(j.tryLoc===P){var F=j.completion;if(F.type==="throw"){var W=F.arg;T(j)}return W}}throw new Error("illegal catch attempt")}return E}(),delegateYield:function(){function E(P,R,j){return this.delegate={iterator:O(P),resultName:R,nextLoc:j},this.method==="next"&&(this.arg=o),s}return E}()},n}(A.exports);try{regeneratorRuntime=r}catch(n){typeof globalThis=="object"?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},30236:function(){"use strict";self.fetch||(self.fetch=function(A,r){return r=r||{},new Promise(function(n,e){var a=new XMLHttpRequest,t=[],o={},f=function(){function S(){return{ok:(a.status/100|0)==2,statusText:a.statusText,status:a.status,url:a.responseURL,text:function(){function I(){return Promise.resolve(a.responseText)}return I}(),json:function(){function I(){return Promise.resolve(a.responseText).then(JSON.parse)}return I}(),blob:function(){function I(){return Promise.resolve(new Blob([a.response]))}return I}(),clone:S,headers:{keys:function(){function I(){return t}return I}(),entries:function(){function I(){return t.map(function(k){return[k,a.getResponseHeader(k)]})}return I}(),get:function(){function I(k){return a.getResponseHeader(k)}return I}(),has:function(){function I(k){return a.getResponseHeader(k)!=null}return I}()}}}return S}();for(var b in a.open(r.method||"get",A,!0),a.onload=function(){a.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(S,I){o[I]||t.push(o[I]=I)}),n(f())},a.onerror=e,a.withCredentials=r.credentials=="include",r.headers)a.setRequestHeader(b,r.headers[b]);a.send(r.body||null)})})},88510:function(A,r){"use strict";r.__esModule=!0,r.zipWith=r.zip=r.uniqBy=r.uniq=r.toKeyedArray=r.toArray=r.sortBy=r.sort=r.reduce=r.range=r.map=r.filterMap=r.filter=void 0;function n(i,h){var C=typeof Symbol!="undefined"&&i[Symbol.iterator]||i["@@iterator"];if(C)return(C=C.call(i)).next.bind(C);if(Array.isArray(i)||(C=e(i))||h&&i&&typeof i.length=="number"){C&&(i=C);var v=0;return function(){return v>=i.length?{done:!0}:{done:!1,value:i[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function e(i,h){if(i){if(typeof i=="string")return a(i,h);var C={}.toString.call(i).slice(8,-1);return C==="Object"&&i.constructor&&(C=i.constructor.name),C==="Map"||C==="Set"?Array.from(i):C==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(C)?a(i,h):void 0}}function a(i,h){(h==null||h>i.length)&&(h=i.length);for(var C=0,v=Array(h);C0&&(0,a.round)(g.width)/S.offsetWidth||1,c=S.offsetHeight>0&&(0,a.round)(g.height)/S.offsetHeight||1);var m=(0,e.isElement)(S)?(0,t.default)(S):window,l=m.visualViewport,u=!(0,o.default)()&&k,s=(g.left+(u&&l?l.offsetLeft:0))/d,i=(g.top+(u&&l?l.offsetTop:0))/c,h=g.width/d,C=g.height/c;return{width:h,height:C,top:i,right:s+h,bottom:i+C,left:s,x:s,y:i}}},49035:function(A,r,n){"use strict";r.__esModule=!0,r.default=C;var e=n(46206),a=u(n(87991)),t=u(n(79752)),o=u(n(98309)),f=u(n(44896)),b=u(n(40600)),S=u(n(16599)),I=n(75573),k=u(n(37786)),g=u(n(57819)),d=u(n(4206)),c=u(n(12972)),m=u(n(81666)),l=n(63618);function u(v){return v&&v.__esModule?v:{default:v}}function s(v,p){var N=(0,k.default)(v,!1,p==="fixed");return N.top=N.top+v.clientTop,N.left=N.left+v.clientLeft,N.bottom=N.top+v.clientHeight,N.right=N.left+v.clientWidth,N.width=v.clientWidth,N.height=v.clientHeight,N.x=N.left,N.y=N.top,N}function i(v,p,N){return p===e.viewport?(0,m.default)((0,a.default)(v,N)):(0,I.isElement)(p)?s(p,N):(0,m.default)((0,t.default)((0,b.default)(v)))}function h(v){var p=(0,o.default)((0,g.default)(v)),N=["absolute","fixed"].indexOf((0,S.default)(v).position)>=0,V=N&&(0,I.isHTMLElement)(v)?(0,f.default)(v):v;return(0,I.isElement)(V)?p.filter(function(y){return(0,I.isElement)(y)&&(0,d.default)(y,V)&&(0,c.default)(y)!=="body"}):[]}function C(v,p,N,V){var y=p==="clippingParents"?h(v):[].concat(p),B=[].concat(y,[N]),L=B[0],w=B.reduce(function(x,T){var M=i(v,T,V);return x.top=(0,l.max)(M.top,x.top),x.right=(0,l.min)(M.right,x.right),x.bottom=(0,l.min)(M.bottom,x.bottom),x.left=(0,l.max)(M.left,x.left),x},i(v,L,V));return w.width=w.right-w.left,w.height=w.bottom-w.top,w.x=w.left,w.y=w.top,w}},74758:function(A,r,n){"use strict";r.__esModule=!0,r.default=d;var e=k(n(37786)),a=k(n(13390)),t=k(n(12972)),o=n(75573),f=k(n(79697)),b=k(n(40600)),S=k(n(10798)),I=n(63618);function k(c){return c&&c.__esModule?c:{default:c}}function g(c){var m=c.getBoundingClientRect(),l=(0,I.round)(m.width)/c.offsetWidth||1,u=(0,I.round)(m.height)/c.offsetHeight||1;return l!==1||u!==1}function d(c,m,l){l===void 0&&(l=!1);var u=(0,o.isHTMLElement)(m),s=(0,o.isHTMLElement)(m)&&g(m),i=(0,b.default)(m),h=(0,e.default)(c,s,l),C={scrollLeft:0,scrollTop:0},v={x:0,y:0};return(u||!u&&!l)&&(((0,t.default)(m)!=="body"||(0,S.default)(i))&&(C=(0,a.default)(m)),(0,o.isHTMLElement)(m)?(v=(0,e.default)(m,!0),v.x+=m.clientLeft,v.y+=m.clientTop):i&&(v.x=(0,f.default)(i))),{x:h.left+C.scrollLeft-v.x,y:h.top+C.scrollTop-v.y,width:h.width,height:h.height}}},16599:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(95115));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){return(0,e.default)(o).getComputedStyle(o)}},40600:function(A,r,n){"use strict";r.__esModule=!0,r.default=a;var e=n(75573);function a(t){return(((0,e.isElement)(t)?t.ownerDocument:t.document)||window.document).documentElement}},79752:function(A,r,n){"use strict";r.__esModule=!0,r.default=S;var e=b(n(40600)),a=b(n(16599)),t=b(n(79697)),o=b(n(43750)),f=n(63618);function b(I){return I&&I.__esModule?I:{default:I}}function S(I){var k,g=(0,e.default)(I),d=(0,o.default)(I),c=(k=I.ownerDocument)==null?void 0:k.body,m=(0,f.max)(g.scrollWidth,g.clientWidth,c?c.scrollWidth:0,c?c.clientWidth:0),l=(0,f.max)(g.scrollHeight,g.clientHeight,c?c.scrollHeight:0,c?c.clientHeight:0),u=-d.scrollLeft+(0,t.default)(I),s=-d.scrollTop;return(0,a.default)(c||g).direction==="rtl"&&(u+=(0,f.max)(g.clientWidth,c?c.clientWidth:0)-m),{width:m,height:l,x:u,y:s}}},3073:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}},28811:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(37786));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){var f=(0,e.default)(o),b=o.offsetWidth,S=o.offsetHeight;return Math.abs(f.width-b)<=1&&(b=f.width),Math.abs(f.height-S)<=1&&(S=f.height),{x:o.offsetLeft,y:o.offsetTop,width:b,height:S}}},12972:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return e?(e.nodeName||"").toLowerCase():null}},13390:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(43750)),a=f(n(95115)),t=n(75573),o=f(n(3073));function f(S){return S&&S.__esModule?S:{default:S}}function b(S){return S===(0,a.default)(S)||!(0,t.isHTMLElement)(S)?(0,e.default)(S):(0,o.default)(S)}},44896:function(A,r,n){"use strict";r.__esModule=!0,r.default=d;var e=I(n(95115)),a=I(n(12972)),t=I(n(16599)),o=n(75573),f=I(n(87031)),b=I(n(57819)),S=I(n(35366));function I(c){return c&&c.__esModule?c:{default:c}}function k(c){return!(0,o.isHTMLElement)(c)||(0,t.default)(c).position==="fixed"?null:c.offsetParent}function g(c){var m=/firefox/i.test((0,S.default)()),l=/Trident/i.test((0,S.default)());if(l&&(0,o.isHTMLElement)(c)){var u=(0,t.default)(c);if(u.position==="fixed")return null}var s=(0,b.default)(c);for((0,o.isShadowRoot)(s)&&(s=s.host);(0,o.isHTMLElement)(s)&&["html","body"].indexOf((0,a.default)(s))<0;){var i=(0,t.default)(s);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||m&&i.willChange==="filter"||m&&i.filter&&i.filter!=="none")return s;s=s.parentNode}return null}function d(c){for(var m=(0,e.default)(c),l=k(c);l&&(0,f.default)(l)&&(0,t.default)(l).position==="static";)l=k(l);return l&&((0,a.default)(l)==="html"||(0,a.default)(l)==="body"&&(0,t.default)(l).position==="static")?m:l||g(c)||m}},57819:function(A,r,n){"use strict";r.__esModule=!0,r.default=f;var e=o(n(12972)),a=o(n(40600)),t=n(75573);function o(b){return b&&b.__esModule?b:{default:b}}function f(b){return(0,e.default)(b)==="html"?b:b.assignedSlot||b.parentNode||((0,t.isShadowRoot)(b)?b.host:null)||(0,a.default)(b)}},24426:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(57819)),a=f(n(10798)),t=f(n(12972)),o=n(75573);function f(S){return S&&S.__esModule?S:{default:S}}function b(S){return["html","body","#document"].indexOf((0,t.default)(S))>=0?S.ownerDocument.body:(0,o.isHTMLElement)(S)&&(0,a.default)(S)?S:b((0,e.default)(S))}},87991:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(95115)),a=f(n(40600)),t=f(n(79697)),o=f(n(89331));function f(S){return S&&S.__esModule?S:{default:S}}function b(S,I){var k=(0,e.default)(S),g=(0,a.default)(S),d=k.visualViewport,c=g.clientWidth,m=g.clientHeight,l=0,u=0;if(d){c=d.width,m=d.height;var s=(0,o.default)();(s||!s&&I==="fixed")&&(l=d.offsetLeft,u=d.offsetTop)}return{width:c,height:m,x:l+(0,t.default)(S),y:u}}},95115:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var a=e.ownerDocument;return a&&a.defaultView||window}return e}},43750:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(95115));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){var f=(0,e.default)(o),b=f.pageXOffset,S=f.pageYOffset;return{scrollLeft:b,scrollTop:S}}},79697:function(A,r,n){"use strict";r.__esModule=!0,r.default=f;var e=o(n(37786)),a=o(n(40600)),t=o(n(43750));function o(b){return b&&b.__esModule?b:{default:b}}function f(b){return(0,e.default)((0,a.default)(b)).left+(0,t.default)(b).scrollLeft}},75573:function(A,r,n){"use strict";r.__esModule=!0,r.isElement=t,r.isHTMLElement=o,r.isShadowRoot=f;var e=a(n(95115));function a(b){return b&&b.__esModule?b:{default:b}}function t(b){var S=(0,e.default)(b).Element;return b instanceof S||b instanceof Element}function o(b){var S=(0,e.default)(b).HTMLElement;return b instanceof S||b instanceof HTMLElement}function f(b){if(typeof ShadowRoot=="undefined")return!1;var S=(0,e.default)(b).ShadowRoot;return b instanceof S||b instanceof ShadowRoot}},89331:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(35366));function a(o){return o&&o.__esModule?o:{default:o}}function t(){return!/^((?!chrome|android).)*safari/i.test((0,e.default)())}},10798:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(16599));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){var f=(0,e.default)(o),b=f.overflow,S=f.overflowX,I=f.overflowY;return/auto|scroll|overlay|hidden/.test(b+I+S)}},87031:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(12972));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){return["table","td","th"].indexOf((0,e.default)(o))>=0}},98309:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(24426)),a=f(n(57819)),t=f(n(95115)),o=f(n(10798));function f(S){return S&&S.__esModule?S:{default:S}}function b(S,I){var k;I===void 0&&(I=[]);var g=(0,e.default)(S),d=g===((k=S.ownerDocument)==null?void 0:k.body),c=(0,t.default)(g),m=d?[c].concat(c.visualViewport||[],(0,o.default)(g)?g:[]):g,l=I.concat(m);return d?l:l.concat(b((0,a.default)(m)))}},46206:function(A,r){"use strict";r.__esModule=!0,r.write=r.viewport=r.variationPlacements=r.top=r.start=r.right=r.reference=r.read=r.popper=r.placements=r.modifierPhases=r.main=r.left=r.end=r.clippingParents=r.bottom=r.beforeWrite=r.beforeRead=r.beforeMain=r.basePlacements=r.auto=r.afterWrite=r.afterRead=r.afterMain=void 0;var n=r.top="top",e=r.bottom="bottom",a=r.right="right",t=r.left="left",o=r.auto="auto",f=r.basePlacements=[n,e,a,t],b=r.start="start",S=r.end="end",I=r.clippingParents="clippingParents",k=r.viewport="viewport",g=r.popper="popper",d=r.reference="reference",c=r.variationPlacements=f.reduce(function(y,B){return y.concat([B+"-"+b,B+"-"+S])},[]),m=r.placements=[].concat(f,[o]).reduce(function(y,B){return y.concat([B,B+"-"+b,B+"-"+S])},[]),l=r.beforeRead="beforeRead",u=r.read="read",s=r.afterRead="afterRead",i=r.beforeMain="beforeMain",h=r.main="main",C=r.afterMain="afterMain",v=r.beforeWrite="beforeWrite",p=r.write="write",N=r.afterWrite="afterWrite",V=r.modifierPhases=[l,u,s,i,h,C,v,p,N]},95996:function(A,r,n){"use strict";r.__esModule=!0;var e={popperGenerator:!0,detectOverflow:!0,createPopperBase:!0,createPopper:!0,createPopperLite:!0};r.popperGenerator=r.detectOverflow=r.createPopperLite=r.createPopperBase=r.createPopper=void 0;var a=n(46206);Object.keys(a).forEach(function(S){S==="default"||S==="__esModule"||Object.prototype.hasOwnProperty.call(e,S)||S in r&&r[S]===a[S]||(r[S]=a[S])});var t=n(39805);Object.keys(t).forEach(function(S){S==="default"||S==="__esModule"||Object.prototype.hasOwnProperty.call(e,S)||S in r&&r[S]===t[S]||(r[S]=t[S])});var o=n(96376);r.popperGenerator=o.popperGenerator,r.detectOverflow=o.detectOverflow,r.createPopperBase=o.createPopper;var f=n(83312);r.createPopper=f.createPopper;var b=n(2473);r.createPopperLite=b.createPopper},19975:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=t(n(12972)),a=n(75573);function t(S){return S&&S.__esModule?S:{default:S}}function o(S){var I=S.state;Object.keys(I.elements).forEach(function(k){var g=I.styles[k]||{},d=I.attributes[k]||{},c=I.elements[k];!(0,a.isHTMLElement)(c)||!(0,e.default)(c)||(Object.assign(c.style,g),Object.keys(d).forEach(function(m){var l=d[m];l===!1?c.removeAttribute(m):c.setAttribute(m,l===!0?"":l)}))})}function f(S){var I=S.state,k={popper:{position:I.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(I.elements.popper.style,k.popper),I.styles=k,I.elements.arrow&&Object.assign(I.elements.arrow.style,k.arrow),function(){Object.keys(I.elements).forEach(function(g){var d=I.elements[g],c=I.attributes[g]||{},m=Object.keys(I.styles.hasOwnProperty(g)?I.styles[g]:k[g]),l=m.reduce(function(u,s){return u[s]="",u},{});!(0,a.isHTMLElement)(d)||!(0,e.default)(d)||(Object.assign(d.style,l),Object.keys(c).forEach(function(u){d.removeAttribute(u)}))})}}var b=r.default={name:"applyStyles",enabled:!0,phase:"write",fn:o,effect:f,requires:["computeStyles"]}},52744:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=g(n(83104)),a=g(n(28811)),t=g(n(4206)),o=g(n(44896)),f=g(n(41199)),b=n(28595),S=g(n(43286)),I=g(n(81447)),k=n(46206);function g(u){return u&&u.__esModule?u:{default:u}}var d=function(){function u(s,i){return s=typeof s=="function"?s(Object.assign({},i.rects,{placement:i.placement})):s,(0,S.default)(typeof s!="number"?s:(0,I.default)(s,k.basePlacements))}return u}();function c(u){var s,i=u.state,h=u.name,C=u.options,v=i.elements.arrow,p=i.modifiersData.popperOffsets,N=(0,e.default)(i.placement),V=(0,f.default)(N),y=[k.left,k.right].indexOf(N)>=0,B=y?"height":"width";if(!(!v||!p)){var L=d(C.padding,i),w=(0,a.default)(v),x=V==="y"?k.top:k.left,T=V==="y"?k.bottom:k.right,M=i.rects.reference[B]+i.rects.reference[V]-p[V]-i.rects.popper[B],O=p[V]-i.rects.reference[V],D=(0,o.default)(v),E=D?V==="y"?D.clientHeight||0:D.clientWidth||0:0,P=M/2-O/2,R=L[x],j=E-w[B]-L[T],F=E/2-w[B]/2+P,W=(0,b.within)(R,F,j),z=V;i.modifiersData[h]=(s={},s[z]=W,s.centerOffset=W-F,s)}}function m(u){var s=u.state,i=u.options,h=i.element,C=h===void 0?"[data-popper-arrow]":h;C!=null&&(typeof C=="string"&&(C=s.elements.popper.querySelector(C),!C)||(0,t.default)(s.elements.popper,C)&&(s.elements.arrow=C))}var l=r.default={name:"arrow",enabled:!0,phase:"main",fn:c,effect:m,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]}},59894:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0,r.mapToStyles=c;var e=n(46206),a=k(n(44896)),t=k(n(95115)),o=k(n(40600)),f=k(n(16599)),b=k(n(83104)),S=k(n(45)),I=n(63618);function k(u){return u&&u.__esModule?u:{default:u}}var g={top:"auto",right:"auto",bottom:"auto",left:"auto"};function d(u,s){var i=u.x,h=u.y,C=s.devicePixelRatio||1;return{x:(0,I.round)(i*C)/C||0,y:(0,I.round)(h*C)/C||0}}function c(u){var s,i=u.popper,h=u.popperRect,C=u.placement,v=u.variation,p=u.offsets,N=u.position,V=u.gpuAcceleration,y=u.adaptive,B=u.roundOffsets,L=u.isFixed,w=p.x,x=w===void 0?0:w,T=p.y,M=T===void 0?0:T,O=typeof B=="function"?B({x:x,y:M}):{x:x,y:M};x=O.x,M=O.y;var D=p.hasOwnProperty("x"),E=p.hasOwnProperty("y"),P=e.left,R=e.top,j=window;if(y){var F=(0,a.default)(i),W="clientHeight",z="clientWidth";if(F===(0,t.default)(i)&&(F=(0,o.default)(i),(0,f.default)(F).position!=="static"&&N==="absolute"&&(W="scrollHeight",z="scrollWidth")),F=F,C===e.top||(C===e.left||C===e.right)&&v===e.end){R=e.bottom;var K=L&&F===j&&j.visualViewport?j.visualViewport.height:F[W];M-=K-h.height,M*=V?1:-1}if(C===e.left||(C===e.top||C===e.bottom)&&v===e.end){P=e.right;var G=L&&F===j&&j.visualViewport?j.visualViewport.width:F[z];x-=G-h.width,x*=V?1:-1}}var J=Object.assign({position:N},y&&g),Q=B===!0?d({x:x,y:M},(0,t.default)(i)):{x:x,y:M};if(x=Q.x,M=Q.y,V){var ue;return Object.assign({},J,(ue={},ue[R]=E?"0":"",ue[P]=D?"0":"",ue.transform=(j.devicePixelRatio||1)<=1?"translate("+x+"px, "+M+"px)":"translate3d("+x+"px, "+M+"px, 0)",ue))}return Object.assign({},J,(s={},s[R]=E?M+"px":"",s[P]=D?x+"px":"",s.transform="",s))}function m(u){var s=u.state,i=u.options,h=i.gpuAcceleration,C=h===void 0?!0:h,v=i.adaptive,p=v===void 0?!0:v,N=i.roundOffsets,V=N===void 0?!0:N,y={placement:(0,b.default)(s.placement),variation:(0,S.default)(s.placement),popper:s.elements.popper,popperRect:s.rects.popper,gpuAcceleration:C,isFixed:s.options.strategy==="fixed"};s.modifiersData.popperOffsets!=null&&(s.styles.popper=Object.assign({},s.styles.popper,c(Object.assign({},y,{offsets:s.modifiersData.popperOffsets,position:s.options.strategy,adaptive:p,roundOffsets:V})))),s.modifiersData.arrow!=null&&(s.styles.arrow=Object.assign({},s.styles.arrow,c(Object.assign({},y,{offsets:s.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:V})))),s.attributes.popper=Object.assign({},s.attributes.popper,{"data-popper-placement":s.placement})}var l=r.default={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:m,data:{}}},36692:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=a(n(95115));function a(b){return b&&b.__esModule?b:{default:b}}var t={passive:!0};function o(b){var S=b.state,I=b.instance,k=b.options,g=k.scroll,d=g===void 0?!0:g,c=k.resize,m=c===void 0?!0:c,l=(0,e.default)(S.elements.popper),u=[].concat(S.scrollParents.reference,S.scrollParents.popper);return d&&u.forEach(function(s){s.addEventListener("scroll",I.update,t)}),m&&l.addEventListener("resize",I.update,t),function(){d&&u.forEach(function(s){s.removeEventListener("scroll",I.update,t)}),m&&l.removeEventListener("resize",I.update,t)}}var f=r.default={name:"eventListeners",enabled:!0,phase:"write",fn:function(){function b(){}return b}(),effect:o,data:{}}},23798:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=I(n(71376)),a=I(n(83104)),t=I(n(86459)),o=I(n(17633)),f=I(n(9041)),b=n(46206),S=I(n(45));function I(c){return c&&c.__esModule?c:{default:c}}function k(c){if((0,a.default)(c)===b.auto)return[];var m=(0,e.default)(c);return[(0,t.default)(c),m,(0,t.default)(m)]}function g(c){var m=c.state,l=c.options,u=c.name;if(!m.modifiersData[u]._skip){for(var s=l.mainAxis,i=s===void 0?!0:s,h=l.altAxis,C=h===void 0?!0:h,v=l.fallbackPlacements,p=l.padding,N=l.boundary,V=l.rootBoundary,y=l.altBoundary,B=l.flipVariations,L=B===void 0?!0:B,w=l.allowedAutoPlacements,x=m.options.placement,T=(0,a.default)(x),M=T===x,O=v||(M||!L?[(0,e.default)(x)]:k(x)),D=[x].concat(O).reduce(function(re,oe){return re.concat((0,a.default)(oe)===b.auto?(0,f.default)(m,{placement:oe,boundary:N,rootBoundary:V,padding:p,flipVariations:L,allowedAutoPlacements:w}):oe)},[]),E=m.rects.reference,P=m.rects.popper,R=new Map,j=!0,F=D[0],W=0;W=0,Q=J?"width":"height",ue=(0,o.default)(m,{placement:z,boundary:N,rootBoundary:V,altBoundary:y,padding:p}),ie=J?G?b.right:b.left:G?b.bottom:b.top;E[Q]>P[Q]&&(ie=(0,e.default)(ie));var pe=(0,e.default)(ie),te=[];if(i&&te.push(ue[K]<=0),C&&te.push(ue[ie]<=0,ue[pe]<=0),te.every(function(re){return re})){F=z,j=!1;break}R.set(z,te)}if(j)for(var q=L?3:1,ne=function(){function re(oe){var fe=D.find(function(me){var Y=R.get(me);if(Y)return Y.slice(0,oe).every(function(ve){return ve})});if(fe)return F=fe,"break"}return re}(),le=q;le>0;le--){var ee=ne(le);if(ee==="break")break}m.placement!==F&&(m.modifiersData[u]._skip=!0,m.placement=F,m.reset=!0)}}var d=r.default={name:"flip",enabled:!0,phase:"main",fn:g,requiresIfExists:["offset"],data:{_skip:!1}}},83761:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=n(46206),a=t(n(17633));function t(I){return I&&I.__esModule?I:{default:I}}function o(I,k,g){return g===void 0&&(g={x:0,y:0}),{top:I.top-k.height-g.y,right:I.right-k.width+g.x,bottom:I.bottom-k.height+g.y,left:I.left-k.width-g.x}}function f(I){return[e.top,e.right,e.bottom,e.left].some(function(k){return I[k]>=0})}function b(I){var k=I.state,g=I.name,d=k.rects.reference,c=k.rects.popper,m=k.modifiersData.preventOverflow,l=(0,a.default)(k,{elementContext:"reference"}),u=(0,a.default)(k,{altBoundary:!0}),s=o(l,d),i=o(u,c,m),h=f(s),C=f(i);k.modifiersData[g]={referenceClippingOffsets:s,popperEscapeOffsets:i,isReferenceHidden:h,hasPopperEscaped:C},k.attributes.popper=Object.assign({},k.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":C})}var S=r.default={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:b}},39805:function(A,r,n){"use strict";r.__esModule=!0,r.preventOverflow=r.popperOffsets=r.offset=r.hide=r.flip=r.eventListeners=r.computeStyles=r.arrow=r.applyStyles=void 0;var e=g(n(19975));r.applyStyles=e.default;var a=g(n(52744));r.arrow=a.default;var t=g(n(59894));r.computeStyles=t.default;var o=g(n(36692));r.eventListeners=o.default;var f=g(n(23798));r.flip=f.default;var b=g(n(83761));r.hide=b.default;var S=g(n(61410));r.offset=S.default;var I=g(n(40107));r.popperOffsets=I.default;var k=g(n(75137));r.preventOverflow=k.default;function g(d){return d&&d.__esModule?d:{default:d}}},61410:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0,r.distanceAndSkiddingToXY=o;var e=t(n(83104)),a=n(46206);function t(S){return S&&S.__esModule?S:{default:S}}function o(S,I,k){var g=(0,e.default)(S),d=[a.left,a.top].indexOf(g)>=0?-1:1,c=typeof k=="function"?k(Object.assign({},I,{placement:S})):k,m=c[0],l=c[1];return m=m||0,l=(l||0)*d,[a.left,a.right].indexOf(g)>=0?{x:l,y:m}:{x:m,y:l}}function f(S){var I=S.state,k=S.options,g=S.name,d=k.offset,c=d===void 0?[0,0]:d,m=a.placements.reduce(function(i,h){return i[h]=o(h,I.rects,c),i},{}),l=m[I.placement],u=l.x,s=l.y;I.modifiersData.popperOffsets!=null&&(I.modifiersData.popperOffsets.x+=u,I.modifiersData.popperOffsets.y+=s),I.modifiersData[g]=m}var b=r.default={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:f}},40107:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=a(n(89951));function a(f){return f&&f.__esModule?f:{default:f}}function t(f){var b=f.state,S=f.name;b.modifiersData[S]=(0,e.default)({reference:b.rects.reference,element:b.rects.popper,strategy:"absolute",placement:b.placement})}var o=r.default={name:"popperOffsets",enabled:!0,phase:"read",fn:t,data:{}}},75137:function(A,r,n){"use strict";r.__esModule=!0,r.default=void 0;var e=n(46206),a=c(n(83104)),t=c(n(41199)),o=c(n(28066)),f=n(28595),b=c(n(28811)),S=c(n(44896)),I=c(n(17633)),k=c(n(45)),g=c(n(34780)),d=n(63618);function c(u){return u&&u.__esModule?u:{default:u}}function m(u){var s=u.state,i=u.options,h=u.name,C=i.mainAxis,v=C===void 0?!0:C,p=i.altAxis,N=p===void 0?!1:p,V=i.boundary,y=i.rootBoundary,B=i.altBoundary,L=i.padding,w=i.tether,x=w===void 0?!0:w,T=i.tetherOffset,M=T===void 0?0:T,O=(0,I.default)(s,{boundary:V,rootBoundary:y,padding:L,altBoundary:B}),D=(0,a.default)(s.placement),E=(0,k.default)(s.placement),P=!E,R=(0,t.default)(D),j=(0,o.default)(R),F=s.modifiersData.popperOffsets,W=s.rects.reference,z=s.rects.popper,K=typeof M=="function"?M(Object.assign({},s.rects,{placement:s.placement})):M,G=typeof K=="number"?{mainAxis:K,altAxis:K}:Object.assign({mainAxis:0,altAxis:0},K),J=s.modifiersData.offset?s.modifiersData.offset[s.placement]:null,Q={x:0,y:0};if(F){if(v){var ue,ie=R==="y"?e.top:e.left,pe=R==="y"?e.bottom:e.right,te=R==="y"?"height":"width",q=F[R],ne=q+O[ie],le=q-O[pe],ee=x?-z[te]/2:0,re=E===e.start?W[te]:z[te],oe=E===e.start?-z[te]:-W[te],fe=s.elements.arrow,me=x&&fe?(0,b.default)(fe):{width:0,height:0},Y=s.modifiersData["arrow#persistent"]?s.modifiersData["arrow#persistent"].padding:(0,g.default)(),ve=Y[ie],he=Y[pe],Ve=(0,f.within)(0,W[te],me[te]),Be=P?W[te]/2-ee-Ve-ve-G.mainAxis:re-Ve-ve-G.mainAxis,be=P?-W[te]/2+ee+Ve+he+G.mainAxis:oe+Ve+he+G.mainAxis,Le=s.elements.arrow&&(0,S.default)(s.elements.arrow),we=Le?R==="y"?Le.clientTop||0:Le.clientLeft||0:0,xe=(ue=J==null?void 0:J[R])!=null?ue:0,Re=q+Be-xe-we,He=q+be-xe,ye=(0,f.within)(x?(0,d.min)(ne,Re):ne,q,x?(0,d.max)(le,He):le);F[R]=ye,Q[R]=ye-q}if(N){var de,Ce=R==="x"?e.top:e.left,ke=R==="x"?e.bottom:e.right,ge=F[j],Se=j==="y"?"height":"width",Pe=ge+O[Ce],je=ge-O[ke],_e=[e.top,e.left].indexOf(D)!==-1,ze=(de=J==null?void 0:J[j])!=null?de:0,We=_e?Pe:ge-W[Se]-z[Se]-ze+G.altAxis,Ue=_e?ge+W[Se]+z[Se]-ze-G.altAxis:je,Xe=x&&_e?(0,f.withinMaxClamp)(We,ge,Ue):(0,f.within)(x?We:Pe,ge,x?Ue:je);F[j]=Xe,Q[j]=Xe-ge}s.modifiersData[h]=Q}}var l=r.default={name:"preventOverflow",enabled:!0,phase:"main",fn:m,requiresIfExists:["offset"]}},2473:function(A,r,n){"use strict";r.__esModule=!0,r.defaultModifiers=r.createPopper=void 0;var e=n(96376);r.popperGenerator=e.popperGenerator,r.detectOverflow=e.detectOverflow;var a=b(n(36692)),t=b(n(40107)),o=b(n(59894)),f=b(n(19975));function b(k){return k&&k.__esModule?k:{default:k}}var S=r.defaultModifiers=[a.default,t.default,o.default,f.default],I=r.createPopper=(0,e.popperGenerator)({defaultModifiers:S})},83312:function(A,r,n){"use strict";r.__esModule=!0;var e={createPopper:!0,createPopperLite:!0,defaultModifiers:!0,popperGenerator:!0,detectOverflow:!0};r.defaultModifiers=r.createPopperLite=r.createPopper=void 0;var a=n(96376);r.popperGenerator=a.popperGenerator,r.detectOverflow=a.detectOverflow;var t=l(n(36692)),o=l(n(40107)),f=l(n(59894)),b=l(n(19975)),S=l(n(61410)),I=l(n(23798)),k=l(n(75137)),g=l(n(52744)),d=l(n(83761)),c=n(2473);r.createPopperLite=c.createPopper;var m=n(39805);Object.keys(m).forEach(function(i){i==="default"||i==="__esModule"||Object.prototype.hasOwnProperty.call(e,i)||i in r&&r[i]===m[i]||(r[i]=m[i])});function l(i){return i&&i.__esModule?i:{default:i}}var u=r.defaultModifiers=[t.default,o.default,f.default,b.default,S.default,I.default,k.default,g.default,d.default],s=r.createPopperLite=r.createPopper=(0,a.popperGenerator)({defaultModifiers:u})},9041:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(45)),a=n(46206),t=f(n(17633)),o=f(n(83104));function f(S){return S&&S.__esModule?S:{default:S}}function b(S,I){I===void 0&&(I={});var k=I,g=k.placement,d=k.boundary,c=k.rootBoundary,m=k.padding,l=k.flipVariations,u=k.allowedAutoPlacements,s=u===void 0?a.placements:u,i=(0,e.default)(g),h=i?l?a.variationPlacements:a.variationPlacements.filter(function(p){return(0,e.default)(p)===i}):a.basePlacements,C=h.filter(function(p){return s.indexOf(p)>=0});C.length===0&&(C=h);var v=C.reduce(function(p,N){return p[N]=(0,t.default)(S,{placement:N,boundary:d,rootBoundary:c,padding:m})[(0,o.default)(N)],p},{});return Object.keys(v).sort(function(p,N){return v[p]-v[N]})}},89951:function(A,r,n){"use strict";r.__esModule=!0,r.default=b;var e=f(n(83104)),a=f(n(45)),t=f(n(41199)),o=n(46206);function f(S){return S&&S.__esModule?S:{default:S}}function b(S){var I=S.reference,k=S.element,g=S.placement,d=g?(0,e.default)(g):null,c=g?(0,a.default)(g):null,m=I.x+I.width/2-k.width/2,l=I.y+I.height/2-k.height/2,u;switch(d){case o.top:u={x:m,y:I.y-k.height};break;case o.bottom:u={x:m,y:I.y+I.height};break;case o.right:u={x:I.x+I.width,y:l};break;case o.left:u={x:I.x-k.width,y:l};break;default:u={x:I.x,y:I.y}}var s=d?(0,t.default)(d):null;if(s!=null){var i=s==="y"?"height":"width";switch(c){case o.start:u[s]=u[s]-(I[i]/2-k[i]/2);break;case o.end:u[s]=u[s]+(I[i]/2-k[i]/2);break;default:}}return u}},10579:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){var a;return function(){return a||(a=new Promise(function(t){Promise.resolve().then(function(){a=void 0,t(e())})})),a}}},17633:function(A,r,n){"use strict";r.__esModule=!0,r.default=d;var e=g(n(49035)),a=g(n(40600)),t=g(n(37786)),o=g(n(89951)),f=g(n(81666)),b=n(46206),S=n(75573),I=g(n(43286)),k=g(n(81447));function g(c){return c&&c.__esModule?c:{default:c}}function d(c,m){m===void 0&&(m={});var l=m,u=l.placement,s=u===void 0?c.placement:u,i=l.strategy,h=i===void 0?c.strategy:i,C=l.boundary,v=C===void 0?b.clippingParents:C,p=l.rootBoundary,N=p===void 0?b.viewport:p,V=l.elementContext,y=V===void 0?b.popper:V,B=l.altBoundary,L=B===void 0?!1:B,w=l.padding,x=w===void 0?0:w,T=(0,I.default)(typeof x!="number"?x:(0,k.default)(x,b.basePlacements)),M=y===b.popper?b.reference:b.popper,O=c.rects.popper,D=c.elements[L?M:y],E=(0,e.default)((0,S.isElement)(D)?D:D.contextElement||(0,a.default)(c.elements.popper),v,N,h),P=(0,t.default)(c.elements.reference),R=(0,o.default)({reference:P,element:O,strategy:"absolute",placement:s}),j=(0,f.default)(Object.assign({},O,R)),F=y===b.popper?j:P,W={top:E.top-F.top+T.top,bottom:F.bottom-E.bottom+T.bottom,left:E.left-F.left+T.left,right:F.right-E.right+T.right},z=c.modifiersData.offset;if(y===b.popper&&z){var K=z[s];Object.keys(W).forEach(function(G){var J=[b.right,b.bottom].indexOf(G)>=0?1:-1,Q=[b.top,b.bottom].indexOf(G)>=0?"y":"x";W[G]+=K[Q]*J})}return W}},81447:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e,a){return a.reduce(function(t,o){return t[o]=e,t},{})}},28066:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return e==="x"?"y":"x"}},83104:function(A,r,n){"use strict";r.__esModule=!0,r.default=a;var e=n(46206);function a(t){return t.split("-")[0]}},34780:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(){return{top:0,right:0,bottom:0,left:0}}},41199:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}},71376:function(A,r){"use strict";r.__esModule=!0,r.default=e;var n={left:"right",right:"left",bottom:"top",top:"bottom"};function e(a){return a.replace(/left|right|bottom|top/g,function(t){return n[t]})}},86459:function(A,r){"use strict";r.__esModule=!0,r.default=e;var n={start:"end",end:"start"};function e(a){return a.replace(/start|end/g,function(t){return n[t]})}},45:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return e.split("-")[1]}},63618:function(A,r){"use strict";r.__esModule=!0,r.round=r.min=r.max=void 0;var n=r.max=Math.max,e=r.min=Math.min,a=r.round=Math.round},56500:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){var a=e.reduce(function(t,o){var f=t[o.name];return t[o.name]=f?Object.assign({},f,o,{options:Object.assign({},f.options,o.options),data:Object.assign({},f.data,o.data)}):o,t},{});return Object.keys(a).map(function(t){return a[t]})}},43286:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=a(n(34780));function a(o){return o&&o.__esModule?o:{default:o}}function t(o){return Object.assign({},(0,e.default)(),o)}},33118:function(A,r,n){"use strict";r.__esModule=!0,r.default=t;var e=n(46206);function a(o){var f=new Map,b=new Set,S=[];o.forEach(function(k){f.set(k.name,k)});function I(k){b.add(k.name);var g=[].concat(k.requires||[],k.requiresIfExists||[]);g.forEach(function(d){if(!b.has(d)){var c=f.get(d);c&&I(c)}}),S.push(k)}return o.forEach(function(k){b.has(k.name)||I(k)}),S}function t(o){var f=a(o);return e.modifierPhases.reduce(function(b,S){return b.concat(f.filter(function(I){return I.phase===S}))},[])}},81666:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}},35366:function(A,r){"use strict";r.__esModule=!0,r.default=n;function n(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(a){return a.brand+"/"+a.version}).join(" "):navigator.userAgent}},28595:function(A,r,n){"use strict";r.__esModule=!0,r.within=a,r.withinMaxClamp=t;var e=n(63618);function a(o,f,b){return(0,e.max)(o,(0,e.min)(f,b))}function t(o,f,b){var S=a(o,f,b);return S>b?b:S}},15875:function(A,r){"use strict";r.__esModule=!0,r.VNodeFlags=r.ChildFlags=void 0;var n;(function(a){a[a.Unknown=0]="Unknown",a[a.HtmlElement=1]="HtmlElement",a[a.ComponentUnknown=2]="ComponentUnknown",a[a.ComponentClass=4]="ComponentClass",a[a.ComponentFunction=8]="ComponentFunction",a[a.Text=16]="Text",a[a.SvgElement=32]="SvgElement",a[a.InputElement=64]="InputElement",a[a.TextareaElement=128]="TextareaElement",a[a.SelectElement=256]="SelectElement",a[a.Portal=1024]="Portal",a[a.ReCreate=2048]="ReCreate",a[a.ContentEditable=4096]="ContentEditable",a[a.Fragment=8192]="Fragment",a[a.InUse=16384]="InUse",a[a.ForwardRef=32768]="ForwardRef",a[a.Normalized=65536]="Normalized",a[a.ForwardRefComponent=32776]="ForwardRefComponent",a[a.FormElement=448]="FormElement",a[a.Element=481]="Element",a[a.Component=14]="Component",a[a.DOMRef=1521]="DOMRef",a[a.InUseOrNormalized=81920]="InUseOrNormalized",a[a.ClearInUse=-16385]="ClearInUse",a[a.ComponentKnown=12]="ComponentKnown"})(n||(r.VNodeFlags=n={}));var e;(function(a){a[a.UnknownChildren=0]="UnknownChildren",a[a.HasInvalidChildren=1]="HasInvalidChildren",a[a.HasVNodeChildren=2]="HasVNodeChildren",a[a.HasNonKeyedChildren=4]="HasNonKeyedChildren",a[a.HasKeyedChildren=8]="HasKeyedChildren",a[a.HasTextChildren=16]="HasTextChildren",a[a.MultipleChildren=12]="MultipleChildren"})(e||(r.ChildFlags=e={}))},89292:function(A,r){"use strict";r.__esModule=!0,r.Fragment=r.EMPTY_OBJ=r.Component=r.AnimationQueues=void 0,r._CI=Ot,r._HI=me,r._M=$e,r._MCCC=_t,r._ME=Dt,r._MFCC=Ft,r._MP=Mt,r._MR=at,r._RFC=gt,r.__render=Ht,r.createComponentVNode=ue,r.createFragment=pe,r.createPortal=ee,r.createRef=nn,r.createRenderer=En,r.createTextVNode=ie,r.createVNode=K,r.directClone=ne,r.findDOMFromVNode=V,r.forwardRef=on,r.getFlagsForElementVnode=oe,r.linkEvent=g,r.normalizeProps=te,r.options=void 0,r.render=zt,r.rerender=Kt,r.version=void 0;var n=Array.isArray;function e(_){var U=typeof _;return U==="string"||U==="number"}function a(_){return _==null}function t(_){return _===null||_===!1||_===!0||_===void 0}function o(_){return typeof _=="function"}function f(_){return typeof _=="string"}function b(_){return typeof _=="number"}function S(_){return _===null}function I(_){return _===void 0}function k(_,U){var H={};if(_)for(var $ in _)H[$]=_[$];if(U)for(var Z in U)H[Z]=U[Z];return H}function g(_,U){return o(U)?{data:_,event:U}:null}function d(_){return!S(_)&&typeof _=="object"}var c=r.EMPTY_OBJ={},m=r.Fragment="$F",l=r.AnimationQueues=function(){function _(){this.componentDidAppear=[],this.componentWillDisappear=[],this.componentWillMove=[]}return _}();function u(_){return _.substring(2).toLowerCase()}function s(_,U){_.appendChild(U)}function i(_,U,H){S(H)?s(_,U):_.insertBefore(U,H)}function h(_,U){return U?document.createElementNS("http://www.w3.org/2000/svg",_):document.createElement(_)}function C(_,U,H){_.replaceChild(U,H)}function v(_,U){_.removeChild(U)}function p(_){for(var U=0;U<_.length;U++)_[U]()}function N(_,U,H){var $=_.children;return H&4?$.$LI:H&8192?_.childFlags===2?$:$[U?0:$.length-1]:$}function V(_,U){for(var H;_;){if(H=_.flags,H&1521)return _.dom;_=N(_,U,H)}return null}function y(_,U){for(var H=_.length,$;($=_.pop())!==void 0;)$(function(){--H<=0&&o(U)&&U()})}function B(_){for(var U=0;U<_.length;U++)_[U].fn();for(var H=0;H<_.length;H++){var $=_[H];i($.parent,$.dom,$.next)}_.splice(0,_.length)}function L(_,U,H){do{var $=_.flags;if($&1521){(!H||_.dom.parentNode===U)&&v(U,_.dom);return}var Z=_.children;if($&4&&(_=Z.$LI),$&8&&(_=Z),$&8192)if(_.childFlags===2)_=Z;else{for(var ae=0,ce=Z.length;ae0?y(H.componentWillDisappear,w(_,U)):L(_,U,!1)}function T(_,U,H,$,Z,ae,ce,se){_.componentWillMove.push({dom:$,fn:function(){function Ne(){ce&4?H.componentWillMove(U,Z,$):ce&8&&H.onComponentWillMove(U,Z,$,se)}return Ne}(),next:ae,parent:Z})}function M(_,U,H,$,Z){var ae,ce,se=U.flags;do{var Ne=U.flags;if(Ne&1521){!a(ae)&&(o(ae.componentWillMove)||o(ae.onComponentWillMove))?T(Z,_,ae,U.dom,H,$,se,ce):i(H,U.dom,$);return}var Te=U.children;if(Ne&4)ae=U.children,ce=U.props,U=Te.$LI;else if(Ne&8)ae=U.ref,ce=U.props,U=Te;else if(Ne&8192)if(U.childFlags===2)U=Te;else{for(var Ie=0,Ee=Te.length;Ie0,Te=S(se),Ie=f(se)&&se[0]===W;Ne||Te||Ie?(H=H||U.slice(0,ae),(Ne||Ie)&&(ce=ne(ce)),(Te||Ie)&&(ce.key=W+ae),H.push(ce)):H&&H.push(ce),ce.flags|=65536}}H=H||U,H.length===0?$=1:$=8}else H=U,H.flags|=65536,U.flags&81920&&(H=ne(U)),$=2;return _.children=H,_.childFlags=$,_}function me(_){return t(_)||e(_)?ie(_,null):n(_)?pe(_,0,null):_.flags&16384?ne(_):_}var Y="http://www.w3.org/1999/xlink",ve="http://www.w3.org/XML/1998/namespace",he={"xlink:actuate":Y,"xlink:arcrole":Y,"xlink:href":Y,"xlink:role":Y,"xlink:show":Y,"xlink:title":Y,"xlink:type":Y,"xml:base":ve,"xml:lang":ve,"xml:space":ve};function Ve(_){return{onClick:_,onDblClick:_,onFocusIn:_,onFocusOut:_,onKeyDown:_,onKeyPress:_,onKeyUp:_,onMouseDown:_,onMouseMove:_,onMouseUp:_,onTouchEnd:_,onTouchMove:_,onTouchStart:_}}var Be=Ve(0),be=Ve(null),Le=Ve(!0);function we(_,U){var H=U.$EV;return H||(H=U.$EV=Ve(null)),H[_]||++Be[_]===1&&(be[_]=je(_)),H}function xe(_,U){var H=U.$EV;H&&H[_]&&(--Be[_]===0&&(document.removeEventListener(u(_),be[_]),be[_]=null),H[_]=null)}function Re(_,U,H,$){if(o(H))we(_,$)[_]=H;else if(d(H)){if(R(U,H))return;we(_,$)[_]=H}else xe(_,$)}function He(_){return o(_.composedPath)?_.composedPath()[0]:_.target}function ye(_,U,H,$){var Z=He(_);do{if(U&&Z.disabled)return;var ae=Z.$EV;if(ae){var ce=ae[H];if(ce&&($.dom=Z,ce.event?ce.event(ce.data,_):ce(_),_.cancelBubble))return}Z=Z.parentNode}while(!S(Z))}function de(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function Ce(){return this.defaultPrevented}function ke(){return this.cancelBubble}function ge(_){var U={dom:document};return _.isDefaultPrevented=Ce,_.isPropagationStopped=ke,_.stopPropagation=de,Object.defineProperty(_,"currentTarget",{configurable:!0,get:function(){function H(){return U.dom}return H}()}),U}function Se(_){return function(U){if(U.button!==0){U.stopPropagation();return}ye(U,!0,_,ge(U))}}function Pe(_){return function(U){ye(U,!1,_,ge(U))}}function je(_){var U=_==="onClick"||_==="onDblClick"?Se(_):Pe(_);return document.addEventListener(u(_),U),U}function _e(_,U){var H=document.createElement("i");return H.innerHTML=U,H.innerHTML===_.innerHTML}function ze(_,U,H){if(_[U]){var $=_[U];$.event?$.event($.data,H):$(H)}else{var Z=U.toLowerCase();_[Z]&&_[Z](H)}}function We(_,U){var H=function(){function $(Z){var ae=this.$V;if(ae){var ce=ae.props||c,se=ae.dom;if(f(_))ze(ce,_,Z);else for(var Ne=0;Ne<_.length;++Ne)ze(ce,_[Ne],Z);if(o(U)){var Te=this.$V,Ie=Te.props||c;U(Ie,se,!1,Te)}}}return $}();return Object.defineProperty(H,"wrapped",{configurable:!1,enumerable:!1,value:!0,writable:!1}),H}function Ue(_,U,H){var $="$"+U,Z=_[$];if(Z){if(Z[1].wrapped)return;_.removeEventListener(Z[0],Z[1]),_[$]=null}o(H)&&(_.addEventListener(U,H),_[$]=[U,H])}function Xe(_){return _==="checkbox"||_==="radio"}var yt=We("onInput",dt),St=We(["onClick","onChange"],dt);function Ct(_){_.stopPropagation()}Ct.wrapped=!0;function Bt(_,U){Xe(U.type)?(Ue(_,"change",St),Ue(_,"click",Ct)):Ue(_,"input",yt)}function dt(_,U){var H=_.type,$=_.value,Z=_.checked,ae=_.multiple,ce=_.defaultValue,se=!a($);H&&H!==U.type&&U.setAttribute("type",H),!a(ae)&&ae!==U.multiple&&(U.multiple=ae),!a(ce)&&!se&&(U.defaultValue=ce+""),Xe(H)?(se&&(U.value=$),a(Z)||(U.checked=Z)):se&&U.value!==$?(U.defaultValue=$,U.value=$):a(Z)||(U.checked=Z)}function rt(_,U){if(_.type==="option")It(_,U);else{var H=_.children,$=_.flags;if($&4)rt(H.$LI,U);else if($&8)rt(H,U);else if(_.childFlags===2)rt(H,U);else if(_.childFlags&12)for(var Z=0,ae=H.length;Z-1&&U.options[ae]&&(se=U.options[ae].value),H&&a(se)&&(se=_.defaultValue),rt($,se)}}var Zt=We("onInput",Tt),qt=We("onChange");function en(_,U){Ue(_,"input",Zt),U.onChange&&Ue(_,"change",qt)}function Tt(_,U,H){var $=_.value,Z=U.value;if(a($)){if(H){var ae=_.defaultValue;!a(ae)&&ae!==Z&&(U.defaultValue=ae,U.value=ae)}}else Z!==$&&(U.defaultValue=$,U.value=$)}function xt(_,U,H,$,Z,ae){_&64?dt($,H):_&256?wt($,H,Z,U):_&128&&Tt($,H,Z),ae&&(H.$V=U)}function tn(_,U,H){_&64?Bt(U,H):_&256?Qt(U):_&128&&en(U,H)}function At(_){return _.type&&Xe(_.type)?!a(_.checked):!a(_.value)}function nn(){return{current:null}}function on(_){var U={render:_};return U}function st(_){_&&!F(_,null)&&_.current&&(_.current=null)}function at(_,U,H){_&&(o(_)||_.current!==void 0)&&H.push(function(){!F(_,U)&&_.current!==void 0&&(_.current=U)})}function Je(_,U,H){Ze(_,H),x(_,U,H)}function Ze(_,U){var H=_.flags,$=_.children,Z;if(H&481){Z=_.ref;var ae=_.props;st(Z);var ce=_.childFlags;if(!S(ae))for(var se=Object.keys(ae),Ne=0,Te=se.length;Ne0?y(H.componentWillDisappear,rn(U,_)):_.textContent=""}function pt(_,U,H,$){ct(H,$),U.flags&8192?x(U,_,$):mt(_,H,$)}function Et(_,U,H,$,Z){_.componentWillDisappear.push(function(ae){$&4?U.componentWillDisappear(H,ae):$&8&&U.onComponentWillDisappear(H,Z,ae)})}function an(_){var U=_.event;return function(H){U(_.data,H)}}function cn(_,U,H,$){if(d(H)){if(R(U,H))return;H=an(H)}Ue($,u(_),H)}function ln(_,U,H){if(a(U)){H.removeAttribute("style");return}var $=H.style,Z,ae;if(f(U)){$.cssText=U;return}if(!a(_)&&!f(_)){for(Z in U)ae=U[Z],ae!==_[Z]&&$.setProperty(Z,ae);for(Z in _)a(U[Z])&&$.removeProperty(Z)}else for(Z in U)ae=U[Z],$.setProperty(Z,ae)}function un(_,U,H,$,Z){var ae=_&&_.__html||"",ce=U&&U.__html||"";ae!==ce&&!a(ce)&&!_e($,ce)&&(S(H)||(H.childFlags&12?ct(H.children,Z):H.childFlags===2&&Ze(H.children,Z),H.children=null,H.childFlags=1),$.innerHTML=ce)}function vt(_,U,H,$,Z,ae,ce,se){switch(_){case"children":case"childrenType":case"className":case"defaultValue":case"key":case"multiple":case"ref":case"selectedIndex":break;case"autoFocus":$.autofocus=!!H;break;case"allowfullscreen":case"autoplay":case"capture":case"checked":case"controls":case"default":case"disabled":case"hidden":case"indeterminate":case"loop":case"muted":case"novalidate":case"open":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"selected":$[_]=!!H;break;case"defaultChecked":case"value":case"volume":if(ae&&_==="value")break;var Ne=a(H)?"":H;$[_]!==Ne&&($[_]=Ne);break;case"style":ln(U,H,$);break;case"dangerouslySetInnerHTML":un(U,H,ce,$,se);break;default:Le[_]?Re(_,U,H,$):_.charCodeAt(0)===111&&_.charCodeAt(1)===110?cn(_,U,H,$):a(H)?$.removeAttribute(_):Z&&he[_]?$.setAttributeNS(he[_],_,H):$.setAttribute(_,H);break}}function Mt(_,U,H,$,Z,ae){var ce=!1,se=(U&448)>0;se&&(ce=At(H),ce&&tn(U,$,H));for(var Ne in H)vt(Ne,null,H[Ne],$,Z,ce,null,ae);se&&xt(U,_,$,H,!0,ce)}function Pt(_,U,H){var $=me(_.render(U,_.state,H)),Z=H;return o(_.getChildContext)&&(Z=k(H,_.getChildContext())),_.$CX=Z,$}function Ot(_,U,H,$,Z,ae){var ce=new U(H,$),se=ce.$N=!!(U.getDerivedStateFromProps||ce.getSnapshotBeforeUpdate);if(ce.$SVG=Z,ce.$L=ae,_.children=ce,ce.$BS=!1,ce.context=$,ce.props===c&&(ce.props=H),se)ce.state=O(ce,H,ce.state);else if(o(ce.componentWillMount)){ce.$BR=!0,ce.componentWillMount();var Ne=ce.$PS;if(!S(Ne)){var Te=ce.state;if(S(Te))ce.state=Ne;else for(var Ie in Ne)Te[Ie]=Ne[Ie];ce.$PS=null}ce.$BR=!1}return ce.$LI=Pt(ce,H,$),ce}function gt(_,U){var H=_.props||c;return _.flags&32768?_.type.render(H,_.ref,U):_.type(H,U)}function $e(_,U,H,$,Z,ae,ce){var se=_.flags|=16384;se&481?Dt(_,U,H,$,Z,ae,ce):se&4?mn(_,U,H,$,Z,ae,ce):se&8?pn(_,U,H,$,Z,ae,ce):se&16?Rt(_,U,Z):se&8192?sn(_,H,U,$,Z,ae,ce):se&1024&&dn(_,H,U,Z,ae,ce)}function dn(_,U,H,$,Z,ae){$e(_.children,_.ref,U,!1,null,Z,ae);var ce=le();Rt(ce,H,$),_.dom=ce.dom}function sn(_,U,H,$,Z,ae,ce){var se=_.children,Ne=_.childFlags;Ne&12&&se.length===0&&(Ne=_.childFlags=2,se=_.children=le()),Ne===2?$e(se,H,U,$,Z,ae,ce):ot(se,H,U,$,Z,ae,ce)}function Rt(_,U,H){var $=_.dom=document.createTextNode(_.children);S(U)||i(U,$,H)}function Dt(_,U,H,$,Z,ae,ce){var se=_.flags,Ne=_.props,Te=_.className,Ie=_.childFlags,Ee=_.dom=h(_.type,$=$||(se&32)>0),Ae=_.children;if(!a(Te)&&Te!==""&&($?Ee.setAttribute("class",Te):Ee.className=Te),Ie===16)P(Ee,Ae);else if(Ie!==1){var Me=$&&_.type!=="foreignObject";Ie===2?(Ae.flags&16384&&(_.children=Ae=ne(Ae)),$e(Ae,Ee,H,Me,null,ae,ce)):(Ie===8||Ie===4)&&ot(Ae,Ee,H,Me,null,ae,ce)}S(U)||i(U,Ee,Z),S(Ne)||Mt(_,se,Ne,Ee,$,ce),at(_.ref,Ee,ae)}function ot(_,U,H,$,Z,ae,ce){for(var se=0;se<_.length;++se){var Ne=_[se];Ne.flags&16384&&(_[se]=Ne=ne(Ne)),$e(Ne,U,H,$,Z,ae,ce)}}function mn(_,U,H,$,Z,ae,ce){var se=Ot(_,_.type,_.props||c,H,$,ae),Ne=ce;o(se.componentDidAppear)&&(Ne=new l),$e(se.$LI,U,se.$CX,$,Z,ae,Ne),_t(_.ref,se,ae,ce)}function pn(_,U,H,$,Z,ae,ce){var se=_.ref,Ne=ce;!a(se)&&o(se.onComponentDidAppear)&&(Ne=new l),$e(_.children=me(gt(_,H)),U,H,$,Z,ae,Ne),Ft(_,ae,ce)}function fn(_){return function(){_.componentDidMount()}}function jt(_,U,H,$,Z){_.componentDidAppear.push(function(){$&4?U.componentDidAppear(H):$&8&&U.onComponentDidAppear(H,Z)})}function _t(_,U,H,$){at(_,U,H),o(U.componentDidMount)&&H.push(fn(U)),o(U.componentDidAppear)&&jt($,U,U.$LI.dom,4,void 0)}function hn(_,U){return function(){_.onComponentDidMount(V(U,!0),U.props||c)}}function Ft(_,U,H){var $=_.ref;a($)||(F($.onComponentWillMount,_.props||c),o($.onComponentDidMount)&&U.push(hn($,_)),o($.onComponentDidAppear)&&jt(H,$,V(_,!0),8,_.props))}function Cn(_,U,H,$,Z,ae,ce){Ze(_,ce),U.flags&_.flags&1521?($e(U,null,$,Z,null,ae,ce),C(H,U.dom,_.dom)):($e(U,H,$,Z,V(_,!0),ae,ce),x(_,H,ce))}function qe(_,U,H,$,Z,ae,ce,se){var Ne=U.flags|=16384;_.flags!==Ne||_.type!==U.type||_.key!==U.key||Ne&2048?_.flags&16384?Cn(_,U,H,$,Z,ce,se):$e(U,H,$,Z,ae,ce,se):Ne&481?bn(_,U,$,Z,Ne,ce,se):Ne&4?Sn(_,U,H,$,Z,ae,ce,se):Ne&8?Bn(_,U,H,$,Z,ae,ce,se):Ne&16?In(_,U):Ne&8192?Nn(_,U,H,$,Z,ce,se):Vn(_,U,$,ce,se)}function vn(_,U,H){_!==U&&(_!==""?H.firstChild.nodeValue=U:P(H,U))}function gn(_,U){_.textContent!==U&&(_.textContent=U)}function Nn(_,U,H,$,Z,ae,ce){var se=_.children,Ne=U.children,Te=_.childFlags,Ie=U.childFlags,Ee=null;Ie&12&&Ne.length===0&&(Ie=U.childFlags=2,Ne=U.children=le());var Ae=(Ie&2)!==0;if(Te&12){var Me=se.length;(Te&8&&Ie&8||Ae||!Ae&&Ne.length>Me)&&(Ee=V(se[Me-1],!1).nextSibling)}Nt(Te,Ie,se,Ne,H,$,Z,Ee,_,ae,ce)}function Vn(_,U,H,$,Z){var ae=_.ref,ce=U.ref,se=U.children;if(Nt(_.childFlags,U.childFlags,_.children,se,ae,H,!1,null,_,$,Z),U.dom=_.dom,ae!==ce&&!t(se)){var Ne=se.dom;v(ae,Ne),s(ce,Ne)}}function bn(_,U,H,$,Z,ae,ce){var se=U.dom=_.dom,Ne=_.props,Te=U.props,Ie=!1,Ee=!1,Ae;if($=$||(Z&32)>0,Ne!==Te){var Me=Ne||c;if(Ae=Te||c,Ae!==c){Ie=(Z&448)>0,Ie&&(Ee=At(Ae));for(var Fe in Ae){var Oe=Me[Fe],Ke=Ae[Fe];Oe!==Ke&&vt(Fe,Oe,Ke,se,$,Ee,_,ce)}}if(Me!==c)for(var De in Me)a(Ae[De])&&!a(Me[De])&&vt(De,Me[De],null,se,$,Ee,_,ce)}var tt=U.children,Ye=U.className;_.className!==Ye&&(a(Ye)?se.removeAttribute("class"):$?se.setAttribute("class",Ye):se.className=Ye),Z&4096?gn(se,tt):Nt(_.childFlags,U.childFlags,_.children,tt,se,H,$&&U.type!=="foreignObject",null,_,ae,ce),Ie&&xt(Z,U,se,Ae,!1,Ee);var it=U.ref,Qe=_.ref;Qe!==it&&(st(Qe),at(it,se,ae))}function kn(_,U,H,$,Z,ae,ce){Ze(_,ce),ot(U,H,$,Z,V(_,!0),ae,ce),x(_,H,ce)}function Nt(_,U,H,$,Z,ae,ce,se,Ne,Te,Ie){switch(_){case 2:switch(U){case 2:qe(H,$,Z,ae,ce,se,Te,Ie);break;case 1:Je(H,Z,Ie);break;case 16:Ze(H,Ie),P(Z,$);break;default:kn(H,$,Z,ae,ce,Te,Ie);break}break;case 1:switch(U){case 2:$e($,Z,ae,ce,se,Te,Ie);break;case 1:break;case 16:P(Z,$);break;default:ot($,Z,ae,ce,se,Te,Ie);break}break;case 16:switch(U){case 16:vn(H,$,Z);break;case 2:mt(Z,H,Ie),$e($,Z,ae,ce,se,Te,Ie);break;case 1:mt(Z,H,Ie);break;default:mt(Z,H,Ie),ot($,Z,ae,ce,se,Te,Ie);break}break;default:switch(U){case 16:ct(H,Ie),P(Z,$);break;case 2:pt(Z,Ne,H,Ie),$e($,Z,ae,ce,se,Te,Ie);break;case 1:pt(Z,Ne,H,Ie);break;default:var Ee=H.length|0,Ae=$.length|0;Ee===0?Ae>0&&ot($,Z,ae,ce,se,Te,Ie):Ae===0?pt(Z,Ne,H,Ie):U===8&&_===8?wn(H,$,Z,ae,ce,Ee,Ae,se,Ne,Te,Ie):Ln(H,$,Z,ae,ce,Ee,Ae,se,Te,Ie);break}break}}function yn(_,U,H,$,Z){Z.push(function(){_.componentDidUpdate(U,H,$)})}function Wt(_,U,H,$,Z,ae,ce,se,Ne,Te){var Ie=_.state,Ee=_.props,Ae=!!_.$N,Me=o(_.shouldComponentUpdate);if(Ae&&(U=O(_,H,U!==Ie?k(Ie,U):U)),ce||!Me||Me&&_.shouldComponentUpdate(H,U,Z)){!Ae&&o(_.componentWillUpdate)&&_.componentWillUpdate(H,U,Z),_.props=H,_.state=U,_.context=Z;var Fe=null,Oe=Pt(_,H,Z);Ae&&o(_.getSnapshotBeforeUpdate)&&(Fe=_.getSnapshotBeforeUpdate(Ee,Ie)),qe(_.$LI,Oe,$,_.$CX,ae,se,Ne,Te),_.$LI=Oe,o(_.componentDidUpdate)&&yn(_,Ee,Ie,Fe,Ne)}else _.props=H,_.state=U,_.context=Z}function Sn(_,U,H,$,Z,ae,ce,se){var Ne=U.children=_.children;if(!S(Ne)){Ne.$L=ce;var Te=U.props||c,Ie=U.ref,Ee=_.ref,Ae=Ne.state;if(!Ne.$N){if(o(Ne.componentWillReceiveProps)){if(Ne.$BR=!0,Ne.componentWillReceiveProps(Te,$),Ne.$UN)return;Ne.$BR=!1}S(Ne.$PS)||(Ae=k(Ae,Ne.$PS),Ne.$PS=null)}Wt(Ne,Ae,Te,H,$,Z,!1,ae,ce,se),Ee!==Ie&&(st(Ee),at(Ie,Ne,ce))}}function Bn(_,U,H,$,Z,ae,ce,se){var Ne=!0,Te=U.props||c,Ie=U.ref,Ee=_.props,Ae=!a(Ie),Me=_.children;if(Ae&&o(Ie.onComponentShouldUpdate)&&(Ne=Ie.onComponentShouldUpdate(Ee,Te)),Ne!==!1){Ae&&o(Ie.onComponentWillUpdate)&&Ie.onComponentWillUpdate(Ee,Te);var Fe=me(gt(U,$));qe(Me,Fe,H,$,Z,ae,ce,se),U.children=Fe,Ae&&o(Ie.onComponentDidUpdate)&&Ie.onComponentDidUpdate(Ee,Te)}else U.children=Me}function In(_,U){var H=U.children,$=U.dom=_.dom;H!==_.children&&($.nodeValue=H)}function Ln(_,U,H,$,Z,ae,ce,se,Ne,Te){for(var Ie=ae>ce?ce:ae,Ee=0,Ae,Me;Eece)for(Ee=Ie;EeEe||Me>Ae)break e;Fe=_[Me],Oe=U[Me]}for(Fe=_[Ee],Oe=U[Ae];Fe.key===Oe.key;){if(Oe.flags&16384&&(U[Ae]=Oe=ne(Oe)),qe(Fe,Oe,H,$,Z,se,Te,Ie),_[Ee]=Oe,Ee--,Ae--,Me>Ee||Me>Ae)break e;Fe=_[Ee],Oe=U[Ae]}}if(Me>Ee){if(Me<=Ae)for(Ke=Ae+1,De=KeAe)for(;Me<=Ee;)Je(_[Me++],H,Ie);else Tn(_,U,$,ae,ce,Ee,Ae,Me,H,Z,se,Ne,Te,Ie)}function Tn(_,U,H,$,Z,ae,ce,se,Ne,Te,Ie,Ee,Ae,Me){var Fe,Oe,Ke=0,De=0,tt=se,Ye=se,it=ae-se+1,Qe=ce-se+1,lt=new Int32Array(Qe+1),nt=it===$,bt=!1,Ge=0,ut=0;if(Z<4||(it|Qe)<32)for(De=tt;De<=ae;++De)if(Fe=_[De],utse?bt=!0:Ge=se,Oe.flags&16384&&(U[se]=Oe=ne(Oe)),qe(Fe,Oe,Ne,H,Te,Ie,Ae,Me),++ut;break}!nt&&se>ce&&Je(Fe,Ne,Me)}else nt||Je(Fe,Ne,Me);else{var Yt={};for(De=Ye;De<=ce;++De)Yt[U[De].key]=De;for(De=tt;De<=ae;++De)if(Fe=_[De],uttt;)Je(_[tt++],Ne,Me);lt[se-Ye]=De+1,Ge>se?bt=!0:Ge=se,Oe=U[se],Oe.flags&16384&&(U[se]=Oe=ne(Oe)),qe(Fe,Oe,Ne,H,Te,Ie,Ae,Me),++ut}else nt||Je(Fe,Ne,Me);else nt||Je(Fe,Ne,Me)}if(nt)pt(Ne,Ee,_,Me),ot(U,Ne,H,Te,Ie,Ae,Me);else if(bt){var Xt=xn(lt);for(se=Xt.length-1,De=Qe-1;De>=0;De--)lt[De]===0?(Ge=De+Ye,Oe=U[Ge],Oe.flags&16384&&(U[Ge]=Oe=ne(Oe)),Ke=Ge+1,$e(Oe,Ne,H,Te,Ke0&&B(Me.componentWillMove)}else if(ut!==Qe)for(De=Qe-1;De>=0;De--)lt[De]===0&&(Ge=De+Ye,Oe=U[Ge],Oe.flags&16384&&(U[Ge]=Oe=ne(Oe)),Ke=Ge+1,$e(Oe,Ne,H,Te,KeUt&&(Ut=Ne,et=new Int32Array(Ne),ft=new Int32Array(Ne));H>1,_[et[se]]0&&(ft[H]=et[ae-1]),et[ae]=H)}ae=Z+1;var Te=new Int32Array(ae);for(ce=et[ae-1];ae-- >0;)Te[ae]=ce,ce=ft[ce],et[ae]=0;return Te}var An=typeof document!="undefined";An&&window.Node&&(Node.prototype.$EV=null,Node.prototype.$V=null);function Ht(_,U,H,$){var Z=[],ae=new l,ce=U.$V;D.v=!0,a(ce)?a(_)||(_.flags&16384&&(_=ne(_)),$e(_,U,$,!1,null,Z,ae),U.$V=_,ce=_):a(_)?(Je(ce,U,ae),U.$V=null):(_.flags&16384&&(_=ne(_)),qe(ce,_,U,$,!1,null,Z,ae),ce=U.$V=_),p(Z),y(ae.componentDidAppear),D.v=!1,o(H)&&H(),o(E.renderComplete)&&E.renderComplete(ce,U)}function zt(_,U,H,$){H===void 0&&(H=null),$===void 0&&($=c),Ht(_,U,H,$)}function En(_){return function(){function U(H,$,Z,ae){_||(_=H),zt($,_,Z,ae)}return U}()}var ht=[],Mn=typeof Promise!="undefined"?Promise.resolve().then.bind(Promise.resolve()):function(_){window.setTimeout(_,0)},Vt=!1;function $t(_,U,H,$){var Z=_.$PS;if(o(U)&&(U=U(Z?k(_.state,Z):_.state,_.props,_.context)),a(Z))_.$PS=U;else for(var ae in U)Z[ae]=U[ae];if(_.$BR)o(H)&&_.$L.push(H.bind(_));else{if(!D.v&&ht.length===0){Gt(_,$),o(H)&&H.call(_);return}if(ht.indexOf(_)===-1&&ht.push(_),$&&(_.$F=!0),Vt||(Vt=!0,Mn(Kt)),o(H)){var ce=_.$QU;ce||(ce=_.$QU=[]),ce.push(H)}}}function Pn(_){for(var U=_.$QU,H=0;H=0;--F){var W=this.tryEntries[F],z=W.completion;if(W.tryLoc==="root")return j("end");if(W.tryLoc<=this.prev){var K=a.call(W,"catchLoc"),G=a.call(W,"finallyLoc");if(K&&G){if(this.prev=0;--j){var F=this.tryEntries[j];if(F.tryLoc<=this.prev&&a.call(F,"finallyLoc")&&this.prev=0;--R){var j=this.tryEntries[R];if(j.finallyLoc===P)return this.complete(j.completion,j.afterLoc),T(j),s}}return E}(),catch:function(){function E(P){for(var R=this.tryEntries.length-1;R>=0;--R){var j=this.tryEntries[R];if(j.tryLoc===P){var F=j.completion;if(F.type==="throw"){var W=F.arg;T(j)}return W}}throw new Error("illegal catch attempt")}return E}(),delegateYield:function(){function E(P,R,j){return this.delegate={iterator:O(P),resultName:R,nextLoc:j},this.method==="next"&&(this.arg=o),s}return E}()},n}(A.exports);try{regeneratorRuntime=r}catch(n){typeof globalThis=="object"?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},30236:function(){"use strict";self.fetch||(self.fetch=function(A,r){return r=r||{},new Promise(function(n,e){var a=new XMLHttpRequest,t=[],o={},f=function(){function S(){return{ok:(a.status/100|0)==2,statusText:a.statusText,status:a.status,url:a.responseURL,text:function(){function I(){return Promise.resolve(a.responseText)}return I}(),json:function(){function I(){return Promise.resolve(a.responseText).then(JSON.parse)}return I}(),blob:function(){function I(){return Promise.resolve(new Blob([a.response]))}return I}(),clone:S,headers:{keys:function(){function I(){return t}return I}(),entries:function(){function I(){return t.map(function(k){return[k,a.getResponseHeader(k)]})}return I}(),get:function(){function I(k){return a.getResponseHeader(k)}return I}(),has:function(){function I(k){return a.getResponseHeader(k)!=null}return I}()}}}return S}();for(var b in a.open(r.method||"get",A,!0),a.onload=function(){a.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(S,I){o[I]||t.push(o[I]=I)}),n(f())},a.onerror=e,a.withCredentials=r.credentials=="include",r.headers)a.setRequestHeader(b,r.headers[b]);a.send(r.body||null)})})},88510:function(A,r){"use strict";r.__esModule=!0,r.zipWith=r.zip=r.uniqBy=r.uniq=r.toKeyedArray=r.toArray=r.sortBy=r.sort=r.reduce=r.range=r.map=r.filterMap=r.filter=void 0;function n(i,h){var C=typeof Symbol!="undefined"&&i[Symbol.iterator]||i["@@iterator"];if(C)return(C=C.call(i)).next.bind(C);if(Array.isArray(i)||(C=e(i))||h&&i&&typeof i.length=="number"){C&&(i=C);var v=0;return function(){return v>=i.length?{done:!0}:{done:!1,value:i[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function e(i,h){if(i){if(typeof i=="string")return a(i,h);var C={}.toString.call(i).slice(8,-1);return C==="Object"&&i.constructor&&(C=i.constructor.name),C==="Map"||C==="Set"?Array.from(i):C==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(C)?a(i,h):void 0}}function a(i,h){(h==null||h>i.length)&&(h=i.length);for(var C=0,v=Array(h);CB)return 1}return 0},k=r.sortBy=function(){function i(){for(var h=arguments.length,C=new Array(h),v=0;vB)return 1}return 0},k=r.sortBy=function(){function i(){for(var h=arguments.length,C=new Array(h),v=0;v=1-n)return j[F-1];var z=W%1,K=W|0;return D.lerp(j[K],j[K+1],z)}return P}(),D}(),a=function(E,P,R){return P===void 0&&(P=0),R===void 0&&(R=Math.pow(10,P)),Math.round(R*E)/R},t={grad:360/400,turn:360,rad:360/(Math.PI*2)},o=r.hexToHsva=function(){function D(E){return B(f(E))}return D}(),f=r.hexToRgba=function(){function D(E){return E[0]==="#"&&(E=E.substring(1)),E.length<6?{r:parseInt(E[0]+E[0],16),g:parseInt(E[1]+E[1],16),b:parseInt(E[2]+E[2],16),a:E.length===4?a(parseInt(E[3]+E[3],16)/255,2):1}:{r:parseInt(E.substring(0,2),16),g:parseInt(E.substring(2,4),16),b:parseInt(E.substring(4,6),16),a:E.length===8?a(parseInt(E.substring(6,8),16)/255,2):1}}return D}(),b=r.parseHue=function(){function D(E,P){return P===void 0&&(P="deg"),Number(E)*(t[P]||1)}return D}(),S=r.hslaStringToHsva=function(){function D(E){var P=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i,R=P.exec(E);return R?k({h:b(R[1],R[2]),s:Number(R[3]),l:Number(R[4]),a:R[5]===void 0?1:Number(R[5])/(R[6]?100:1)}):{h:0,s:0,v:0,a:1}}return D}(),I=r.hslStringToHsva=S,k=r.hslaToHsva=function(){function D(E){var P=E.h,R=E.s,j=E.l,F=E.a;return R*=(j<50?j:100-j)/100,{h:P,s:R>0?2*R/(j+R)*100:0,v:j+R,a:F}}return D}(),g=r.hsvaToHex=function(){function D(E){return y(s(E))}return D}(),u=r.hsvaToHsla=function(){function D(E){var P=E.h,R=E.s,j=E.v,F=E.a,W=(200-R)*j/100;return{h:a(P),s:a(W>0&&W<200?R*j/100/(W<=100?W:200-W)*100:0),l:a(W/2),a:a(F,2)}}return D}(),c=r.hsvaToHslString=function(){function D(E){var P=u(E),R=P.h,j=P.s,F=P.l;return"hsl("+R+", "+j+"%, "+F+"%)"}return D}(),m=r.hsvaToHsvString=function(){function D(E){var P=L(E),R=P.h,j=P.s,F=P.v;return"hsv("+R+", "+j+"%, "+F+"%)"}return D}(),l=r.hsvaToHsvaString=function(){function D(E){var P=L(E),R=P.h,j=P.s,F=P.v,W=P.a;return"hsva("+R+", "+j+"%, "+F+"%, "+W+")"}return D}(),d=r.hsvaToHslaString=function(){function D(E){var P=u(E),R=P.h,j=P.s,F=P.l,W=P.a;return"hsla("+R+", "+j+"%, "+F+"%, "+W+")"}return D}(),s=r.hsvaToRgba=function(){function D(E){var P=E.h,R=E.s,j=E.v,F=E.a;P=P/360*6,R=R/100,j=j/100;var W=Math.floor(P),z=j*(1-R),K=j*(1-(P-W)*R),G=j*(1-(1-P+W)*R),J=W%6;return{r:[j,K,z,z,G,j][J]*255,g:[G,j,j,K,z,z][J]*255,b:[z,z,G,j,j,K][J]*255,a:a(F,2)}}return D}(),i=r.hsvaToRgbString=function(){function D(E){var P=s(E),R=P.r,j=P.g,F=P.b;return"rgb("+a(R)+", "+a(j)+", "+a(F)+")"}return D}(),h=r.hsvaToRgbaString=function(){function D(E){var P=s(E),R=P.r,j=P.g,F=P.b,W=P.a;return"rgba("+a(R)+", "+a(j)+", "+a(F)+", "+a(W,2)+")"}return D}(),C=r.hsvaStringToHsva=function(){function D(E){var P=/hsva?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i,R=P.exec(E);return R?L({h:b(R[1],R[2]),s:Number(R[3]),v:Number(R[4]),a:R[5]===void 0?1:Number(R[5])/(R[6]?100:1)}):{h:0,s:0,v:0,a:1}}return D}(),v=r.hsvStringToHsva=C,p=r.rgbaStringToHsva=function(){function D(E){var P=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i,R=P.exec(E);return R?B({r:Number(R[1])/(R[2]?100/255:1),g:Number(R[3])/(R[4]?100/255:1),b:Number(R[5])/(R[6]?100/255:1),a:R[7]===void 0?1:Number(R[7])/(R[8]?100:1)}):{h:0,s:0,v:0,a:1}}return D}(),N=r.rgbStringToHsva=p,V=function(E){var P=E.toString(16);return P.length<2?"0"+P:P},y=r.rgbaToHex=function(){function D(E){var P=E.r,R=E.g,j=E.b,F=E.a,W=F<1?V(a(F*255)):"";return"#"+V(a(P))+V(a(R))+V(a(j))+W}return D}(),B=r.rgbaToHsva=function(){function D(E){var P=E.r,R=E.g,j=E.b,F=E.a,W=Math.max(P,R,j),z=W-Math.min(P,R,j),K=z?W===P?(R-j)/z:W===R?2+(j-P)/z:4+(P-R)/z:0;return{h:60*(K<0?K+6:K),s:W?z/W*100:0,v:W/255*100,a:F}}return D}(),L=r.roundHsva=function(){function D(E){return{h:a(E.h),s:a(E.s),v:a(E.v),a:a(E.a,2)}}return D}(),w=r.rgbaToRgb=function(){function D(E){var P=E.r,R=E.g,j=E.b;return{r:P,g:R,b:j}}return D}(),x=r.hslaToHsl=function(){function D(E){var P=E.h,R=E.s,j=E.l;return{h:P,s:R,l:j}}return D}(),T=r.hsvaToHsv=function(){function D(E){var P=L(E),R=P.h,j=P.s,F=P.v;return{h:R,s:j,v:F}}return D}(),M=/^#?([0-9A-F]{3,8})$/i,O=r.validHex=function(){function D(E,P){var R=M.exec(E),j=R?R[1].length:0;return j===3||j===6||!!P&&j===4||!!P&&j===8}return D}()},92868:function(A,r){"use strict";r.__esModule=!0,r.EventEmitter=void 0;/**
+ */var n=1e-4,e=r.Color=function(){function D(P,R,j,F){P===void 0&&(P=0),R===void 0&&(R=0),j===void 0&&(j=0),F===void 0&&(F=1),this.r=void 0,this.g=void 0,this.b=void 0,this.a=void 0,this.r=P,this.g=R,this.b=j,this.a=F}var E=D.prototype;return E.toString=function(){function P(){return"rgba("+(this.r|0)+", "+(this.g|0)+", "+(this.b|0)+", "+(this.a|0)+")"}return P}(),D.fromHex=function(){function P(R){return new D(parseInt(R.substr(1,2),16),parseInt(R.substr(3,2),16),parseInt(R.substr(5,2),16))}return P}(),D.lerp=function(){function P(R,j,F){return new D((j.r-R.r)*F+R.r,(j.g-R.g)*F+R.g,(j.b-R.b)*F+R.b,(j.a-R.a)*F+R.a)}return P}(),D.lookup=function(){function P(R,j){j===void 0&&(j=[]);var F=j.length;if(F<2)throw new Error("Needs at least two colors!");var W=R*(F-1);if(R=1-n)return j[F-1];var z=W%1,K=W|0;return D.lerp(j[K],j[K+1],z)}return P}(),D}(),a=function(E,P,R){return P===void 0&&(P=0),R===void 0&&(R=Math.pow(10,P)),Math.round(R*E)/R},t={grad:360/400,turn:360,rad:360/(Math.PI*2)},o=r.hexToHsva=function(){function D(E){return B(f(E))}return D}(),f=r.hexToRgba=function(){function D(E){return E[0]==="#"&&(E=E.substring(1)),E.length<6?{r:parseInt(E[0]+E[0],16),g:parseInt(E[1]+E[1],16),b:parseInt(E[2]+E[2],16),a:E.length===4?a(parseInt(E[3]+E[3],16)/255,2):1}:{r:parseInt(E.substring(0,2),16),g:parseInt(E.substring(2,4),16),b:parseInt(E.substring(4,6),16),a:E.length===8?a(parseInt(E.substring(6,8),16)/255,2):1}}return D}(),b=r.parseHue=function(){function D(E,P){return P===void 0&&(P="deg"),Number(E)*(t[P]||1)}return D}(),S=r.hslaStringToHsva=function(){function D(E){var P=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i,R=P.exec(E);return R?k({h:b(R[1],R[2]),s:Number(R[3]),l:Number(R[4]),a:R[5]===void 0?1:Number(R[5])/(R[6]?100:1)}):{h:0,s:0,v:0,a:1}}return D}(),I=r.hslStringToHsva=S,k=r.hslaToHsva=function(){function D(E){var P=E.h,R=E.s,j=E.l,F=E.a;return R*=(j<50?j:100-j)/100,{h:P,s:R>0?2*R/(j+R)*100:0,v:j+R,a:F}}return D}(),g=r.hsvaToHex=function(){function D(E){return y(s(E))}return D}(),d=r.hsvaToHsla=function(){function D(E){var P=E.h,R=E.s,j=E.v,F=E.a,W=(200-R)*j/100;return{h:a(P),s:a(W>0&&W<200?R*j/100/(W<=100?W:200-W)*100:0),l:a(W/2),a:a(F,2)}}return D}(),c=r.hsvaToHslString=function(){function D(E){var P=d(E),R=P.h,j=P.s,F=P.l;return"hsl("+R+", "+j+"%, "+F+"%)"}return D}(),m=r.hsvaToHsvString=function(){function D(E){var P=L(E),R=P.h,j=P.s,F=P.v;return"hsv("+R+", "+j+"%, "+F+"%)"}return D}(),l=r.hsvaToHsvaString=function(){function D(E){var P=L(E),R=P.h,j=P.s,F=P.v,W=P.a;return"hsva("+R+", "+j+"%, "+F+"%, "+W+")"}return D}(),u=r.hsvaToHslaString=function(){function D(E){var P=d(E),R=P.h,j=P.s,F=P.l,W=P.a;return"hsla("+R+", "+j+"%, "+F+"%, "+W+")"}return D}(),s=r.hsvaToRgba=function(){function D(E){var P=E.h,R=E.s,j=E.v,F=E.a;P=P/360*6,R=R/100,j=j/100;var W=Math.floor(P),z=j*(1-R),K=j*(1-(P-W)*R),G=j*(1-(1-P+W)*R),J=W%6;return{r:[j,K,z,z,G,j][J]*255,g:[G,j,j,K,z,z][J]*255,b:[z,z,G,j,j,K][J]*255,a:a(F,2)}}return D}(),i=r.hsvaToRgbString=function(){function D(E){var P=s(E),R=P.r,j=P.g,F=P.b;return"rgb("+a(R)+", "+a(j)+", "+a(F)+")"}return D}(),h=r.hsvaToRgbaString=function(){function D(E){var P=s(E),R=P.r,j=P.g,F=P.b,W=P.a;return"rgba("+a(R)+", "+a(j)+", "+a(F)+", "+a(W,2)+")"}return D}(),C=r.hsvaStringToHsva=function(){function D(E){var P=/hsva?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i,R=P.exec(E);return R?L({h:b(R[1],R[2]),s:Number(R[3]),v:Number(R[4]),a:R[5]===void 0?1:Number(R[5])/(R[6]?100:1)}):{h:0,s:0,v:0,a:1}}return D}(),v=r.hsvStringToHsva=C,p=r.rgbaStringToHsva=function(){function D(E){var P=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i,R=P.exec(E);return R?B({r:Number(R[1])/(R[2]?100/255:1),g:Number(R[3])/(R[4]?100/255:1),b:Number(R[5])/(R[6]?100/255:1),a:R[7]===void 0?1:Number(R[7])/(R[8]?100:1)}):{h:0,s:0,v:0,a:1}}return D}(),N=r.rgbStringToHsva=p,V=function(E){var P=E.toString(16);return P.length<2?"0"+P:P},y=r.rgbaToHex=function(){function D(E){var P=E.r,R=E.g,j=E.b,F=E.a,W=F<1?V(a(F*255)):"";return"#"+V(a(P))+V(a(R))+V(a(j))+W}return D}(),B=r.rgbaToHsva=function(){function D(E){var P=E.r,R=E.g,j=E.b,F=E.a,W=Math.max(P,R,j),z=W-Math.min(P,R,j),K=z?W===P?(R-j)/z:W===R?2+(j-P)/z:4+(P-R)/z:0;return{h:60*(K<0?K+6:K),s:W?z/W*100:0,v:W/255*100,a:F}}return D}(),L=r.roundHsva=function(){function D(E){return{h:a(E.h),s:a(E.s),v:a(E.v),a:a(E.a,2)}}return D}(),w=r.rgbaToRgb=function(){function D(E){var P=E.r,R=E.g,j=E.b;return{r:P,g:R,b:j}}return D}(),x=r.hslaToHsl=function(){function D(E){var P=E.h,R=E.s,j=E.l;return{h:P,s:R,l:j}}return D}(),T=r.hsvaToHsv=function(){function D(E){var P=L(E),R=P.h,j=P.s,F=P.v;return{h:R,s:j,v:F}}return D}(),M=/^#?([0-9A-F]{3,8})$/i,O=r.validHex=function(){function D(E,P){var R=M.exec(E),j=R?R[1].length:0;return j===3||j===6||!!P&&j===4||!!P&&j===8}return D}()},92868:function(A,r){"use strict";r.__esModule=!0,r.EventEmitter=void 0;/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var n=r.EventEmitter=function(){function e(){this.listeners={}}var a=e.prototype;return a.on=function(){function t(o,f){this.listeners[o]=this.listeners[o]||[],this.listeners[o].push(f)}return t}(),a.off=function(){function t(o,f){var b=this.listeners[o];if(!b)throw new Error('There is no listeners for "'+o+'"');this.listeners[o]=b.filter(function(S){return S!==f})}return t}(),a.emit=function(){function t(o){var f=this.listeners[o];if(f){for(var b=arguments.length,S=new Array(b>1?b-1:0),I=1;I1?b-1:0),I=1;I1?I-1:0),g=1;g1?k-1:0),u=1;u1?I-1:0),g=1;g1?k-1:0),d=1;du?u:k}return I}(),e=r.clamp01=function(){function I(k){return k<0?0:k>1?1:k}return I}(),a=r.scale=function(){function I(k,g,u){return(k-g)/(u-g)}return I}(),t=r.round=function(){function I(k,g){if(!k||isNaN(k))return k;var u,c,m,l;return g|=0,u=Math.pow(10,g),k*=u,l=+(k>0)|-(k<0),m=Math.abs(k%1)>=.4999999999854481,c=Math.floor(k),m&&(k=c+(l>0)),(m?k:Math.round(k))/u}return I}(),o=r.toFixed=function(){function I(k,g){return g===void 0&&(g=0),Number(k).toFixed(Math.max(g,0))}return I}(),f=r.inRange=function(){function I(k,g){return g&&k>=g[0]&&k<=g[1]}return I}(),b=r.keyOfMatchingRange=function(){function I(k,g){for(var u=0,c=Object.keys(g);ud?d:k}return I}(),e=r.clamp01=function(){function I(k){return k<0?0:k>1?1:k}return I}(),a=r.scale=function(){function I(k,g,d){return(k-g)/(d-g)}return I}(),t=r.round=function(){function I(k,g){if(!k||isNaN(k))return k;var d,c,m,l;return g|=0,d=Math.pow(10,g),k*=d,l=+(k>0)|-(k<0),m=Math.abs(k%1)>=.4999999999854481,c=Math.floor(k),m&&(k=c+(l>0)),(m?k:Math.round(k))/d}return I}(),o=r.toFixed=function(){function I(k,g){return g===void 0&&(g=0),Number(k).toFixed(Math.max(g,0))}return I}(),f=r.inRange=function(){function I(k,g){return g&&k>=g[0]&&k<=g[1]}return I}(),b=r.keyOfMatchingRange=function(){function I(k,g){for(var d=0,c=Object.keys(g);d1?l-1:0),s=1;s1?V-1:0),B=1;B=0;--me){var Y=this.tryEntries[me],ve=Y.completion;if(Y.tryLoc==="root")return fe("end");if(Y.tryLoc<=this.prev){var he=N.call(Y,"catchLoc"),Ve=N.call(Y,"finallyLoc");if(he&&Ve){if(this.prev=0;--fe){var me=this.tryEntries[fe];if(me.tryLoc<=this.prev&&N.call(me,"finallyLoc")&&this.prev=0;--oe){var fe=this.tryEntries[oe];if(fe.finallyLoc===re)return this.complete(fe.completion,fe.afterLoc),q(fe),R}}return ee}(),catch:function(){function ee(re){for(var oe=this.tryEntries.length-1;oe>=0;--oe){var fe=this.tryEntries[oe];if(fe.tryLoc===re){var me=fe.completion;if(me.type==="throw"){var Y=me.arg;q(fe)}return Y}}throw Error("illegal catch attempt")}return ee}(),delegateYield:function(){function ee(re,oe,fe){return this.delegate={iterator:le(re),resultName:oe,nextLoc:fe},this.method==="next"&&(this.arg=C),R}return ee}()},v}function e(C,v,p,N,V,y,B){try{var L=C[y](B),w=L.value}catch(x){return void p(x)}L.done?v(w):Promise.resolve(w).then(N,V)}function a(C){return function(){var v=this,p=arguments;return new Promise(function(N,V){var y=C.apply(v,p);function B(w){e(y,N,V,B,L,"next",w)}function L(w){e(y,N,V,B,L,"throw",w)}B(void 0)})}}/**
+ */var a=r.createStore=function(){function I(k,g){if(g)return g(I)(k);var d,c=[],m=function(){function s(){return d}return s}(),l=function(){function s(i){c.push(i)}return s}(),u=function(){function s(i){d=k(d,i);for(var h=0;h1?l-1:0),s=1;s1?V-1:0),B=1;B=0;--me){var Y=this.tryEntries[me],ve=Y.completion;if(Y.tryLoc==="root")return fe("end");if(Y.tryLoc<=this.prev){var he=N.call(Y,"catchLoc"),Ve=N.call(Y,"finallyLoc");if(he&&Ve){if(this.prev=0;--fe){var me=this.tryEntries[fe];if(me.tryLoc<=this.prev&&N.call(me,"finallyLoc")&&this.prev=0;--oe){var fe=this.tryEntries[oe];if(fe.finallyLoc===re)return this.complete(fe.completion,fe.afterLoc),q(fe),R}}return ee}(),catch:function(){function ee(re){for(var oe=this.tryEntries.length-1;oe>=0;--oe){var fe=this.tryEntries[oe];if(fe.tryLoc===re){var me=fe.completion;if(me.type==="throw"){var Y=me.arg;q(fe)}return Y}}throw Error("illegal catch attempt")}return ee}(),delegateYield:function(){function ee(re,oe,fe){return this.delegate={iterator:le(re),resultName:oe,nextLoc:fe},this.method==="next"&&(this.arg=C),R}return ee}()},v}function e(C,v,p,N,V,y,B){try{var L=C[y](B),w=L.value}catch(x){return void p(x)}L.done?v(w):Promise.resolve(w).then(N,V)}function a(C){return function(){var v=this,p=arguments;return new Promise(function(N,V){var y=C.apply(v,p);function B(w){e(y,N,V,B,L,"next",w)}function L(w){e(y,N,V,B,L,"throw",w)}B(void 0)})}}/**
* Browser-agnostic abstraction of key-value web storage.
*
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var t=r.IMPL_MEMORY=0,o=r.IMPL_HUB_STORAGE=1,f=r.IMPL_INDEXED_DB=2,b=1,S="para-tgui",I="storage-v1",k="readonly",g="readwrite",u=function(v){return function(){try{return!!v()}catch(p){return!1}}},c=u(function(){return window.hubStorage&&window.hubStorage.getItem}),m=u(function(){return(window.indexedDB||window.msIndexedDB)&&(window.IDBTransaction||window.msIDBTransaction)}),l=function(){function C(){this.impl=t,this.store={}}var v=C.prototype;return v.get=function(){var p=a(n().mark(function(){function V(y){return n().wrap(function(){function B(L){for(;;)switch(L.prev=L.next){case 0:return L.abrupt("return",this.store[y]);case 1:case"end":return L.stop()}}return B}(),V,this)}return V}()));function N(V){return p.apply(this,arguments)}return N}(),v.set=function(){var p=a(n().mark(function(){function V(y,B){return n().wrap(function(){function L(w){for(;;)switch(w.prev=w.next){case 0:this.store[y]=B;case 1:case"end":return w.stop()}}return L}(),V,this)}return V}()));function N(V,y){return p.apply(this,arguments)}return N}(),v.remove=function(){var p=a(n().mark(function(){function V(y){return n().wrap(function(){function B(L){for(;;)switch(L.prev=L.next){case 0:this.store[y]=void 0;case 1:case"end":return L.stop()}}return B}(),V,this)}return V}()));function N(V){return p.apply(this,arguments)}return N}(),v.clear=function(){var p=a(n().mark(function(){function V(){return n().wrap(function(){function y(B){for(;;)switch(B.prev=B.next){case 0:this.store={};case 1:case"end":return B.stop()}}return y}(),V,this)}return V}()));function N(){return p.apply(this,arguments)}return N}(),C}(),d=function(){function C(){this.impl=o}var v=C.prototype;return v.get=function(){var p=a(n().mark(function(){function V(y){var B;return n().wrap(function(){function L(w){for(;;)switch(w.prev=w.next){case 0:return w.next=2,window.hubStorage.getItem("paradise-"+y);case 2:if(B=w.sent,typeof B!="string"){w.next=5;break}return w.abrupt("return",JSON.parse(B));case 5:case"end":return w.stop()}}return L}(),V)}return V}()));function N(V){return p.apply(this,arguments)}return N}(),v.set=function(){function p(N,V){window.hubStorage.setItem("paradise-"+N,JSON.stringify(V))}return p}(),v.remove=function(){function p(N){window.hubStorage.removeItem("paradise-"+N)}return p}(),v.clear=function(){function p(){window.hubStorage.clear()}return p}(),C}(),s=function(){function C(){this.impl=f,this.dbPromise=new Promise(function(p,N){var V=window.indexedDB||window.msIndexedDB,y=V.open(S,b);y.onupgradeneeded=function(){try{y.result.createObjectStore(I)}catch(B){N(new Error("Failed to upgrade IDB: "+y.error))}},y.onsuccess=function(){return p(y.result)},y.onerror=function(){N(new Error("Failed to open IDB: "+y.error))}})}var v=C.prototype;return v.getStore=function(){var p=a(n().mark(function(){function V(y){return n().wrap(function(){function B(L){for(;;)switch(L.prev=L.next){case 0:return L.abrupt("return",this.dbPromise.then(function(w){return w.transaction(I,y).objectStore(I)}));case 1:case"end":return L.stop()}}return B}(),V,this)}return V}()));function N(V){return p.apply(this,arguments)}return N}(),v.get=function(){var p=a(n().mark(function(){function V(y){var B;return n().wrap(function(){function L(w){for(;;)switch(w.prev=w.next){case 0:return w.next=2,this.getStore(k);case 2:return B=w.sent,w.abrupt("return",new Promise(function(x,T){var M=B.get(y);M.onsuccess=function(){return x(M.result)},M.onerror=function(){return T(M.error)}}));case 4:case"end":return w.stop()}}return L}(),V,this)}return V}()));function N(V){return p.apply(this,arguments)}return N}(),v.set=function(){var p=a(n().mark(function(){function V(y,B){var L;return n().wrap(function(){function w(x){for(;;)switch(x.prev=x.next){case 0:return x.next=2,this.getStore(g);case 2:L=x.sent,L.put(B,y);case 4:case"end":return x.stop()}}return w}(),V,this)}return V}()));function N(V,y){return p.apply(this,arguments)}return N}(),v.remove=function(){var p=a(n().mark(function(){function V(y){var B;return n().wrap(function(){function L(w){for(;;)switch(w.prev=w.next){case 0:return w.next=2,this.getStore(g);case 2:B=w.sent,B.delete(y);case 4:case"end":return w.stop()}}return L}(),V,this)}return V}()));function N(V){return p.apply(this,arguments)}return N}(),v.clear=function(){var p=a(n().mark(function(){function V(){var y;return n().wrap(function(){function B(L){for(;;)switch(L.prev=L.next){case 0:return L.next=2,this.getStore(g);case 2:y=L.sent,y.clear();case 4:case"end":return L.stop()}}return B}(),V,this)}return V}()));function N(){return p.apply(this,arguments)}return N}(),C}(),i=function(){function C(){this.backendPromise=a(n().mark(function(){function p(){var N;return n().wrap(function(){function V(y){for(;;)switch(y.prev=y.next){case 0:if(!(!Byond.TRIDENT&&c())){y.next=2;break}return y.abrupt("return",new d);case 2:if(!m()){y.next=12;break}return y.prev=3,N=new s,y.next=7,N.dbPromise;case 7:return y.abrupt("return",N);case 10:y.prev=10,y.t0=y.catch(3);case 12:return y.abrupt("return",new l);case 13:case"end":return y.stop()}}return V}(),p,null,[[3,10]])}return p}()))()}var v=C.prototype;return v.get=function(){var p=a(n().mark(function(){function V(y){var B;return n().wrap(function(){function L(w){for(;;)switch(w.prev=w.next){case 0:return w.next=2,this.backendPromise;case 2:return B=w.sent,w.abrupt("return",B.get(y));case 4:case"end":return w.stop()}}return L}(),V,this)}return V}()));function N(V){return p.apply(this,arguments)}return N}(),v.set=function(){var p=a(n().mark(function(){function V(y,B){var L;return n().wrap(function(){function w(x){for(;;)switch(x.prev=x.next){case 0:return x.next=2,this.backendPromise;case 2:return L=x.sent,x.abrupt("return",L.set(y,B));case 4:case"end":return x.stop()}}return w}(),V,this)}return V}()));function N(V,y){return p.apply(this,arguments)}return N}(),v.remove=function(){var p=a(n().mark(function(){function V(y){var B;return n().wrap(function(){function L(w){for(;;)switch(w.prev=w.next){case 0:return w.next=2,this.backendPromise;case 2:return B=w.sent,w.abrupt("return",B.remove(y));case 4:case"end":return w.stop()}}return L}(),V,this)}return V}()));function N(V){return p.apply(this,arguments)}return N}(),v.clear=function(){var p=a(n().mark(function(){function V(){var y;return n().wrap(function(){function B(L){for(;;)switch(L.prev=L.next){case 0:return L.next=2,this.backendPromise;case 2:return y=L.sent,L.abrupt("return",y.clear());case 4:case"end":return L.stop()}}return B}(),V,this)}return V}()));function N(){return p.apply(this,arguments)}return N}(),C}(),h=r.storage=new i},25328:function(A,r){"use strict";r.__esModule=!0,r.toTitleCase=r.multiline=r.decodeHtmlEntities=r.createSearch=r.createGlobPattern=r.capitalize=r.buildQueryString=void 0;function n(g,u){var c=typeof Symbol!="undefined"&&g[Symbol.iterator]||g["@@iterator"];if(c)return(c=c.call(g)).next.bind(c);if(Array.isArray(g)||(c=e(g))||u&&g&&typeof g.length=="number"){c&&(g=c);var m=0;return function(){return m>=g.length?{done:!0}:{done:!1,value:g[m++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function e(g,u){if(g){if(typeof g=="string")return a(g,u);var c={}.toString.call(g).slice(8,-1);return c==="Object"&&g.constructor&&(c=g.constructor.name),c==="Map"||c==="Set"?Array.from(g):c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?a(g,u):void 0}}function a(g,u){(u==null||u>g.length)&&(u=g.length);for(var c=0,m=Array(u);c=g.length?{done:!0}:{done:!1,value:g[m++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function e(g,d){if(g){if(typeof g=="string")return a(g,d);var c={}.toString.call(g).slice(8,-1);return c==="Object"&&g.constructor&&(c=g.constructor.name),c==="Map"||c==="Set"?Array.from(g):c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?a(g,d):void 0}}function a(g,d){(d==null||d>g.length)&&(d=g.length);for(var c=0,m=Array(d);c",apos:"'"};return u.replace(/ /gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(c,function(l,d){return m[d]}).replace(/?([0-9]+);/gi,function(l,d){var s=parseInt(d,10);return String.fromCharCode(s)}).replace(/?([0-9a-f]+);/gi,function(l,d){var s=parseInt(d,16);return String.fromCharCode(s)})}return g}(),k=r.buildQueryString=function(){function g(u){return Object.keys(u).map(function(c){return encodeURIComponent(c)+"="+encodeURIComponent(u[c])}).join("&")}return g}()},69214:function(A,r){"use strict";r.__esModule=!0,r.throttle=r.sleep=r.debounce=void 0;/**
+ */var t=r.multiline=function(){function g(d){if(Array.isArray(d))return g(d.join(""));for(var c=d.split("\n"),m,l=n(c),u;!(u=l()).done;)for(var s=u.value,i=0;i",apos:"'"};return d.replace(/ /gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(c,function(l,u){return m[u]}).replace(/?([0-9]+);/gi,function(l,u){var s=parseInt(u,10);return String.fromCharCode(s)}).replace(/?([0-9a-f]+);/gi,function(l,u){var s=parseInt(u,16);return String.fromCharCode(s)})}return g}(),k=r.buildQueryString=function(){function g(d){return Object.keys(d).map(function(c){return encodeURIComponent(c)+"="+encodeURIComponent(d[c])}).join("&")}return g}()},69214:function(A,r){"use strict";r.__esModule=!0,r.throttle=r.sleep=r.debounce=void 0;/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var n=r.debounce=function(){function t(o,f,b){b===void 0&&(b=!1);var S;return function(){for(var I=arguments.length,k=new Array(I),g=0;g=f)o.apply(null,g),b=c;else{var m;S=setTimeout(function(){return I.apply(void 0,g)},f-(c-((m=b)!=null?m:0)))}}return I}()}return t}()},97450:function(A,r,n){"use strict";r.__esModule=!0,r.vecSubtract=r.vecScale=r.vecNormalize=r.vecMultiply=r.vecLength=r.vecInverse=r.vecDivide=r.vecAdd=void 0;var e=n(88510);/**
+ */var n=r.debounce=function(){function t(o,f,b){b===void 0&&(b=!1);var S;return function(){for(var I=arguments.length,k=new Array(I),g=0;g=f)o.apply(null,g),b=c;else{var m;S=setTimeout(function(){return I.apply(void 0,g)},f-(c-((m=b)!=null?m:0)))}}return I}()}return t}()},97450:function(A,r,n){"use strict";r.__esModule=!0,r.vecSubtract=r.vecScale=r.vecNormalize=r.vecMultiply=r.vecLength=r.vecInverse=r.vecDivide=r.vecAdd=void 0;var e=n(88510);/**
* N-dimensional vector manipulation functions.
*
* Vectors are plain number arrays, i.e. [x, y, z].
@@ -62,11 +62,11 @@
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var a=function(d,s){return d+s},t=function(d,s){return d-s},o=function(d,s){return d*s},f=function(d,s){return d/s},b=r.vecAdd=function(){function l(){for(var d=arguments.length,s=new Array(d),i=0;i0&&(N.style=T),N}return v}(),h=r.computeBoxClassName=function(){function v(p){var N=p.textColor||p.color,V=p.backgroundColor;return(0,e.classes)([g(N)&&"color-"+N,g(V)&&"color-bg-"+V])}return v}(),C=r.Box=function(){function v(p){var N=p.as,V=N===void 0?"div":N,y=p.className,B=p.children,L=b(p,f);if(typeof B=="function")return B(i(p));var w=typeof y=="string"?y+" "+h(L):h(L),x=i(L);return(0,a.createVNode)(t.VNodeFlags.HtmlElement,V,w,B,t.ChildFlags.UnknownChildren,x)}return v}();C.defaultHooks=e.pureComponentHooks},96184:function(A,r,n){"use strict";r.__esModule=!0,r.ButtonInput=r.ButtonConfirm=r.ButtonCheckbox=r.Button=void 0;var e=n(89005),a=n(35840),t=n(92986),o=n(9394),f=n(55937),b=n(1331),S=n(62147),I=["className","fluid","translucent","icon","iconRotation","iconSpin","color","textColor","disabled","selected","tooltip","tooltipPosition","ellipsis","compact","circular","content","iconColor","iconRight","iconStyle","children","onclick","onClick","multiLine"],k=["checked"],g=["confirmContent","confirmColor","confirmIcon","icon","color","content","onClick"],u=["fluid","content","icon","iconRotation","iconSpin","tooltip","tooltipPosition","color","disabled","multiLine"];/**
+ */function b(v,p){if(v==null)return{};var N={};for(var V in v)if({}.hasOwnProperty.call(v,V)){if(p.includes(V))continue;N[V]=v[V]}return N}var S=r.unit=function(){function v(p){if(typeof p=="string")return p.endsWith("px")?parseFloat(p)/12+"rem":p;if(typeof p=="number")return p+"rem"}return v}(),I=r.halfUnit=function(){function v(p){if(typeof p=="string")return S(p);if(typeof p=="number")return S(p*.5)}return v}(),k=function(p){return!g(p)},g=function(p){if(typeof p=="string")return o.CSS_COLORS.includes(p)},d=function(p){return function(N,V){(typeof V=="number"||typeof V=="string")&&(N[p]=V)}},c=function(p,N){return function(V,y){(typeof y=="number"||typeof y=="string")&&(V[p]=N(y))}},m=function(p,N){return function(V,y){y&&(V[p]=N)}},l=function(p,N,V){return function(y,B){if(typeof B=="number"||typeof B=="string")for(var L=0;L0&&(N.style=T),N}return v}(),h=r.computeBoxClassName=function(){function v(p){var N=p.textColor||p.color,V=p.backgroundColor;return(0,e.classes)([g(N)&&"color-"+N,g(V)&&"color-bg-"+V])}return v}(),C=r.Box=function(){function v(p){var N=p.as,V=N===void 0?"div":N,y=p.className,B=p.children,L=b(p,f);if(typeof B=="function")return B(i(p));var w=typeof y=="string"?y+" "+h(L):h(L),x=i(L);return(0,a.createVNode)(t.VNodeFlags.HtmlElement,V,w,B,t.ChildFlags.UnknownChildren,x)}return v}();C.defaultHooks=e.pureComponentHooks},96184:function(A,r,n){"use strict";r.__esModule=!0,r.ButtonInput=r.ButtonConfirm=r.ButtonCheckbox=r.Button=void 0;var e=n(89005),a=n(35840),t=n(92986),o=n(9394),f=n(55937),b=n(1331),S=n(62147),I=["className","fluid","translucent","icon","iconRotation","iconSpin","color","textColor","disabled","selected","tooltip","tooltipPosition","ellipsis","compact","circular","content","iconColor","iconRight","iconStyle","children","onclick","onClick","multiLine"],k=["checked"],g=["confirmContent","confirmColor","confirmIcon","icon","color","content","onClick"],d=["fluid","content","icon","iconRotation","iconSpin","tooltip","tooltipPosition","color","disabled","multiLine"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function c(v,p){v.prototype=Object.create(p.prototype),v.prototype.constructor=v,m(v,p)}function m(v,p){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(N,V){return N.__proto__=V,N},m(v,p)}function l(v,p){if(v==null)return{};var N={};for(var V in v)if({}.hasOwnProperty.call(v,V)){if(p.includes(V))continue;N[V]=v[V]}return N}var d=(0,o.createLogger)("Button"),s=r.Button=function(){function v(p){var N=p.className,V=p.fluid,y=p.translucent,B=p.icon,L=p.iconRotation,w=p.iconSpin,x=p.color,T=p.textColor,M=p.disabled,O=p.selected,D=p.tooltip,E=p.tooltipPosition,P=p.ellipsis,R=p.compact,j=p.circular,F=p.content,W=p.iconColor,z=p.iconRight,K=p.iconStyle,G=p.children,J=p.onclick,Q=p.onClick,ue=p.multiLine,ie=l(p,I),pe=!!(F||G);J&&d.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"),ie.onClick=function(q){!M&&Q&&Q(q)};var te=(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.Box,Object.assign({className:(0,a.classes)(["Button",V&&"Button--fluid",M&&"Button--disabled"+(y?"--translucent":""),O&&"Button--selected"+(y?"--translucent":""),pe&&"Button--hasContent",P&&"Button--ellipsis",j&&"Button--circular",R&&"Button--compact",z&&"Button--iconRight",ue&&"Button--multiLine",x&&typeof x=="string"?"Button--color--"+x+(y?"--translucent":""):"Button--color--default"+(y?"--translucent":""),N]),tabIndex:!M&&"0",color:T,onKeyDown:function(){function q(ne){var le=window.event?ne.which:ne.keyCode;if(le===t.KEY_SPACE||le===t.KEY_ENTER){ne.preventDefault(),!M&&Q&&Q(ne);return}if(le===t.KEY_ESCAPE){ne.preventDefault();return}}return q}()},ie,{children:[B&&!z&&(0,e.createComponentVNode)(2,b.Icon,{name:B,color:W,rotation:L,spin:w,style:K}),F,G,B&&z&&(0,e.createComponentVNode)(2,b.Icon,{name:B,color:W,rotation:L,spin:w,style:K})]})));return D&&(te=(0,e.createComponentVNode)(2,S.Tooltip,{content:D,position:E,children:te})),te}return v}();s.defaultHooks=a.pureComponentHooks;var i=r.ButtonCheckbox=function(){function v(p){var N=p.checked,V=l(p,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,s,Object.assign({color:"transparent",icon:N?"check-square-o":"square-o",selected:N},V)))}return v}();s.Checkbox=i;var h=r.ButtonConfirm=function(v){function p(){var V;return V=v.call(this)||this,V.handleClick=function(){V.state.clickedOnce&&V.setClickedOnce(!1)},V.state={clickedOnce:!1},V}c(p,v);var N=p.prototype;return N.setClickedOnce=function(){function V(y){var B=this;this.setState({clickedOnce:y}),y?setTimeout(function(){return window.addEventListener("click",B.handleClick)}):window.removeEventListener("click",this.handleClick)}return V}(),N.render=function(){function V(){var y=this,B=this.props,L=B.confirmContent,w=L===void 0?"Confirm?":L,x=B.confirmColor,T=x===void 0?"bad":x,M=B.confirmIcon,O=B.icon,D=B.color,E=B.content,P=B.onClick,R=l(B,g);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,s,Object.assign({content:this.state.clickedOnce?w:E,icon:this.state.clickedOnce?M:O,color:this.state.clickedOnce?T:D,onClick:function(){function j(F){return y.state.clickedOnce?P==null?void 0:P(F):y.setClickedOnce(!0)}return j}()},R)))}return V}(),p}(e.Component);s.Confirm=h;var C=r.ButtonInput=function(v){function p(){var V;return V=v.call(this)||this,V.inputRef=void 0,V.inputRef=(0,e.createRef)(),V.state={inInput:!1},V}c(p,v);var N=p.prototype;return N.setInInput=function(){function V(y){var B=this.props.disabled;if(!B&&(this.setState({inInput:y}),this.inputRef)){var L=this.inputRef.current;if(y){L.value=this.props.currentValue||"";try{L.focus(),L.select()}catch(w){}}}}return V}(),N.commitResult=function(){function V(y){if(this.inputRef){var B=this.inputRef.current,L=B.value!=="";if(L){this.props.onCommit(y,B.value);return}else{if(!this.props.defaultValue)return;this.props.onCommit(y,this.props.defaultValue)}}}return V}(),N.render=function(){function V(){var y=this,B=this.props,L=B.fluid,w=B.content,x=B.icon,T=B.iconRotation,M=B.iconSpin,O=B.tooltip,D=B.tooltipPosition,E=B.color,P=E===void 0?"default":E,R=B.disabled,j=B.multiLine,F=l(B,u),W=(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.Box,Object.assign({className:(0,a.classes)(["Button",L&&"Button--fluid",R&&"Button--disabled","Button--color--"+P,j+"Button--multiLine"])},F,{onClick:function(){function z(){return y.setInInput(!0)}return z}(),children:[x&&(0,e.createComponentVNode)(2,b.Icon,{name:x,rotation:T,spin:M}),(0,e.createVNode)(1,"div",null,w,0),(0,e.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?void 0:"none","text-align":"left"},onBlur:function(){function z(K){y.state.inInput&&(y.setInInput(!1),y.commitResult(K))}return z}(),onKeyDown:function(){function z(K){if(K.keyCode===t.KEY_ENTER){y.setInInput(!1),y.commitResult(K);return}K.keyCode===t.KEY_ESCAPE&&y.setInInput(!1)}return z}()},null,this.inputRef)]})));return O&&(W=(0,e.createComponentVNode)(2,S.Tooltip,{content:O,position:D,children:W})),W}return V}(),p}(e.Component);s.Input=C},18982:function(A,r,n){"use strict";r.__esModule=!0,r.ByondUi=void 0;var e=n(89005),a=n(35840),t=n(69214),o=n(9394),f=n(55937),b=["params"],S=["params"],I=["parent","params"];function k(h,C){if(h==null)return{};var v={};for(var p in h)if({}.hasOwnProperty.call(h,p)){if(C.includes(p))continue;v[p]=h[p]}return v}function g(h,C){h.prototype=Object.create(C.prototype),h.prototype.constructor=h,u(h,C)}function u(h,C){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(v,p){return v.__proto__=p,v},u(h,C)}/**
+ */function c(v,p){v.prototype=Object.create(p.prototype),v.prototype.constructor=v,m(v,p)}function m(v,p){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(N,V){return N.__proto__=V,N},m(v,p)}function l(v,p){if(v==null)return{};var N={};for(var V in v)if({}.hasOwnProperty.call(v,V)){if(p.includes(V))continue;N[V]=v[V]}return N}var u=(0,o.createLogger)("Button"),s=r.Button=function(){function v(p){var N=p.className,V=p.fluid,y=p.translucent,B=p.icon,L=p.iconRotation,w=p.iconSpin,x=p.color,T=p.textColor,M=p.disabled,O=p.selected,D=p.tooltip,E=p.tooltipPosition,P=p.ellipsis,R=p.compact,j=p.circular,F=p.content,W=p.iconColor,z=p.iconRight,K=p.iconStyle,G=p.children,J=p.onclick,Q=p.onClick,ue=p.multiLine,ie=l(p,I),pe=!!(F||G);J&&u.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"),ie.onClick=function(q){!M&&Q&&Q(q)};var te=(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.Box,Object.assign({className:(0,a.classes)(["Button",V&&"Button--fluid",M&&"Button--disabled"+(y?"--translucent":""),O&&"Button--selected"+(y?"--translucent":""),pe&&"Button--hasContent",P&&"Button--ellipsis",j&&"Button--circular",R&&"Button--compact",z&&"Button--iconRight",ue&&"Button--multiLine",x&&typeof x=="string"?"Button--color--"+x+(y?"--translucent":""):"Button--color--default"+(y?"--translucent":""),N]),tabIndex:!M&&"0",color:T,onKeyDown:function(){function q(ne){var le=window.event?ne.which:ne.keyCode;if(le===t.KEY_SPACE||le===t.KEY_ENTER){ne.preventDefault(),!M&&Q&&Q(ne);return}if(le===t.KEY_ESCAPE){ne.preventDefault();return}}return q}()},ie,{children:[B&&!z&&(0,e.createComponentVNode)(2,b.Icon,{name:B,color:W,rotation:L,spin:w,style:K}),F,G,B&&z&&(0,e.createComponentVNode)(2,b.Icon,{name:B,color:W,rotation:L,spin:w,style:K})]})));return D&&(te=(0,e.createComponentVNode)(2,S.Tooltip,{content:D,position:E,children:te})),te}return v}();s.defaultHooks=a.pureComponentHooks;var i=r.ButtonCheckbox=function(){function v(p){var N=p.checked,V=l(p,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,s,Object.assign({color:"transparent",icon:N?"check-square-o":"square-o",selected:N},V)))}return v}();s.Checkbox=i;var h=r.ButtonConfirm=function(v){function p(){var V;return V=v.call(this)||this,V.handleClick=function(){V.state.clickedOnce&&V.setClickedOnce(!1)},V.state={clickedOnce:!1},V}c(p,v);var N=p.prototype;return N.setClickedOnce=function(){function V(y){var B=this;this.setState({clickedOnce:y}),y?setTimeout(function(){return window.addEventListener("click",B.handleClick)}):window.removeEventListener("click",this.handleClick)}return V}(),N.render=function(){function V(){var y=this,B=this.props,L=B.confirmContent,w=L===void 0?"Confirm?":L,x=B.confirmColor,T=x===void 0?"bad":x,M=B.confirmIcon,O=B.icon,D=B.color,E=B.content,P=B.onClick,R=l(B,g);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,s,Object.assign({content:this.state.clickedOnce?w:E,icon:this.state.clickedOnce?M:O,color:this.state.clickedOnce?T:D,onClick:function(){function j(F){return y.state.clickedOnce?P==null?void 0:P(F):y.setClickedOnce(!0)}return j}()},R)))}return V}(),p}(e.Component);s.Confirm=h;var C=r.ButtonInput=function(v){function p(){var V;return V=v.call(this)||this,V.inputRef=void 0,V.inputRef=(0,e.createRef)(),V.state={inInput:!1},V}c(p,v);var N=p.prototype;return N.setInInput=function(){function V(y){var B=this.props.disabled;if(!B&&(this.setState({inInput:y}),this.inputRef)){var L=this.inputRef.current;if(y){L.value=this.props.currentValue||"";try{L.focus(),L.select()}catch(w){}}}}return V}(),N.commitResult=function(){function V(y){if(this.inputRef){var B=this.inputRef.current,L=B.value!=="";if(L){this.props.onCommit(y,B.value);return}else{if(!this.props.defaultValue)return;this.props.onCommit(y,this.props.defaultValue)}}}return V}(),N.render=function(){function V(){var y=this,B=this.props,L=B.fluid,w=B.content,x=B.icon,T=B.iconRotation,M=B.iconSpin,O=B.tooltip,D=B.tooltipPosition,E=B.color,P=E===void 0?"default":E,R=B.disabled,j=B.multiLine,F=l(B,d),W=(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.Box,Object.assign({className:(0,a.classes)(["Button",L&&"Button--fluid",R&&"Button--disabled","Button--color--"+P,j+"Button--multiLine"])},F,{onClick:function(){function z(){return y.setInInput(!0)}return z}(),children:[x&&(0,e.createComponentVNode)(2,b.Icon,{name:x,rotation:T,spin:M}),(0,e.createVNode)(1,"div",null,w,0),(0,e.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:this.state.inInput?void 0:"none","text-align":"left"},onBlur:function(){function z(K){y.state.inInput&&(y.setInInput(!1),y.commitResult(K))}return z}(),onKeyDown:function(){function z(K){if(K.keyCode===t.KEY_ENTER){y.setInInput(!1),y.commitResult(K);return}K.keyCode===t.KEY_ESCAPE&&y.setInInput(!1)}return z}()},null,this.inputRef)]})));return O&&(W=(0,e.createComponentVNode)(2,S.Tooltip,{content:O,position:D,children:W})),W}return V}(),p}(e.Component);s.Input=C},18982:function(A,r,n){"use strict";r.__esModule=!0,r.ByondUi=void 0;var e=n(89005),a=n(35840),t=n(69214),o=n(9394),f=n(55937),b=["params"],S=["params"],I=["parent","params"];function k(h,C){if(h==null)return{};var v={};for(var p in h)if({}.hasOwnProperty.call(h,p)){if(C.includes(p))continue;v[p]=h[p]}return v}function g(h,C){h.prototype=Object.create(C.prototype),h.prototype.constructor=h,d(h,C)}function d(h,C){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(v,p){return v.__proto__=p,v},d(h,C)}/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
-*/var c=(0,o.createLogger)("ByondUi"),m=[],l=function(C){var v=m.length;m.push(null);var p=C||"byondui_"+v;return c.log("allocated '"+p+"'"),{render:function(){function N(V){c.log("rendering '"+p+"'"),m[v]=p,Byond.winset(p,V)}return N}(),unmount:function(){function N(){c.log("unmounting '"+p+"'"),m[v]=null,Byond.winset(p,{parent:""})}return N}()}};window.addEventListener("beforeunload",function(){for(var h=0;h0){var E=D[0],P=D[D.length-1];D.push([O[0]+T,P[1]]),D.push([O[0]+T,-T]),D.push([-T,-T]),D.push([-T,E[1]])}var R=g(D);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({position:"relative"},M,{children:function(){function j(F){return(0,e.normalizeProps)((0,e.createVNode)(1,"div",null,(0,e.createVNode)(32,"svg",null,(0,e.createVNode)(32,"polyline",null,null,1,{transform:"scale(1, -1) translate(0, -"+O[1]+")",fill:B,stroke:w,"stroke-width":T,points:R}),2,{viewBox:"0 0 "+O[0]+" "+O[1],preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"}}),2,Object.assign({},F),null,h.ref))}return j}()})))}return i}(),d}(e.Component);u.defaultHooks=t.pureComponentHooks;var c=function(d){return null},m=r.Chart={Line:u}},4796:function(A,r,n){"use strict";r.__esModule=!0,r.Collapsible=void 0;var e=n(89005),a=n(55937),t=n(96184),o=["children","color","title","buttons","contentStyle"];function f(k,g){if(k==null)return{};var u={};for(var c in k)if({}.hasOwnProperty.call(k,c)){if(g.includes(c))continue;u[c]=k[c]}return u}function b(k,g){k.prototype=Object.create(g.prototype),k.prototype.constructor=k,S(k,g)}function S(k,g){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(u,c){return u.__proto__=c,u},S(k,g)}/**
+*/var k=function(u,s,i,h){if(u.length===0)return[];var C=(0,a.zipWith)(Math.min).apply(void 0,u),v=(0,a.zipWith)(Math.max).apply(void 0,u);i!==void 0&&(C[0]=i[0],v[0]=i[1]),h!==void 0&&(C[1]=h[0],v[1]=h[1]);var p=(0,a.map)(function(N){return(0,a.zipWith)(function(V,y,B,L){return(V-y)/(B-y)*L})(N,C,v,s)})(u);return p},g=function(u){for(var s="",i=0;i0){var E=D[0],P=D[D.length-1];D.push([O[0]+T,P[1]]),D.push([O[0]+T,-T]),D.push([-T,-T]),D.push([-T,E[1]])}var R=g(D);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({position:"relative"},M,{children:function(){function j(F){return(0,e.normalizeProps)((0,e.createVNode)(1,"div",null,(0,e.createVNode)(32,"svg",null,(0,e.createVNode)(32,"polyline",null,null,1,{transform:"scale(1, -1) translate(0, -"+O[1]+")",fill:B,stroke:w,"stroke-width":T,points:R}),2,{viewBox:"0 0 "+O[0]+" "+O[1],preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"}}),2,Object.assign({},F),null,h.ref))}return j}()})))}return i}(),u}(e.Component);d.defaultHooks=t.pureComponentHooks;var c=function(u){return null},m=r.Chart={Line:d}},4796:function(A,r,n){"use strict";r.__esModule=!0,r.Collapsible=void 0;var e=n(89005),a=n(55937),t=n(96184),o=["children","color","title","buttons","contentStyle"];function f(k,g){if(k==null)return{};var d={};for(var c in k)if({}.hasOwnProperty.call(k,c)){if(g.includes(c))continue;d[c]=k[c]}return d}function b(k,g){k.prototype=Object.create(g.prototype),k.prototype.constructor=k,S(k,g)}function S(k,g){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(d,c){return d.__proto__=c,d},S(k,g)}/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
-*/var I=r.Collapsible=function(k){function g(c){var m;m=k.call(this,c)||this;var l=c.open;return m.state={open:l||!1},m}b(g,k);var u=g.prototype;return u.render=function(){function c(){var m=this,l=this.props,d=this.state.open,s=l.children,i=l.color,h=i===void 0?"default":i,C=l.title,v=l.buttons,p=l.contentStyle,N=f(l,o);return(0,e.createComponentVNode)(2,a.Box,{className:"Collapsible",children:[(0,e.createVNode)(1,"div","Table",[(0,e.createVNode)(1,"div","Table__cell",(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Button,Object.assign({fluid:!0,color:h,icon:d?"chevron-down":"chevron-right",onClick:function(){function V(){return m.setState({open:!d})}return V}()},N,{children:C}))),2),v&&(0,e.createVNode)(1,"div","Table__cell Table__cell--collapsing",v,0)],0),d&&(0,e.createComponentVNode)(2,a.Box,{mt:1,style:p,children:s})]})}return c}(),g}(e.Component)},88894:function(A,r,n){"use strict";r.__esModule=!0,r.ColorBox=void 0;var e=n(89005),a=n(35840),t=n(55937),o=["content","children","className","color","backgroundColor"];/**
+*/var I=r.Collapsible=function(k){function g(c){var m;m=k.call(this,c)||this;var l=c.open;return m.state={open:l||!1},m}b(g,k);var d=g.prototype;return d.render=function(){function c(){var m=this,l=this.props,u=this.state.open,s=l.children,i=l.color,h=i===void 0?"default":i,C=l.title,v=l.buttons,p=l.contentStyle,N=f(l,o);return(0,e.createComponentVNode)(2,a.Box,{className:"Collapsible",children:[(0,e.createVNode)(1,"div","Table",[(0,e.createVNode)(1,"div","Table__cell",(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Button,Object.assign({fluid:!0,color:h,icon:u?"chevron-down":"chevron-right",onClick:function(){function V(){return m.setState({open:!u})}return V}()},N,{children:C}))),2),v&&(0,e.createVNode)(1,"div","Table__cell Table__cell--collapsing",v,0)],0),u&&(0,e.createComponentVNode)(2,a.Box,{mt:1,style:p,children:s})]})}return c}(),g}(e.Component)},88894:function(A,r,n){"use strict";r.__esModule=!0,r.ColorBox=void 0;var e=n(89005),a=n(35840),t=n(55937),o=["content","children","className","color","backgroundColor"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function f(S,I){if(S==null)return{};var k={};for(var g in S)if({}.hasOwnProperty.call(S,g)){if(I.includes(g))continue;k[g]=S[g]}return k}var b=r.ColorBox=function(){function S(I){var k=I.content,g=I.children,u=I.className,c=I.color,m=I.backgroundColor,l=f(I,o);return l.color=k?null:"transparent",l.backgroundColor=c||m,(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)(["ColorBox",u,(0,t.computeBoxClassName)(l)]),k||".",0,Object.assign({},(0,t.computeBoxProps)(l))))}return S}();b.defaultHooks=a.pureComponentHooks},73379:function(A,r,n){"use strict";r.__esModule=!0,r.Countdown=void 0;var e=n(89005),a=n(55937),t=["format"];function o(I,k){if(I==null)return{};var g={};for(var u in I)if({}.hasOwnProperty.call(I,u)){if(k.includes(u))continue;g[u]=I[u]}return g}function f(I,k){I.prototype=Object.create(k.prototype),I.prototype.constructor=I,b(I,k)}function b(I,k){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(g,u){return g.__proto__=u,g},b(I,k)}var S=r.Countdown=function(I){function k(u){var c;return c=I.call(this,u)||this,c.timer=null,c.state={value:Math.max(u.timeLeft*100,0)},c}f(k,I);var g=k.prototype;return g.tick=function(){function u(){var c=Math.max(this.state.value-this.props.rate,0);c<=0&&clearInterval(this.timer),this.setState(function(m){return{value:c}})}return u}(),g.componentDidMount=function(){function u(){var c=this;this.timer=setInterval(function(){return c.tick()},this.props.rate)}return u}(),g.componentWillUnmount=function(){function u(){clearInterval(this.timer)}return u}(),g.componentDidUpdate=function(){function u(c){var m=this;this.props.current!==c.current&&this.setState(function(l){return{value:Math.max(m.props.timeLeft*100,0)}}),this.timer||this.componentDidMount()}return u}(),g.render=function(){function u(){var c=this.props,m=c.format,l=o(c,t),d=new Date(this.state.value).toISOString().slice(11,19);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Box,Object.assign({as:"span"},l,{children:m?m(this.state.value,d):d})))}return u}(),k}(e.Component);S.defaultProps={rate:1e3}},61940:function(A,r,n){"use strict";r.__esModule=!0,r.Dimmer=void 0;var e=n(89005),a=n(35840),t=n(55937),o=["className","children"];/**
+ */function f(S,I){if(S==null)return{};var k={};for(var g in S)if({}.hasOwnProperty.call(S,g)){if(I.includes(g))continue;k[g]=S[g]}return k}var b=r.ColorBox=function(){function S(I){var k=I.content,g=I.children,d=I.className,c=I.color,m=I.backgroundColor,l=f(I,o);return l.color=k?null:"transparent",l.backgroundColor=c||m,(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)(["ColorBox",d,(0,t.computeBoxClassName)(l)]),k||".",0,Object.assign({},(0,t.computeBoxProps)(l))))}return S}();b.defaultHooks=a.pureComponentHooks},73379:function(A,r,n){"use strict";r.__esModule=!0,r.Countdown=void 0;var e=n(89005),a=n(55937),t=["format"];function o(I,k){if(I==null)return{};var g={};for(var d in I)if({}.hasOwnProperty.call(I,d)){if(k.includes(d))continue;g[d]=I[d]}return g}function f(I,k){I.prototype=Object.create(k.prototype),I.prototype.constructor=I,b(I,k)}function b(I,k){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(g,d){return g.__proto__=d,g},b(I,k)}var S=r.Countdown=function(I){function k(d){var c;return c=I.call(this,d)||this,c.timer=null,c.state={value:Math.max(d.timeLeft*100,0)},c}f(k,I);var g=k.prototype;return g.tick=function(){function d(){var c=Math.max(this.state.value-this.props.rate,0);c<=0&&clearInterval(this.timer),this.setState(function(m){return{value:c}})}return d}(),g.componentDidMount=function(){function d(){var c=this;this.timer=setInterval(function(){return c.tick()},this.props.rate)}return d}(),g.componentWillUnmount=function(){function d(){clearInterval(this.timer)}return d}(),g.componentDidUpdate=function(){function d(c){var m=this;this.props.current!==c.current&&this.setState(function(l){return{value:Math.max(m.props.timeLeft*100,0)}}),this.timer||this.componentDidMount()}return d}(),g.render=function(){function d(){var c=this.props,m=c.format,l=o(c,t),u=new Date(this.state.value).toISOString().slice(11,19);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Box,Object.assign({as:"span"},l,{children:m?m(this.state.value,u):u})))}return d}(),k}(e.Component);S.defaultProps={rate:1e3}},61940:function(A,r,n){"use strict";r.__esModule=!0,r.Dimmer=void 0;var e=n(89005),a=n(35840),t=n(55937),o=["className","children"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function f(S,I){if(S==null)return{};var k={};for(var g in S)if({}.hasOwnProperty.call(S,g)){if(I.includes(g))continue;k[g]=S[g]}return k}var b=r.Dimmer=function(){function S(I){var k=I.className,g=I.children,u=f(I,o);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({className:(0,a.classes)(["Dimmer"].concat(k))},u,{children:(0,e.createVNode)(1,"div","Dimmer__inner",g,0)})))}return S}()},13605:function(A,r,n){"use strict";r.__esModule=!0,r.Divider=void 0;var e=n(89005),a=n(35840);/**
+ */function f(S,I){if(S==null)return{};var k={};for(var g in S)if({}.hasOwnProperty.call(S,g)){if(I.includes(g))continue;k[g]=S[g]}return k}var b=r.Dimmer=function(){function S(I){var k=I.className,g=I.children,d=f(I,o);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({className:(0,a.classes)(["Dimmer"].concat(k))},d,{children:(0,e.createVNode)(1,"div","Dimmer__inner",g,0)})))}return S}()},13605:function(A,r,n){"use strict";r.__esModule=!0,r.Divider=void 0;var e=n(89005),a=n(35840);/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var t=r.Divider=function(){function o(f){var b=f.vertical,S=f.hidden;return(0,e.createVNode)(1,"div",(0,a.classes)(["Divider",S&&"Divider--hidden",b?"Divider--vertical":"Divider--horizontal"]))}return o}()},60218:function(A,r,n){"use strict";r.__esModule=!0,r.DmIcon=void 0;var e=n(89005),a=n(79140),t=n(46085),o=n(91225),f=["className","direction","fallback","frame","icon_state","movement"];function b(d,s){if(d==null)return{};var i={};for(var h in d)if({}.hasOwnProperty.call(d,h)){if(s.includes(h))continue;i[h]=d[h]}return i}function S(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */S=function(){return s};var d,s={},i=Object.prototype,h=i.hasOwnProperty,C=Object.defineProperty||function(te,q,ne){te[q]=ne.value},v=typeof Symbol=="function"?Symbol:{},p=v.iterator||"@@iterator",N=v.asyncIterator||"@@asyncIterator",V=v.toStringTag||"@@toStringTag";function y(te,q,ne){return Object.defineProperty(te,q,{value:ne,enumerable:!0,configurable:!0,writable:!0}),te[q]}try{y({},"")}catch(te){y=function(ne,le,ee){return ne[le]=ee}}function B(te,q,ne,le){var ee=q&&q.prototype instanceof D?q:D,re=Object.create(ee.prototype),oe=new ie(le||[]);return C(re,"_invoke",{value:G(te,ne,oe)}),re}function L(te,q,ne){try{return{type:"normal",arg:te.call(q,ne)}}catch(le){return{type:"throw",arg:le}}}s.wrap=B;var w="suspendedStart",x="suspendedYield",T="executing",M="completed",O={};function D(){}function E(){}function P(){}var R={};y(R,p,function(){return this});var j=Object.getPrototypeOf,F=j&&j(j(pe([])));F&&F!==i&&h.call(F,p)&&(R=F);var W=P.prototype=D.prototype=Object.create(R);function z(te){["next","throw","return"].forEach(function(q){y(te,q,function(ne){return this._invoke(q,ne)})})}function K(te,q){function ne(ee,re,oe,fe){var me=L(te[ee],te,re);if(me.type!=="throw"){var Y=me.arg,ve=Y.value;return ve&&typeof ve=="object"&&h.call(ve,"__await")?q.resolve(ve.__await).then(function(he){ne("next",he,oe,fe)},function(he){ne("throw",he,oe,fe)}):q.resolve(ve).then(function(he){Y.value=he,oe(Y)},function(he){return ne("throw",he,oe,fe)})}fe(me.arg)}var le;C(this,"_invoke",{value:function(){function ee(re,oe){function fe(){return new q(function(me,Y){ne(re,oe,me,Y)})}return le=le?le.then(fe,fe):fe()}return ee}()})}function G(te,q,ne){var le=w;return function(ee,re){if(le===T)throw Error("Generator is already running");if(le===M){if(ee==="throw")throw re;return{value:d,done:!0}}for(ne.method=ee,ne.arg=re;;){var oe=ne.delegate;if(oe){var fe=J(oe,ne);if(fe){if(fe===O)continue;return fe}}if(ne.method==="next")ne.sent=ne._sent=ne.arg;else if(ne.method==="throw"){if(le===w)throw le=M,ne.arg;ne.dispatchException(ne.arg)}else ne.method==="return"&&ne.abrupt("return",ne.arg);le=T;var me=L(te,q,ne);if(me.type==="normal"){if(le=ne.done?M:x,me.arg===O)continue;return{value:me.arg,done:ne.done}}me.type==="throw"&&(le=M,ne.method="throw",ne.arg=me.arg)}}}function J(te,q){var ne=q.method,le=te.iterator[ne];if(le===d)return q.delegate=null,ne==="throw"&&te.iterator.return&&(q.method="return",q.arg=d,J(te,q),q.method==="throw")||ne!=="return"&&(q.method="throw",q.arg=new TypeError("The iterator does not provide a '"+ne+"' method")),O;var ee=L(le,te.iterator,q.arg);if(ee.type==="throw")return q.method="throw",q.arg=ee.arg,q.delegate=null,O;var re=ee.arg;return re?re.done?(q[te.resultName]=re.value,q.next=te.nextLoc,q.method!=="return"&&(q.method="next",q.arg=d),q.delegate=null,O):re:(q.method="throw",q.arg=new TypeError("iterator result is not an object"),q.delegate=null,O)}function Q(te){var q={tryLoc:te[0]};1 in te&&(q.catchLoc=te[1]),2 in te&&(q.finallyLoc=te[2],q.afterLoc=te[3]),this.tryEntries.push(q)}function ue(te){var q=te.completion||{};q.type="normal",delete q.arg,te.completion=q}function ie(te){this.tryEntries=[{tryLoc:"root"}],te.forEach(Q,this),this.reset(!0)}function pe(te){if(te||te===""){var q=te[p];if(q)return q.call(te);if(typeof te.next=="function")return te;if(!isNaN(te.length)){var ne=-1,le=function(){function ee(){for(;++ne=0;--ee){var re=this.tryEntries[ee],oe=re.completion;if(re.tryLoc==="root")return le("end");if(re.tryLoc<=this.prev){var fe=h.call(re,"catchLoc"),me=h.call(re,"finallyLoc");if(fe&&me){if(this.prev=0;--le){var ee=this.tryEntries[le];if(ee.tryLoc<=this.prev&&h.call(ee,"finallyLoc")&&this.prev=0;--ne){var le=this.tryEntries[ne];if(le.finallyLoc===q)return this.complete(le.completion,le.afterLoc),ue(le),O}}return te}(),catch:function(){function te(q){for(var ne=this.tryEntries.length-1;ne>=0;--ne){var le=this.tryEntries[ne];if(le.tryLoc===q){var ee=le.completion;if(ee.type==="throw"){var re=ee.arg;ue(le)}return re}}throw Error("illegal catch attempt")}return te}(),delegateYield:function(){function te(q,ne,le){return this.delegate={iterator:pe(q),resultName:ne,nextLoc:le},this.method==="next"&&(this.arg=d),O}return te}()},s}function I(d,s,i,h,C,v,p){try{var N=d[v](p),V=N.value}catch(y){return void i(y)}N.done?s(V):Promise.resolve(V).then(h,C)}function k(d){return function(){var s=this,i=arguments;return new Promise(function(h,C){var v=d.apply(s,i);function p(V){I(v,h,C,p,N,"next",V)}function N(V){I(v,h,C,p,N,"throw",V)}p(void 0)})}}function g(d,s){d.prototype=Object.create(s.prototype),d.prototype.constructor=d,u(d,s)}function u(d,s){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,h){return i.__proto__=h,i},u(d,s)}var c=function(d){return d[d.NORTH=1]="NORTH",d[d.SOUTH=2]="SOUTH",d[d.EAST=4]="EAST",d[d.WEST=8]="WEST",d[d.NORTHEAST=5]="NORTHEAST",d[d.NORTHWEST=9]="NORTHWEST",d[d.SOUTHEAST=6]="SOUTHEAST",d[d.SOUTHWEST=10]="SOUTHWEST",d}(c||{}),m,l=r.DmIcon=function(d){function s(h){var C;return C=d.call(this,h)||this,C.state={iconRef:""},C}g(s,d);var i=s.prototype;return i.fetchRefMap=function(){var h=k(S().mark(function(){function v(){var p,N;return S().wrap(function(){function V(y){for(;;)switch(y.prev=y.next){case 0:return y.prev=0,y.next=3,(0,t.fetchRetry)((0,a.resolveAsset)("icon_ref_map.json"));case 3:return p=y.sent,y.next=6,p.json();case 6:N=y.sent,m=N,this.setState({iconRef:N[this.props.icon]||""}),y.next=14;break;case 11:return y.prev=11,y.t0=y.catch(0),y.abrupt("return");case 14:case"end":return y.stop()}}return V}(),v,this,[[0,11]])}return v}()));function C(){return h.apply(this,arguments)}return C}(),i.componentDidMount=function(){function h(){m?this.setState({iconRef:m[this.props.icon]}):this.fetchRefMap()}return h}(),i.componentDidUpdate=function(){function h(C){C.icon!==this.props.icon&&(m?this.setState({iconRef:m[this.props.icon]}):this.fetchRefMap())}return h}(),i.render=function(){function h(){var C=this.props,v=C.className,p=C.direction,N=p===void 0?c.SOUTH:p,V=C.fallback,y=C.frame,B=y===void 0?1:y,L=C.icon_state,w=C.movement,x=w===void 0?!1:w,T=b(C,f),M=this.state.iconRef,O=M+"?state="+L+"&dir="+N+"&movement="+!!x+"&frame="+B;return M?(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Image,Object.assign({fixErrors:!0,src:O},T))):V||null}return h}(),s}(e.Component)},20342:function(A,r,n){"use strict";r.__esModule=!0,r.DraggableControl=void 0;var e=n(89005),a=n(44879),t=n(35840),o=n(9474);function f(g,u){g.prototype=Object.create(u.prototype),g.prototype.constructor=g,b(g,u)}function b(g,u){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(c,m){return c.__proto__=m,c},b(g,u)}var S=400,I=function(u,c){return u.screenX*c[0]+u.screenY*c[1]},k=r.DraggableControl=function(g){function u(m){var l;return l=g.call(this,m)||this,l.inputRef=(0,e.createRef)(),l.state={originalValue:m.value,value:m.value,dragging:!1,editing:!1,origin:null,suppressingFlicker:!1},l.flickerTimer=null,l.suppressFlicker=function(){var d=l.props.suppressFlicker;d>0&&(l.setState({suppressingFlicker:!0}),clearTimeout(l.flickerTimer),l.flickerTimer=setTimeout(function(){return l.setState({suppressingFlicker:!1})},d))},l.handleDragStart=function(d){var s=l.props,i=s.value,h=s.dragMatrix,C=s.disabled,v=l.state.editing;v||C||(document.body.style["pointer-events"]="none",l.ref=d.currentTarget,l.setState({originalValue:i,dragging:!1,value:i,origin:I(d,h)}),l.timer=setTimeout(function(){l.setState({dragging:!0})},250),l.dragInterval=setInterval(function(){var p=l.state,N=p.dragging,V=p.value,y=l.props.onDrag;N&&y&&y(d,V)},l.props.updateRate||S),document.addEventListener("mousemove",l.handleDragMove),document.addEventListener("mouseup",l.handleDragEnd))},l.handleDragMove=function(d){var s,i=l.props,h=i.minValue,C=i.maxValue,v=i.step,p=i.dragMatrix,N=i.disabled;if(!N){var V=l.ref.offsetWidth/((C-h)/v),y=(s=l.props.stepPixelSize)!=null?s:V;typeof y=="function"&&(y=y(V)),l.setState(function(B){var L=Object.assign({},B),w=B.origin,x=I(d,p)-w;if(B.dragging){var T=Math.trunc(x/y);L.value=(0,a.clamp)(Math.floor(L.originalValue/v)*v+T*v,h,C)}else Math.abs(x)>4&&(L.dragging=!0);return L})}},l.handleDragEnd=function(d){var s=l.props,i=s.onChange,h=s.onDrag,C=l.state,v=C.dragging,p=C.value;if(document.body.style["pointer-events"]="auto",clearTimeout(l.timer),clearInterval(l.dragInterval),l.setState({originalValue:null,dragging:!1,editing:!v,origin:null}),document.removeEventListener("mousemove",l.handleDragMove),document.removeEventListener("mouseup",l.handleDragEnd),v)l.suppressFlicker(),i&&i(d,p),h&&h(d,p);else if(l.inputRef){var N=l.inputRef.current;N.value=p;try{N.focus(),N.select()}catch(V){}}},l}f(u,g);var c=u.prototype;return c.render=function(){function m(){var l=this,d=this.state,s=d.dragging,i=d.editing,h=d.value,C=d.suppressingFlicker,v=this.props,p=v.animated,N=v.value,V=v.unit,y=v.minValue,B=v.maxValue,L=v.format,w=v.onChange,x=v.onDrag,T=v.children,M=v.height,O=v.lineHeight,D=v.fontSize,E=v.disabled,P=N;(s||C)&&(P=h);var R=function(){function W(z){return z+(V?" "+V:"")}return W}(),j=p&&!s&&!C&&(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:P,format:L,children:R})||R(L?L(P):P),F=(0,e.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:!i||E?"none":void 0,height:M,"line-height":O,"font-size":D},onBlur:function(){function W(z){if(i){var K=(0,a.clamp)(parseFloat(z.target.value),y,B);if(Number.isNaN(K)){l.setState({editing:!1});return}l.setState({editing:!1,value:K}),l.suppressFlicker(),w&&w(z,K),x&&x(z,K)}}return W}(),onKeyDown:function(){function W(z){if(z.keyCode===13){var K=(0,a.clamp)(parseFloat(z.target.value),y,B);if(Number.isNaN(K)){l.setState({editing:!1});return}l.setState({editing:!1,value:K}),l.suppressFlicker(),w&&w(z,K),x&&x(z,K);return}if(z.keyCode===27){l.setState({editing:!1});return}}return W}(),disabled:E},null,this.inputRef);return T({dragging:s,editing:i,value:N,displayValue:P,displayElement:j,inputElement:F,handleDragStart:this.handleDragStart})}return m}(),u}(e.Component);k.defaultHooks=t.pureComponentHooks,k.defaultProps={minValue:-1/0,maxValue:1/0,step:1,suppressFlicker:50,dragMatrix:[1,0]}},87099:function(A,r,n){"use strict";r.__esModule=!0,r.Dropdown=void 0;var e=n(89005),a=n(95996),t=n(35840),o=n(55937),f=n(96184),b=n(1331),S=n(96690),I=["icon","iconRotation","iconSpin","clipSelectedText","color","dropdownStyle","over","nochevron","width","onClick","onSelected","selected","disabled","displayText","buttons"],k=["className"],g;function u(C,v){if(C==null)return{};var p={};for(var N in C)if({}.hasOwnProperty.call(C,N)){if(v.includes(N))continue;p[N]=C[N]}return p}function c(C,v){C.prototype=Object.create(v.prototype),C.prototype.constructor=C,m(C,v)}function m(C,v){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(p,N){return p.__proto__=N,p},m(C,v)}var l={placement:"left-start",modifiers:[{name:"eventListeners",enabled:!1}]},d={width:0,height:0,top:0,right:0,bottom:0,left:0,x:0,y:0,toJSON:function(){function C(){return null}return C}()},s="Layout Dropdown__menu",i="Layout Dropdown__menu-scroll",h=r.Dropdown=function(C){function v(N){var V;return V=C.call(this,N)||this,V.menuContents=void 0,V.handleClick=function(){V.state.open&&V.setOpen(!1)},V.state={open:!1,selected:V.props.selected},V.menuContents=null,V}c(v,C);var p=v.prototype;return p.getDOMNode=function(){function N(){return(0,e.findDOMFromVNode)(this.$LI,!0)}return N}(),p.componentDidMount=function(){function N(){var V=this.getDOMNode()}return N}(),p.openMenu=function(){function N(){var V=v.renderedMenu;V===void 0&&(V=document.createElement("div"),V.className=s,document.body.appendChild(V),v.renderedMenu=V);var y=this.getDOMNode();v.currentOpenMenu=y,V.scrollTop=0,V.style.width=this.props.menuWidth||y.offsetWidth+"px",V.style.opacity="1",V.style.pointerEvents="auto",setTimeout(function(){var B;(B=v.renderedMenu)==null||B.focus()},400),this.renderMenuContent()}return N}(),p.closeMenu=function(){function N(){v.currentOpenMenu===this.getDOMNode()&&(v.currentOpenMenu=void 0,v.renderedMenu.style.opacity="0",v.renderedMenu.style.pointerEvents="none")}return N}(),p.componentWillUnmount=function(){function N(){this.closeMenu(),this.setOpen(!1)}return N}(),p.renderMenuContent=function(){function N(){var V=this,y=v.renderedMenu;if(y){y.offsetHeight>200?y.className=i:y.className=s;var B=this.props.options,L=B===void 0?[]:B,w=L.map(function(T){var M,O;return typeof T=="string"?(O=T,M=T):T!==null&&(O=T.displayText,M=T.value),(0,e.createVNode)(1,"div",(0,t.classes)(["Dropdown__menuentry",V.state.selected===M&&"selected"]),O,0,{onClick:function(){function D(){V.setSelected(M)}return D}()},M)}),x=w.length?w:"No Options Found";(0,e.render)((0,e.createVNode)(1,"div",null,x,0),y,function(){var T=v.singletonPopper;T===void 0?(T=(0,a.createPopper)(v.virtualElement,y,Object.assign({},l,{placement:"bottom-start"})),v.singletonPopper=T):(T.setOptions(Object.assign({},l,{placement:"bottom-start"})),T.update())},this.context)}}return N}(),p.setOpen=function(){function N(V){var y=this;this.setState(function(B){return Object.assign({},B,{open:V})}),V?setTimeout(function(){y.openMenu(),window.addEventListener("click",y.handleClick)}):(this.closeMenu(),window.removeEventListener("click",this.handleClick))}return N}(),p.setSelected=function(){function N(V){this.setState(function(y){return Object.assign({},y,{selected:V})}),this.setOpen(!1),this.props.onSelected&&this.props.onSelected(V)}return N}(),p.getOptionValue=function(){function N(V){return typeof V=="string"?V:V.value}return N}(),p.getSelectedIndex=function(){function N(){var V=this,y=this.state.selected||this.props.selected,B=this.props.options,L=B===void 0?[]:B;return L.findIndex(function(w){return V.getOptionValue(w)===y})}return N}(),p.toPrevious=function(){function N(){if(!(this.props.options.length<1)){var V=this.getSelectedIndex(),y=0,B=this.props.options.length-1,L=V>=0;L||(V=y);var w=V===y?B:V-1;this.setSelected(this.getOptionValue(this.props.options[w]))}}return N}(),p.toNext=function(){function N(){if(!(this.props.options.length<1)){var V=this.getSelectedIndex(),y=0,B=this.props.options.length-1,L=V>=0;L||(V=B);var w=V===B?y:V+1;this.setSelected(this.getOptionValue(this.props.options[w]))}}return N}(),p.render=function(){function N(){var V=this,y=this.props,B=y.icon,L=y.iconRotation,w=y.iconSpin,x=y.clipSelectedText,T=x===void 0?!0:x,M=y.color,O=M===void 0?"default":M,D=y.dropdownStyle,E=y.over,P=y.nochevron,R=y.width,j=y.onClick,F=y.onSelected,W=y.selected,z=y.disabled,K=y.displayText,G=y.buttons,J=u(y,I),Q=J.className,ue=u(J,k),ie=E?!this.state.open:this.state.open;return(0,e.createComponentVNode)(2,S.Stack,{inline:!0,fill:!0,width:R,children:[(0,e.createComponentVNode)(2,S.Stack.Item,{grow:!0,children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({width:"100%",className:(0,t.classes)(["Dropdown__control","Button","Button--color--"+O,z&&"Button--disabled",Q]),onClick:function(){function pe(te){z&&!V.state.open||(V.setOpen(!V.state.open),j&&j(te))}return pe}()},ue,{children:[B&&(0,e.createComponentVNode)(2,b.Icon,{name:B,rotation:L,spin:w,mr:1}),(0,e.createVNode)(1,"span","Dropdown__selected-text",K||this.state.selected,0,{style:{overflow:T?"hidden":"visible"}}),P||(0,e.createVNode)(1,"span","Dropdown__arrow-button",(0,e.createComponentVNode)(2,b.Icon,{name:ie?"chevron-up":"chevron-down"}),2)]})))}),G&&(0,e.createFragment)([(0,e.createComponentVNode)(2,S.Stack.Item,{height:"100%",children:(0,e.createComponentVNode)(2,f.Button,{height:"100%",icon:"chevron-left",disabled:z,onClick:function(){function pe(){z||V.toPrevious()}return pe}()})}),(0,e.createComponentVNode)(2,S.Stack.Item,{height:"100%",children:(0,e.createComponentVNode)(2,f.Button,{height:"100%",icon:"chevron-right",disabled:z,onClick:function(){function pe(){z||V.toNext()}return pe}()})})],4)]})}return N}(),v}(e.Component);g=h,h.renderedMenu=void 0,h.singletonPopper=void 0,h.currentOpenMenu=void 0,h.virtualElement={getBoundingClientRect:function(){function C(){var v,p;return(v=(p=g.currentOpenMenu)==null?void 0:p.getBoundingClientRect())!=null?v:d}return C}()}},39473:function(A,r,n){"use strict";r.__esModule=!0,r.computeFlexProps=r.computeFlexItemProps=r.computeFlexItemClassName=r.computeFlexClassName=r.Flex=void 0;var e=n(89005),a=n(35840),t=n(55937),o=["className","direction","wrap","align","justify","inline","style"],f=["className"],b=["className","style","grow","order","shrink","basis","align"],S=["className"];/**
+ */var t=r.Divider=function(){function o(f){var b=f.vertical,S=f.hidden;return(0,e.createVNode)(1,"div",(0,a.classes)(["Divider",S&&"Divider--hidden",b?"Divider--vertical":"Divider--horizontal"]))}return o}()},60218:function(A,r,n){"use strict";r.__esModule=!0,r.DmIcon=void 0;var e=n(89005),a=n(79140),t=n(46085),o=n(91225),f=["className","direction","fallback","frame","icon_state","movement"];function b(u,s){if(u==null)return{};var i={};for(var h in u)if({}.hasOwnProperty.call(u,h)){if(s.includes(h))continue;i[h]=u[h]}return i}function S(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */S=function(){return s};var u,s={},i=Object.prototype,h=i.hasOwnProperty,C=Object.defineProperty||function(te,q,ne){te[q]=ne.value},v=typeof Symbol=="function"?Symbol:{},p=v.iterator||"@@iterator",N=v.asyncIterator||"@@asyncIterator",V=v.toStringTag||"@@toStringTag";function y(te,q,ne){return Object.defineProperty(te,q,{value:ne,enumerable:!0,configurable:!0,writable:!0}),te[q]}try{y({},"")}catch(te){y=function(ne,le,ee){return ne[le]=ee}}function B(te,q,ne,le){var ee=q&&q.prototype instanceof D?q:D,re=Object.create(ee.prototype),oe=new ie(le||[]);return C(re,"_invoke",{value:G(te,ne,oe)}),re}function L(te,q,ne){try{return{type:"normal",arg:te.call(q,ne)}}catch(le){return{type:"throw",arg:le}}}s.wrap=B;var w="suspendedStart",x="suspendedYield",T="executing",M="completed",O={};function D(){}function E(){}function P(){}var R={};y(R,p,function(){return this});var j=Object.getPrototypeOf,F=j&&j(j(pe([])));F&&F!==i&&h.call(F,p)&&(R=F);var W=P.prototype=D.prototype=Object.create(R);function z(te){["next","throw","return"].forEach(function(q){y(te,q,function(ne){return this._invoke(q,ne)})})}function K(te,q){function ne(ee,re,oe,fe){var me=L(te[ee],te,re);if(me.type!=="throw"){var Y=me.arg,ve=Y.value;return ve&&typeof ve=="object"&&h.call(ve,"__await")?q.resolve(ve.__await).then(function(he){ne("next",he,oe,fe)},function(he){ne("throw",he,oe,fe)}):q.resolve(ve).then(function(he){Y.value=he,oe(Y)},function(he){return ne("throw",he,oe,fe)})}fe(me.arg)}var le;C(this,"_invoke",{value:function(){function ee(re,oe){function fe(){return new q(function(me,Y){ne(re,oe,me,Y)})}return le=le?le.then(fe,fe):fe()}return ee}()})}function G(te,q,ne){var le=w;return function(ee,re){if(le===T)throw Error("Generator is already running");if(le===M){if(ee==="throw")throw re;return{value:u,done:!0}}for(ne.method=ee,ne.arg=re;;){var oe=ne.delegate;if(oe){var fe=J(oe,ne);if(fe){if(fe===O)continue;return fe}}if(ne.method==="next")ne.sent=ne._sent=ne.arg;else if(ne.method==="throw"){if(le===w)throw le=M,ne.arg;ne.dispatchException(ne.arg)}else ne.method==="return"&&ne.abrupt("return",ne.arg);le=T;var me=L(te,q,ne);if(me.type==="normal"){if(le=ne.done?M:x,me.arg===O)continue;return{value:me.arg,done:ne.done}}me.type==="throw"&&(le=M,ne.method="throw",ne.arg=me.arg)}}}function J(te,q){var ne=q.method,le=te.iterator[ne];if(le===u)return q.delegate=null,ne==="throw"&&te.iterator.return&&(q.method="return",q.arg=u,J(te,q),q.method==="throw")||ne!=="return"&&(q.method="throw",q.arg=new TypeError("The iterator does not provide a '"+ne+"' method")),O;var ee=L(le,te.iterator,q.arg);if(ee.type==="throw")return q.method="throw",q.arg=ee.arg,q.delegate=null,O;var re=ee.arg;return re?re.done?(q[te.resultName]=re.value,q.next=te.nextLoc,q.method!=="return"&&(q.method="next",q.arg=u),q.delegate=null,O):re:(q.method="throw",q.arg=new TypeError("iterator result is not an object"),q.delegate=null,O)}function Q(te){var q={tryLoc:te[0]};1 in te&&(q.catchLoc=te[1]),2 in te&&(q.finallyLoc=te[2],q.afterLoc=te[3]),this.tryEntries.push(q)}function ue(te){var q=te.completion||{};q.type="normal",delete q.arg,te.completion=q}function ie(te){this.tryEntries=[{tryLoc:"root"}],te.forEach(Q,this),this.reset(!0)}function pe(te){if(te||te===""){var q=te[p];if(q)return q.call(te);if(typeof te.next=="function")return te;if(!isNaN(te.length)){var ne=-1,le=function(){function ee(){for(;++ne=0;--ee){var re=this.tryEntries[ee],oe=re.completion;if(re.tryLoc==="root")return le("end");if(re.tryLoc<=this.prev){var fe=h.call(re,"catchLoc"),me=h.call(re,"finallyLoc");if(fe&&me){if(this.prev=0;--le){var ee=this.tryEntries[le];if(ee.tryLoc<=this.prev&&h.call(ee,"finallyLoc")&&this.prev=0;--ne){var le=this.tryEntries[ne];if(le.finallyLoc===q)return this.complete(le.completion,le.afterLoc),ue(le),O}}return te}(),catch:function(){function te(q){for(var ne=this.tryEntries.length-1;ne>=0;--ne){var le=this.tryEntries[ne];if(le.tryLoc===q){var ee=le.completion;if(ee.type==="throw"){var re=ee.arg;ue(le)}return re}}throw Error("illegal catch attempt")}return te}(),delegateYield:function(){function te(q,ne,le){return this.delegate={iterator:pe(q),resultName:ne,nextLoc:le},this.method==="next"&&(this.arg=u),O}return te}()},s}function I(u,s,i,h,C,v,p){try{var N=u[v](p),V=N.value}catch(y){return void i(y)}N.done?s(V):Promise.resolve(V).then(h,C)}function k(u){return function(){var s=this,i=arguments;return new Promise(function(h,C){var v=u.apply(s,i);function p(V){I(v,h,C,p,N,"next",V)}function N(V){I(v,h,C,p,N,"throw",V)}p(void 0)})}}function g(u,s){u.prototype=Object.create(s.prototype),u.prototype.constructor=u,d(u,s)}function d(u,s){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,h){return i.__proto__=h,i},d(u,s)}var c=function(u){return u[u.NORTH=1]="NORTH",u[u.SOUTH=2]="SOUTH",u[u.EAST=4]="EAST",u[u.WEST=8]="WEST",u[u.NORTHEAST=5]="NORTHEAST",u[u.NORTHWEST=9]="NORTHWEST",u[u.SOUTHEAST=6]="SOUTHEAST",u[u.SOUTHWEST=10]="SOUTHWEST",u}(c||{}),m,l=r.DmIcon=function(u){function s(h){var C;return C=u.call(this,h)||this,C.state={iconRef:""},C}g(s,u);var i=s.prototype;return i.fetchRefMap=function(){var h=k(S().mark(function(){function v(){var p,N;return S().wrap(function(){function V(y){for(;;)switch(y.prev=y.next){case 0:return y.prev=0,y.next=3,(0,t.fetchRetry)((0,a.resolveAsset)("icon_ref_map.json"));case 3:return p=y.sent,y.next=6,p.json();case 6:N=y.sent,m=N,this.setState({iconRef:N[this.props.icon]||""}),y.next=14;break;case 11:return y.prev=11,y.t0=y.catch(0),y.abrupt("return");case 14:case"end":return y.stop()}}return V}(),v,this,[[0,11]])}return v}()));function C(){return h.apply(this,arguments)}return C}(),i.componentDidMount=function(){function h(){m?this.setState({iconRef:m[this.props.icon]}):this.fetchRefMap()}return h}(),i.componentDidUpdate=function(){function h(C){C.icon!==this.props.icon&&(m?this.setState({iconRef:m[this.props.icon]}):this.fetchRefMap())}return h}(),i.render=function(){function h(){var C=this.props,v=C.className,p=C.direction,N=p===void 0?c.SOUTH:p,V=C.fallback,y=C.frame,B=y===void 0?1:y,L=C.icon_state,w=C.movement,x=w===void 0?!1:w,T=b(C,f),M=this.state.iconRef,O=M+"?state="+L+"&dir="+N+"&movement="+!!x+"&frame="+B;return M?(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Image,Object.assign({fixErrors:!0,src:O},T))):V||null}return h}(),s}(e.Component)},20342:function(A,r,n){"use strict";r.__esModule=!0,r.DraggableControl=void 0;var e=n(89005),a=n(44879),t=n(35840),o=n(9474);function f(g,d){g.prototype=Object.create(d.prototype),g.prototype.constructor=g,b(g,d)}function b(g,d){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(c,m){return c.__proto__=m,c},b(g,d)}var S=400,I=function(d,c){return d.screenX*c[0]+d.screenY*c[1]},k=r.DraggableControl=function(g){function d(m){var l;return l=g.call(this,m)||this,l.inputRef=(0,e.createRef)(),l.state={originalValue:m.value,value:m.value,dragging:!1,editing:!1,origin:null,suppressingFlicker:!1},l.flickerTimer=null,l.suppressFlicker=function(){var u=l.props.suppressFlicker;u>0&&(l.setState({suppressingFlicker:!0}),clearTimeout(l.flickerTimer),l.flickerTimer=setTimeout(function(){return l.setState({suppressingFlicker:!1})},u))},l.handleDragStart=function(u){var s=l.props,i=s.value,h=s.dragMatrix,C=s.disabled,v=l.state.editing;v||C||(document.body.style["pointer-events"]="none",l.ref=u.currentTarget,l.setState({originalValue:i,dragging:!1,value:i,origin:I(u,h)}),l.timer=setTimeout(function(){l.setState({dragging:!0})},250),l.dragInterval=setInterval(function(){var p=l.state,N=p.dragging,V=p.value,y=l.props.onDrag;N&&y&&y(u,V)},l.props.updateRate||S),document.addEventListener("mousemove",l.handleDragMove),document.addEventListener("mouseup",l.handleDragEnd))},l.handleDragMove=function(u){var s,i=l.props,h=i.minValue,C=i.maxValue,v=i.step,p=i.dragMatrix,N=i.disabled;if(!N){var V=l.ref.offsetWidth/((C-h)/v),y=(s=l.props.stepPixelSize)!=null?s:V;typeof y=="function"&&(y=y(V)),l.setState(function(B){var L=Object.assign({},B),w=B.origin,x=I(u,p)-w;if(B.dragging){var T=Math.trunc(x/y);L.value=(0,a.clamp)(Math.floor(L.originalValue/v)*v+T*v,h,C)}else Math.abs(x)>4&&(L.dragging=!0);return L})}},l.handleDragEnd=function(u){var s=l.props,i=s.onChange,h=s.onDrag,C=l.state,v=C.dragging,p=C.value;if(document.body.style["pointer-events"]="auto",clearTimeout(l.timer),clearInterval(l.dragInterval),l.setState({originalValue:null,dragging:!1,editing:!v,origin:null}),document.removeEventListener("mousemove",l.handleDragMove),document.removeEventListener("mouseup",l.handleDragEnd),v)l.suppressFlicker(),i&&i(u,p),h&&h(u,p);else if(l.inputRef){var N=l.inputRef.current;N.value=p;try{N.focus(),N.select()}catch(V){}}},l}f(d,g);var c=d.prototype;return c.render=function(){function m(){var l=this,u=this.state,s=u.dragging,i=u.editing,h=u.value,C=u.suppressingFlicker,v=this.props,p=v.animated,N=v.value,V=v.unit,y=v.minValue,B=v.maxValue,L=v.format,w=v.onChange,x=v.onDrag,T=v.children,M=v.height,O=v.lineHeight,D=v.fontSize,E=v.disabled,P=N;(s||C)&&(P=h);var R=function(){function W(z){return z+(V?" "+V:"")}return W}(),j=p&&!s&&!C&&(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:P,format:L,children:R})||R(L?L(P):P),F=(0,e.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:!i||E?"none":void 0,height:M,"line-height":O,"font-size":D},onBlur:function(){function W(z){if(i){var K=(0,a.clamp)(parseFloat(z.target.value),y,B);if(Number.isNaN(K)){l.setState({editing:!1});return}l.setState({editing:!1,value:K}),l.suppressFlicker(),w&&w(z,K),x&&x(z,K)}}return W}(),onKeyDown:function(){function W(z){if(z.keyCode===13){var K=(0,a.clamp)(parseFloat(z.target.value),y,B);if(Number.isNaN(K)){l.setState({editing:!1});return}l.setState({editing:!1,value:K}),l.suppressFlicker(),w&&w(z,K),x&&x(z,K);return}if(z.keyCode===27){l.setState({editing:!1});return}}return W}(),disabled:E},null,this.inputRef);return T({dragging:s,editing:i,value:N,displayValue:P,displayElement:j,inputElement:F,handleDragStart:this.handleDragStart})}return m}(),d}(e.Component);k.defaultHooks=t.pureComponentHooks,k.defaultProps={minValue:-1/0,maxValue:1/0,step:1,suppressFlicker:50,dragMatrix:[1,0]}},87099:function(A,r,n){"use strict";r.__esModule=!0,r.Dropdown=void 0;var e=n(89005),a=n(95996),t=n(35840),o=n(55937),f=n(96184),b=n(1331),S=n(96690),I=["icon","iconRotation","iconSpin","clipSelectedText","color","dropdownStyle","over","nochevron","width","onClick","onSelected","selected","disabled","displayText","buttons"],k=["className"],g;function d(C,v){if(C==null)return{};var p={};for(var N in C)if({}.hasOwnProperty.call(C,N)){if(v.includes(N))continue;p[N]=C[N]}return p}function c(C,v){C.prototype=Object.create(v.prototype),C.prototype.constructor=C,m(C,v)}function m(C,v){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(p,N){return p.__proto__=N,p},m(C,v)}var l={placement:"left-start",modifiers:[{name:"eventListeners",enabled:!1}]},u={width:0,height:0,top:0,right:0,bottom:0,left:0,x:0,y:0,toJSON:function(){function C(){return null}return C}()},s="Layout Dropdown__menu",i="Layout Dropdown__menu-scroll",h=r.Dropdown=function(C){function v(N){var V;return V=C.call(this,N)||this,V.menuContents=void 0,V.handleClick=function(){V.state.open&&V.setOpen(!1)},V.state={open:!1,selected:V.props.selected},V.menuContents=null,V}c(v,C);var p=v.prototype;return p.getDOMNode=function(){function N(){return(0,e.findDOMFromVNode)(this.$LI,!0)}return N}(),p.componentDidMount=function(){function N(){var V=this.getDOMNode()}return N}(),p.openMenu=function(){function N(){var V=v.renderedMenu;V===void 0&&(V=document.createElement("div"),V.className=s,document.body.appendChild(V),v.renderedMenu=V);var y=this.getDOMNode();v.currentOpenMenu=y,V.scrollTop=0,V.style.width=this.props.menuWidth||y.offsetWidth+"px",V.style.opacity="1",V.style.pointerEvents="auto",setTimeout(function(){var B;(B=v.renderedMenu)==null||B.focus()},400),this.renderMenuContent()}return N}(),p.closeMenu=function(){function N(){v.currentOpenMenu===this.getDOMNode()&&(v.currentOpenMenu=void 0,v.renderedMenu.style.opacity="0",v.renderedMenu.style.pointerEvents="none")}return N}(),p.componentWillUnmount=function(){function N(){this.closeMenu(),this.setOpen(!1)}return N}(),p.renderMenuContent=function(){function N(){var V=this,y=v.renderedMenu;if(y){y.offsetHeight>200?y.className=i:y.className=s;var B=this.props.options,L=B===void 0?[]:B,w=L.map(function(T){var M,O;return typeof T=="string"?(O=T,M=T):T!==null&&(O=T.displayText,M=T.value),(0,e.createVNode)(1,"div",(0,t.classes)(["Dropdown__menuentry",V.state.selected===M&&"selected"]),O,0,{onClick:function(){function D(){V.setSelected(M)}return D}()},M)}),x=w.length?w:"No Options Found";(0,e.render)((0,e.createVNode)(1,"div",null,x,0),y,function(){var T=v.singletonPopper;T===void 0?(T=(0,a.createPopper)(v.virtualElement,y,Object.assign({},l,{placement:"bottom-start"})),v.singletonPopper=T):(T.setOptions(Object.assign({},l,{placement:"bottom-start"})),T.update())},this.context)}}return N}(),p.setOpen=function(){function N(V){var y=this;this.setState(function(B){return Object.assign({},B,{open:V})}),V?setTimeout(function(){y.openMenu(),window.addEventListener("click",y.handleClick)}):(this.closeMenu(),window.removeEventListener("click",this.handleClick))}return N}(),p.setSelected=function(){function N(V){this.setState(function(y){return Object.assign({},y,{selected:V})}),this.setOpen(!1),this.props.onSelected&&this.props.onSelected(V)}return N}(),p.getOptionValue=function(){function N(V){return typeof V=="string"?V:V.value}return N}(),p.getSelectedIndex=function(){function N(){var V=this,y=this.state.selected||this.props.selected,B=this.props.options,L=B===void 0?[]:B;return L.findIndex(function(w){return V.getOptionValue(w)===y})}return N}(),p.toPrevious=function(){function N(){if(!(this.props.options.length<1)){var V=this.getSelectedIndex(),y=0,B=this.props.options.length-1,L=V>=0;L||(V=y);var w=V===y?B:V-1;this.setSelected(this.getOptionValue(this.props.options[w]))}}return N}(),p.toNext=function(){function N(){if(!(this.props.options.length<1)){var V=this.getSelectedIndex(),y=0,B=this.props.options.length-1,L=V>=0;L||(V=B);var w=V===B?y:V+1;this.setSelected(this.getOptionValue(this.props.options[w]))}}return N}(),p.render=function(){function N(){var V=this,y=this.props,B=y.icon,L=y.iconRotation,w=y.iconSpin,x=y.clipSelectedText,T=x===void 0?!0:x,M=y.color,O=M===void 0?"default":M,D=y.dropdownStyle,E=y.over,P=y.nochevron,R=y.width,j=y.onClick,F=y.onSelected,W=y.selected,z=y.disabled,K=y.displayText,G=y.buttons,J=d(y,I),Q=J.className,ue=d(J,k),ie=E?!this.state.open:this.state.open;return(0,e.createComponentVNode)(2,S.Stack,{inline:!0,fill:!0,width:R,children:[(0,e.createComponentVNode)(2,S.Stack.Item,{grow:!0,children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({width:"100%",className:(0,t.classes)(["Dropdown__control","Button","Button--color--"+O,z&&"Button--disabled",Q]),onClick:function(){function pe(te){z&&!V.state.open||(V.setOpen(!V.state.open),j&&j(te))}return pe}()},ue,{children:[B&&(0,e.createComponentVNode)(2,b.Icon,{name:B,rotation:L,spin:w,mr:1}),(0,e.createVNode)(1,"span","Dropdown__selected-text",K||this.state.selected,0,{style:{overflow:T?"hidden":"visible"}}),P||(0,e.createVNode)(1,"span","Dropdown__arrow-button",(0,e.createComponentVNode)(2,b.Icon,{name:ie?"chevron-up":"chevron-down"}),2)]})))}),G&&(0,e.createFragment)([(0,e.createComponentVNode)(2,S.Stack.Item,{height:"100%",children:(0,e.createComponentVNode)(2,f.Button,{height:"100%",icon:"chevron-left",disabled:z,onClick:function(){function pe(){z||V.toPrevious()}return pe}()})}),(0,e.createComponentVNode)(2,S.Stack.Item,{height:"100%",children:(0,e.createComponentVNode)(2,f.Button,{height:"100%",icon:"chevron-right",disabled:z,onClick:function(){function pe(){z||V.toNext()}return pe}()})})],4)]})}return N}(),v}(e.Component);g=h,h.renderedMenu=void 0,h.singletonPopper=void 0,h.currentOpenMenu=void 0,h.virtualElement={getBoundingClientRect:function(){function C(){var v,p;return(v=(p=g.currentOpenMenu)==null?void 0:p.getBoundingClientRect())!=null?v:u}return C}()}},39473:function(A,r,n){"use strict";r.__esModule=!0,r.computeFlexProps=r.computeFlexItemProps=r.computeFlexItemClassName=r.computeFlexClassName=r.Flex=void 0;var e=n(89005),a=n(35840),t=n(55937),o=["className","direction","wrap","align","justify","inline","style"],f=["className"],b=["className","style","grow","order","shrink","basis","align"],S=["className"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function I(d,s){if(d==null)return{};var i={};for(var h in d)if({}.hasOwnProperty.call(d,h)){if(s.includes(h))continue;i[h]=d[h]}return i}var k=r.computeFlexClassName=function(){function d(s){return(0,a.classes)(["Flex",s.inline&&"Flex--inline",(0,t.computeBoxClassName)(s)])}return d}(),g=r.computeFlexProps=function(){function d(s){var i=s.className,h=s.direction,C=s.wrap,v=s.align,p=s.justify,N=s.inline,V=s.style,y=I(s,o);return(0,t.computeBoxProps)(Object.assign({style:Object.assign({},V,{"flex-direction":h,"flex-wrap":C===!0?"wrap":C,"align-items":v,"justify-content":p})},y))}return d}(),u=r.Flex=function(){function d(s){var i=s.className,h=I(s,f);return(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)([i,k(h)]),null,1,Object.assign({},g(h))))}return d}();u.defaultHooks=a.pureComponentHooks;var c=r.computeFlexItemClassName=function(){function d(s){return(0,a.classes)(["Flex__item",(0,t.computeBoxClassName)(s)])}return d}(),m=r.computeFlexItemProps=function(){function d(s){var i=s.className,h=s.style,C=s.grow,v=s.order,p=s.shrink,N=s.basis,V=N===void 0?s.width:N,y=s.align,B=I(s,b);return(0,t.computeBoxProps)(Object.assign({style:Object.assign({},h,{"flex-grow":C!==void 0&&Number(C),"flex-shrink":p!==void 0&&Number(p),"flex-basis":(0,t.unit)(V),order:v,"align-self":y})},B))}return d}(),l=function(s){var i=s.className,h=I(s,S);return(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)([i,c(s)]),null,1,Object.assign({},m(h))))};l.defaultHooks=a.pureComponentHooks,u.Item=l},79646:function(A,r,n){"use strict";r.__esModule=!0,r.GridColumn=r.Grid=void 0;var e=n(89005),a=n(36352),t=n(35840),o=["children"],f=["size","style"];/**
+ */function I(u,s){if(u==null)return{};var i={};for(var h in u)if({}.hasOwnProperty.call(u,h)){if(s.includes(h))continue;i[h]=u[h]}return i}var k=r.computeFlexClassName=function(){function u(s){return(0,a.classes)(["Flex",s.inline&&"Flex--inline",(0,t.computeBoxClassName)(s)])}return u}(),g=r.computeFlexProps=function(){function u(s){var i=s.className,h=s.direction,C=s.wrap,v=s.align,p=s.justify,N=s.inline,V=s.style,y=I(s,o);return(0,t.computeBoxProps)(Object.assign({style:Object.assign({},V,{"flex-direction":h,"flex-wrap":C===!0?"wrap":C,"align-items":v,"justify-content":p})},y))}return u}(),d=r.Flex=function(){function u(s){var i=s.className,h=I(s,f);return(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)([i,k(h)]),null,1,Object.assign({},g(h))))}return u}();d.defaultHooks=a.pureComponentHooks;var c=r.computeFlexItemClassName=function(){function u(s){return(0,a.classes)(["Flex__item",(0,t.computeBoxClassName)(s)])}return u}(),m=r.computeFlexItemProps=function(){function u(s){var i=s.className,h=s.style,C=s.grow,v=s.order,p=s.shrink,N=s.basis,V=N===void 0?s.width:N,y=s.align,B=I(s,b);return(0,t.computeBoxProps)(Object.assign({style:Object.assign({},h,{"flex-grow":C!==void 0&&Number(C),"flex-shrink":p!==void 0&&Number(p),"flex-basis":(0,t.unit)(V),order:v,"align-self":y})},B))}return u}(),l=function(s){var i=s.className,h=I(s,S);return(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)([i,c(s)]),null,1,Object.assign({},m(h))))};l.defaultHooks=a.pureComponentHooks,d.Item=l},79646:function(A,r,n){"use strict";r.__esModule=!0,r.GridColumn=r.Grid=void 0;var e=n(89005),a=n(36352),t=n(35840),o=["children"],f=["size","style"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function b(k,g){if(k==null)return{};var u={};for(var c in k)if({}.hasOwnProperty.call(k,c)){if(g.includes(c))continue;u[c]=k[c]}return u}var S=r.Grid=function(){function k(g){var u=g.children,c=b(g,o);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Table,Object.assign({},c,{children:(0,e.createComponentVNode)(2,a.Table.Row,{children:u})})))}return k}();S.defaultHooks=t.pureComponentHooks;var I=r.GridColumn=function(){function k(g){var u=g.size,c=u===void 0?1:u,m=g.style,l=b(g,f);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Table.Cell,Object.assign({style:Object.assign({width:c+"%"},m)},l)))}return k}();S.defaultHooks=t.pureComponentHooks,S.Column=I},1331:function(A,r,n){"use strict";r.__esModule=!0,r.IconStack=r.Icon=void 0;var e=n(89005),a=n(35840),t=n(55937),o=["name","size","spin","className","style","rotation","inverse"],f=["className","style","children"];/**
+ */function b(k,g){if(k==null)return{};var d={};for(var c in k)if({}.hasOwnProperty.call(k,c)){if(g.includes(c))continue;d[c]=k[c]}return d}var S=r.Grid=function(){function k(g){var d=g.children,c=b(g,o);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Table,Object.assign({},c,{children:(0,e.createComponentVNode)(2,a.Table.Row,{children:d})})))}return k}();S.defaultHooks=t.pureComponentHooks;var I=r.GridColumn=function(){function k(g){var d=g.size,c=d===void 0?1:d,m=g.style,l=b(g,f);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Table.Cell,Object.assign({style:Object.assign({width:c+"%"},m)},l)))}return k}();S.defaultHooks=t.pureComponentHooks,S.Column=I},1331:function(A,r,n){"use strict";r.__esModule=!0,r.IconStack=r.Icon=void 0;var e=n(89005),a=n(35840),t=n(55937),o=["name","size","spin","className","style","rotation","inverse"],f=["className","style","children"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function b(g,u){if(g==null)return{};var c={};for(var m in g)if({}.hasOwnProperty.call(g,m)){if(u.includes(m))continue;c[m]=g[m]}return c}var S=/-o$/,I=r.Icon=function(){function g(u){var c=u.name,m=u.size,l=u.spin,d=u.className,s=u.style,i=s===void 0?{}:s,h=u.rotation,C=u.inverse,v=b(u,o);m&&(i["font-size"]=m*100+"%"),typeof h=="number"&&(i.transform="rotate("+h+"deg)");var p=S.test(c),N=c.replace(S,"");return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({as:"i",className:(0,a.classes)(["Icon",d,p?"far":"fas","fa-"+N,l&&"fa-spin"]),style:i},v)))}return g}();I.defaultHooks=a.pureComponentHooks;var k=r.IconStack=function(){function g(u){var c=u.className,m=u.style,l=m===void 0?{}:m,d=u.children,s=b(u,f);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({as:"span",class:(0,a.classes)(["IconStack",c]),style:l},s,{children:d})))}return g}();I.Stack=k},91225:function(A,r,n){"use strict";r.__esModule=!0,r.Image=void 0;var e=n(89005),a=n(55937),t=["fixBlur","fixErrors","objectFit","src"];function o(k,g){if(k==null)return{};var u={};for(var c in k)if({}.hasOwnProperty.call(k,c)){if(g.includes(c))continue;u[c]=k[c]}return u}function f(k,g){k.prototype=Object.create(g.prototype),k.prototype.constructor=k,b(k,g)}function b(k,g){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(u,c){return u.__proto__=c,u},b(k,g)}var S=5,I=r.Image=function(k){function g(){for(var c,m=arguments.length,l=new Array(m),d=0;d0;d&&(l=c.containerRef)!=null&&l.current?c.props.onMove(b(c.containerRef.current,m)):c.toggleDocumentEvents(!1)},c.handleMoveEnd=function(){c.toggleDocumentEvents(!1)},c.handleKeyDown=function(m){var l=m.which||m.keyCode;l<37||l>40||(m.preventDefault(),c.props.onKey({left:l===39?.05:l===37?-.05:0,top:l===40?.05:l===38?-.05:0}))},c.props=u,c.containerRef=(0,e.createRef)(),c}t(k,I);var g=k.prototype;return g.toggleDocumentEvents=function(){function u(c){var m,l=(m=this.containerRef)==null?void 0:m.current,d=f(l),s=c?d.addEventListener:d.removeEventListener;s("mousemove",this.handleMove),s("mouseup",this.handleMoveEnd)}return u}(),g.componentDidMount=function(){function u(){this.toggleDocumentEvents(!0)}return u}(),g.componentWillUnmount=function(){function u(){this.toggleDocumentEvents(!1)}return u}(),g.render=function(){function u(){return(0,e.normalizeProps)((0,e.createVNode)(1,"div","react-colorful__interactive",this.props.children,0,Object.assign({},this.props,{style:this.props.style,onMouseDown:this.handleMoveStart,onKeyDown:this.handleKeyDown,tabIndex:0,role:"slider"}),null,this.containerRef))}return u}(),k}(e.Component)},76334:function(A,r,n){"use strict";r.__esModule=!0,r.Knob=void 0;var e=n(89005),a=n(44879),t=n(35840),o=n(55937),f=n(20342),b=n(59263),S=["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","style","fillValue","color","ranges","size","bipolar","children","popUpPosition"];/**
+*/var g=r.toInputValue=function(){function c(m){return typeof m!="number"&&typeof m!="string"?"":String(m)}return c}(),d=r.Input=function(c){function m(){var u;return u=c.call(this)||this,u.inputRef=(0,e.createRef)(),u.state={editing:!1},u.handleInput=function(s){var i=u.state.editing,h=u.props.onInput;i||u.setEditing(!0),h&&h(s,s.target.value)},u.handleFocus=function(s){var i=u.state.editing;i||u.setEditing(!0)},u.handleBlur=function(s){var i=u.state.editing,h=u.props.onChange;i&&(u.setEditing(!1),h&&h(s,s.target.value))},u.handleKeyDown=function(s){var i=u.props,h=i.onInput,C=i.onChange,v=i.onEnter;if(s.keyCode===o.KEY_ENTER){u.setEditing(!1),C&&C(s,s.target.value),h&&h(s,s.target.value),v&&v(s,s.target.value),u.props.selfClear?s.target.value="":s.target.blur();return}if(s.keyCode===o.KEY_ESCAPE){u.setEditing(!1),s.target.value=g(u.props.value),s.target.blur();return}},u}I(m,c);var l=m.prototype;return l.componentDidMount=function(){function u(){var s=this,i=this.props.value,h=this.inputRef.current;h&&(h.value=g(i),h.selectionStart=0,h.selectionEnd=h.value.length),(this.props.autoFocus||this.props.autoSelect)&&setTimeout(function(){h.focus(),s.props.autoSelect&&h.select()},1)}return u}(),l.componentDidUpdate=function(){function u(s,i){var h=this.state.editing,C=s.value,v=this.props.value,p=this.inputRef.current;p&&!h&&C!==v&&(p.value=g(v))}return u}(),l.setEditing=function(){function u(s){this.setState({editing:s})}return u}(),l.render=function(){function u(){var s=this.props,i=s.selfClear,h=s.onInput,C=s.onChange,v=s.onEnter,p=s.value,N=s.maxLength,V=s.placeholder,y=s.autofocus,B=s.disabled,L=s.multiline,w=s.cols,x=w===void 0?32:w,T=s.rows,M=T===void 0?4:T,O=S(s,f),D=O.className,E=O.fluid,P=O.monospace,R=S(O,b);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({className:(0,a.classes)(["Input",E&&"Input--fluid",P&&"Input--monospace",B&&"Input--disabled",D])},R,{children:[(0,e.createVNode)(1,"div","Input__baseline",".",16),L?(0,e.createVNode)(128,"textarea","Input__textarea",null,1,{placeholder:V,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,maxLength:N,cols:x,rows:M,disabled:B},null,this.inputRef):(0,e.createVNode)(64,"input","Input__input",null,1,{placeholder:V,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.handleKeyDown,maxLength:N,disabled:B},null,this.inputRef)]})))}return u}(),m}(e.Component)},4454:function(A,r,n){"use strict";r.__esModule=!0,r.Interactive=void 0;var e=n(89005),a=n(44879);function t(I,k){I.prototype=Object.create(k.prototype),I.prototype.constructor=I,o(I,k)}function o(I,k){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(g,d){return g.__proto__=d,g},o(I,k)}var f=function(k){return k&&k.ownerDocument.defaultView||self},b=function(k,g){var d=k.getBoundingClientRect(),c=g;return{left:(0,a.clamp)((c.pageX-(d.left+f(k).pageXOffset))/d.width,0,1),top:(0,a.clamp)((c.pageY-(d.top+f(k).pageYOffset))/d.height,0,1)}},S=r.Interactive=function(I){function k(d){var c;return c=I.call(this)||this,c.containerRef=void 0,c.props=void 0,c.handleMoveStart=function(m){var l,u=(l=c.containerRef)==null?void 0:l.current;u&&(m.preventDefault(),u.focus(),c.props.onMove(b(u,m)),c.toggleDocumentEvents(!0))},c.handleMove=function(m){var l;m.preventDefault();var u=m.buttons>0;u&&(l=c.containerRef)!=null&&l.current?c.props.onMove(b(c.containerRef.current,m)):c.toggleDocumentEvents(!1)},c.handleMoveEnd=function(){c.toggleDocumentEvents(!1)},c.handleKeyDown=function(m){var l=m.which||m.keyCode;l<37||l>40||(m.preventDefault(),c.props.onKey({left:l===39?.05:l===37?-.05:0,top:l===40?.05:l===38?-.05:0}))},c.props=d,c.containerRef=(0,e.createRef)(),c}t(k,I);var g=k.prototype;return g.toggleDocumentEvents=function(){function d(c){var m,l=(m=this.containerRef)==null?void 0:m.current,u=f(l),s=c?u.addEventListener:u.removeEventListener;s("mousemove",this.handleMove),s("mouseup",this.handleMoveEnd)}return d}(),g.componentDidMount=function(){function d(){this.toggleDocumentEvents(!0)}return d}(),g.componentWillUnmount=function(){function d(){this.toggleDocumentEvents(!1)}return d}(),g.render=function(){function d(){return(0,e.normalizeProps)((0,e.createVNode)(1,"div","react-colorful__interactive",this.props.children,0,Object.assign({},this.props,{style:this.props.style,onMouseDown:this.handleMoveStart,onKeyDown:this.handleKeyDown,tabIndex:0,role:"slider"}),null,this.containerRef))}return d}(),k}(e.Component)},76334:function(A,r,n){"use strict";r.__esModule=!0,r.Knob=void 0;var e=n(89005),a=n(44879),t=n(35840),o=n(55937),f=n(20342),b=n(59263),S=["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","style","fillValue","color","ranges","size","bipolar","children","popUpPosition"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function I(g,u){if(g==null)return{};var c={};for(var m in g)if({}.hasOwnProperty.call(g,m)){if(u.includes(m))continue;c[m]=g[m]}return c}var k=r.Knob=function(){function g(u){var c=u.animated,m=u.format,l=u.maxValue,d=u.minValue,s=u.onChange,i=u.onDrag,h=u.step,C=u.stepPixelSize,v=u.suppressFlicker,p=u.unit,N=u.value,V=u.className,y=u.style,B=u.fillValue,L=u.color,w=u.ranges,x=w===void 0?{}:w,T=u.size,M=T===void 0?1:T,O=u.bipolar,D=u.children,E=u.popUpPosition,P=I(u,S);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.DraggableControl,Object.assign({dragMatrix:[0,-1]},{animated:c,format:m,maxValue:l,minValue:d,onChange:s,onDrag:i,step:h,stepPixelSize:C,suppressFlicker:v,unit:p,value:N},{children:function(){function R(j){var F=j.dragging,W=j.editing,z=j.value,K=j.displayValue,G=j.displayElement,J=j.inputElement,Q=j.handleDragStart,ue=(0,a.scale)(B!=null?B:K,d,l),ie=(0,a.scale)(K,d,l),pe=L||(0,a.keyOfMatchingRange)(B!=null?B:z,x)||"default",te=(ie-.5)*270;return(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,t.classes)(["Knob","Knob--color--"+pe,O&&"Knob--bipolar",V,(0,o.computeBoxClassName)(P)]),[(0,e.createVNode)(1,"div","Knob__circle",(0,e.createVNode)(1,"div","Knob__cursorBox",(0,e.createVNode)(1,"div","Knob__cursor"),2,{style:{transform:"rotate("+te+"deg)"}}),2),F&&(0,e.createVNode)(1,"div",(0,t.classes)(["Knob__popupValue",E&&"Knob__popupValue--"+E]),G,0),(0,e.createVNode)(32,"svg","Knob__ring Knob__ringTrackPivot",(0,e.createVNode)(32,"circle","Knob__ringTrack",null,1,{cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),(0,e.createVNode)(32,"svg","Knob__ring Knob__ringFillPivot",(0,e.createVNode)(32,"circle","Knob__ringFill",null,1,{style:{"stroke-dashoffset":((O?2.75:2)-ue*1.5)*Math.PI*50},cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),J],0,Object.assign({},(0,o.computeBoxProps)(Object.assign({style:Object.assign({"font-size":M+"em"},y)},P)),{onMouseDown:Q})))}return R}()})))}return g}()},78621:function(A,r,n){"use strict";r.__esModule=!0,r.LabeledControls=void 0;var e=n(89005),a=n(39473),t=["children"],o=["label","children"];/**
+ */function I(g,d){if(g==null)return{};var c={};for(var m in g)if({}.hasOwnProperty.call(g,m)){if(d.includes(m))continue;c[m]=g[m]}return c}var k=r.Knob=function(){function g(d){var c=d.animated,m=d.format,l=d.maxValue,u=d.minValue,s=d.onChange,i=d.onDrag,h=d.step,C=d.stepPixelSize,v=d.suppressFlicker,p=d.unit,N=d.value,V=d.className,y=d.style,B=d.fillValue,L=d.color,w=d.ranges,x=w===void 0?{}:w,T=d.size,M=T===void 0?1:T,O=d.bipolar,D=d.children,E=d.popUpPosition,P=I(d,S);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.DraggableControl,Object.assign({dragMatrix:[0,-1]},{animated:c,format:m,maxValue:l,minValue:u,onChange:s,onDrag:i,step:h,stepPixelSize:C,suppressFlicker:v,unit:p,value:N},{children:function(){function R(j){var F=j.dragging,W=j.editing,z=j.value,K=j.displayValue,G=j.displayElement,J=j.inputElement,Q=j.handleDragStart,ue=(0,a.scale)(B!=null?B:K,u,l),ie=(0,a.scale)(K,u,l),pe=L||(0,a.keyOfMatchingRange)(B!=null?B:z,x)||"default",te=(ie-.5)*270;return(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,t.classes)(["Knob","Knob--color--"+pe,O&&"Knob--bipolar",V,(0,o.computeBoxClassName)(P)]),[(0,e.createVNode)(1,"div","Knob__circle",(0,e.createVNode)(1,"div","Knob__cursorBox",(0,e.createVNode)(1,"div","Knob__cursor"),2,{style:{transform:"rotate("+te+"deg)"}}),2),F&&(0,e.createVNode)(1,"div",(0,t.classes)(["Knob__popupValue",E&&"Knob__popupValue--"+E]),G,0),(0,e.createVNode)(32,"svg","Knob__ring Knob__ringTrackPivot",(0,e.createVNode)(32,"circle","Knob__ringTrack",null,1,{cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),(0,e.createVNode)(32,"svg","Knob__ring Knob__ringFillPivot",(0,e.createVNode)(32,"circle","Knob__ringFill",null,1,{style:{"stroke-dashoffset":((O?2.75:2)-ue*1.5)*Math.PI*50},cx:"50",cy:"50",r:"50"}),2,{viewBox:"0 0 100 100"}),J],0,Object.assign({},(0,o.computeBoxProps)(Object.assign({style:Object.assign({"font-size":M+"em"},y)},P)),{onMouseDown:Q})))}return R}()})))}return g}()},78621:function(A,r,n){"use strict";r.__esModule=!0,r.LabeledControls=void 0;var e=n(89005),a=n(39473),t=["children"],o=["label","children"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function f(I,k){if(I==null)return{};var g={};for(var u in I)if({}.hasOwnProperty.call(I,u)){if(k.includes(u))continue;g[u]=I[u]}return g}var b=r.LabeledControls=function(){function I(k){var g=k.children,u=f(k,t);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Flex,Object.assign({mx:-.5,align:"stretch",justify:"space-between"},u,{children:g})))}return I}(),S=function(k){var g=k.label,u=k.children,c=f(k,o);return(0,e.createComponentVNode)(2,a.Flex.Item,{mx:1,children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Flex,Object.assign({minWidth:"52px",height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},c,{children:[(0,e.createComponentVNode)(2,a.Flex.Item),(0,e.createComponentVNode)(2,a.Flex.Item,{children:u}),(0,e.createComponentVNode)(2,a.Flex.Item,{color:"label",children:g})]})))})};b.Item=S},29319:function(A,r,n){"use strict";r.__esModule=!0,r.LabeledList=void 0;var e=n(89005),a=n(35840),t=n(55937),o=n(13605),f=n(62147);/**
+ */function f(I,k){if(I==null)return{};var g={};for(var d in I)if({}.hasOwnProperty.call(I,d)){if(k.includes(d))continue;g[d]=I[d]}return g}var b=r.LabeledControls=function(){function I(k){var g=k.children,d=f(k,t);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Flex,Object.assign({mx:-.5,align:"stretch",justify:"space-between"},d,{children:g})))}return I}(),S=function(k){var g=k.label,d=k.children,c=f(k,o);return(0,e.createComponentVNode)(2,a.Flex.Item,{mx:1,children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Flex,Object.assign({minWidth:"52px",height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},c,{children:[(0,e.createComponentVNode)(2,a.Flex.Item),(0,e.createComponentVNode)(2,a.Flex.Item,{children:d}),(0,e.createComponentVNode)(2,a.Flex.Item,{color:"label",children:g})]})))})};b.Item=S},29319:function(A,r,n){"use strict";r.__esModule=!0,r.LabeledList=void 0;var e=n(89005),a=n(35840),t=n(55937),o=n(13605),f=n(62147);/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var b=r.LabeledList=function(){function k(g){var u=g.children;return(0,e.createVNode)(1,"table","LabeledList",u,0)}return k}();b.defaultHooks=a.pureComponentHooks;var S=function(g){var u=g.className,c=g.label,m=g.labelColor,l=m===void 0?"label":m,d=g.color,s=g.textAlign,i=g.buttons,h=g.tooltip,C=g.content,v=g.children,p=g.preserveWhitespace,N=g.labelStyle,V=(0,e.createVNode)(1,"tr",(0,a.classes)(["LabeledList__row",u]),[(0,e.createComponentVNode)(2,t.Box,{as:"td",color:l,className:(0,a.classes)(["LabeledList__cell","LabeledList__label"]),style:N,children:c?c+":":null}),(0,e.createComponentVNode)(2,t.Box,{as:"td",color:d,textAlign:s,className:(0,a.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:i?void 0:2,preserveWhitespace:p,children:[C,v]}),i&&(0,e.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",i,0)],0);return h&&(V=(0,e.createComponentVNode)(2,f.Tooltip,{content:h,children:V})),V};S.defaultHooks=a.pureComponentHooks;var I=function(g){var u=g.size?(0,t.unit)(Math.max(0,g.size-1)):0;return(0,e.createVNode)(1,"tr","LabeledList__row",(0,e.createVNode)(1,"td",null,(0,e.createComponentVNode)(2,o.Divider),2,{colSpan:3,style:{"padding-top":u,"padding-bottom":u}}),2)};I.defaultHooks=a.pureComponentHooks,b.Item=S,b.Divider=I},36077:function(A,r,n){"use strict";r.__esModule=!0,r.Modal=void 0;var e=n(89005),a=n(35840),t=n(55937),o=n(61940),f=["className","children","onEnter"];/**
+ */var b=r.LabeledList=function(){function k(g){var d=g.children;return(0,e.createVNode)(1,"table","LabeledList",d,0)}return k}();b.defaultHooks=a.pureComponentHooks;var S=function(g){var d=g.className,c=g.label,m=g.labelColor,l=m===void 0?"label":m,u=g.color,s=g.textAlign,i=g.buttons,h=g.tooltip,C=g.content,v=g.children,p=g.preserveWhitespace,N=g.labelStyle,V=(0,e.createVNode)(1,"tr",(0,a.classes)(["LabeledList__row",d]),[(0,e.createComponentVNode)(2,t.Box,{as:"td",color:l,className:(0,a.classes)(["LabeledList__cell","LabeledList__label"]),style:N,children:c?c+":":null}),(0,e.createComponentVNode)(2,t.Box,{as:"td",color:u,textAlign:s,className:(0,a.classes)(["LabeledList__cell","LabeledList__content"]),colSpan:i?void 0:2,preserveWhitespace:p,children:[C,v]}),i&&(0,e.createVNode)(1,"td","LabeledList__cell LabeledList__buttons",i,0)],0);return h&&(V=(0,e.createComponentVNode)(2,f.Tooltip,{content:h,children:V})),V};S.defaultHooks=a.pureComponentHooks;var I=function(g){var d=g.size?(0,t.unit)(Math.max(0,g.size-1)):0;return(0,e.createVNode)(1,"tr","LabeledList__row",(0,e.createVNode)(1,"td",null,(0,e.createComponentVNode)(2,o.Divider),2,{colSpan:3,style:{"padding-top":d,"padding-bottom":d}}),2)};I.defaultHooks=a.pureComponentHooks,b.Item=S,b.Divider=I},36077:function(A,r,n){"use strict";r.__esModule=!0,r.Modal=void 0;var e=n(89005),a=n(35840),t=n(55937),o=n(61940),f=["className","children","onEnter"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function b(I,k){if(I==null)return{};var g={};for(var u in I)if({}.hasOwnProperty.call(I,u)){if(k.includes(u))continue;g[u]=I[u]}return g}var S=r.Modal=function(){function I(k){var g=k.className,u=k.children,c=k.onEnter,m=b(k,f),l;return c&&(l=function(){function d(s){s.keyCode===13&&c(s)}return d}()),(0,e.createComponentVNode)(2,o.Dimmer,{onKeyDown:l,children:(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)(["Modal",g,(0,t.computeBoxClassName)(m)]),u,0,Object.assign({},(0,t.computeBoxProps)(m))))})}return I}()},73280:function(A,r,n){"use strict";r.__esModule=!0,r.NanoMap=void 0;var e=n(89005),a=n(36036),t=n(72253),o=n(29319),f=n(79911),b=n(79140),S=["x","y","icon","tooltip","color","children"],I=["icon","color"];function k(N,V){if(N==null)return{};var y={};for(var B in N)if({}.hasOwnProperty.call(N,B)){if(V.includes(B))continue;y[B]=N[B]}return y}function g(N,V){N.prototype=Object.create(V.prototype),N.prototype.constructor=N,u(N,V)}function u(N,V){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(y,B){return y.__proto__=B,y},u(N,V)}var c=510,m=2,l=function(V){return V.stopPropagation&&V.stopPropagation(),V.preventDefault&&V.preventDefault(),V.cancelBubble=!0,V.returnValue=!1,!1},d=r.NanoMap=function(N){function V(B){var L,w,x,T;T=N.call(this,B)||this;var M=window.innerWidth/2-256,O=window.innerHeight/2-256;return T.state={offsetX:(L=B.offsetX)!=null?L:0,offsetY:(w=B.offsetY)!=null?w:0,dragging:!1,originX:null,originY:null,zoom:(x=B.zoom)!=null?x:1},T.handleDragStart=function(D){T.ref=D.target,T.setState({dragging:!1,originX:D.screenX,originY:D.screenY}),document.addEventListener("mousemove",T.handleDragMove),document.addEventListener("mouseup",T.handleDragEnd),l(D)},T.handleDragMove=function(D){T.setState(function(E){var P=Object.assign({},E),R=D.screenX-P.originX,j=D.screenY-P.originY;return E.dragging?(P.offsetX+=R/P.zoom,P.offsetY+=j/P.zoom,P.originX=D.screenX,P.originY=D.screenY):P.dragging=!0,P}),l(D)},T.handleDragEnd=function(D){T.setState({dragging:!1,originX:null,originY:null}),document.removeEventListener("mousemove",T.handleDragMove),document.removeEventListener("mouseup",T.handleDragEnd),B.onOffsetChange==null||B.onOffsetChange(D,T.state),l(D)},T.handleZoom=function(D,E){T.setState(function(P){var R=Math.min(Math.max(E,1),8);return P.zoom=R,B.onZoom&&B.onZoom(P.zoom),P})},T.handleReset=function(D){T.setState(function(E){E.offsetX=0,E.offsetY=0,E.zoom=1,T.handleZoom(D,1),B.onOffsetChange==null||B.onOffsetChange(D,E)})},T}g(V,N);var y=V.prototype;return y.getChildContext=function(){function B(){return{map:{zoom:this.state.zoom}}}return B}(),y.render=function(){function B(){var L=(0,t.useBackend)(this.context),w=L.config,x=this.state,T=x.dragging,M=x.offsetX,O=x.offsetY,D=x.zoom,E=D===void 0?1:D,P=this.props.children,R=this.props.mapUrl||w.map+"_nanomap_z1.png",j=c*E+"px",F={width:j,height:j,"margin-top":O*E+"px","margin-left":M*E+"px",overflow:"hidden",position:"relative",top:"50%",left:"50%",transform:"translate(-50%, -50%)","background-size":"cover","background-repeat":"no-repeat","text-align":"center",cursor:T?"move":"auto"},W={width:"100%",height:"100%",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"};return(0,e.createComponentVNode)(2,a.Box,{className:"NanoMap__container",children:[(0,e.createComponentVNode)(2,a.Box,{style:F,onMouseDown:this.handleDragStart,children:[(0,e.createVNode)(1,"img",null,null,1,{src:(0,b.resolveAsset)(R),style:W}),(0,e.createComponentVNode)(2,a.Box,{children:P})]}),(0,e.createComponentVNode)(2,h,{zoom:E,onZoom:this.handleZoom,onReset:this.handleReset}),(0,e.createComponentVNode)(2,p)]})}return B}(),V}(e.Component),s=function(V,y){var B=y.map.zoom,L=V.x,w=V.y,x=V.icon,T=V.tooltip,M=V.color,O=V.children,D=k(V,S),E=m*B,P=(L-1)*E,R=(w-1)*E;return(0,e.createVNode)(1,"div",null,(0,e.createComponentVNode)(2,a.Tooltip,{content:T,children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Box,Object.assign({position:"absolute",className:"NanoMap__marker",lineHeight:"0",bottom:R+"px",left:P+"px",width:E+"px",height:E+"px"},D,{children:O})))}),2)};d.Marker=s;var i=function(V,y){var B=y.map.zoom,L=V.icon,w=V.color,x=k(V,I),T=m*B+4/Math.ceil(B/4);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,s,Object.assign({},x,{children:(0,e.createComponentVNode)(2,a.Icon,{name:L,color:w,fontSize:T+"px",style:{position:"relative",top:"50%",left:"50%",transform:"translate(-50%, -50%)"}})})))};d.MarkerIcon=i;var h=function(V,y){return(0,e.createComponentVNode)(2,a.Box,{className:"NanoMap__zoomer",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Zoom",labelStyle:{"vertical-align":"middle"},children:(0,e.createComponentVNode)(2,a.Flex,{direction:"row",children:[(0,e.createComponentVNode)(2,f.Slider,{minValue:1,maxValue:8,stepPixelSize:10,format:function(){function B(L){return L+"x"}return B}(),value:V.zoom,onDrag:function(){function B(L,w){return V.onZoom(L,w)}return B}()}),(0,e.createComponentVNode)(2,a.Button,{ml:"0.5em",float:"right",icon:"sync",tooltip:"Reset View",onClick:function(){function B(L){return V.onReset==null?void 0:V.onReset(L)}return B}()})]})})})})};d.Zoomer=h;var C,v=function(N){function V(B){var L;L=N.call(this,B)||this;var w=(0,t.useBackend)(L.props.context),x=w.act;return L.state={color:L.props.color},L.handleClick=function(T){C!==void 0&&C.setState({color:"blue"}),x("switch_camera",{name:L.props.name}),C=L,L.setState({color:"green"})},L}g(V,N);var y=V.prototype;return y.render=function(){function B(){var L=this.props.x*2*this.props.zoom-this.props.zoom-3,w=this.props.y*2*this.props.zoom-this.props.zoom-3;return(0,e.createComponentVNode)(2,a.Button,{onClick:this.handleClick,position:"absolute",className:"NanoMap__button",lineHeight:"0",color:this.props.status?this.state.color:"red",bottom:w+"px",left:L+"px",children:(0,e.createComponentVNode)(2,a.Tooltip,{content:this.props.tooltip})},this.props.key)}return B}(),V}(e.Component);d.NanoButton=v;var p=function(V,y){var B=(0,t.useBackend)(y),L=B.act,w=B.data;return(0,e.createComponentVNode)(2,a.Box,{className:"NanoMap__zchooser",children:[(0,e.createComponentVNode)(2,a.Box,{children:(0,e.createComponentVNode)(2,a.Button,{icon:"chevron-up",tooltip:"\u0423\u0440\u043E\u0432\u043D\u0435\u043C \u0432\u044B\u0448\u0435",onClick:function(){function x(){return L("switch_z_level",{z_dir:1})}return x}()})}),(0,e.createComponentVNode)(2,a.Box,{children:(0,e.createComponentVNode)(2,a.Button,{icon:"chevron-down",tooltip:"\u0423\u0440\u043E\u0432\u043D\u0435\u043C \u043D\u0438\u0436\u0435",onClick:function(){function x(){return L("switch_z_level",{z_dir:-1})}return x}()})})]})}},74733:function(A,r,n){"use strict";r.__esModule=!0,r.NoticeBox=void 0;var e=n(89005),a=n(35840),t=n(55937),o=["className","color","info","warning","success","danger"];/**
+ */function b(I,k){if(I==null)return{};var g={};for(var d in I)if({}.hasOwnProperty.call(I,d)){if(k.includes(d))continue;g[d]=I[d]}return g}var S=r.Modal=function(){function I(k){var g=k.className,d=k.children,c=k.onEnter,m=b(k,f),l;return c&&(l=function(){function u(s){s.keyCode===13&&c(s)}return u}()),(0,e.createComponentVNode)(2,o.Dimmer,{onKeyDown:l,children:(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)(["Modal",g,(0,t.computeBoxClassName)(m)]),d,0,Object.assign({},(0,t.computeBoxProps)(m))))})}return I}()},73280:function(A,r,n){"use strict";r.__esModule=!0,r.NanoMap=void 0;var e=n(89005),a=n(36036),t=n(72253),o=n(29319),f=n(79911),b=n(79140),S=["x","y","icon","tooltip","color","children"],I=["icon","color"];function k(N,V){if(N==null)return{};var y={};for(var B in N)if({}.hasOwnProperty.call(N,B)){if(V.includes(B))continue;y[B]=N[B]}return y}function g(N,V){N.prototype=Object.create(V.prototype),N.prototype.constructor=N,d(N,V)}function d(N,V){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(y,B){return y.__proto__=B,y},d(N,V)}var c=510,m=2,l=function(V){return V.stopPropagation&&V.stopPropagation(),V.preventDefault&&V.preventDefault(),V.cancelBubble=!0,V.returnValue=!1,!1},u=r.NanoMap=function(N){function V(B){var L,w,x,T;T=N.call(this,B)||this;var M=window.innerWidth/2-256,O=window.innerHeight/2-256;return T.state={offsetX:(L=B.offsetX)!=null?L:0,offsetY:(w=B.offsetY)!=null?w:0,dragging:!1,originX:null,originY:null,zoom:(x=B.zoom)!=null?x:1},T.handleDragStart=function(D){T.ref=D.target,T.setState({dragging:!1,originX:D.screenX,originY:D.screenY}),document.addEventListener("mousemove",T.handleDragMove),document.addEventListener("mouseup",T.handleDragEnd),l(D)},T.handleDragMove=function(D){T.setState(function(E){var P=Object.assign({},E),R=D.screenX-P.originX,j=D.screenY-P.originY;return E.dragging?(P.offsetX+=R/P.zoom,P.offsetY+=j/P.zoom,P.originX=D.screenX,P.originY=D.screenY):P.dragging=!0,P}),l(D)},T.handleDragEnd=function(D){T.setState({dragging:!1,originX:null,originY:null}),document.removeEventListener("mousemove",T.handleDragMove),document.removeEventListener("mouseup",T.handleDragEnd),B.onOffsetChange==null||B.onOffsetChange(D,T.state),l(D)},T.handleZoom=function(D,E){T.setState(function(P){var R=Math.min(Math.max(E,1),8);return P.zoom=R,B.onZoom&&B.onZoom(P.zoom),P})},T.handleReset=function(D){T.setState(function(E){E.offsetX=0,E.offsetY=0,E.zoom=1,T.handleZoom(D,1),B.onOffsetChange==null||B.onOffsetChange(D,E)})},T}g(V,N);var y=V.prototype;return y.getChildContext=function(){function B(){return{map:{zoom:this.state.zoom}}}return B}(),y.render=function(){function B(){var L=(0,t.useBackend)(this.context),w=L.config,x=this.state,T=x.dragging,M=x.offsetX,O=x.offsetY,D=x.zoom,E=D===void 0?1:D,P=this.props.children,R=this.props.mapUrl||w.map+"_nanomap_z1.png",j=c*E+"px",F={width:j,height:j,"margin-top":O*E+"px","margin-left":M*E+"px",overflow:"hidden",position:"relative",top:"50%",left:"50%",transform:"translate(-50%, -50%)","background-size":"cover","background-repeat":"no-repeat","text-align":"center",cursor:T?"move":"auto"},W={width:"100%",height:"100%",position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"};return(0,e.createComponentVNode)(2,a.Box,{className:"NanoMap__container",children:[(0,e.createComponentVNode)(2,a.Box,{style:F,onMouseDown:this.handleDragStart,children:[(0,e.createVNode)(1,"img",null,null,1,{src:(0,b.resolveAsset)(R),style:W}),(0,e.createComponentVNode)(2,a.Box,{children:P})]}),(0,e.createComponentVNode)(2,h,{zoom:E,onZoom:this.handleZoom,onReset:this.handleReset}),(0,e.createComponentVNode)(2,p)]})}return B}(),V}(e.Component),s=function(V,y){var B=y.map.zoom,L=V.x,w=V.y,x=V.icon,T=V.tooltip,M=V.color,O=V.children,D=k(V,S),E=m*B,P=(L-1)*E,R=(w-1)*E;return(0,e.createVNode)(1,"div",null,(0,e.createComponentVNode)(2,a.Tooltip,{content:T,children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Box,Object.assign({position:"absolute",className:"NanoMap__marker",lineHeight:"0",bottom:R+"px",left:P+"px",width:E+"px",height:E+"px"},D,{children:O})))}),2)};u.Marker=s;var i=function(V,y){var B=y.map.zoom,L=V.icon,w=V.color,x=k(V,I),T=m*B+4/Math.ceil(B/4);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,s,Object.assign({},x,{children:(0,e.createComponentVNode)(2,a.Icon,{name:L,color:w,fontSize:T+"px",style:{position:"relative",top:"50%",left:"50%",transform:"translate(-50%, -50%)"}})})))};u.MarkerIcon=i;var h=function(V,y){return(0,e.createComponentVNode)(2,a.Box,{className:"NanoMap__zoomer",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Zoom",labelStyle:{"vertical-align":"middle"},children:(0,e.createComponentVNode)(2,a.Flex,{direction:"row",children:[(0,e.createComponentVNode)(2,f.Slider,{minValue:1,maxValue:8,stepPixelSize:10,format:function(){function B(L){return L+"x"}return B}(),value:V.zoom,onDrag:function(){function B(L,w){return V.onZoom(L,w)}return B}()}),(0,e.createComponentVNode)(2,a.Button,{ml:"0.5em",float:"right",icon:"sync",tooltip:"Reset View",onClick:function(){function B(L){return V.onReset==null?void 0:V.onReset(L)}return B}()})]})})})})};u.Zoomer=h;var C,v=function(N){function V(B){var L;L=N.call(this,B)||this;var w=(0,t.useBackend)(L.props.context),x=w.act;return L.state={color:L.props.color},L.handleClick=function(T){C!==void 0&&C.setState({color:"blue"}),x("switch_camera",{name:L.props.name}),C=L,L.setState({color:"green"})},L}g(V,N);var y=V.prototype;return y.render=function(){function B(){var L=this.props.x*2*this.props.zoom-this.props.zoom-3,w=this.props.y*2*this.props.zoom-this.props.zoom-3;return(0,e.createComponentVNode)(2,a.Button,{onClick:this.handleClick,position:"absolute",className:"NanoMap__button",lineHeight:"0",color:this.props.status?this.state.color:"red",bottom:w+"px",left:L+"px",children:(0,e.createComponentVNode)(2,a.Tooltip,{content:this.props.tooltip})},this.props.key)}return B}(),V}(e.Component);u.NanoButton=v;var p=function(V,y){var B=(0,t.useBackend)(y),L=B.act,w=B.data;return(0,e.createComponentVNode)(2,a.Box,{className:"NanoMap__zchooser",children:[(0,e.createComponentVNode)(2,a.Box,{children:(0,e.createComponentVNode)(2,a.Button,{icon:"chevron-up",tooltip:"\u0423\u0440\u043E\u0432\u043D\u0435\u043C \u0432\u044B\u0448\u0435",onClick:function(){function x(){return L("switch_z_level",{z_dir:1})}return x}()})}),(0,e.createComponentVNode)(2,a.Box,{children:(0,e.createComponentVNode)(2,a.Button,{icon:"chevron-down",tooltip:"\u0423\u0440\u043E\u0432\u043D\u0435\u043C \u043D\u0438\u0436\u0435",onClick:function(){function x(){return L("switch_z_level",{z_dir:-1})}return x}()})})]})}},74733:function(A,r,n){"use strict";r.__esModule=!0,r.NoticeBox=void 0;var e=n(89005),a=n(35840),t=n(55937),o=["className","color","info","warning","success","danger"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function f(S,I){if(S==null)return{};var k={};for(var g in S)if({}.hasOwnProperty.call(S,g)){if(I.includes(g))continue;k[g]=S[g]}return k}var b=r.NoticeBox=function(){function S(I){var k=I.className,g=I.color,u=I.info,c=I.warning,m=I.success,l=I.danger,d=f(I,o);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({className:(0,a.classes)(["NoticeBox",g&&"NoticeBox--color--"+g,u&&"NoticeBox--type--info",m&&"NoticeBox--type--success",l&&"NoticeBox--type--danger",k])},d)))}return S}();b.defaultHooks=a.pureComponentHooks},59263:function(A,r,n){"use strict";r.__esModule=!0,r.NumberInput=void 0;var e=n(89005),a=n(44879),t=n(35840),o=n(9474),f=n(55937);function b(g,u){g.prototype=Object.create(u.prototype),g.prototype.constructor=g,S(g,u)}function S(g,u){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(c,m){return c.__proto__=m,c},S(g,u)}/**
+ */function f(S,I){if(S==null)return{};var k={};for(var g in S)if({}.hasOwnProperty.call(S,g)){if(I.includes(g))continue;k[g]=S[g]}return k}var b=r.NoticeBox=function(){function S(I){var k=I.className,g=I.color,d=I.info,c=I.warning,m=I.success,l=I.danger,u=f(I,o);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({className:(0,a.classes)(["NoticeBox",g&&"NoticeBox--color--"+g,d&&"NoticeBox--type--info",m&&"NoticeBox--type--success",l&&"NoticeBox--type--danger",k])},u)))}return S}();b.defaultHooks=a.pureComponentHooks},59263:function(A,r,n){"use strict";r.__esModule=!0,r.NumberInput=void 0;var e=n(89005),a=n(44879),t=n(35840),o=n(9474),f=n(55937);function b(g,d){g.prototype=Object.create(d.prototype),g.prototype.constructor=g,S(g,d)}function S(g,d){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(c,m){return c.__proto__=m,c},S(g,d)}/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
-*/var I=400,k=r.NumberInput=function(g){function u(m){var l;l=g.call(this,m)||this;var d=m.value;return l.inputRef=(0,e.createRef)(),l.state={value:d,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},l.flickerTimer=null,l.suppressFlicker=function(){var s=l.props.suppressFlicker;s>0&&(l.setState({suppressingFlicker:!0}),clearTimeout(l.flickerTimer),l.flickerTimer=setTimeout(function(){return l.setState({suppressingFlicker:!1})},s))},l.handleDragStart=function(s){var i=l.props.value,h=l.state.editing;h||(document.body.style["pointer-events"]="none",l.ref=s.target,l.setState({dragging:!1,origin:s.screenY,value:i,internalValue:i}),l.timer=setTimeout(function(){l.setState({dragging:!0})},250),l.dragInterval=setInterval(function(){var C=l.state,v=C.dragging,p=C.value,N=l.props.onDrag;v&&N&&N(s,p)},l.props.updateRate||I),document.addEventListener("mousemove",l.handleDragMove),document.addEventListener("mouseup",l.handleDragEnd))},l.handleDragMove=function(s){var i=l.props,h=i.minValue,C=i.maxValue,v=i.step,p=i.stepPixelSize;l.setState(function(N){var V=Object.assign({},N),y=V.origin-s.screenY;if(N.dragging){var B=Number.isFinite(h)?h%v:0;V.internalValue=(0,a.clamp)(V.internalValue+y*v/p,h-v,C+v),V.value=(0,a.clamp)(V.internalValue-V.internalValue%v+B,h,C),V.origin=s.screenY}else Math.abs(y)>4&&(V.dragging=!0);return V})},l.handleDragEnd=function(s){var i=l.props,h=i.onChange,C=i.onDrag,v=l.state,p=v.dragging,N=v.value,V=v.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(l.timer),clearInterval(l.dragInterval),l.setState({dragging:!1,editing:!p,origin:null}),document.removeEventListener("mousemove",l.handleDragMove),document.removeEventListener("mouseup",l.handleDragEnd),p)l.suppressFlicker(),h&&h(s,N),C&&C(s,N);else if(l.inputRef){var y=l.inputRef.current;y.value=V;try{y.focus(),y.select()}catch(B){}}},l}b(u,g);var c=u.prototype;return c.render=function(){function m(){var l=this,d=this.state,s=d.dragging,i=d.editing,h=d.value,C=d.suppressingFlicker,v=this.props,p=v.className,N=v.fluid,V=v.animated,y=v.value,B=v.unit,L=v.minValue,w=v.maxValue,x=v.height,T=v.width,M=v.lineHeight,O=v.fontSize,D=v.format,E=v.onChange,P=v.onDrag,R=y;(s||C)&&(R=h);var j=(0,e.createVNode)(1,"div","NumberInput__content",[V&&!s&&!C?(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:R,format:D}):D?D(R):R,B?" "+B:""],0);return(0,e.createComponentVNode)(2,f.Box,{className:(0,t.classes)(["NumberInput",N&&"NumberInput--fluid",p]),minWidth:T,minHeight:x,lineHeight:M,fontSize:O,onMouseDown:this.handleDragStart,children:[(0,e.createVNode)(1,"div","NumberInput__barContainer",(0,e.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,a.clamp)((R-L)/(w-L)*100,0,100)+"%"}}),2),j,(0,e.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:i?void 0:"none",height:x,"line-height":M,"font-size":O},onBlur:function(){function F(W){if(i){var z=(0,a.clamp)(parseFloat(W.target.value),L,w);if(Number.isNaN(z)){l.setState({editing:!1});return}l.setState({editing:!1,value:z}),l.suppressFlicker(),E&&E(W,z),P&&P(W,z)}}return F}(),onKeyDown:function(){function F(W){if(W.keyCode===13){var z=(0,a.clamp)(parseFloat(W.target.value),L,w);if(Number.isNaN(z)){l.setState({editing:!1});return}l.setState({editing:!1,value:z}),l.suppressFlicker(),E&&E(W,z),P&&P(W,z);return}if(W.keyCode===27){l.setState({editing:!1});return}}return F}()},null,this.inputRef)]})}return m}(),u}(e.Component);k.defaultHooks=t.pureComponentHooks,k.defaultProps={minValue:-1/0,maxValue:1/0,step:1,stepPixelSize:1,suppressFlicker:50}},33337:function(A,r,n){"use strict";r.__esModule=!0,r.Pointer=void 0;var e=n(89005),a=n(35840),t=r.Pointer=function(){function o(f){var b=f.className,S=f.color,I=f.left,k=f.top,g=k===void 0?.5:k,u=(0,a.classes)(["react-colorful__pointer",b]),c={top:g*100+"%",left:I*100+"%"};return(0,e.createVNode)(1,"div",u,(0,e.createVNode)(1,"div","react-colorful__pointer-fill",null,1,{style:{"background-color":S}}),2,{style:c})}return o}()},50186:function(A,r,n){"use strict";r.__esModule=!0,r.Popper=void 0;var e=n(95996),a=n(89005);function t(b,S){b.prototype=Object.create(S.prototype),b.prototype.constructor=b,o(b,S)}function o(b,S){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(I,k){return I.__proto__=k,I},o(b,S)}var f=r.Popper=function(b){function S(){var k;return k=b.call(this)||this,k.renderedContent=void 0,k.popperInstance=void 0,S.id+=1,k}t(S,b);var I=S.prototype;return I.componentDidMount=function(){function k(){var g=this,u=this.props,c=u.additionalStyles,m=u.options;if(this.renderedContent=document.createElement("div"),c)for(var l=0,d=Object.entries(c);l0&&(l.setState({suppressingFlicker:!0}),clearTimeout(l.flickerTimer),l.flickerTimer=setTimeout(function(){return l.setState({suppressingFlicker:!1})},s))},l.handleDragStart=function(s){var i=l.props.value,h=l.state.editing;h||(document.body.style["pointer-events"]="none",l.ref=s.target,l.setState({dragging:!1,origin:s.screenY,value:i,internalValue:i}),l.timer=setTimeout(function(){l.setState({dragging:!0})},250),l.dragInterval=setInterval(function(){var C=l.state,v=C.dragging,p=C.value,N=l.props.onDrag;v&&N&&N(s,p)},l.props.updateRate||I),document.addEventListener("mousemove",l.handleDragMove),document.addEventListener("mouseup",l.handleDragEnd))},l.handleDragMove=function(s){var i=l.props,h=i.minValue,C=i.maxValue,v=i.step,p=i.stepPixelSize;l.setState(function(N){var V=Object.assign({},N),y=V.origin-s.screenY;if(N.dragging){var B=Number.isFinite(h)?h%v:0;V.internalValue=(0,a.clamp)(V.internalValue+y*v/p,h-v,C+v),V.value=(0,a.clamp)(V.internalValue-V.internalValue%v+B,h,C),V.origin=s.screenY}else Math.abs(y)>4&&(V.dragging=!0);return V})},l.handleDragEnd=function(s){var i=l.props,h=i.onChange,C=i.onDrag,v=l.state,p=v.dragging,N=v.value,V=v.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(l.timer),clearInterval(l.dragInterval),l.setState({dragging:!1,editing:!p,origin:null}),document.removeEventListener("mousemove",l.handleDragMove),document.removeEventListener("mouseup",l.handleDragEnd),p)l.suppressFlicker(),h&&h(s,N),C&&C(s,N);else if(l.inputRef){var y=l.inputRef.current;y.value=V;try{y.focus(),y.select()}catch(B){}}},l}b(d,g);var c=d.prototype;return c.render=function(){function m(){var l=this,u=this.state,s=u.dragging,i=u.editing,h=u.value,C=u.suppressingFlicker,v=this.props,p=v.className,N=v.fluid,V=v.animated,y=v.value,B=v.unit,L=v.minValue,w=v.maxValue,x=v.height,T=v.width,M=v.lineHeight,O=v.fontSize,D=v.format,E=v.onChange,P=v.onDrag,R=y;(s||C)&&(R=h);var j=(0,e.createVNode)(1,"div","NumberInput__content",[V&&!s&&!C?(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:R,format:D}):D?D(R):R,B?" "+B:""],0);return(0,e.createComponentVNode)(2,f.Box,{className:(0,t.classes)(["NumberInput",N&&"NumberInput--fluid",p]),minWidth:T,minHeight:x,lineHeight:M,fontSize:O,onMouseDown:this.handleDragStart,children:[(0,e.createVNode)(1,"div","NumberInput__barContainer",(0,e.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,a.clamp)((R-L)/(w-L)*100,0,100)+"%"}}),2),j,(0,e.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:i?void 0:"none",height:x,"line-height":M,"font-size":O},onBlur:function(){function F(W){if(i){var z=(0,a.clamp)(parseFloat(W.target.value),L,w);if(Number.isNaN(z)){l.setState({editing:!1});return}l.setState({editing:!1,value:z}),l.suppressFlicker(),E&&E(W,z),P&&P(W,z)}}return F}(),onKeyDown:function(){function F(W){if(W.keyCode===13){var z=(0,a.clamp)(parseFloat(W.target.value),L,w);if(Number.isNaN(z)){l.setState({editing:!1});return}l.setState({editing:!1,value:z}),l.suppressFlicker(),E&&E(W,z),P&&P(W,z);return}if(W.keyCode===27){l.setState({editing:!1});return}}return F}()},null,this.inputRef)]})}return m}(),d}(e.Component);k.defaultHooks=t.pureComponentHooks,k.defaultProps={minValue:-1/0,maxValue:1/0,step:1,stepPixelSize:1,suppressFlicker:50}},33337:function(A,r,n){"use strict";r.__esModule=!0,r.Pointer=void 0;var e=n(89005),a=n(35840),t=r.Pointer=function(){function o(f){var b=f.className,S=f.color,I=f.left,k=f.top,g=k===void 0?.5:k,d=(0,a.classes)(["react-colorful__pointer",b]),c={top:g*100+"%",left:I*100+"%"};return(0,e.createVNode)(1,"div",d,(0,e.createVNode)(1,"div","react-colorful__pointer-fill",null,1,{style:{"background-color":S}}),2,{style:c})}return o}()},50186:function(A,r,n){"use strict";r.__esModule=!0,r.Popper=void 0;var e=n(95996),a=n(89005);function t(b,S){b.prototype=Object.create(S.prototype),b.prototype.constructor=b,o(b,S)}function o(b,S){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(I,k){return I.__proto__=k,I},o(b,S)}var f=r.Popper=function(b){function S(){var k;return k=b.call(this)||this,k.renderedContent=void 0,k.popperInstance=void 0,S.id+=1,k}t(S,b);var I=S.prototype;return I.componentDidMount=function(){function k(){var g=this,d=this.props,c=d.additionalStyles,m=d.options;if(this.renderedContent=document.createElement("div"),c)for(var l=0,u=Object.entries(c);l=g.length)){var m=document.body.offsetHeight-c.getBoundingClientRect().bottom,l=Math.ceil(c.offsetHeight/u);if(m>0){var d=Math.min(g.length,u+Math.max(1,Math.ceil(m/l)));k.setState({visibleElements:d,padding:(g.length-d)*l})}}},k.containerRef=(0,e.createRef)(),k.state={visibleElements:1,padding:0},k}a(b,f);var S=b.prototype;return S.componentDidMount=function(){function I(){this.adjustExtents(),this.intervalId=setInterval(this.adjustExtents,100)}return I}(),S.componentWillUnmount=function(){function I(){clearInterval(this.intervalId)}return I}(),S.render=function(){function I(){var k=this.props.children,g=this.state,u=g.visibleElements,c=g.padding;return(0,e.createVNode)(1,"div","VirtualList",[(0,e.createVNode)(1,"div","VirtualList__Container",Array.isArray(k)?k.slice(0,u):null,0,null,null,this.containerRef),(0,e.createVNode)(1,"div","VirtualList__Padding",null,1,{style:{"padding-bottom":c+"px"}})],4)}return I}(),b}(e.Component)},36036:function(A,r,n){"use strict";r.__esModule=!0,r.Tooltip=r.TimeDisplay=r.TextArea=r.Tabs=r.Table=r.Stack=r.Slider=r.Section=r.RoundGauge=r.RestrictedInput=r.ProgressBar=r.Popper=r.Pointer=r.NumberInput=r.NoticeBox=r.NanoMap=r.Modal=r.LabeledList=r.LabeledControls=r.Knob=r.Interactive=r.Input=r.ImageButton=r.Image=r.Icon=r.Grid=r.Flex=r.Dropdown=r.DraggableControl=r.DmIcon=r.Divider=r.Dimmer=r.Countdown=r.ColorBox=r.Collapsible=r.Chart=r.ByondUi=r.Button=r.Box=r.BlockQuote=r.Blink=r.Autofocus=r.AnimatedNumber=void 0;var e=n(9474);r.AnimatedNumber=e.AnimatedNumber;var a=n(27185);r.Autofocus=a.Autofocus;var t=n(5814);r.Blink=t.Blink;var o=n(61773);r.BlockQuote=o.BlockQuote;var f=n(55937);r.Box=f.Box;var b=n(96184);r.Button=b.Button;var S=n(18982);r.ByondUi=S.ByondUi;var I=n(66820);r.Chart=I.Chart;var k=n(4796);r.Collapsible=k.Collapsible;var g=n(88894);r.ColorBox=g.ColorBox;var u=n(73379);r.Countdown=u.Countdown;var c=n(61940);r.Dimmer=c.Dimmer;var m=n(13605);r.Divider=m.Divider;var l=n(20342);r.DraggableControl=l.DraggableControl;var d=n(87099);r.Dropdown=d.Dropdown;var s=n(39473);r.Flex=s.Flex;var i=n(79646);r.Grid=i.Grid;var h=n(4454);r.Interactive=h.Interactive;var C=n(91225);r.Image=C.Image;var v=n(60218);r.DmIcon=v.DmIcon;var p=n(1331);r.Icon=p.Icon;var N=n(79825);r.ImageButton=N.ImageButton;var V=n(79652);r.Input=V.Input;var y=n(76334);r.Knob=y.Knob;var B=n(78621);r.LabeledControls=B.LabeledControls;var L=n(29319);r.LabeledList=L.LabeledList;var w=n(36077);r.Modal=w.Modal;var x=n(73280);r.NanoMap=x.NanoMap;var T=n(74733);r.NoticeBox=T.NoticeBox;var M=n(59263);r.NumberInput=M.NumberInput;var O=n(33337);r.Pointer=O.Pointer;var D=n(50186);r.Popper=D.Popper;var E=n(92704);r.ProgressBar=E.ProgressBar;var P=n(9075);r.RestrictedInput=P.RestrictedInput;var R=n(11441);r.RoundGauge=R.RoundGauge;var j=n(97079);r.Section=j.Section;var F=n(79911);r.Slider=F.Slider;var W=n(96690);r.Stack=W.Stack;var z=n(36352);r.Table=z.Table;var K=n(85138);r.Tabs=K.Tabs;var G=n(44868);r.TextArea=G.TextArea;var J=n(5169);r.TimeDisplay=J.TimeDisplay;var Q=n(62147);r.Tooltip=Q.Tooltip},76910:function(A,r){"use strict";r.__esModule=!0,r.timeAgo=r.getGasLabel=r.getGasColor=r.UI_UPDATE=r.UI_INTERACTIVE=r.UI_DISABLED=r.UI_CLOSE=r.RADIO_CHANNELS=r.CSS_COLORS=r.COLORS=void 0;var n=r.UI_INTERACTIVE=2,e=r.UI_UPDATE=1,a=r.UI_DISABLED=0,t=r.UI_CLOSE=-1,o=r.COLORS={department:{command:"#526aff",security:"#CF0000",medical:"#009190",science:"#993399",engineering:"#A66300",supply:"#9F8545",service:"#80A000",centcom:"#78789B",other:"#C38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}},f=r.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"],b=r.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"SyndTeam",freq:1244,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"Response Team",freq:1345,color:"#2681a5"},{name:"Special Ops",freq:1341,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:"Procedure",freq:1339,color:"#F70285"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Medical(I)",freq:1485,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"Security(I)",freq:1475,color:"#dd3535"},{name:"AI Private",freq:1343,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"},{name:"VoxCom",freq:1220,color:"#952aa5"}],S=[{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"},{id:"hydrogen",name:"Hydrogen",label:"H\u2082",color:"white"},{id:"ab",name:"Agent B",label:"Agent B",color:"purple"}],I=r.getGasLabel=function(){function u(c,m){var l=String(c).toLowerCase(),d=S.find(function(s){return s.id===l||s.name.toLowerCase()===l});return d&&d.label||m||c}return u}(),k=r.getGasColor=function(){function u(c){var m=String(c).toLowerCase(),l=S.find(function(d){return d.id===m||d.name.toLowerCase()===m});return l&&l.color}return u}(),g=r.timeAgo=function(){function u(c,m){if(c>m)return"in the future";c=c/10,m=m/10;var l=m-c;if(l>3600){var d=Math.round(l/3600);return d+" hour"+(d===1?"":"s")+" ago"}else if(l>60){var s=Math.round(l/60);return s+" minute"+(s===1?"":"s")+" ago"}else{var i=Math.round(l);return i+" second"+(i===1?"":"s")+" ago"}return"just now"}return u}()},40944:function(A,r,n){"use strict";r.__esModule=!0,r.KitchenSink=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595);/**
+*/var d=r.TextArea=function(c){function m(u,s){var i;i=c.call(this,u,s)||this,i.textareaRef=u.innerRef||(0,e.createRef)(),i.fillerRef=(0,e.createRef)(),i.state={editing:!1};var h=u.dontUseTabForIndent,C=h===void 0?!1:h;return i.handleOnInput=function(v){var p=i.state.editing,N=i.props.onInput;p||i.setEditing(!0),N&&N(v,v.target.value)},i.handleOnChange=function(v){var p=i.state.editing,N=i.props.onChange;p&&i.setEditing(!1),N&&N(v,v.target.value)},i.handleKeyPress=function(v){var p=i.state.editing,N=i.props.onKeyPress;p||i.setEditing(!0),N&&N(v,v.target.value)},i.handleKeyDown=function(v){var p=i.state.editing,N=i.props,V=N.onChange,y=N.onInput,B=N.onEnter,L=N.onKeyDown;if(v.keyCode===f.KEY_ENTER){i.setEditing(!1),V&&V(v,v.target.value),y&&y(v,v.target.value),B&&B(v,v.target.value),i.props.selfClear&&(v.target.value="",v.target.blur());return}if(v.keyCode===f.KEY_ESCAPE){i.props.onEscape&&i.props.onEscape(v),i.setEditing(!1),i.props.selfClear?v.target.value="":(v.target.value=(0,o.toInputValue)(i.props.value),v.target.blur());return}if(p||i.setEditing(!0),L&&L(v,v.target.value),!C){var w=v.keyCode||v.which;if(w===f.KEY_TAB){v.preventDefault();var x=v.target,T=x.value,M=x.selectionStart,O=x.selectionEnd;v.target.value=T.substring(0,M)+" "+T.substring(O),v.target.selectionEnd=M+1}}},i.handleFocus=function(v){var p=i.state.editing;p||i.setEditing(!0)},i.handleBlur=function(v){var p=i.state.editing,N=i.props.onChange;p&&(i.setEditing(!1),N&&N(v,v.target.value))},i}k(m,c);var l=m.prototype;return l.componentDidMount=function(){function u(){var s=this,i=this.props.value,h=this.textareaRef.current;h&&(h.value=(0,o.toInputValue)(i)),(this.props.autoFocus||this.props.autoSelect)&&setTimeout(function(){h.focus(),s.props.autoSelect&&h.select()},1)}return u}(),l.componentDidUpdate=function(){function u(s,i){var h=s.value,C=this.props.value,v=this.textareaRef.current;v&&typeof C=="string"&&h!==C&&(v.value=(0,o.toInputValue)(C))}return u}(),l.setEditing=function(){function u(s){this.setState({editing:s})}return u}(),l.getValue=function(){function u(){return this.textareaRef.current&&this.textareaRef.current.value}return u}(),l.render=function(){function u(){var s=this.props,i=s.onChange,h=s.onKeyDown,C=s.onKeyPress,v=s.onInput,p=s.onFocus,N=s.onBlur,V=s.onEnter,y=s.value,B=s.maxLength,L=s.placeholder,w=I(s,b),x=w.className,T=w.fluid,M=I(w,S);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({className:(0,a.classes)(["TextArea",T&&"TextArea--fluid",x])},M,{children:(0,e.createVNode)(128,"textarea","TextArea__textarea",null,1,{placeholder:L,onChange:this.handleOnChange,onKeyDown:this.handleKeyDown,onKeyPress:this.handleKeyPress,onInput:this.handleOnInput,onFocus:this.handleFocus,onBlur:this.handleBlur,maxLength:B},null,this.textareaRef)})))}return u}(),m}(e.Component)},5169:function(A,r){"use strict";r.__esModule=!0,r.TimeDisplay=void 0;var n=function(t){(!t||t<0)&&(t=0);var o=Math.floor(t/60).toString(10),f=(Math.floor(t)%60).toString(10);return[o,f].map(function(b){return b.length<2?"0"+b:b}).join(":")},e=r.TimeDisplay=function(){function a(t){var o=t.totalSeconds,f=o===void 0?0:o;return n(f)}return a}()},62147:function(A,r,n){"use strict";r.__esModule=!0,r.Tooltip=void 0;var e=n(89005),a=n(95996),t;function o(k,g){k.prototype=Object.create(g.prototype),k.prototype.constructor=k,f(k,g)}function f(k,g){return f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(d,c){return d.__proto__=c,d},f(k,g)}var b={modifiers:[{name:"eventListeners",enabled:!1}]},S={width:0,height:0,top:0,right:0,bottom:0,left:0,x:0,y:0,toJSON:function(){function k(){return null}return k}()},I=r.Tooltip=function(k){function g(){return k.apply(this,arguments)||this}o(g,k);var d=g.prototype;return d.getDOMNode=function(){function c(){return(0,e.findDOMFromVNode)(this.$LI,!0)}return c}(),d.componentDidMount=function(){function c(){var m=this,l=this.getDOMNode();l&&(l.addEventListener("mouseenter",function(){var u=g.renderedTooltip;u===void 0&&(u=document.createElement("div"),u.className="Tooltip",document.body.appendChild(u),g.renderedTooltip=u),g.currentHoveredElement=l,u.style.opacity="1",m.renderPopperContent()}),l.addEventListener("mouseleave",function(){m.fadeOut()}))}return c}(),d.fadeOut=function(){function c(){g.currentHoveredElement===this.getDOMNode()&&(g.currentHoveredElement=void 0,g.renderedTooltip.style.opacity="0")}return c}(),d.renderPopperContent=function(){function c(){var m=this,l=g.renderedTooltip;l&&(0,e.render)((0,e.createVNode)(1,"span",null,this.props.content,0),l,function(){var u=g.singletonPopper;u===void 0?(u=(0,a.createPopper)(g.virtualElement,l,Object.assign({},b,{placement:m.props.position||"auto"})),g.singletonPopper=u):(u.setOptions(Object.assign({},b,{placement:m.props.position||"auto"})),u.update())},this.context)}return c}(),d.componentDidUpdate=function(){function c(){g.currentHoveredElement===this.getDOMNode()&&this.renderPopperContent()}return c}(),d.componentWillUnmount=function(){function c(){this.fadeOut()}return c}(),d.render=function(){function c(){return this.props.children}return c}(),g}(e.Component);t=I,I.renderedTooltip=void 0,I.singletonPopper=void 0,I.currentHoveredElement=void 0,I.virtualElement={getBoundingClientRect:function(){function k(){var g,d;return(g=(d=t.currentHoveredElement)==null?void 0:d.getBoundingClientRect())!=null?g:S}return k}()}},46095:function(A,r,n){"use strict";r.__esModule=!0,r.VirtualList=void 0;var e=n(89005);function a(f,b){f.prototype=Object.create(b.prototype),f.prototype.constructor=f,t(f,b)}function t(f,b){return t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(S,I){return S.__proto__=I,S},t(f,b)}var o=r.VirtualList=function(f){function b(I){var k;return k=f.call(this,I)||this,k.containerRef=void 0,k.intervalId=void 0,k.adjustExtents=function(){var g=k.props.children,d=k.state.visibleElements,c=k.containerRef.current;if(!(!g||!Array.isArray(g)||!c||d>=g.length)){var m=document.body.offsetHeight-c.getBoundingClientRect().bottom,l=Math.ceil(c.offsetHeight/d);if(m>0){var u=Math.min(g.length,d+Math.max(1,Math.ceil(m/l)));k.setState({visibleElements:u,padding:(g.length-u)*l})}}},k.containerRef=(0,e.createRef)(),k.state={visibleElements:1,padding:0},k}a(b,f);var S=b.prototype;return S.componentDidMount=function(){function I(){this.adjustExtents(),this.intervalId=setInterval(this.adjustExtents,100)}return I}(),S.componentWillUnmount=function(){function I(){clearInterval(this.intervalId)}return I}(),S.render=function(){function I(){var k=this.props.children,g=this.state,d=g.visibleElements,c=g.padding;return(0,e.createVNode)(1,"div","VirtualList",[(0,e.createVNode)(1,"div","VirtualList__Container",Array.isArray(k)?k.slice(0,d):null,0,null,null,this.containerRef),(0,e.createVNode)(1,"div","VirtualList__Padding",null,1,{style:{"padding-bottom":c+"px"}})],4)}return I}(),b}(e.Component)},36036:function(A,r,n){"use strict";r.__esModule=!0,r.Tooltip=r.TimeDisplay=r.TextArea=r.Tabs=r.Table=r.Stack=r.Slider=r.Section=r.RoundGauge=r.RestrictedInput=r.ProgressBar=r.Popper=r.Pointer=r.NumberInput=r.NoticeBox=r.NanoMap=r.Modal=r.LabeledList=r.LabeledControls=r.Knob=r.Interactive=r.Input=r.ImageButton=r.Image=r.Icon=r.Grid=r.Flex=r.Dropdown=r.DraggableControl=r.DmIcon=r.Divider=r.Dimmer=r.Countdown=r.ColorBox=r.Collapsible=r.Chart=r.ByondUi=r.Button=r.Box=r.BlockQuote=r.Blink=r.Autofocus=r.AnimatedNumber=void 0;var e=n(9474);r.AnimatedNumber=e.AnimatedNumber;var a=n(27185);r.Autofocus=a.Autofocus;var t=n(5814);r.Blink=t.Blink;var o=n(61773);r.BlockQuote=o.BlockQuote;var f=n(55937);r.Box=f.Box;var b=n(96184);r.Button=b.Button;var S=n(18982);r.ByondUi=S.ByondUi;var I=n(66820);r.Chart=I.Chart;var k=n(4796);r.Collapsible=k.Collapsible;var g=n(88894);r.ColorBox=g.ColorBox;var d=n(73379);r.Countdown=d.Countdown;var c=n(61940);r.Dimmer=c.Dimmer;var m=n(13605);r.Divider=m.Divider;var l=n(20342);r.DraggableControl=l.DraggableControl;var u=n(87099);r.Dropdown=u.Dropdown;var s=n(39473);r.Flex=s.Flex;var i=n(79646);r.Grid=i.Grid;var h=n(4454);r.Interactive=h.Interactive;var C=n(91225);r.Image=C.Image;var v=n(60218);r.DmIcon=v.DmIcon;var p=n(1331);r.Icon=p.Icon;var N=n(79825);r.ImageButton=N.ImageButton;var V=n(79652);r.Input=V.Input;var y=n(76334);r.Knob=y.Knob;var B=n(78621);r.LabeledControls=B.LabeledControls;var L=n(29319);r.LabeledList=L.LabeledList;var w=n(36077);r.Modal=w.Modal;var x=n(73280);r.NanoMap=x.NanoMap;var T=n(74733);r.NoticeBox=T.NoticeBox;var M=n(59263);r.NumberInput=M.NumberInput;var O=n(33337);r.Pointer=O.Pointer;var D=n(50186);r.Popper=D.Popper;var E=n(92704);r.ProgressBar=E.ProgressBar;var P=n(9075);r.RestrictedInput=P.RestrictedInput;var R=n(11441);r.RoundGauge=R.RoundGauge;var j=n(97079);r.Section=j.Section;var F=n(79911);r.Slider=F.Slider;var W=n(96690);r.Stack=W.Stack;var z=n(36352);r.Table=z.Table;var K=n(85138);r.Tabs=K.Tabs;var G=n(44868);r.TextArea=G.TextArea;var J=n(5169);r.TimeDisplay=J.TimeDisplay;var Q=n(62147);r.Tooltip=Q.Tooltip},76910:function(A,r){"use strict";r.__esModule=!0,r.timeAgo=r.getGasLabel=r.getGasColor=r.UI_UPDATE=r.UI_INTERACTIVE=r.UI_DISABLED=r.UI_CLOSE=r.RADIO_CHANNELS=r.CSS_COLORS=r.COLORS=void 0;var n=r.UI_INTERACTIVE=2,e=r.UI_UPDATE=1,a=r.UI_DISABLED=0,t=r.UI_CLOSE=-1,o=r.COLORS={department:{command:"#526aff",security:"#CF0000",medical:"#009190",science:"#993399",engineering:"#A66300",supply:"#9F8545",service:"#80A000",centcom:"#78789B",other:"#C38312"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"}},f=r.CSS_COLORS=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"],b=r.RADIO_CHANNELS=[{name:"Syndicate",freq:1213,color:"#a52a2a"},{name:"SyndTeam",freq:1244,color:"#a52a2a"},{name:"Red Team",freq:1215,color:"#ff4444"},{name:"Blue Team",freq:1217,color:"#3434fd"},{name:"Response Team",freq:1345,color:"#2681a5"},{name:"Special Ops",freq:1341,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:"Procedure",freq:1339,color:"#F70285"},{name:"Medical",freq:1355,color:"#57b8f0"},{name:"Medical(I)",freq:1485,color:"#57b8f0"},{name:"Engineering",freq:1357,color:"#f37746"},{name:"Security",freq:1359,color:"#dd3535"},{name:"Security(I)",freq:1475,color:"#dd3535"},{name:"AI Private",freq:1343,color:"#d65d95"},{name:"Common",freq:1459,color:"#1ecc43"},{name:"VoxCom",freq:1220,color:"#952aa5"}],S=[{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"},{id:"hydrogen",name:"Hydrogen",label:"H\u2082",color:"white"},{id:"ab",name:"Agent B",label:"Agent B",color:"purple"}],I=r.getGasLabel=function(){function d(c,m){var l=String(c).toLowerCase(),u=S.find(function(s){return s.id===l||s.name.toLowerCase()===l});return u&&u.label||m||c}return d}(),k=r.getGasColor=function(){function d(c){var m=String(c).toLowerCase(),l=S.find(function(u){return u.id===m||u.name.toLowerCase()===m});return l&&l.color}return d}(),g=r.timeAgo=function(){function d(c,m){if(c>m)return"in the future";c=c/10,m=m/10;var l=m-c;if(l>3600){var u=Math.round(l/3600);return u+" hour"+(u===1?"":"s")+" ago"}else if(l>60){var s=Math.round(l/60);return s+" minute"+(s===1?"":"s")+" ago"}else{var i=Math.round(l);return i+" second"+(i===1?"":"s")+" ago"}return"just now"}return d}()},40944:function(A,r,n){"use strict";r.__esModule=!0,r.KitchenSink=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595);/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var f=n(4085),b=function(){return f.keys().map(function(k){return f(k)})},S=r.KitchenSink=function(){function I(k,g){var u=k.panel,c=(0,a.useLocalState)(g,"kitchenSinkTheme"),m=c[0],l=(0,a.useLocalState)(g,"pageIndex",0),d=l[0],s=l[1],i=b(),h=i[d],C=u?o.Pane:o.Window;return(0,e.createComponentVNode)(2,C,{title:"Kitchen Sink",width:600,height:500,theme:m,children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{m:1,mr:0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,fitted:!0,children:(0,e.createComponentVNode)(2,t.Tabs,{vertical:!0,children:i.map(function(v,p){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{color:"transparent",selected:p===d,onClick:function(){function N(){return s(p)}return N}(),children:v.meta.title},p)})})})}),(0,e.createComponentVNode)(2,t.Flex.Item,{position:"relative",grow:1,children:(0,e.createComponentVNode)(2,C.Content,{scrollable:!0,children:h.meta.render()})})]})})}return I}()},77384:function(A,r,n){"use strict";r.__esModule=!0,r.toggleKitchenSink=r.toggleDebugLayout=r.openExternalBrowser=void 0;var e=n(85307);/**
+ */var f=n(4085),b=function(){return f.keys().map(function(k){return f(k)})},S=r.KitchenSink=function(){function I(k,g){var d=k.panel,c=(0,a.useLocalState)(g,"kitchenSinkTheme"),m=c[0],l=(0,a.useLocalState)(g,"pageIndex",0),u=l[0],s=l[1],i=b(),h=i[u],C=d?o.Pane:o.Window;return(0,e.createComponentVNode)(2,C,{title:"Kitchen Sink",width:600,height:500,theme:m,children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{m:1,mr:0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,fitted:!0,children:(0,e.createComponentVNode)(2,t.Tabs,{vertical:!0,children:i.map(function(v,p){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{color:"transparent",selected:p===u,onClick:function(){function N(){return s(p)}return N}(),children:v.meta.title},p)})})})}),(0,e.createComponentVNode)(2,t.Flex.Item,{position:"relative",grow:1,children:(0,e.createComponentVNode)(2,C.Content,{scrollable:!0,children:h.meta.render()})})]})})}return I}()},77384:function(A,r,n){"use strict";r.__esModule=!0,r.toggleKitchenSink=r.toggleDebugLayout=r.openExternalBrowser=void 0;var e=n(85307);/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
@@ -210,7 +210,7 @@
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var f=["backend/update","chat/message"],b=r.debugMiddleware=function(){function I(k){return(0,t.acquireHotKey)(e.KEY_F11),(0,t.acquireHotKey)(e.KEY_F12),a.globalEvents.on("keydown",function(g){g.code===e.KEY_F11&&k.dispatch((0,o.toggleDebugLayout)()),g.code===e.KEY_F12&&k.dispatch((0,o.toggleKitchenSink)()),g.ctrl&&g.alt&&g.code===e.KEY_BACKSPACE&&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!")})}),function(g){return function(u){return g(u)}}}return I}(),S=r.relayMiddleware=function(){function I(k){var g=n(7435),u=location.search==="?external";return u?g.subscribe(function(c){var m=c.type,l=c.payload;m==="relay"&&l.windowId===Byond.windowId&&k.dispatch(Object.assign({},l.action,{relayed:!0}))}):((0,t.acquireHotKey)(e.KEY_F10),a.globalEvents.on("keydown",function(c){c===e.KEY_F10&&k.dispatch((0,o.openExternalBrowser)())})),function(c){return function(m){var l=m.type,d=m.payload,s=m.relayed;if(l===o.openExternalBrowser.type){window.open(location.href+"?external","_blank");return}return f.includes(l)&&!s&&!u&&g.sendMessage({type:"relay",payload:{windowId:Byond.windowId,action:m}}),c(m)}}}return I}()},19147:function(A,r){"use strict";r.__esModule=!0,r.debugReducer=void 0;/**
+ */var f=["backend/update","chat/message"],b=r.debugMiddleware=function(){function I(k){return(0,t.acquireHotKey)(e.KEY_F11),(0,t.acquireHotKey)(e.KEY_F12),a.globalEvents.on("keydown",function(g){g.code===e.KEY_F11&&k.dispatch((0,o.toggleDebugLayout)()),g.code===e.KEY_F12&&k.dispatch((0,o.toggleKitchenSink)()),g.ctrl&&g.alt&&g.code===e.KEY_BACKSPACE&&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!")})}),function(g){return function(d){return g(d)}}}return I}(),S=r.relayMiddleware=function(){function I(k){var g=n(7435),d=location.search==="?external";return d?g.subscribe(function(c){var m=c.type,l=c.payload;m==="relay"&&l.windowId===Byond.windowId&&k.dispatch(Object.assign({},l.action,{relayed:!0}))}):((0,t.acquireHotKey)(e.KEY_F10),a.globalEvents.on("keydown",function(c){c===e.KEY_F10&&k.dispatch((0,o.openExternalBrowser)())})),function(c){return function(m){var l=m.type,u=m.payload,s=m.relayed;if(l===o.openExternalBrowser.type){window.open(location.href+"?external","_blank");return}return f.includes(l)&&!s&&!d&&g.sendMessage({type:"relay",payload:{windowId:Byond.windowId,action:m}}),c(m)}}}return I}()},19147:function(A,r){"use strict";r.__esModule=!0,r.debugReducer=void 0;/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
@@ -222,13 +222,13 @@
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
-*/var S=(0,t.createLogger)("drag"),I=Byond.windowId,k=!1,g=!1,u=[0,0],c,m,l,d,s,i=r.setWindowKey=function(){function R(j){I=j}return R}(),h=r.getWindowPosition=function(){function R(){return[window.screenLeft,window.screenTop]}return R}(),C=r.getWindowSize=function(){function R(){return[window.innerWidth,window.innerHeight]}return R}(),v=r.setWindowPosition=function(){function R(j){var F=(0,a.vecAdd)(j,u);return Byond.winset(Byond.windowId,{pos:F[0]+","+F[1]})}return R}(),p=r.setWindowSize=function(){function R(j){return Byond.winset(Byond.windowId,{size:j[0]+"x"+j[1]})}return R}(),N=r.getScreenPosition=function(){function R(){return[0-u[0],0-u[1]]}return R}(),V=r.getScreenSize=function(){function R(){return[window.screen.availWidth,window.screen.availHeight]}return R}(),y=function(j,F,W){W===void 0&&(W=50);for(var z=[F],K,G=0;Gue&&(K[J]=ue-F[J],G=!0)}return[G,K]},T=r.dragStartHandler=function(){function R(j){S.log("drag start"),k=!0,m=[window.screenLeft-j.screenX,window.screenTop-j.screenY],document.addEventListener("mousemove",O),document.addEventListener("mouseup",M),O(j)}return R}(),M=function R(j){S.log("drag end"),O(j),document.removeEventListener("mousemove",O),document.removeEventListener("mouseup",R),k=!1,B()},O=function(j){k&&(j.preventDefault(),v((0,a.vecAdd)([j.screenX,j.screenY],m)))},D=r.resizeStartHandler=function(){function R(j,F){return function(W){l=[j,F],S.log("resize start",l),g=!0,m=[window.screenLeft-W.screenX,window.screenTop-W.screenY],d=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",P),document.addEventListener("mouseup",E),P(W)}}return R}(),E=function R(j){S.log("resize end",s),P(j),document.removeEventListener("mousemove",P),document.removeEventListener("mouseup",R),g=!1,B()},P=function(j){g&&(j.preventDefault(),s=(0,a.vecAdd)(d,(0,a.vecMultiply)(l,(0,a.vecAdd)([j.screenX,j.screenY],(0,a.vecInverse)([window.screenLeft,window.screenTop]),m,[1,1]))),s[0]=Math.max(s[0],150),s[1]=Math.max(s[1],50),p(s))}},24826:function(A,r,n){"use strict";r.__esModule=!0,r.setupGlobalEvents=r.removeScrollableNode=r.globalEvents=r.canStealFocus=r.addScrollableNode=r.KeyEvent=void 0;var e=n(92868),a=n(92986);/**
+*/var S=(0,t.createLogger)("drag"),I=Byond.windowId,k=!1,g=!1,d=[0,0],c,m,l,u,s,i=r.setWindowKey=function(){function R(j){I=j}return R}(),h=r.getWindowPosition=function(){function R(){return[window.screenLeft,window.screenTop]}return R}(),C=r.getWindowSize=function(){function R(){return[window.innerWidth,window.innerHeight]}return R}(),v=r.setWindowPosition=function(){function R(j){var F=(0,a.vecAdd)(j,d);return Byond.winset(Byond.windowId,{pos:F[0]+","+F[1]})}return R}(),p=r.setWindowSize=function(){function R(j){return Byond.winset(Byond.windowId,{size:j[0]+"x"+j[1]})}return R}(),N=r.getScreenPosition=function(){function R(){return[0-d[0],0-d[1]]}return R}(),V=r.getScreenSize=function(){function R(){return[window.screen.availWidth,window.screen.availHeight]}return R}(),y=function(j,F,W){W===void 0&&(W=50);for(var z=[F],K,G=0;Gue&&(K[J]=ue-F[J],G=!0)}return[G,K]},T=r.dragStartHandler=function(){function R(j){S.log("drag start"),k=!0,m=[window.screenLeft-j.screenX,window.screenTop-j.screenY],document.addEventListener("mousemove",O),document.addEventListener("mouseup",M),O(j)}return R}(),M=function R(j){S.log("drag end"),O(j),document.removeEventListener("mousemove",O),document.removeEventListener("mouseup",R),k=!1,B()},O=function(j){k&&(j.preventDefault(),v((0,a.vecAdd)([j.screenX,j.screenY],m)))},D=r.resizeStartHandler=function(){function R(j,F){return function(W){l=[j,F],S.log("resize start",l),g=!0,m=[window.screenLeft-W.screenX,window.screenTop-W.screenY],u=[window.innerWidth,window.innerHeight],document.addEventListener("mousemove",P),document.addEventListener("mouseup",E),P(W)}}return R}(),E=function R(j){S.log("resize end",s),P(j),document.removeEventListener("mousemove",P),document.removeEventListener("mouseup",R),g=!1,B()},P=function(j){g&&(j.preventDefault(),s=(0,a.vecAdd)(u,(0,a.vecMultiply)(l,(0,a.vecAdd)([j.screenX,j.screenY],(0,a.vecInverse)([window.screenLeft,window.screenTop]),m,[1,1]))),s[0]=Math.max(s[0],150),s[1]=Math.max(s[1],50),p(s))}},24826:function(A,r,n){"use strict";r.__esModule=!0,r.setupGlobalEvents=r.removeScrollableNode=r.globalEvents=r.canStealFocus=r.addScrollableNode=r.KeyEvent=void 0;var e=n(92868),a=n(92986);/**
* Normalized browser focus events and BYOND-specific focus helpers.
*
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var t=r.globalEvents=new e.EventEmitter,o=!1,f=r.setupGlobalEvents=function(){function p(N){N===void 0&&(N={}),o=!!N.ignoreWindowFocus}return p}(),b,S=!0,I=function p(N,V){if(o){S=!0;return}if(b&&(clearTimeout(b),b=null),V){b=setTimeout(function(){return p(N)});return}S!==N&&(S=N,t.emit(N?"window-focus":"window-blur"),t.emit("window-focus-change",N))},k=null,g=r.canStealFocus=function(){function p(N){var V=String(N.tagName).toLowerCase();return V==="input"||V==="textarea"}return p}(),u=function(N){c(),k=N,k.addEventListener("blur",c)},c=function p(){k&&(k.removeEventListener("blur",p),k=null)},m=null,l=null,d=[],s=r.addScrollableNode=function(){function p(N){d.push(N)}return p}(),i=r.removeScrollableNode=function(){function p(N){var V=d.indexOf(N);V>=0&&d.splice(V,1)}return p}(),h=function(N){if(!(k||!S))for(var V=document.body;N&&N!==V;){if(d.includes(N)){if(N.contains(m))return;m=N,N.focus();return}N=N.parentNode}};window.addEventListener("mousemove",function(p){var N=p.target;N!==l&&(l=N,h(N))}),window.addEventListener("focusin",function(p){if(l=null,m=p.target,I(!0),g(p.target)){u(p.target);return}}),window.addEventListener("focusout",function(p){l=null,I(!1,!0)}),window.addEventListener("blur",function(p){l=null,I(!1,!0)}),window.addEventListener("beforeunload",function(p){I(!1)});var C={},v=r.KeyEvent=function(){function p(V,y,B){this.event=V,this.type=y,this.code=window.event?V.which:V.keyCode,this.ctrl=V.ctrlKey,this.shift=V.shiftKey,this.alt=V.altKey,this.repeat=!!B}var N=p.prototype;return N.hasModifierKeys=function(){function V(){return this.ctrl||this.alt||this.shift}return V}(),N.isModifierKey=function(){function V(){return this.code===a.KEY_CTRL||this.code===a.KEY_SHIFT||this.code===a.KEY_ALT}return V}(),N.isDown=function(){function V(){return this.type==="keydown"}return V}(),N.isUp=function(){function V(){return this.type==="keyup"}return V}(),N.toString=function(){function V(){return this._str?this._str:(this._str="",this.ctrl&&(this._str+="Ctrl+"),this.alt&&(this._str+="Alt+"),this.shift&&(this._str+="Shift+"),this.code>=48&&this.code<=90?this._str+=String.fromCharCode(this.code):this.code>=a.KEY_F1&&this.code<=a.KEY_F12?this._str+="F"+(this.code-111):this._str+="["+this.code+"]",this._str)}return V}(),p}();document.addEventListener("keydown",function(p){if(!g(p.target)){var N=p.keyCode,V=new v(p,"keydown",C[N]);t.emit("keydown",V),t.emit("key",V),C[N]=!0}}),document.addEventListener("keyup",function(p){if(!g(p.target)){var N=p.keyCode,V=new v(p,"keyup");t.emit("keyup",V),t.emit("key",V),C[N]=!1}})},87695:function(A,r){"use strict";r.__esModule=!0,r.focusWindow=r.focusMap=void 0;/**
+ */var t=r.globalEvents=new e.EventEmitter,o=!1,f=r.setupGlobalEvents=function(){function p(N){N===void 0&&(N={}),o=!!N.ignoreWindowFocus}return p}(),b,S=!0,I=function p(N,V){if(o){S=!0;return}if(b&&(clearTimeout(b),b=null),V){b=setTimeout(function(){return p(N)});return}S!==N&&(S=N,t.emit(N?"window-focus":"window-blur"),t.emit("window-focus-change",N))},k=null,g=r.canStealFocus=function(){function p(N){var V=String(N.tagName).toLowerCase();return V==="input"||V==="textarea"}return p}(),d=function(N){c(),k=N,k.addEventListener("blur",c)},c=function p(){k&&(k.removeEventListener("blur",p),k=null)},m=null,l=null,u=[],s=r.addScrollableNode=function(){function p(N){u.push(N)}return p}(),i=r.removeScrollableNode=function(){function p(N){var V=u.indexOf(N);V>=0&&u.splice(V,1)}return p}(),h=function(N){if(!(k||!S))for(var V=document.body;N&&N!==V;){if(u.includes(N)){if(N.contains(m))return;m=N,N.focus();return}N=N.parentNode}};window.addEventListener("mousemove",function(p){var N=p.target;N!==l&&(l=N,h(N))}),window.addEventListener("focusin",function(p){if(l=null,m=p.target,I(!0),g(p.target)){d(p.target);return}}),window.addEventListener("focusout",function(p){l=null,I(!1,!0)}),window.addEventListener("blur",function(p){l=null,I(!1,!0)}),window.addEventListener("beforeunload",function(p){I(!1)});var C={},v=r.KeyEvent=function(){function p(V,y,B){this.event=V,this.type=y,this.code=window.event?V.which:V.keyCode,this.ctrl=V.ctrlKey,this.shift=V.shiftKey,this.alt=V.altKey,this.repeat=!!B}var N=p.prototype;return N.hasModifierKeys=function(){function V(){return this.ctrl||this.alt||this.shift}return V}(),N.isModifierKey=function(){function V(){return this.code===a.KEY_CTRL||this.code===a.KEY_SHIFT||this.code===a.KEY_ALT}return V}(),N.isDown=function(){function V(){return this.type==="keydown"}return V}(),N.isUp=function(){function V(){return this.type==="keyup"}return V}(),N.toString=function(){function V(){return this._str?this._str:(this._str="",this.ctrl&&(this._str+="Ctrl+"),this.alt&&(this._str+="Alt+"),this.shift&&(this._str+="Shift+"),this.code>=48&&this.code<=90?this._str+=String.fromCharCode(this.code):this.code>=a.KEY_F1&&this.code<=a.KEY_F12?this._str+="F"+(this.code-111):this._str+="["+this.code+"]",this._str)}return V}(),p}();document.addEventListener("keydown",function(p){if(!g(p.target)){var N=p.keyCode,V=new v(p,"keydown",C[N]);t.emit("keydown",V),t.emit("key",V),C[N]=!0}}),document.addEventListener("keyup",function(p){if(!g(p.target)){var N=p.keyCode,V=new v(p,"keyup");t.emit("keyup",V),t.emit("key",V),C[N]=!1}})},87695:function(A,r){"use strict";r.__esModule=!0,r.focusWindow=r.focusMap=void 0;/**
* Various focus helpers.
*
* @file
@@ -238,32 +238,32 @@
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var a=["f","p","n","\u03BC","m"," ","k","M","G","T","P","E","Z","Y"],t=a.indexOf(" "),o=r.formatSiUnit=function(){function I(k,g,u){if(g===void 0&&(g=-t),u===void 0&&(u=""),typeof k!="number"||!Number.isFinite(k))return k;var c=Math.floor(Math.log10(k)),m=Math.floor(Math.max(g*3,c)),l=Math.floor(c/3),d=Math.floor(m/3),s=(0,e.clamp)(t+d,0,a.length),i=a[s],h=k/Math.pow(1e3,d),C=l>g?2+d*3-m:0,v=(0,e.toFixed)(h,C)+" "+i+u;return v.trim()}return I}(),f=r.formatPower=function(){function I(k,g){return g===void 0&&(g=0),o(k,g,"W")}return I}(),b=r.formatMoney=function(){function I(k,g){if(g===void 0&&(g=0),!Number.isFinite(k))return k;var u=(0,e.round)(k,g);g>0&&(u=(0,e.toFixed)(k,g)),u=String(u);var c=u.length,m=u.indexOf(".");m===-1&&(m=c);for(var l="",d=0;d0&&d=0?"+":g<0?"\u2013":"",c=Math.abs(g);return c===1/0?c="Inf":c=(0,e.toFixed)(c,2),u+c+" dB"}return I}()},56518:function(A,r,n){"use strict";r.__esModule=!0,r.setupHotKeys=r.releaseHotKey=r.releaseHeldKeys=r.acquireHotKey=void 0;var e=f(n(92986)),a=n(24826),t=n(9394);function o(s){if(typeof WeakMap!="function")return null;var i=new WeakMap,h=new WeakMap;return(o=function(v){return v?h:i})(s)}function f(s,i){if(!i&&s&&s.__esModule)return s;if(s===null||typeof s!="object"&&typeof s!="function")return{default:s};var h=o(i);if(h&&h.has(s))return h.get(s);var C={__proto__:null},v=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in s)if(p!=="default"&&{}.hasOwnProperty.call(s,p)){var N=v?Object.getOwnPropertyDescriptor(s,p):null;N&&(N.get||N.set)?Object.defineProperty(C,p,N):C[p]=s[p]}return C.default=s,h&&h.set(s,C),C}/**
+ */var a=["f","p","n","\u03BC","m"," ","k","M","G","T","P","E","Z","Y"],t=a.indexOf(" "),o=r.formatSiUnit=function(){function I(k,g,d){if(g===void 0&&(g=-t),d===void 0&&(d=""),typeof k!="number"||!Number.isFinite(k))return k;var c=Math.floor(Math.log10(k)),m=Math.floor(Math.max(g*3,c)),l=Math.floor(c/3),u=Math.floor(m/3),s=(0,e.clamp)(t+u,0,a.length),i=a[s],h=k/Math.pow(1e3,u),C=l>g?2+u*3-m:0,v=(0,e.toFixed)(h,C)+" "+i+d;return v.trim()}return I}(),f=r.formatPower=function(){function I(k,g){return g===void 0&&(g=0),o(k,g,"W")}return I}(),b=r.formatMoney=function(){function I(k,g){if(g===void 0&&(g=0),!Number.isFinite(k))return k;var d=(0,e.round)(k,g);g>0&&(d=(0,e.toFixed)(k,g)),d=String(d);var c=d.length,m=d.indexOf(".");m===-1&&(m=c);for(var l="",u=0;u0&&u=0?"+":g<0?"\u2013":"",c=Math.abs(g);return c===1/0?c="Inf":c=(0,e.toFixed)(c,2),d+c+" dB"}return I}()},56518:function(A,r,n){"use strict";r.__esModule=!0,r.setupHotKeys=r.releaseHotKey=r.releaseHeldKeys=r.acquireHotKey=void 0;var e=f(n(92986)),a=n(24826),t=n(9394);function o(s){if(typeof WeakMap!="function")return null;var i=new WeakMap,h=new WeakMap;return(o=function(v){return v?h:i})(s)}function f(s,i){if(!i&&s&&s.__esModule)return s;if(s===null||typeof s!="object"&&typeof s!="function")return{default:s};var h=o(i);if(h&&h.has(s))return h.get(s);var C={__proto__:null},v=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var p in s)if(p!=="default"&&{}.hasOwnProperty.call(s,p)){var N=v?Object.getOwnPropertyDescriptor(s,p):null;N&&(N.get||N.set)?Object.defineProperty(C,p,N):C[p]=s[p]}return C.default=s,h&&h.set(s,C),C}/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */var b=(0,t.createLogger)("hotkeys"),S={},I=[e.KEY_ESCAPE,e.KEY_ENTER,e.KEY_SPACE,e.KEY_TAB,e.KEY_CTRL,e.KEY_SHIFT,e.KEY_UP,e.KEY_DOWN,e.KEY_LEFT,e.KEY_RIGHT],k={},g=function(i){if(i===16)return"Shift";if(i===17)return"Ctrl";if(i===18)return"Alt";if(i===33)return"Northeast";if(i===34)return"Southeast";if(i===35)return"Southwest";if(i===36)return"Northwest";if(i===37)return"West";if(i===38)return"North";if(i===39)return"East";if(i===40)return"South";if(i===45)return"Insert";if(i===46)return"Delete";if(i>=48&&i<=57||i>=65&&i<=90)return String.fromCharCode(i);if(i>=96&&i<=105)return"Numpad"+(i-96);if(i>=112&&i<=123)return"F"+(i-111);if(i===188)return",";if(i===189)return"-";if(i===190)return"."},u=function(i){var h=String(i);if(h==="Ctrl+F5"||h==="Ctrl+R"){location.reload();return}if(h!=="Ctrl+F"&&!(i.event.defaultPrevented||i.isModifierKey()||I.includes(i.code))){h==="F5"&&(i.event.preventDefault(),i.event.returnValue=!1);var C=g(i.code);if(C){var v=S[C];if(v)return b.debug("macro",v),Byond.command(v);if(i.isDown()&&!k[C]){k[C]=!0;var p='Key_Down "'+C+'"';return b.debug(p),Byond.command(p)}if(i.isUp()&&k[C]){k[C]=!1;var N='Key_Up "'+C+'"';return b.debug(N),Byond.command(N)}}}},c=r.acquireHotKey=function(){function s(i){I.push(i)}return s}(),m=r.releaseHotKey=function(){function s(i){var h=I.indexOf(i);h>=0&&I.splice(h,1)}return s}(),l=r.releaseHeldKeys=function(){function s(){for(var i=0,h=Object.keys(k);i0||(0,a.fetchRetry)((0,e.resolveAsset)("icon_ref_map.json")).then(function(b){return b.json()}).then(function(b){return Byond.iconRefMap=b}).catch(function(b){return t.logger.log(b)})}return f}()},1090:function(A,r,n){"use strict";r.__esModule=!0,r.AICard=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AICard=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data;if(u.has_ai===0)return(0,e.createComponentVNode)(2,o.Window,{width:250,height:120,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Stored AI",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createVNode)(1,"h3",null,"No AI detected.",16)})})})});var c=null;return u.integrity>=75?c="green":u.integrity>=25?c="yellow":c="red",(0,e.createComponentVNode)(2,o.Window,{width:600,height:420,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:u.name,children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:c,value:u.integrity/100})})}),(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h2",null,u.flushing===1?"Wipe of AI in progress...":"",0)})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Laws",children:!!u.has_laws&&(0,e.createComponentVNode)(2,t.Box,{children:u.laws.map(function(m,l){return(0,e.createComponentVNode)(2,t.Box,{children:m},l)})})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h3",null,"No laws detected.",16)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wireless Activity",children:(0,e.createComponentVNode)(2,t.Button,{width:10,icon:u.wireless?"check":"times",content:u.wireless?"Enabled":"Disabled",color:u.wireless?"green":"red",onClick:function(){function m(){return g("wireless")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subspace Transceiver",children:(0,e.createComponentVNode)(2,t.Button,{width:10,icon:u.radio?"check":"times",content:u.radio?"Enabled":"Disabled",color:u.radio?"green":"red",onClick:function(){function m(){return g("radio")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wipe",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{width:10,icon:"trash-alt",confirmIcon:"trash-alt",disabled:u.flushing||u.integrity===0,confirmColor:"red",content:"Wipe AI",onClick:function(){function m(){return g("wipe")}return m}()})})]})})})]})})})}return b}()},39454:function(A,r,n){"use strict";r.__esModule=!0,r.AIFixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AIFixer=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data;if(u.occupant===null)return(0,e.createComponentVNode)(2,o.Window,{width:550,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Stored AI",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"robot",size:5,color:"silver"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"h3",null,"No Artificial Intelligence detected.",16)]})})})})});var c=!0;(u.stat===2||u.stat===null)&&(c=!1);var m=null;u.integrity>=75?m="green":u.integrity>=25?m="yellow":m="red";var l=!0;return u.integrity>=100&&u.stat!==2&&(l=!1),(0,e.createComponentVNode)(2,o.Window,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:u.occupant,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:m,value:u.integrity/100})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:c?"green":"red",children:c?"Functional":"Non-Functional"})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Laws",children:!!u.has_laws&&(0,e.createComponentVNode)(2,t.Box,{children:u.laws.map(function(d,s){return(0,e.createComponentVNode)(2,t.Box,{inline:!0,children:d},s)})})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h3",null,"No laws detected.",16)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wireless Activity",children:(0,e.createComponentVNode)(2,t.Button,{icon:u.wireless?"times":"check",content:u.wireless?"Disabled":"Enabled",color:u.wireless?"red":"green",onClick:function(){function d(){return g("wireless")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subspace Transceiver",children:(0,e.createComponentVNode)(2,t.Button,{icon:u.radio?"times":"check",content:u.radio?"Disabled":"Enabled",color:u.radio?"red":"green",onClick:function(){function d(){return g("radio")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Start Repairs",children:(0,e.createComponentVNode)(2,t.Button,{icon:"wrench",disabled:!l||u.active,content:!l||u.active?"Already Repaired":"Repair",onClick:function(){function d(){return g("fix")}return d}()})})]}),(0,e.createComponentVNode)(2,t.Box,{color:"green",lineHeight:2,children:u.active?"Reconstruction in progress.":""})]})})]})})})}return b}()},88422:function(A,r,n){"use strict";r.__esModule=!0,r.APC=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(195),b=r.APC=function(){function g(u,c){return(0,e.createComponentVNode)(2,o.Window,{width:510,height:435,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,k)})})}return g}(),S={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"}},I={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},k=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.locked&&!d.siliconUser,i=d.normallyLocked,h=S[d.externalPower]||S[0],C=S[d.chargingStatus]||S[0],v=d.powerChannels||[],p=I[d.malfStatus]||I[0],N=d.powerCellStatus/100;return(0,e.createFragment)([(0,e.createComponentVNode)(2,f.InterfaceLockNoticeBox),(0,e.createComponentVNode)(2,t.Section,{title:"Power Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Main Breaker",color:h.color,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:d.isOperating?"power-off":"times",content:d.isOperating?"On":"Off",selected:d.isOperating&&!s,color:d.isOperating?"":"bad",disabled:s,onClick:function(){function V(){return l("breaker")}return V}()}),children:["[ ",h.externalPowerText," ]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Cell",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:"good",value:N})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Charge Mode",color:C.color,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:d.chargeMode?"sync":"times",content:d.chargeMode?"Auto":"Off",selected:d.chargeMode,disabled:s,onClick:function(){function V(){return l("charge")}return V}()}),children:["[ ",C.chargingText," ]"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Channels",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[v.map(function(V){var y=V.topicParams;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:V.title,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,mx:2,color:V.status>=2?"good":"bad",children:V.status>=2?"On":"Off"}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Auto",selected:!s&&(V.status===1||V.status===3),disabled:s,onClick:function(){function B(){return l("channel",y.auto)}return B}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:"On",selected:!s&&V.status===2,disabled:s,onClick:function(){function B(){return l("channel",y.on)}return B}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Off",selected:!s&&V.status===0,disabled:s,onClick:function(){function B(){return l("channel",y.off)}return B}()})],4),children:[V.powerLoad," W"]},V.title)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Load",children:(0,e.createVNode)(1,"b",null,[d.totalLoad,(0,e.createTextVNode)(" W")],0)})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Misc",buttons:!!d.siliconUser&&(0,e.createFragment)([!!d.malfStatus&&(0,e.createComponentVNode)(2,t.Button,{icon:p.icon,content:p.content,color:"bad",onClick:function(){function V(){return l(p.action)}return V}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){function V(){return l("overload")}return V}()})],0),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cover Lock",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.4,icon:d.coverLocked?"lock":"unlock",content:d.coverLocked?"Engaged":"Disengaged",disabled:s,onClick:function(){function V(){return l("cover")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"lightbulb-o",content:d.emergencyLights?"Enabled":"Disabled",disabled:s,onClick:function(){function V(){return l("emergency_lighting")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,e.createComponentVNode)(2,t.Button,{mt:.4,icon:"lightbulb-o",content:d.nightshiftLights?"Enabled":"Disabled",onClick:function(){function V(){return l("toggle_nightshift")}return V}()})})]})})],4)}},99660:function(A,r,n){"use strict";r.__esModule=!0,r.ATM=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ATM=function(){function m(l,d){var s=(0,a.useBackend)(d),i=s.act,h=s.data,C=h.view_screen,v=h.authenticated_account,p=h.ticks_left_locked_down,N=h.linked_db,V;if(p>0)V=(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle"}),"Maximum number of pin attempts exceeded! Access to this ATM has been temporarily disabled."]});else if(!N)V=(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle"}),"Unable to connect to accounts database, please retry and if the issue persists contact Nanotrasen IT support."]});else if(v)switch(C){case 1:V=(0,e.createComponentVNode)(2,S);break;case 2:V=(0,e.createComponentVNode)(2,I);break;case 3:V=(0,e.createComponentVNode)(2,u);break;default:V=(0,e.createComponentVNode)(2,k)}else V=(0,e.createComponentVNode)(2,g);return(0,e.createComponentVNode)(2,o.Window,{width:550,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Section,{children:V})]})})}return m}(),b=function(l,d){var s=(0,a.useBackend)(d),i=s.act,h=s.data,C=h.machine_id,v=h.held_card_name;return(0,e.createComponentVNode)(2,t.Section,{title:"Nanotrasen Automatic Teller Machine",children:[(0,e.createComponentVNode)(2,t.Box,{children:"For all your monetary needs!"}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Card",children:(0,e.createComponentVNode)(2,t.Button,{content:v,icon:"eject",onClick:function(){function p(){return i("insert_card")}return p}()})})})]})},S=function(l,d){var s=(0,a.useBackend)(d),i=s.act,h=s.data,C=h.security_level;return(0,e.createComponentVNode)(2,t.Section,{title:"Select a new security level for this account",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:(0,e.createComponentVNode)(2,t.Button,{content:"Account Number",icon:"unlock",selected:C===0,onClick:function(){function v(){return i("change_security_level",{new_security_level:1})}return v}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:"Either the account number or card is required to access this account. EFTPOS transactions will require a card."}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:(0,e.createComponentVNode)(2,t.Button,{content:"Account Pin",icon:"unlock",selected:C===2,onClick:function(){function v(){return i("change_security_level",{new_security_level:2})}return v}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:"An account number and pin must be manually entered to access this account and process transactions."})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},I=function(l,d){var s=(0,a.useBackend)(d),i=s.act,h=s.data,C=(0,a.useLocalState)(d,"targetAccNumber",0),v=C[0],p=C[1],N=(0,a.useLocalState)(d,"fundsAmount",0),V=N[0],y=N[1],B=(0,a.useLocalState)(d,"purpose",0),L=B[0],w=B[1],x=h.money;return(0,e.createComponentVNode)(2,t.Section,{title:"Transfer Fund",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account Balance",children:["$",x]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Account Number",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"7 Digit Number",onInput:function(){function T(M,O){return p(O)}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Funds to Transfer",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function T(M,O){return y(O)}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transaction Purpose",children:(0,e.createComponentVNode)(2,t.Input,{fluid:!0,onInput:function(){function T(M,O){return w(O)}return T}()})})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.Button,{content:"Transfer",icon:"sign-out-alt",onClick:function(){function T(){return i("transfer",{target_acc_number:v,funds_amount:V,purpose:L})}return T}()}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},k=function(l,d){var s=(0,a.useBackend)(d),i=s.act,h=s.data,C=(0,a.useLocalState)(d,"fundsAmount",0),v=C[0],p=C[1],N=h.owner_name,V=h.money;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Welcome, "+N,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Logout",icon:"sign-out-alt",onClick:function(){function y(){return i("logout")}return y}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account Balance",children:["$",V]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Withdrawal Amount",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function y(B,L){return p(L)}return y}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Withdraw Funds",icon:"sign-out-alt",onClick:function(){function y(){return i("withdrawal",{funds_amount:v})}return y}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Menu",children:[(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Change account security level",icon:"lock",onClick:function(){function y(){return i("view_screen",{view_screen:1})}return y}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Make transfer",icon:"exchange-alt",onClick:function(){function y(){return i("view_screen",{view_screen:2})}return y}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"View transaction log",icon:"list",onClick:function(){function y(){return i("view_screen",{view_screen:3})}return y}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Print balance statement",icon:"print",onClick:function(){function y(){return i("balance_statement")}return y}()})})]})],4)},g=function(l,d){var s=(0,a.useBackend)(d),i=s.act,h=s.data,C=(0,a.useLocalState)(d,"accountID",null),v=C[0],p=C[1],N=(0,a.useLocalState)(d,"accountPin",null),V=N[0],y=N[1],B=h.machine_id,L=h.held_card_name;return(0,e.createComponentVNode)(2,t.Section,{title:"Insert card or enter ID and pin to login",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account ID",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"6 Digit Number",onInput:function(){function w(x,T){return p(T)}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pin",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"6 Digit Number",onInput:function(){function w(x,T){return y(T)}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Login",icon:"sign-in-alt",onClick:function(){function w(){return i("attempt_auth",{account_num:v,account_pin:V})}return w}()})})]})})},u=function(l,d){var s=(0,a.useBackend)(d),i=s.act,h=s.data,C=h.transaction_log;return(0,e.createComponentVNode)(2,t.Section,{title:"Transactions",children:[(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Timestamp"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Reason"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Value"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Terminal"})]}),C.map(function(v){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.time}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.purpose}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:v.is_deposit?"green":"red",children:["$",v.amount]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.target_name})]},v)})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},c=function(l,d){var s=(0,a.useBackend)(d),i=s.act,h=s.data;return(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"sign-out-alt",onClick:function(){function C(){return i("view_screen",{view_screen:0})}return C}()})}},86423:function(A,r,n){"use strict";r.__esModule=!0,r.AccountsUplinkTerminal=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(36352),b=n(98595),S=n(321),I=n(5485),k=r.AccountsUplinkTerminal=function(){function h(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=V.loginState,B=V.currentPage,L;if(y.logged_in)B===1?L=(0,e.createComponentVNode)(2,u):B===2?L=(0,e.createComponentVNode)(2,s):B===3&&(L=(0,e.createComponentVNode)(2,i));else return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,I.LoginScreen)})})});return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S.LoginInfo),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:L})]})})})}return h}(),g=function(C,v){var p=(0,t.useBackend)(v),N=p.data,V=(0,t.useLocalState)(v,"tabIndex",0),y=V[0],B=V[1],L=N.login_state;return(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,mb:1,children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:y===0,onClick:function(){function w(){return B(0)}return w}(),children:"User Accounts"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:y===1,onClick:function(){function w(){return B(1)}return w}(),children:"Department Accounts"})]})})})},u=function(C,v){var p=(0,t.useLocalState)(v,"tabIndex",0),N=p[0];switch(N){case 0:return(0,e.createComponentVNode)(2,c);case 1:return(0,e.createComponentVNode)(2,m);default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},c=function(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=V.accounts,B=(0,t.useLocalState)(v,"searchText",""),L=B[0],w=B[1],x=(0,t.useLocalState)(v,"sortId","owner_name"),T=x[0],M=x[1],O=(0,t.useLocalState)(v,"sortOrder",!0),D=O[0],E=O[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,d),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"AccountsUplinkTerminal__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,l,{id:"owner_name",children:"Account Holder"}),(0,e.createComponentVNode)(2,l,{id:"account_number",children:"Account Number"}),(0,e.createComponentVNode)(2,l,{id:"suspended",children:"Account Status"}),(0,e.createComponentVNode)(2,l,{id:"money",children:"Account Balance"})]}),y.filter((0,a.createSearch)(L,function(P){return P.owner_name+"|"+P.account_number+"|"+P.suspended+"|"+P.money})).sort(function(P,R){var j=D?1:-1;return P[T].localeCompare(R[T])*j}).map(function(P){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"AccountsUplinkTerminal__listRow--"+P.suspended,onClick:function(){function R(){return N("view_account_detail",{account_num:P.account_number})}return R}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",P.owner_name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:["#",P.account_number]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.suspended}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.money})]},P.account_number)})]})})})]})},m=function(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=V.department_accounts;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{className:"AccountsUplinkTerminal__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,f.TableCell,{children:"Department Name"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Number"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Status"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Balance"})]}),y.map(function(B){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"AccountsUplinkTerminal__listRow--"+B.suspended,onClick:function(){function L(){return N("view_account_detail",{account_num:B.account_number})}return L}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"wallet"})," ",B.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:["#",B.account_number]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:B.suspended}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:B.money})]},B.account_number)})]})})})})},l=function(C,v){var p=(0,t.useLocalState)(v,"sortId","name"),N=p[0],V=p[1],y=(0,t.useLocalState)(v,"sortOrder",!0),B=y[0],L=y[1],w=C.id,x=C.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:N!==w&&"transparent",width:"100%",onClick:function(){function T(){N===w?L(!B):(V(w),L(!0))}return T}(),children:[x,N===w&&(0,e.createComponentVNode)(2,o.Icon,{name:B?"sort-up":"sort-down",ml:"0.25rem;"})]})})},d=function(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=V.is_printing,B=(0,t.useLocalState)(v,"searchText",""),L=B[0],w=B[1];return(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{content:"New Account",icon:"plus",onClick:function(){function x(){return N("create_new_account")}return x}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by account holder, number, status",width:"100%",onInput:function(){function x(T,M){return w(M)}return x}()})})]})},s=function(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=V.account_number,B=V.owner_name,L=V.money,w=V.suspended,x=V.transactions,T=V.account_pin,M=V.is_department_account;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"#"+y+" / "+B,buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-left",content:"Back",onClick:function(){function O(){return N("back")}return O}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Number",children:["#",y]}),!!M&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Pin",children:T}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Pin Actions",children:(0,e.createComponentVNode)(2,o.Button,{ml:1,icon:"user-cog",content:"Set New Pin",disabled:!!M,onClick:function(){function O(){return N("set_account_pin",{account_number:y})}return O}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Holder",children:B}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Balance",children:L}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Status",color:w?"red":"green",children:[w?"Suspended":"Active",(0,e.createComponentVNode)(2,o.Button,{ml:1,content:w?"Unsuspend":"Suspend",icon:w?"unlock":"lock",onClick:function(){function O(){return N("toggle_suspension")}return O}()})]})]})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Transactions",children:(0,e.createComponentVNode)(2,o.Table,{children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Timestamp"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Reason"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Value"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Terminal"})]}),x.map(function(O){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:O.time}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:O.purpose}),(0,e.createComponentVNode)(2,o.Table.Cell,{color:O.is_deposit?"green":"red",children:["$",O.amount]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:O.target_name})]},O)})]})})})]})},i=function(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=(0,t.useLocalState)(v,"accName",""),B=y[0],L=y[1],w=(0,t.useLocalState)(v,"accDeposit",""),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Create Account",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-left",content:"Back",onClick:function(){function M(){return N("back")}return M}()}),children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Holder",children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Name Here",onChange:function(){function M(O,D){return L(D)}return M}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Initial Deposit",children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"0",onChange:function(){function M(O,D){return T(D)}return M}()})})]}),(0,e.createComponentVNode)(2,o.Button,{mt:1,fluid:!0,content:"Create Account",onClick:function(){function M(){return N("finalise_create_account",{holder_name:B,starting_funds:x})}return M}()})]})}},23001:function(A,r,n){"use strict";r.__esModule=!0,r.AdminAntagMenu=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(36352),b=n(98595),S=n(321),I=n(5485),k=function(h){switch(h){case 0:return"Antagonists";case 1:return"Objectives";case 2:return"Security";case 3:return"All High Value Items";default:return"Something went wrong with this menu, make an issue report please!"}},g=function(h){switch(h){case 0:return(0,e.createComponentVNode)(2,c);case 1:return(0,e.createComponentVNode)(2,m);case 2:return(0,e.createComponentVNode)(2,l);case 3:return(0,e.createComponentVNode)(2,d);default:return"Something went wrong with this menu, make an issue report please!"}},u=r.AdminAntagMenu=function(){function i(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.loginState,y=N.currentPage,B=(0,t.useLocalState)(C,"tabIndex",0),L=B[0],w=B[1],x=(0,t.useLocalState)(C,"searchText",""),T=x[0],M=x[1];return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.NoticeBox,{children:"This menu is a Work in Progress. Some antagonists like Nuclear Operatives and Biohazards will not show up."})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===0,onClick:function(){function O(){w(0)}return O}(),icon:"user",children:"Antagonists"},"Antagonists"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===1,onClick:function(){function O(){w(1)}return O}(),icon:"people-robbery",children:"Objectives"},"Objectives"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===2,onClick:function(){function O(){w(2)}return O}(),icon:"handcuffs",children:"Security"},"Security"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===3,onClick:function(){function O(){w(3)}return O}(),icon:"lock",children:"High Value Items"},"HighValueItems")]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:k(L),fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search...",width:"300px",onInput:function(){function O(D,E){return M(E)}return O}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"sync",onClick:function(){function O(){return p("refresh")}return O}(),children:"Refresh"})]}),children:g(L)})})]})})})}return i}(),c=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.antagonists,y=(0,t.useLocalState)(C,"searchText",""),B=y[0],L=y[1],w=(0,t.useLocalState)(C,"sortId","antag_name"),x=w[0],T=w[1],M=(0,t.useLocalState)(C,"sortOrder",!0),O=M[0],D=M[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{id:"name",children:"Mob Name"}),(0,e.createComponentVNode)(2,s,{id:"",children:"Buttons"}),(0,e.createComponentVNode)(2,s,{id:"antag_name",children:"Antagonist Type"}),(0,e.createComponentVNode)(2,s,{id:"status",children:"Status"})]}),V.filter((0,a.createSearch)(B,function(E){return E.name+"|"+E.status+"|"+E.antag_name})).sort(function(E,P){var R=O?1:-1;return E[x]===void 0||E[x]===null?R:P[x]===void 0||P[x]===null?-1*R:typeof E[x]=="number"?(E[x]-P[x])*R:E[x].localeCompare(P[x])*R}).map(function(E,P){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:E.body_destroyed?E.name:(0,e.createComponentVNode)(2,o.Button,{color:E.is_hijacker||!E.name?"red":"",tooltip:E.is_hijacker?"Hijacker":"",onClick:function(){function R(){return p("show_player_panel",{mind_uid:E.antag_mind_uid})}return R}(),children:E.name?E.name:"??? (NO NAME)"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:[(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("pm",{ckey:E.ckey})}return R}(),children:"PM"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("follow",{datum_uid:E.antag_mind_uid})}return R}(),children:"FLW"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("obs",{mind_uid:E.antag_mind_uid})}return R}(),children:"OBS"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("tp",{mind_uid:E.antag_mind_uid})}return R}(),children:"TP"})]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:E.antag_name}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:E.status?"red":"grey",children:E.status?E.status:"Alive"})})]},P)})]}):"No Antagonists!"},m=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.objectives,y=(0,t.useLocalState)(C,"searchText",""),B=y[0],L=y[1],w=(0,t.useLocalState)(C,"sortId2","target_name"),x=w[0],T=w[1],M=(0,t.useLocalState)(C,"sortOrder",!0),O=M[0],D=M[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"obj_name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"target_name",children:"Target"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"status",children:"Status"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"owner_name",children:"Owner"})]}),V.filter((0,a.createSearch)(B,function(E){return E.obj_name+"|"+E.target_name+"|"+(E.status?"success":"incompleted")+"|"+E.owner_name})).sort(function(E,P){var R=O?1:-1;return E[x]===void 0||E[x]===null||x==="target_name"&&E.no_target?R:P[x]===void 0||P[x]===null||x==="target_name"&&P.no_target?-1*R:typeof E[x]=="number"?(E[x]-P[x])*R:E[x].localeCompare(P[x])*R}).map(function(E,P){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{tooltip:E.obj_desc,onClick:function(){function R(){return p("vv",{uid:E.obj_uid})}return R}(),children:E.obj_name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:E.no_target?"":E.track.length?E.track.map(function(R,j){return(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function F(){return p("follow",{datum_uid:R})}return F}(),children:[E.target_name," ",E.track.length>1?"("+(parseInt(j,10)+1)+")":""]},j)}):"No "+E.target_name+" Found"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:E.status?"green":"grey",children:E.status?"Success":"Incomplete"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("obj_owner",{owner_uid:E.owner_uid})}return R}(),children:E.owner_name})})]},P)})]}):"No Objectives!"},l=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.security,y=(0,t.useLocalState)(C,"searchText",""),B=y[0],L=y[1],w=(0,t.useLocalState)(C,"sortId3","health"),x=w[0],T=w[1],M=(0,t.useLocalState)(C,"sortOrder",!0),O=M[0],D=M[1],E=function(j){return j.status===2?"red":j.status===1?"orange":j.broken_bone||j.internal_bleeding?"yellow":"grey"},P=function(j){return j.status===2?"Dead":j.status===1?"Unconscious":j.broken_bone&&j.internal_bleeding?"Broken Bone, IB":j.broken_bone?"Broken Bone":j.internal_bleeding?"IB":"Alive"};return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"role",children:"Role"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"status",children:"Status"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"antag",children:"Antag"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"health",children:"Health"})]}),V.filter((0,a.createSearch)(B,function(R){return R.name+"|"+R.role+"|"+P(R)+"|"+R.antag})).sort(function(R,j){var F=O?1:-1;return R[x]===void 0||R[x]===null?F:j[x]===void 0||j[x]===null?-1*F:typeof R[x]=="number"?(R[x]-j[x])*F:R[x].localeCompare(j[x])*F}).map(function(R,j){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function F(){return p("show_player_panel",{mind_uid:R.mind_uid})}return F}(),children:R.name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:R.role}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:E(R),children:P(R)})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:R.antag?(0,e.createComponentVNode)(2,o.Button,{textColor:"red",translucent:!0,onClick:function(){function F(){p("tp",{mind_uid:R.mind_uid})}return F}(),children:R.antag}):""}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.ProgressBar,{minValue:0,value:R.health/R.max_health,maxValue:1,ranges:{good:[.6,1/0],average:[0,.6],bad:[-1/0,0]},children:R.health})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:[(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function F(){p("pm",{ckey:R.ckey})}return F}(),children:"PM"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function F(){p("follow",{datum_uid:R.mind_uid})}return F}(),children:"FLW"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function F(){p("obs",{mind_uid:R.mind_uid})}return F}(),children:"OBS"})]})]},j)})]}):"No Security!"},d=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.high_value_items,y=(0,t.useLocalState)(C,"searchText",""),B=y[0],L=y[1],w=(0,t.useLocalState)(C,"sortId4","person"),x=w[0],T=w[1],M=(0,t.useLocalState)(C,"sortOrder",!0),O=M[0],D=M[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"person",children:"Carrier"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"loc",children:"Location"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"admin_z",children:"On Admin Z-level"})]}),V.filter((0,a.createSearch)(B,function(E){return E.name+"|"+E.loc})).sort(function(E,P){var R=O?1:-1;return E[x]===void 0||E[x]===null?R:P[x]===void 0||P[x]===null?-1*R:typeof E[x]=="number"?(E[x]-P[x])*R:E[x].localeCompare(P[x])*R}).map(function(E,P){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{tooltip:E.obj_desc,translucent:E.admin_z,onClick:function(){function R(){return p("vv",{uid:E.uid})}return R}(),children:E.name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:E.admin_z?"grey":"",children:E.person})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:E.admin_z?"grey":"",children:E.loc})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:"grey",children:E.admin_z?"On Admin Z-level":""})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("follow",{datum_uid:E.uid})}return R}(),children:"FLW"})})]},P)})]}):"No High Value Items!"},s=function(h,C){var v=h.id,p=h.sort_group,N=p===void 0?"sortId":p,V=h.default_sort,y=V===void 0?"antag_name":V,B=h.children,L=(0,t.useLocalState)(C,N,y),w=L[0],x=L[1],T=(0,t.useLocalState)(C,"sortOrder",!0),M=T[0],O=T[1];return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:w!==v&&"transparent",width:"100%",onClick:function(){function D(){w===v?O(!M):(x(v),O(!0))}return D}(),children:[B,w===v&&(0,e.createComponentVNode)(2,o.Icon,{name:M?"sort-up":"sort-down",ml:"0.25rem;"})]})})}},39683:function(A,r,n){"use strict";r.__esModule=!0,r.AgentCardInfo=r.AgentCardAppearances=r.AgentCard=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[{name:"Male",icon:"mars"},{name:"Female",icon:"venus"},{name:"Genderless",icon:"genderless"}],b=["A+","A-","B+","B-","AB+","AB-","O+","O-"],S="Empty",I=function(m){var l=m.label,d=m.value,s=m.onCommit,i=m.onClick,h=m.onRClick,C=m.tooltip;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:l,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button.Input,{fluid:!0,textAlign:"center",content:d||S,onCommit:s})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"file-signature",tooltip:C,tooltipPosition:"bottom-end",onClick:i,onContextMenu:h})})]})})},k=r.AgentCard=function(){function c(m,l){var d=(0,a.useLocalState)(l,"tabIndex",0),s=d[0],i=d[1],h=function(){function C(v){switch(v){case 0:return(0,e.createComponentVNode)(2,g);case 1:return(0,e.createComponentVNode)(2,u);default:return(0,e.createComponentVNode)(2,g)}}return C}();return(0,e.createComponentVNode)(2,o.Window,{width:435,height:500,theme:"syndicate",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:s===0,onClick:function(){function C(){return i(0)}return C}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"table"})," Card Info"]},"Card Info"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:s===1,onClick:function(){function C(){return i(1)}return C}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"id-card"})," Appearance"]},"Appearance")]})}),h(s)]})})})}return c}(),g=r.AgentCardInfo=function(){function c(m,l){var d=(0,a.useBackend)(l),s=d.act,i=d.data,h=i.registered_name,C=i.sex,v=i.age,p=i.assignment,N=i.job_assets,V=i.job_icon,y=i.associated_account_number,B=i.blood_type,L=i.dna_hash,w=i.fingerprint_hash,x=i.photo,T=i.ai_tracking,M=i.photo_cooldown,O=(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Autofill options."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("LMB - Autofill your own data."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("RMB - Autofill someone else data.")],4),D=(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Autofill options."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("LMB - Autofill your own data."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("RMB - Autofill with random data.")],4);return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Card Info",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,I,{label:"Name",value:h,tooltip:O,onCommit:function(){function E(P,R){return s("change_name",{name:R})}return E}(),onClick:function(){function E(){return s("change_name",{option:"Primary"})}return E}(),onRClick:function(){function E(P){P.preventDefault(),s("change_name",{option:"Secondary"})}return E}()}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sex",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:f.map(function(E){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:E.icon,content:E.name,selected:C===E.name,onClick:function(){function P(){return s("change_sex",{sex:E.name})}return P}()})},E.name)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Age",children:(0,e.createComponentVNode)(2,t.Slider,{fluid:!0,minValue:17,value:v||0,maxValue:300,onChange:function(){function E(P,R){return s("change_age",{age:R})}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rank",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:function(){function E(){return s("change_occupation")}return E}(),textAlign:"middle",children:p||"[UNSET]"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{tooltip:"Change HUD icon",tooltipPosition:"bottom-end",onClick:function(){function E(){return s("change_occupation",{option:"Primary"})}return E}(),children:[(0,e.createComponentVNode)(2,t.DmIcon,{fill:!0,icon:N,icon_state:V,verticalAlign:"bottom",my:"2px",width:"16px"})," "]})})]})}),(0,e.createComponentVNode)(2,I,{label:"Fingerprint",value:w,onCommit:function(){function E(P,R){return s("change_fingerprints",{new_fingerprints:R})}return E}(),onClick:function(){function E(){return s("change_fingerprints",{option:"Primary"})}return E}(),onRClick:function(){function E(P){P.preventDefault(),s("change_fingerprints",{option:"Secondary"})}return E}(),tooltip:D}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood Type",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[b.map(function(E){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:E,selected:B===E,onClick:function(){function P(){return s("change_blood_type",{new_type:E})}return P}()})},E)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file-signature",onClick:function(){function E(){return s("change_blood_type",{option:"Primary"})}return E}()})})]})}),(0,e.createComponentVNode)(2,I,{label:"DNA",value:L,onCommit:function(){function E(P,R){return s("change_dna_hash",{new_dna:R})}return E}(),onClick:function(){function E(){return s("change_dna_hash",{option:"Primary"})}return E}(),onRClick:function(){function E(P){P.preventDefault(),s("change_dna_hash",{option:"Secondary"})}return E}(),tooltip:D}),(0,e.createComponentVNode)(2,I,{label:"Account",value:y||0,onCommit:function(){function E(P,R){return s("change_money_account",{new_account:R})}return E}(),onClick:function(){function E(){return s("change_money_account",{option:"Primary"})}return E}(),onRClick:function(){function E(P){P.preventDefault(),s("change_money_account",{option:"Secondary"})}return E}(),tooltip:D}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Photo",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!M,tooltip:M?"":"You can't generate a new photo yet.",onClick:function(){function E(){return s("change_photo")}return E}(),children:x?"Update":S})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Card Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Card Info",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{fluid:!0,textAlign:"center",content:"Delete Card Info",confirmContent:"Are you sure?",onClick:function(){function E(){return s("delete_info")}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Access",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{fluid:!0,textAlign:"center",content:"Reset Access",confirmContent:"Are you sure?",onClick:function(){function E(){return s("clear_access")}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"AI Tracking",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",onClick:function(){function E(){return s("change_ai_tracking")}return E}(),children:T?"Untrackable":"Trackable"})})]})})})],4)}return c}(),u=r.AgentCardAppearances=function(){function c(m,l){var d=(0,a.useBackend)(l),s=d.act,i=d.data,h=(0,a.useSharedState)(l,"selectedAppearance",null),C=h[0],v=h[1],p=i.appearances,N=i.id_icon;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Card Appearance",children:p.map(function(V){return(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:N,dmIconState:V,imageSize:64,compact:!0,selected:V===C,tooltip:V,style:{opacity:V===C&&"1"||"0.5"},onClick:function(){function y(){v(V),s("change_appearance",{new_appearance:V})}return y}()},V)})})})}return c}()},56793:function(A,r,n){"use strict";r.__esModule=!0,r.AiAirlock=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},b=r.AiAirlock=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=f[c.power.main]||f[0],l=f[c.power.backup]||f[0],d=f[c.shock]||f[0];return(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Power Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Main",color:m.color,buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:"lightbulb-o",disabled:!c.power.main,content:"Disrupt",onClick:function(){function s(){return u("disrupt-main")}return s}()}),children:[c.power.main?"Online":"Offline"," ",!c.wires.main_power&&"[Wires have been cut!]"||c.power.main_timeleft>0&&"["+c.power.main_timeleft+"s]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Backup",color:l.color,buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:"lightbulb-o",disabled:!c.power.backup,content:"Disrupt",onClick:function(){function s(){return u("disrupt-backup")}return s}()}),children:[c.power.backup?"Online":"Offline"," ",!c.wires.backup_power&&"[Wires have been cut!]"||c.power.backup_timeleft>0&&"["+c.power.backup_timeleft+"s]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Electrify",color:d.color,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{mr:.5,icon:"wrench",disabled:!(c.wires.shock&&c.shock!==2),content:"Restore",onClick:function(){function s(){return u("shock-restore")}return s}()}),(0,e.createComponentVNode)(2,t.Button,{mr:.5,icon:"bolt",disabled:!c.wires.shock,content:"Temporary",onClick:function(){function s(){return u("shock-temp")}return s}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"bolt",disabled:!c.wires.shock||c.shock===0,content:"Permanent",onClick:function(){function s(){return u("shock-perm")}return s}()})],4),children:[c.shock===2?"Safe":"Electrified"," ",!c.wires.shock&&"[Wires have been cut!]"||c.shock_timeleft>0&&"["+c.shock_timeleft+"s]"||c.shock_timeleft===-1&&"[Permanent]"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Access and Door Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.id_scanner?"power-off":"times",content:c.id_scanner?"Enabled":"Disabled",selected:c.id_scanner,disabled:!c.wires.id_scanner,onClick:function(){function s(){return u("idscan-toggle")}return s}()}),children:!c.wires.id_scanner&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Access",buttons:(0,e.createComponentVNode)(2,t.Button,{width:6.5,icon:c.emergency?"power-off":"times",content:c.emergency?"Enabled":"Disabled",selected:c.emergency,onClick:function(){function s(){return u("emergency-toggle")}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:c.locked?"lock":"unlock",content:c.locked?"Lowered":"Raised",selected:c.locked,disabled:!c.wires.bolts,onClick:function(){function s(){return u("bolt-toggle")}return s}()}),children:!c.wires.bolts&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.lights?"power-off":"times",content:c.lights?"Enabled":"Disabled",selected:c.lights,disabled:!c.wires.lights,onClick:function(){function s(){return u("light-toggle")}return s}()}),children:!c.wires.lights&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.safe?"power-off":"times",content:c.safe?"Enabled":"Disabled",selected:c.safe,disabled:!c.wires.safe,onClick:function(){function s(){return u("safe-toggle")}return s}()}),children:!c.wires.safe&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.speed?"power-off":"times",content:c.speed?"Enabled":"Disabled",selected:c.speed,disabled:!c.wires.timing,onClick:function(){function s(){return u("speed-toggle")}return s}()}),children:!c.wires.timing&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:c.opened?"sign-out-alt":"sign-in-alt",content:c.opened?"Open":"Closed",selected:c.opened,disabled:c.locked||c.welded,onClick:function(){function s(){return u("open-close")}return s}()}),children:!!(c.locked||c.welded)&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("[Door is "),c.locked?"bolted":"",c.locked&&c.welded?" and ":"",c.welded?"welded":"",(0,e.createTextVNode)("!]")],0)})]})})]})})}return S}()},72475:function(A,r,n){"use strict";r.__esModule=!0,r.AirAlarm=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(195),b=r.AirAlarm=function(){function d(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.locked;return(0,e.createComponentVNode)(2,o.Window,{width:570,height:p?310:755,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.InterfaceLockNoticeBox),(0,e.createComponentVNode)(2,I),!p&&(0,e.createFragment)([(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g)],4)]})})}return d}(),S=function(s){return s===0?"green":s===1?"orange":"red"},I=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.air,N=v.mode,V=v.atmos_alarm,y=v.locked,B=v.alarmActivated,L=v.rcon,w=v.target_temp,x;return p.danger.overall===0?V===0?x="Optimal":x="Caution: Atmos alert in area":p.danger.overall===1?x="Caution":x="DANGER: Internals Required",(0,e.createComponentVNode)(2,t.Section,{title:"Air Status",children:p?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure",children:(0,e.createComponentVNode)(2,t.Box,{color:S(p.danger.pressure),children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.pressure})," kPa",!y&&(0,e.createFragment)([(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,t.Button,{content:N===3?"Deactivate Panic Siphon":"Activate Panic Siphon",selected:N===3,icon:"exclamation-triangle",onClick:function(){function T(){return C("mode",{mode:N===3?1:3})}return T}()})],4)]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Oxygen",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.oxygen/100,fractionDigits:"1",color:S(p.danger.oxygen)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nitrogen",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.nitrogen/100,fractionDigits:"1",color:S(p.danger.nitrogen)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Carbon Dioxide",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.co2/100,fractionDigits:"1",color:S(p.danger.co2)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Toxins",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.plasma/100,fractionDigits:"1",color:S(p.danger.plasma)})}),p.contents.n2o>.1&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nitrous Oxide",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.n2o/100,fractionDigits:"1",color:S(p.danger.n2o)})}),p.contents.other>.1&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Other",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.other/100,fractionDigits:"1",color:S(p.danger.other)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,t.Box,{color:S(p.danger.temperature),children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.temperature})," K / ",(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.temperature_c})," C\xA0",(0,e.createComponentVNode)(2,t.Button,{icon:"thermometer-full",content:w+" C",onClick:function(){function T(){return C("temperature")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{content:p.thermostat_state?"On":"Off",selected:p.thermostat_state,icon:"power-off",onClick:function(){function T(){return C("thermostat_state")}return T}()})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Local Status",children:(0,e.createComponentVNode)(2,t.Box,{color:S(p.danger.overall),children:[x,!y&&(0,e.createFragment)([(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,t.Button,{content:B?"Reset Alarm":"Activate Alarm",selected:B,onClick:function(){function T(){return C(B?"atmos_reset":"atmos_alarm")}return T}()})],4)]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Remote Control Settings",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Off",selected:L===1,onClick:function(){function T(){return C("set_rcon",{rcon:1})}return T}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Auto",selected:L===2,onClick:function(){function T(){return C("set_rcon",{rcon:2})}return T}()}),(0,e.createComponentVNode)(2,t.Button,{content:"On",selected:L===3,onClick:function(){function T(){return C("set_rcon",{rcon:3})}return T}()})]})]}):(0,e.createComponentVNode)(2,t.Box,{children:"Unable to acquire air sample!"})})},k=function(s,i){var h=(0,a.useLocalState)(i,"tabIndex",0),C=h[0],v=h[1];return(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===0,onClick:function(){function p(){return v(0)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"sign-out-alt"})," Vent Control"]},"Vents"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===1,onClick:function(){function p(){return v(1)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"sign-in-alt"})," Scrubber Control"]},"Scrubbers"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===2,onClick:function(){function p(){return v(2)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cog"})," Mode"]},"Mode"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===3,onClick:function(){function p(){return v(3)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"tachometer-alt"})," Thresholds"]},"Thresholds")]})},g=function(s,i){var h=(0,a.useLocalState)(i,"tabIndex",0),C=h[0],v=h[1];switch(C){case 0:return(0,e.createComponentVNode)(2,u);case 1:return(0,e.createComponentVNode)(2,c);case 2:return(0,e.createComponentVNode)(2,m);case 3:return(0,e.createComponentVNode)(2,l);default:return"WE SHOULDN'T BE HERE!"}},u=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.vents;return p.map(function(N){return(0,e.createComponentVNode)(2,t.Section,{title:N.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[(0,e.createComponentVNode)(2,t.Button,{content:N.power?"On":"Off",selected:N.power,icon:"power-off",onClick:function(){function V(){return C("command",{cmd:"power",val:!N.power,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N.direction?"Blowing":"Siphoning",icon:N.direction?"sign-out-alt":"sign-in-alt",onClick:function(){function V(){return C("command",{cmd:"direction",val:!N.direction,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure Checks",children:[(0,e.createComponentVNode)(2,t.Button,{content:"External",selected:N.checks===1,onClick:function(){function V(){return C("command",{cmd:"checks",val:1,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Internal",selected:N.checks===2,onClick:function(){function V(){return C("command",{cmd:"checks",val:2,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"External Pressure Target",children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:N.external})," kPa\xA0",(0,e.createComponentVNode)(2,t.Button,{content:"Set",icon:"cog",onClick:function(){function V(){return C("command",{cmd:"set_external_pressure",id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Reset",icon:"redo-alt",onClick:function(){function V(){return C("command",{cmd:"set_external_pressure",val:101.325,id_tag:N.id_tag})}return V}()})]})]})},N.name)})},c=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.scrubbers;return p.map(function(N){return(0,e.createComponentVNode)(2,t.Section,{title:N.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[(0,e.createComponentVNode)(2,t.Button,{content:N.power?"On":"Off",selected:N.power,icon:"power-off",onClick:function(){function V(){return C("command",{cmd:"power",val:!N.power,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N.scrubbing?"Scrubbing":"Siphoning",icon:N.scrubbing?"filter":"sign-in-alt",onClick:function(){function V(){return C("command",{cmd:"scrubbing",val:!N.scrubbing,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Range",children:(0,e.createComponentVNode)(2,t.Button,{content:N.widenet?"Extended":"Normal",selected:N.widenet,icon:"expand-arrows-alt",onClick:function(){function V(){return C("command",{cmd:"widenet",val:!N.widenet,id_tag:N.id_tag})}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Filtering",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Carbon Dioxide",selected:N.filter_co2,onClick:function(){function V(){return C("command",{cmd:"co2_scrub",val:!N.filter_co2,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Plasma",selected:N.filter_toxins,onClick:function(){function V(){return C("command",{cmd:"tox_scrub",val:!N.filter_toxins,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Nitrous Oxide",selected:N.filter_n2o,onClick:function(){function V(){return C("command",{cmd:"n2o_scrub",val:!N.filter_n2o,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Oxygen",selected:N.filter_o2,onClick:function(){function V(){return C("command",{cmd:"o2_scrub",val:!N.filter_o2,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Nitrogen",selected:N.filter_n2,onClick:function(){function V(){return C("command",{cmd:"n2_scrub",val:!N.filter_n2,id_tag:N.id_tag})}return V}()})]})]})},N.name)})},m=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.modes,N=v.presets,V=v.emagged,y=v.mode,B=v.preset;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"System Mode",children:(0,e.createComponentVNode)(2,t.Table,{children:p.map(function(L){return(!L.emagonly||L.emagonly&&!!V)&&(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",width:1,children:(0,e.createComponentVNode)(2,t.Button,{content:L.name,icon:"cog",selected:L.id===y,onClick:function(){function w(){return C("mode",{mode:L.id})}return w}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.desc})]},L.name)})})}),(0,e.createComponentVNode)(2,t.Section,{title:"System Presets",children:[(0,e.createComponentVNode)(2,t.Box,{italic:!0,children:"After making a selection, the system will automatically cycle in order to remove contaminants."}),(0,e.createComponentVNode)(2,t.Table,{mt:1,children:N.map(function(L){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",width:1,children:(0,e.createComponentVNode)(2,t.Button,{content:L.name,icon:"cog",selected:L.id===B,onClick:function(){function w(){return C("preset",{preset:L.id})}return w}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.desc})]},L.name)})})]})],4)},l=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.thresholds;return(0,e.createComponentVNode)(2,t.Section,{title:"Alarm Thresholds",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"20%",children:"Value"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"red",width:"20%",children:"Danger Min"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"orange",width:"20%",children:"Warning Min"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"orange",width:"20%",children:"Warning Max"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"red",width:"20%",children:"Danger Max"})]}),p.map(function(N){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:N.name}),N.settings.map(function(V){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:V.selected===-1?"Off":V.selected,onClick:function(){function y(){return C("command",{cmd:"set_threshold",env:V.env,var:V.val})}return y}()})},V.val)})]},N.name)})]})})}},12333:function(A,r,n){"use strict";r.__esModule=!0,r.AirlockAccessController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AirlockAccessController=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.exterior_status,m=u.interior_status,l=u.processing,d,s;return c==="open"?d=(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Lock Exterior Door",icon:"exclamation-triangle",disabled:l,onClick:function(){function i(){return g("force_ext")}return i}()}):d=(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:l,onClick:function(){function i(){return g("cycle_ext_door")}return i}()}),m==="open"?s=(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Lock Interior Door",icon:"exclamation-triangle",disabled:l,color:m==="open"?"red":l?"yellow":null,onClick:function(){function i(){return g("force_int")}return i}()}):s=(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Cycle to Interior",icon:"arrow-circle-right",disabled:l,onClick:function(){function i(){return g("cycle_int_door")}return i}()}),(0,e.createComponentVNode)(2,o.Window,{width:330,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Information",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"External Door Status",children:c==="closed"?"Locked":"Open"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Internal Door Status",children:m==="closed"?"Locked":"Open"})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:(0,e.createComponentVNode)(2,t.Box,{children:[d,s]})})]})})}return b}()},28736:function(A,r,n){"use strict";r.__esModule=!0,r.AirlockElectronics=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49148),b=1,S=2,I=4,k=8,g=r.AirlockElectronics=function(){function m(l,d){return(0,e.createComponentVNode)(2,o.Window,{width:450,height:565,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,u),(0,e.createComponentVNode)(2,c)]})})})}return m}(),u=function(l,d){var s=(0,a.useBackend)(d),i=s.act,h=s.data,C=h.unrestricted_dir;return(0,e.createComponentVNode)(2,t.Section,{title:"Access Control",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,mb:1,children:"Unrestricted Access From:"}),(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-left",content:"East",selected:C&I,onClick:function(){function v(){return i("unrestricted_access",{unres_dir:I})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-up",content:"South",selected:C&S,onClick:function(){function v(){return i("unrestricted_access",{unres_dir:S})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-right",content:"West",selected:C&k,onClick:function(){function v(){return i("unrestricted_access",{unres_dir:k})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-down",content:"North",selected:C&b,onClick:function(){function v(){return i("unrestricted_access",{unres_dir:b})}return v}()})})]})]})})},c=function(l,d){var s=(0,a.useBackend)(d),i=s.act,h=s.data,C=h.selected_accesses,v=h.one_access,p=h.regions;return(0,e.createComponentVNode)(2,f.AccessList,{usedByRcd:1,rcdButtons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:v,content:"One",onClick:function(){function N(){return i("set_one_access",{access:"one"})}return N}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!v,content:"All",onClick:function(){function N(){return i("set_one_access",{access:"all"})}return N}()})],4),accesses:p,selectedList:C,accessMod:function(){function N(V){return i("set",{access:V})}return N}(),grantAll:function(){function N(){return i("grant_all")}return N}(),denyAll:function(){function N(){return i("clear_all")}return N}(),grantDep:function(){function N(V){return i("grant_region",{region:V})}return N}(),denyDep:function(){function N(V){return i("deny_region",{region:V})}return N}()})}},47365:function(A,r,n){"use strict";r.__esModule=!0,r.AlertModal=void 0;var e=n(89005),a=n(51057),t=n(72253),o=n(92986),f=n(36036),b=n(98595),S=-1,I=1,k=r.AlertModal=function(){function c(m,l){var d=(0,t.useBackend)(l),s=d.act,i=d.data,h=i.autofocus,C=i.buttons,v=C===void 0?[]:C,p=i.large_buttons,N=i.message,V=N===void 0?"":N,y=i.timeout,B=i.title,L=(0,t.useLocalState)(l,"selected",0),w=L[0],x=L[1],T=110+(V.length>30?Math.ceil(V.length/4):0)+(V.length&&p?5:0),M=325+(v.length>2?100:0),O=function(){function D(E){w===0&&E===S?x(v.length-1):w===v.length-1&&E===I?x(0):x(w+E)}return D}();return(0,e.createComponentVNode)(2,b.Window,{title:B,height:T,width:M,children:[!!y&&(0,e.createComponentVNode)(2,a.Loader,{value:y}),(0,e.createComponentVNode)(2,b.Window.Content,{onKeyDown:function(){function D(E){var P=window.event?E.which:E.keyCode;P===o.KEY_SPACE||P===o.KEY_ENTER?s("choose",{choice:v[w]}):P===o.KEY_ESCAPE?s("cancel"):P===o.KEY_LEFT?(E.preventDefault(),O(S)):(P===o.KEY_TAB||P===o.KEY_RIGHT)&&(E.preventDefault(),O(I))}return D}(),children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,m:1,children:(0,e.createComponentVNode)(2,f.Box,{color:"label",overflow:"hidden",children:V})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:[!!h&&(0,e.createComponentVNode)(2,f.Autofocus),(0,e.createComponentVNode)(2,g,{selected:w})]})]})})})]})}return c}(),g=function(m,l){var d=(0,t.useBackend)(l),s=d.data,i=s.buttons,h=i===void 0?[]:i,C=s.large_buttons,v=s.swapped_buttons,p=m.selected;return(0,e.createComponentVNode)(2,f.Flex,{fill:!0,align:"center",direction:v?"row":"row-reverse",justify:"space-around",wrap:!0,children:h==null?void 0:h.map(function(N,V){return C&&h.length<3?(0,e.createComponentVNode)(2,f.Flex.Item,{grow:!0,children:(0,e.createComponentVNode)(2,u,{button:N,id:V.toString(),selected:p===V})},V):(0,e.createComponentVNode)(2,f.Flex.Item,{grow:C?1:0,children:(0,e.createComponentVNode)(2,u,{button:N,id:V.toString(),selected:p===V})},V)})})},u=function(m,l){var d=(0,t.useBackend)(l),s=d.act,i=d.data,h=i.large_buttons,C=m.button,v=m.selected,p=C.length>7?"100%":7;return(0,e.createComponentVNode)(2,f.Button,{mx:h?1:0,pt:h?.33:0,content:C,fluid:!!h,onClick:function(){function N(){return s("choose",{choice:C})}return N}(),selected:v,textAlign:"center",height:!!h&&2,width:!h&&p})}},71824:function(A,r,n){"use strict";r.__esModule=!0,r.AppearanceChanger=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AppearanceChanger=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.change_race,l=c.species,d=c.specimen,s=c.change_gender,i=c.gender,h=c.change_eye_color,C=c.change_skin_tone,v=c.change_skin_color,p=c.change_runechat_color,N=c.change_head_accessory_color,V=c.change_hair_color,y=c.change_secondary_hair_color,B=c.change_facial_hair_color,L=c.change_secondary_facial_hair_color,w=c.change_head_marking_color,x=c.change_body_marking_color,T=c.change_tail_marking_color,M=c.change_head_accessory,O=c.head_accessory_styles,D=c.head_accessory_style,E=c.change_hair,P=c.hair_styles,R=c.hair_style,j=c.change_hair_gradient,F=c.change_facial_hair,W=c.facial_hair_styles,z=c.facial_hair_style,K=c.change_head_markings,G=c.head_marking_styles,J=c.head_marking_style,Q=c.change_body_markings,ue=c.body_marking_styles,ie=c.body_marking_style,pe=c.change_tail_markings,te=c.tail_marking_styles,q=c.tail_marking_style,ne=c.change_body_accessory,le=c.body_accessory_styles,ee=c.body_accessory_style,re=c.change_alt_head,oe=c.alt_head_styles,fe=c.alt_head_style,me=!1;return(h||C||v||N||p||V||y||B||L||w||x||T)&&(me=!0),(0,e.createComponentVNode)(2,o.Window,{width:800,height:450,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Species",children:l.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.specimen,selected:Y.specimen===d,onClick:function(){function ve(){return u("race",{race:Y.specimen})}return ve}()},Y.specimen)})}),!!s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gender",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Male",selected:i==="male",onClick:function(){function Y(){return u("gender",{gender:"male"})}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Female",selected:i==="female",onClick:function(){function Y(){return u("gender",{gender:"female"})}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Genderless",selected:i==="plural",onClick:function(){function Y(){return u("gender",{gender:"plural"})}return Y}()})]}),!!me&&(0,e.createComponentVNode)(2,b),!!M&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Head accessory",children:O.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.headaccessorystyle,selected:Y.headaccessorystyle===D,onClick:function(){function ve(){return u("head_accessory",{head_accessory:Y.headaccessorystyle})}return ve}()},Y.headaccessorystyle)})}),!!E&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hair",children:P.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.hairstyle,selected:Y.hairstyle===R,onClick:function(){function ve(){return u("hair",{hair:Y.hairstyle})}return ve}()},Y.hairstyle)})}),!!j&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hair Gradient",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Change Style",onClick:function(){function Y(){return u("hair_gradient")}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Offset",onClick:function(){function Y(){return u("hair_gradient_offset")}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Color",onClick:function(){function Y(){return u("hair_gradient_colour")}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Alpha",onClick:function(){function Y(){return u("hair_gradient_alpha")}return Y}()})]}),!!F&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Facial hair",children:W.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.facialhairstyle,selected:Y.facialhairstyle===z,onClick:function(){function ve(){return u("facial_hair",{facial_hair:Y.facialhairstyle})}return ve}()},Y.facialhairstyle)})}),!!K&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Head markings",children:G.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.headmarkingstyle,selected:Y.headmarkingstyle===J,onClick:function(){function ve(){return u("head_marking",{head_marking:Y.headmarkingstyle})}return ve}()},Y.headmarkingstyle)})}),!!Q&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Body markings",children:ue.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.bodymarkingstyle,selected:Y.bodymarkingstyle===ie,onClick:function(){function ve(){return u("body_marking",{body_marking:Y.bodymarkingstyle})}return ve}()},Y.bodymarkingstyle)})}),!!pe&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tail markings",children:te.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.tailmarkingstyle,selected:Y.tailmarkingstyle===q,onClick:function(){function ve(){return u("tail_marking",{tail_marking:Y.tailmarkingstyle})}return ve}()},Y.tailmarkingstyle)})}),!!ne&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Body accessory",children:le.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.bodyaccessorystyle,selected:Y.bodyaccessorystyle===ee,onClick:function(){function ve(){return u("body_accessory",{body_accessory:Y.bodyaccessorystyle})}return ve}()},Y.bodyaccessorystyle)})}),!!re&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alternate head",children:oe.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.altheadstyle,selected:Y.altheadstyle===fe,onClick:function(){function ve(){return u("alt_head",{alt_head:Y.altheadstyle})}return ve}()},Y.altheadstyle)})})]})})})}return S}(),b=function(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=[{key:"change_eye_color",text:"Change eye color",action:"eye_color"},{key:"change_skin_tone",text:"Change skin tone",action:"skin_tone"},{key:"change_skin_color",text:"Change skin color",action:"skin_color"},{key:"change_runechat_color",text:"Change runechat color",action:"runechat_color"},{key:"change_head_accessory_color",text:"Change head accessory color",action:"head_accessory_color"},{key:"change_hair_color",text:"Change hair color",action:"hair_color"},{key:"change_secondary_hair_color",text:"Change secondary hair color",action:"secondary_hair_color"},{key:"change_facial_hair_color",text:"Change facial hair color",action:"facial_hair_color"},{key:"change_secondary_facial_hair_color",text:"Change secondary facial hair color",action:"secondary_facial_hair_color"},{key:"change_head_marking_color",text:"Change head marking color",action:"head_marking_color"},{key:"change_body_marking_color",text:"Change body marking color",action:"body_marking_color"},{key:"change_tail_marking_color",text:"Change tail marking color",action:"tail_marking_color"}];return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Colors",children:m.map(function(l){return!!c[l.key]&&(0,e.createComponentVNode)(2,t.Button,{content:l.text,onClick:function(){function d(){return u(l.action)}return d}()},l.key)})})}},72285:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosAlertConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosAlertConsole=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.priority||[],m=u.minor||[];return(0,e.createComponentVNode)(2,o.Window,{width:350,height:300,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Alarms",children:(0,e.createVNode)(1,"ul",null,[c.length===0&&(0,e.createVNode)(1,"li","color-good","No Priority Alerts",16),c.map(function(l){return(0,e.createVNode)(1,"li","color-bad",l,0,null,l)}),m.length===0&&(0,e.createVNode)(1,"li","color-good","No Minor Alerts",16),m.map(function(l){return(0,e.createVNode)(1,"li","color-average",l,0,null,l)})],0)})})})}return b}()},65805:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(36352),f=n(98595),b=function(c){if(c===0)return(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Good"});if(c===1)return(0,e.createComponentVNode)(2,t.Box,{color:"orange",bold:!0,children:"Warning"});if(c===2)return(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,children:"DANGER"})},S=function(c){if(c===0)return"green";if(c===1)return"orange";if(c===2)return"red"},I=r.AtmosControl=function(){function u(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=(0,a.useLocalState)(m,"tabIndex",0),h=i[0],C=i[1],v=function(){function p(N){switch(N){case 0:return(0,e.createComponentVNode)(2,k);case 1:return(0,e.createComponentVNode)(2,g);default:return"WE SHOULDN'T BE HERE!"}}return p}();return(0,e.createComponentVNode)(2,f.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:h===0,children:(0,e.createComponentVNode)(2,t.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===0,onClick:function(){function p(){return C(0)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"table"})," Data View"]},"DataView"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===1,onClick:function(){function p(){return C(1)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"map-marked-alt"})," Map View"]},"MapView")]}),v(h)]})})})}return u}(),k=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.alarms;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Access"})]}),i.map(function(h){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,o.TableCell,{children:h.name}),(0,e.createComponentVNode)(2,o.TableCell,{children:b(h.danger)}),(0,e.createComponentVNode)(2,o.TableCell,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Access",onClick:function(){function C(){return d("open_alarm",{aref:h.ref})}return C}()})})]},h.name)})]})})},g=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.alarms;return(0,e.createComponentVNode)(2,t.Box,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,e.createComponentVNode)(2,t.NanoMap,{children:i.filter(function(h){return h.z===3}).map(function(h){return(0,e.createComponentVNode)(2,t.NanoMap.MarkerIcon,{x:h.x,y:h.y,icon:"circle",tooltip:h.name,color:S(h.danger),onClick:function(){function C(){return d("open_alarm",{aref:h.ref})}return C}()},h.ref)})})})}},87816:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosFilter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosFilter=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.on,m=u.pressure,l=u.max_pressure,d=u.filter_type,s=u.filter_type_list;return(0,e.createComponentVNode)(2,o.Window,{width:380,height:140,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:c?"On":"Off",color:c?null:"red",selected:c,onClick:function(){function i(){return g("power")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:m===0,width:2.2,onClick:function(){function i(){return g("min_pressure")}return i}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:l,value:m,onDrag:function(){function i(h,C){return g("custom_pressure",{pressure:C})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:m===l,width:2.2,onClick:function(){function i(){return g("max_pressure")}return i}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Filter",children:s.map(function(i){return(0,e.createComponentVNode)(2,t.Button,{selected:i.gas_type===d,content:i.label,onClick:function(){function h(){return g("set_filter",{filter:i.gas_type})}return h}()},i.label)})})]})})})})}return b}()},57258:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosGraphMonitor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(44879),b=n(88510),S=n(35840),I=["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth","horizontalLinesCount","verticalLinesCount","gridColor","gridWidth","pointTextColor","pointTextSize","labelViewBoxSize"];function k(i,h){if(i==null)return{};var C={};for(var v in i)if({}.hasOwnProperty.call(i,v)){if(h.includes(v))continue;C[v]=i[v]}return C}function g(i,h){i.prototype=Object.create(h.prototype),i.prototype.constructor=i,u(i,h)}function u(i,h){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(C,v){return C.__proto__=v,C},u(i,h)}var c=r.AtmosGraphMonitor=function(){function i(h,C){var v=(0,a.useBackend)(C),p=v.data,N=(0,a.useLocalState)(C,"tabIndex",0),V=N[0],y=N[1],B=function(){function w(x){switch(x){case 0:return(0,e.createComponentVNode)(2,m,{data:p,info:"\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0437\u0430\u043F\u0438\u0441\u0438 T = 60 \u0441. | \u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u043C\u0435\u0436\u0434\u0443 \u0437\u0430\u043F\u0438\u0441\u044F\u043C\u0438 t = 3 \u0441.",pressureListName:"pressure_history",temperatureListName:"temperature_history"});case 1:return(0,e.createComponentVNode)(2,m,{data:p,info:"\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0437\u0430\u043F\u0438\u0441\u0438 T = 10 \u043C\u0438\u043D. | \u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u043C\u0435\u0436\u0434\u0443 \u0437\u0430\u043F\u0438\u0441\u044F\u043C\u0438 t = 30 \u0441.",pressureListName:"long_pressure_history",temperatureListName:"long_temperature_history"});default:return"WE SHOULDN'T BE HERE!"}}return w}(),L=function(){function w(x){switch(x){case 0:return 180;case 1:return 350;case 2:return 590;case 3:return 830;default:return 870}}return w}();return(0,e.createComponentVNode)(2,o.Window,{width:700,height:L(Object.keys(p.sensors).length),children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:V===0,onClick:function(){function w(){return y(0)}return w}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"area-chart"})," \u0422\u0435\u043A\u0443\u0449\u0438\u0435"]},"View"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:V===1,onClick:function(){function w(){return y(1)}return w}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"bar-chart"})," \u0418\u0441\u0442\u043E\u0440\u0438\u044F"]},"History")]}),B(V),Object.keys(p.sensors).length===0&&(0,e.createComponentVNode)(2,t.Box,{pt:2,textAlign:"center",textColor:"gray",bold:!0,fontSize:1.3,children:"\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0435 gas sensor \u0438\u043B\u0438 meter \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E multitool"})]})})})}return i}(),m=function(h){var C=h.data,v=h.info,p=h.pressureListName,N=h.temperatureListName,V=C.sensors||{},y=function(T,M){return V[T][M].slice(-1)[0]},B=function(T,M){return Math.min.apply(Math,V[T][M])},L=function(T,M){return Math.max.apply(Math,V[T][M])},w=function(T,M){return V[T][M].map(function(O,D){return[D,O]})};return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{color:"gray",children:v}),Object.keys(V).map(function(x){return(0,e.createComponentVNode)(2,t.Section,{title:x,children:(0,e.createComponentVNode)(2,t.Section,{px:2,children:[N in V[x]&&(0,e.createComponentVNode)(2,t.Box,{mb:4,children:[(0,e.createComponentVNode)(2,t.Box,{children:"\u0422\u0435\u043C\u043F\u0435\u0440\u0430\u0442\u0443\u0440\u0430: "+(0,f.toFixed)(y(x,N),0)+"\u041A (MIN: "+(0,f.toFixed)(B(x,N),0)+"\u041A; MAX: "+(0,f.toFixed)(L(x,N),0)+"\u041A)"}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,height:5,mt:1,children:(0,e.createComponentVNode)(2,s,{fillPositionedParent:!0,data:w(x,N),rangeX:[0,w(x,N).length-1],rangeY:[B(x,N)-10,L(x,N)+5],strokeColor:"rgba(219, 40, 40, 1)",fillColor:"rgba(219, 40, 40, 0.1)",horizontalLinesCount:2,verticalLinesCount:w(x,N).length-2,labelViewBoxSize:400})})]}),p in V[x]&&(0,e.createComponentVNode)(2,t.Box,{mb:-1,children:[(0,e.createComponentVNode)(2,t.Box,{children:"\u0414\u0430\u0432\u043B\u0435\u043D\u0438\u0435: "+(0,f.toFixed)(y(x,p),0)+"\u043A\u041F\u0430 (MIN: "+(0,f.toFixed)(B(x,p),0)+"\u043A\u041F\u0430; MAX: "+(0,f.toFixed)(L(x,p),0)+"\u043A\u041F\u0430)"}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,height:5,mt:1,children:(0,e.createComponentVNode)(2,s,{fillPositionedParent:!0,data:w(x,p),rangeX:[0,w(x,p).length-1],rangeY:[B(x,p)-10,L(x,p)+5],strokeColor:"rgba(40, 219, 40, 1)",fillColor:"rgba(40, 219, 40, 0.1)",horizontalLinesCount:2,verticalLinesCount:w(x,p).length-2,labelViewBoxSize:400})})]})]})},x)})]})},l=function(h,C,v,p){if(h.length===0)return[];var N=(0,b.zipWith)(Math.min).apply(void 0,h),V=(0,b.zipWith)(Math.max).apply(void 0,h);v!==void 0&&(N[0]=v[0],V[0]=v[1]),p!==void 0&&(N[1]=p[0],V[1]=p[1]);var y=function(x,T,M,O){return(x-T)/(M-T)*O},B=(0,b.zipWith)(y),L=(0,b.map)(function(w){return B(w,N,V,C)});return L(h)},d=function(h){for(var C="",v=0;v0){var le=ne[0],ee=ne[ne.length-1];ne.push([q[0]+D,ee[1]]),ne.push([q[0]+D,-D]),ne.push([-D,-D]),ne.push([-D,le[1]])}var re=d(ne);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({position:"relative"},te,{children:function(){function oe(fe){return(0,e.normalizeProps)((0,e.createVNode)(1,"div",null,(0,e.createVNode)(32,"svg",null,[Array.from({length:P}).map(function(me,Y){return(0,e.createVNode)(32,"line",null,null,1,{x1:0,y1:(Y+1)*(q[1]/(P+1)),x2:q[0],y2:(Y+1)*(q[1]/(P+1)),stroke:W,"stroke-width":K},"horizontal-line-"+Y)}),Array.from({length:j}).map(function(me,Y){return(0,e.createVNode)(32,"line",null,null,1,{x1:(Y+1)*(q[0]/(j+1)),y1:0,x2:(Y+1)*(q[0]/(j+1)),y2:q[1],stroke:W,"stroke-width":K},"vertical-line-"+Y)}),(0,e.createVNode)(32,"polyline",null,null,1,{transform:"scale(1, -1) translate(0, -"+q[1]+")",fill:x,points:re}),y.map(function(me,Y){return Y===0?null:(0,e.createVNode)(32,"line",null,null,1,{x1:ne[Y-1][0],y1:q[1]-ne[Y-1][1],x2:ne[Y][0],y2:q[1]-ne[Y][1],stroke:M,"stroke-width":D},"line-"+Y)}),y.map(function(me,Y){return(0,e.createVNode)(32,"circle",null,null,1,{cx:ne[Y][0],cy:q[1]-ne[Y][1],r:2,fill:"#ffffff",stroke:M,"stroke-width":1},"point-"+Y)}),y.map(function(me,Y){return q[0]>pe&&Y%2===1&&(0,e.createVNode)(32,"text",null,me[1]!==null?me[1].toFixed(0):"N/A",0,{x:ne[Y][0],y:q[1]-ne[Y][1],fill:J,"font-size":ue,dy:"1em",style:{"text-anchor":"end"}},"point-text-"+Y)})],0,{viewBox:"0 0 "+q[0]+" "+q[1]}),2,Object.assign({},fe),null,p.ref))}return oe}()})))}return v}(),h}(e.Component);s.defaultHooks=void 0,s.defaultHooks=S.pureComponentHooks},52977:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosMixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosMixer=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.on,l=c.pressure,d=c.max_pressure,s=c.node1_concentration,i=c.node2_concentration;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:165,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:m?"On":"Off",color:m?null:"red",selected:m,onClick:function(){function h(){return u("power")}return h}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:l===0,width:2.2,onClick:function(){function h(){return u("min_pressure")}return h}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:d,value:l,onDrag:function(){function h(C,v){return u("custom_pressure",{pressure:v})}return h}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:l===d,width:2.2,onClick:function(){function h(){return u("max_pressure")}return h}()})]}),(0,e.createComponentVNode)(2,b,{node_name:"Node 1",node_ref:s}),(0,e.createComponentVNode)(2,b,{node_name:"Node 2",node_ref:i})]})})})})}return S}(),b=function(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=I.node_name,l=I.node_ref;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:m,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",width:2.2,disabled:l===0,onClick:function(){function d(){return u("set_node",{node_name:m,concentration:(l-10)/100})}return d}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"%",width:6.1,lineHeight:1.5,stepPixelSize:10,minValue:0,maxValue:100,value:l,onChange:function(){function d(s,i){return u("set_node",{node_name:m,concentration:i/100})}return d}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",width:2.2,disabled:l===100,onClick:function(){function d(){return u("set_node",{node_name:m,concentration:(l+10)/100})}return d}()})]})}},11748:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosPump=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosPump=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.on,m=u.rate,l=u.max_rate,d=u.gas_unit,s=u.step;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:110,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:c?"On":"Off",color:c?null:"red",selected:c,onClick:function(){function i(){return g("power")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:m===0,width:2.2,onClick:function(){function i(){return g("min_rate")}return i}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:d,width:6.1,lineHeight:1.5,step:s,minValue:0,maxValue:l,value:m,onDrag:function(){function i(h,C){return g("custom_rate",{rate:C})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:m===l,width:2.2,onClick:function(){function i(){return g("max_rate")}return i}()})]})]})})})})}return b}()},69321:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosTankControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(44879),f=n(76910),b=n(98595),S=r.AtmosTankControl=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.sensors||{};return(0,e.createComponentVNode)(2,b.Window,{width:400,height:400,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:[Object.keys(l).map(function(d){return(0,e.createComponentVNode)(2,t.Section,{title:d,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[Object.keys(l[d]).indexOf("pressure")>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure",children:[l[d].pressure," kpa"]}):"",Object.keys(l[d]).indexOf("temperature")>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:[l[d].temperature," K"]}):"",["o2","n2","plasma","co2","n2o"].map(function(s){return Object.keys(l[d]).indexOf(s)>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:(0,f.getGasLabel)(s),children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:(0,f.getGasColor)(s),value:l[d][s],minValue:0,maxValue:100,children:(0,o.toFixed)(l[d][s],2)+"%"})},(0,f.getGasLabel)(s)):""})]})},d)}),m.inlet&&Object.keys(m.inlet).length>0?(0,e.createComponentVNode)(2,t.Section,{title:"Inlet Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:(m.inlet.on,"power-off"),content:m.inlet.on?"On":"Off",color:m.inlet.on?null:"red",selected:m.inlet.on,onClick:function(){function d(){return c("toggle_active",{dev:"inlet"})}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"L/s",width:6.1,lineHeight:1.5,step:1,minValue:0,maxValue:50,value:m.inlet.rate,onDrag:function(){function d(s,i){return c("set_pressure",{dev:"inlet",val:i})}return d}()})})]})}):"",m.outlet&&Object.keys(m.outlet).length>0?(0,e.createComponentVNode)(2,t.Section,{title:"Outlet Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:(m.outlet.on,"power-off"),content:m.outlet.on?"On":"Off",color:m.outlet.on?null:"red",selected:m.outlet.on,onClick:function(){function d(){return c("toggle_active",{dev:"outlet"})}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:5066,value:m.outlet.rate,onDrag:function(){function d(s,i){return c("set_pressure",{dev:"outlet",val:i})}return d}()})})]})}):""]})})}return I}()},92444:function(A,r,n){"use strict";r.__esModule=!0,r.AugmentMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=r.AugmentMenu=function(){function k(g,u){return(0,e.createComponentVNode)(2,o.Window,{width:700,height:660,theme:"malfunction",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:(0,e.createComponentVNode)(2,S,{context:u})})})})}return k}(),S=function(g){var u=g.context,c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.usable_swarms,s=l.ability_tabs,i=l.known_abilities,h=(0,a.useLocalState)(u,"selectedTab",s[0]),C=h[0],v=h[1],p=(0,a.useLocalState)(u,"searchText",""),N=p[0],V=p[1],y=function(){var M=s.find(function(D){return D.category_name===C.category_name});if(!M)return[];var O=Math.min(M.category_stage,4);return M.abilities.filter(function(D){return D.stage<=O&&(!N||D.name.toLowerCase().includes(N.toLowerCase()))}).sort(function(D,E){return["intruder","destroyer"].includes(C.category_name.toLowerCase())?D.stage-E.stage:0})},B=y(),L=s.find(function(T){return T.category_name===C.category_name}),w=["intruder","destroyer"].includes(C.category_name.toLowerCase()),x=function(M){var O=i.find(function(P){return P.ability_path===M.ability_path}),D=O?O.cost:M.cost,E=O&&O.current_level>0?O.current_level+" / "+O.max_level:"0 / "+M.max_level;return(0,e.createComponentVNode)(2,t.Stack.Item,{direction:"row",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{height:"20px",width:"35px",mb:1,textAlign:"center",content:D,disabled:D>d||O&&O.current_level===O.max_level,tooltip:"Purchase this ability?",onClick:function(){function P(){m("purchase",{ability_path:M.ability_path}),v(C)}return P}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",children:M.name})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"13px",children:M.desc||"Description not available"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Level: ",(0,e.createVNode)(1,"span",null,E,0,{style:{color:"green"}}),w&&M.stage>0&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)(" (Stage: "),M.stage,(0,e.createTextVNode)(")")],0)]}),(0,e.createComponentVNode)(2,t.Stack.Divider)]})})]},M.name)};return(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,style:{marginRight:"10px"},children:[(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Swarms: "),(0,e.createVNode)(1,"span",null,d,0,{style:{color:"green"}})],4),w&&L&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Category Stage: "),(0,e.createVNode)(1,"span",null,Math.min(L.category_stage,4),0,{style:{color:"green"}})],4)]}),(0,e.createVNode)(1,"div","Section__buttons",(0,e.createComponentVNode)(2,t.Input,{width:"200px",placeholder:"Search Abilities",onInput:function(){function T(M,O){return V(O)}return T}(),value:N}),2)],4,{style:{display:"flex",alignItems:"center"}}),children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[s.map(function(T){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C.category_name===T.category_name,onClick:function(){function M(){v(T),V("")}return M}(),children:(0,f.capitalize)(T.category_name)},T.category_name)}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C.category_name==="upgrades",onClick:function(){function T(){return v({category_name:"upgrades"})}return T}(),children:"Upgrades"},"upgrades")]}),C.category_name==="upgrades"?(0,e.createComponentVNode)(2,I,{act:m,abilityTabs:s,knownAbilities:i,usableSwarms:d}):(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:B.map(x)})]})},I=function(g){var u=g.act,c=g.abilityTabs,m=g.knownAbilities,l=g.usableSwarms,d=m.filter(function(i){return i.current_levell,tooltip:"Upgrade this ability?",onClick:function(){function v(){return u("purchase",{ability_path:h.ability_path})}return v}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",children:h.name})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"13px",children:h.upgrade_text}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Level:"," ",(0,e.createVNode)(1,"span",null,h.current_level+" / "+h.max_level,0,{style:{color:"green"}}),C&&C.stage>0&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)(" (Stage: "),C.stage,(0,e.createTextVNode)(")")],0)]}),(0,e.createComponentVNode)(2,t.Stack.Divider)]})})]},h.name)};return(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:d.map(s)})}},59179:function(A,r,n){"use strict";r.__esModule=!0,r.Autolathe=void 0;var e=n(89005),a=n(64795),t=n(88510),o=n(72253),f=n(36036),b=n(98595),S=n(25328),I=function(u,c,m,l){return u.requirements===null?!0:!(u.requirements.metal*l>c||u.requirements.glass*l>m)},k=r.Autolathe=function(){function g(u,c){var m=(0,o.useBackend)(c),l=m.act,d=m.data,s=d.total_amount,i=d.max_amount,h=d.metal_amount,C=d.glass_amount,v=d.busyname,p=d.busyamt,N=d.showhacked,V=d.buildQueue,y=d.buildQueueLen,B=d.recipes,L=d.categories,w=(0,o.useSharedState)(c,"category",0),x=w[0],T=w[1];x===0&&(x="Tools");var M=h.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),O=C.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),D=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),E=(0,o.useSharedState)(c,"search_text",""),P=E[0],R=E[1],j=(0,S.createSearch)(P,function(K){return K.name}),F="";y>0&&(F=V.map(function(K,G){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,f.Button,{fluid:!0,icon:"times",color:"transparent",content:V[G][0],onClick:function(){function J(){return l("remove_from_queue",{remove_from_queue:V.indexOf(K)+1})}return J}()},K)},G)}));var W=(0,a.flow)([(0,t.filter)(function(K){return(K.category.indexOf(x)>-1||P)&&(d.showhacked||!K.hacked)}),P&&(0,t.filter)(j),(0,t.sortBy)(function(K){return K.name.toLowerCase()})])(B),z="Build";return P?z="Results for: '"+P+"':":x&&(z="Build ("+x+")"),(0,e.createComponentVNode)(2,b.Window,{width:750,height:525,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,horizontal:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{width:"70%",children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:z,buttons:(0,e.createComponentVNode)(2,f.Dropdown,{width:"150px",options:L,selected:x,onSelected:function(){function K(G){return T(G)}return K}()}),children:[(0,e.createComponentVNode)(2,f.Input,{fluid:!0,placeholder:"Search for...",onInput:function(){function K(G,J){return R(J)}return K}(),mb:1}),W.map(function(K){return(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+K.image,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}}),(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:d.busyname===K.name&&d.busyamt===1,disabled:!I(K,d.metal_amount,d.glass_amount,1),onClick:function(){function G(){return l("make",{make:K.uid,multiplier:1})}return G}(),children:(0,S.toTitleCase)(K.name)}),K.max_multiplier>=10&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:d.busyname===K.name&&d.busyamt===10,disabled:!I(K,d.metal_amount,d.glass_amount,10),onClick:function(){function G(){return l("make",{make:K.uid,multiplier:10})}return G}(),children:"10x"}),K.max_multiplier>=25&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:d.busyname===K.name&&d.busyamt===25,disabled:!I(K,d.metal_amount,d.glass_amount,25),onClick:function(){function G(){return l("make",{make:K.uid,multiplier:25})}return G}(),children:"25x"}),K.max_multiplier>25&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:d.busyname===K.name&&d.busyamt===K.max_multiplier,disabled:!I(K,d.metal_amount,d.glass_amount,K.max_multiplier),onClick:function(){function G(){return l("make",{make:K.uid,multiplier:K.max_multiplier})}return G}(),children:[K.max_multiplier,"x"]}),K.requirements&&Object.keys(K.requirements).map(function(G){return(0,S.toTitleCase)(G)+": "+K.requirements[G]}).join(", ")||(0,e.createComponentVNode)(2,f.Box,{children:"No resources required."})]},K.ref)})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{width:"30%",children:[(0,e.createComponentVNode)(2,f.Section,{title:"Materials",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Metal",children:M}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Glass",children:O}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Total",children:D}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Storage",children:[d.fill_percent,"% Full"]})]})}),(0,e.createComponentVNode)(2,f.Section,{title:"Building",children:(0,e.createComponentVNode)(2,f.Box,{color:v?"green":"",children:v||"Nothing"})}),(0,e.createComponentVNode)(2,f.Section,{title:"Build Queue",height:23.7,children:[F,(0,e.createComponentVNode)(2,f.Button,{mt:.5,fluid:!0,icon:"times",content:"Clear All",color:"red",disabled:!d.buildQueueLen,onClick:function(){function K(){return l("clear_queue")}return K}()})]})]})]})})})}return g}()},29943:function(A,r,n){"use strict";r.__esModule=!0,r.Autolathe220=void 0;var e=n(89005),a=n(25328),t=n(88510),o=n(64795),f=n(72253),b=n(36036),S=n(98595),I="icons/obj/stacks/minerals.dmi",k=["metal","glass"],g=function(C,v,p,N){return C.requirements===null?!0:!(C.requirements.metal*N>v||C.requirements.glass*N>p)},u=function(C,v){var p=C*v/2e3;return p===0?0:p<.01&&p>0?(0,e.createComponentVNode)(2,b.Box,{fontSize:.75,children:"< 0.01"}):Math.floor(p*100)/100},c=r.Autolathe220=function(){function h(C,v){var p=(0,f.useSharedState)(v,"category","Tools"),N=p[0],V=p[1];return(0,e.createComponentVNode)(2,S.Window,{width:800,height:550,children:(0,e.createComponentVNode)(2,S.Window.Content,{children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{basis:"20%",children:(0,e.createComponentVNode)(2,m,{category:N,setCategory:V})}),(0,e.createComponentVNode)(2,b.Stack.Item,{basis:"55%",children:(0,e.createComponentVNode)(2,l,{category:N})}),(0,e.createComponentVNode)(2,b.Stack.Item,{basis:"25%",children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,d),(0,e.createComponentVNode)(2,s),(0,e.createComponentVNode)(2,i)]})})]})})})}return h}(),m=function(C,v){var p=(0,f.useBackend)(v),N=p.data,V=C.category,y=C.setCategory,B=N.categories,L=["All"].concat(B);return(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Categories",children:(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:L.map(function(w){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{mb:.5,height:"2.5em",color:"blue",selected:w===V,onClick:function(){function x(){return y(w)}return x}(),children:w},w)})})})},l=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.metal_amount,B=V.glass_amount,L=V.recipes,w=C.category,x=(0,f.useSharedState)(v,"searchText",""),T=x[0],M=x[1],O=(0,o.flow)([(0,t.filter)(function(P){return w==="All"||P.category.includes(w)||T&&(V.showhacked||!P.hacked)}),T&&(0,t.filter)((0,a.createSearch)(T,function(P){return P.name})),(0,t.sortBy)(function(P){return P.name.toLowerCase()})])(L),D=function(R,j){return(0,e.createComponentVNode)(2,b.Button,{translucent:!0,tooltip:E(R,j),tooltipPosition:"top",disabled:!g(R,y,B,j),onClick:function(){function F(){return N("make",{make:R.uid,multiplier:j})}return F}(),children:[j,"x"]})},E=function(R,j){return(0,e.createFragment)(k.map(function(F){return R.requirements[F]&&(0,e.createComponentVNode)(2,b.ImageButton,{dmIcon:I,dmIconState:"sheet-"+F,imageSize:32,children:u(R.requirements[F],j)},F)}),0)};return(0,e.createComponentVNode)(2,b.Section,{fill:!0,title:"Build ("+w+")",children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Input,{fluid:!0,placeholder:"Search for...",onInput:function(){function P(R,j){return M(j)}return P}()})}),(0,e.createComponentVNode)(2,b.Stack.Item,{mt:.5,mb:-2.33,grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:O.map(function(P){return(0,e.createComponentVNode)(2,b.ImageButton,{fluid:!0,base64:P.image,imageSize:32,textAlign:"left",color:P.category.includes("hacked")&&"brown",tooltip:E(P,1),tooltipPosition:"top",disabled:!g(P,y,B,1),buttons:P.max_multiplier>1&&(0,e.createFragment)([P.max_multiplier>=10&&D(P,10),P.max_multiplier>=25&&D(P,25),P.max_multiplier>25&&D(P,P.max_multiplier)],0),onClick:function(){function R(){return N("make",{make:P.uid,multiplier:1})}return R}(),children:P.name},P.name)})})})]})})},d=function(C,v){var p=(0,f.useBackend)(v),N=p.data,V=N.metal_amount,y=N.glass_amount,B=N.fill_percent,L=function(x,T){return(0,e.createComponentVNode)(2,b.ImageButton,{fluid:!0,imageSize:32,dmIcon:I,dmIconState:"sheet-"+x,color:"nope",buttons:(0,e.createComponentVNode)(2,b.Box,{backgroundColor:"rgba(255, 255, 255, 0.05)",width:"45px",children:u(T,1)}),children:(0,a.toTitleCase)(x)})};return(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Section,{title:"Materials",children:[L("metal",V),L("glass",y),(0,e.createComponentVNode)(2,b.ProgressBar,{minValue:0,value:B,maxValue:100,children:["Storage ",B,"% full"]})]})})},s=function(C,v){var p=(0,f.useBackend)(v),N=p.data,V=N.recipes,y=N.busyname,B=N.busyamt,L=V.find(function(w){return w.name===y});return(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Section,{title:"Building",children:(0,e.createComponentVNode)(2,b.ImageButton,{fluid:!0,color:y&&"green",base64:L==null?void 0:L.image,imageSize:32,children:y?B>1?y+" x"+B:y:"Nothing"})})})},i=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.recipes,B=V.buildQueue,L=V.buildQueueLen,w;return L>0&&(w=B.map(function(x,T){var M=y.find(function(O){return O.name===B[T][0]});return(0,e.createComponentVNode)(2,b.ImageButton,{fluid:!0,base64:M.image,imageSize:32,buttons:(0,e.createComponentVNode)(2,b.Button,{translucent:!0,width:"32px",icon:"times",iconColor:"red",onClick:function(){function O(){return N("remove_from_queue",{remove_from_queue:B.indexOf(x)+1})}return O}()},x),children:[M.name," ",Number(B[T][1])>1&&"x"+B[T][1]]},T)})),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Queue "+(L>0?L:""),children:w})}),(0,e.createComponentVNode)(2,b.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,b.Section,{fitted:!0,p:.75,children:(0,e.createComponentVNode)(2,b.Button,{fluid:!0,translucent:!L,color:"red",icon:"trash-can",disabled:!L,onClick:function(){function x(){return N("clear_queue")}return x}(),children:"Clear Queue"})})})]})})}},5147:function(A,r,n){"use strict";r.__esModule=!0,r.BioChipPad=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.BioChipPad=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.implant,m=u.contains_case,l=u.gps,d=u.tag,s=(0,a.useLocalState)(I,"newTag",d),i=s[0],h=s[1];return(0,e.createComponentVNode)(2,o.Window,{width:410,height:325,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Bio-chip Mini-Computer",buttons:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject Case",icon:"eject",disabled:!m,onClick:function(){function C(){return g("eject_case")}return C}()})}),children:c&&m?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{bold:!0,mb:2,children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+c.image,ml:0,mr:2,style:{"vertical-align":"middle",width:"32px"}}),c.name]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Life",children:c.life}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Notes",children:c.notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Function",children:c.function}),!!l&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tag",children:[(0,e.createComponentVNode)(2,t.Input,{width:"5.5rem",value:d,onEnter:function(){function C(){return g("tag",{newtag:i})}return C}(),onInput:function(){function C(v,p){return h(p)}return C}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:d===i,width:"20px",mb:"0",ml:"0.25rem",onClick:function(){function C(){return g("tag",{newtag:i})}return C}(),children:(0,e.createComponentVNode)(2,t.Icon,{name:"pen"})})]})]})],4):m?(0,e.createComponentVNode)(2,t.Box,{children:"This bio-chip case has no implant!"}):(0,e.createComponentVNode)(2,t.Box,{children:"Please insert a bio-chip casing!"})})})})}return b}()},64273:function(A,r,n){"use strict";r.__esModule=!0,r.Biogenerator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(62411),b=r.Biogenerator=function(){function u(c,m){var l=(0,a.useBackend)(m),d=l.data,s=l.config,i=d.container,h=d.processing,C=s.title;return(0,e.createComponentVNode)(2,o.Window,{width:390,height:595,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Operating,{operating:h,name:C}),(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k),i?(0,e.createComponentVNode)(2,g):(0,e.createComponentVNode)(2,S)]})})})}return u}(),S=function(c,m){return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"silver",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"flask",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),"The biogenerator is missing a container."]})})})},I=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.biomass,h=s.container,C=s.container_curr_reagents,v=s.container_max_reagents;return(0,e.createComponentVNode)(2,t.Section,{title:"Storage",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"20px",color:"silver",children:"Biomass:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"5px",children:i}),(0,e.createComponentVNode)(2,t.Icon,{name:"leaf",size:1.2,color:"#3d8c40"})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"21px",mt:"8px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"10px",color:"silver",children:"Container:"}),h?(0,e.createComponentVNode)(2,t.ProgressBar,{value:C,maxValue:v,children:(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:C+" / "+v+" units"})}):(0,e.createComponentVNode)(2,t.Stack.Item,{children:"None"})]})]})},k=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.has_plants,h=s.container;return(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"power-off",disabled:!i,tooltip:i?"":"There are no plants in the biogenerator.",tooltipPosition:"top-start",content:"Activate",onClick:function(){function C(){return d("activate")}return C}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"flask",disabled:!h,tooltip:h?"":"The biogenerator does not have a container.",tooltipPosition:"top",content:"Detach Container",onClick:function(){function C(){return d("detach_container")}return C}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",disabled:!i,tooltip:i?"":"There are no stored plants to eject.",tooltipPosition:"top-end",content:"Eject Plants",onClick:function(){function C(){return d("eject_plants")}return C}()})})]})})},g=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.biomass,h=s.product_list,C=(0,a.useSharedState)(m,"vendAmount",1),v=C[0],p=C[1],N=Object.entries(h).map(function(V,y){var B=Object.entries(V[1]).map(function(L){return L[1]});return(0,e.createComponentVNode)(2,t.Collapsible,{title:V[0],open:!0,children:B.map(function(L){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",ml:"2px",children:L.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"right",width:"20%",children:[L.cost*v,(0,e.createComponentVNode)(2,t.Icon,{ml:"5px",name:"leaf",size:1.2,color:"#3d8c40"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"right",width:"40%",children:(0,e.createComponentVNode)(2,t.Button,{content:"Vend",disabled:i.25?750+400*Math.random():290+150*Math.random(),time:60+150*Math.random(),children:(0,e.createComponentVNode)(2,t.Stack,{mb:"30px",fontsize:"256px",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,color:"red",fontsize:"256px",textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"skull",size:14,mb:"64px"}),(0,e.createVNode)(1,"br"),"E$#OR:& U#KN!WN IN%ERF#R_NCE"]})})})})}return k}(),S=r.BluespaceTap=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.product||[],s=l.desiredMiningPower,i=l.miningPower,h=l.points,C=l.totalPoints,v=l.powerUse,p=l.availablePower,N=l.emagged,V=l.autoShutown,y=l.stabilizers,B=l.stabilizerPower,L=l.stabilizerPriority,w=s>i&&"bad"||"good";return(0,e.createComponentVNode)(2,o.Window,{width:650,height:450,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,t.Collapsible,{title:"Input Management",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Input",children:[(0,e.createComponentVNode)(2,t.Button,{icon:V&&!N?"toggle-on":"toggle-off",content:"Auto shutdown",color:V&&!N?"green":"red",disabled:!!N,tooltip:"Turn auto shutdown on or off",tooltipPosition:"top",onClick:function(){function x(){return m("auto_shutdown")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:y&&!N?"toggle-on":"toggle-off",content:"Stabilizers",color:y&&!N?"green":"red",disabled:!!N,tooltip:"Turn stabilizers on or off",tooltipPosition:"top",onClick:function(){function x(){return m("stabilizers")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:L&&!N?"toggle-on":"toggle-off",content:"Stabilizer priority",color:L&&!N?"green":"red",disabled:!!N,tooltip:"On: Mining power will not exceed what can be stabilized",tooltipPosition:"top",onClick:function(){function x(){return m("stabilizer_priority")}return x}()}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Desired Mining Power",children:(0,f.formatPower)(s)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{labelStyle:{"vertical-align":"top"},label:"Set Desired Mining Power",children:(0,e.createComponentVNode)(2,t.Stack,{width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"step-backward",disabled:s===0||N,tooltip:"Set to 0",tooltipPosition:"bottom",onClick:function(){function x(){return m("set",{set_power:0})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",tooltip:"Decrease by 10 MW",tooltipPosition:"bottom",disabled:s===0||N,onClick:function(){function x(){return m("set",{set_power:s-1e7})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:s===0||N,tooltip:"Decrease by 1 MW",tooltipPosition:"bottom",onClick:function(){function x(){return m("set",{set_power:s-1e6})}return x}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mx:1,children:(0,e.createComponentVNode)(2,t.NumberInput,{disabled:N,minvalue:0,value:s,maxvalue:1/0,step:1,onChange:function(){function x(T,M){return m("set",{set_power:M})}return x}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:N,tooltip:"Increase by one MW",tooltipPosition:"bottom",onClick:function(){function x(){return m("set",{set_power:s+1e6})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:N,tooltip:"Increase by 10MW",tooltipPosition:"bottom",onClick:function(){function x(){return m("set",{set_power:s+1e7})}return x}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Power Use",children:(0,f.formatPower)(v)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mining Power Use",children:(0,f.formatPower)(i)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stabilizer Power Use",children:(0,f.formatPower)(B)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Surplus Power",children:(0,f.formatPower)(p)})]})]})}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Output",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available Points",children:h}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Points",children:C})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{align:"end",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:d.map(function(x){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:x.name,children:(0,e.createComponentVNode)(2,t.Button,{disabled:x.price>=h,onClick:function(){function T(){return m("vend",{target:x.key})}return T}(),content:x.price})},x.key)})})})})]})})]})})})}return k}(),I=r.Alerts=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.product||[],s=l.miningPower,i=l.stabilizerPower,h=l.emagged,C=l.safeLevels,v=l.autoShutown,p=l.stabilizers,N=l.overhead;return(0,e.createFragment)([!v&&!h&&(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Auto shutdown disabled"}),h?(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"All safeties disabled"}):s<=15e6?"":p?s>i+15e6?(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Stabilizers overwhelmed, Instability likely"}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"High Power, engaging stabilizers"}):(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Stabilizers disabled, Instability likely"})],0)}return k}()},33758:function(A,r,n){"use strict";r.__esModule=!0,r.BodyScanner=void 0;var e=n(89005),a=n(44879),t=n(25328),o=n(72253),f=n(36036),b=n(98595),S=[["good","Alive"],["average","Critical"],["bad","DEAD"]],I=[["hasVirus","bad","Viral pathogen detected in blood stream."],["blind","average","Cataracts detected."],["colourblind","average","Photoreceptor abnormalities detected."],["nearsighted","average","Retinal misalignment detected."]],k=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radiation","radLoss"],["Brute","bruteLoss"],["Cellular","cloneLoss"],["Burn","fireLoss"],["Inebriation","drunkenness"]],g={average:[.25,.5],bad:[.5,1/0]},u=function(y,B){for(var L=[],w=0;w0?y.filter(function(B){return!!B}).reduce(function(B,L){return(0,e.createFragment)([B,(0,e.createComponentVNode)(2,f.Box,{children:L},L)],0)},null):null},m=function(y){if(y>100){if(y<300)return"mild infection";if(y<400)return"mild infection+";if(y<500)return"mild infection++";if(y<700)return"acute infection";if(y<800)return"acute infection+";if(y<900)return"acute infection++";if(y>=900)return"septic"}return""},l=r.BodyScanner=function(){function V(y,B){var L=(0,o.useBackend)(B),w=L.data,x=w.occupied,T=w.occupant,M=T===void 0?{}:T,O=x?(0,e.createComponentVNode)(2,d,{occupant:M}):(0,e.createComponentVNode)(2,N);return(0,e.createComponentVNode)(2,b.Window,{width:700,height:600,title:"Body Scanner",children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:O})})}return V}(),d=function(y){var B=y.occupant;return(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,s,{occupant:B}),(0,e.createComponentVNode)(2,i,{occupant:B}),(0,e.createComponentVNode)(2,h,{occupant:B}),(0,e.createComponentVNode)(2,v,{organs:B.extOrgan}),(0,e.createComponentVNode)(2,p,{organs:B.intOrgan})]})},s=function(y,B){var L=(0,o.useBackend)(B),w=L.act,x=L.data,T=x.occupant;return(0,e.createComponentVNode)(2,f.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Button,{icon:"print",onClick:function(){function M(){return w("print_p")}return M}(),children:"Print Report"}),(0,e.createComponentVNode)(2,f.Button,{icon:"user-slash",onClick:function(){function M(){return w("ejectify")}return M}(),children:"Eject"})],4),children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Name",children:T.name}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:T.maxHealth,value:T.health/T.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Status",color:S[T.stat][0],children:S[T.stat][1]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,f.AnimatedNumber,{value:(0,a.round)(T.bodyTempC)}),"\xB0C,\xA0",(0,e.createComponentVNode)(2,f.AnimatedNumber,{value:(0,a.round)(T.bodyTempF)}),"\xB0F"]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Implants",children:T.implant_len?(0,e.createComponentVNode)(2,f.Box,{children:T.implant.map(function(M){return M.name}).join(", ")}):(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"None"})})]})})},i=function(y){var B=y.occupant;return B.hasBorer||B.blind||B.colourblind||B.nearsighted||B.hasVirus?(0,e.createComponentVNode)(2,f.Section,{title:"Abnormalities",children:I.map(function(L,w){if(B[L[0]])return(0,e.createComponentVNode)(2,f.Box,{color:L[1],bold:L[1]==="bad",children:L[2]},L[2])})}):(0,e.createComponentVNode)(2,f.Section,{title:"Abnormalities",children:(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No abnormalities found."})})},h=function(y){var B=y.occupant;return(0,e.createComponentVNode)(2,f.Section,{title:"Damage",children:(0,e.createComponentVNode)(2,f.Table,{children:u(k,function(L,w,x){return(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Table.Row,{color:"label",children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:[L[0],":"]}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:!!w&&w[0]+":"})]}),(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,C,{value:B[L[1]],marginBottom:x100)&&"average"||!!B.status.robotic&&"label",width:"33%",children:(0,t.capitalize)(B.name)}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,f.ProgressBar,{m:-.5,min:"0",max:B.maxHealth,mt:L>0&&"0.5rem",value:B.totalLoss/B.maxHealth,ranges:g,children:(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Tooltip,{content:"Total damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"heartbeat",mr:.5}),(0,a.round)(B.totalLoss)]})}),!!B.bruteLoss&&(0,e.createComponentVNode)(2,f.Tooltip,{content:"Brute damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:[(0,e.createComponentVNode)(2,f.Icon,{name:"bone",mr:.5}),(0,a.round)(B.bruteLoss)]})}),!!B.fireLoss&&(0,e.createComponentVNode)(2,f.Tooltip,{content:"Burn damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"fire",mr:.5}),(0,a.round)(B.fireLoss)]})})]})})}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:L>0&&"calc(0.5rem + 2px)",children:[(0,e.createComponentVNode)(2,f.Box,{color:"average",inline:!0,children:c([!!B.internalBleeding&&"Internal bleeding",!!B.burnWound&&"Critical tissue burns",!!B.lungRuptured&&"Ruptured lung",!!B.status.broken&&B.status.broken,m(B.germ_level),!!B.open&&"Open incision"])}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,children:[c([!!B.status.splinted&&(0,e.createComponentVNode)(2,f.Box,{color:"good",children:"Splinted"}),!!B.status.robotic&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Robotic"}),!!B.status.dead&&(0,e.createComponentVNode)(2,f.Box,{color:"bad",bold:!0,children:"DEAD"})]),c(B.shrapnel.map(function(w){return w.known?w.name:"Unknown object"}))]})]})]},L)})]})})},p=function(y){return y.organs.length===0?(0,e.createComponentVNode)(2,f.Section,{title:"Internal Organs",children:(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"N/A"})}):(0,e.createComponentVNode)(2,f.Section,{title:"Internal Organs",children:(0,e.createComponentVNode)(2,f.Table,{children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:"Damage"}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",children:"Injuries"})]}),y.organs.map(function(B,L){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{color:!!B.dead&&"bad"||B.germ_level>100&&"average"||B.robotic>0&&"label",width:"33%",children:(0,t.capitalize)(B.name)}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:B.maxHealth,value:B.damage/B.maxHealth,mt:L>0&&"0.5rem",ranges:g,children:(0,a.round)(B.damage)})}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:L>0&&"calc(0.5rem + 2px)",children:[(0,e.createComponentVNode)(2,f.Box,{color:"average",inline:!0,children:c([m(B.germ_level)])}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,children:c([B.robotic===1&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Robotic"}),B.robotic===2&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Assisted"}),!!B.dead&&(0,e.createComponentVNode)(2,f.Box,{color:"bad",bold:!0,children:"DEAD"})])})]})]},L)})]})})},N=function(){return(0,e.createComponentVNode)(2,f.Section,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}},67963:function(A,r,n){"use strict";r.__esModule=!0,r.BookBinder=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=n(39473),S=r.BookBinder=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.selectedbook,d=m.book_categories,s=[];return d.map(function(i){return s[i.description]=i.category_id}),(0,e.createComponentVNode)(2,o.Window,{width:600,height:400,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Book Binder",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"print",width:"auto",content:"Print Book",onClick:function(){function i(){return c("print_book")}return i}()}),children:[(0,e.createComponentVNode)(2,t.Box,{ml:10,fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:3,mr:"1rem"}),"Book Binder"]}),(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:"auto",content:l.title,onClick:function(){function i(){return(0,f.modalOpen)(g,"edit_selected_title")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:"auto",content:l.author,onClick:function(){function i(){return(0,f.modalOpen)(g,"edit_selected_author")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"190px",options:d.map(function(i){return i.description}),onSelected:function(){function i(h){return c("toggle_binder_category",{category_id:s[h]})}return i}()})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pen",width:"auto",content:"Edit Summary",onClick:function(){function i(){return(0,f.modalOpen)(g,"edit_selected_summary")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:l.summary})]}),(0,e.createVNode)(1,"br"),d.filter(function(i){return l.categories.includes(i.category_id)}).map(function(i){return(0,e.createComponentVNode)(2,t.Button,{content:i.description,selected:!0,icon:"unlink",onClick:function(){function h(){return c("toggle_binder_category",{category_id:i.category_id})}return h}()},i.category_id)})]})})]})})})]})}return I}()},61925:function(A,r,n){"use strict";r.__esModule=!0,r.BotCall=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(u){var c=[{modes:[0],label:"Idle",color:"green"},{modes:[1,2,3],label:"Arresting",color:"yellow"},{modes:[4,5],label:"Patrolling",color:"average"},{modes:[9],label:"Moving",color:"average"},{modes:[6,11],label:"Responding",color:"green"},{modes:[12],label:"Delivering Cargo",color:"blue"},{modes:[13],label:"Returning Home",color:"blue"},{modes:[7,8,10,14,15,16,17,18,19],label:"Working",color:"blue"}],m=c.find(function(l){return l.modes.includes(u)});return(0,e.createComponentVNode)(2,t.Box,{color:m.color,children:[" ",m.label," "]})},b=r.BotCall=function(){function g(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=(0,a.useLocalState)(c,"tabIndex",0),i=s[0],h=s[1],C={0:"Security",1:"Medibot",2:"Cleanbot",3:"Floorbot",4:"Mule",5:"Honkbot"},v=function(){function p(N){return C[N]?(0,e.createComponentVNode)(2,S,{model:C[N]}):"This should not happen. Report on Paradise Github"}return p}();return(0,e.createComponentVNode)(2,o.Window,{width:700,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:i===0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,textAlign:"center",children:Array.from({length:6}).map(function(p,N){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:i===N,onClick:function(){function V(){return h(N)}return V}(),children:C[N]},N)})})}),v(i)]})})})}return g}(),S=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.bots;return s[u.model]!==void 0?(0,e.createComponentVNode)(2,k,{model:[u.model]}):(0,e.createComponentVNode)(2,I,{model:[u.model]})},I=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data;return(0,e.createComponentVNode)(2,t.Stack,{justify:"center",align:"center",fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Box,{bold:1,color:"bad",children:["No ",[u.model]," detected"]})})},k=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.bots;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Model"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Location"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Interface"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Call"})]}),s[u.model].map(function(i){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.model}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.on?f(i.status):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Off"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.location}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Interface",onClick:function(){function h(){return l("interface",{botref:i.UID})}return h}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Call",onClick:function(){function h(){return l("call",{botref:i.UID})}return h}()})})]},i.UID)})]})})})}},20464:function(A,r,n){"use strict";r.__esModule=!0,r.BotClean=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotClean=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.locked,l=c.noaccess,d=c.maintpanel,s=c.on,i=c.autopatrol,h=c.canhack,C=c.emagged,v=c.remote_disabled,p=c.painame,N=c.cleanblood,V=c.area;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Cleaning Settings",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:N,content:"Clean Blood",disabled:l,onClick:function(){function y(){return u("blood")}return y}()})}),(0,e.createComponentVNode)(2,t.Section,{title:"Misc Settings",children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:V?"Reset Area Selection":"Restrict to Current Area",onClick:function(){function y(){return u("area")}return y}()}),V!==null&&(0,e.createComponentVNode)(2,t.LabeledList,{mb:1,children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Locked Area",children:V})})]}),p&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:p,disabled:l,onClick:function(){function y(){return u("ejectpai")}return y}()})})]})})}return S}()},69479:function(A,r,n){"use strict";r.__esModule=!0,r.BotFloor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotFloor=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.noaccess,l=c.painame,d=c.hullplating,s=c.replace,i=c.eat,h=c.make,C=c.fixfloor,v=c.nag_empty,p=c.magnet,N=c.tiles_amount;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:510,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Floor Settings",children:[(0,e.createComponentVNode)(2,t.Box,{mb:"5px",children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tiles Left",children:N})}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:d,content:"Add tiles to new hull plating",tooltip:"Fixing a plating requires the removal of floor tile. This will place it back after repairing. Same goes for hull breaches",disabled:m,onClick:function(){function V(){return u("autotile")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:s,content:"Add floor tiles on exposed hull plating",tooltip:"Example: It will add tiles to maintenance",disabled:m,onClick:function(){function V(){return u("replacetiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:C,content:"Repair damaged tiles and platings",disabled:m,onClick:function(){function V(){return u("fixfloors")}return V}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Miscellaneous",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:i,content:"Finds tiles",disabled:m,onClick:function(){function V(){return u("eattiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:h,content:"Make pieces of metal into tiles when empty",disabled:m,onClick:function(){function V(){return u("maketiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:v,content:"Transmit notice when empty",disabled:m,onClick:function(){function V(){return u("nagonempty")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:p,content:"Traction Magnets",disabled:m,onClick:function(){function V(){return u("anchored")}return V}()})]}),l&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,icon:"eject",content:l,disabled:m,onClick:function(){function V(){return u("ejectpai")}return V}()})})]})})}return S}()},59887:function(A,r,n){"use strict";r.__esModule=!0,r.BotHonk=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotHonk=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:220,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.BotStatus)})})}return S}()},80063:function(A,r,n){"use strict";r.__esModule=!0,r.BotMed=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotMed=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.locked,l=c.noaccess,d=c.maintpanel,s=c.on,i=c.autopatrol,h=c.canhack,C=c.emagged,v=c.remote_disabled,p=c.painame,N=c.shut_up,V=c.declare_crit,y=c.stationary_mode,B=c.heal_threshold,L=c.injection_amount,w=c.use_beaker,x=c.treat_virus,T=c.reagent_glass;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Communication Settings",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Speaker",checked:!N,disabled:l,onClick:function(){function M(){return u("toggle_speaker")}return M}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Critical Patient Alerts",checked:V,disabled:l,onClick:function(){function M(){return u("toggle_critical_alerts")}return M}()})]}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Treatment Settings",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Healing Threshold",children:(0,e.createComponentVNode)(2,t.Slider,{value:B.value,minValue:B.min,maxValue:B.max,step:5,disabled:l,onChange:function(){function M(O,D){return u("set_heal_threshold",{target:D})}return M}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Injection Level",children:(0,e.createComponentVNode)(2,t.Slider,{value:L.value,minValue:L.min,maxValue:L.max,step:5,format:function(){function M(O){return O+"u"}return M}(),disabled:l,onChange:function(){function M(O,D){return u("set_injection_amount",{target:D})}return M}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reagent Source",children:(0,e.createComponentVNode)(2,t.Button,{content:w?"Beaker":"Internal Synthesizer",icon:w?"flask":"cogs",disabled:l,onClick:function(){function M(){return u("toggle_use_beaker")}return M}()})}),T&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:T.amount,minValue:0,maxValue:T.max_amount,children:[T.amount," / ",T.max_amount]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{ml:1,children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject",disabled:l,onClick:function(){function M(){return u("eject_reagent_glass")}return M}()})})]})})]}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{mt:1,fluid:!0,content:"Treat Viral Infections",checked:x,disabled:l,onClick:function(){function M(){return u("toggle_treat_viral")}return M}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Stationary Mode",checked:y,disabled:l,onClick:function(){function M(){return u("toggle_stationary_mode")}return M}()})]}),p&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:p,disabled:l,onClick:function(){function M(){return u("ejectpai")}return M}()})})]})})})}return S}()},74439:function(A,r,n){"use strict";r.__esModule=!0,r.BotSecurity=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotSecurity=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.noaccess,l=c.painame,d=c.check_id,s=c.check_weapons,i=c.check_warrant,h=c.arrest_mode,C=c.arrest_declare;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:445,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Who To Arrest",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:d,content:"Unidentifiable Persons",disabled:m,onClick:function(){function v(){return u("authid")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:s,content:"Unauthorized Weapons",disabled:m,onClick:function(){function v(){return u("authweapon")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:i,content:"Wanted Criminals",disabled:m,onClick:function(){function v(){return u("authwarrant")}return v}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Arrest Procedure",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:h,content:"Detain Targets Indefinitely",disabled:m,onClick:function(){function v(){return u("arrtype")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:C,content:"Announce Arrests On Radio",disabled:m,onClick:function(){function v(){return u("arrdeclare")}return v}()})]}),l&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:l,disabled:m,onClick:function(){function v(){return u("ejectpai")}return v}()})})]})})}return S}()},10833:function(A,r,n){"use strict";r.__esModule=!0,r.BrigCells=void 0;var e=n(89005),a=n(98595),t=n(36036),o=n(72253),f=function(k,g){var u=k.cell,c=(0,o.useBackend)(g),m=c.act,l=u.cell_id,d=u.occupant,s=u.crimes,i=u.brigged_by,h=u.time_left_seconds,C=u.time_set_seconds,v=u.ref,p="";h>0&&(p+=" BrigCells__listRow--active");var N=function(){m("release",{ref:v})};return(0,e.createComponentVNode)(2,t.Table.Row,{className:p,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:l}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.TimeDisplay,{totalSeconds:C})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.TimeDisplay,{totalSeconds:h})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{type:"button",onClick:N,children:"Release"})})]})},b=function(k){var g=k.cells;return(0,e.createComponentVNode)(2,t.Table,{className:"BrigCells__list",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Cell"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Occupant"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Crimes"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Brigged By"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Time Brigged For"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Time Left"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Release"})]}),g.map(function(u){return(0,e.createComponentVNode)(2,f,{cell:u},u.ref)})]})},S=r.BrigCells=function(){function I(k,g){var u=(0,o.useBackend)(g),c=u.act,m=u.data,l=m.cells;return(0,e.createComponentVNode)(2,a.Window,{theme:"security",width:800,height:400,children:(0,e.createComponentVNode)(2,a.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b,{cells:l})})})})})}return I}()},45761:function(A,r,n){"use strict";r.__esModule=!0,r.BrigTimer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.BrigTimer=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data;u.nameText=u.occupant,u.timing&&(u.prisoner_hasrec?u.nameText=(0,e.createComponentVNode)(2,t.Box,{color:"green",children:u.occupant}):u.nameText=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:u.occupant}));var c="pencil-alt";u.prisoner_name&&(u.prisoner_hasrec||(c="exclamation-triangle"));var m=[],l=0;for(l=0;lm?this.substring(0,m)+"...":this};var k=function(l,d){var s,i;if(!d)return[];var h=l.findIndex(function(C){return C.name===d.name});return[(s=l[h-1])==null?void 0:s.name,(i=l[h+1])==null?void 0:i.name]},g=function(l,d){d===void 0&&(d="");var s=(0,f.createSearch)(d,function(i){return i.name});return(0,t.flow)([(0,a.filter)(function(i){return i==null?void 0:i.name}),d&&(0,a.filter)(s),(0,a.sortBy)(function(i){return i.name})])(l)},u=r.CameraConsole=function(){function m(l,d){var s=(0,b.useBackend)(d),i=s.act,h=s.data,C=s.config,v=h.mapRef,p=h.activeCamera,N=g(h.cameras),V=k(N,p),y=V[0],B=V[1];return(0,e.createComponentVNode)(2,I.Window,{width:870,height:708,children:[(0,e.createVNode)(1,"div","CameraConsole__left",(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,S.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,c)})}),2),(0,e.createVNode)(1,"div","CameraConsole__right",[(0,e.createVNode)(1,"div","CameraConsole__toolbar",[(0,e.createVNode)(1,"b",null,"Camera: ",16),p&&p.name||"\u2014"],0),(0,e.createVNode)(1,"div","CameraConsole__toolbarRight",[(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-left",disabled:!y,onClick:function(){function L(){return i("switch_camera",{name:y})}return L}()}),(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-right",disabled:!B,onClick:function(){function L(){return i("switch_camera",{name:B})}return L}()})],4),(0,e.createComponentVNode)(2,S.ByondUi,{className:"CameraConsole__map",params:{id:v,type:"map"}})],4)]})}return m}(),c=r.CameraConsoleContent=function(){function m(l,d){var s=(0,b.useBackend)(d),i=s.act,h=s.data,C=(0,b.useLocalState)(d,"searchText",""),v=C[0],p=C[1],N=h.activeCamera,V=g(h.cameras,v);return(0,e.createComponentVNode)(2,S.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S.Stack.Item,{children:(0,e.createComponentVNode)(2,S.Input,{fluid:!0,placeholder:"Search for a camera",onInput:function(){function y(B,L){return p(L)}return y}()})}),(0,e.createComponentVNode)(2,S.Stack.Item,{grow:!0,m:0,children:(0,e.createComponentVNode)(2,S.Section,{fill:!0,scrollable:!0,children:V.map(function(y){return(0,e.createVNode)(1,"div",(0,o.classes)(["Button","Button--fluid","Button--color--transparent",N&&y.name===N.name&&"Button--selected"]),y.name.trimLongStr(23),0,{title:y.name,onClick:function(){function B(){return i("switch_camera",{name:y.name})}return B}()},y.name)})})})]})}return m}()},39222:function(A,r,n){"use strict";r.__esModule=!0,r.CameraConsoleOldContent=r.CameraConsoleMapContent=r.CameraConsole220=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(35840),f=n(25328),b=n(72253),S=n(36036),I=n(98595),k=function(d,s){var i,h;if(!s)return[];var C=d.findIndex(function(v){return v.name===s.name});return[(i=d[C-1])==null?void 0:i.name,(h=d[C+1])==null?void 0:h.name]},g=function(d,s){s===void 0&&(s="");var i=(0,f.createSearch)(s,function(h){return h.name});return(0,t.flow)([(0,a.filter)(function(h){return h==null?void 0:h.name}),s&&(0,a.filter)(i),(0,a.sortBy)(function(h){return h.name})])(d)},u=r.CameraConsole220=function(){function l(d,s){var i=(0,b.useLocalState)(s,"tabIndex",0),h=i[0],C=i[1],v=function(){function p(N){switch(N){case 0:return(0,e.createComponentVNode)(2,c);case 1:return(0,e.createComponentVNode)(2,m);default:return"WE SHOULDN'T BE HERE!"}}return p}();return(0,e.createComponentVNode)(2,I.Window,{width:1170,height:755,children:(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,S.Stack,{children:(0,e.createComponentVNode)(2,S.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,S.Stack.Item,{width:h===1?"222px":"475px",textAlign:"center",children:(0,e.createComponentVNode)(2,S.Tabs,{fluid:!0,ml:h===1?1:0,mt:h===1?1:0,children:[(0,e.createComponentVNode)(2,S.Tabs.Tab,{selected:h===0,onClick:function(){function p(){return C(0)}return p}(),children:[(0,e.createComponentVNode)(2,S.Icon,{name:"map-marked-alt"})," \u041A\u0430\u0440\u0442\u0430"]},"Map"),(0,e.createComponentVNode)(2,S.Tabs.Tab,{selected:h===1,onClick:function(){function p(){return C(1)}return p}(),children:[(0,e.createComponentVNode)(2,S.Icon,{name:"table"})," \u0421\u043F\u0438\u0441\u043E\u043A"]},"List")]})}),v(h)]})})})})}return l}(),c=r.CameraConsoleMapContent=function(){function l(d,s){var i=(0,b.useBackend)(s),h=i.act,C=i.data,v=g(C.cameras),p=(0,b.useLocalState)(s,"zoom",1),N=p[0],V=p[1],y=C.mapRef,B=C.activeCamera,L=C.stationLevel,w=C.mapUrl,x=C.selected_z_level,T=k(v,B),M=T[0],O=T[1];return(0,e.createComponentVNode)(2,S.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,S.Stack.Item,{height:"100%",style:{flex:"0 0 474px"},children:(0,e.createComponentVNode)(2,S.NanoMap,{onZoom:function(){function D(E){return V(E)}return D}(),mapUrl:w,children:v.filter(function(D){return D.z===(Number(x)||L)}).map(function(D){return(0,e.createComponentVNode)(2,S.NanoMap.NanoButton,{activeCamera:B,x:D.x,y:D.y,context:s,zoom:N,icon:"circle",tooltip:D.name,name:D.name,color:"blue",status:D.status},D.ref)})})}),(0,e.createComponentVNode)(2,S.Stack.Item,{height:"100%",m:.1,className:"CameraConsole__right_map",children:[(0,e.createVNode)(1,"div","CameraConsole__header",[(0,e.createVNode)(1,"div","CameraConsole__toolbar",[(0,e.createVNode)(1,"b",null,"\u041A\u0430\u043C\u0435\u0440\u0430: ",16),B&&B.name||"\u2014"],0),(0,e.createVNode)(1,"div","CameraConsole__toolbarRight",[(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-left",disabled:!M,onClick:function(){function D(){return h("switch_camera",{name:M})}return D}()}),(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-right",disabled:!O,onClick:function(){function D(){return h("switch_camera",{name:O})}return D}()})],4)],4),(0,e.createComponentVNode)(2,S.ByondUi,{className:"CameraConsole__map",overflow:"hidden",params:{id:y,type:"map"}})]})]})}return l}(),m=r.CameraConsoleOldContent=function(){function l(d,s){var i=(0,b.useBackend)(s),h=i.act,C=i.data,v=i.config,p=C.mapRef,N=C.activeCamera,V=(0,b.useLocalState)(s,"searchText",""),y=V[0],B=V[1],L=g(C.cameras,y),w=k(L,N),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,S.Stack.Item,{children:[(0,e.createVNode)(1,"div","CameraConsole__left",(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,S.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S.Stack.Item,{children:(0,e.createComponentVNode)(2,S.Input,{width:"215px",placeholder:"\u041D\u0430\u0439\u0442\u0438 \u043A\u0430\u043C\u0435\u0440\u0443",onInput:function(){function M(O,D){return B(D)}return M}()})}),(0,e.createComponentVNode)(2,S.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,S.Section,{fill:!0,scrollable:!0,children:L.map(function(M){return(0,e.createVNode)(1,"div",(0,o.classes)(["Button","Button--fluid",M.status?"Button--color--transparent":"Button--color--danger","Button--ellipsis",N&&M.name===N.name&&"Button--selected"]),M.name,0,{title:M.name,onClick:function(){function O(){return h("switch_camera",{name:M.name})}return O}()},M.name)})})})]})}),2),(0,e.createVNode)(1,"div","CameraConsole__right",[(0,e.createVNode)(1,"div","CameraConsole__toolbar",[(0,e.createVNode)(1,"b",null,"\u041A\u0430\u043C\u0435\u0440\u0430: ",16),N&&N.name||"\u2014"],0),(0,e.createVNode)(1,"div","CameraConsole__toolbarRight",[(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-left",disabled:!x,onClick:function(){function M(){return h("switch_camera",{name:x})}return M}()}),(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-right",disabled:!T,onClick:function(){function M(){return h("switch_camera",{name:T})}return M}()})],4),(0,e.createComponentVNode)(2,S.ByondUi,{className:"CameraConsole__map",params:{id:p,type:"map"}})],4)]})}return l}()},52927:function(A,r,n){"use strict";r.__esModule=!0,r.Canister=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(49968),b=n(98595),S=r.Canister=function(){function I(k,g){var u=(0,t.useBackend)(g),c=u.act,m=u.data,l=m.portConnected,d=m.tankPressure,s=m.releasePressure,i=m.defaultReleasePressure,h=m.minReleasePressure,C=m.maxReleasePressure,v=m.valveOpen,p=m.name,N=m.canLabel,V=m.colorContainer,y=m.color_index,B=m.hasHoldingTank,L=m.holdingTank,w="";y.prim&&(w=V.prim.options[y.prim].name);var x="";y.sec&&(x=V.sec.options[y.sec].name);var T="";y.ter&&(T=V.ter.options[y.ter].name);var M="";y.quart&&(M=V.quart.options[y.quart].name);var O=[],D=[],E=[],P=[],R=0;for(R=0;Rp.current_positions&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:p.total_positions-p.current_positions})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"0"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{content:"-",disabled:i.cooldown_time||!p.can_close,onClick:function(){function N(){return s("make_job_unavailable",{job:p.title})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{content:"+",disabled:i.cooldown_time||!p.can_open,onClick:function(){function N(){return s("make_job_available",{job:p.title})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:i.target_dept&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:i.priority_jobs.indexOf(p.title)>-1?"Yes":""})||(0,e.createComponentVNode)(2,t.Button,{content:p.is_priority?"Yes":"No",selected:p.is_priority,disabled:i.cooldown_time||!p.can_prioritize,onClick:function(){function N(){return s("prioritize_job",{job:p.title})}return N}()})})]},p.title)})]})})]}):v=(0,e.createComponentVNode)(2,I);break;case 2:!i.authenticated||!i.scan_name?v=(0,e.createComponentVNode)(2,I):i.modify_name?v=(0,e.createComponentVNode)(2,f.AccessList,{accesses:i.regions,selectedList:i.selectedAccess,accessMod:function(){function p(N){return s("set",{access:N})}return p}(),grantAll:function(){function p(){return s("grant_all")}return p}(),denyAll:function(){function p(){return s("clear_all")}return p}(),grantDep:function(){function p(N){return s("grant_region",{region:N})}return p}(),denyDep:function(){function p(N){return s("deny_region",{region:N})}return p}()}):v=(0,e.createComponentVNode)(2,k);break;case 3:i.authenticated?i.records.length?v=(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Records",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Delete All Records",disabled:!i.authenticated||i.records.length===0||i.target_dept,onClick:function(){function p(){return s("wipe_all_logs")}return p}()}),children:[(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Crewman"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Old Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"New Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Authorized By"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Time"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Reason"}),!!i.iscentcom&&(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Deleted By"})]}),i.records.map(function(p){return(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.transferee}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.oldvalue}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.newvalue}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.whodidit}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.timestamp}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.reason}),!!i.iscentcom&&(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.deletedby})]},p.timestamp)})]}),!!i.iscentcom&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:"Delete MY Records",color:"purple",disabled:!i.authenticated||i.records.length===0,onClick:function(){function p(){return s("wipe_my_logs")}return p}()})})]}):v=(0,e.createComponentVNode)(2,g):v=(0,e.createComponentVNode)(2,I);break;case 4:!i.authenticated||!i.scan_name?v=(0,e.createComponentVNode)(2,I):v=(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Your Team",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Sec Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Actions"})]}),i.people_dept.map(function(p){return(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.title}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.crimstat}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:p.buttontext,disabled:!p.demotable,onClick:function(){function N(){return s("remote_demote",{remote_demote:p.name})}return N}()})})]},p.title)})]})});break;default:v=(0,e.createComponentVNode)(2,t.Section,{title:"Warning",color:"red",children:"ERROR: Unknown Mode."})}return(0,e.createComponentVNode)(2,o.Window,{width:800,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:C}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:h}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:v})]})})})}return c}()},64083:function(A,r,n){"use strict";r.__esModule=!0,r.CargoConsole=void 0;var e=n(89005),a=n(64795),t=n(88510),o=n(72253),f=n(36036),b=n(98595),S=n(25328),I=r.CargoConsole=function(){function d(s,i){return(0,e.createComponentVNode)(2,b.Window,{width:900,height:800,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,u),(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,l)]})})})}return d}(),k=function(s,i){var h=(0,o.useLocalState)(i,"contentsModal",null),C=h[0],v=h[1],p=(0,o.useLocalState)(i,"contentsModalTitle",null),N=p[0],V=p[1];if(C!==null&&N!==null)return(0,e.createComponentVNode)(2,f.Modal,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:window.innerHeight*.75+"px",mx:"auto",children:[(0,e.createComponentVNode)(2,f.Box,{width:"100%",bold:!0,children:(0,e.createVNode)(1,"h1",null,[N,(0,e.createTextVNode)(" contents:")],0)}),(0,e.createComponentVNode)(2,f.Box,{children:C.map(function(y){return(0,e.createComponentVNode)(2,f.Box,{children:["- ",y]},y)})}),(0,e.createComponentVNode)(2,f.Box,{m:2,children:(0,e.createComponentVNode)(2,f.Button,{content:"Close",onClick:function(){function y(){v(null),V(null)}return y}()})})]})},g=function(s,i){var h=(0,o.useBackend)(i),C=h.act,v=h.data,p=v.is_public,N=v.timeleft,V=v.moving,y=v.at_station,B,L;return!V&&!y?(B="Docked off-station",L="Call Shuttle"):!V&&y?(B="Docked at the station",L="Return Shuttle"):V&&(L="In Transit...",N!==1?B="Shuttle is en route (ETA: "+N+" minutes)":B="Shuttle is en route (ETA: "+N+" minute)"),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Status",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Shuttle Status",children:B}),p===0&&(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Controls",children:[(0,e.createComponentVNode)(2,f.Button,{content:L,disabled:V,onClick:function(){function w(){return C("moveShuttle")}return w}()}),(0,e.createComponentVNode)(2,f.Button,{content:"View Central Command Messages",onClick:function(){function w(){return C("showMessages")}return w}()})]})]})})})},u=function(s,i){var h,C=(0,o.useBackend)(i),v=C.act,p=C.data,N=p.accounts,V=(0,o.useLocalState)(i,"selectedAccount"),y=V[0],B=V[1],L=[];return N.map(function(w){return L[w.name]=w.account_UID}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Payment",children:[(0,e.createComponentVNode)(2,f.Dropdown,{width:"190px",options:N.map(function(w){return w.name}),selected:(h=N.filter(function(w){return w.account_UID===y})[0])==null?void 0:h.name,onSelected:function(){function w(x){return B(L[x])}return w}()}),N.filter(function(w){return w.account_UID===y}).map(function(w){return(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Account Name",children:(0,e.createComponentVNode)(2,f.Stack.Item,{mt:1,children:w.name})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Balance",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:w.balance})})]},w.account_UID)})]})})},c=function(s,i){var h=(0,o.useBackend)(i),C=h.act,v=h.data,p=v.requests,N=v.categories,V=v.supply_packs,y=(0,o.useSharedState)(i,"category","Emergency"),B=y[0],L=y[1],w=(0,o.useSharedState)(i,"search_text",""),x=w[0],T=w[1],M=(0,o.useLocalState)(i,"contentsModal",null),O=M[0],D=M[1],E=(0,o.useLocalState)(i,"contentsModalTitle",null),P=E[0],R=E[1],j=(0,S.createSearch)(x,function(J){return J.name}),F=(0,o.useLocalState)(i,"selectedAccount"),W=F[0],z=F[1],K=(0,a.flow)([(0,t.filter)(function(J){return J.cat===N.filter(function(Q){return Q.name===B})[0].category||x}),x&&(0,t.filter)(j),(0,t.sortBy)(function(J){return J.name.toLowerCase()})])(V),G="Crate Catalogue";return x?G="Results for '"+x+"':":B&&(G="Browsing "+B),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:G,buttons:(0,e.createComponentVNode)(2,f.Dropdown,{width:"190px",options:N.map(function(J){return J.name}),selected:B,onSelected:function(){function J(Q){return L(Q)}return J}()}),children:[(0,e.createComponentVNode)(2,f.Input,{fluid:!0,placeholder:"Search for...",onInput:function(){function J(Q,ue){return T(ue)}return J}(),mb:1}),(0,e.createComponentVNode)(2,f.Box,{maxHeight:25,overflowY:"auto",overflowX:"hidden",children:(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:K.map(function(J){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{bold:!0,children:[J.name," (",J.cost," Credits)"]}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",pr:1,children:[(0,e.createComponentVNode)(2,f.Button,{content:"Order 1",icon:"shopping-cart",disabled:!W,onClick:function(){function Q(){return C("order",{crate:J.ref,multiple:!1,account:W})}return Q}()}),(0,e.createComponentVNode)(2,f.Button,{content:"Order Multiple",icon:"cart-plus",disabled:!W||J.singleton,onClick:function(){function Q(){return C("order",{crate:J.ref,multiple:!0,account:W})}return Q}()}),(0,e.createComponentVNode)(2,f.Button,{content:"View Contents",icon:"search",onClick:function(){function Q(){D(J.contents),R(J.name)}return Q}()})]})]},J.name)})})})]})})},m=function(s,i){var h=s.request,C,v;switch(h.department){case"Engineering":v="CE",C="orange";break;case"Medical":v="CMO",C="teal";break;case"Science":v="RD",C="purple";break;case"Supply":v="CT",C="brown";break;case"Service":v="HOP",C="olive";break;case"Security":v="HOS",C="red";break;case"Command":v="CAP",C="blue";break;case"Assistant":v="Any Head",C="grey";break}return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{mt:.5,children:"Approval Required:"}),!!h.req_cargo_approval&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"brown",content:"QM",icon:"user-tie",tooltip:"This Order requires approval from the QM still"})}),!!h.req_head_approval&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:C,content:v,disabled:h.req_cargo_approval,icon:"user-tie",tooltip:h.req_cargo_approval?"This Order first requires approval from the QM before the "+v+" can approve it":"This Order requires approval from the "+v+" still"})})]})},l=function(s,i){var h=(0,o.useBackend)(i),C=h.act,v=h.data,p=v.requests,N=v.orders,V=v.shipments;return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:"Orders",children:[(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Requests"}),(0,e.createComponentVNode)(2,f.Table,{children:p.map(function(y){return(0,e.createComponentVNode)(2,f.Table.Row,{className:"Cargo_RequestList",children:[(0,e.createComponentVNode)(2,f.Table.Cell,{mb:1,children:[(0,e.createComponentVNode)(2,f.Box,{children:["Order #",y.ordernum,": ",y.supply_type," (",y.cost," credits) for ",(0,e.createVNode)(1,"b",null,y.orderedby,0)," with"," ",y.department?"The "+y.department+" Department":"Their Personal"," Account"]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",y.comment]}),(0,e.createComponentVNode)(2,m,{request:y})]}),(0,e.createComponentVNode)(2,f.Stack.Item,{textAlign:"right",children:[(0,e.createComponentVNode)(2,f.Button,{content:"Approve",color:"green",disabled:!y.can_approve,onClick:function(){function B(){return C("approve",{ordernum:y.ordernum})}return B}()}),(0,e.createComponentVNode)(2,f.Button,{content:"Deny",color:"red",disabled:!y.can_deny,onClick:function(){function B(){return C("deny",{ordernum:y.ordernum})}return B}()})]})]},y.ordernum)})}),(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Orders Awaiting Delivery"}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:N.map(function(y){return(0,e.createComponentVNode)(2,f.Table.Row,{children:(0,e.createComponentVNode)(2,f.Table.Cell,{children:[(0,e.createComponentVNode)(2,f.Box,{children:["- #",y.ordernum,": ",y.supply_type," for ",(0,e.createVNode)(1,"b",null,y.orderedby,0)]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",y.comment]})]})},y.ordernum)})}),(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Order in Transit"}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:V.map(function(y){return(0,e.createComponentVNode)(2,f.Table.Row,{children:(0,e.createComponentVNode)(2,f.Table.Cell,{children:[(0,e.createComponentVNode)(2,f.Box,{children:["- #",y.ordernum,": ",y.supply_type," for ",(0,e.createVNode)(1,"b",null,y.orderedby,0)]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",y.comment]})]})},y.ordernum)})})]})}},36232:function(A,r,n){"use strict";r.__esModule=!0,r.ChameleonAppearances=r.Chameleon=void 0;var e=n(89005),a=n(25328),t=n(64795),o=n(88510),f=n(72253),b=n(36036),S=n(98595),I=r.Chameleon=function(){function u(c,m){return(0,e.createComponentVNode)(2,S.Window,{width:431,height:500,theme:"syndicate",children:(0,e.createComponentVNode)(2,S.Window.Content,{children:(0,e.createComponentVNode)(2,g)})})}return u}(),k=function(c,m){m===void 0&&(m="");var l=(0,a.createSearch)(m,function(d){return d.name});return(0,t.flow)([(0,o.filter)(function(d){return d==null?void 0:d.name}),m&&(0,o.filter)(l)])(c)},g=r.ChameleonAppearances=function(){function u(c,m){var l=(0,f.useBackend)(m),d=l.act,s=l.data,i=(0,f.useLocalState)(m,"searchText",""),h=i[0],C=i[1],v=k(s.chameleon_skins,h),p=s.selected_appearance;return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Input,{fluid:!0,placeholder:"Search for an appearance",onInput:function(){function N(V,y){return C(y)}return N}()})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Item Appearance",children:v.map(function(N){var V=N.name+"_"+N.icon_state;return(0,e.createComponentVNode)(2,b.ImageButton,{dmIcon:N.icon,dmIconState:N.icon_state,imageSize:64,m:.5,compact:!0,selected:V===p,tooltip:N.name,style:{opacity:V===p&&"1"||"0.5"},onClick:function(){function y(){d("change_appearance",{new_appearance:V})}return y}()},V)})})})]})}return u}()},87331:function(A,r,n){"use strict";r.__esModule=!0,r.ChangelogView=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ChangelogView=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=(0,a.useLocalState)(I,"onlyRecent",0),m=c[0],l=c[1],d=u.cl_data,s=u.last_cl,i={FIX:(0,e.createComponentVNode)(2,t.Icon,{name:"tools",title:"Fix"}),WIP:(0,e.createComponentVNode)(2,t.Icon,{name:"hard-hat",title:"WIP",color:"orange"}),TWEAK:(0,e.createComponentVNode)(2,t.Icon,{name:"sliders-h",title:"Tweak"}),SOUNDADD:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-up",title:"Sound Added",color:"green"}),SOUNDDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-mute",title:"Sound Removed",color:"red"}),CODEADD:(0,e.createComponentVNode)(2,t.Icon,{name:"plus",title:"Code Addition",color:"green"}),CODEDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"minus",title:"Code Removal",color:"red"}),IMAGEADD:(0,e.createComponentVNode)(2,t.Icon,{name:"folder-plus",title:"Sprite Addition",color:"green"}),IMAGEDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"folder-minus",title:"Sprite Removal",color:"red"}),SPELLCHECK:(0,e.createComponentVNode)(2,t.Icon,{name:"font",title:"Spelling/Grammar Fix"}),EXPERIMENT:(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle",title:"Experimental",color:"orange"})},h=function(){function C(v){return v in i?i[v]:(0,e.createComponentVNode)(2,t.Icon,{name:"plus",color:"green"})}return C}();return(0,e.createComponentVNode)(2,o.Window,{width:750,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"ParadiseSS13 Changelog",mt:2,buttons:(0,e.createComponentVNode)(2,t.Button,{content:m?"Showing all changes":"Showing changes since last connection",onClick:function(){function C(){return l(!m)}return C}()}),children:d.map(function(C){return!m&&C.merge_ts<=s||(0,e.createComponentVNode)(2,t.Section,{mb:2,title:C.author+" - Merged on "+C.merge_date,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"#"+C.num,onClick:function(){function v(){return g("open_pr",{pr_number:C.num})}return v}()}),children:C.entries.map(function(v){return(0,e.createComponentVNode)(2,t.Box,{m:1,children:[h(v.etype)," ",v.etext]},v)})},C)})})})})}return b}()},91360:function(A,r,n){"use strict";r.__esModule=!0,r.CheckboxListInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(36036),f=n(72253),b=n(98595),S=r.CheckboxListInputModal=function(){function k(g,u){var c=(0,f.useBackend)(u),m=c.act,l=c.data,d=l.items,s=d===void 0?[]:d,i=l.message,h=i===void 0?"":i,C=l.init_value,v=l.timeout,p=l.title,N=(0,f.useLocalState)(u,"edittedItems",s),V=N[0],y=N[1],B=330+Math.ceil(h.length/3),L=function(){function w(x){x===void 0&&(x=null);var T=[].concat(V);T=T.map(function(M){return M.key===x.key?Object.assign({},M,{checked:!x.checked}):M}),y(T)}return w}();return(0,e.createComponentVNode)(2,b.Window,{title:p,width:325,height:B,children:[v&&(0,e.createComponentVNode)(2,a.Loader,{value:v}),(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{className:"ListInput__Section",fill:!0,title:h,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,I,{filteredItems:V,onClick:L})}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,children:(0,e.createComponentVNode)(2,t.InputButtons,{input:V})})]})})})]})}return k}(),I=function(g,u){var c=g.filteredItems,m=g.onClick;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,tabIndex:0,children:c.map(function(l,d){return(0,e.createComponentVNode)(2,o.Button.Checkbox,{fluid:!0,id:d,onClick:function(){function s(){return m(l)}return s}(),checked:l.checked,style:{animation:"none",transition:"none"},children:l.key.replace(/^\w/,function(s){return s.toUpperCase()})},d)})})}},36108:function(A,r,n){"use strict";r.__esModule=!0,r.ChemDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(85870),f=n(98595),b=[1,5,10,20,30,50],S=[1,5,10],I=r.ChemDispenser=function(){function c(m,l){var d=(0,a.useBackend)(l),s=d.act,i=d.data,h=i.chemicals;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:400+h.length*8,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,u)]})})})}return c}(),k=function(m,l){var d=(0,a.useBackend)(l),s=d.act,i=d.data,h=i.amount,C=i.energy,v=i.maxEnergy;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:C,minValue:0,maxValue:v,ranges:{good:[v*.5,1/0],average:[v*.25,v*.5],bad:[-1/0,v*.25]},children:[C," / ",v," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dispense",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{children:b.map(function(p,N){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"15%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"cog",selected:h===p,content:p,onClick:function(){function V(){return s("amount",{amount:p})}return V}()})},N)})})})]})})})},g=function(m,l){for(var d=(0,a.useBackend)(l),s=d.act,i=d.data,h=i.chemicals,C=h===void 0?[]:h,v=[],p=0;p<(C.length+1)%3;p++)v.push(!0);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:i.glass?"Drink Dispenser":"Chemical Dispenser",children:[C.map(function(N,V){return(0,e.createComponentVNode)(2,t.Button,{m:.1,width:"32.5%",icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",content:N.title,style:{"margin-left":"2px"},onClick:function(){function y(){return s("dispense",{reagent:N.id})}return y}()},V)}),v.map(function(N,V){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%"},V)})]})})},u=function(m,l){var d=(0,a.useBackend)(l),s=d.act,i=d.data,h=i.isBeakerLoaded,C=i.beakerCurrentVolume,v=i.beakerMaxVolume,p=i.beakerContents,N=p===void 0?[]:p;return(0,e.createComponentVNode)(2,t.Stack.Item,{height:16,children:(0,e.createComponentVNode)(2,t.Section,{title:i.glass?"Glass":"Beaker",fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,t.Box,{children:[!!h&&(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"label",mr:2,children:[C," / ",v," units"]}),(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!h,onClick:function(){function V(){return s("ejectBeaker")}return V}()})]}),children:(0,e.createComponentVNode)(2,o.BeakerContents,{beakerLoaded:h,beakerContents:N,buttons:function(){function V(y){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Isolate",icon:"compress-arrows-alt",onClick:function(){function B(){return s("remove",{reagent:y.id,amount:-1})}return B}()}),S.map(function(B,L){return(0,e.createComponentVNode)(2,t.Button,{content:B,onClick:function(){function w(){return s("remove",{reagent:y.id,amount:B})}return w}()},L)}),(0,e.createComponentVNode)(2,t.Button,{content:"ALL",onClick:function(){function B(){return s("remove",{reagent:y.id,amount:y.volume})}return B}()})],0)}return V}()})})})}},13146:function(A,r,n){"use strict";r.__esModule=!0,r.ChemHeater=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(85870),b=n(98595),S=r.ChemHeater=function(){function g(u,c){return(0,e.createComponentVNode)(2,b.Window,{width:350,height:275,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k)]})})})}return g}(),I=function(u,c){var m=(0,t.useBackend)(c),l=m.act,d=m.data,s=d.targetTemp,i=d.targetTempReached,h=d.autoEject,C=d.isActive,v=d.currentTemp,p=d.isBeakerLoaded;return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Settings",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{content:"Auto-eject",icon:h?"toggle-on":"toggle-off",selected:h,onClick:function(){function N(){return l("toggle_autoeject")}return N}()}),(0,e.createComponentVNode)(2,o.Button,{content:C?"On":"Off",icon:"power-off",selected:C,disabled:!p,onClick:function(){function N(){return l("toggle_on")}return N}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,a.round)(s,0),minValue:0,maxValue:1e3,onDrag:function(){function N(V,y){return l("adjust_temperature",{target:y})}return N}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Reading",color:i?"good":"average",children:p&&(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:v,format:function(){function N(V){return(0,a.toFixed)(V)+" K"}return N}()})||"\u2014"})]})})})},k=function(u,c){var m=(0,t.useBackend)(c),l=m.act,d=m.data,s=d.isBeakerLoaded,i=d.beakerCurrentVolume,h=d.beakerMaxVolume,C=d.beakerContents;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:"Beaker",fill:!0,scrollable:!0,buttons:!!s&&(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{inline:!0,color:"label",mr:2,children:[i," / ",h," units"]}),(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject",onClick:function(){function v(){return l("eject_beaker")}return v}()})]}),children:(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:s,beakerContents:C})})})}},56541:function(A,r,n){"use strict";r.__esModule=!0,r.ChemMaster=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(85870),b=n(3939),S=n(35840),I=["icon"];function k(B,L){if(B==null)return{};var w={};for(var x in B)if({}.hasOwnProperty.call(B,x)){if(L.includes(x))continue;w[x]=B[x]}return w}function g(B,L){B.prototype=Object.create(L.prototype),B.prototype.constructor=B,u(B,L)}function u(B,L){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(w,x){return w.__proto__=x,w},u(B,L)}var c=[1,5,10],m=function(L,w){var x=(0,a.useBackend)(w),T=x.act,M=x.data,O=L.args.analysis;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:M.condi?"Condiment Analysis":"Reagent Analysis",children:(0,e.createComponentVNode)(2,t.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:O.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:(O.desc||"").length>0?O.desc:"N/A"}),O.blood_type&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood type",children:O.blood_type}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:O.blood_dna})],4),!M.condi&&(0,e.createComponentVNode)(2,t.Button,{icon:M.printing?"spinner":"print",disabled:M.printing,iconSpin:!!M.printing,ml:"0.5rem",content:"Print",onClick:function(){function D(){return T("print",{idx:O.idx,beaker:L.args.beaker})}return D}()})]})})})})},l=function(B){return B[B.ToDisposals=0]="ToDisposals",B[B.ToBeaker=1]="ToBeaker",B}(l||{}),d=r.ChemMaster=function(){function B(L,w){return(0,e.createComponentVNode)(2,o.Window,{width:575,height:650,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,s),(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,h),(0,e.createComponentVNode)(2,y)]})})]})}return B}(),s=function(L,w){var x=(0,a.useBackend)(w),T=x.act,M=x.data,O=M.beaker,D=M.beaker_reagents,E=M.buffer_reagents,P=E.length>0;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Beaker",fill:!0,scrollable:!0,buttons:P?(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"eject",disabled:!O,content:"Eject and Clear Buffer",onClick:function(){function R(){return T("eject")}return R}()}):(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!O,content:"Eject and Clear Buffer",onClick:function(){function R(){return T("eject")}return R}()}),children:O?(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:!0,beakerContents:D,buttons:function(){function R(j,F){return(0,e.createComponentVNode)(2,t.Box,{mb:F0?(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:!0,beakerContents:D,buttons:function(){function E(P,R){return(0,e.createComponentVNode)(2,t.Box,{mb:R0&&(P=E.map(function(R){var j=R.id,F=R.sprite;return(0,e.createComponentVNode)(2,N,{icon:F,translucent:!0,onClick:function(){function W(){return T("set_sprite_style",{production_mode:O,style:j})}return W}(),selected:D===j},j)})),(0,e.createComponentVNode)(2,p,{productionData:L.productionData,children:P&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Style",children:P})})},y=function(L,w){var x=(0,a.useBackend)(w),T=x.act,M=x.data,O=M.loaded_pill_bottle_style,D=M.containerstyles,E=M.loaded_pill_bottle,P={width:"20px",height:"20px"},R=D.map(function(j){var F=j.color,W=j.name,z=O===F;return(0,e.createComponentVNode)(2,t.Button,{style:{position:"relative",width:P.width,height:P.height},onClick:function(){function K(){return T("set_container_style",{style:F})}return K}(),icon:z&&"check",iconStyle:{position:"relative","z-index":1},tooltip:W,tooltipPosition:"top",children:[!z&&(0,e.createVNode)(1,"div",null,null,1,{style:{display:"inline-block"}}),(0,e.createVNode)(1,"span","Button",null,1,{style:{display:"inline-block",position:"absolute",top:0,left:0,margin:0,padding:0,width:P.width,height:P.height,"background-color":F,opacity:.6,filter:"alpha(opacity=60)"}})]},F)});return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Container Customization",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!E,content:"Eject Container",onClick:function(){function j(){return T("ejectp")}return j}()}),children:E?(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Style",children:[(0,e.createComponentVNode)(2,t.Button,{style:{width:P.width,height:P.height},icon:"tint-slash",onClick:function(){function j(){return T("clear_container_style")}return j}(),selected:!O,tooltip:"Default",tooltipPosition:"top"}),R]})}):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"No pill bottle or patch pack loaded."})})})};(0,b.modalRegisterBodyOverride)("analyze",m)},37173:function(A,r,n){"use strict";r.__esModule=!0,r.CloningConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(79140),b=1,S=32,I=128,k=r.CloningConsole=function(){function d(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.tab,N=v.has_scanner,V=v.pod_amount;return(0,e.createComponentVNode)(2,o.Window,{width:640,height:520,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Cloning Console",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Connected scanner",children:N?"Online":"Missing"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Connected pods",children:V})]})}),(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:p===1,icon:"home",onClick:function(){function y(){return C("menu",{tab:1})}return y}(),children:"Main Menu"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:p===2,icon:"user",onClick:function(){function y(){return C("menu",{tab:2})}return y}(),children:"Damage Configuration"})]}),(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,g)})]})})}return d}(),g=function(s,i){var h=(0,a.useBackend)(i),C=h.data,v=C.tab,p;return v===1?p=(0,e.createComponentVNode)(2,u):v===2&&(p=(0,e.createComponentVNode)(2,c)),p},u=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.pods,N=v.pod_amount,V=v.selected_pod_UID;return(0,e.createComponentVNode)(2,t.Box,{children:[!N&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No pods connected."}),!!N&&p.map(function(y,B){return(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Pod "+(B+1),children:(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"96px",shrink:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:(0,f.resolveAsset)("pod_"+(y.cloning?"cloning":"idle")+".gif"),style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createComponentVNode)(2,t.Button,{selected:V===y.uid,onClick:function(){function L(){return C("select_pod",{uid:y.uid})}return L}(),children:"Select"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Progress",children:[!y.cloning&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Pod is inactive."}),!!y.cloning&&(0,e.createComponentVNode)(2,t.ProgressBar,{value:y.clone_progress,maxValue:100,color:"good"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Biomass",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:y.biomass,ranges:{good:[2*y.biomass_storage_capacity/3,y.biomass_storage_capacity],average:[y.biomass_storage_capacity/3,2*y.biomass_storage_capacity/3],bad:[0,y.biomass_storage_capacity/3]},minValue:0,maxValue:y.biomass_storage_capacity,children:[y.biomass,"/",y.biomass_storage_capacity+" ("+100*y.biomass/y.biomass_storage_capacity+"%)"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sanguine Reagent",children:y.sanguine_reagent}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Osseous Reagent",children:y.osseous_reagent})]})})]})},y)})]})},c=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.selected_pod_data,N=v.has_scanned,V=v.scanner_has_patient,y=v.feedback,B=v.scan_successful,L=v.cloning_cost,w=v.has_scanner,x=v.currently_scanning;return(0,e.createComponentVNode)(2,t.Box,{children:[!w&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No scanner connected."}),!!w&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Scanner Info",buttons:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hourglass-half",onClick:function(){function T(){return C("scan")}return T}(),disabled:!V||x,children:"Scan"}),(0,e.createComponentVNode)(2,t.Button,{icon:"eject",onClick:function(){function T(){return C("eject")}return T}(),disabled:!V||x,children:"Eject Patient"})]}),children:[!N&&!x&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:V?"No scan detected for current patient.":"No patient is in the scanner."}),(!!N||!!x)&&(0,e.createComponentVNode)(2,t.Box,{color:y.color,children:y.text})]}),(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Damages Breakdown",children:(0,e.createComponentVNode)(2,t.Box,{children:[(!B||!N)&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No valid scan detected."}),!!B&&!!N&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function T(){return C("fix_all")}return T}(),children:"Repair All Damages"}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function T(){return C("fix_none")}return T}(),children:"Repair No Damages"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function T(){return C("clone")}return T}(),children:"Clone"})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[0],maxValue:p.biomass_storage_capacity,ranges:{bad:[2*p.biomass_storage_capacity/3,p.biomass_storage_capacity],average:[p.biomass_storage_capacity/3,2*p.biomass_storage_capacity/3],good:[0,p.biomass_storage_capacity/3]},color:L[0]>p.biomass?"bad":null,children:["Biomass: ",L[0],"/",p.biomass,"/",p.biomass_storage_capacity]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[1],maxValue:p.max_reagent_capacity,ranges:{bad:[2*p.max_reagent_capacity/3,p.max_reagent_capacity],average:[p.max_reagent_capacity/3,2*p.max_reagent_capacity/3],good:[0,p.max_reagent_capacity/3]},color:L[1]>p.sanguine_reagent?"bad":"good",children:["Sanguine: ",L[1],"/",p.sanguine_reagent,"/",p.max_reagent_capacity]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[2],maxValue:p.max_reagent_capacity,ranges:{bad:[2*p.max_reagent_capacity/3,p.max_reagent_capacity],average:[p.max_reagent_capacity/3,2*p.max_reagent_capacity/3],good:[0,p.max_reagent_capacity/3]},color:L[2]>p.osseous_reagent?"bad":"good",children:["Osseous: ",L[2],"/",p.osseous_reagent,"/",p.max_reagent_capacity]})})]}),(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,l)]})]})})]})]})},m=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.patient_limb_data,N=v.limb_list,V=v.desired_limb_data;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Limbs",children:N.map(function(y,B){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Stack,{align:"baseline",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"15%",height:"20px",children:[p[y][4],":"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),p[y][3]===0&&(0,e.createComponentVNode)(2,t.Stack.Item,{width:"60%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:V[y][0]+V[y][1],maxValue:p[y][5],ranges:{good:[0,p[y][5]/3],average:[p[y][5]/3,2*p[y][5]/3],bad:[2*p[y][5]/3,p[y][5]]},children:["Post-Cloning Damage: ",(0,e.createComponentVNode)(2,t.Icon,{name:"bone"})," "+V[y][0]+" / ",(0,e.createComponentVNode)(2,t.Icon,{name:"fire"})," "+V[y][1]]})}),p[y][3]!==0&&(0,e.createComponentVNode)(2,t.Stack.Item,{width:"60%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:"bad",value:0,children:["The patient's ",p[y][4]," is missing!"]})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[!!p[y][3]&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!V[y][3],onClick:function(){function L(){return C("toggle_limb_repair",{limb:y,type:"replace"})}return L}(),children:"Replace Limb"})}),!p[y][3]&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[y][0]||p[y][1]),checked:!(V[y][0]||V[y][1]),onClick:function(){function L(){return C("toggle_limb_repair",{limb:y,type:"damage"})}return L}(),children:"Repair Damages"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[y][2]&b),checked:!(V[y][2]&b),onClick:function(){function L(){return C("toggle_limb_repair",{limb:y,type:"bone"})}return L}(),children:"Mend Bone"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[y][2]&S),checked:!(V[y][2]&S),onClick:function(){function L(){return C("toggle_limb_repair",{limb:y,type:"ib"})}return L}(),children:"Mend IB"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[y][2]&I),checked:!(V[y][2]&I),onClick:function(){function L(){return C("toggle_limb_repair",{limb:y,type:"critburn"})}return L}(),children:"Mend Critical Burn"})]})]})]},y)})})},l=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.patient_organ_data,N=v.organ_list,V=v.desired_organ_data;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Organs",children:N.map(function(y,B){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Stack,{align:"baseline",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"20%",height:"20px",children:[p[y][3],":"," "]}),p[y][5]!=="heart"&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[!!p[y][2]&&(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!V[y][2]&&!V[y][1],onClick:function(){function L(){return C("toggle_organ_repair",{organ:y,type:"replace"})}return L}(),children:"Replace Organ"}),!p[y][2]&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!p[y][0],checked:!V[y][0],onClick:function(){function L(){return C("toggle_organ_repair",{organ:y,type:"damage"})}return L}(),children:"Repair Damages"})})]})}),p[y][5]==="heart"&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Heart replacement is required for cloning."}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"35%",children:[!!p[y][2]&&(0,e.createComponentVNode)(2,t.ProgressBar,{color:"bad",value:0,children:["The patient's ",p[y][3]," is missing!"]}),!p[y][2]&&(0,e.createComponentVNode)(2,t.ProgressBar,{value:V[y][0],maxValue:p[y][4],ranges:{good:[0,p[y][4]/3],average:[p[y][4]/3,2*p[y][4]/3],bad:[2*p[y][4]/3,p[y][4]]},children:"Post-Cloning Damage: "+V[y][0]})]})]})},y)})})}},98723:function(A,r,n){"use strict";r.__esModule=!0,r.CloningPod=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.CloningPod=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.biomass,m=u.biomass_storage_capacity,l=u.sanguine_reagent,d=u.osseous_reagent,s=u.organs,i=u.currently_cloning;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Liquid Storage",children:[(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Biomass:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:c,ranges:{good:[2*m/3,m],average:[m/3,2*m/3],bad:[0,m/3]},minValue:0,maxValue:m})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Sanguine Reagent:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:l+" units"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.NumberInput,{value:0,minValue:0,maxValue:l,step:1,unit:"units",onChange:function(){function h(C,v){return g("remove_reagent",{reagent:"sanguine_reagent",amount:v})}return h}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove All",onClick:function(){function h(){return g("purge_reagent",{reagent:"sanguine_reagent"})}return h}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Osseous Reagent:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:d+" units"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.NumberInput,{value:0,minValue:0,maxValue:d,step:1,unit:"units",onChange:function(){function h(C,v){return g("remove_reagent",{reagent:"osseous_reagent",amount:v})}return h}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove All",onClick:function(){function h(){return g("purge_reagent",{reagent:"osseous_reagent"})}return h}()})})]})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Organ Storage",children:[!i&&(0,e.createComponentVNode)(2,t.Box,{children:[!s&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No organs loaded."}),!!s&&s.map(function(h){return(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:h.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject",onClick:function(){function C(){return g("eject_organ",{organ_ref:h.ref})}return C}()})})]},h)})]}),!!i&&(0,e.createComponentVNode)(2,t.Stack,{height:"100%",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"lock",size:"5",mb:3}),(0,e.createVNode)(1,"br"),"Unable to access organ storage while cloning."]})})]})]})})}return b}()},18259:function(A,r,n){"use strict";r.__esModule=!0,r.CoinMint=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=r.CoinMint=function(){function S(I,k){var g=(0,t.useBackend)(k),u=g.act,c=g.data,m=c.materials,l=c.moneyBag,d=c.moneyBagContent,s=c.moneyBagMaxContent,i=(l?210:138)+Math.ceil(m.length/4)*64;return(0,e.createComponentVNode)(2,f.Window,{width:210,height:i,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.NoticeBox,{m:0,info:!0,children:["Total coins produced: ",c.totalCoins]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Coin Type",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"power-off",color:c.active&&"bad",tooltip:!l&&"Need a money bag",disabled:!l,onClick:function(){function h(){return u("activate")}return h}()}),children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.ProgressBar,{minValue:0,maxValue:c.maxMaterials,value:c.totalMaterials})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"eject",tooltip:"Eject selected material",onClick:function(){function h(){return u("ejectMat")}return h}()})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:m.map(function(h){return(0,e.createComponentVNode)(2,o.Button,{bold:!0,inline:!0,translucent:!0,m:.2,textAlign:"center",selected:h.id===c.chosenMaterial,tooltip:h.name,content:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{className:(0,a.classes)(["materials32x32",h.id])}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:h.amount})]}),onClick:function(){function C(){return u("selectMaterial",{material:h.id})}return C}()},h.id)})})]})})}),!!l&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Money Bag",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject",disabled:c.active,onClick:function(){function h(){return u("ejectBag")}return h}()}),children:(0,e.createComponentVNode)(2,o.ProgressBar,{width:"100%",minValue:0,maxValue:s,value:d,children:[d," / ",s]})})})]})})})}return S}()},93858:function(A,r,n){"use strict";r.__esModule=!0,r.HexColorInput=r.ColorSelector=r.ColorPickerModal=r.ColorInput=void 0;var e=n(89005),a=n(51057),t=n(72253),o=n(36036),f=n(98595),b=n(44879),S=n(14448),I=n(4454),k=n(35840),g=n(9394),u=n(19203),c=["prefixed","alpha","color","fluid","onChange"];/**
+ */var b=(0,t.createLogger)("hotkeys"),S={},I=[e.KEY_ESCAPE,e.KEY_ENTER,e.KEY_SPACE,e.KEY_TAB,e.KEY_CTRL,e.KEY_SHIFT,e.KEY_UP,e.KEY_DOWN,e.KEY_LEFT,e.KEY_RIGHT],k={},g=function(i){if(i===16)return"Shift";if(i===17)return"Ctrl";if(i===18)return"Alt";if(i===33)return"Northeast";if(i===34)return"Southeast";if(i===35)return"Southwest";if(i===36)return"Northwest";if(i===37)return"West";if(i===38)return"North";if(i===39)return"East";if(i===40)return"South";if(i===45)return"Insert";if(i===46)return"Delete";if(i>=48&&i<=57||i>=65&&i<=90)return String.fromCharCode(i);if(i>=96&&i<=105)return"Numpad"+(i-96);if(i>=112&&i<=123)return"F"+(i-111);if(i===188)return",";if(i===189)return"-";if(i===190)return"."},d=function(i){var h=String(i);if(h==="Ctrl+F5"||h==="Ctrl+R"){location.reload();return}if(h!=="Ctrl+F"&&!(i.event.defaultPrevented||i.isModifierKey()||I.includes(i.code))){h==="F5"&&(i.event.preventDefault(),i.event.returnValue=!1);var C=g(i.code);if(C){var v=S[C];if(v)return b.debug("macro",v),Byond.command(v);if(i.isDown()&&!k[C]){k[C]=!0;var p='Key_Down "'+C+'"';return b.debug(p),Byond.command(p)}if(i.isUp()&&k[C]){k[C]=!1;var N='Key_Up "'+C+'"';return b.debug(N),Byond.command(N)}}}},c=r.acquireHotKey=function(){function s(i){I.push(i)}return s}(),m=r.releaseHotKey=function(){function s(i){var h=I.indexOf(i);h>=0&&I.splice(h,1)}return s}(),l=r.releaseHeldKeys=function(){function s(){for(var i=0,h=Object.keys(k);i0||(0,a.fetchRetry)((0,e.resolveAsset)("icon_ref_map.json")).then(function(b){return b.json()}).then(function(b){return Byond.iconRefMap=b}).catch(function(b){return t.logger.log(b)})}return f}()},1090:function(A,r,n){"use strict";r.__esModule=!0,r.AICard=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AICard=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data;if(d.has_ai===0)return(0,e.createComponentVNode)(2,o.Window,{width:250,height:120,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Stored AI",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createVNode)(1,"h3",null,"No AI detected.",16)})})})});var c=null;return d.integrity>=75?c="green":d.integrity>=25?c="yellow":c="red",(0,e.createComponentVNode)(2,o.Window,{width:600,height:420,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:d.name,children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:c,value:d.integrity/100})})}),(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h2",null,d.flushing===1?"Wipe of AI in progress...":"",0)})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Laws",children:!!d.has_laws&&(0,e.createComponentVNode)(2,t.Box,{children:d.laws.map(function(m,l){return(0,e.createComponentVNode)(2,t.Box,{children:m},l)})})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h3",null,"No laws detected.",16)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wireless Activity",children:(0,e.createComponentVNode)(2,t.Button,{width:10,icon:d.wireless?"check":"times",content:d.wireless?"Enabled":"Disabled",color:d.wireless?"green":"red",onClick:function(){function m(){return g("wireless")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subspace Transceiver",children:(0,e.createComponentVNode)(2,t.Button,{width:10,icon:d.radio?"check":"times",content:d.radio?"Enabled":"Disabled",color:d.radio?"green":"red",onClick:function(){function m(){return g("radio")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wipe",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{width:10,icon:"trash-alt",confirmIcon:"trash-alt",disabled:d.flushing||d.integrity===0,confirmColor:"red",content:"Wipe AI",onClick:function(){function m(){return g("wipe")}return m}()})})]})})})]})})})}return b}()},39454:function(A,r,n){"use strict";r.__esModule=!0,r.AIFixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AIFixer=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data;if(d.occupant===null)return(0,e.createComponentVNode)(2,o.Window,{width:550,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Stored AI",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"robot",size:5,color:"silver"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"h3",null,"No Artificial Intelligence detected.",16)]})})})})});var c=!0;(d.stat===2||d.stat===null)&&(c=!1);var m=null;d.integrity>=75?m="green":d.integrity>=25?m="yellow":m="red";var l=!0;return d.integrity>=100&&d.stat!==2&&(l=!1),(0,e.createComponentVNode)(2,o.Window,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:d.occupant,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:m,value:d.integrity/100})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:c?"green":"red",children:c?"Functional":"Non-Functional"})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Laws",children:!!d.has_laws&&(0,e.createComponentVNode)(2,t.Box,{children:d.laws.map(function(u,s){return(0,e.createComponentVNode)(2,t.Box,{inline:!0,children:u},s)})})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:(0,e.createVNode)(1,"h3",null,"No laws detected.",16)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Wireless Activity",children:(0,e.createComponentVNode)(2,t.Button,{icon:d.wireless?"times":"check",content:d.wireless?"Disabled":"Enabled",color:d.wireless?"red":"green",onClick:function(){function u(){return g("wireless")}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subspace Transceiver",children:(0,e.createComponentVNode)(2,t.Button,{icon:d.radio?"times":"check",content:d.radio?"Disabled":"Enabled",color:d.radio?"red":"green",onClick:function(){function u(){return g("radio")}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Start Repairs",children:(0,e.createComponentVNode)(2,t.Button,{icon:"wrench",disabled:!l||d.active,content:!l||d.active?"Already Repaired":"Repair",onClick:function(){function u(){return g("fix")}return u}()})})]}),(0,e.createComponentVNode)(2,t.Box,{color:"green",lineHeight:2,children:d.active?"Reconstruction in progress.":""})]})})]})})})}return b}()},88422:function(A,r,n){"use strict";r.__esModule=!0,r.APC=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(195),b=r.APC=function(){function g(d,c){return(0,e.createComponentVNode)(2,o.Window,{width:510,height:435,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,k)})})}return g}(),S={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"}},I={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},k=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.locked&&!u.siliconUser,i=u.normallyLocked,h=S[u.externalPower]||S[0],C=S[u.chargingStatus]||S[0],v=u.powerChannels||[],p=I[u.malfStatus]||I[0],N=u.powerCellStatus/100;return(0,e.createFragment)([(0,e.createComponentVNode)(2,f.InterfaceLockNoticeBox),(0,e.createComponentVNode)(2,t.Section,{title:"Power Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Main Breaker",color:h.color,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:u.isOperating?"power-off":"times",content:u.isOperating?"On":"Off",selected:u.isOperating&&!s,color:u.isOperating?"":"bad",disabled:s,onClick:function(){function V(){return l("breaker")}return V}()}),children:["[ ",h.externalPowerText," ]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Cell",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:"good",value:N})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Charge Mode",color:C.color,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:u.chargeMode?"sync":"times",content:u.chargeMode?"Auto":"Off",selected:u.chargeMode,disabled:s,onClick:function(){function V(){return l("charge")}return V}()}),children:["[ ",C.chargingText," ]"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Channels",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[v.map(function(V){var y=V.topicParams;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:V.title,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,mx:2,color:V.status>=2?"good":"bad",children:V.status>=2?"On":"Off"}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Auto",selected:!s&&(V.status===1||V.status===3),disabled:s,onClick:function(){function B(){return l("channel",y.auto)}return B}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:"On",selected:!s&&V.status===2,disabled:s,onClick:function(){function B(){return l("channel",y.on)}return B}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Off",selected:!s&&V.status===0,disabled:s,onClick:function(){function B(){return l("channel",y.off)}return B}()})],4),children:[V.powerLoad," W"]},V.title)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Load",children:(0,e.createVNode)(1,"b",null,[u.totalLoad,(0,e.createTextVNode)(" W")],0)})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Misc",buttons:!!u.siliconUser&&(0,e.createFragment)([!!u.malfStatus&&(0,e.createComponentVNode)(2,t.Button,{icon:p.icon,content:p.content,color:"bad",onClick:function(){function V(){return l(p.action)}return V}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){function V(){return l("overload")}return V}()})],0),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cover Lock",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.4,icon:u.coverLocked?"lock":"unlock",content:u.coverLocked?"Engaged":"Disengaged",disabled:s,onClick:function(){function V(){return l("cover")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"lightbulb-o",content:u.emergencyLights?"Enabled":"Disabled",disabled:s,onClick:function(){function V(){return l("emergency_lighting")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,e.createComponentVNode)(2,t.Button,{mt:.4,icon:"lightbulb-o",content:u.nightshiftLights?"Enabled":"Disabled",onClick:function(){function V(){return l("toggle_nightshift")}return V}()})})]})})],4)}},99660:function(A,r,n){"use strict";r.__esModule=!0,r.ATM=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ATM=function(){function m(l,u){var s=(0,a.useBackend)(u),i=s.act,h=s.data,C=h.view_screen,v=h.authenticated_account,p=h.ticks_left_locked_down,N=h.linked_db,V;if(p>0)V=(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle"}),"Maximum number of pin attempts exceeded! Access to this ATM has been temporarily disabled."]});else if(!N)V=(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle"}),"Unable to connect to accounts database, please retry and if the issue persists contact Nanotrasen IT support."]});else if(v)switch(C){case 1:V=(0,e.createComponentVNode)(2,S);break;case 2:V=(0,e.createComponentVNode)(2,I);break;case 3:V=(0,e.createComponentVNode)(2,d);break;default:V=(0,e.createComponentVNode)(2,k)}else V=(0,e.createComponentVNode)(2,g);return(0,e.createComponentVNode)(2,o.Window,{width:550,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Section,{children:V})]})})}return m}(),b=function(l,u){var s=(0,a.useBackend)(u),i=s.act,h=s.data,C=h.machine_id,v=h.held_card_name;return(0,e.createComponentVNode)(2,t.Section,{title:"Nanotrasen Automatic Teller Machine",children:[(0,e.createComponentVNode)(2,t.Box,{children:"For all your monetary needs!"}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Card",children:(0,e.createComponentVNode)(2,t.Button,{content:v,icon:"eject",onClick:function(){function p(){return i("insert_card")}return p}()})})})]})},S=function(l,u){var s=(0,a.useBackend)(u),i=s.act,h=s.data,C=h.security_level;return(0,e.createComponentVNode)(2,t.Section,{title:"Select a new security level for this account",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:(0,e.createComponentVNode)(2,t.Button,{content:"Account Number",icon:"unlock",selected:C===0,onClick:function(){function v(){return i("change_security_level",{new_security_level:1})}return v}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:"Either the account number or card is required to access this account. EFTPOS transactions will require a card."}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:(0,e.createComponentVNode)(2,t.Button,{content:"Account Pin",icon:"unlock",selected:C===2,onClick:function(){function v(){return i("change_security_level",{new_security_level:2})}return v}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:"An account number and pin must be manually entered to access this account and process transactions."})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},I=function(l,u){var s=(0,a.useBackend)(u),i=s.act,h=s.data,C=(0,a.useLocalState)(u,"targetAccNumber",0),v=C[0],p=C[1],N=(0,a.useLocalState)(u,"fundsAmount",0),V=N[0],y=N[1],B=(0,a.useLocalState)(u,"purpose",0),L=B[0],w=B[1],x=h.money;return(0,e.createComponentVNode)(2,t.Section,{title:"Transfer Fund",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account Balance",children:["$",x]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Account Number",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"7 Digit Number",onInput:function(){function T(M,O){return p(O)}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Funds to Transfer",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function T(M,O){return y(O)}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transaction Purpose",children:(0,e.createComponentVNode)(2,t.Input,{fluid:!0,onInput:function(){function T(M,O){return w(O)}return T}()})})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.Button,{content:"Transfer",icon:"sign-out-alt",onClick:function(){function T(){return i("transfer",{target_acc_number:v,funds_amount:V,purpose:L})}return T}()}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},k=function(l,u){var s=(0,a.useBackend)(u),i=s.act,h=s.data,C=(0,a.useLocalState)(u,"fundsAmount",0),v=C[0],p=C[1],N=h.owner_name,V=h.money;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Welcome, "+N,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Logout",icon:"sign-out-alt",onClick:function(){function y(){return i("logout")}return y}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account Balance",children:["$",V]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Withdrawal Amount",children:(0,e.createComponentVNode)(2,t.Input,{onInput:function(){function y(B,L){return p(L)}return y}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Withdraw Funds",icon:"sign-out-alt",onClick:function(){function y(){return i("withdrawal",{funds_amount:v})}return y}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Menu",children:[(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Change account security level",icon:"lock",onClick:function(){function y(){return i("view_screen",{view_screen:1})}return y}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Make transfer",icon:"exchange-alt",onClick:function(){function y(){return i("view_screen",{view_screen:2})}return y}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"View transaction log",icon:"list",onClick:function(){function y(){return i("view_screen",{view_screen:3})}return y}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Print balance statement",icon:"print",onClick:function(){function y(){return i("balance_statement")}return y}()})})]})],4)},g=function(l,u){var s=(0,a.useBackend)(u),i=s.act,h=s.data,C=(0,a.useLocalState)(u,"accountID",null),v=C[0],p=C[1],N=(0,a.useLocalState)(u,"accountPin",null),V=N[0],y=N[1],B=h.machine_id,L=h.held_card_name;return(0,e.createComponentVNode)(2,t.Section,{title:"Insert card or enter ID and pin to login",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Account ID",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"6 Digit Number",onInput:function(){function w(x,T){return p(T)}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pin",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"6 Digit Number",onInput:function(){function w(x,T){return y(T)}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Login",icon:"sign-in-alt",onClick:function(){function w(){return i("attempt_auth",{account_num:v,account_pin:V})}return w}()})})]})})},d=function(l,u){var s=(0,a.useBackend)(u),i=s.act,h=s.data,C=h.transaction_log;return(0,e.createComponentVNode)(2,t.Section,{title:"Transactions",children:[(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Timestamp"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Reason"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Value"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Terminal"})]}),C.map(function(v){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.time}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.purpose}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:v.is_deposit?"green":"red",children:["$",v.amount]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v.target_name})]},v)})]}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,c)]})},c=function(l,u){var s=(0,a.useBackend)(u),i=s.act,h=s.data;return(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"sign-out-alt",onClick:function(){function C(){return i("view_screen",{view_screen:0})}return C}()})}},86423:function(A,r,n){"use strict";r.__esModule=!0,r.AccountsUplinkTerminal=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(36352),b=n(98595),S=n(321),I=n(5485),k=r.AccountsUplinkTerminal=function(){function h(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=V.loginState,B=V.currentPage,L;if(y.logged_in)B===1?L=(0,e.createComponentVNode)(2,d):B===2?L=(0,e.createComponentVNode)(2,s):B===3&&(L=(0,e.createComponentVNode)(2,i));else return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,I.LoginScreen)})})});return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S.LoginInfo),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:L})]})})})}return h}(),g=function(C,v){var p=(0,t.useBackend)(v),N=p.data,V=(0,t.useLocalState)(v,"tabIndex",0),y=V[0],B=V[1],L=N.login_state;return(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,mb:1,children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:y===0,onClick:function(){function w(){return B(0)}return w}(),children:"User Accounts"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:y===1,onClick:function(){function w(){return B(1)}return w}(),children:"Department Accounts"})]})})})},d=function(C,v){var p=(0,t.useLocalState)(v,"tabIndex",0),N=p[0];switch(N){case 0:return(0,e.createComponentVNode)(2,c);case 1:return(0,e.createComponentVNode)(2,m);default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},c=function(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=V.accounts,B=(0,t.useLocalState)(v,"searchText",""),L=B[0],w=B[1],x=(0,t.useLocalState)(v,"sortId","owner_name"),T=x[0],M=x[1],O=(0,t.useLocalState)(v,"sortOrder",!0),D=O[0],E=O[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,u),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"AccountsUplinkTerminal__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,l,{id:"owner_name",children:"Account Holder"}),(0,e.createComponentVNode)(2,l,{id:"account_number",children:"Account Number"}),(0,e.createComponentVNode)(2,l,{id:"suspended",children:"Account Status"}),(0,e.createComponentVNode)(2,l,{id:"money",children:"Account Balance"})]}),y.filter((0,a.createSearch)(L,function(P){return P.owner_name+"|"+P.account_number+"|"+P.suspended+"|"+P.money})).sort(function(P,R){var j=D?1:-1;return P[T].localeCompare(R[T])*j}).map(function(P){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"AccountsUplinkTerminal__listRow--"+P.suspended,onClick:function(){function R(){return N("view_account_detail",{account_num:P.account_number})}return R}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",P.owner_name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:["#",P.account_number]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.suspended}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.money})]},P.account_number)})]})})})]})},m=function(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=V.department_accounts;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{className:"AccountsUplinkTerminal__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,f.TableCell,{children:"Department Name"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Number"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Status"}),(0,e.createComponentVNode)(2,f.TableCell,{children:"Account Balance"})]}),y.map(function(B){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"AccountsUplinkTerminal__listRow--"+B.suspended,onClick:function(){function L(){return N("view_account_detail",{account_num:B.account_number})}return L}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"wallet"})," ",B.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:["#",B.account_number]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:B.suspended}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:B.money})]},B.account_number)})]})})})})},l=function(C,v){var p=(0,t.useLocalState)(v,"sortId","name"),N=p[0],V=p[1],y=(0,t.useLocalState)(v,"sortOrder",!0),B=y[0],L=y[1],w=C.id,x=C.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:N!==w&&"transparent",width:"100%",onClick:function(){function T(){N===w?L(!B):(V(w),L(!0))}return T}(),children:[x,N===w&&(0,e.createComponentVNode)(2,o.Icon,{name:B?"sort-up":"sort-down",ml:"0.25rem;"})]})})},u=function(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=V.is_printing,B=(0,t.useLocalState)(v,"searchText",""),L=B[0],w=B[1];return(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{content:"New Account",icon:"plus",onClick:function(){function x(){return N("create_new_account")}return x}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by account holder, number, status",width:"100%",onInput:function(){function x(T,M){return w(M)}return x}()})})]})},s=function(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=V.account_number,B=V.owner_name,L=V.money,w=V.suspended,x=V.transactions,T=V.account_pin,M=V.is_department_account;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"#"+y+" / "+B,buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-left",content:"Back",onClick:function(){function O(){return N("back")}return O}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Number",children:["#",y]}),!!M&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Pin",children:T}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Pin Actions",children:(0,e.createComponentVNode)(2,o.Button,{ml:1,icon:"user-cog",content:"Set New Pin",disabled:!!M,onClick:function(){function O(){return N("set_account_pin",{account_number:y})}return O}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Holder",children:B}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Balance",children:L}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Status",color:w?"red":"green",children:[w?"Suspended":"Active",(0,e.createComponentVNode)(2,o.Button,{ml:1,content:w?"Unsuspend":"Suspend",icon:w?"unlock":"lock",onClick:function(){function O(){return N("toggle_suspension")}return O}()})]})]})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Transactions",children:(0,e.createComponentVNode)(2,o.Table,{children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Timestamp"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Reason"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Value"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Terminal"})]}),x.map(function(O){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:O.time}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:O.purpose}),(0,e.createComponentVNode)(2,o.Table.Cell,{color:O.is_deposit?"green":"red",children:["$",O.amount]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:O.target_name})]},O)})]})})})]})},i=function(C,v){var p=(0,t.useBackend)(v),N=p.act,V=p.data,y=(0,t.useLocalState)(v,"accName",""),B=y[0],L=y[1],w=(0,t.useLocalState)(v,"accDeposit",""),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Create Account",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"arrow-left",content:"Back",onClick:function(){function M(){return N("back")}return M}()}),children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Holder",children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Name Here",onChange:function(){function M(O,D){return L(D)}return M}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Initial Deposit",children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"0",onChange:function(){function M(O,D){return T(D)}return M}()})})]}),(0,e.createComponentVNode)(2,o.Button,{mt:1,fluid:!0,content:"Create Account",onClick:function(){function M(){return N("finalise_create_account",{holder_name:B,starting_funds:x})}return M}()})]})}},23001:function(A,r,n){"use strict";r.__esModule=!0,r.AdminAntagMenu=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(36352),b=n(98595),S=n(321),I=n(5485),k=function(h){switch(h){case 0:return"Antagonists";case 1:return"Objectives";case 2:return"Security";case 3:return"All High Value Items";default:return"Something went wrong with this menu, make an issue report please!"}},g=function(h){switch(h){case 0:return(0,e.createComponentVNode)(2,c);case 1:return(0,e.createComponentVNode)(2,m);case 2:return(0,e.createComponentVNode)(2,l);case 3:return(0,e.createComponentVNode)(2,u);default:return"Something went wrong with this menu, make an issue report please!"}},d=r.AdminAntagMenu=function(){function i(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.loginState,y=N.currentPage,B=(0,t.useLocalState)(C,"tabIndex",0),L=B[0],w=B[1],x=(0,t.useLocalState)(C,"searchText",""),T=x[0],M=x[1];return(0,e.createComponentVNode)(2,b.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.NoticeBox,{children:"This menu is a Work in Progress. Some antagonists like Nuclear Operatives and Biohazards will not show up."})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===0,onClick:function(){function O(){w(0)}return O}(),icon:"user",children:"Antagonists"},"Antagonists"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===1,onClick:function(){function O(){w(1)}return O}(),icon:"people-robbery",children:"Objectives"},"Objectives"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===2,onClick:function(){function O(){w(2)}return O}(),icon:"handcuffs",children:"Security"},"Security"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:L===3,onClick:function(){function O(){w(3)}return O}(),icon:"lock",children:"High Value Items"},"HighValueItems")]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:k(L),fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search...",width:"300px",onInput:function(){function O(D,E){return M(E)}return O}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"sync",onClick:function(){function O(){return p("refresh")}return O}(),children:"Refresh"})]}),children:g(L)})})]})})})}return i}(),c=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.antagonists,y=(0,t.useLocalState)(C,"searchText",""),B=y[0],L=y[1],w=(0,t.useLocalState)(C,"sortId","antag_name"),x=w[0],T=w[1],M=(0,t.useLocalState)(C,"sortOrder",!0),O=M[0],D=M[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{id:"name",children:"Mob Name"}),(0,e.createComponentVNode)(2,s,{id:"",children:"Buttons"}),(0,e.createComponentVNode)(2,s,{id:"antag_name",children:"Antagonist Type"}),(0,e.createComponentVNode)(2,s,{id:"status",children:"Status"})]}),V.filter((0,a.createSearch)(B,function(E){return E.name+"|"+E.status+"|"+E.antag_name})).sort(function(E,P){var R=O?1:-1;return E[x]===void 0||E[x]===null?R:P[x]===void 0||P[x]===null?-1*R:typeof E[x]=="number"?(E[x]-P[x])*R:E[x].localeCompare(P[x])*R}).map(function(E,P){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:E.body_destroyed?E.name:(0,e.createComponentVNode)(2,o.Button,{color:E.is_hijacker||!E.name?"red":"",tooltip:E.is_hijacker?"Hijacker":"",onClick:function(){function R(){return p("show_player_panel",{mind_uid:E.antag_mind_uid})}return R}(),children:E.name?E.name:"??? (NO NAME)"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:[(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("pm",{ckey:E.ckey})}return R}(),children:"PM"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("follow",{datum_uid:E.antag_mind_uid})}return R}(),children:"FLW"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("obs",{mind_uid:E.antag_mind_uid})}return R}(),children:"OBS"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("tp",{mind_uid:E.antag_mind_uid})}return R}(),children:"TP"})]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:E.antag_name}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:E.status?"red":"grey",children:E.status?E.status:"Alive"})})]},P)})]}):"No Antagonists!"},m=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.objectives,y=(0,t.useLocalState)(C,"searchText",""),B=y[0],L=y[1],w=(0,t.useLocalState)(C,"sortId2","target_name"),x=w[0],T=w[1],M=(0,t.useLocalState)(C,"sortOrder",!0),O=M[0],D=M[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"obj_name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"target_name",children:"Target"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"status",children:"Status"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId2",id:"owner_name",children:"Owner"})]}),V.filter((0,a.createSearch)(B,function(E){return E.obj_name+"|"+E.target_name+"|"+(E.status?"success":"incompleted")+"|"+E.owner_name})).sort(function(E,P){var R=O?1:-1;return E[x]===void 0||E[x]===null||x==="target_name"&&E.no_target?R:P[x]===void 0||P[x]===null||x==="target_name"&&P.no_target?-1*R:typeof E[x]=="number"?(E[x]-P[x])*R:E[x].localeCompare(P[x])*R}).map(function(E,P){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{tooltip:E.obj_desc,onClick:function(){function R(){return p("vv",{uid:E.obj_uid})}return R}(),children:E.obj_name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:E.no_target?"":E.track.length?E.track.map(function(R,j){return(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function F(){return p("follow",{datum_uid:R})}return F}(),children:[E.target_name," ",E.track.length>1?"("+(parseInt(j,10)+1)+")":""]},j)}):"No "+E.target_name+" Found"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:E.status?"green":"grey",children:E.status?"Success":"Incomplete"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("obj_owner",{owner_uid:E.owner_uid})}return R}(),children:E.owner_name})})]},P)})]}):"No Objectives!"},l=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.security,y=(0,t.useLocalState)(C,"searchText",""),B=y[0],L=y[1],w=(0,t.useLocalState)(C,"sortId3","health"),x=w[0],T=w[1],M=(0,t.useLocalState)(C,"sortOrder",!0),O=M[0],D=M[1],E=function(j){return j.status===2?"red":j.status===1?"orange":j.broken_bone||j.internal_bleeding?"yellow":"grey"},P=function(j){return j.status===2?"Dead":j.status===1?"Unconscious":j.broken_bone&&j.internal_bleeding?"Broken Bone, IB":j.broken_bone?"Broken Bone":j.internal_bleeding?"IB":"Alive"};return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"role",children:"Role"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"status",children:"Status"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"antag",children:"Antag"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId3",id:"health",children:"Health"})]}),V.filter((0,a.createSearch)(B,function(R){return R.name+"|"+R.role+"|"+P(R)+"|"+R.antag})).sort(function(R,j){var F=O?1:-1;return R[x]===void 0||R[x]===null?F:j[x]===void 0||j[x]===null?-1*F:typeof R[x]=="number"?(R[x]-j[x])*F:R[x].localeCompare(j[x])*F}).map(function(R,j){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function F(){return p("show_player_panel",{mind_uid:R.mind_uid})}return F}(),children:R.name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:R.role}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:E(R),children:P(R)})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:R.antag?(0,e.createComponentVNode)(2,o.Button,{textColor:"red",translucent:!0,onClick:function(){function F(){p("tp",{mind_uid:R.mind_uid})}return F}(),children:R.antag}):""}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.ProgressBar,{minValue:0,value:R.health/R.max_health,maxValue:1,ranges:{good:[.6,1/0],average:[0,.6],bad:[-1/0,0]},children:R.health})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:[(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function F(){p("pm",{ckey:R.ckey})}return F}(),children:"PM"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function F(){p("follow",{datum_uid:R.mind_uid})}return F}(),children:"FLW"}),(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function F(){p("obs",{mind_uid:R.mind_uid})}return F}(),children:"OBS"})]})]},j)})]}):"No Security!"},u=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.high_value_items,y=(0,t.useLocalState)(C,"searchText",""),B=y[0],L=y[1],w=(0,t.useLocalState)(C,"sortId4","person"),x=w[0],T=w[1],M=(0,t.useLocalState)(C,"sortOrder",!0),O=M[0],D=M[1];return V.length?(0,e.createComponentVNode)(2,o.Table,{className:"AdminAntagMenu__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"name",children:"Name"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"person",children:"Carrier"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"loc",children:"Location"}),(0,e.createComponentVNode)(2,s,{sort_group:"sortId4",id:"admin_z",children:"On Admin Z-level"})]}),V.filter((0,a.createSearch)(B,function(E){return E.name+"|"+E.loc})).sort(function(E,P){var R=O?1:-1;return E[x]===void 0||E[x]===null?R:P[x]===void 0||P[x]===null?-1*R:typeof E[x]=="number"?(E[x]-P[x])*R:E[x].localeCompare(P[x])*R}).map(function(E,P){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{tooltip:E.obj_desc,translucent:E.admin_z,onClick:function(){function R(){return p("vv",{uid:E.uid})}return R}(),children:E.name})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:E.admin_z?"grey":"",children:E.person})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:E.admin_z?"grey":"",children:E.loc})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Box,{color:"grey",children:E.admin_z?"On Admin Z-level":""})}),(0,e.createComponentVNode)(2,o.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function R(){p("follow",{datum_uid:E.uid})}return R}(),children:"FLW"})})]},P)})]}):"No High Value Items!"},s=function(h,C){var v=h.id,p=h.sort_group,N=p===void 0?"sortId":p,V=h.default_sort,y=V===void 0?"antag_name":V,B=h.children,L=(0,t.useLocalState)(C,N,y),w=L[0],x=L[1],T=(0,t.useLocalState)(C,"sortOrder",!0),M=T[0],O=T[1];return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:w!==v&&"transparent",width:"100%",onClick:function(){function D(){w===v?O(!M):(x(v),O(!0))}return D}(),children:[B,w===v&&(0,e.createComponentVNode)(2,o.Icon,{name:M?"sort-up":"sort-down",ml:"0.25rem;"})]})})}},39683:function(A,r,n){"use strict";r.__esModule=!0,r.AgentCardInfo=r.AgentCardAppearances=r.AgentCard=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[{name:"Male",icon:"mars"},{name:"Female",icon:"venus"},{name:"Genderless",icon:"genderless"}],b=["A+","A-","B+","B-","AB+","AB-","O+","O-"],S="Empty",I=function(m){var l=m.label,u=m.value,s=m.onCommit,i=m.onClick,h=m.onRClick,C=m.tooltip;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:l,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button.Input,{fluid:!0,textAlign:"center",content:u||S,onCommit:s})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"file-signature",tooltip:C,tooltipPosition:"bottom-end",onClick:i,onContextMenu:h})})]})})},k=r.AgentCard=function(){function c(m,l){var u=(0,a.useLocalState)(l,"tabIndex",0),s=u[0],i=u[1],h=function(){function C(v){switch(v){case 0:return(0,e.createComponentVNode)(2,g);case 1:return(0,e.createComponentVNode)(2,d);default:return(0,e.createComponentVNode)(2,g)}}return C}();return(0,e.createComponentVNode)(2,o.Window,{width:435,height:500,theme:"syndicate",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:s===0,onClick:function(){function C(){return i(0)}return C}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"table"})," Card Info"]},"Card Info"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:s===1,onClick:function(){function C(){return i(1)}return C}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"id-card"})," Appearance"]},"Appearance")]})}),h(s)]})})})}return c}(),g=r.AgentCardInfo=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,i=u.data,h=i.registered_name,C=i.sex,v=i.age,p=i.assignment,N=i.job_assets,V=i.job_icon,y=i.associated_account_number,B=i.blood_type,L=i.dna_hash,w=i.fingerprint_hash,x=i.photo,T=i.ai_tracking,M=i.photo_cooldown,O=(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Autofill options."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("LMB - Autofill your own data."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("RMB - Autofill someone else data.")],4),D=(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Autofill options."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("LMB - Autofill your own data."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("RMB - Autofill with random data.")],4);return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Card Info",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,I,{label:"Name",value:h,tooltip:O,onCommit:function(){function E(P,R){return s("change_name",{name:R})}return E}(),onClick:function(){function E(){return s("change_name",{option:"Primary"})}return E}(),onRClick:function(){function E(P){P.preventDefault(),s("change_name",{option:"Secondary"})}return E}()}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sex",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:f.map(function(E){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:E.icon,content:E.name,selected:C===E.name,onClick:function(){function P(){return s("change_sex",{sex:E.name})}return P}()})},E.name)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Age",children:(0,e.createComponentVNode)(2,t.Slider,{fluid:!0,minValue:17,value:v||0,maxValue:300,onChange:function(){function E(P,R){return s("change_age",{age:R})}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rank",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:function(){function E(){return s("change_occupation")}return E}(),textAlign:"middle",children:p||"[UNSET]"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{tooltip:"Change HUD icon",tooltipPosition:"bottom-end",onClick:function(){function E(){return s("change_occupation",{option:"Primary"})}return E}(),children:[(0,e.createComponentVNode)(2,t.DmIcon,{fill:!0,icon:N,icon_state:V,verticalAlign:"bottom",my:"2px",width:"16px"})," "]})})]})}),(0,e.createComponentVNode)(2,I,{label:"Fingerprint",value:w,onCommit:function(){function E(P,R){return s("change_fingerprints",{new_fingerprints:R})}return E}(),onClick:function(){function E(){return s("change_fingerprints",{option:"Primary"})}return E}(),onRClick:function(){function E(P){P.preventDefault(),s("change_fingerprints",{option:"Secondary"})}return E}(),tooltip:D}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood Type",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,mb:-.5,children:[b.map(function(E){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:E,selected:B===E,onClick:function(){function P(){return s("change_blood_type",{new_type:E})}return P}()})},E)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file-signature",onClick:function(){function E(){return s("change_blood_type",{option:"Primary"})}return E}()})})]})}),(0,e.createComponentVNode)(2,I,{label:"DNA",value:L,onCommit:function(){function E(P,R){return s("change_dna_hash",{new_dna:R})}return E}(),onClick:function(){function E(){return s("change_dna_hash",{option:"Primary"})}return E}(),onRClick:function(){function E(P){P.preventDefault(),s("change_dna_hash",{option:"Secondary"})}return E}(),tooltip:D}),(0,e.createComponentVNode)(2,I,{label:"Account",value:y||0,onCommit:function(){function E(P,R){return s("change_money_account",{new_account:R})}return E}(),onClick:function(){function E(){return s("change_money_account",{option:"Primary"})}return E}(),onRClick:function(){function E(P){P.preventDefault(),s("change_money_account",{option:"Secondary"})}return E}(),tooltip:D}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Photo",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!M,tooltip:M?"":"You can't generate a new photo yet.",onClick:function(){function E(){return s("change_photo")}return E}(),children:x?"Update":S})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Card Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Card Info",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{fluid:!0,textAlign:"center",content:"Delete Card Info",confirmContent:"Are you sure?",onClick:function(){function E(){return s("delete_info")}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Access",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{fluid:!0,textAlign:"center",content:"Reset Access",confirmContent:"Are you sure?",onClick:function(){function E(){return s("clear_access")}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"AI Tracking",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",onClick:function(){function E(){return s("change_ai_tracking")}return E}(),children:T?"Untrackable":"Trackable"})})]})})})],4)}return c}(),d=r.AgentCardAppearances=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,i=u.data,h=(0,a.useSharedState)(l,"selectedAppearance",null),C=h[0],v=h[1],p=i.appearances,N=i.id_icon;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Card Appearance",children:p.map(function(V){return(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:N,dmIconState:V,imageSize:64,compact:!0,selected:V===C,tooltip:V,style:{opacity:V===C&&"1"||"0.5"},onClick:function(){function y(){v(V),s("change_appearance",{new_appearance:V})}return y}()},V)})})})}return c}()},56793:function(A,r,n){"use strict";r.__esModule=!0,r.AiAirlock=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}},b=r.AiAirlock=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=f[c.power.main]||f[0],l=f[c.power.backup]||f[0],u=f[c.shock]||f[0];return(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Power Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Main",color:m.color,buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:"lightbulb-o",disabled:!c.power.main,content:"Disrupt",onClick:function(){function s(){return d("disrupt-main")}return s}()}),children:[c.power.main?"Online":"Offline"," ",!c.wires.main_power&&"[Wires have been cut!]"||c.power.main_timeleft>0&&"["+c.power.main_timeleft+"s]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Backup",color:l.color,buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:"lightbulb-o",disabled:!c.power.backup,content:"Disrupt",onClick:function(){function s(){return d("disrupt-backup")}return s}()}),children:[c.power.backup?"Online":"Offline"," ",!c.wires.backup_power&&"[Wires have been cut!]"||c.power.backup_timeleft>0&&"["+c.power.backup_timeleft+"s]"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Electrify",color:u.color,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{mr:.5,icon:"wrench",disabled:!(c.wires.shock&&c.shock!==2),content:"Restore",onClick:function(){function s(){return d("shock-restore")}return s}()}),(0,e.createComponentVNode)(2,t.Button,{mr:.5,icon:"bolt",disabled:!c.wires.shock,content:"Temporary",onClick:function(){function s(){return d("shock-temp")}return s}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"bolt",disabled:!c.wires.shock||c.shock===0,content:"Permanent",onClick:function(){function s(){return d("shock-perm")}return s}()})],4),children:[c.shock===2?"Safe":"Electrified"," ",!c.wires.shock&&"[Wires have been cut!]"||c.shock_timeleft>0&&"["+c.shock_timeleft+"s]"||c.shock_timeleft===-1&&"[Permanent]"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Access and Door Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.id_scanner?"power-off":"times",content:c.id_scanner?"Enabled":"Disabled",selected:c.id_scanner,disabled:!c.wires.id_scanner,onClick:function(){function s(){return d("idscan-toggle")}return s}()}),children:!c.wires.id_scanner&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Access",buttons:(0,e.createComponentVNode)(2,t.Button,{width:6.5,icon:c.emergency?"power-off":"times",content:c.emergency?"Enabled":"Disabled",selected:c.emergency,onClick:function(){function s(){return d("emergency-toggle")}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,icon:c.locked?"lock":"unlock",content:c.locked?"Lowered":"Raised",selected:c.locked,disabled:!c.wires.bolts,onClick:function(){function s(){return d("bolt-toggle")}return s}()}),children:!c.wires.bolts&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.lights?"power-off":"times",content:c.lights?"Enabled":"Disabled",selected:c.lights,disabled:!c.wires.lights,onClick:function(){function s(){return d("light-toggle")}return s}()}),children:!c.wires.lights&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.safe?"power-off":"times",content:c.safe?"Enabled":"Disabled",selected:c.safe,disabled:!c.wires.safe,onClick:function(){function s(){return d("safe-toggle")}return s}()}),children:!c.wires.safe&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{mb:.5,width:6.5,icon:c.speed?"power-off":"times",content:c.speed?"Enabled":"Disabled",selected:c.speed,disabled:!c.wires.timing,onClick:function(){function s(){return d("speed-toggle")}return s}()}),children:!c.wires.timing&&"[Wires have been cut!]"}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:c.opened?"sign-out-alt":"sign-in-alt",content:c.opened?"Open":"Closed",selected:c.opened,disabled:c.locked||c.welded,onClick:function(){function s(){return d("open-close")}return s}()}),children:!!(c.locked||c.welded)&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("[Door is "),c.locked?"bolted":"",c.locked&&c.welded?" and ":"",c.welded?"welded":"",(0,e.createTextVNode)("!]")],0)})]})})]})})}return S}()},72475:function(A,r,n){"use strict";r.__esModule=!0,r.AirAlarm=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(195),b=r.AirAlarm=function(){function u(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.locked;return(0,e.createComponentVNode)(2,o.Window,{width:570,height:p?310:755,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.InterfaceLockNoticeBox),(0,e.createComponentVNode)(2,I),!p&&(0,e.createFragment)([(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g)],4)]})})}return u}(),S=function(s){return s===0?"green":s===1?"orange":"red"},I=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.air,N=v.mode,V=v.atmos_alarm,y=v.locked,B=v.alarmActivated,L=v.rcon,w=v.target_temp,x;return p.danger.overall===0?V===0?x="Optimal":x="Caution: Atmos alert in area":p.danger.overall===1?x="Caution":x="DANGER: Internals Required",(0,e.createComponentVNode)(2,t.Section,{title:"Air Status",children:p?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure",children:(0,e.createComponentVNode)(2,t.Box,{color:S(p.danger.pressure),children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.pressure})," kPa",!y&&(0,e.createFragment)([(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,t.Button,{content:N===3?"Deactivate Panic Siphon":"Activate Panic Siphon",selected:N===3,icon:"exclamation-triangle",onClick:function(){function T(){return C("mode",{mode:N===3?1:3})}return T}()})],4)]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Oxygen",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.oxygen/100,fractionDigits:"1",color:S(p.danger.oxygen)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nitrogen",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.nitrogen/100,fractionDigits:"1",color:S(p.danger.nitrogen)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Carbon Dioxide",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.co2/100,fractionDigits:"1",color:S(p.danger.co2)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Toxins",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.plasma/100,fractionDigits:"1",color:S(p.danger.plasma)})}),p.contents.n2o>.1&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nitrous Oxide",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.n2o/100,fractionDigits:"1",color:S(p.danger.n2o)})}),p.contents.other>.1&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Other",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:p.contents.other/100,fractionDigits:"1",color:S(p.danger.other)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,t.Box,{color:S(p.danger.temperature),children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.temperature})," K / ",(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:p.temperature_c})," C\xA0",(0,e.createComponentVNode)(2,t.Button,{icon:"thermometer-full",content:w+" C",onClick:function(){function T(){return C("temperature")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{content:p.thermostat_state?"On":"Off",selected:p.thermostat_state,icon:"power-off",onClick:function(){function T(){return C("thermostat_state")}return T}()})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Local Status",children:(0,e.createComponentVNode)(2,t.Box,{color:S(p.danger.overall),children:[x,!y&&(0,e.createFragment)([(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,t.Button,{content:B?"Reset Alarm":"Activate Alarm",selected:B,onClick:function(){function T(){return C(B?"atmos_reset":"atmos_alarm")}return T}()})],4)]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Remote Control Settings",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Off",selected:L===1,onClick:function(){function T(){return C("set_rcon",{rcon:1})}return T}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Auto",selected:L===2,onClick:function(){function T(){return C("set_rcon",{rcon:2})}return T}()}),(0,e.createComponentVNode)(2,t.Button,{content:"On",selected:L===3,onClick:function(){function T(){return C("set_rcon",{rcon:3})}return T}()})]})]}):(0,e.createComponentVNode)(2,t.Box,{children:"Unable to acquire air sample!"})})},k=function(s,i){var h=(0,a.useLocalState)(i,"tabIndex",0),C=h[0],v=h[1];return(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===0,onClick:function(){function p(){return v(0)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"sign-out-alt"})," Vent Control"]},"Vents"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===1,onClick:function(){function p(){return v(1)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"sign-in-alt"})," Scrubber Control"]},"Scrubbers"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===2,onClick:function(){function p(){return v(2)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cog"})," Mode"]},"Mode"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C===3,onClick:function(){function p(){return v(3)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"tachometer-alt"})," Thresholds"]},"Thresholds")]})},g=function(s,i){var h=(0,a.useLocalState)(i,"tabIndex",0),C=h[0],v=h[1];switch(C){case 0:return(0,e.createComponentVNode)(2,d);case 1:return(0,e.createComponentVNode)(2,c);case 2:return(0,e.createComponentVNode)(2,m);case 3:return(0,e.createComponentVNode)(2,l);default:return"WE SHOULDN'T BE HERE!"}},d=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.vents;return p.map(function(N){return(0,e.createComponentVNode)(2,t.Section,{title:N.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[(0,e.createComponentVNode)(2,t.Button,{content:N.power?"On":"Off",selected:N.power,icon:"power-off",onClick:function(){function V(){return C("command",{cmd:"power",val:!N.power,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N.direction?"Blowing":"Siphoning",icon:N.direction?"sign-out-alt":"sign-in-alt",onClick:function(){function V(){return C("command",{cmd:"direction",val:!N.direction,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure Checks",children:[(0,e.createComponentVNode)(2,t.Button,{content:"External",selected:N.checks===1,onClick:function(){function V(){return C("command",{cmd:"checks",val:1,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Internal",selected:N.checks===2,onClick:function(){function V(){return C("command",{cmd:"checks",val:2,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"External Pressure Target",children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:N.external})," kPa\xA0",(0,e.createComponentVNode)(2,t.Button,{content:"Set",icon:"cog",onClick:function(){function V(){return C("command",{cmd:"set_external_pressure",id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Reset",icon:"redo-alt",onClick:function(){function V(){return C("command",{cmd:"set_external_pressure",val:101.325,id_tag:N.id_tag})}return V}()})]})]})},N.name)})},c=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.scrubbers;return p.map(function(N){return(0,e.createComponentVNode)(2,t.Section,{title:N.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[(0,e.createComponentVNode)(2,t.Button,{content:N.power?"On":"Off",selected:N.power,icon:"power-off",onClick:function(){function V(){return C("command",{cmd:"power",val:!N.power,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N.scrubbing?"Scrubbing":"Siphoning",icon:N.scrubbing?"filter":"sign-in-alt",onClick:function(){function V(){return C("command",{cmd:"scrubbing",val:!N.scrubbing,id_tag:N.id_tag})}return V}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Range",children:(0,e.createComponentVNode)(2,t.Button,{content:N.widenet?"Extended":"Normal",selected:N.widenet,icon:"expand-arrows-alt",onClick:function(){function V(){return C("command",{cmd:"widenet",val:!N.widenet,id_tag:N.id_tag})}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Filtering",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Carbon Dioxide",selected:N.filter_co2,onClick:function(){function V(){return C("command",{cmd:"co2_scrub",val:!N.filter_co2,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Plasma",selected:N.filter_toxins,onClick:function(){function V(){return C("command",{cmd:"tox_scrub",val:!N.filter_toxins,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Nitrous Oxide",selected:N.filter_n2o,onClick:function(){function V(){return C("command",{cmd:"n2o_scrub",val:!N.filter_n2o,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Oxygen",selected:N.filter_o2,onClick:function(){function V(){return C("command",{cmd:"o2_scrub",val:!N.filter_o2,id_tag:N.id_tag})}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Nitrogen",selected:N.filter_n2,onClick:function(){function V(){return C("command",{cmd:"n2_scrub",val:!N.filter_n2,id_tag:N.id_tag})}return V}()})]})]})},N.name)})},m=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.modes,N=v.presets,V=v.emagged,y=v.mode,B=v.preset;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"System Mode",children:Object.keys(p).map(function(L){var w=p[L];if(!w.emagonly||V)return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",width:1,children:(0,e.createComponentVNode)(2,t.Button,{content:w.name,icon:"cog",selected:w.id===y,onClick:function(){function x(){return C("mode",{mode:w.id})}return x}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:w.desc})]},w.name)})}),(0,e.createComponentVNode)(2,t.Section,{title:"System Presets",children:[(0,e.createComponentVNode)(2,t.Box,{italic:!0,children:"After making a selection, the system will automatically cycle in order to remove contaminants."}),(0,e.createComponentVNode)(2,t.Table,{mt:1,children:N.map(function(L){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",width:1,children:(0,e.createComponentVNode)(2,t.Button,{content:L.name,icon:"cog",selected:L.id===B,onClick:function(){function w(){return C("preset",{preset:L.id})}return w}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.desc})]},L.name)})})]})],4)},l=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.thresholds;return(0,e.createComponentVNode)(2,t.Section,{title:"Alarm Thresholds",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"20%",children:"Value"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"red",width:"20%",children:"Danger Min"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"orange",width:"20%",children:"Warning Min"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"orange",width:"20%",children:"Warning Max"}),(0,e.createComponentVNode)(2,t.Table.Cell,{color:"red",width:"20%",children:"Danger Max"})]}),p.map(function(N){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:N.name}),N.settings.map(function(V){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:V.selected===-1?"Off":V.selected,onClick:function(){function y(){return C("command",{cmd:"set_threshold",env:V.env,var:V.val})}return y}()})},V.val)})]},N.name)})]})})}},12333:function(A,r,n){"use strict";r.__esModule=!0,r.AirlockAccessController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AirlockAccessController=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.exterior_status,m=d.interior_status,l=d.processing,u,s;return c==="open"?u=(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Lock Exterior Door",icon:"exclamation-triangle",disabled:l,onClick:function(){function i(){return g("force_ext")}return i}()}):u=(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:l,onClick:function(){function i(){return g("cycle_ext_door")}return i}()}),m==="open"?s=(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Lock Interior Door",icon:"exclamation-triangle",disabled:l,color:m==="open"?"red":l?"yellow":null,onClick:function(){function i(){return g("force_int")}return i}()}):s=(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Cycle to Interior",icon:"arrow-circle-right",disabled:l,onClick:function(){function i(){return g("cycle_int_door")}return i}()}),(0,e.createComponentVNode)(2,o.Window,{width:330,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Information",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"External Door Status",children:c==="closed"?"Locked":"Open"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Internal Door Status",children:m==="closed"?"Locked":"Open"})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Actions",children:(0,e.createComponentVNode)(2,t.Box,{children:[u,s]})})]})})}return b}()},28736:function(A,r,n){"use strict";r.__esModule=!0,r.AirlockElectronics=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49148),b=1,S=2,I=4,k=8,g=r.AirlockElectronics=function(){function m(l,u){return(0,e.createComponentVNode)(2,o.Window,{width:450,height:565,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,d),(0,e.createComponentVNode)(2,c)]})})})}return m}(),d=function(l,u){var s=(0,a.useBackend)(u),i=s.act,h=s.data,C=h.unrestricted_dir;return(0,e.createComponentVNode)(2,t.Section,{title:"Access Control",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,mb:1,children:"Unrestricted Access From:"}),(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-left",content:"East",selected:C&I,onClick:function(){function v(){return i("unrestricted_access",{unres_dir:I})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-up",content:"South",selected:C&S,onClick:function(){function v(){return i("unrestricted_access",{unres_dir:S})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-right",content:"West",selected:C&k,onClick:function(){function v(){return i("unrestricted_access",{unres_dir:k})}return v}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"arrow-down",content:"North",selected:C&b,onClick:function(){function v(){return i("unrestricted_access",{unres_dir:b})}return v}()})})]})]})})},c=function(l,u){var s=(0,a.useBackend)(u),i=s.act,h=s.data,C=h.selected_accesses,v=h.one_access,p=h.regions;return(0,e.createComponentVNode)(2,f.AccessList,{usedByRcd:1,rcdButtons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:v,content:"One",onClick:function(){function N(){return i("set_one_access",{access:"one"})}return N}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!v,content:"All",onClick:function(){function N(){return i("set_one_access",{access:"all"})}return N}()})],4),accesses:p,selectedList:C,accessMod:function(){function N(V){return i("set",{access:V})}return N}(),grantAll:function(){function N(){return i("grant_all")}return N}(),denyAll:function(){function N(){return i("clear_all")}return N}(),grantDep:function(){function N(V){return i("grant_region",{region:V})}return N}(),denyDep:function(){function N(V){return i("deny_region",{region:V})}return N}()})}},47365:function(A,r,n){"use strict";r.__esModule=!0,r.AlertModal=void 0;var e=n(89005),a=n(51057),t=n(72253),o=n(92986),f=n(36036),b=n(98595),S=-1,I=1,k=r.AlertModal=function(){function c(m,l){var u=(0,t.useBackend)(l),s=u.act,i=u.data,h=i.autofocus,C=i.buttons,v=C===void 0?[]:C,p=i.large_buttons,N=i.message,V=N===void 0?"":N,y=i.timeout,B=i.title,L=(0,t.useLocalState)(l,"selected",0),w=L[0],x=L[1],T=110+(V.length>30?Math.ceil(V.length/4):0)+(V.length&&p?5:0),M=325+(v.length>2?100:0),O=function(){function D(E){w===0&&E===S?x(v.length-1):w===v.length-1&&E===I?x(0):x(w+E)}return D}();return(0,e.createComponentVNode)(2,b.Window,{title:B,height:T,width:M,children:[!!y&&(0,e.createComponentVNode)(2,a.Loader,{value:y}),(0,e.createComponentVNode)(2,b.Window.Content,{onKeyDown:function(){function D(E){var P=window.event?E.which:E.keyCode;P===o.KEY_SPACE||P===o.KEY_ENTER?s("choose",{choice:v[w]}):P===o.KEY_ESCAPE?s("cancel"):P===o.KEY_LEFT?(E.preventDefault(),O(S)):(P===o.KEY_TAB||P===o.KEY_RIGHT)&&(E.preventDefault(),O(I))}return D}(),children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,m:1,children:(0,e.createComponentVNode)(2,f.Box,{color:"label",overflow:"hidden",children:V})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:[!!h&&(0,e.createComponentVNode)(2,f.Autofocus),(0,e.createComponentVNode)(2,g,{selected:w})]})]})})})]})}return c}(),g=function(m,l){var u=(0,t.useBackend)(l),s=u.data,i=s.buttons,h=i===void 0?[]:i,C=s.large_buttons,v=s.swapped_buttons,p=m.selected;return(0,e.createComponentVNode)(2,f.Flex,{fill:!0,align:"center",direction:v?"row":"row-reverse",justify:"space-around",wrap:!0,children:h==null?void 0:h.map(function(N,V){return C&&h.length<3?(0,e.createComponentVNode)(2,f.Flex.Item,{grow:!0,children:(0,e.createComponentVNode)(2,d,{button:N,id:V.toString(),selected:p===V})},V):(0,e.createComponentVNode)(2,f.Flex.Item,{grow:C?1:0,children:(0,e.createComponentVNode)(2,d,{button:N,id:V.toString(),selected:p===V})},V)})})},d=function(m,l){var u=(0,t.useBackend)(l),s=u.act,i=u.data,h=i.large_buttons,C=m.button,v=m.selected,p=C.length>7?"100%":7;return(0,e.createComponentVNode)(2,f.Button,{mx:h?1:0,pt:h?.33:0,content:C,fluid:!!h,onClick:function(){function N(){return s("choose",{choice:C})}return N}(),selected:v,textAlign:"center",height:!!h&&2,width:!h&&p})}},71824:function(A,r,n){"use strict";r.__esModule=!0,r.AppearanceChanger=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AppearanceChanger=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.change_race,l=c.species,u=c.specimen,s=c.change_gender,i=c.gender,h=c.change_eye_color,C=c.change_skin_tone,v=c.change_skin_color,p=c.change_runechat_color,N=c.change_head_accessory_color,V=c.change_hair_color,y=c.change_secondary_hair_color,B=c.change_facial_hair_color,L=c.change_secondary_facial_hair_color,w=c.change_head_marking_color,x=c.change_body_marking_color,T=c.change_tail_marking_color,M=c.change_head_accessory,O=c.head_accessory_styles,D=c.head_accessory_style,E=c.change_hair,P=c.hair_styles,R=c.hair_style,j=c.change_hair_gradient,F=c.change_facial_hair,W=c.facial_hair_styles,z=c.facial_hair_style,K=c.change_head_markings,G=c.head_marking_styles,J=c.head_marking_style,Q=c.change_body_markings,ue=c.body_marking_styles,ie=c.body_marking_style,pe=c.change_tail_markings,te=c.tail_marking_styles,q=c.tail_marking_style,ne=c.change_body_accessory,le=c.body_accessory_styles,ee=c.body_accessory_style,re=c.change_alt_head,oe=c.alt_head_styles,fe=c.alt_head_style,me=!1;return(h||C||v||N||p||V||y||B||L||w||x||T)&&(me=!0),(0,e.createComponentVNode)(2,o.Window,{width:800,height:450,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Species",children:l.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.specimen,selected:Y.specimen===u,onClick:function(){function ve(){return d("race",{race:Y.specimen})}return ve}()},Y.specimen)})}),!!s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gender",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Male",selected:i==="male",onClick:function(){function Y(){return d("gender",{gender:"male"})}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Female",selected:i==="female",onClick:function(){function Y(){return d("gender",{gender:"female"})}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Genderless",selected:i==="plural",onClick:function(){function Y(){return d("gender",{gender:"plural"})}return Y}()})]}),!!me&&(0,e.createComponentVNode)(2,b),!!M&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Head accessory",children:O.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.headaccessorystyle,selected:Y.headaccessorystyle===D,onClick:function(){function ve(){return d("head_accessory",{head_accessory:Y.headaccessorystyle})}return ve}()},Y.headaccessorystyle)})}),!!E&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hair",children:P.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.hairstyle,selected:Y.hairstyle===R,onClick:function(){function ve(){return d("hair",{hair:Y.hairstyle})}return ve}()},Y.hairstyle)})}),!!j&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hair Gradient",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Change Style",onClick:function(){function Y(){return d("hair_gradient")}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Offset",onClick:function(){function Y(){return d("hair_gradient_offset")}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Color",onClick:function(){function Y(){return d("hair_gradient_colour")}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Change Alpha",onClick:function(){function Y(){return d("hair_gradient_alpha")}return Y}()})]}),!!F&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Facial hair",children:W.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.facialhairstyle,selected:Y.facialhairstyle===z,onClick:function(){function ve(){return d("facial_hair",{facial_hair:Y.facialhairstyle})}return ve}()},Y.facialhairstyle)})}),!!K&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Head markings",children:G.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.headmarkingstyle,selected:Y.headmarkingstyle===J,onClick:function(){function ve(){return d("head_marking",{head_marking:Y.headmarkingstyle})}return ve}()},Y.headmarkingstyle)})}),!!Q&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Body markings",children:ue.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.bodymarkingstyle,selected:Y.bodymarkingstyle===ie,onClick:function(){function ve(){return d("body_marking",{body_marking:Y.bodymarkingstyle})}return ve}()},Y.bodymarkingstyle)})}),!!pe&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tail markings",children:te.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.tailmarkingstyle,selected:Y.tailmarkingstyle===q,onClick:function(){function ve(){return d("tail_marking",{tail_marking:Y.tailmarkingstyle})}return ve}()},Y.tailmarkingstyle)})}),!!ne&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Body accessory",children:le.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.bodyaccessorystyle,selected:Y.bodyaccessorystyle===ee,onClick:function(){function ve(){return d("body_accessory",{body_accessory:Y.bodyaccessorystyle})}return ve}()},Y.bodyaccessorystyle)})}),!!re&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alternate head",children:oe.map(function(Y){return(0,e.createComponentVNode)(2,t.Button,{content:Y.altheadstyle,selected:Y.altheadstyle===fe,onClick:function(){function ve(){return d("alt_head",{alt_head:Y.altheadstyle})}return ve}()},Y.altheadstyle)})})]})})})}return S}(),b=function(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=[{key:"change_eye_color",text:"Change eye color",action:"eye_color"},{key:"change_skin_tone",text:"Change skin tone",action:"skin_tone"},{key:"change_skin_color",text:"Change skin color",action:"skin_color"},{key:"change_runechat_color",text:"Change runechat color",action:"runechat_color"},{key:"change_head_accessory_color",text:"Change head accessory color",action:"head_accessory_color"},{key:"change_hair_color",text:"Change hair color",action:"hair_color"},{key:"change_secondary_hair_color",text:"Change secondary hair color",action:"secondary_hair_color"},{key:"change_facial_hair_color",text:"Change facial hair color",action:"facial_hair_color"},{key:"change_secondary_facial_hair_color",text:"Change secondary facial hair color",action:"secondary_facial_hair_color"},{key:"change_head_marking_color",text:"Change head marking color",action:"head_marking_color"},{key:"change_body_marking_color",text:"Change body marking color",action:"body_marking_color"},{key:"change_tail_marking_color",text:"Change tail marking color",action:"tail_marking_color"}];return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Colors",children:m.map(function(l){return!!c[l.key]&&(0,e.createComponentVNode)(2,t.Button,{content:l.text,onClick:function(){function u(){return d(l.action)}return u}()},l.key)})})}},72285:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosAlertConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosAlertConsole=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.priority||[],m=d.minor||[],l=d.mode||{};return(0,e.createComponentVNode)(2,o.Window,{width:350,height:300,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Alarms",children:(0,e.createVNode)(1,"ul",null,[c.length===0&&(0,e.createVNode)(1,"li","color-good","No Priority Alerts",16),c.map(function(u){return(0,e.createVNode)(1,"li","color-bad",u,0,null,u)}),m.length===0&&(0,e.createVNode)(1,"li","color-good","No Minor Alerts",16),m.map(function(u){return(0,e.createVNode)(1,"li","color-average",u,0,null,u)}),Object.keys(l).length===0&&(0,e.createVNode)(1,"li","color-good","All Areas Filtering",16),Object.keys(l).map(function(u){return(0,e.createVNode)(1,"li","color-good",[u,(0,e.createTextVNode)(" mode is "),l[u]],0,null,alert)})],0)})})})}return b}()},65805:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(36352),f=n(98595),b=function(c){if(c===0)return(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Good"});if(c===1)return(0,e.createComponentVNode)(2,t.Box,{color:"orange",bold:!0,children:"Warning"});if(c===2)return(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,children:"DANGER"})},S=function(c){if(c===0)return"green";if(c===1)return"orange";if(c===2)return"red"},I=r.AtmosControl=function(){function d(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=(0,a.useLocalState)(m,"tabIndex",0),h=i[0],C=i[1],v=function(){function p(N){switch(N){case 0:return(0,e.createComponentVNode)(2,k);case 1:return(0,e.createComponentVNode)(2,g);default:return"WE SHOULDN'T BE HERE!"}}return p}();return(0,e.createComponentVNode)(2,f.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:h===0,children:(0,e.createComponentVNode)(2,t.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===0,onClick:function(){function p(){return C(0)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"table"})," Data View"]},"DataView"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===1,onClick:function(){function p(){return C(1)}return p}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"map-marked-alt"})," Map View"]},"MapView")]}),v(h)]})})})}return d}(),k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.alarms;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Access"})]}),i.map(function(h){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,o.TableCell,{children:h.name}),(0,e.createComponentVNode)(2,o.TableCell,{children:b(h.danger)}),(0,e.createComponentVNode)(2,o.TableCell,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Access",onClick:function(){function C(){return u("open_alarm",{aref:h.ref})}return C}()})})]},h.name)})]})})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.alarms;return(0,e.createComponentVNode)(2,t.Box,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,e.createComponentVNode)(2,t.NanoMap,{children:i.filter(function(h){return h.z===3}).map(function(h){return(0,e.createComponentVNode)(2,t.NanoMap.MarkerIcon,{x:h.x,y:h.y,icon:"circle",tooltip:h.name,color:S(h.danger),onClick:function(){function C(){return u("open_alarm",{aref:h.ref})}return C}()},h.ref)})})})}},87816:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosFilter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosFilter=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.on,m=d.pressure,l=d.max_pressure,u=d.filter_type,s=d.filter_type_list;return(0,e.createComponentVNode)(2,o.Window,{width:380,height:140,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:c?"On":"Off",color:c?null:"red",selected:c,onClick:function(){function i(){return g("power")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:m===0,width:2.2,onClick:function(){function i(){return g("min_pressure")}return i}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:l,value:m,onDrag:function(){function i(h,C){return g("custom_pressure",{pressure:C})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:m===l,width:2.2,onClick:function(){function i(){return g("max_pressure")}return i}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Filter",children:s.map(function(i){return(0,e.createComponentVNode)(2,t.Button,{selected:i.gas_type===u,content:i.label,onClick:function(){function h(){return g("set_filter",{filter:i.gas_type})}return h}()},i.label)})})]})})})})}return b}()},57258:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosGraphMonitor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(44879),b=n(88510),S=n(35840),I=["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth","horizontalLinesCount","verticalLinesCount","gridColor","gridWidth","pointTextColor","pointTextSize","labelViewBoxSize"];function k(i,h){if(i==null)return{};var C={};for(var v in i)if({}.hasOwnProperty.call(i,v)){if(h.includes(v))continue;C[v]=i[v]}return C}function g(i,h){i.prototype=Object.create(h.prototype),i.prototype.constructor=i,d(i,h)}function d(i,h){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(C,v){return C.__proto__=v,C},d(i,h)}var c=r.AtmosGraphMonitor=function(){function i(h,C){var v=(0,a.useBackend)(C),p=v.data,N=(0,a.useLocalState)(C,"tabIndex",0),V=N[0],y=N[1],B=function(){function w(x){switch(x){case 0:return(0,e.createComponentVNode)(2,m,{data:p,info:"\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0437\u0430\u043F\u0438\u0441\u0438 T = 60 \u0441. | \u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u043C\u0435\u0436\u0434\u0443 \u0437\u0430\u043F\u0438\u0441\u044F\u043C\u0438 t = 3 \u0441.",pressureListName:"pressure_history",temperatureListName:"temperature_history"});case 1:return(0,e.createComponentVNode)(2,m,{data:p,info:"\u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u0437\u0430\u043F\u0438\u0441\u0438 T = 10 \u043C\u0438\u043D. | \u0418\u043D\u0442\u0435\u0440\u0432\u0430\u043B \u043C\u0435\u0436\u0434\u0443 \u0437\u0430\u043F\u0438\u0441\u044F\u043C\u0438 t = 30 \u0441.",pressureListName:"long_pressure_history",temperatureListName:"long_temperature_history"});default:return"WE SHOULDN'T BE HERE!"}}return w}(),L=function(){function w(x){switch(x){case 0:return 180;case 1:return 350;case 2:return 590;case 3:return 830;default:return 870}}return w}();return(0,e.createComponentVNode)(2,o.Window,{width:700,height:L(Object.keys(p.sensors).length),children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:V===0,onClick:function(){function w(){return y(0)}return w}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"area-chart"})," \u0422\u0435\u043A\u0443\u0449\u0438\u0435"]},"View"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:V===1,onClick:function(){function w(){return y(1)}return w}(),children:[(0,e.createComponentVNode)(2,t.Icon,{name:"bar-chart"})," \u0418\u0441\u0442\u043E\u0440\u0438\u044F"]},"History")]}),B(V),Object.keys(p.sensors).length===0&&(0,e.createComponentVNode)(2,t.Box,{pt:2,textAlign:"center",textColor:"gray",bold:!0,fontSize:1.3,children:"\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0435 gas sensor \u0438\u043B\u0438 meter \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E multitool"})]})})})}return i}(),m=function(h){var C=h.data,v=h.info,p=h.pressureListName,N=h.temperatureListName,V=C.sensors||{},y=function(T,M){return V[T][M].slice(-1)[0]},B=function(T,M){return Math.min.apply(Math,V[T][M])},L=function(T,M){return Math.max.apply(Math,V[T][M])},w=function(T,M){return V[T][M].map(function(O,D){return[D,O]})};return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{color:"gray",children:v}),Object.keys(V).map(function(x){return(0,e.createComponentVNode)(2,t.Section,{title:x,children:(0,e.createComponentVNode)(2,t.Section,{px:2,children:[N in V[x]&&(0,e.createComponentVNode)(2,t.Box,{mb:4,children:[(0,e.createComponentVNode)(2,t.Box,{children:"\u0422\u0435\u043C\u043F\u0435\u0440\u0430\u0442\u0443\u0440\u0430: "+(0,f.toFixed)(y(x,N),0)+"\u041A (MIN: "+(0,f.toFixed)(B(x,N),0)+"\u041A; MAX: "+(0,f.toFixed)(L(x,N),0)+"\u041A)"}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,height:5,mt:1,children:(0,e.createComponentVNode)(2,s,{fillPositionedParent:!0,data:w(x,N),rangeX:[0,w(x,N).length-1],rangeY:[B(x,N)-10,L(x,N)+5],strokeColor:"rgba(219, 40, 40, 1)",fillColor:"rgba(219, 40, 40, 0.1)",horizontalLinesCount:2,verticalLinesCount:w(x,N).length-2,labelViewBoxSize:400})})]}),p in V[x]&&(0,e.createComponentVNode)(2,t.Box,{mb:-1,children:[(0,e.createComponentVNode)(2,t.Box,{children:"\u0414\u0430\u0432\u043B\u0435\u043D\u0438\u0435: "+(0,f.toFixed)(y(x,p),0)+"\u043A\u041F\u0430 (MIN: "+(0,f.toFixed)(B(x,p),0)+"\u043A\u041F\u0430; MAX: "+(0,f.toFixed)(L(x,p),0)+"\u043A\u041F\u0430)"}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,height:5,mt:1,children:(0,e.createComponentVNode)(2,s,{fillPositionedParent:!0,data:w(x,p),rangeX:[0,w(x,p).length-1],rangeY:[B(x,p)-10,L(x,p)+5],strokeColor:"rgba(40, 219, 40, 1)",fillColor:"rgba(40, 219, 40, 0.1)",horizontalLinesCount:2,verticalLinesCount:w(x,p).length-2,labelViewBoxSize:400})})]})]})},x)})]})},l=function(h,C,v,p){if(h.length===0)return[];var N=(0,b.zipWith)(Math.min).apply(void 0,h),V=(0,b.zipWith)(Math.max).apply(void 0,h);v!==void 0&&(N[0]=v[0],V[0]=v[1]),p!==void 0&&(N[1]=p[0],V[1]=p[1]);var y=function(x,T,M,O){return(x-T)/(M-T)*O},B=(0,b.zipWith)(y),L=(0,b.map)(function(w){return B(w,N,V,C)});return L(h)},u=function(h){for(var C="",v=0;v0){var le=ne[0],ee=ne[ne.length-1];ne.push([q[0]+D,ee[1]]),ne.push([q[0]+D,-D]),ne.push([-D,-D]),ne.push([-D,le[1]])}var re=u(ne);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Box,Object.assign({position:"relative"},te,{children:function(){function oe(fe){return(0,e.normalizeProps)((0,e.createVNode)(1,"div",null,(0,e.createVNode)(32,"svg",null,[Array.from({length:P}).map(function(me,Y){return(0,e.createVNode)(32,"line",null,null,1,{x1:0,y1:(Y+1)*(q[1]/(P+1)),x2:q[0],y2:(Y+1)*(q[1]/(P+1)),stroke:W,"stroke-width":K},"horizontal-line-"+Y)}),Array.from({length:j}).map(function(me,Y){return(0,e.createVNode)(32,"line",null,null,1,{x1:(Y+1)*(q[0]/(j+1)),y1:0,x2:(Y+1)*(q[0]/(j+1)),y2:q[1],stroke:W,"stroke-width":K},"vertical-line-"+Y)}),(0,e.createVNode)(32,"polyline",null,null,1,{transform:"scale(1, -1) translate(0, -"+q[1]+")",fill:x,points:re}),y.map(function(me,Y){return Y===0?null:(0,e.createVNode)(32,"line",null,null,1,{x1:ne[Y-1][0],y1:q[1]-ne[Y-1][1],x2:ne[Y][0],y2:q[1]-ne[Y][1],stroke:M,"stroke-width":D},"line-"+Y)}),y.map(function(me,Y){return(0,e.createVNode)(32,"circle",null,null,1,{cx:ne[Y][0],cy:q[1]-ne[Y][1],r:2,fill:"#ffffff",stroke:M,"stroke-width":1},"point-"+Y)}),y.map(function(me,Y){return q[0]>pe&&Y%2===1&&(0,e.createVNode)(32,"text",null,me[1]!==null?me[1].toFixed(0):"N/A",0,{x:ne[Y][0],y:q[1]-ne[Y][1],fill:J,"font-size":ue,dy:"1em",style:{"text-anchor":"end"}},"point-text-"+Y)})],0,{viewBox:"0 0 "+q[0]+" "+q[1]}),2,Object.assign({},fe),null,p.ref))}return oe}()})))}return v}(),h}(e.Component);s.defaultHooks=void 0,s.defaultHooks=S.pureComponentHooks},52977:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosMixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosMixer=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.on,l=c.pressure,u=c.max_pressure,s=c.node1_concentration,i=c.node2_concentration;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:165,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:m?"On":"Off",color:m?null:"red",selected:m,onClick:function(){function h(){return d("power")}return h}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:l===0,width:2.2,onClick:function(){function h(){return d("min_pressure")}return h}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:u,value:l,onDrag:function(){function h(C,v){return d("custom_pressure",{pressure:v})}return h}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:l===u,width:2.2,onClick:function(){function h(){return d("max_pressure")}return h}()})]}),(0,e.createComponentVNode)(2,b,{node_name:"Node 1",node_ref:s}),(0,e.createComponentVNode)(2,b,{node_name:"Node 2",node_ref:i})]})})})})}return S}(),b=function(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=I.node_name,l=I.node_ref;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:m,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",width:2.2,disabled:l===0,onClick:function(){function u(){return d("set_node",{node_name:m,concentration:(l-10)/100})}return u}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"%",width:6.1,lineHeight:1.5,stepPixelSize:10,minValue:0,maxValue:100,value:l,onChange:function(){function u(s,i){return d("set_node",{node_name:m,concentration:i/100})}return u}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",width:2.2,disabled:l===100,onClick:function(){function u(){return d("set_node",{node_name:m,concentration:(l+10)/100})}return u}()})]})}},11748:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosPump=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.AtmosPump=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.on,m=d.rate,l=d.max_rate,u=d.gas_unit,s=d.step;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:110,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:c?"On":"Off",color:c?null:"red",selected:c,onClick:function(){function i(){return g("power")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",textAlign:"center",disabled:m===0,width:2.2,onClick:function(){function i(){return g("min_rate")}return i}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:u,width:6.1,lineHeight:1.5,step:s,minValue:0,maxValue:l,value:m,onDrag:function(){function i(h,C){return g("custom_rate",{rate:C})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",textAlign:"center",disabled:m===l,width:2.2,onClick:function(){function i(){return g("max_rate")}return i}()})]})]})})})})}return b}()},69321:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosTankControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(44879),f=n(76910),b=n(98595),S=r.AtmosTankControl=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.sensors||{};return(0,e.createComponentVNode)(2,b.Window,{width:400,height:400,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:[Object.keys(l).map(function(u){return(0,e.createComponentVNode)(2,t.Section,{title:u,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[Object.keys(l[u]).indexOf("pressure")>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Pressure",children:[l[u].pressure," kpa"]}):"",Object.keys(l[u]).indexOf("temperature")>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:[l[u].temperature," K"]}):"",["o2","n2","plasma","co2","n2o"].map(function(s){return Object.keys(l[u]).indexOf(s)>-1?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:(0,f.getGasLabel)(s),children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:(0,f.getGasColor)(s),value:l[u][s],minValue:0,maxValue:100,children:(0,o.toFixed)(l[u][s],2)+"%"})},(0,f.getGasLabel)(s)):""})]})},u)}),m.inlet&&Object.keys(m.inlet).length>0?(0,e.createComponentVNode)(2,t.Section,{title:"Inlet Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:(m.inlet.on,"power-off"),content:m.inlet.on?"On":"Off",color:m.inlet.on?null:"red",selected:m.inlet.on,onClick:function(){function u(){return c("toggle_active",{dev:"inlet"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"L/s",width:6.1,lineHeight:1.5,step:1,minValue:0,maxValue:50,value:m.inlet.rate,onDrag:function(){function u(s,i){return c("set_pressure",{dev:"inlet",val:i})}return u}()})})]})}):"",m.outlet&&Object.keys(m.outlet).length>0?(0,e.createComponentVNode)(2,t.Section,{title:"Outlet Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:(m.outlet.on,"power-off"),content:m.outlet.on?"On":"Off",color:m.outlet.on?null:"red",selected:m.outlet.on,onClick:function(){function u(){return c("toggle_active",{dev:"outlet"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rate",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,unit:"kPa",width:6.1,lineHeight:1.5,step:10,minValue:0,maxValue:5066,value:m.outlet.rate,onDrag:function(){function u(s,i){return c("set_pressure",{dev:"outlet",val:i})}return u}()})})]})}):""]})})}return I}()},92444:function(A,r,n){"use strict";r.__esModule=!0,r.AugmentMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=r.AugmentMenu=function(){function k(g,d){return(0,e.createComponentVNode)(2,o.Window,{width:700,height:660,theme:"malfunction",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:(0,e.createComponentVNode)(2,S,{context:d})})})})}return k}(),S=function(g){var d=g.context,c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.usable_swarms,s=l.ability_tabs,i=l.known_abilities,h=(0,a.useLocalState)(d,"selectedTab",s[0]),C=h[0],v=h[1],p=(0,a.useLocalState)(d,"searchText",""),N=p[0],V=p[1],y=function(){var M=s.find(function(D){return D.category_name===C.category_name});if(!M)return[];var O=Math.min(M.category_stage,4);return M.abilities.filter(function(D){return D.stage<=O&&(!N||D.name.toLowerCase().includes(N.toLowerCase()))}).sort(function(D,E){return["intruder","destroyer"].includes(C.category_name.toLowerCase())?D.stage-E.stage:0})},B=y(),L=s.find(function(T){return T.category_name===C.category_name}),w=["intruder","destroyer"].includes(C.category_name.toLowerCase()),x=function(M){var O=i.find(function(P){return P.ability_path===M.ability_path}),D=O?O.cost:M.cost,E=O&&O.current_level>0?O.current_level+" / "+O.max_level:"0 / "+M.max_level;return(0,e.createComponentVNode)(2,t.Stack.Item,{direction:"row",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{height:"20px",width:"35px",mb:1,textAlign:"center",content:D,disabled:D>u||O&&O.current_level===O.max_level,tooltip:"Purchase this ability?",onClick:function(){function P(){m("purchase",{ability_path:M.ability_path}),v(C)}return P}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",children:M.name})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"13px",children:M.desc||"Description not available"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Level: ",(0,e.createVNode)(1,"span",null,E,0,{style:{color:"green"}}),w&&M.stage>0&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)(" (Stage: "),M.stage,(0,e.createTextVNode)(")")],0)]}),(0,e.createComponentVNode)(2,t.Stack.Divider)]})})]},M.name)};return(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,style:{marginRight:"10px"},children:[(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Swarms: "),(0,e.createVNode)(1,"span",null,u,0,{style:{color:"green"}})],4),w&&L&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)("Category Stage: "),(0,e.createVNode)(1,"span",null,Math.min(L.category_stage,4),0,{style:{color:"green"}})],4)]}),(0,e.createVNode)(1,"div","Section__buttons",(0,e.createComponentVNode)(2,t.Input,{width:"200px",placeholder:"Search Abilities",onInput:function(){function T(M,O){return V(O)}return T}(),value:N}),2)],4,{style:{display:"flex",alignItems:"center"}}),children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[s.map(function(T){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C.category_name===T.category_name,onClick:function(){function M(){v(T),V("")}return M}(),children:(0,f.capitalize)(T.category_name)},T.category_name)}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:C.category_name==="upgrades",onClick:function(){function T(){return v({category_name:"upgrades"})}return T}(),children:"Upgrades"},"upgrades")]}),C.category_name==="upgrades"?(0,e.createComponentVNode)(2,I,{act:m,abilityTabs:s,knownAbilities:i,usableSwarms:u}):(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:B.map(x)})]})},I=function(g){var d=g.act,c=g.abilityTabs,m=g.knownAbilities,l=g.usableSwarms,u=m.filter(function(i){return i.current_levell,tooltip:"Upgrade this ability?",onClick:function(){function v(){return d("purchase",{ability_path:h.ability_path})}return v}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",children:h.name})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"13px",children:h.upgrade_text}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Level:"," ",(0,e.createVNode)(1,"span",null,h.current_level+" / "+h.max_level,0,{style:{color:"green"}}),C&&C.stage>0&&(0,e.createVNode)(1,"span",null,[(0,e.createTextVNode)(" (Stage: "),C.stage,(0,e.createTextVNode)(")")],0)]}),(0,e.createComponentVNode)(2,t.Stack.Divider)]})})]},h.name)};return(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:u.map(s)})}},59179:function(A,r,n){"use strict";r.__esModule=!0,r.Autolathe=void 0;var e=n(89005),a=n(64795),t=n(88510),o=n(72253),f=n(36036),b=n(98595),S=n(25328),I=function(d,c,m,l){return d.requirements===null?!0:!(d.requirements.metal*l>c||d.requirements.glass*l>m)},k=r.Autolathe=function(){function g(d,c){var m=(0,o.useBackend)(c),l=m.act,u=m.data,s=u.total_amount,i=u.max_amount,h=u.metal_amount,C=u.glass_amount,v=u.busyname,p=u.busyamt,N=u.showhacked,V=u.buildQueue,y=u.buildQueueLen,B=u.recipes,L=u.categories,w=(0,o.useSharedState)(c,"category",0),x=w[0],T=w[1];x===0&&(x="Tools");var M=h.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),O=C.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),D=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,"),E=(0,o.useSharedState)(c,"search_text",""),P=E[0],R=E[1],j=(0,S.createSearch)(P,function(K){return K.name}),F="";y>0&&(F=V.map(function(K,G){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,f.Button,{fluid:!0,icon:"times",color:"transparent",content:V[G][0],onClick:function(){function J(){return l("remove_from_queue",{remove_from_queue:V.indexOf(K)+1})}return J}()},K)},G)}));var W=(0,a.flow)([(0,t.filter)(function(K){return(K.category.indexOf(x)>-1||P)&&(u.showhacked||!K.hacked)}),P&&(0,t.filter)(j),(0,t.sortBy)(function(K){return K.name.toLowerCase()})])(B),z="Build";return P?z="Results for: '"+P+"':":x&&(z="Build ("+x+")"),(0,e.createComponentVNode)(2,b.Window,{width:750,height:525,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,horizontal:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{width:"70%",children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:z,buttons:(0,e.createComponentVNode)(2,f.Dropdown,{width:"150px",options:L,selected:x,onSelected:function(){function K(G){return T(G)}return K}()}),children:[(0,e.createComponentVNode)(2,f.Input,{fluid:!0,placeholder:"Search for...",onInput:function(){function K(G,J){return R(J)}return K}(),mb:1}),W.map(function(K){return(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+K.image,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}}),(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===K.name&&u.busyamt===1,disabled:!I(K,u.metal_amount,u.glass_amount,1),onClick:function(){function G(){return l("make",{make:K.uid,multiplier:1})}return G}(),children:(0,S.toTitleCase)(K.name)}),K.max_multiplier>=10&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===K.name&&u.busyamt===10,disabled:!I(K,u.metal_amount,u.glass_amount,10),onClick:function(){function G(){return l("make",{make:K.uid,multiplier:10})}return G}(),children:"10x"}),K.max_multiplier>=25&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===K.name&&u.busyamt===25,disabled:!I(K,u.metal_amount,u.glass_amount,25),onClick:function(){function G(){return l("make",{make:K.uid,multiplier:25})}return G}(),children:"25x"}),K.max_multiplier>25&&(0,e.createComponentVNode)(2,f.Button,{mr:1,icon:"hammer",selected:u.busyname===K.name&&u.busyamt===K.max_multiplier,disabled:!I(K,u.metal_amount,u.glass_amount,K.max_multiplier),onClick:function(){function G(){return l("make",{make:K.uid,multiplier:K.max_multiplier})}return G}(),children:[K.max_multiplier,"x"]}),K.requirements&&Object.keys(K.requirements).map(function(G){return(0,S.toTitleCase)(G)+": "+K.requirements[G]}).join(", ")||(0,e.createComponentVNode)(2,f.Box,{children:"No resources required."})]},K.ref)})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{width:"30%",children:[(0,e.createComponentVNode)(2,f.Section,{title:"Materials",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Metal",children:M}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Glass",children:O}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Total",children:D}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Storage",children:[u.fill_percent,"% Full"]})]})}),(0,e.createComponentVNode)(2,f.Section,{title:"Building",children:(0,e.createComponentVNode)(2,f.Box,{color:v?"green":"",children:v||"Nothing"})}),(0,e.createComponentVNode)(2,f.Section,{title:"Build Queue",height:23.7,children:[F,(0,e.createComponentVNode)(2,f.Button,{mt:.5,fluid:!0,icon:"times",content:"Clear All",color:"red",disabled:!u.buildQueueLen,onClick:function(){function K(){return l("clear_queue")}return K}()})]})]})]})})})}return g}()},29943:function(A,r,n){"use strict";r.__esModule=!0,r.Autolathe220=void 0;var e=n(89005),a=n(25328),t=n(88510),o=n(64795),f=n(72253),b=n(36036),S=n(98595),I="icons/obj/stacks/minerals.dmi",k=["metal","glass"],g=function(C,v,p,N){return C.requirements===null?!0:!(C.requirements.metal*N>v||C.requirements.glass*N>p)},d=function(C,v){var p=C*v/2e3;return p===0?0:p<.01&&p>0?(0,e.createComponentVNode)(2,b.Box,{fontSize:.75,children:"< 0.01"}):Math.floor(p*100)/100},c=r.Autolathe220=function(){function h(C,v){var p=(0,f.useSharedState)(v,"category","Tools"),N=p[0],V=p[1];return(0,e.createComponentVNode)(2,S.Window,{width:800,height:550,children:(0,e.createComponentVNode)(2,S.Window.Content,{children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{basis:"20%",children:(0,e.createComponentVNode)(2,m,{category:N,setCategory:V})}),(0,e.createComponentVNode)(2,b.Stack.Item,{basis:"55%",children:(0,e.createComponentVNode)(2,l,{category:N})}),(0,e.createComponentVNode)(2,b.Stack.Item,{basis:"25%",children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,u),(0,e.createComponentVNode)(2,s),(0,e.createComponentVNode)(2,i)]})})]})})})}return h}(),m=function(C,v){var p=(0,f.useBackend)(v),N=p.data,V=C.category,y=C.setCategory,B=N.categories,L=["All"].concat(B);return(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Categories",children:(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:L.map(function(w){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{mb:.5,height:"2.5em",color:"blue",selected:w===V,onClick:function(){function x(){return y(w)}return x}(),children:w},w)})})})},l=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.metal_amount,B=V.glass_amount,L=V.recipes,w=C.category,x=(0,f.useSharedState)(v,"searchText",""),T=x[0],M=x[1],O=(0,o.flow)([(0,t.filter)(function(P){return w==="All"||P.category.includes(w)||T&&(V.showhacked||!P.hacked)}),T&&(0,t.filter)((0,a.createSearch)(T,function(P){return P.name})),(0,t.sortBy)(function(P){return P.name.toLowerCase()})])(L),D=function(R,j){return(0,e.createComponentVNode)(2,b.Button,{translucent:!0,tooltip:E(R,j),tooltipPosition:"top",disabled:!g(R,y,B,j),onClick:function(){function F(){return N("make",{make:R.uid,multiplier:j})}return F}(),children:[j,"x"]})},E=function(R,j){return(0,e.createFragment)(k.map(function(F){return R.requirements[F]&&(0,e.createComponentVNode)(2,b.ImageButton,{dmIcon:I,dmIconState:"sheet-"+F,imageSize:32,children:d(R.requirements[F],j)},F)}),0)};return(0,e.createComponentVNode)(2,b.Section,{fill:!0,title:"Build ("+w+")",children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Input,{fluid:!0,placeholder:"Search for...",onInput:function(){function P(R,j){return M(j)}return P}()})}),(0,e.createComponentVNode)(2,b.Stack.Item,{mt:.5,mb:-2.33,grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:O.map(function(P){return(0,e.createComponentVNode)(2,b.ImageButton,{fluid:!0,base64:P.image,imageSize:32,textAlign:"left",color:P.category.includes("hacked")&&"brown",tooltip:E(P,1),tooltipPosition:"top",disabled:!g(P,y,B,1),buttons:P.max_multiplier>1&&(0,e.createFragment)([P.max_multiplier>=10&&D(P,10),P.max_multiplier>=25&&D(P,25),P.max_multiplier>25&&D(P,P.max_multiplier)],0),onClick:function(){function R(){return N("make",{make:P.uid,multiplier:1})}return R}(),children:P.name},P.name)})})})]})})},u=function(C,v){var p=(0,f.useBackend)(v),N=p.data,V=N.metal_amount,y=N.glass_amount,B=N.fill_percent,L=function(x,T){return(0,e.createComponentVNode)(2,b.ImageButton,{fluid:!0,imageSize:32,dmIcon:I,dmIconState:"sheet-"+x,color:"nope",buttons:(0,e.createComponentVNode)(2,b.Box,{backgroundColor:"rgba(255, 255, 255, 0.05)",width:"45px",children:d(T,1)}),children:(0,a.toTitleCase)(x)})};return(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Section,{title:"Materials",children:[L("metal",V),L("glass",y),(0,e.createComponentVNode)(2,b.ProgressBar,{minValue:0,value:B,maxValue:100,children:["Storage ",B,"% full"]})]})})},s=function(C,v){var p=(0,f.useBackend)(v),N=p.data,V=N.recipes,y=N.busyname,B=N.busyamt,L=V.find(function(w){return w.name===y});return(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Section,{title:"Building",children:(0,e.createComponentVNode)(2,b.ImageButton,{fluid:!0,color:y&&"green",base64:L==null?void 0:L.image,imageSize:32,children:y?B>1?y+" x"+B:y:"Nothing"})})})},i=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.recipes,B=V.buildQueue,L=V.buildQueueLen,w;return L>0&&(w=B.map(function(x,T){var M=y.find(function(O){return O.name===B[T][0]});return(0,e.createComponentVNode)(2,b.ImageButton,{fluid:!0,base64:M.image,imageSize:32,buttons:(0,e.createComponentVNode)(2,b.Button,{translucent:!0,width:"32px",icon:"times",iconColor:"red",onClick:function(){function O(){return N("remove_from_queue",{remove_from_queue:B.indexOf(x)+1})}return O}()},x),children:[M.name," ",Number(B[T][1])>1&&"x"+B[T][1]]},T)})),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Queue "+(L>0?L:""),children:w})}),(0,e.createComponentVNode)(2,b.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,b.Section,{fitted:!0,p:.75,children:(0,e.createComponentVNode)(2,b.Button,{fluid:!0,translucent:!L,color:"red",icon:"trash-can",disabled:!L,onClick:function(){function x(){return N("clear_queue")}return x}(),children:"Clear Queue"})})})]})})}},5147:function(A,r,n){"use strict";r.__esModule=!0,r.BioChipPad=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.BioChipPad=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.implant,m=d.contains_case,l=d.gps,u=d.tag,s=(0,a.useLocalState)(I,"newTag",u),i=s[0],h=s[1];return(0,e.createComponentVNode)(2,o.Window,{width:410,height:325,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Bio-chip Mini-Computer",buttons:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject Case",icon:"eject",disabled:!m,onClick:function(){function C(){return g("eject_case")}return C}()})}),children:c&&m?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{bold:!0,mb:2,children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+c.image,ml:0,mr:2,style:{"vertical-align":"middle",width:"32px"}}),c.name]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Life",children:c.life}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Notes",children:c.notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Function",children:c.function}),!!l&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tag",children:[(0,e.createComponentVNode)(2,t.Input,{width:"5.5rem",value:u,onEnter:function(){function C(){return g("tag",{newtag:i})}return C}(),onInput:function(){function C(v,p){return h(p)}return C}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:u===i,width:"20px",mb:"0",ml:"0.25rem",onClick:function(){function C(){return g("tag",{newtag:i})}return C}(),children:(0,e.createComponentVNode)(2,t.Icon,{name:"pen"})})]})]})],4):m?(0,e.createComponentVNode)(2,t.Box,{children:"This bio-chip case has no implant!"}):(0,e.createComponentVNode)(2,t.Box,{children:"Please insert a bio-chip casing!"})})})})}return b}()},64273:function(A,r,n){"use strict";r.__esModule=!0,r.Biogenerator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(62411),b=r.Biogenerator=function(){function d(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.config,i=u.container,h=u.processing,C=s.title;return(0,e.createComponentVNode)(2,o.Window,{width:390,height:595,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Operating,{operating:h,name:C}),(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k),i?(0,e.createComponentVNode)(2,g):(0,e.createComponentVNode)(2,S)]})})})}return d}(),S=function(c,m){return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"silver",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"flask",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),"The biogenerator is missing a container."]})})})},I=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.biomass,h=s.container,C=s.container_curr_reagents,v=s.container_max_reagents;return(0,e.createComponentVNode)(2,t.Section,{title:"Storage",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"20px",color:"silver",children:"Biomass:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"5px",children:i}),(0,e.createComponentVNode)(2,t.Icon,{name:"leaf",size:1.2,color:"#3d8c40"})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"21px",mt:"8px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:"10px",color:"silver",children:"Container:"}),h?(0,e.createComponentVNode)(2,t.ProgressBar,{value:C,maxValue:v,children:(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:C+" / "+v+" units"})}):(0,e.createComponentVNode)(2,t.Stack.Item,{children:"None"})]})]})},k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.has_plants,h=s.container;return(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"power-off",disabled:!i,tooltip:i?"":"There are no plants in the biogenerator.",tooltipPosition:"top-start",content:"Activate",onClick:function(){function C(){return u("activate")}return C}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"flask",disabled:!h,tooltip:h?"":"The biogenerator does not have a container.",tooltipPosition:"top",content:"Detach Container",onClick:function(){function C(){return u("detach_container")}return C}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",disabled:!i,tooltip:i?"":"There are no stored plants to eject.",tooltipPosition:"top-end",content:"Eject Plants",onClick:function(){function C(){return u("eject_plants")}return C}()})})]})})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.biomass,h=s.product_list,C=(0,a.useSharedState)(m,"vendAmount",1),v=C[0],p=C[1],N=Object.entries(h).map(function(V,y){var B=Object.entries(V[1]).map(function(L){return L[1]});return(0,e.createComponentVNode)(2,t.Collapsible,{title:V[0],open:!0,children:B.map(function(L){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",ml:"2px",children:L.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"right",width:"20%",children:[L.cost*v,(0,e.createComponentVNode)(2,t.Icon,{ml:"5px",name:"leaf",size:1.2,color:"#3d8c40"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"right",width:"40%",children:(0,e.createComponentVNode)(2,t.Button,{content:"Vend",disabled:i.25?750+400*Math.random():290+150*Math.random(),time:60+150*Math.random(),children:(0,e.createComponentVNode)(2,t.Stack,{mb:"30px",fontsize:"256px",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,color:"red",fontsize:"256px",textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"skull",size:14,mb:"64px"}),(0,e.createVNode)(1,"br"),"E$#OR:& U#KN!WN IN%ERF#R_NCE"]})})})})}return k}(),S=r.BluespaceTap=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.product||[],s=l.desiredMiningPower,i=l.miningPower,h=l.points,C=l.totalPoints,v=l.powerUse,p=l.availablePower,N=l.emagged,V=l.autoShutown,y=l.stabilizers,B=l.stabilizerPower,L=l.stabilizerPriority,w=s>i&&"bad"||"good";return(0,e.createComponentVNode)(2,o.Window,{width:650,height:450,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,t.Collapsible,{title:"Input Management",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Input",children:[(0,e.createComponentVNode)(2,t.Button,{icon:V&&!N?"toggle-on":"toggle-off",content:"Auto shutdown",color:V&&!N?"green":"red",disabled:!!N,tooltip:"Turn auto shutdown on or off",tooltipPosition:"top",onClick:function(){function x(){return m("auto_shutdown")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:y&&!N?"toggle-on":"toggle-off",content:"Stabilizers",color:y&&!N?"green":"red",disabled:!!N,tooltip:"Turn stabilizers on or off",tooltipPosition:"top",onClick:function(){function x(){return m("stabilizers")}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:L&&!N?"toggle-on":"toggle-off",content:"Stabilizer priority",color:L&&!N?"green":"red",disabled:!!N,tooltip:"On: Mining power will not exceed what can be stabilized",tooltipPosition:"top",onClick:function(){function x(){return m("stabilizer_priority")}return x}()}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Desired Mining Power",children:(0,f.formatPower)(s)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{labelStyle:{"vertical-align":"top"},label:"Set Desired Mining Power",children:(0,e.createComponentVNode)(2,t.Stack,{width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"step-backward",disabled:s===0||N,tooltip:"Set to 0",tooltipPosition:"bottom",onClick:function(){function x(){return m("set",{set_power:0})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",tooltip:"Decrease by 10 MW",tooltipPosition:"bottom",disabled:s===0||N,onClick:function(){function x(){return m("set",{set_power:s-1e7})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:s===0||N,tooltip:"Decrease by 1 MW",tooltipPosition:"bottom",onClick:function(){function x(){return m("set",{set_power:s-1e6})}return x}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mx:1,children:(0,e.createComponentVNode)(2,t.NumberInput,{disabled:N,minvalue:0,value:s,maxvalue:1/0,step:1,onChange:function(){function x(T,M){return m("set",{set_power:M})}return x}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:N,tooltip:"Increase by one MW",tooltipPosition:"bottom",onClick:function(){function x(){return m("set",{set_power:s+1e6})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:N,tooltip:"Increase by 10MW",tooltipPosition:"bottom",onClick:function(){function x(){return m("set",{set_power:s+1e7})}return x}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Power Use",children:(0,f.formatPower)(v)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mining Power Use",children:(0,f.formatPower)(i)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stabilizer Power Use",children:(0,f.formatPower)(B)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Surplus Power",children:(0,f.formatPower)(p)})]})]})}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Output",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available Points",children:h}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Points",children:C})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{align:"end",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:u.map(function(x){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:x.name,children:(0,e.createComponentVNode)(2,t.Button,{disabled:x.price>=h,onClick:function(){function T(){return m("vend",{target:x.key})}return T}(),content:x.price})},x.key)})})})})]})})]})})})}return k}(),I=r.Alerts=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.product||[],s=l.miningPower,i=l.stabilizerPower,h=l.emagged,C=l.safeLevels,v=l.autoShutown,p=l.stabilizers,N=l.overhead;return(0,e.createFragment)([!v&&!h&&(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Auto shutdown disabled"}),h?(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"All safeties disabled"}):s<=15e6?"":p?s>i+15e6?(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Stabilizers overwhelmed, Instability likely"}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"High Power, engaging stabilizers"}):(0,e.createComponentVNode)(2,t.NoticeBox,{danger:1,children:"Stabilizers disabled, Instability likely"})],0)}return k}()},33758:function(A,r,n){"use strict";r.__esModule=!0,r.BodyScanner=void 0;var e=n(89005),a=n(44879),t=n(25328),o=n(72253),f=n(36036),b=n(98595),S=[["good","Alive"],["average","Critical"],["bad","DEAD"]],I=[["hasVirus","bad","Viral pathogen detected in blood stream."],["blind","average","Cataracts detected."],["colourblind","average","Photoreceptor abnormalities detected."],["nearsighted","average","Retinal misalignment detected."]],k=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radiation","radLoss"],["Brute","bruteLoss"],["Cellular","cloneLoss"],["Burn","fireLoss"],["Inebriation","drunkenness"]],g={average:[.25,.5],bad:[.5,1/0]},d=function(y,B){for(var L=[],w=0;w0?y.filter(function(B){return!!B}).reduce(function(B,L){return(0,e.createFragment)([B,(0,e.createComponentVNode)(2,f.Box,{children:L},L)],0)},null):null},m=function(y){if(y>100){if(y<300)return"mild infection";if(y<400)return"mild infection+";if(y<500)return"mild infection++";if(y<700)return"acute infection";if(y<800)return"acute infection+";if(y<900)return"acute infection++";if(y>=900)return"septic"}return""},l=r.BodyScanner=function(){function V(y,B){var L=(0,o.useBackend)(B),w=L.data,x=w.occupied,T=w.occupant,M=T===void 0?{}:T,O=x?(0,e.createComponentVNode)(2,u,{occupant:M}):(0,e.createComponentVNode)(2,N);return(0,e.createComponentVNode)(2,b.Window,{width:700,height:600,title:"Body Scanner",children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:O})})}return V}(),u=function(y){var B=y.occupant;return(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,s,{occupant:B}),(0,e.createComponentVNode)(2,i,{occupant:B}),(0,e.createComponentVNode)(2,h,{occupant:B}),(0,e.createComponentVNode)(2,v,{organs:B.extOrgan}),(0,e.createComponentVNode)(2,p,{organs:B.intOrgan})]})},s=function(y,B){var L=(0,o.useBackend)(B),w=L.act,x=L.data,T=x.occupant;return(0,e.createComponentVNode)(2,f.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Button,{icon:"print",onClick:function(){function M(){return w("print_p")}return M}(),children:"Print Report"}),(0,e.createComponentVNode)(2,f.Button,{icon:"user-slash",onClick:function(){function M(){return w("ejectify")}return M}(),children:"Eject"})],4),children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Name",children:T.name}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:T.maxHealth,value:T.health/T.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Status",color:S[T.stat][0],children:S[T.stat][1]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,f.AnimatedNumber,{value:(0,a.round)(T.bodyTempC)}),"\xB0C,\xA0",(0,e.createComponentVNode)(2,f.AnimatedNumber,{value:(0,a.round)(T.bodyTempF)}),"\xB0F"]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Implants",children:T.implant_len?(0,e.createComponentVNode)(2,f.Box,{children:T.implant.map(function(M){return M.name}).join(", ")}):(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"None"})})]})})},i=function(y){var B=y.occupant;return B.hasBorer||B.blind||B.colourblind||B.nearsighted||B.hasVirus?(0,e.createComponentVNode)(2,f.Section,{title:"Abnormalities",children:I.map(function(L,w){if(B[L[0]])return(0,e.createComponentVNode)(2,f.Box,{color:L[1],bold:L[1]==="bad",children:L[2]},L[2])})}):(0,e.createComponentVNode)(2,f.Section,{title:"Abnormalities",children:(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No abnormalities found."})})},h=function(y){var B=y.occupant;return(0,e.createComponentVNode)(2,f.Section,{title:"Damage",children:(0,e.createComponentVNode)(2,f.Table,{children:d(k,function(L,w,x){return(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Table.Row,{color:"label",children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:[L[0],":"]}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:!!w&&w[0]+":"})]}),(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,C,{value:B[L[1]],marginBottom:x100)&&"average"||!!B.status.robotic&&"label",width:"33%",children:(0,t.capitalize)(B.name)}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,f.ProgressBar,{m:-.5,min:"0",max:B.maxHealth,mt:L>0&&"0.5rem",value:B.totalLoss/B.maxHealth,ranges:g,children:(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Tooltip,{content:"Total damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"heartbeat",mr:.5}),(0,a.round)(B.totalLoss)]})}),!!B.bruteLoss&&(0,e.createComponentVNode)(2,f.Tooltip,{content:"Brute damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:[(0,e.createComponentVNode)(2,f.Icon,{name:"bone",mr:.5}),(0,a.round)(B.bruteLoss)]})}),!!B.fireLoss&&(0,e.createComponentVNode)(2,f.Tooltip,{content:"Burn damage",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"fire",mr:.5}),(0,a.round)(B.fireLoss)]})})]})})}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:L>0&&"calc(0.5rem + 2px)",children:[(0,e.createComponentVNode)(2,f.Box,{color:"average",inline:!0,children:c([!!B.internalBleeding&&"Internal bleeding",!!B.burnWound&&"Critical tissue burns",!!B.lungRuptured&&"Ruptured lung",!!B.status.broken&&B.status.broken,m(B.germ_level),!!B.open&&"Open incision"])}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,children:[c([!!B.status.splinted&&(0,e.createComponentVNode)(2,f.Box,{color:"good",children:"Splinted"}),!!B.status.robotic&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Robotic"}),!!B.status.dead&&(0,e.createComponentVNode)(2,f.Box,{color:"bad",bold:!0,children:"DEAD"})]),c(B.shrapnel.map(function(w){return w.known?w.name:"Unknown object"}))]})]})]},L)})]})})},p=function(y){return y.organs.length===0?(0,e.createComponentVNode)(2,f.Section,{title:"Internal Organs",children:(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"N/A"})}):(0,e.createComponentVNode)(2,f.Section,{title:"Internal Organs",children:(0,e.createComponentVNode)(2,f.Table,{children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:"Damage"}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",children:"Injuries"})]}),y.organs.map(function(B,L){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{color:!!B.dead&&"bad"||B.germ_level>100&&"average"||B.robotic>0&&"label",width:"33%",children:(0,t.capitalize)(B.name)}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:B.maxHealth,value:B.damage/B.maxHealth,mt:L>0&&"0.5rem",ranges:g,children:(0,a.round)(B.damage)})}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",verticalAlign:"top",width:"33%",pt:L>0&&"calc(0.5rem + 2px)",children:[(0,e.createComponentVNode)(2,f.Box,{color:"average",inline:!0,children:c([m(B.germ_level)])}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,children:c([B.robotic===1&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Robotic"}),B.robotic===2&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"Assisted"}),!!B.dead&&(0,e.createComponentVNode)(2,f.Box,{color:"bad",bold:!0,children:"DEAD"})])})]})]},L)})]})})},N=function(){return(0,e.createComponentVNode)(2,f.Section,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}},67963:function(A,r,n){"use strict";r.__esModule=!0,r.BookBinder=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=n(39473),S=r.BookBinder=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.selectedbook,u=m.book_categories,s=[];return u.map(function(i){return s[i.description]=i.category_id}),(0,e.createComponentVNode)(2,o.Window,{width:600,height:400,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Book Binder",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"print",width:"auto",content:"Print Book",onClick:function(){function i(){return c("print_book")}return i}()}),children:[(0,e.createComponentVNode)(2,t.Box,{ml:10,fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:3,mr:"1rem"}),"Book Binder"]}),(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:"auto",content:l.title,onClick:function(){function i(){return(0,f.modalOpen)(g,"edit_selected_title")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:"auto",content:l.author,onClick:function(){function i(){return(0,f.modalOpen)(g,"edit_selected_author")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"190px",options:u.map(function(i){return i.description}),onSelected:function(){function i(h){return c("toggle_binder_category",{category_id:s[h]})}return i}()})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pen",width:"auto",content:"Edit Summary",onClick:function(){function i(){return(0,f.modalOpen)(g,"edit_selected_summary")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:l.summary})]}),(0,e.createVNode)(1,"br"),u.filter(function(i){return l.categories.includes(i.category_id)}).map(function(i){return(0,e.createComponentVNode)(2,t.Button,{content:i.description,selected:!0,icon:"unlink",onClick:function(){function h(){return c("toggle_binder_category",{category_id:i.category_id})}return h}()},i.category_id)})]})})]})})})]})}return I}()},61925:function(A,r,n){"use strict";r.__esModule=!0,r.BotCall=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(d){var c=[{modes:[0],label:"Idle",color:"green"},{modes:[1,2,3],label:"Arresting",color:"yellow"},{modes:[4,5],label:"Patrolling",color:"average"},{modes:[9],label:"Moving",color:"average"},{modes:[6,11],label:"Responding",color:"green"},{modes:[12],label:"Delivering Cargo",color:"blue"},{modes:[13],label:"Returning Home",color:"blue"},{modes:[7,8,10,14,15,16,17,18,19],label:"Working",color:"blue"}],m=c.find(function(l){return l.modes.includes(d)});return(0,e.createComponentVNode)(2,t.Box,{color:m.color,children:[" ",m.label," "]})},b=r.BotCall=function(){function g(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=(0,a.useLocalState)(c,"tabIndex",0),i=s[0],h=s[1],C={0:"Security",1:"Medibot",2:"Cleanbot",3:"Floorbot",4:"Mule",5:"Honkbot"},v=function(){function p(N){return C[N]?(0,e.createComponentVNode)(2,S,{model:C[N]}):"This should not happen. Report on Paradise Github"}return p}();return(0,e.createComponentVNode)(2,o.Window,{width:700,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:i===0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,textAlign:"center",children:Array.from({length:6}).map(function(p,N){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:i===N,onClick:function(){function V(){return h(N)}return V}(),children:C[N]},N)})})}),v(i)]})})})}return g}(),S=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.bots;return s[d.model]!==void 0?(0,e.createComponentVNode)(2,k,{model:[d.model]}):(0,e.createComponentVNode)(2,I,{model:[d.model]})},I=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data;return(0,e.createComponentVNode)(2,t.Stack,{justify:"center",align:"center",fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Box,{bold:1,color:"bad",children:["No ",[d.model]," detected"]})})},k=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.bots;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Model"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Location"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Interface"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Call"})]}),s[d.model].map(function(i){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.model}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.on?f(i.status):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Off"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.location}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Interface",onClick:function(){function h(){return l("interface",{botref:i.UID})}return h}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Call",onClick:function(){function h(){return l("call",{botref:i.UID})}return h}()})})]},i.UID)})]})})})}},20464:function(A,r,n){"use strict";r.__esModule=!0,r.BotClean=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotClean=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.locked,l=c.noaccess,u=c.maintpanel,s=c.on,i=c.autopatrol,h=c.canhack,C=c.emagged,v=c.remote_disabled,p=c.painame,N=c.cleanblood,V=c.area;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Cleaning Settings",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:N,content:"Clean Blood",disabled:l,onClick:function(){function y(){return d("blood")}return y}()})}),(0,e.createComponentVNode)(2,t.Section,{title:"Misc Settings",children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:V?"Reset Area Selection":"Restrict to Current Area",onClick:function(){function y(){return d("area")}return y}()}),V!==null&&(0,e.createComponentVNode)(2,t.LabeledList,{mb:1,children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Locked Area",children:V})})]}),p&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:p,disabled:l,onClick:function(){function y(){return d("ejectpai")}return y}()})})]})})}return S}()},69479:function(A,r,n){"use strict";r.__esModule=!0,r.BotFloor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotFloor=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.noaccess,l=c.painame,u=c.hullplating,s=c.replace,i=c.eat,h=c.make,C=c.fixfloor,v=c.nag_empty,p=c.magnet,N=c.tiles_amount;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:510,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Floor Settings",children:[(0,e.createComponentVNode)(2,t.Box,{mb:"5px",children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tiles Left",children:N})}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:u,content:"Add tiles to new hull plating",tooltip:"Fixing a plating requires the removal of floor tile. This will place it back after repairing. Same goes for hull breaches",disabled:m,onClick:function(){function V(){return d("autotile")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:s,content:"Add floor tiles on exposed hull plating",tooltip:"Example: It will add tiles to maintenance",disabled:m,onClick:function(){function V(){return d("replacetiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:C,content:"Repair damaged tiles and platings",disabled:m,onClick:function(){function V(){return d("fixfloors")}return V}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Miscellaneous",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:i,content:"Finds tiles",disabled:m,onClick:function(){function V(){return d("eattiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:h,content:"Make pieces of metal into tiles when empty",disabled:m,onClick:function(){function V(){return d("maketiles")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:v,content:"Transmit notice when empty",disabled:m,onClick:function(){function V(){return d("nagonempty")}return V}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:p,content:"Traction Magnets",disabled:m,onClick:function(){function V(){return d("anchored")}return V}()})]}),l&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,icon:"eject",content:l,disabled:m,onClick:function(){function V(){return d("ejectpai")}return V}()})})]})})}return S}()},59887:function(A,r,n){"use strict";r.__esModule=!0,r.BotHonk=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotHonk=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:220,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.BotStatus)})})}return S}()},80063:function(A,r,n){"use strict";r.__esModule=!0,r.BotMed=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotMed=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.locked,l=c.noaccess,u=c.maintpanel,s=c.on,i=c.autopatrol,h=c.canhack,C=c.emagged,v=c.remote_disabled,p=c.painame,N=c.shut_up,V=c.declare_crit,y=c.stationary_mode,B=c.heal_threshold,L=c.injection_amount,w=c.use_beaker,x=c.treat_virus,T=c.reagent_glass;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Communication Settings",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Speaker",checked:!N,disabled:l,onClick:function(){function M(){return d("toggle_speaker")}return M}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Critical Patient Alerts",checked:V,disabled:l,onClick:function(){function M(){return d("toggle_critical_alerts")}return M}()})]}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Treatment Settings",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Healing Threshold",children:(0,e.createComponentVNode)(2,t.Slider,{value:B.value,minValue:B.min,maxValue:B.max,step:5,disabled:l,onChange:function(){function M(O,D){return d("set_heal_threshold",{target:D})}return M}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Injection Level",children:(0,e.createComponentVNode)(2,t.Slider,{value:L.value,minValue:L.min,maxValue:L.max,step:5,format:function(){function M(O){return O+"u"}return M}(),disabled:l,onChange:function(){function M(O,D){return d("set_injection_amount",{target:D})}return M}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reagent Source",children:(0,e.createComponentVNode)(2,t.Button,{content:w?"Beaker":"Internal Synthesizer",icon:w?"flask":"cogs",disabled:l,onClick:function(){function M(){return d("toggle_use_beaker")}return M}()})}),T&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:T.amount,minValue:0,maxValue:T.max_amount,children:[T.amount," / ",T.max_amount]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{ml:1,children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject",disabled:l,onClick:function(){function M(){return d("eject_reagent_glass")}return M}()})})]})})]}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{mt:1,fluid:!0,content:"Treat Viral Infections",checked:x,disabled:l,onClick:function(){function M(){return d("toggle_treat_viral")}return M}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,content:"Stationary Mode",checked:y,disabled:l,onClick:function(){function M(){return d("toggle_stationary_mode")}return M}()})]}),p&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:p,disabled:l,onClick:function(){function M(){return d("ejectpai")}return M}()})})]})})})}return S}()},74439:function(A,r,n){"use strict";r.__esModule=!0,r.BotSecurity=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(92963),b=r.BotSecurity=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.noaccess,l=c.painame,u=c.check_id,s=c.check_weapons,i=c.check_warrant,h=c.arrest_mode,C=c.arrest_declare;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:445,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,f.BotStatus),(0,e.createComponentVNode)(2,t.Section,{title:"Who To Arrest",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:u,content:"Unidentifiable Persons",disabled:m,onClick:function(){function v(){return d("authid")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:s,content:"Unauthorized Weapons",disabled:m,onClick:function(){function v(){return d("authweapon")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:i,content:"Wanted Criminals",disabled:m,onClick:function(){function v(){return d("authwarrant")}return v}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Arrest Procedure",children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:h,content:"Detain Targets Indefinitely",disabled:m,onClick:function(){function v(){return d("arrtype")}return v}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:C,content:"Announce Arrests On Radio",disabled:m,onClick:function(){function v(){return d("arrdeclare")}return v}()})]}),l&&(0,e.createComponentVNode)(2,t.Section,{title:"pAI",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:l,disabled:m,onClick:function(){function v(){return d("ejectpai")}return v}()})})]})})}return S}()},10833:function(A,r,n){"use strict";r.__esModule=!0,r.BrigCells=void 0;var e=n(89005),a=n(98595),t=n(36036),o=n(72253),f=function(k,g){var d=k.cell,c=(0,o.useBackend)(g),m=c.act,l=d.cell_id,u=d.occupant,s=d.crimes,i=d.brigged_by,h=d.time_left_seconds,C=d.time_set_seconds,v=d.ref,p="";h>0&&(p+=" BrigCells__listRow--active");var N=function(){m("release",{ref:v})};return(0,e.createComponentVNode)(2,t.Table.Row,{className:p,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:l}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.TimeDisplay,{totalSeconds:C})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.TimeDisplay,{totalSeconds:h})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{type:"button",onClick:N,children:"Release"})})]})},b=function(k){var g=k.cells;return(0,e.createComponentVNode)(2,t.Table,{className:"BrigCells__list",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Cell"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Occupant"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Crimes"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Brigged By"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Time Brigged For"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Time Left"}),(0,e.createComponentVNode)(2,t.Table.Cell,{header:!0,children:"Release"})]}),g.map(function(d){return(0,e.createComponentVNode)(2,f,{cell:d},d.ref)})]})},S=r.BrigCells=function(){function I(k,g){var d=(0,o.useBackend)(g),c=d.act,m=d.data,l=m.cells;return(0,e.createComponentVNode)(2,a.Window,{theme:"security",width:800,height:400,children:(0,e.createComponentVNode)(2,a.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b,{cells:l})})})})})}return I}()},45761:function(A,r,n){"use strict";r.__esModule=!0,r.BrigTimer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.BrigTimer=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data;d.nameText=d.occupant,d.timing&&(d.prisoner_hasrec?d.nameText=(0,e.createComponentVNode)(2,t.Box,{color:"green",children:d.occupant}):d.nameText=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:d.occupant}));var c="pencil-alt";d.prisoner_name&&(d.prisoner_hasrec||(c="exclamation-triangle"));var m=[],l=0;for(l=0;lm?this.substring(0,m)+"...":this};var k=function(l,u){var s,i;if(!u)return[];var h=l.findIndex(function(C){return C.name===u.name});return[(s=l[h-1])==null?void 0:s.name,(i=l[h+1])==null?void 0:i.name]},g=function(l,u){u===void 0&&(u="");var s=(0,f.createSearch)(u,function(i){return i.name});return(0,t.flow)([(0,a.filter)(function(i){return i==null?void 0:i.name}),u&&(0,a.filter)(s),(0,a.sortBy)(function(i){return i.name})])(l)},d=r.CameraConsole=function(){function m(l,u){var s=(0,b.useBackend)(u),i=s.act,h=s.data,C=s.config,v=h.mapRef,p=h.activeCamera,N=g(h.cameras),V=k(N,p),y=V[0],B=V[1];return(0,e.createComponentVNode)(2,I.Window,{width:870,height:708,children:[(0,e.createVNode)(1,"div","CameraConsole__left",(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,S.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,c)})}),2),(0,e.createVNode)(1,"div","CameraConsole__right",[(0,e.createVNode)(1,"div","CameraConsole__toolbar",[(0,e.createVNode)(1,"b",null,"Camera: ",16),p&&p.name||"\u2014"],0),(0,e.createVNode)(1,"div","CameraConsole__toolbarRight",[(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-left",disabled:!y,onClick:function(){function L(){return i("switch_camera",{name:y})}return L}()}),(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-right",disabled:!B,onClick:function(){function L(){return i("switch_camera",{name:B})}return L}()})],4),(0,e.createComponentVNode)(2,S.ByondUi,{className:"CameraConsole__map",params:{id:v,type:"map"}})],4)]})}return m}(),c=r.CameraConsoleContent=function(){function m(l,u){var s=(0,b.useBackend)(u),i=s.act,h=s.data,C=(0,b.useLocalState)(u,"searchText",""),v=C[0],p=C[1],N=h.activeCamera,V=g(h.cameras,v);return(0,e.createComponentVNode)(2,S.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S.Stack.Item,{children:(0,e.createComponentVNode)(2,S.Input,{fluid:!0,placeholder:"Search for a camera",onInput:function(){function y(B,L){return p(L)}return y}()})}),(0,e.createComponentVNode)(2,S.Stack.Item,{grow:!0,m:0,children:(0,e.createComponentVNode)(2,S.Section,{fill:!0,scrollable:!0,children:V.map(function(y){return(0,e.createVNode)(1,"div",(0,o.classes)(["Button","Button--fluid","Button--color--transparent",N&&y.name===N.name&&"Button--selected"]),y.name.trimLongStr(23),0,{title:y.name,onClick:function(){function B(){return i("switch_camera",{name:y.name})}return B}()},y.name)})})})]})}return m}()},39222:function(A,r,n){"use strict";r.__esModule=!0,r.CameraConsoleOldContent=r.CameraConsoleMapContent=r.CameraConsole220=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(35840),f=n(25328),b=n(72253),S=n(36036),I=n(98595),k=function(u,s){var i,h;if(!s)return[];var C=u.findIndex(function(v){return v.name===s.name});return[(i=u[C-1])==null?void 0:i.name,(h=u[C+1])==null?void 0:h.name]},g=function(u,s){s===void 0&&(s="");var i=(0,f.createSearch)(s,function(h){return h.name});return(0,t.flow)([(0,a.filter)(function(h){return h==null?void 0:h.name}),s&&(0,a.filter)(i),(0,a.sortBy)(function(h){return h.name})])(u)},d=r.CameraConsole220=function(){function l(u,s){var i=(0,b.useLocalState)(s,"tabIndex",0),h=i[0],C=i[1],v=function(){function p(N){switch(N){case 0:return(0,e.createComponentVNode)(2,c);case 1:return(0,e.createComponentVNode)(2,m);default:return"WE SHOULDN'T BE HERE!"}}return p}();return(0,e.createComponentVNode)(2,I.Window,{width:1170,height:755,children:(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,S.Stack,{children:(0,e.createComponentVNode)(2,S.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,S.Stack.Item,{width:h===1?"222px":"475px",textAlign:"center",children:(0,e.createComponentVNode)(2,S.Tabs,{fluid:!0,ml:h===1?1:0,mt:h===1?1:0,children:[(0,e.createComponentVNode)(2,S.Tabs.Tab,{selected:h===0,onClick:function(){function p(){return C(0)}return p}(),children:[(0,e.createComponentVNode)(2,S.Icon,{name:"map-marked-alt"})," \u041A\u0430\u0440\u0442\u0430"]},"Map"),(0,e.createComponentVNode)(2,S.Tabs.Tab,{selected:h===1,onClick:function(){function p(){return C(1)}return p}(),children:[(0,e.createComponentVNode)(2,S.Icon,{name:"table"})," \u0421\u043F\u0438\u0441\u043E\u043A"]},"List")]})}),v(h)]})})})})}return l}(),c=r.CameraConsoleMapContent=function(){function l(u,s){var i=(0,b.useBackend)(s),h=i.act,C=i.data,v=g(C.cameras),p=(0,b.useLocalState)(s,"zoom",1),N=p[0],V=p[1],y=C.mapRef,B=C.activeCamera,L=C.stationLevel,w=C.mapUrl,x=C.selected_z_level,T=k(v,B),M=T[0],O=T[1];return(0,e.createComponentVNode)(2,S.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,S.Stack.Item,{height:"100%",style:{flex:"0 0 474px"},children:(0,e.createComponentVNode)(2,S.NanoMap,{onZoom:function(){function D(E){return V(E)}return D}(),mapUrl:w,children:v.filter(function(D){return D.z===(Number(x)||L)}).map(function(D){return(0,e.createComponentVNode)(2,S.NanoMap.NanoButton,{activeCamera:B,x:D.x,y:D.y,context:s,zoom:N,icon:"circle",tooltip:D.name,name:D.name,color:"blue",status:D.status},D.ref)})})}),(0,e.createComponentVNode)(2,S.Stack.Item,{height:"100%",m:.1,className:"CameraConsole__right_map",children:[(0,e.createVNode)(1,"div","CameraConsole__header",[(0,e.createVNode)(1,"div","CameraConsole__toolbar",[(0,e.createVNode)(1,"b",null,"\u041A\u0430\u043C\u0435\u0440\u0430: ",16),B&&B.name||"\u2014"],0),(0,e.createVNode)(1,"div","CameraConsole__toolbarRight",[(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-left",disabled:!M,onClick:function(){function D(){return h("switch_camera",{name:M})}return D}()}),(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-right",disabled:!O,onClick:function(){function D(){return h("switch_camera",{name:O})}return D}()})],4)],4),(0,e.createComponentVNode)(2,S.ByondUi,{className:"CameraConsole__map",overflow:"hidden",params:{id:y,type:"map"}})]})]})}return l}(),m=r.CameraConsoleOldContent=function(){function l(u,s){var i=(0,b.useBackend)(s),h=i.act,C=i.data,v=i.config,p=C.mapRef,N=C.activeCamera,V=(0,b.useLocalState)(s,"searchText",""),y=V[0],B=V[1],L=g(C.cameras,y),w=k(L,N),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,S.Stack.Item,{children:[(0,e.createVNode)(1,"div","CameraConsole__left",(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,S.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S.Stack.Item,{children:(0,e.createComponentVNode)(2,S.Input,{width:"215px",placeholder:"\u041D\u0430\u0439\u0442\u0438 \u043A\u0430\u043C\u0435\u0440\u0443",onInput:function(){function M(O,D){return B(D)}return M}()})}),(0,e.createComponentVNode)(2,S.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,S.Section,{fill:!0,scrollable:!0,children:L.map(function(M){return(0,e.createVNode)(1,"div",(0,o.classes)(["Button","Button--fluid",M.status?"Button--color--transparent":"Button--color--danger","Button--ellipsis",N&&M.name===N.name&&"Button--selected"]),M.name,0,{title:M.name,onClick:function(){function O(){return h("switch_camera",{name:M.name})}return O}()},M.name)})})})]})}),2),(0,e.createVNode)(1,"div","CameraConsole__right",[(0,e.createVNode)(1,"div","CameraConsole__toolbar",[(0,e.createVNode)(1,"b",null,"\u041A\u0430\u043C\u0435\u0440\u0430: ",16),N&&N.name||"\u2014"],0),(0,e.createVNode)(1,"div","CameraConsole__toolbarRight",[(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-left",disabled:!x,onClick:function(){function M(){return h("switch_camera",{name:x})}return M}()}),(0,e.createComponentVNode)(2,S.Button,{icon:"chevron-right",disabled:!T,onClick:function(){function M(){return h("switch_camera",{name:T})}return M}()})],4),(0,e.createComponentVNode)(2,S.ByondUi,{className:"CameraConsole__map",params:{id:p,type:"map"}})],4)]})}return l}()},52927:function(A,r,n){"use strict";r.__esModule=!0,r.Canister=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(49968),b=n(98595),S=r.Canister=function(){function I(k,g){var d=(0,t.useBackend)(g),c=d.act,m=d.data,l=m.portConnected,u=m.tankPressure,s=m.releasePressure,i=m.defaultReleasePressure,h=m.minReleasePressure,C=m.maxReleasePressure,v=m.valveOpen,p=m.name,N=m.canLabel,V=m.colorContainer,y=m.color_index,B=m.hasHoldingTank,L=m.holdingTank,w="";y.prim&&(w=V.prim.options[y.prim].name);var x="";y.sec&&(x=V.sec.options[y.sec].name);var T="";y.ter&&(T=V.ter.options[y.ter].name);var M="";y.quart&&(M=V.quart.options[y.quart].name);var O=[],D=[],E=[],P=[],R=0;for(R=0;Rp.current_positions&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:p.total_positions-p.current_positions})||(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"0"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{content:"-",disabled:i.cooldown_time||!p.can_close,onClick:function(){function N(){return s("make_job_unavailable",{job:p.title})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{content:"+",disabled:i.cooldown_time||!p.can_open,onClick:function(){function N(){return s("make_job_available",{job:p.title})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:i.target_dept&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:i.priority_jobs.indexOf(p.title)>-1?"Yes":""})||(0,e.createComponentVNode)(2,t.Button,{content:p.is_priority?"Yes":"No",selected:p.is_priority,disabled:i.cooldown_time||!p.can_prioritize,onClick:function(){function N(){return s("prioritize_job",{job:p.title})}return N}()})})]},p.title)})]})})]}):v=(0,e.createComponentVNode)(2,I);break;case 2:!i.authenticated||!i.scan_name?v=(0,e.createComponentVNode)(2,I):i.modify_name?v=(0,e.createComponentVNode)(2,f.AccessList,{accesses:i.regions,selectedList:i.selectedAccess,accessMod:function(){function p(N){return s("set",{access:N})}return p}(),grantAll:function(){function p(){return s("grant_all")}return p}(),denyAll:function(){function p(){return s("clear_all")}return p}(),grantDep:function(){function p(N){return s("grant_region",{region:N})}return p}(),denyDep:function(){function p(N){return s("deny_region",{region:N})}return p}()}):v=(0,e.createComponentVNode)(2,k);break;case 3:i.authenticated?i.records.length?v=(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Records",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Delete All Records",disabled:!i.authenticated||i.records.length===0||i.target_dept,onClick:function(){function p(){return s("wipe_all_logs")}return p}()}),children:[(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Crewman"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Old Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"New Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Authorized By"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Time"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Reason"}),!!i.iscentcom&&(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Deleted By"})]}),i.records.map(function(p){return(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.transferee}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.oldvalue}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.newvalue}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.whodidit}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.timestamp}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.reason}),!!i.iscentcom&&(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.deletedby})]},p.timestamp)})]}),!!i.iscentcom&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:"Delete MY Records",color:"purple",disabled:!i.authenticated||i.records.length===0,onClick:function(){function p(){return s("wipe_my_logs")}return p}()})})]}):v=(0,e.createComponentVNode)(2,g):v=(0,e.createComponentVNode)(2,I);break;case 4:!i.authenticated||!i.scan_name?v=(0,e.createComponentVNode)(2,I):v=(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Your Team",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Sec Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Actions"})]}),i.people_dept.map(function(p){return(0,e.createComponentVNode)(2,t.Table.Row,{height:2,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.title}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.crimstat}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:p.buttontext,disabled:!p.demotable,onClick:function(){function N(){return s("remote_demote",{remote_demote:p.name})}return N}()})})]},p.title)})]})});break;default:v=(0,e.createComponentVNode)(2,t.Section,{title:"Warning",color:"red",children:"ERROR: Unknown Mode."})}return(0,e.createComponentVNode)(2,o.Window,{width:800,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:C}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:h}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:v})]})})})}return c}()},64083:function(A,r,n){"use strict";r.__esModule=!0,r.CargoConsole=void 0;var e=n(89005),a=n(64795),t=n(88510),o=n(72253),f=n(36036),b=n(98595),S=n(25328),I=r.CargoConsole=function(){function u(s,i){return(0,e.createComponentVNode)(2,b.Window,{width:900,height:800,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,d),(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,l)]})})})}return u}(),k=function(s,i){var h=(0,o.useLocalState)(i,"contentsModal",null),C=h[0],v=h[1],p=(0,o.useLocalState)(i,"contentsModalTitle",null),N=p[0],V=p[1];if(C!==null&&N!==null)return(0,e.createComponentVNode)(2,f.Modal,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:window.innerHeight*.75+"px",mx:"auto",children:[(0,e.createComponentVNode)(2,f.Box,{width:"100%",bold:!0,children:(0,e.createVNode)(1,"h1",null,[N,(0,e.createTextVNode)(" contents:")],0)}),(0,e.createComponentVNode)(2,f.Box,{children:C.map(function(y){return(0,e.createComponentVNode)(2,f.Box,{children:["- ",y]},y)})}),(0,e.createComponentVNode)(2,f.Box,{m:2,children:(0,e.createComponentVNode)(2,f.Button,{content:"Close",onClick:function(){function y(){v(null),V(null)}return y}()})})]})},g=function(s,i){var h=(0,o.useBackend)(i),C=h.act,v=h.data,p=v.is_public,N=v.timeleft,V=v.moving,y=v.at_station,B,L;return!V&&!y?(B="Docked off-station",L="Call Shuttle"):!V&&y?(B="Docked at the station",L="Return Shuttle"):V&&(L="In Transit...",N!==1?B="Shuttle is en route (ETA: "+N+" minutes)":B="Shuttle is en route (ETA: "+N+" minute)"),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Status",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Shuttle Status",children:B}),p===0&&(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Controls",children:[(0,e.createComponentVNode)(2,f.Button,{content:L,disabled:V,onClick:function(){function w(){return C("moveShuttle")}return w}()}),(0,e.createComponentVNode)(2,f.Button,{content:"View Central Command Messages",onClick:function(){function w(){return C("showMessages")}return w}()})]})]})})})},d=function(s,i){var h,C=(0,o.useBackend)(i),v=C.act,p=C.data,N=p.accounts,V=(0,o.useLocalState)(i,"selectedAccount"),y=V[0],B=V[1],L=[];return N.map(function(w){return L[w.name]=w.account_UID}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Payment",children:[(0,e.createComponentVNode)(2,f.Dropdown,{width:"190px",options:N.map(function(w){return w.name}),selected:(h=N.filter(function(w){return w.account_UID===y})[0])==null?void 0:h.name,onSelected:function(){function w(x){return B(L[x])}return w}()}),N.filter(function(w){return w.account_UID===y}).map(function(w){return(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Account Name",children:(0,e.createComponentVNode)(2,f.Stack.Item,{mt:1,children:w.name})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Balance",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:w.balance})})]},w.account_UID)})]})})},c=function(s,i){var h=(0,o.useBackend)(i),C=h.act,v=h.data,p=v.requests,N=v.categories,V=v.supply_packs,y=(0,o.useSharedState)(i,"category","Emergency"),B=y[0],L=y[1],w=(0,o.useSharedState)(i,"search_text",""),x=w[0],T=w[1],M=(0,o.useLocalState)(i,"contentsModal",null),O=M[0],D=M[1],E=(0,o.useLocalState)(i,"contentsModalTitle",null),P=E[0],R=E[1],j=(0,S.createSearch)(x,function(J){return J.name}),F=(0,o.useLocalState)(i,"selectedAccount"),W=F[0],z=F[1],K=(0,a.flow)([(0,t.filter)(function(J){return J.cat===N.filter(function(Q){return Q.name===B})[0].category||x}),x&&(0,t.filter)(j),(0,t.sortBy)(function(J){return J.name.toLowerCase()})])(V),G="Crate Catalogue";return x?G="Results for '"+x+"':":B&&(G="Browsing "+B),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:G,buttons:(0,e.createComponentVNode)(2,f.Dropdown,{width:"190px",options:N.map(function(J){return J.name}),selected:B,onSelected:function(){function J(Q){return L(Q)}return J}()}),children:[(0,e.createComponentVNode)(2,f.Input,{fluid:!0,placeholder:"Search for...",onInput:function(){function J(Q,ue){return T(ue)}return J}(),mb:1}),(0,e.createComponentVNode)(2,f.Box,{maxHeight:25,overflowY:"auto",overflowX:"hidden",children:(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:K.map(function(J){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{bold:!0,children:[J.name," (",J.cost," Credits)"]}),(0,e.createComponentVNode)(2,f.Table.Cell,{textAlign:"right",pr:1,children:[(0,e.createComponentVNode)(2,f.Button,{content:"Order 1",icon:"shopping-cart",disabled:!W,onClick:function(){function Q(){return C("order",{crate:J.ref,multiple:!1,account:W})}return Q}()}),(0,e.createComponentVNode)(2,f.Button,{content:"Order Multiple",icon:"cart-plus",disabled:!W||J.singleton,onClick:function(){function Q(){return C("order",{crate:J.ref,multiple:!0,account:W})}return Q}()}),(0,e.createComponentVNode)(2,f.Button,{content:"View Contents",icon:"search",onClick:function(){function Q(){D(J.contents),R(J.name)}return Q}()})]})]},J.name)})})})]})})},m=function(s,i){var h=s.request,C,v;switch(h.department){case"Engineering":v="CE",C="orange";break;case"Medical":v="CMO",C="teal";break;case"Science":v="RD",C="purple";break;case"Supply":v="CT",C="brown";break;case"Service":v="HOP",C="olive";break;case"Security":v="HOS",C="red";break;case"Command":v="CAP",C="blue";break;case"Assistant":v="Any Head",C="grey";break}return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{mt:.5,children:"Approval Required:"}),!!h.req_cargo_approval&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"brown",content:"QM",icon:"user-tie",tooltip:"This Order requires approval from the QM still"})}),!!h.req_head_approval&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:C,content:v,disabled:h.req_cargo_approval,icon:"user-tie",tooltip:h.req_cargo_approval?"This Order first requires approval from the QM before the "+v+" can approve it":"This Order requires approval from the "+v+" still"})})]})},l=function(s,i){var h=(0,o.useBackend)(i),C=h.act,v=h.data,p=v.requests,N=v.orders,V=v.shipments;return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:"Orders",children:[(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Requests"}),(0,e.createComponentVNode)(2,f.Table,{children:p.map(function(y){return(0,e.createComponentVNode)(2,f.Table.Row,{className:"Cargo_RequestList",children:[(0,e.createComponentVNode)(2,f.Table.Cell,{mb:1,children:[(0,e.createComponentVNode)(2,f.Box,{children:["Order #",y.ordernum,": ",y.supply_type," (",y.cost," credits) for ",(0,e.createVNode)(1,"b",null,y.orderedby,0)," with"," ",y.department?"The "+y.department+" Department":"Their Personal"," Account"]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",y.comment]}),(0,e.createComponentVNode)(2,m,{request:y})]}),(0,e.createComponentVNode)(2,f.Stack.Item,{textAlign:"right",children:[(0,e.createComponentVNode)(2,f.Button,{content:"Approve",color:"green",disabled:!y.can_approve,onClick:function(){function B(){return C("approve",{ordernum:y.ordernum})}return B}()}),(0,e.createComponentVNode)(2,f.Button,{content:"Deny",color:"red",disabled:!y.can_deny,onClick:function(){function B(){return C("deny",{ordernum:y.ordernum})}return B}()})]})]},y.ordernum)})}),(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Orders Awaiting Delivery"}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:N.map(function(y){return(0,e.createComponentVNode)(2,f.Table.Row,{children:(0,e.createComponentVNode)(2,f.Table.Cell,{children:[(0,e.createComponentVNode)(2,f.Box,{children:["- #",y.ordernum,": ",y.supply_type," for ",(0,e.createVNode)(1,"b",null,y.orderedby,0)]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",y.comment]})]})},y.ordernum)})}),(0,e.createComponentVNode)(2,f.Box,{bold:!0,children:"Order in Transit"}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:V.map(function(y){return(0,e.createComponentVNode)(2,f.Table.Row,{children:(0,e.createComponentVNode)(2,f.Table.Cell,{children:[(0,e.createComponentVNode)(2,f.Box,{children:["- #",y.ordernum,": ",y.supply_type," for ",(0,e.createVNode)(1,"b",null,y.orderedby,0)]}),(0,e.createComponentVNode)(2,f.Box,{italic:!0,children:["Reason: ",y.comment]})]})},y.ordernum)})})]})}},36232:function(A,r,n){"use strict";r.__esModule=!0,r.ChameleonAppearances=r.Chameleon=void 0;var e=n(89005),a=n(25328),t=n(64795),o=n(88510),f=n(72253),b=n(36036),S=n(98595),I=r.Chameleon=function(){function d(c,m){return(0,e.createComponentVNode)(2,S.Window,{width:431,height:500,theme:"syndicate",children:(0,e.createComponentVNode)(2,S.Window.Content,{children:(0,e.createComponentVNode)(2,g)})})}return d}(),k=function(c,m){m===void 0&&(m="");var l=(0,a.createSearch)(m,function(u){return u.name});return(0,t.flow)([(0,o.filter)(function(u){return u==null?void 0:u.name}),m&&(0,o.filter)(l)])(c)},g=r.ChameleonAppearances=function(){function d(c,m){var l=(0,f.useBackend)(m),u=l.act,s=l.data,i=(0,f.useLocalState)(m,"searchText",""),h=i[0],C=i[1],v=k(s.chameleon_skins,h),p=s.selected_appearance;return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Input,{fluid:!0,placeholder:"Search for an appearance",onInput:function(){function N(V,y){return C(y)}return N}()})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Item Appearance",children:v.map(function(N){var V=N.name+"_"+N.icon_state;return(0,e.createComponentVNode)(2,b.ImageButton,{dmIcon:N.icon,dmIconState:N.icon_state,imageSize:64,m:.5,compact:!0,selected:V===p,tooltip:N.name,style:{opacity:V===p&&"1"||"0.5"},onClick:function(){function y(){u("change_appearance",{new_appearance:V})}return y}()},V)})})})]})}return d}()},87331:function(A,r,n){"use strict";r.__esModule=!0,r.ChangelogView=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ChangelogView=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=(0,a.useLocalState)(I,"onlyRecent",0),m=c[0],l=c[1],u=d.cl_data,s=d.last_cl,i={FIX:(0,e.createComponentVNode)(2,t.Icon,{name:"tools",title:"Fix"}),WIP:(0,e.createComponentVNode)(2,t.Icon,{name:"hard-hat",title:"WIP",color:"orange"}),TWEAK:(0,e.createComponentVNode)(2,t.Icon,{name:"sliders-h",title:"Tweak"}),SOUNDADD:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-up",title:"Sound Added",color:"green"}),SOUNDDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-mute",title:"Sound Removed",color:"red"}),CODEADD:(0,e.createComponentVNode)(2,t.Icon,{name:"plus",title:"Code Addition",color:"green"}),CODEDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"minus",title:"Code Removal",color:"red"}),IMAGEADD:(0,e.createComponentVNode)(2,t.Icon,{name:"folder-plus",title:"Sprite Addition",color:"green"}),IMAGEDEL:(0,e.createComponentVNode)(2,t.Icon,{name:"folder-minus",title:"Sprite Removal",color:"red"}),SPELLCHECK:(0,e.createComponentVNode)(2,t.Icon,{name:"font",title:"Spelling/Grammar Fix"}),EXPERIMENT:(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-triangle",title:"Experimental",color:"orange"})},h=function(){function C(v){return v in i?i[v]:(0,e.createComponentVNode)(2,t.Icon,{name:"plus",color:"green"})}return C}();return(0,e.createComponentVNode)(2,o.Window,{width:750,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"ParadiseSS13 Changelog",mt:2,buttons:(0,e.createComponentVNode)(2,t.Button,{content:m?"Showing all changes":"Showing changes since last connection",onClick:function(){function C(){return l(!m)}return C}()}),children:u.map(function(C){return!m&&C.merge_ts<=s||(0,e.createComponentVNode)(2,t.Section,{mb:2,title:C.author+" - Merged on "+C.merge_date,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"#"+C.num,onClick:function(){function v(){return g("open_pr",{pr_number:C.num})}return v}()}),children:C.entries.map(function(v){return(0,e.createComponentVNode)(2,t.Box,{m:1,children:[h(v.etype)," ",v.etext]},v)})},C)})})})})}return b}()},91360:function(A,r,n){"use strict";r.__esModule=!0,r.CheckboxListInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(36036),f=n(72253),b=n(98595),S=r.CheckboxListInputModal=function(){function k(g,d){var c=(0,f.useBackend)(d),m=c.act,l=c.data,u=l.items,s=u===void 0?[]:u,i=l.message,h=i===void 0?"":i,C=l.init_value,v=l.timeout,p=l.title,N=(0,f.useLocalState)(d,"edittedItems",s),V=N[0],y=N[1],B=330+Math.ceil(h.length/3),L=function(){function w(x){x===void 0&&(x=null);var T=[].concat(V);T=T.map(function(M){return M.key===x.key?Object.assign({},M,{checked:!x.checked}):M}),y(T)}return w}();return(0,e.createComponentVNode)(2,b.Window,{title:p,width:325,height:B,children:[v&&(0,e.createComponentVNode)(2,a.Loader,{value:v}),(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{className:"ListInput__Section",fill:!0,title:h,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,I,{filteredItems:V,onClick:L})}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,children:(0,e.createComponentVNode)(2,t.InputButtons,{input:V})})]})})})]})}return k}(),I=function(g,d){var c=g.filteredItems,m=g.onClick;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,tabIndex:0,children:c.map(function(l,u){return(0,e.createComponentVNode)(2,o.Button.Checkbox,{fluid:!0,id:u,onClick:function(){function s(){return m(l)}return s}(),checked:l.checked,style:{animation:"none",transition:"none"},children:l.key.replace(/^\w/,function(s){return s.toUpperCase()})},u)})})}},36108:function(A,r,n){"use strict";r.__esModule=!0,r.ChemDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(85870),f=n(98595),b=[1,5,10,20,30,50],S=[1,5,10],I=r.ChemDispenser=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,i=u.data,h=i.chemicals;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:400+h.length*8,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,d)]})})})}return c}(),k=function(m,l){var u=(0,a.useBackend)(l),s=u.act,i=u.data,h=i.amount,C=i.energy,v=i.maxEnergy;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:C,minValue:0,maxValue:v,ranges:{good:[v*.5,1/0],average:[v*.25,v*.5],bad:[-1/0,v*.25]},children:[C," / ",v," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dispense",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{children:b.map(function(p,N){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"15%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"cog",selected:h===p,content:p,onClick:function(){function V(){return s("amount",{amount:p})}return V}()})},N)})})})]})})})},g=function(m,l){for(var u=(0,a.useBackend)(l),s=u.act,i=u.data,h=i.chemicals,C=h===void 0?[]:h,v=[],p=0;p<(C.length+1)%3;p++)v.push(!0);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:i.glass?"Drink Dispenser":"Chemical Dispenser",children:[C.map(function(N,V){return(0,e.createComponentVNode)(2,t.Button,{m:.1,width:"32.5%",icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",content:N.title,style:{"margin-left":"2px"},onClick:function(){function y(){return s("dispense",{reagent:N.id})}return y}()},V)}),v.map(function(N,V){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%"},V)})]})})},d=function(m,l){var u=(0,a.useBackend)(l),s=u.act,i=u.data,h=i.isBeakerLoaded,C=i.beakerCurrentVolume,v=i.beakerMaxVolume,p=i.beakerContents,N=p===void 0?[]:p;return(0,e.createComponentVNode)(2,t.Stack.Item,{height:16,children:(0,e.createComponentVNode)(2,t.Section,{title:i.glass?"Glass":"Beaker",fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,t.Box,{children:[!!h&&(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"label",mr:2,children:[C," / ",v," units"]}),(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!h,onClick:function(){function V(){return s("ejectBeaker")}return V}()})]}),children:(0,e.createComponentVNode)(2,o.BeakerContents,{beakerLoaded:h,beakerContents:N,buttons:function(){function V(y){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Isolate",icon:"compress-arrows-alt",onClick:function(){function B(){return s("remove",{reagent:y.id,amount:-1})}return B}()}),S.map(function(B,L){return(0,e.createComponentVNode)(2,t.Button,{content:B,onClick:function(){function w(){return s("remove",{reagent:y.id,amount:B})}return w}()},L)}),(0,e.createComponentVNode)(2,t.Button,{content:"ALL",onClick:function(){function B(){return s("remove",{reagent:y.id,amount:y.volume})}return B}()})],0)}return V}()})})})}},13146:function(A,r,n){"use strict";r.__esModule=!0,r.ChemHeater=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(85870),b=n(98595),S=r.ChemHeater=function(){function g(d,c){return(0,e.createComponentVNode)(2,b.Window,{width:350,height:275,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k)]})})})}return g}(),I=function(d,c){var m=(0,t.useBackend)(c),l=m.act,u=m.data,s=u.targetTemp,i=u.targetTempReached,h=u.autoEject,C=u.isActive,v=u.currentTemp,p=u.isBeakerLoaded;return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Settings",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{content:"Auto-eject",icon:h?"toggle-on":"toggle-off",selected:h,onClick:function(){function N(){return l("toggle_autoeject")}return N}()}),(0,e.createComponentVNode)(2,o.Button,{content:C?"On":"Off",icon:"power-off",selected:C,disabled:!p,onClick:function(){function N(){return l("toggle_on")}return N}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,a.round)(s,0),minValue:0,maxValue:1e3,onDrag:function(){function N(V,y){return l("adjust_temperature",{target:y})}return N}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Reading",color:i?"good":"average",children:p&&(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:v,format:function(){function N(V){return(0,a.toFixed)(V)+" K"}return N}()})||"\u2014"})]})})})},k=function(d,c){var m=(0,t.useBackend)(c),l=m.act,u=m.data,s=u.isBeakerLoaded,i=u.beakerCurrentVolume,h=u.beakerMaxVolume,C=u.beakerContents;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:"Beaker",fill:!0,scrollable:!0,buttons:!!s&&(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{inline:!0,color:"label",mr:2,children:[i," / ",h," units"]}),(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject",onClick:function(){function v(){return l("eject_beaker")}return v}()})]}),children:(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:s,beakerContents:C})})})}},56541:function(A,r,n){"use strict";r.__esModule=!0,r.ChemMaster=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(85870),b=n(3939),S=n(35840),I=["icon"];function k(B,L){if(B==null)return{};var w={};for(var x in B)if({}.hasOwnProperty.call(B,x)){if(L.includes(x))continue;w[x]=B[x]}return w}function g(B,L){B.prototype=Object.create(L.prototype),B.prototype.constructor=B,d(B,L)}function d(B,L){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(w,x){return w.__proto__=x,w},d(B,L)}var c=[1,5,10],m=function(L,w){var x=(0,a.useBackend)(w),T=x.act,M=x.data,O=L.args.analysis;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:M.condi?"Condiment Analysis":"Reagent Analysis",children:(0,e.createComponentVNode)(2,t.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:O.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:(O.desc||"").length>0?O.desc:"N/A"}),O.blood_type&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood type",children:O.blood_type}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:O.blood_dna})],4),!M.condi&&(0,e.createComponentVNode)(2,t.Button,{icon:M.printing?"spinner":"print",disabled:M.printing,iconSpin:!!M.printing,ml:"0.5rem",content:"Print",onClick:function(){function D(){return T("print",{idx:O.idx,beaker:L.args.beaker})}return D}()})]})})})})},l=function(B){return B[B.ToDisposals=0]="ToDisposals",B[B.ToBeaker=1]="ToBeaker",B}(l||{}),u=r.ChemMaster=function(){function B(L,w){return(0,e.createComponentVNode)(2,o.Window,{width:575,height:650,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,s),(0,e.createComponentVNode)(2,i),(0,e.createComponentVNode)(2,h),(0,e.createComponentVNode)(2,y)]})})]})}return B}(),s=function(L,w){var x=(0,a.useBackend)(w),T=x.act,M=x.data,O=M.beaker,D=M.beaker_reagents,E=M.buffer_reagents,P=E.length>0;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Beaker",fill:!0,scrollable:!0,buttons:P?(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"eject",disabled:!O,content:"Eject and Clear Buffer",onClick:function(){function R(){return T("eject")}return R}()}):(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!O,content:"Eject and Clear Buffer",onClick:function(){function R(){return T("eject")}return R}()}),children:O?(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:!0,beakerContents:D,buttons:function(){function R(j,F){return(0,e.createComponentVNode)(2,t.Box,{mb:F0?(0,e.createComponentVNode)(2,f.BeakerContents,{beakerLoaded:!0,beakerContents:D,buttons:function(){function E(P,R){return(0,e.createComponentVNode)(2,t.Box,{mb:R0&&(P=E.map(function(R){var j=R.id,F=R.sprite;return(0,e.createComponentVNode)(2,N,{icon:F,translucent:!0,onClick:function(){function W(){return T("set_sprite_style",{production_mode:O,style:j})}return W}(),selected:D===j},j)})),(0,e.createComponentVNode)(2,p,{productionData:L.productionData,children:P&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Style",children:P})})},y=function(L,w){var x=(0,a.useBackend)(w),T=x.act,M=x.data,O=M.loaded_pill_bottle_style,D=M.containerstyles,E=M.loaded_pill_bottle,P={width:"20px",height:"20px"},R=D.map(function(j){var F=j.color,W=j.name,z=O===F;return(0,e.createComponentVNode)(2,t.Button,{style:{position:"relative",width:P.width,height:P.height},onClick:function(){function K(){return T("set_container_style",{style:F})}return K}(),icon:z&&"check",iconStyle:{position:"relative","z-index":1},tooltip:W,tooltipPosition:"top",children:[!z&&(0,e.createVNode)(1,"div",null,null,1,{style:{display:"inline-block"}}),(0,e.createVNode)(1,"span","Button",null,1,{style:{display:"inline-block",position:"absolute",top:0,left:0,margin:0,padding:0,width:P.width,height:P.height,"background-color":F,opacity:.6,filter:"alpha(opacity=60)"}})]},F)});return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Container Customization",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!E,content:"Eject Container",onClick:function(){function j(){return T("ejectp")}return j}()}),children:E?(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Style",children:[(0,e.createComponentVNode)(2,t.Button,{style:{width:P.width,height:P.height},icon:"tint-slash",onClick:function(){function j(){return T("clear_container_style")}return j}(),selected:!O,tooltip:"Default",tooltipPosition:"top"}),R]})}):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"No pill bottle or patch pack loaded."})})})};(0,b.modalRegisterBodyOverride)("analyze",m)},37173:function(A,r,n){"use strict";r.__esModule=!0,r.CloningConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(79140),b=1,S=32,I=128,k=r.CloningConsole=function(){function u(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.tab,N=v.has_scanner,V=v.pod_amount;return(0,e.createComponentVNode)(2,o.Window,{width:640,height:520,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Cloning Console",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Connected scanner",children:N?"Online":"Missing"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Connected pods",children:V})]})}),(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:p===1,icon:"home",onClick:function(){function y(){return C("menu",{tab:1})}return y}(),children:"Main Menu"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:p===2,icon:"user",onClick:function(){function y(){return C("menu",{tab:2})}return y}(),children:"Damage Configuration"})]}),(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,g)})]})})}return u}(),g=function(s,i){var h=(0,a.useBackend)(i),C=h.data,v=C.tab,p;return v===1?p=(0,e.createComponentVNode)(2,d):v===2&&(p=(0,e.createComponentVNode)(2,c)),p},d=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.pods,N=v.pod_amount,V=v.selected_pod_UID;return(0,e.createComponentVNode)(2,t.Box,{children:[!N&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No pods connected."}),!!N&&p.map(function(y,B){return(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Pod "+(B+1),children:(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"96px",shrink:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:(0,f.resolveAsset)("pod_"+(y.cloning?"cloning":"idle")+".gif"),style:{width:"100%","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createComponentVNode)(2,t.Button,{selected:V===y.uid,onClick:function(){function L(){return C("select_pod",{uid:y.uid})}return L}(),children:"Select"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Progress",children:[!y.cloning&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Pod is inactive."}),!!y.cloning&&(0,e.createComponentVNode)(2,t.ProgressBar,{value:y.clone_progress,maxValue:100,color:"good"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Biomass",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:y.biomass,ranges:{good:[2*y.biomass_storage_capacity/3,y.biomass_storage_capacity],average:[y.biomass_storage_capacity/3,2*y.biomass_storage_capacity/3],bad:[0,y.biomass_storage_capacity/3]},minValue:0,maxValue:y.biomass_storage_capacity,children:[y.biomass,"/",y.biomass_storage_capacity+" ("+100*y.biomass/y.biomass_storage_capacity+"%)"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sanguine Reagent",children:y.sanguine_reagent}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Osseous Reagent",children:y.osseous_reagent})]})})]})},y)})]})},c=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.selected_pod_data,N=v.has_scanned,V=v.scanner_has_patient,y=v.feedback,B=v.scan_successful,L=v.cloning_cost,w=v.has_scanner,x=v.currently_scanning;return(0,e.createComponentVNode)(2,t.Box,{children:[!w&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No scanner connected."}),!!w&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Scanner Info",buttons:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hourglass-half",onClick:function(){function T(){return C("scan")}return T}(),disabled:!V||x,children:"Scan"}),(0,e.createComponentVNode)(2,t.Button,{icon:"eject",onClick:function(){function T(){return C("eject")}return T}(),disabled:!V||x,children:"Eject Patient"})]}),children:[!N&&!x&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:V?"No scan detected for current patient.":"No patient is in the scanner."}),(!!N||!!x)&&(0,e.createComponentVNode)(2,t.Box,{color:y.color,children:y.text})]}),(0,e.createComponentVNode)(2,t.Section,{layer:2,title:"Damages Breakdown",children:(0,e.createComponentVNode)(2,t.Box,{children:[(!B||!N)&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No valid scan detected."}),!!B&&!!N&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function T(){return C("fix_all")}return T}(),children:"Repair All Damages"}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function T(){return C("fix_none")}return T}(),children:"Repair No Damages"})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function T(){return C("clone")}return T}(),children:"Clone"})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[0],maxValue:p.biomass_storage_capacity,ranges:{bad:[2*p.biomass_storage_capacity/3,p.biomass_storage_capacity],average:[p.biomass_storage_capacity/3,2*p.biomass_storage_capacity/3],good:[0,p.biomass_storage_capacity/3]},color:L[0]>p.biomass?"bad":null,children:["Biomass: ",L[0],"/",p.biomass,"/",p.biomass_storage_capacity]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[1],maxValue:p.max_reagent_capacity,ranges:{bad:[2*p.max_reagent_capacity/3,p.max_reagent_capacity],average:[p.max_reagent_capacity/3,2*p.max_reagent_capacity/3],good:[0,p.max_reagent_capacity/3]},color:L[1]>p.sanguine_reagent?"bad":"good",children:["Sanguine: ",L[1],"/",p.sanguine_reagent,"/",p.max_reagent_capacity]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:L[2],maxValue:p.max_reagent_capacity,ranges:{bad:[2*p.max_reagent_capacity/3,p.max_reagent_capacity],average:[p.max_reagent_capacity/3,2*p.max_reagent_capacity/3],good:[0,p.max_reagent_capacity/3]},color:L[2]>p.osseous_reagent?"bad":"good",children:["Osseous: ",L[2],"/",p.osseous_reagent,"/",p.max_reagent_capacity]})})]}),(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,l)]})]})})]})]})},m=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.patient_limb_data,N=v.limb_list,V=v.desired_limb_data;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Limbs",children:N.map(function(y,B){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Stack,{align:"baseline",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"15%",height:"20px",children:[p[y][4],":"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),p[y][3]===0&&(0,e.createComponentVNode)(2,t.Stack.Item,{width:"60%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:V[y][0]+V[y][1],maxValue:p[y][5],ranges:{good:[0,p[y][5]/3],average:[p[y][5]/3,2*p[y][5]/3],bad:[2*p[y][5]/3,p[y][5]]},children:["Post-Cloning Damage: ",(0,e.createComponentVNode)(2,t.Icon,{name:"bone"})," "+V[y][0]+" / ",(0,e.createComponentVNode)(2,t.Icon,{name:"fire"})," "+V[y][1]]})}),p[y][3]!==0&&(0,e.createComponentVNode)(2,t.Stack.Item,{width:"60%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:"bad",value:0,children:["The patient's ",p[y][4]," is missing!"]})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[!!p[y][3]&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!V[y][3],onClick:function(){function L(){return C("toggle_limb_repair",{limb:y,type:"replace"})}return L}(),children:"Replace Limb"})}),!p[y][3]&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[y][0]||p[y][1]),checked:!(V[y][0]||V[y][1]),onClick:function(){function L(){return C("toggle_limb_repair",{limb:y,type:"damage"})}return L}(),children:"Repair Damages"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[y][2]&b),checked:!(V[y][2]&b),onClick:function(){function L(){return C("toggle_limb_repair",{limb:y,type:"bone"})}return L}(),children:"Mend Bone"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[y][2]&S),checked:!(V[y][2]&S),onClick:function(){function L(){return C("toggle_limb_repair",{limb:y,type:"ib"})}return L}(),children:"Mend IB"}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!(p[y][2]&I),checked:!(V[y][2]&I),onClick:function(){function L(){return C("toggle_limb_repair",{limb:y,type:"critburn"})}return L}(),children:"Mend Critical Burn"})]})]})]},y)})})},l=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.patient_organ_data,N=v.organ_list,V=v.desired_organ_data;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Organs",children:N.map(function(y,B){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Stack,{align:"baseline",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"20%",height:"20px",children:[p[y][3],":"," "]}),p[y][5]!=="heart"&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[!!p[y][2]&&(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!V[y][2]&&!V[y][1],onClick:function(){function L(){return C("toggle_organ_repair",{organ:y,type:"replace"})}return L}(),children:"Replace Organ"}),!p[y][2]&&(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{disabled:!p[y][0],checked:!V[y][0],onClick:function(){function L(){return C("toggle_organ_repair",{organ:y,type:"damage"})}return L}(),children:"Repair Damages"})})]})}),p[y][5]==="heart"&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Heart replacement is required for cloning."}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"35%",children:[!!p[y][2]&&(0,e.createComponentVNode)(2,t.ProgressBar,{color:"bad",value:0,children:["The patient's ",p[y][3]," is missing!"]}),!p[y][2]&&(0,e.createComponentVNode)(2,t.ProgressBar,{value:V[y][0],maxValue:p[y][4],ranges:{good:[0,p[y][4]/3],average:[p[y][4]/3,2*p[y][4]/3],bad:[2*p[y][4]/3,p[y][4]]},children:"Post-Cloning Damage: "+V[y][0]})]})]})},y)})})}},98723:function(A,r,n){"use strict";r.__esModule=!0,r.CloningPod=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.CloningPod=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.biomass,m=d.biomass_storage_capacity,l=d.sanguine_reagent,u=d.osseous_reagent,s=d.organs,i=d.currently_cloning;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Liquid Storage",children:[(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Biomass:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:c,ranges:{good:[2*m/3,m],average:[m/3,2*m/3],bad:[0,m/3]},minValue:0,maxValue:m})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Sanguine Reagent:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:l+" units"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.NumberInput,{value:0,minValue:0,maxValue:l,step:1,unit:"units",onChange:function(){function h(C,v){return g("remove_reagent",{reagent:"sanguine_reagent",amount:v})}return h}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove All",onClick:function(){function h(){return g("purge_reagent",{reagent:"sanguine_reagent"})}return h}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{height:"25px",align:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{color:"label",width:"25%",children:["Osseous Reagent:"," "]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:u+" units"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.NumberInput,{value:0,minValue:0,maxValue:u,step:1,unit:"units",onChange:function(){function h(C,v){return g("remove_reagent",{reagent:"osseous_reagent",amount:v})}return h}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove All",onClick:function(){function h(){return g("purge_reagent",{reagent:"osseous_reagent"})}return h}()})})]})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Organ Storage",children:[!i&&(0,e.createComponentVNode)(2,t.Box,{children:[!s&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Notice: No organs loaded."}),!!s&&s.map(function(h){return(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:h.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:1}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Eject",onClick:function(){function C(){return g("eject_organ",{organ_ref:h.ref})}return C}()})})]},h)})]}),!!i&&(0,e.createComponentVNode)(2,t.Stack,{height:"100%",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"lock",size:"5",mb:3}),(0,e.createVNode)(1,"br"),"Unable to access organ storage while cloning."]})})]})]})})}return b}()},18259:function(A,r,n){"use strict";r.__esModule=!0,r.CoinMint=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=r.CoinMint=function(){function S(I,k){var g=(0,t.useBackend)(k),d=g.act,c=g.data,m=c.materials,l=c.moneyBag,u=c.moneyBagContent,s=c.moneyBagMaxContent,i=(l?210:138)+Math.ceil(m.length/4)*64;return(0,e.createComponentVNode)(2,f.Window,{width:210,height:i,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.NoticeBox,{m:0,info:!0,children:["Total coins produced: ",c.totalCoins]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Coin Type",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"power-off",color:c.active&&"bad",tooltip:!l&&"Need a money bag",disabled:!l,onClick:function(){function h(){return d("activate")}return h}()}),children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.ProgressBar,{minValue:0,maxValue:c.maxMaterials,value:c.totalMaterials})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"eject",tooltip:"Eject selected material",onClick:function(){function h(){return d("ejectMat")}return h}()})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:m.map(function(h){return(0,e.createComponentVNode)(2,o.Button,{bold:!0,inline:!0,translucent:!0,m:.2,textAlign:"center",selected:h.id===c.chosenMaterial,tooltip:h.name,content:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{className:(0,a.classes)(["materials32x32",h.id])}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:h.amount})]}),onClick:function(){function C(){return d("selectMaterial",{material:h.id})}return C}()},h.id)})})]})})}),!!l&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Money Bag",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject",disabled:c.active,onClick:function(){function h(){return d("ejectBag")}return h}()}),children:(0,e.createComponentVNode)(2,o.ProgressBar,{width:"100%",minValue:0,maxValue:s,value:u,children:[u," / ",s]})})})]})})})}return S}()},93858:function(A,r,n){"use strict";r.__esModule=!0,r.HexColorInput=r.ColorSelector=r.ColorPickerModal=r.ColorInput=void 0;var e=n(89005),a=n(51057),t=n(72253),o=n(36036),f=n(98595),b=n(44879),S=n(14448),I=n(4454),k=n(35840),g=n(9394),d=n(19203),c=["prefixed","alpha","color","fluid","onChange"];/**
* @file
* @copyright 2023 itsmeow
* @license MIT
- */function m(w,x){w.prototype=Object.create(x.prototype),w.prototype.constructor=w,l(w,x)}function l(w,x){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(T,M){return T.__proto__=M,T},l(w,x)}function d(w,x){if(w==null)return{};var T={};for(var M in w)if({}.hasOwnProperty.call(w,M)){if(x.includes(M))continue;T[M]=w[M]}return T}var s=r.ColorPickerModal=function(){function w(x,T){var M=(0,t.useBackend)(T),O=M.data,D=O.timeout,E=O.message,P=O.title,R=O.autofocus,j=O.default_color,F=j===void 0?"#000000":j,W=(0,t.useLocalState)(T,"color_picker_choice",(0,S.hexToHsva)(F)),z=W[0],K=W[1];return(0,e.createComponentVNode)(2,f.Window,{height:400,title:P,width:600,theme:"generic",children:[!!D&&(0,e.createComponentVNode)(2,a.Loader,{value:D}),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[E&&(0,e.createComponentVNode)(2,o.Stack.Item,{m:1,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:"label",overflow:"hidden",children:E})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[!!R&&(0,e.createComponentVNode)(2,o.Autofocus),(0,e.createComponentVNode)(2,i,{color:z,setColor:K,defaultColor:F})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,u.InputButtons,{input:(0,S.hsvaToHex)(z)})})]})})]})}return w}(),i=r.ColorSelector=function(){function w(x,T){var M=x.color,O=x.setColor,D=x.defaultColor,E=function(){function j(F){O(function(W){return Object.assign({},W,F)})}return j}(),P=(0,S.hsvaToRgba)(M),R=(0,S.hsvaToHex)(M);return(0,e.createComponentVNode)(2,o.Flex,{direction:"row",children:[(0,e.createComponentVNode)(2,o.Flex.Item,{mr:2,children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createVNode)(1,"div","react-colorful",[(0,e.createComponentVNode)(2,N,{hsva:M,onChange:E}),(0,e.createComponentVNode)(2,V,{hue:M.h,onChange:E,className:"react-colorful__last-control"})],4)}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"20px",textAlign:"center",children:"Current"}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"20px",textAlign:"center",children:"Previous"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Tooltip,{content:R,position:"bottom",children:(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"30px",backgroundColor:R})}),(0,e.createComponentVNode)(2,o.Tooltip,{content:D,position:"bottom",children:(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"30px",backgroundColor:D})})]})]})}),(0,e.createComponentVNode)(2,o.Flex.Item,{grow:!0,fontSize:"15px",lineHeight:"24px",children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"Hex:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,height:"24px",children:(0,e.createComponentVNode)(2,v,{fluid:!0,color:(0,S.hsvaToHex)(M).substring(1),onChange:function(){function j(F){g.logger.info(F),O((0,S.hexToHsva)(F))}return j}(),prefixed:!0})})]})}),(0,e.createComponentVNode)(2,o.Stack.Divider),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"H:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,V,{hue:M.h,onChange:E})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:M.h,callback:function(){function j(F,W){return E({h:W})}return j}(),max:360,unit:"\xB0"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"S:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,y,{color:M,onChange:E})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:M.s,callback:function(){function j(F,W){return E({s:W})}return j}(),unit:"%"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"V:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,B,{color:M,onChange:E})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:M.v,callback:function(){function j(F,W){return E({v:W})}return j}(),unit:"%"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Divider),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"R:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:M,onChange:E,target:"r"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:P.r,callback:function(){function j(F,W){P.r=W,E((0,S.rgbaToHsva)(P))}return j}(),max:255})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"G:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:M,onChange:E,target:"g"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:P.g,callback:function(){function j(F,W){P.g=W,E((0,S.rgbaToHsva)(P))}return j}(),max:255})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"B:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:M,onChange:E,target:"b"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:P.b,callback:function(){function j(F,W){P.b=W,E((0,S.rgbaToHsva)(P))}return j}(),max:255})})]})})]})})]})}return w}(),h=function(x){var T=x.value,M=x.callback,O=x.min,D=O===void 0?0:O,E=x.max,P=E===void 0?100:E,R=x.unit;return(0,e.createComponentVNode)(2,o.NumberInput,{width:"70px",value:Math.round(T),step:1,minValue:D,maxValue:P,onChange:M,unit:R})},C=function(x){return"#"+x},v=r.HexColorInput=function(){function w(x){var T=x.prefixed,M=x.alpha,O=x.color,D=x.fluid,E=x.onChange,P=d(x,c),R=function(){function F(W){return W.replace(/([^0-9A-F]+)/gi,"").substring(0,M?8:6)}return F}(),j=function(){function F(W){return(0,S.validHex)(W,M)}return F}();return(0,e.normalizeProps)((0,e.createComponentVNode)(2,p,Object.assign({},P,{fluid:D,color:O,onChange:E,escape:R,format:T?C:void 0,validate:j})))}return w}(),p=r.ColorInput=function(w){function x(M){var O;return O=w.call(this)||this,O.props=void 0,O.state=void 0,O.handleInput=function(D){var E=O.props.escape(D.currentTarget.value);O.setState({localValue:E})},O.handleBlur=function(D){D.currentTarget&&(O.props.validate(D.currentTarget.value)?O.props.onChange(O.props.escape?O.props.escape(D.currentTarget.value):D.currentTarget.value):O.setState({localValue:O.props.escape(O.props.color)}))},O.props=M,O.state={localValue:O.props.escape(O.props.color)},O}m(x,w);var T=x.prototype;return T.componentDidUpdate=function(){function M(O,D){O.color!==this.props.color&&this.setState({localValue:this.props.escape(this.props.color)})}return M}(),T.render=function(){function M(){return(0,e.createComponentVNode)(2,o.Box,{className:(0,k.classes)(["Input",this.props.fluid&&"Input--fluid"]),children:[(0,e.createVNode)(1,"div","Input__baseline",".",16),(0,e.createVNode)(64,"input","Input__input",null,1,{value:this.props.format?this.props.format(this.state.localValue):this.state.localValue,spellCheck:"false",onInput:this.handleInput,onBlur:this.handleBlur})]})}return M}(),x}(e.Component),N=function(x){var T=x.hsva,M=x.onChange,O=function(R){M({s:R.left*100,v:100-R.top*100})},D=function(R){M({s:(0,b.clamp)(T.s+R.left*100,0,100),v:(0,b.clamp)(T.v-R.top*100,0,100)})},E={"background-color":(0,S.hsvaToHslString)({h:T.h,s:100,v:100,a:1})+" !important"};return(0,e.createVNode)(1,"div","react-colorful__saturation_value",(0,e.createComponentVNode)(2,I.Interactive,{onMove:O,onKey:D,"aria-label":"Color","aria-valuetext":"Saturation "+Math.round(T.s)+"%, Brightness "+Math.round(T.v)+"%",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__saturation_value-pointer",top:1-T.v/100,left:T.s/100,color:(0,S.hsvaToHslString)(T)})}),2,{style:E})},V=function(x){var T=x.className,M=x.hue,O=x.onChange,D=function(j){O({h:360*j.left})},E=function(j){O({h:(0,b.clamp)(M+j.left*360,0,360)})},P=(0,k.classes)(["react-colorful__hue",T]);return(0,e.createVNode)(1,"div",P,(0,e.createComponentVNode)(2,I.Interactive,{onMove:D,onKey:E,"aria-label":"Hue","aria-valuenow":Math.round(M),"aria-valuemax":"360","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__hue-pointer",left:M/360,color:(0,S.hsvaToHslString)({h:M,s:100,v:100,a:1})})}),2)},y=function(x){var T=x.className,M=x.color,O=x.onChange,D=function(j){O({s:100*j.left})},E=function(j){O({s:(0,b.clamp)(M.s+j.left*100,0,100)})},P=(0,k.classes)(["react-colorful__saturation",T]);return(0,e.createVNode)(1,"div",P,(0,e.createComponentVNode)(2,I.Interactive,{style:{background:"linear-gradient(to right, "+(0,S.hsvaToHslString)({h:M.h,s:0,v:M.v,a:1})+", "+(0,S.hsvaToHslString)({h:M.h,s:100,v:M.v,a:1})+")"},onMove:D,onKey:E,"aria-label":"Saturation","aria-valuenow":Math.round(M.s),"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__saturation-pointer",left:M.s/100,color:(0,S.hsvaToHslString)({h:M.h,s:M.s,v:M.v,a:1})})}),2)},B=function(x){var T=x.className,M=x.color,O=x.onChange,D=function(j){O({v:100*j.left})},E=function(j){O({v:(0,b.clamp)(M.v+j.left*100,0,100)})},P=(0,k.classes)(["react-colorful__value",T]);return(0,e.createVNode)(1,"div",P,(0,e.createComponentVNode)(2,I.Interactive,{style:{background:"linear-gradient(to right, "+(0,S.hsvaToHslString)({h:M.h,s:M.s,v:0,a:1})+", "+(0,S.hsvaToHslString)({h:M.h,s:M.s,v:100,a:1})+")"},onMove:D,onKey:E,"aria-label":"Value","aria-valuenow":Math.round(M.s),"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__value-pointer",left:M.v/100,color:(0,S.hsvaToHslString)({h:M.h,s:M.s,v:M.v,a:1})})}),2)},L=function(x){var T=x.className,M=x.color,O=x.onChange,D=x.target,E=(0,S.hsvaToRgba)(M),P=function(K){E[D]=K,O((0,S.rgbaToHsva)(E))},R=function(K){P(255*K.left)},j=function(K){P((0,b.clamp)(E[D]+K.left*255,0,255))},F=(0,k.classes)(["react-colorful__"+D,T]),W=D==="r"?"rgb("+Math.round(E.r)+",0,0)":D==="g"?"rgb(0,"+Math.round(E.g)+",0)":"rgb(0,0,"+Math.round(E.b)+")";return(0,e.createVNode)(1,"div",F,(0,e.createComponentVNode)(2,I.Interactive,{onMove:R,onKey:j,"aria-valuenow":E[D],"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__"+D+"-pointer",left:E[D]/255,color:W})}),2)}},8444:function(A,r,n){"use strict";r.__esModule=!0,r.ColourMatrixTester=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ColourMatrixTester=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.colour_data,m=[[{name:"RR",idx:0},{name:"RG",idx:1},{name:"RB",idx:2},{name:"RA",idx:3}],[{name:"GR",idx:4},{name:"GG",idx:5},{name:"GB",idx:6},{name:"GA",idx:7}],[{name:"BR",idx:8},{name:"BG",idx:9},{name:"BB",idx:10},{name:"BA",idx:11}],[{name:"AR",idx:12},{name:"AG",idx:13},{name:"AB",idx:14},{name:"AA",idx:15}]];return(0,e.createComponentVNode)(2,o.Window,{width:360,height:190,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Modify Matrix",children:m.map(function(l){return(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",textColor:"label",children:l.map(function(d){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:1,children:[d.name,":\xA0",(0,e.createComponentVNode)(2,t.NumberInput,{width:4,value:c[d.idx],step:.05,minValue:-5,maxValue:5,stepPixelSize:5,onChange:function(){function s(i,h){return g("setvalue",{idx:d.idx+1,value:h})}return s}()})]},d.name)})},l)})})})})})}return b}()},63818:function(A,r,n){"use strict";r.__esModule=!0,r.CommunicationsComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(s){switch(s){case 1:return(0,e.createComponentVNode)(2,I);case 2:return(0,e.createComponentVNode)(2,u);case 3:return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,c)})});case 4:return(0,e.createComponentVNode)(2,l);default:return"ERROR. Unknown menu_state. Please contact NT Technical Support."}},b=r.CommunicationsComputer=function(){function d(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.menu_state;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S),f(p)]})})})}return d}(),S=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.authenticated,N=v.noauthbutton,V=v.esc_section,y=v.esc_callable,B=v.esc_recallable,L=v.esc_status,w=v.authhead,x=v.is_ai,T=v.lastCallLoc,M=!1,O;return p?p===1?O="Command":p===2?O="Captain":p===3?O="CentComm Officer":p===4?(O="CentComm Secure Connection",M=!0):O="ERROR: Report This Bug!":O="Not Logged In",(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Authentication",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:M&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Access",children:O})||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{icon:p?"sign-out-alt":"id-card",selected:p,disabled:N,content:p?"Log Out ("+O+")":"Log In",onClick:function(){function D(){return C("auth")}return D}()})})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:!!V&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Escape Shuttle",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!L&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:L}),!!y&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Options",children:(0,e.createComponentVNode)(2,t.Button,{icon:"rocket",content:"Call Shuttle",disabled:!w,onClick:function(){function D(){return C("callshuttle")}return D}()})}),!!B&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Options",children:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Recall Shuttle",disabled:!w||x,onClick:function(){function D(){return C("cancelshuttle")}return D}()})}),!!T&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Last Call/Recall From",children:T})]})})})],4)},I=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.is_admin;return p?(0,e.createComponentVNode)(2,k):(0,e.createComponentVNode)(2,g)},k=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.is_admin,N=v.gamma_armory_location,V=v.admin_levels,y=v.authenticated,B=v.ert_allowed;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"CentComm Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Change Alert",children:(0,e.createComponentVNode)(2,m,{levels:V,required_access:p,use_confirm:1})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Announcement",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"bullhorn",content:"Make Central Announcement",disabled:!p,onClick:function(){function L(){return C("send_to_cc_announcement_page")}return L}()}),y===4&&(0,e.createComponentVNode)(2,t.Button,{icon:"plus",content:"Make Other Announcement",disabled:!p,onClick:function(){function L(){return C("make_other_announcement")}return L}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Response Team",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"ambulance",content:"Dispatch ERT",disabled:!p,onClick:function(){function L(){return C("dispatch_ert")}return L}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:B,content:B?"ERT calling enabled":"ERT calling disabled",tooltip:B?"Command can request an ERT":"ERTs cannot be requested",disabled:!p,onClick:function(){function L(){return C("toggle_ert_allowed")}return L}(),selected:null})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nuclear Device",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"bomb",content:"Get Authentication Codes",disabled:!p,onClick:function(){function L(){return C("send_nuke_codes")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gamma Armory",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"biohazard",content:N?"Send Gamma Armory":"Recall Gamma Armory",disabled:!p,onClick:function(){function L(){return C("move_gamma_armory")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Other",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"coins",content:"View Economy",disabled:!p,onClick:function(){function L(){return C("view_econ")}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fax",content:"Fax Manager",disabled:!p,onClick:function(){function L(){return C("view_fax")}return L}()})]})]})}),(0,e.createComponentVNode)(2,t.Collapsible,{title:"View Command accessible controls",children:(0,e.createComponentVNode)(2,g)})]})},g=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.msg_cooldown,N=v.emagged,V=v.cc_cooldown,y=v.security_level_color,B=v.str_security_level,L=v.levels,w=v.authcapt,x=v.authhead,T=v.messages,M="Make Priority Announcement";p>0&&(M+=" ("+p+"s)");var O=N?"Message [UNKNOWN]":"Message CentComm",D="Request Authentication Codes";return V>0&&(O+=" ("+V+"s)",D+=" ("+V+"s)"),(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Captain-Only Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Alert",color:y,children:B}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Change Alert",children:(0,e.createComponentVNode)(2,m,{levels:L,required_access:w})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Announcement",children:(0,e.createComponentVNode)(2,t.Button,{icon:"bullhorn",content:M,disabled:!w||p>0,onClick:function(){function E(){return C("announce")}return E}()})}),!!N&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transmit",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",color:"red",content:O,disabled:!w||V>0,onClick:function(){function E(){return C("MessageSyndicate")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync-alt",content:"Reset Relays",disabled:!w,onClick:function(){function E(){return C("RestoreBackup")}return E}()})]})||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transmit",children:(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",content:O,disabled:!w||V>0,onClick:function(){function E(){return C("MessageCentcomm")}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nuclear Device",children:(0,e.createComponentVNode)(2,t.Button,{icon:"bomb",content:D,disabled:!w||V>0,onClick:function(){function E(){return C("nukerequest")}return E}()})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Command Staff Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Displays",children:(0,e.createComponentVNode)(2,t.Button,{icon:"tv",content:"Change Status Displays",disabled:!x,onClick:function(){function E(){return C("status")}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Incoming Messages",children:(0,e.createComponentVNode)(2,t.Button,{icon:"folder-open",content:"View ("+T.length+")",disabled:!x,onClick:function(){function E(){return C("messagelist")}return E}()})})]})})})],4)},u=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.stat_display,N=v.authhead,V=v.current_message_title,y=p.presets.map(function(L){return(0,e.createComponentVNode)(2,t.Button,{content:L.label,selected:L.name===p.type,disabled:!N,onClick:function(){function w(){return C("setstat",{statdisp:L.name})}return w}()},L.name)}),B=p.alerts.map(function(L){return(0,e.createComponentVNode)(2,t.Button,{content:L.label,selected:L.alert===p.icon,disabled:!N,onClick:function(){function w(){return C("setstat",{statdisp:3,alert:L.alert})}return w}()},L.alert)});return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Modify Status Screens",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function L(){return C("main")}return L}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Presets",children:y}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alerts",children:B}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message Line 1",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:p.line_1,disabled:!N,onClick:function(){function L(){return C("setmsg1")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message Line 2",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:p.line_2,disabled:!N,onClick:function(){function L(){return C("setmsg2")}return L}()})})]})})})},c=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.authhead,N=v.current_message_title,V=v.current_message,y=v.messages,B=v.security_level,L;if(N)L=(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:N,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Return To Message List",disabled:!p,onClick:function(){function x(){return C("messagelist")}return x}()}),children:(0,e.createComponentVNode)(2,t.Box,{children:V})})});else{var w=y.map(function(x){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:x.title,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"eye",content:"View",disabled:!p||N===x.title,onClick:function(){function T(){return C("messagelist",{msgid:x.id})}return T}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"times",content:"Delete",disabled:!p,onClick:function(){function T(){return C("delmessage",{msgid:x.id})}return T}()})]},x.id)});L=(0,e.createComponentVNode)(2,t.Section,{title:"Messages Received",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function x(){return C("main")}return x}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:w})})}return(0,e.createComponentVNode)(2,t.Box,{children:L})},m=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=s.levels,N=s.required_access,V=s.use_confirm,y=v.security_level;return V?p.map(function(B){return(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:B.icon,content:B.name,disabled:!N||B.id===y,tooltip:B.tooltip,onClick:function(){function L(){return C("newalertlevel",{level:B.id})}return L}()},B.name)}):p.map(function(B){return(0,e.createComponentVNode)(2,t.Button,{icon:B.icon,content:B.name,disabled:!N||B.id===y,tooltip:B.tooltip,onClick:function(){function L(){return C("newalertlevel",{level:B.id})}return L}()},B.name)})},l=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.is_admin,N=v.possible_cc_sounds;if(!p)return C("main");var V=(0,a.useLocalState)(i,"subtitle",""),y=V[0],B=V[1],L=(0,a.useLocalState)(i,"text",""),w=L[0],x=L[1],T=(0,a.useLocalState)(i,"classified",0),M=T[0],O=T[1],D=(0,a.useLocalState)(i,"beepsound","Beep"),E=D[0],P=D[1];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Central Command Report",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function R(){return C("main")}return R}()}),children:[(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter Subtitle here.",fluid:!0,value:y,onChange:function(){function R(j,F){return B(F)}return R}(),mb:"5px"}),(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter Announcement here,\nMultiline input is accepted.",rows:10,fluid:!0,multiline:1,value:w,onChange:function(){function R(j,F){return x(F)}return R}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Send Announcement",fluid:!0,icon:"paper-plane",center:!0,mt:"5px",textAlign:"center",onClick:function(){function R(){return C("make_cc_announcement",{subtitle:y,text:w,classified:M,beepsound:E})}return R}()}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"260px",height:"20px",options:N,selected:E,onSelected:function(){function R(j){return P(j)}return R}(),disabled:M})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"volume-up",mx:"5px",disabled:M,tooltip:"Test sound",onClick:function(){function R(){return C("test_sound",{sound:E})}return R}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:M,content:"Classified",fluid:!0,tooltip:M?"Sent to station communications consoles":"Publically announced",onClick:function(){function R(){return O(!M)}return R}()})})]})]})})}},20562:function(A,r,n){"use strict";r.__esModule=!0,r.CompostBin=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.CompostBin=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.biomass,m=u.compost,l=u.biomass_capacity,d=u.compost_capacity,s=u.potassium,i=u.potassium_capacity,h=u.potash,C=u.potash_capacity,v=(0,a.useSharedState)(I,"vendAmount",1),p=v[0],N=v[1];return(0,e.createComponentVNode)(2,o.Window,{width:360,height:250,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{label:"Resources",children:(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Biomass",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:c,minValue:0,maxValue:l,ranges:{good:[l*.5,1/0],average:[l*.25,l*.5],bad:[-1/0,l*.25]},children:[c," / ",l," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Compost",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:m,minValue:0,maxValue:d,ranges:{good:[d*.5,1/0],average:[d*.25,d*.5],bad:[-1/0,d*.25]},children:[m," / ",d," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Potassium",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:s,minValue:0,maxValue:i,ranges:{good:[i*.5,1/0],average:[i*.25,i*.5],bad:[-1/0,i*.25]},children:[s," / ",i," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Potash",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:h,minValue:0,maxValue:C,ranges:{good:[C*.5,1/0],average:[C*.25,C*.5],bad:[-1/0,C*.25]},children:[h," / ",C," Units"]})})]})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Controls",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,mr:"5px",color:"silver",children:"Soil clumps to make:"}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,value:p,width:"32px",minValue:1,maxValue:10,stepPixelSize:7,onChange:function(){function V(y,B){return N(B)}return V}()})],4),children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,align:"center",content:"Make Soil",disabled:m<25*p,icon:"arrow-circle-down",onClick:function(){function V(){return g("create",{amount:p})}return V}()})})})]})})})}return b}()},21813:function(A,r,n){"use strict";r.__esModule=!0,r.Contractor=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(73379),b=n(98595);function S(C,v){C.prototype=Object.create(v.prototype),C.prototype.constructor=C,I(C,v)}function I(C,v){return I=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(p,N){return p.__proto__=N,p},I(C,v)}var k={1:["ACTIVE","good"],2:["COMPLETED","good"],3:["FAILED","bad"]},g=["Recording biometric data...","Analyzing embedded syndicate info...","STATUS CONFIRMED","Contacting Syndicate database...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Response received, ack 4851234...","CONFIRM ACC "+Math.round(Math.random()*2e4),"Setting up private accounts...","CONTRACTOR ACCOUNT CREATED","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","CONTRACTS FOUND","WELCOME, AGENT"],u=r.Contractor=function(){function C(v,p){var N=(0,t.useBackend)(p),V=N.act,y=N.data,B;y.unauthorized?B=(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,i,{height:"100%",allMessages:["ERROR: UNAUTHORIZED USER"],finishedTimeout:100,onFinished:function(){function T(){}return T}()})}):y.load_animation_completed?B=(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",children:(0,e.createComponentVNode)(2,c)}),(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",mt:"0.5rem",children:(0,e.createComponentVNode)(2,m)}),(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",overflow:"hidden",children:y.page===1?(0,e.createComponentVNode)(2,l,{height:"100%"}):(0,e.createComponentVNode)(2,s,{height:"100%"})})],4):B=(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,i,{height:"100%",allMessages:g,finishedTimeout:3e3,onFinished:function(){function T(){return V("complete_load_animation")}return T}()})});var L=(0,t.useLocalState)(p,"viewingPhoto",""),w=L[0],x=L[1];return(0,e.createComponentVNode)(2,b.Window,{theme:"syndicate",width:500,height:600,children:[w&&(0,e.createComponentVNode)(2,h),(0,e.createComponentVNode)(2,b.Window.Content,{className:"Contractor",children:(0,e.createComponentVNode)(2,o.Flex,{direction:"column",height:"100%",children:B})})]})}return C}(),c=function(v,p){var N=(0,t.useBackend)(p),V=N.act,y=N.data,B=y.tc_available,L=y.tc_paid_out,w=y.completed_contracts,x=y.rep;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Summary",buttons:(0,e.createComponentVNode)(2,o.Box,{verticalAlign:"middle",mt:"0.25rem",children:[x," Rep"]})},v,{children:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Box,{flexBasis:"50%",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"TC Available",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,o.Flex,{align:"center",children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",children:[B," TC"]}),(0,e.createComponentVNode)(2,o.Button,{disabled:B<=0,content:"Claim",mx:"0.75rem",mb:"0",flexBasis:"content",onClick:function(){function T(){return V("claim")}return T}()})]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"TC Earned",children:[L," TC"]})]})}),(0,e.createComponentVNode)(2,o.Box,{flexBasis:"50%",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Contracts Completed",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,o.Box,{height:"20px",lineHeight:"20px",inline:!0,children:w})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Contractor Status",verticalAlign:"middle",children:"ACTIVE"})]})})]})})))},m=function(v,p){var N=(0,t.useBackend)(p),V=N.act,y=N.data,B=y.page;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Tabs,Object.assign({},v,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:B===1,onClick:function(){function L(){return V("page",{page:1})}return L}(),children:[(0,e.createComponentVNode)(2,o.Icon,{name:"suitcase"}),"Contracts"]}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:B===2,onClick:function(){function L(){return V("page",{page:2})}return L}(),children:[(0,e.createComponentVNode)(2,o.Icon,{name:"shopping-cart"}),"Hub"]})]})))},l=function(v,p){var N=(0,t.useBackend)(p),V=N.act,y=N.data,B=y.contracts,L=y.contract_active,w=y.can_extract,x=!!L&&B.filter(function(E){return E.status===1})[0],T=x&&x.time_left>0,M=(0,t.useLocalState)(p,"viewingPhoto",""),O=M[0],D=M[1];return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Available Contracts",overflow:"auto",buttons:(0,e.createComponentVNode)(2,o.Button,{disabled:!w||T,icon:"parachute-box",content:["Call Extraction",T&&(0,e.createComponentVNode)(2,f.Countdown,{timeLeft:x.time_left,format:function(){function E(P,R){return" ("+R.substr(3)+")"}return E}()})],onClick:function(){function E(){return V("extract")}return E}()})},v,{children:B.slice().sort(function(E,P){return E.status===1?-1:P.status===1?1:E.status-P.status}).map(function(E){var P;return(0,e.createComponentVNode)(2,o.Section,{title:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",color:E.status===1&&"good",children:E.target_name}),(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",children:E.has_photo&&(0,e.createComponentVNode)(2,o.Button,{icon:"camera",mb:"-0.5rem",ml:"0.5rem",onClick:function(){function R(){return D("target_photo_"+E.uid+".png")}return R}()})})]}),className:"Contractor__Contract",buttons:(0,e.createComponentVNode)(2,o.Box,{width:"100%",children:[!!k[E.status]&&(0,e.createComponentVNode)(2,o.Box,{color:k[E.status][1],inline:!0,mt:E.status!==1&&"0.125rem",mr:"0.25rem",lineHeight:"20px",children:k[E.status][0]}),E.status===1&&(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"ban",color:"bad",content:"Abort",ml:"0.5rem",onClick:function(){function R(){return V("abort")}return R}()})]}),children:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"2",mr:"0.5rem",children:[E.fluff_message,!!E.completed_time&&(0,e.createComponentVNode)(2,o.Box,{color:"good",children:[(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Icon,{name:"check",mr:"0.5rem"}),"Contract completed at ",E.completed_time]}),!!E.dead_extraction&&(0,e.createComponentVNode)(2,o.Box,{color:"bad",mt:"0.5rem",bold:!0,children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"Telecrystals reward reduced drastically as the target was dead during extraction."]}),!!E.fail_reason&&(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:[(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Icon,{name:"times",mr:"0.5rem"}),"Contract failed: ",E.fail_reason]})]}),(0,e.createComponentVNode)(2,o.Flex.Item,{flexBasis:"100%",children:[(0,e.createComponentVNode)(2,o.Flex,{mb:"0.5rem",color:"label",children:["Extraction Zone:\xA0",d(E)]}),(P=E.difficulties)==null?void 0:P.map(function(R,j){return(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:!!L,content:R.name+" ("+R.reward+" TC)",onClick:function(){function F(){return V("activate",{uid:E.uid,difficulty:j+1})}return F}()},j)}),!!E.objective&&(0,e.createComponentVNode)(2,o.Box,{color:"white",bold:!0,children:[E.objective.extraction_name,(0,e.createVNode)(1,"br"),"(",(E.objective.rewards.tc||0)+" TC",",\xA0",(E.objective.rewards.credits||0)+" Credits",")"]})]})]})},E.uid)})})))},d=function(v){if(!(!v.objective||v.status>1)){var p=v.objective.locs.user_area_id,N=v.objective.locs.user_coords,V=v.objective.locs.target_area_id,y=v.objective.locs.target_coords,B=p===V;return(0,e.createComponentVNode)(2,o.Flex.Item,{children:(0,e.createComponentVNode)(2,o.Icon,{name:B?"dot-circle-o":"arrow-alt-circle-right-o",color:B?"green":"yellow",rotation:B?null:-(0,a.rad2deg)(Math.atan2(y[1]-N[1],y[0]-N[0])),lineHeight:B?null:"0.85",size:"1.5"})})}},s=function(v,p){var N=(0,t.useBackend)(p),V=N.act,y=N.data,B=y.rep,L=y.buyables;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Available Purchases",overflow:"auto"},v,{children:L.map(function(w){return(0,e.createComponentVNode)(2,o.Section,{title:w.name,children:[w.description,(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:B-1&&(0,e.createComponentVNode)(2,o.Box,{as:"span",color:w.stock===0?"bad":"good",ml:"0.5rem",children:[w.stock," in stock"]})]},w.uid)})})))},i=function(C){function v(N){var V;return V=C.call(this,N)||this,V.timer=null,V.state={currentIndex:0,currentDisplay:[]},V}S(v,C);var p=v.prototype;return p.tick=function(){function N(){var V=this.props,y=this.state;if(y.currentIndex<=V.allMessages.length){this.setState(function(L){return{currentIndex:L.currentIndex+1}});var B=y.currentDisplay;B.push(V.allMessages[y.currentIndex])}else clearTimeout(this.timer),setTimeout(V.onFinished,V.finishedTimeout)}return N}(),p.componentDidMount=function(){function N(){var V=this,y=this.props.linesPerSecond,B=y===void 0?2.5:y;this.timer=setInterval(function(){return V.tick()},1e3/B)}return N}(),p.componentWillUnmount=function(){function N(){clearTimeout(this.timer)}return N}(),p.render=function(){function N(){return(0,e.createComponentVNode)(2,o.Box,{m:1,children:this.state.currentDisplay.map(function(V){return(0,e.createFragment)([V,(0,e.createVNode)(1,"br")],0,V)})})}return N}(),v}(e.Component),h=function(v,p){var N=(0,t.useLocalState)(p,"viewingPhoto",""),V=N[0],y=N[1];return(0,e.createComponentVNode)(2,o.Modal,{className:"Contractor__photoZoom",children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",src:V}),(0,e.createComponentVNode)(2,o.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){function B(){return y("")}return B}()})]})}},54151:function(A,r,n){"use strict";r.__esModule=!0,r.ConveyorSwitch=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ConveyorSwitch=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.slowFactor,m=u.oneWay,l=u.position;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:135,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lever position",children:l>0?"forward":l<0?"reverse":"neutral"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Allow reverse",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!m,onClick:function(){function d(){return g("toggleOneWay")}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Slowdown factor",children:(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",onClick:function(){function d(){return g("slowFactor",{value:c-5})}return d}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-left",onClick:function(){function d(){return g("slowFactor",{value:c-1})}return d}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Slider,{width:"100px",mx:"1px",value:c,fillValue:c,minValue:1,maxValue:50,step:1,format:function(){function d(s){return s+"x"}return d}(),onChange:function(){function d(s,i){return g("slowFactor",{value:i})}return d}()})}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-right",onClick:function(){function d(){return g("slowFactor",{value:c+1})}return d}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",onClick:function(){function d(){return g("slowFactor",{value:c+5})}return d}()})," "]})]})})]})})})})}return b}()},73169:function(A,r,n){"use strict";r.__esModule=!0,r.CrewMonitor=void 0;var e=n(89005),a=n(88510),t=n(25328),o=n(72253),f=n(36036),b=n(36352),S=n(76910),I=n(98595),k=n(96184),g=["color"];function u(h,C){if(h==null)return{};var v={};for(var p in h)if({}.hasOwnProperty.call(h,p)){if(C.includes(p))continue;v[p]=h[p]}return v}var c=function(C,v){return C.dead?"Deceased":parseInt(C.health,10)<=v?"Critical":parseInt(C.stat,10)===1?"Unconscious":"Living"},m=function(C,v){return C.dead?"red":parseInt(C.health,10)<=v?"orange":parseInt(C.stat,10)===1?"blue":"green"},l=r.CrewMonitor=function(){function h(C,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,y=(0,o.useLocalState)(v,"tabIndex",V.tabIndex),B=y[0],L=y[1],w=function(){function T(M){L(M),N("set_tab_index",{tab_index:M})}return T}(),x=function(){function T(M){switch(M){case 0:return(0,e.createComponentVNode)(2,d);case 1:return(0,e.createComponentVNode)(2,i);default:return"WE SHOULDN'T BE HERE!"}}return T}();return(0,e.createComponentVNode)(2,I.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"table",selected:B===0,onClick:function(){function T(){return w(0)}return T}(),children:"Data View"},"DataView"),(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"map-marked-alt",selected:B===1,onClick:function(){function T(){return w(1)}return T}(),children:"Map View"},"MapView")]})}),x(B)]})})})}return h}(),d=function(C,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,y=V.possible_levels,B=V.viewing_current_z_level,L=V.is_advanced,w=V.highlightedNames,x=(0,a.sortBy)(function(E){return!w.includes(E.name)},function(E){return E.name})(V.crewmembers||[]),T=(0,o.useLocalState)(v,"search",""),M=T[0],O=T[1],D=(0,t.createSearch)(M,function(E){return E.name+"|"+E.assignment+"|"+E.area});return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,backgroundColor:"transparent",children:[(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Stack.Item,{width:"100%",ml:"5px",children:(0,e.createComponentVNode)(2,f.Input,{placeholder:"Search by name, assignment or location..",width:"100%",onInput:function(){function E(P,R){return O(R)}return E}()})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:L?(0,e.createComponentVNode)(2,f.Dropdown,{mr:"5px",width:"50px",options:y,selected:B,onSelected:function(){function E(P){return N("switch_level",{new_level:P})}return E}()}):null})]}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,f.Button,{tooltip:"Clear highlights",icon:"square-xmark",onClick:function(){function E(){return N("clear_highlighted_names")}return E}()})}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Location"})]}),x.filter(D).map(function(E,P){var R=w.includes(E.name);return(0,e.createComponentVNode)(2,f.Table.Row,{bold:!!E.is_command,children:[(0,e.createComponentVNode)(2,b.TableCell,{children:(0,e.createComponentVNode)(2,k.ButtonCheckbox,{checked:R,tooltip:"Mark on map",onClick:function(){function j(){return N(R?"remove_highlighted_name":"add_highlighted_name",{name:E.name})}return j}()})}),(0,e.createComponentVNode)(2,b.TableCell,{children:[E.name," (",E.assignment,")"]}),(0,e.createComponentVNode)(2,b.TableCell,{children:[(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:m(E,V.critThreshold),children:c(E,V.critThreshold)}),E.sensor_type>=2||V.ignoreSensors?(0,e.createComponentVNode)(2,f.Box,{inline:!0,ml:1,children:["(",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:S.COLORS.damageType.oxy,children:E.oxy}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:S.COLORS.damageType.toxin,children:E.tox}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:S.COLORS.damageType.burn,children:E.fire}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:S.COLORS.damageType.brute,children:E.brute}),")"]}):null]}),(0,e.createComponentVNode)(2,b.TableCell,{children:E.sensor_type===3||V.ignoreSensors?V.isAI||V.isObserver?(0,e.createComponentVNode)(2,f.Button,{fluid:!0,icon:"location-arrow",content:E.area+" ("+E.x+", "+E.y+")",onClick:function(){function j(){return N("track",{track:E.ref})}return j}()}):E.area+" ("+E.x+", "+E.y+")":(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:"grey",children:"Not Available"})})]},P)})]})]})},s=function(C,v){var p=C.color,N=u(C,g);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.NanoMap.Marker,Object.assign({},N,{children:(0,e.createVNode)(1,"span","highlighted-marker color-border-"+p)})))},i=function(C,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,y=V.highlightedNames;return(0,e.createComponentVNode)(2,f.Box,{height:"100vh",mb:"0.5rem",overflow:"hidden",children:(0,e.createComponentVNode)(2,f.NanoMap,{zoom:V.zoom,offsetX:V.offsetX,offsetY:V.offsetY,onZoom:function(){function B(L){return N("set_zoom",{zoom:L})}return B}(),onOffsetChange:function(){function B(L,w){return N("set_offset",{offset_x:w.offsetX,offset_y:w.offsetY})}return B}(),children:V.crewmembers.filter(function(B){return B.sensor_type===3||V.ignoreSensors}).map(function(B){var L=m(B,V.critThreshold),w=y.includes(B.name),x=function(){return V.isObserver?N("track",{track:B.ref}):null},T=function(){return N(w?"remove_highlighted_name":"add_highlighted_name",{name:B.name})},M=B.name+" ("+B.assignment+")";return w?(0,e.createComponentVNode)(2,s,{x:B.x,y:B.y,tooltip:M,color:L,onClick:x,onDblClick:T},B.ref):(0,e.createComponentVNode)(2,f.NanoMap.MarkerIcon,{x:B.x,y:B.y,icon:"circle",tooltip:M,color:L,onClick:x,onDblClick:T},B.ref)})})})}},63987:function(A,r,n){"use strict";r.__esModule=!0,r.Cryo=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],b=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],S=r.Cryo=function(){function g(u,c){return(0,e.createComponentVNode)(2,o.Window,{width:520,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,I)})})})}return g}(),I=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.isOperating,i=d.hasOccupant,h=d.occupant,C=h===void 0?[]:h,v=d.cellTemperature,p=d.cellTemperatureStatus,N=d.isBeakerLoaded,V=d.cooldownProgress,y=d.auto_eject_healthy,B=d.auto_eject_dead;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Occupant",fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"user-slash",onClick:function(){function L(){return l("ejectOccupant")}return L}(),disabled:!i,children:"Eject"}),children:i?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Occupant",children:C.name||"Unknown"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:C.health,max:C.maxHealth,value:C.health/C.maxHealth,color:C.health>0?"good":"average",children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(C.health)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:b[C.stat][0],children:b[C.stat][1]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(C.bodyTemperature)})," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),f.map(function(L){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:L.label,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:C[L.type]/100,ranges:{bad:[.01,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(C[L.type])})})},L.id)})]}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Cell",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",onClick:function(){function L(){return l("ejectBeaker")}return L}(),disabled:!N,children:"Eject Beaker"}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",onClick:function(){function L(){return l(s?"switchOff":"switchOn")}return L}(),selected:s,children:s?"On":"Off"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",color:p,children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:v})," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:(0,e.createComponentVNode)(2,k)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dosage interval",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{average:[-1/0,99],good:[99,1/0]},color:!N&&"average",value:V,minValue:0,maxValue:100})}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto-eject healthy occupants",children:(0,e.createComponentVNode)(2,t.Button,{icon:y?"toggle-on":"toggle-off",selected:y,onClick:function(){function L(){return l(y?"auto_eject_healthy_off":"auto_eject_healthy_on")}return L}(),children:y?"On":"Off"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto-eject dead occupants",children:(0,e.createComponentVNode)(2,t.Button,{icon:B?"toggle-on":"toggle-off",selected:B,onClick:function(){function L(){return l(B?"auto_eject_dead_off":"auto_eject_dead_on")}return L}(),children:B?"On":"Off"})})]})})})],4)},k=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.isBeakerLoaded,i=d.beakerLabel,h=d.beakerVolume;return s?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:!i&&"average",children:[i||"No label",":"]}),(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:!h&&"bad",ml:1,children:h?(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:h,format:function(){function C(v){return Math.round(v)+" units remaining"}return C}()}):"Beaker is empty"})],4):(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"bad",children:"No beaker loaded"})}},86099:function(A,r,n){"use strict";r.__esModule=!0,r.CryopodConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=r.CryopodConsole=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.data,l=m.account_name,d=m.allow_items;return(0,e.createComponentVNode)(2,o.Window,{title:"Cryopod Console",width:400,height:480,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Hello, "+(l||"[REDACTED]")+"!",children:"This automated cryogenic freezing unit will safely store your corporeal form until your next assignment."}),(0,e.createComponentVNode)(2,S),!!d&&(0,e.createComponentVNode)(2,I)]})})}return k}(),S=function(g,u){var c=(0,a.useBackend)(u),m=c.data,l=m.frozen_crew;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Stored Crew",children:l.length?(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:l.map(function(d,s){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:d.name,children:d.rank},s)})})}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No stored crew!"})})},I=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.frozen_items,s=function(h){var C=h.toString();return C.startsWith("the ")&&(C=C.slice(4,C.length)),(0,f.toTitleCase)(C)};return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Stored Items",children:d.length?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:d.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:s(i.name),buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Drop",mr:1,onClick:function(){function h(){return m("one_item",{item:i.uid})}return h}()})},i)})})}),(0,e.createComponentVNode)(2,t.Button,{content:"Drop All Items",color:"red",onClick:function(){function i(){return m("all_items")}return i}()})],4):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No stored items!"})})}},12692:function(A,r,n){"use strict";r.__esModule=!0,r.DNAModifier=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=[["good","Alive"],["average","Critical"],["bad","DEAD"]],S=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],I=[5,10,20,30,50],k=r.DNAModifier=function(){function p(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.irradiating,x=L.dnaBlockSize,T=L.occupant;V.dnaBlockSize=x,V.isDNAInvalid=!T.isViableSubject||!T.uniqueIdentity||!T.structuralEnzymes;var M;return w&&(M=(0,e.createComponentVNode)(2,C,{duration:w})),(0,e.createComponentVNode)(2,o.Window,{width:660,height:775,children:[(0,e.createComponentVNode)(2,f.ComplexModal),M,(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,g)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,u)})]})})]})}return p}(),g=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.locked,x=L.hasOccupant,T=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{color:"label",inline:!0,mr:"0.5rem",children:"Door Lock:"}),(0,e.createComponentVNode)(2,t.Button,{disabled:!x,selected:w,icon:w?"toggle-on":"toggle-off",content:w?"Engaged":"Disengaged",onClick:function(){function M(){return B("toggleLock")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!x||w,icon:"user-slash",content:"Eject",onClick:function(){function M(){return B("ejectOccupant")}return M}()})],4),children:x?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:T.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:T.minHealth,max:T.maxHealth,value:T.health/T.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:b[T.stat][0],children:b[T.stat][1]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider)]})}),V.isDNAInvalid?(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-circle"}),"\xA0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Radiation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:"0",max:"100",value:T.radiationLevel/100,color:"average"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unique Enzymes",children:L.occupant.uniqueEnzymes?L.occupant.uniqueEnzymes:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-circle"}),"\xA0 Unknown"]})})]})],0):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"Cell unoccupied."})})},u=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.selectedMenuKey,x=L.hasOccupant,T=L.occupant;if(x){if(V.isDNAInvalid)return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No operation possible on this subject."]})})})}else return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant in DNA modifier."]})})});var M;return w==="ui"?M=(0,e.createFragment)([(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,l)],4):w==="se"?M=(0,e.createFragment)([(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,l)],4):w==="buffer"?M=(0,e.createComponentVNode)(2,d):w==="rejuvenators"&&(M=(0,e.createComponentVNode)(2,h)),(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:S.map(function(O,D){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:O[2],selected:w===O[0],onClick:function(){function E(){return B("selectMenuKey",{key:O[0]})}return E}(),children:O[1]},D)})}),M]})},c=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.selectedUIBlock,x=L.selectedUISubBlock,T=L.selectedUITarget,M=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Modify Unique Identifier",children:[(0,e.createComponentVNode)(2,v,{dnaString:M.uniqueIdentity,selectedBlock:w,selectedSubblock:x,blockSize:V.dnaBlockSize,action:"selectUIBlock"}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:15,stepPixelSize:"20",value:T,format:function(){function O(D){return D.toString(16).toUpperCase()}return O}(),ml:"0",onChange:function(){function O(D,E){return B("changeUITarget",{value:E})}return O}()})})}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Irradiate Block",mt:"0.5rem",onClick:function(){function O(){return B("pulseUIRadiation")}return O}()})]})},m=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.selectedSEBlock,x=L.selectedSESubBlock,T=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Modify Structural Enzymes",children:[(0,e.createComponentVNode)(2,v,{dnaString:T.structuralEnzymes,selectedBlock:w,selectedSubblock:x,blockSize:V.dnaBlockSize,action:"selectSEBlock"}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Irradiate Block",onClick:function(){function M(){return B("pulseSERadiation")}return M}()})]})},l=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.radiationIntensity,x=L.radiationDuration;return(0,e.createComponentVNode)(2,t.Section,{title:"Radiation Emitter",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Intensity",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:10,stepPixelSize:20,value:w,popUpPosition:"right",ml:"0",onChange:function(){function T(M,O){return B("radiationIntensity",{value:O})}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Duration",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:20,stepPixelSize:10,unit:"s",value:x,popUpPosition:"right",ml:"0",onChange:function(){function T(M,O){return B("radiationDuration",{value:O})}return T}()})})]}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Pulse Radiation",tooltip:"Mutates a random block of either the occupant's UI or SE.",tooltipPosition:"top-start",mt:"0.5rem",onClick:function(){function T(){return B("pulseRadiation")}return T}()})]})},d=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.buffers,x=w.map(function(T,M){return(0,e.createComponentVNode)(2,s,{id:M+1,name:"Buffer "+(M+1),buffer:T},M)});return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{height:"75%",mt:1,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Buffers",children:x})}),(0,e.createComponentVNode)(2,t.Stack.Item,{height:"25%",children:(0,e.createComponentVNode)(2,i)})]})},s=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=N.id,x=N.name,T=N.buffer,M=L.isInjectorReady,O=x+(T.data?" - "+T.label:"");return(0,e.createComponentVNode)(2,t.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.createComponentVNode)(2,t.Section,{title:O,mx:"0",lineHeight:"18px",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{disabled:!T.data,icon:"trash",content:"Clear",onClick:function(){function D(){return B("bufferOption",{option:"clear",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!T.data,icon:"pen",content:"Rename",onClick:function(){function D(){return B("bufferOption",{option:"changeLabel",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!T.data||!L.hasDisk,icon:"save",content:"Export",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-start",onClick:function(){function D(){return B("bufferOption",{option:"saveDisk",id:w})}return D}()})],4),children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Write",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject U.I",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"saveUI",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject U.I and U.E.",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"saveUIAndUE",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject S.E.",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"saveSE",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!L.hasDisk||!L.disk.data,icon:"arrow-circle-down",content:"From Disk",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"loadDisk",id:w})}return D}()})]}),!!T.data&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subject",children:T.owner||(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Unknown"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Type",children:[T.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!T.ue&&" and Unique Enzymes"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transfer to",children:[(0,e.createComponentVNode)(2,t.Button,{disabled:!M,icon:M?"syringe":"spinner",iconSpin:!M,content:"Injector",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"createInjector",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!M,icon:M?"syringe":"spinner",iconSpin:!M,content:"Block Injector",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"createInjector",id:w,block:1})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"user",content:"Subject",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"transfer",id:w})}return D}()})]})],4)]}),!T.data&&(0,e.createComponentVNode)(2,t.Box,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},i=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.hasDisk,x=L.disk;return(0,e.createComponentVNode)(2,t.Section,{title:"Data Disk",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{disabled:!w||!x.data,icon:"trash",content:"Wipe",onClick:function(){function T(){return B("wipeDisk")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!w,icon:"eject",content:"Eject",onClick:function(){function T(){return B("ejectDisk")}return T}()})],4),children:w?x.data?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Label",children:x.label?x.label:"No label"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subject",children:x.owner?x.owner:(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Unknown"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Type",children:[x.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!x.ue&&" and Unique Enzymes"]})]}):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"Disk is blank."}):(0,e.createComponentVNode)(2,t.Box,{color:"label",textAlign:"center",my:"1rem",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"save-o",size:"4"}),(0,e.createVNode)(1,"br"),"No disk inserted."]})})},h=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.isBeakerLoaded,x=L.beakerVolume,T=L.beakerLabel;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Rejuvenators and Beaker",buttons:(0,e.createComponentVNode)(2,t.Button,{disabled:!w,icon:"eject",content:"Eject",onClick:function(){function M(){return B("ejectBeaker")}return M}()}),children:w?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Inject",children:[I.map(function(M,O){return(0,e.createComponentVNode)(2,t.Button,{disabled:M>x,icon:"syringe",content:M,onClick:function(){function D(){return B("injectRejuvenators",{amount:M})}return D}()},O)}),(0,e.createComponentVNode)(2,t.Button,{disabled:x<=0,icon:"syringe",content:"All",onClick:function(){function M(){return B("injectRejuvenators",{amount:x})}return M}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:[(0,e.createComponentVNode)(2,t.Box,{mb:"0.5rem",children:T||"No label"}),x?(0,e.createComponentVNode)(2,t.Box,{color:"good",children:[x," unit",x===1?"":"s"," remaining"]}):(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Empty"})]})]}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"flask",size:5,color:"silver"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"h3",null,"No beaker loaded.",16)]})})})},C=function(N,V){return(0,e.createComponentVNode)(2,t.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"spinner",size:"5",spin:!0}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{color:"average",children:(0,e.createVNode)(1,"h1",null,[(0,e.createComponentVNode)(2,t.Icon,{name:"radiation"}),(0,e.createTextVNode)("\xA0Irradiating occupant\xA0"),(0,e.createComponentVNode)(2,t.Icon,{name:"radiation"})],4)}),(0,e.createComponentVNode)(2,t.Box,{color:"label",children:(0,e.createVNode)(1,"h3",null,[(0,e.createTextVNode)("For "),N.duration,(0,e.createTextVNode)(" second"),N.duration===1?"":"s"],0)})]})},v=function(N,V){for(var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=N.dnaString,x=N.selectedBlock,T=N.selectedSubblock,M=N.blockSize,O=N.action,D=w.split(""),E=0,P=[],R=function(){for(var W=j/M+1,z=[],K=function(){var Q=G+1;z.push((0,e.createComponentVNode)(2,t.Button,{selected:x===W&&T===Q,content:D[j+G],mb:"0",onClick:function(){function ue(){return B(O,{block:W,subblock:Q})}return ue}()}))},G=0;Gi.spawnpoints?"red":"green",children:[i.total," total, versus ",i.spawnpoints," spawnpoints"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dispatch",children:(0,e.createComponentVNode)(2,t.Button,{width:10.5,textAlign:"center",icon:"ambulance",content:"Send ERT",onClick:function(){function N(){return s("dispatch_ert",{silent:v})}return N}()})})]})})})},g=function(m,l){var d=(0,a.useBackend)(l),s=d.act,i=d.data,h=i.ert_request_messages;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:h&&h.length?h.map(function(C){return(0,e.createComponentVNode)(2,t.Section,{title:C.time,buttons:(0,e.createComponentVNode)(2,t.Button,{content:C.sender_real_name,onClick:function(){function v(){return s("view_player_panel",{uid:C.sender_uid})}return v}(),tooltip:"View player panel"}),children:C.message},(0,f.decodeHtmlEntities)(C.time))}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"broadcast-tower",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No ERT requests."]})})})})},u=function(m,l){var d=(0,a.useBackend)(l),s=d.act,i=d.data,h=(0,a.useLocalState)(l,"text",""),C=h[0],v=h[1];return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter ERT denial reason here,\nMultiline input is accepted.",rows:19,fluid:!0,multiline:1,value:C,onChange:function(){function p(N,V){return v(V)}return p}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Deny ERT",fluid:!0,icon:"times",center:!0,mt:2,textAlign:"center",onClick:function(){function p(){return s("deny_ert",{reason:C})}return p}()})]})})}},90217:function(A,r,n){"use strict";r.__esModule=!0,r.EconomyManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.EconomyManager=function(){function I(k,g){return(0,e.createComponentVNode)(2,o.Window,{width:600,height:325,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,e.createComponentVNode)(2,S)})]})}return I}(),S=function(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.next_payroll_time;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.4rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"coins",verticalAlign:"middle",size:3,mr:"1rem"}),"Economy Manager"]}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.LabeledList,{label:"Pay Bonuses and Deductions",children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Global",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Global Payroll Modification",onClick:function(){function d(){return c("payroll_modification",{mod_type:"global"})}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Department Accounts",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Department Account Payroll Modification",onClick:function(){function d(){return c("payroll_modification",{mod_type:"department"})}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Department Members",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Department Members Payroll Modification",onClick:function(){function d(){return c("payroll_modification",{mod_type:"department_members"})}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Single Accounts",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Crew Member Payroll Modification",onClick:function(){function d(){return c("payroll_modification",{mod_type:"crew_member"})}return d}()})})]}),(0,e.createVNode)(1,"hr"),(0,e.createComponentVNode)(2,t.Box,{mb:.5,children:["Next Payroll in: ",l," Minutes"]}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",width:"auto",color:"bad",content:"Delay Payroll",onClick:function(){function d(){return c("delay_payroll")}return d}()}),(0,e.createComponentVNode)(2,t.Button,{width:"auto",content:"Set Payroll Time",onClick:function(){function d(){return c("set_payroll")}return d}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",width:"auto",color:"good",content:"Accelerate Payroll",onClick:function(){function d(){return c("accelerate_payroll")}return d}()})]}),(0,e.createComponentVNode)(2,t.NoticeBox,{children:[(0,e.createVNode)(1,"b",null,"WARNING:",16)," You take full responsibility for unbalancing the economy with these buttons!"]})],4)}},82565:function(A,r,n){"use strict";r.__esModule=!0,r.Electropack=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.Electropack=function(){function S(I,k){var g=(0,t.useBackend)(k),u=g.act,c=g.data,m=c.power,l=c.code,d=c.frequency,s=c.minFrequency,i=c.maxFrequency;return(0,e.createComponentVNode)(2,f.Window,{width:360,height:135,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,o.Button,{icon:m?"power-off":"times",content:m?"On":"Off",selected:m,onClick:function(){function h(){return u("power")}return h}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Reset",onClick:function(){function h(){return u("reset",{reset:"freq"})}return h}()}),children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:s/10,maxValue:i/10,value:d/10,format:function(){function h(C){return(0,a.toFixed)(C,1)}return h}(),width:"80px",onChange:function(){function h(C,v){return u("freq",{freq:v})}return h}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Reset",onClick:function(){function h(){return u("reset",{reset:"code"})}return h}()}),children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:"80px",onChange:function(){function h(C,v){return u("code",{code:v})}return h}()})})]})})})})}return S}()},11243:function(A,r,n){"use strict";r.__esModule=!0,r.Emojipedia=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=r.Emojipedia=function(){function I(k,g){var u=(0,t.useBackend)(g),c=u.data,m=c.emoji_list,l=(0,t.useLocalState)(g,"searchText",""),d=l[0],s=l[1],i=m.filter(function(h){return h.name.toLowerCase().includes(d.toLowerCase())});return(0,e.createComponentVNode)(2,f.Window,{width:325,height:400,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Emojipedia v1.0.1",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by name",value:d,onInput:function(){function h(C,v){return s(v)}return h}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"Click on an emoji to copy its tag!",tooltipPosition:"bottom",icon:"circle-question"})],4),children:i.map(function(h){return(0,e.createComponentVNode)(2,o.Button,{m:1,color:"transparent",className:(0,a.classes)(["emoji16x16","emoji-"+h.name]),style:{transform:"scale(1.5)"},tooltip:h.name,onClick:function(){function C(){S(h.name)}return C}()},h.name)})})})})}return I}(),S=function(k){var g=document.createElement("input"),u=":"+k+":";g.value=u,document.body.appendChild(g),g.select(),document.execCommand("copy"),document.body.removeChild(g)}},69784:function(A,r,n){"use strict";r.__esModule=!0,r.EmotePanelContent=r.EmotePanel=void 0;var e=n(89005),a=n(72253),t=n(98595),o=n(36036),f=n(25328),b=r.EmotePanel=function(){function I(k,g){return(0,e.createComponentVNode)(2,t.Window,{width:500,height:550,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,S)})})})}return I}(),S=r.EmotePanelContent=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.emotes,d=(0,a.useLocalState)(g,"searchText",""),s=d[0],i=d[1],h=(0,a.useLocalState)(g,"filterVisible",""),C=h[0],v=h[1],p=(0,a.useLocalState)(g,"filterAudible",""),N=p[0],V=p[1],y=(0,a.useLocalState)(g,"filterSound",""),B=y[0],L=y[1],w=(0,a.useLocalState)(g,"filterHands",""),x=w[0],T=w[1],M=(0,a.useLocalState)(g,"filterTargettable",""),O=M[0],D=M[1],E=(0,a.useLocalState)(g,"useTarget",""),P=E[0],R=E[1],j=(0,e.createComponentVNode)(2,o.Input,{placeholder:"\u0418\u0441\u043A\u0430\u0442\u044C \u044D\u043C\u043E\u0446\u0438\u044E...",fluid:!0,onInput:function(){function F(W,z){return i(z)}return F}()});return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B",buttons:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Button,{icon:"eye",align:"center",tooltip:"\u0412\u0438\u0434\u0438\u043C\u044B\u0439",selected:C,onClick:function(){function F(){return v(!C)}return F}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"comment",align:"center",tooltip:"\u0421\u043B\u044B\u0448\u0438\u043C\u044B\u0439",selected:N,onClick:function(){function F(){return V(!N)}return F}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"volume-up",align:"center",tooltip:"\u0417\u0432\u0443\u043A",selected:B,onClick:function(){function F(){return L(!B)}return F}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"hand-paper",align:"center",tooltip:"\u0420\u0443\u043A\u0438",selected:x,onClick:function(){function F(){return T(!x)}return F}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"crosshairs",height:"100%",align:"center",tooltip:"\u0426\u0435\u043B\u044C",selected:O,onClick:function(){function F(){return D(!O)}return F}()})]}),children:j})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:s.length>0?'\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043F\u043E\u0438\u0441\u043A\u0430 "'+s+'"':"\u0412\u0441\u0435 \u044D\u043C\u043E\u0446\u0438\u0438",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"crosshairs",selected:P,onClick:function(){function F(){return R(!P)}return F}(),children:"\u0412\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u0446\u0435\u043B\u044C"}),children:(0,e.createComponentVNode)(2,o.Stack,{children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:l.filter(function(F){return F.key&&(s.length>0?F.key.toLowerCase().includes(s.toLowerCase())||F.name.toLowerCase().includes(s.toLowerCase()):!0)&&(C?F.visible:!0)&&(N?F.audible:!0)&&(B?F.sound:!0)&&(x?F.hands:!0)&&(O?F.targettable:!0)}).map(function(F){return(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function W(){return c("play_emote",{emote_key:F.key,useTarget:P})}return W}(),children:[F.visible?(0,e.createComponentVNode)(2,o.Icon,{name:"eye"}):"",F.audible?(0,e.createComponentVNode)(2,o.Icon,{name:"comment"}):"",F.sound?(0,e.createComponentVNode)(2,o.Icon,{name:"volume-up"}):"",F.hands?(0,e.createComponentVNode)(2,o.Icon,{name:"hand-paper"}):"",F.targettable?(0,e.createComponentVNode)(2,o.Icon,{name:"crosshairs"}):"",F.name]},F.name)})})})})})],4)}return I}()},36730:function(A,r,n){"use strict";r.__esModule=!0,r.EvolutionMenu=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(64795),S=n(88510),I=r.EvolutionMenu=function(){function u(c,m){return(0,e.createComponentVNode)(2,f.Window,{width:480,height:580,theme:"changeling",children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g)]})})})}return u}(),k=function(c,m){var l=(0,t.useBackend)(m),d=l.act,s=l.data,i=s.evo_points,h=s.can_respec;return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Evolution Points",height:5.5,children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,color:"label",children:"Points remaining:"}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,ml:2,bold:!0,color:"#1b945c",children:i}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Button,{ml:2.5,disabled:!h,content:"Readapt",icon:"sync",onClick:function(){function C(){return d("readapt")}return C}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"By transforming a humanoid into a husk, we gain the ability to readapt our chosen evolutions.",tooltipPosition:"bottom",icon:"question-circle"})]})]})})})},g=function(c,m){var l=(0,t.useBackend)(m),d=l.act,s=l.data,i=s.evo_points,h=s.ability_tabs,C=s.purchased_abilities,v=s.view_mode,p=(0,t.useLocalState)(m,"selectedTab",h[0]),N=p[0],V=p[1],y=(0,t.useLocalState)(m,"searchText",""),B=y[0],L=y[1],w=(0,t.useLocalState)(m,"ability_tabs",h[0].abilities),x=w[0],T=w[1],M=function(P,R){if(R===void 0&&(R=""),!P||P.length===0)return[];var j=(0,a.createSearch)(R,function(F){return F.name+"|"+F.description});return(0,b.flow)([(0,S.filter)(function(F){return F==null?void 0:F.name}),(0,S.filter)(j),(0,S.sortBy)(function(F){return F==null?void 0:F.name})])(P)},O=function(P){if(L(P),P==="")return T(N.abilities);T(M(h.map(function(R){return R.abilities}).flat(),P))},D=function(P){V(P),T(P.abilities),L("")};return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Abilities",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Input,{width:"200px",placeholder:"Search Abilities",onInput:function(){function E(P,R){O(R)}return E}(),value:B}),(0,e.createComponentVNode)(2,o.Button,{icon:v?"square-o":"check-square-o",selected:!v,content:"Compact",onClick:function(){function E(){return d("set_view_mode",{mode:0})}return E}()}),(0,e.createComponentVNode)(2,o.Button,{icon:v?"check-square-o":"square-o",selected:v,content:"Expanded",onClick:function(){function E(){return d("set_view_mode",{mode:1})}return E}()})],4),children:[(0,e.createComponentVNode)(2,o.Tabs,{children:h.map(function(E){return(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:B===""&&N===E,onClick:function(){function P(){D(E)}return P}(),children:E.category},E)})}),x.map(function(E,P){return(0,e.createComponentVNode)(2,o.Box,{p:.5,mx:-1,className:"candystripe",children:[(0,e.createComponentVNode)(2,o.Stack,{align:"center",children:[(0,e.createComponentVNode)(2,o.Stack.Item,{ml:.5,color:"#dedede",children:E.name}),C.includes(E.power_path)&&(0,e.createComponentVNode)(2,o.Stack.Item,{ml:2,bold:!0,color:"#1b945c",children:"(Purchased)"}),(0,e.createComponentVNode)(2,o.Stack.Item,{mr:3,textAlign:"right",grow:1,children:[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:["Cost:"," "]}),(0,e.createComponentVNode)(2,o.Box,{as:"span",bold:!0,color:"#1b945c",children:E.cost})]}),(0,e.createComponentVNode)(2,o.Stack.Item,{textAlign:"right",children:(0,e.createComponentVNode)(2,o.Button,{mr:.5,disabled:E.cost>i||C.includes(E.power_path),content:"Evolve",onClick:function(){function R(){return d("purchase",{power_path:E.power_path})}return R}()})})]}),!!v&&(0,e.createComponentVNode)(2,o.Stack,{color:"#8a8a8a",my:1,ml:1.5,width:"95%",children:E.description+" "+E.helptext})]},P)})]})})}},17370:function(A,r,n){"use strict";r.__esModule=!0,r.ExosuitFabricator=void 0;var e=n(89005),a=n(35840),t=n(25328),o=n(72253),f=n(36036),b=n(73379),S=n(98595),I=["id","amount","lineDisplay","onClick"];function k(p,N){if(p==null)return{};var V={};for(var y in p)if({}.hasOwnProperty.call(p,y)){if(N.includes(y))continue;V[y]=p[y]}return V}var g=2e3,u={bananium:"clown",tranquillite:"mime"},c=r.ExosuitFabricator=function(){function p(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.building,x=L.linked;return x?(0,e.createComponentVNode)(2,S.Window,{width:950,height:625,children:(0,e.createComponentVNode)(2,S.Window.Content,{className:"Exofab",children:[(0,e.createComponentVNode)(2,v),(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,l)}),w&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,d)})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m)}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,s)})]})})]})]})}):(0,e.createComponentVNode)(2,C)}return p}(),m=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.materials,x=L.capacity,T=Object.values(w).reduce(function(M,O){return M+O},0);return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:"Materials",className:"Exofab__materials",buttons:(0,e.createComponentVNode)(2,f.Box,{color:"label",mt:"0.25rem",children:[(T/x*100).toPrecision(3),"% full"]}),children:["metal","glass","silver","gold","uranium","titanium","plasma","diamond","bluespace","bananium","tranquillite","plastic"].map(function(M){return(0,e.createComponentVNode)(2,i,{mt:-2,id:M,bold:M==="metal"||M==="glass",onClick:function(){function O(){return B("withdraw",{id:M})}return O}()},M)})})},l=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.curCategory,x=L.categories,T=L.designs,M=L.syncing,O=(0,o.useLocalState)(V,"searchText",""),D=O[0],E=O[1],P=(0,t.createSearch)(D,function(z){return z.name}),R=T.filter(P),j=(0,o.useLocalState)(V,"levelsModal",!1),F=j[0],W=j[1];return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,className:"Exofab__designs",title:(0,e.createComponentVNode)(2,f.Dropdown,{width:"19rem",className:"Exofab__dropdown",selected:w,options:x,onSelected:function(){function z(K){return B("category",{cat:K})}return z}()}),buttons:(0,e.createComponentVNode)(2,f.Box,{mt:"2px",children:[(0,e.createComponentVNode)(2,f.Button,{icon:"plus",content:"Queue all",onClick:function(){function z(){return B("queueall")}return z}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"info",content:"Show current tech levels",onClick:function(){function z(){return W(!0)}return z}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"unlink",color:"red",tooltip:"Disconnect from R&D network",onClick:function(){function z(){return B("unlink")}return z}()})]}),children:[(0,e.createComponentVNode)(2,f.Input,{placeholder:"Search by name...",mb:"0.5rem",width:"100%",onInput:function(){function z(K,G){return E(G)}return z}()}),R.map(function(z){return(0,e.createComponentVNode)(2,h,{design:z},z.id)}),R.length===0&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No designs found."})]})},d=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.building,x=L.buildStart,T=L.buildEnd,M=L.worldTime;return(0,e.createComponentVNode)(2,f.Section,{className:"Exofab__building",stretchContents:!0,children:(0,e.createComponentVNode)(2,f.ProgressBar.Countdown,{start:x,current:M,end:T,children:(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Icon,{name:"cog",spin:!0})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:["Building ",w,"\xA0(",(0,e.createComponentVNode)(2,b.Countdown,{current:M,timeLeft:T-M,format:function(){function O(D,E){return E.substr(3)}return O}()}),")"]})]})})})},s=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.queue,x=L.processingQueue,T=Object.entries(L.queueDeficit).filter(function(O){return O[1]<0}),M=w.reduce(function(O,D){return O+D.time},0);return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,className:"Exofab__queue",title:"Queue",buttons:(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,f.Button,{selected:x,icon:x?"toggle-on":"toggle-off",content:"Process",onClick:function(){function O(){return B("process")}return O}()}),(0,e.createComponentVNode)(2,f.Button,{disabled:w.length===0,icon:"eraser",content:"Clear",onClick:function(){function O(){return B("unqueueall")}return O}()})]}),children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:w.length===0?(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"The queue is empty."}):(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--queue",grow:!0,overflow:"auto",children:w.map(function(O,D){return(0,e.createComponentVNode)(2,f.Box,{color:O.notEnough&&"bad",children:[D+1,". ",O.name,D>0&&(0,e.createComponentVNode)(2,f.Button,{icon:"arrow-up",onClick:function(){function E(){return B("queueswap",{from:D+1,to:D})}return E}()}),D0&&(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--time",children:[(0,e.createComponentVNode)(2,f.Divider),"Processing time:",(0,e.createComponentVNode)(2,f.Icon,{name:"clock",mx:"0.5rem"}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,bold:!0,children:new Date(M/10*1e3).toISOString().substr(14,5)})]}),Object.keys(T).length>0&&(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--deficit",shrink:"0",children:[(0,e.createComponentVNode)(2,f.Divider),"Lacking materials to complete:",T.map(function(O){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,i,{id:O[0],amount:-O[1],lineDisplay:!0})},O[0])})]})],0)})})},i=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=N.id,x=N.amount,T=N.lineDisplay,M=N.onClick,O=k(N,I),D=L.materials[w]||0,E=x||D;if(!(E<=0&&!(w==="metal"||w==="glass"))){var P=x&&x>D;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.Stack,Object.assign({align:"center",className:(0,a.classes)(["Exofab__material",T&&"Exofab__material--line"])},O,{children:T?(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{className:(0,a.classes)(["materials32x32",w])}),(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__material--amount",color:P&&"bad",ml:0,mr:1,children:E.toLocaleString("en-US")})],4):(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{basis:"content",children:(0,e.createComponentVNode)(2,f.Button,{width:"85%",color:"transparent",onClick:M,children:(0,e.createComponentVNode)(2,f.Box,{mt:1,className:(0,a.classes)(["materials32x32",w])})})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:"1",children:[(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__material--name",children:w}),(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__material--amount",children:[E.toLocaleString("en-US")," cm\xB3 (",Math.round(E/g*10)/10," ","sheets)"]})]})],4)})))}},h=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=N.design;return(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__design",children:[(0,e.createComponentVNode)(2,f.Button,{disabled:w.notEnough||L.building,icon:"cog",content:w.name,onClick:function(){function x(){return B("build",{id:w.id})}return x}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"plus-circle",onClick:function(){function x(){return B("queue",{id:w.id})}return x}()}),(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__design--cost",children:Object.entries(w.cost).map(function(x){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,i,{id:x[0],amount:x[1],lineDisplay:!0})},x[0])})}),(0,e.createComponentVNode)(2,f.Stack,{className:"Exofab__design--time",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"clock"}),w.time>0?(0,e.createFragment)([w.time/10,(0,e.createTextVNode)(" seconds")],0):"Instant"]})})]})},C=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.controllers;return(0,e.createComponentVNode)(2,S.Window,{children:(0,e.createComponentVNode)(2,S.Window.Content,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Link"})]}),w.map(function(x){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:x.addr}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:x.net_id}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,f.Button,{content:"Link",icon:"link",onClick:function(){function T(){return B("linktonetworkcontroller",{target_controller:x.addr})}return T}()})})]},x.addr)})]})})})})},v=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.tech_levels,x=(0,o.useLocalState)(V,"levelsModal",!1),T=x[0],M=x[1];return T?(0,e.createComponentVNode)(2,f.Modal,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:window.innerHeight*.75+"px",mx:"auto",children:(0,e.createComponentVNode)(2,f.Section,{title:"Current tech levels",buttons:(0,e.createComponentVNode)(2,f.Button,{content:"Close",onClick:function(){function O(){M(!1)}return O}()}),children:(0,e.createComponentVNode)(2,f.LabeledList,{children:w.map(function(O){var D=O.name,E=O.level;return(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:D,children:E},D)})})})}):null}},59128:function(A,r,n){"use strict";r.__esModule=!0,r.ExperimentConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=new Map([[0,{text:"Conscious",color:"good"}],[1,{text:"Unconscious",color:"average"}],[2,{text:"Deceased",color:"bad"}]]),b=new Map([[0,{label:"Probe",icon:"thermometer"}],[1,{label:"Dissect",icon:"brain"}],[2,{label:"Analyze",icon:"search"}]]),S=r.ExperimentConsole=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.open,d=m.feedback,s=m.occupant,i=m.occupant_name,h=m.occupant_status,C=function(){function p(){if(!s)return(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No specimen detected."});var N=function(){function y(){return f.get(h)}return y}(),V=N();return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:i}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:V.color,children:V.text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Experiments",children:[0,1,2].map(function(y){return(0,e.createComponentVNode)(2,t.Button,{icon:b.get(y).icon,content:b.get(y).label,onClick:function(){function B(){return c("experiment",{experiment_type:y})}return B}()},y)})})]})}return p}(),v=C();return(0,e.createComponentVNode)(2,o.Window,{theme:"abductor",width:350,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:d})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Scanner",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){function p(){return c("door")}return p}()}),children:v})]})})}return I}()},97086:function(A,r,n){"use strict";r.__esModule=!0,r.ExternalAirlockController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=0,b=1013,S=function(g){var u="good",c=80,m=95,l=110,d=120;return gl?u="average":g>d&&(u="bad"),u},I=r.ExternalAirlockController=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.chamber_pressure,s=l.exterior_status,i=l.interior_status,h=l.processing;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:205,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Information",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Chamber Pressure",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:S(d),value:d,minValue:f,maxValue:b,children:[d," kPa"]})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Actions",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Abort",icon:"ban",color:"red",disabled:!h,onClick:function(){function C(){return m("abort")}return C}()}),children:[(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:h,onClick:function(){function C(){return m("cycle_ext")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Cycle to Interior",icon:"arrow-circle-right",disabled:h,onClick:function(){function C(){return m("cycle_int")}return C}()})]}),(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Force Exterior Door",icon:"exclamation-triangle",color:i==="open"?"red":h?"yellow":null,onClick:function(){function C(){return m("force_ext")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Force Interior Door",icon:"exclamation-triangle",color:i==="open"?"red":h?"yellow":null,onClick:function(){function C(){return m("force_int")}return C}()})]})]})]})})}return k}()},96142:function(A,r,n){"use strict";r.__esModule=!0,r.FaxMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.FaxMachine=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data;return(0,e.createComponentVNode)(2,o.Window,{width:540,height:295,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Card",children:(0,e.createComponentVNode)(2,t.Button,{icon:u.scan_name?"eject":"id-card",selected:u.scan_name,content:u.scan_name?u.scan_name:"-----",tooltip:u.scan_name?"Eject ID":"Insert ID",onClick:function(){function c(){return g("scan")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Authorize",children:(0,e.createComponentVNode)(2,t.Button,{icon:u.authenticated?"sign-out-alt":"id-card",selected:u.authenticated,disabled:u.nologin,content:u.realauth?"Log Out":"Log In",onClick:function(){function c(){return g("auth")}return c}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Fax Menu",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network",children:u.network}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Document",children:[(0,e.createComponentVNode)(2,t.Button,{icon:u.paper?"eject":"paperclip",disabled:!u.authenticated&&!u.paper,content:u.paper?u.paper:"-----",onClick:function(){function c(){return g("paper")}return c}()}),!!u.paper&&(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){function c(){return g("rename")}return c}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sending To",children:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:u.destination?u.destination:"-----",disabled:!u.authenticated,onClick:function(){function c(){return g("dept")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Action",children:(0,e.createComponentVNode)(2,t.Button,{icon:"envelope",content:u.sendError?u.sendError:"Send",disabled:!u.paper||!u.destination||!u.authenticated||u.sendError,onClick:function(){function c(){return g("send")}return c}()})})]})})]})})}return b}()},74123:function(A,r,n){"use strict";r.__esModule=!0,r.FilingCabinet=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.FilingCabinet=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=k.config,m=u.contents,l=c.title;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:300,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Contents",children:[!m&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"folder-open",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"The ",l," is empty."]})}),!!m&&m.slice().map(function(d){return(0,e.createComponentVNode)(2,t.Stack,{mt:.5,className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"80%",children:d.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Retrieve",onClick:function(){function s(){return g("retrieve",{index:d.index})}return s}()})})]},d)})]})})})})}return b}()},83767:function(A,r,n){"use strict";r.__esModule=!0,r.FloorPainter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=k.icon_state,d=k.direction,s=k.isSelected,i=k.onSelect;return(0,e.createComponentVNode)(2,t.DmIcon,{icon:m.icon,icon_state:l,direction:d,onClick:i,style:{"border-style":s&&"solid"||"none","border-width":"2px","border-color":"orange",padding:s&&"0px"||"2px"}})},b={NORTH:1,SOUTH:2,EAST:4,WEST:8},S=r.FloorPainter=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.availableStyles,d=m.selectedStyle,s=m.selectedDir;return(0,e.createComponentVNode)(2,o.Window,{width:405,height:475,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Decal setup",children:[(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-left",onClick:function(){function i(){return c("cycle_style",{offset:-1})}return i}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Dropdown,{options:l,selected:d,width:"150px",nochevron:!0,onSelected:function(){function i(h){return c("select_style",{style:h})}return i}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",onClick:function(){function i(){return c("cycle_style",{offset:1})}return i}()})})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"5px",mb:"5px",children:(0,e.createComponentVNode)(2,t.Flex,{overflowY:"auto",maxHeight:"239px",wrap:"wrap",children:l.map(function(i){return(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,f,{icon_state:i,isSelected:d===i,onSelect:function(){function h(){return c("select_style",{style:i})}return h}()})},i)})})}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Direction",children:(0,e.createComponentVNode)(2,t.Table,{style:{display:"inline"},children:[b.NORTH,null,b.SOUTH].map(function(i){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[i+b.WEST,i,i+b.EAST].map(function(h){return(0,e.createComponentVNode)(2,t.Table.Cell,{style:{"vertical-align":"middle","text-align":"center"},children:h===null?(0,e.createComponentVNode)(2,t.Icon,{name:"arrows-alt",size:3}):(0,e.createComponentVNode)(2,f,{icon_state:d,direction:h,isSelected:h===s,onSelect:function(){function C(){return c("select_direction",{direction:h})}return C}()})},h)})},i)})})})})]})})})}return I}()},53424:function(A,r,n){"use strict";r.__esModule=!0,r.GPS=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=function(l){return l?"("+l.join(", ")+")":"ERROR"},S=function(l,d){if(!(!l||!d)){if(l[2]!==d[2])return null;var s=Math.atan2(d[1]-l[1],d[0]-l[0]),i=Math.sqrt(Math.pow(d[1]-l[1],2)+Math.pow(d[0]-l[0],2));return{angle:(0,a.rad2deg)(s),distance:i}}},I=r.GPS=function(){function m(l,d){var s=(0,t.useBackend)(d),i=s.data,h=i.emped,C=i.active,v=i.area,p=i.position,N=i.saved;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:h?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,k,{emp:!0})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,g)}),C?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,u,{area:v,position:p})}),N&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,u,{title:"Saved Position",position:N})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,c,{height:"100%"})})],0):(0,e.createComponentVNode)(2,k)],0)})})})}return m}(),k=function(l,d){var s=l.emp;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Box,{width:"100%",height:"100%",color:"label",textAlign:"center",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon,{name:s?"ban":"power-off",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),s?"ERROR: Device temporarily lost signal.":"Device is disabled."]})})})})},g=function(l,d){var s=(0,t.useBackend)(d),i=s.act,h=s.data,C=h.active,v=h.tag,p=h.same_z,N=(0,t.useLocalState)(d,"newTag",v),V=N[0],y=N[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Settings",buttons:(0,e.createComponentVNode)(2,o.Button,{selected:C,icon:C?"toggle-on":"toggle-off",content:C?"On":"Off",onClick:function(){function B(){return i("toggle")}return B}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Tag",children:[(0,e.createComponentVNode)(2,o.Input,{width:"5rem",value:v,onEnter:function(){function B(){return i("tag",{newtag:V})}return B}(),onInput:function(){function B(L,w){return y(w)}return B}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:v===V,width:"20px",mb:"0",ml:"0.25rem",onClick:function(){function B(){return i("tag",{newtag:V})}return B}(),children:(0,e.createComponentVNode)(2,o.Icon,{name:"pen"})})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Range",children:(0,e.createComponentVNode)(2,o.Button,{selected:!p,icon:p?"compress":"expand",content:p?"Local Sector":"Global",onClick:function(){function B(){return i("same_z")}return B}()})})]})})},u=function(l,d){var s=l.title,i=l.area,h=l.position;return(0,e.createComponentVNode)(2,o.Section,{title:s||"Position",children:(0,e.createComponentVNode)(2,o.Box,{fontSize:"1.5rem",children:[i&&(0,e.createFragment)([i,(0,e.createVNode)(1,"br")],0),b(h)]})})},c=function(l,d){var s=(0,t.useBackend)(d),i=s.data,h=i.position,C=i.signals;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,title:"Signals"},l,{children:(0,e.createComponentVNode)(2,o.Table,{children:C.map(function(v){return Object.assign({},v,S(h,v.position))}).map(function(v,p){return(0,e.createComponentVNode)(2,o.Table.Row,{backgroundColor:p%2===0&&"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,o.Table.Cell,{width:"30%",verticalAlign:"middle",color:"label",p:"0.25rem",bold:!0,children:v.tag}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",color:"grey",children:v.area}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",collapsing:!0,children:v.distance!==void 0&&(0,e.createComponentVNode)(2,o.Box,{opacity:Math.max(1-Math.min(v.distance,100)/100,.5),children:[(0,e.createComponentVNode)(2,o.Icon,{name:v.distance>0?"arrow-right":"circle",rotation:-v.angle}),"\xA0",Math.floor(v.distance)+"m"]})}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",pr:"0.25rem",collapsing:!0,children:b(v.position)})]},p)})})})))}},89124:function(A,r,n){"use strict";r.__esModule=!0,r.GeneModder=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(3939),f=n(98595),b=r.GeneModder=function(){function d(s,i){var h=(0,a.useBackend)(i),C=h.data,v=C.has_seed;return(0,e.createComponentVNode)(2,f.Window,{width:950,height:650,children:[(0,e.createVNode)(1,"div","GeneModder__left",(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,l,{scrollable:!0})}),2),(0,e.createVNode)(1,"div","GeneModder__right",(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,o.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),v===0?(0,e.createComponentVNode)(2,I):(0,e.createComponentVNode)(2,S)]})}),2)]})}return d}(),S=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.disk;return(0,e.createComponentVNode)(2,t.Section,{title:"Genes",fill:!0,scrollable:!0,children:[(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,u),(0,e.createComponentVNode)(2,c)]})},I=function(s,i){return(0,e.createComponentVNode)(2,t.Section,{fill:!0,height:"85%",children:(0,e.createComponentVNode)(2,t.Stack,{height:"100%",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"green",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"leaf",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),"The plant DNA manipulator is missing a seed."]})})})},k=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.has_seed,N=v.seed,V=v.has_disk,y=v.disk,B,L;return p?B=(0,e.createComponentVNode)(2,t.Stack.Item,{mb:"-6px",mt:"-4px",children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+N.image,style:{"vertical-align":"middle",width:"32px",margin:"-1px","margin-left":"-11px"}}),(0,e.createComponentVNode)(2,t.Button,{content:N.name,onClick:function(){function w(){return C("eject_seed")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{ml:"3px",icon:"pen",tooltip:"Name Variant",onClick:function(){function w(){return C("variant_name")}return w}()})]}):B=(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:3.3,content:"None",onClick:function(){function w(){return C("eject_seed")}return w}()})}),V?L=y.name:L="None",(0,e.createComponentVNode)(2,t.Section,{title:"Storage",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Plant Sample",children:B}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Disk",children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:3.3,content:L,tooltip:"Select Empty Disk",onClick:function(){function w(){return C("select_empty_disk")}return w}()})})})]})})},g=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.disk,N=v.core_genes;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Core Genes",open:!0,children:[N.map(function(V){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",ml:"2px",children:V.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract",disabled:!(p!=null&&p.can_extract),icon:"save",onClick:function(){function y(){return C("extract",{id:V.id})}return y}()})})]},V)})," ",(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract All",disabled:!(p!=null&&p.can_extract),icon:"save",onClick:function(){function V(){return C("bulk_extract_core")}return V}()})})})]},"Core Genes")},u=function(s,i){var h=(0,a.useBackend)(i),C=h.data,v=C.reagent_genes,p=C.has_reagent;return(0,e.createComponentVNode)(2,m,{title:"Reagent Genes",gene_set:v,do_we_show:p})},c=function(s,i){var h=(0,a.useBackend)(i),C=h.data,v=C.trait_genes,p=C.has_trait;return(0,e.createComponentVNode)(2,m,{title:"Trait Genes",gene_set:v,do_we_show:p})},m=function(s,i){var h=s.title,C=s.gene_set,v=s.do_we_show,p=(0,a.useBackend)(i),N=p.act,V=p.data,y=V.disk;return(0,e.createComponentVNode)(2,t.Collapsible,{title:h,open:!0,children:v?C.map(function(B){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",ml:"2px",children:B.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract",disabled:!(y!=null&&y.can_extract),icon:"save",onClick:function(){function L(){return N("extract",{id:B.id})}return L}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove",icon:"times",onClick:function(){function L(){return N("remove",{id:B.id})}return L}()})})]},B)}):(0,e.createComponentVNode)(2,t.Stack.Item,{children:"No Genes Detected"})},h)},l=function(s,i){var h=s.title,C=s.gene_set,v=s.do_we_show,p=(0,a.useBackend)(i),N=p.act,V=p.data,y=V.has_seed,B=V.empty_disks,L=V.stat_disks,w=V.trait_disks,x=V.reagent_disks;return(0,e.createComponentVNode)(2,t.Section,{title:"Disks",children:[(0,e.createVNode)(1,"br"),"Empty Disks: ",B,(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{width:12,icon:"arrow-down",tooltip:"Eject an Empty disk",content:"Eject Empty Disk",onClick:function(){function T(){return N("eject_empty_disk")}return T}()}),(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Stats",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[L.slice().sort(function(T,M){return T.display_name.localeCompare(M.display_name)}).map(function(T){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:T.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[T.stat==="All"?(0,e.createComponentVNode)(2,t.Button,{content:"Replace All",tooltip:"Write disk stats to seed",disabled:!(T!=null&&T.ready)||!y,icon:"arrow-circle-down",onClick:function(){function M(){return N("bulk_replace_core",{index:T.index})}return M}()}):(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",tooltip:"Write disk stat to seed",disabled:!T||!y,content:"Replace",onClick:function(){function M(){return N("replace",{index:T.index,stat:T.stat})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("select",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("eject_disk",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:T.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function M(){return N("set_read_only",{index:T.index,read_only:T.read_only})}return M}()})]})]},T)}),(0,e.createComponentVNode)(2,t.Button)]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Traits",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[w.slice().sort(function(T,M){return T.display_name.localeCompare(M.display_name)}).map(function(T){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:T.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",disabled:!T||!T.can_insert,tooltip:"Add disk trait to seed",content:"Insert",onClick:function(){function M(){return N("insert",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("select",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("eject_disk",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:T.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function M(){return N("set_read_only",{index:T.index,read_only:T.read_only})}return M}()})]})]},T)}),(0,e.createComponentVNode)(2,t.Button)]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Reagents",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[x.slice().sort(function(T,M){return T.display_name.localeCompare(M.display_name)}).map(function(T){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:T.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",disabled:!T||!T.can_insert,tooltip:"Add disk reagent to seed",content:"Insert",onClick:function(){function M(){return N("insert",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("select",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("eject_disk",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:T.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function M(){return N("set_read_only",{index:T.index,read_only:T.read_only})}return M}()})]})]},T)}),(0,e.createComponentVNode)(2,t.Button)]})})]})]})}},73053:function(A,r,n){"use strict";r.__esModule=!0,r.GenericCrewManifest=void 0;var e=n(89005),a=n(36036),t=n(98595),o=n(41874),f=r.GenericCrewManifest=function(){function b(S,I){return(0,e.createComponentVNode)(2,t.Window,{theme:"nologo",width:588,height:510,children:(0,e.createComponentVNode)(2,t.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,a.Section,{noTopPadding:!0,children:(0,e.createComponentVNode)(2,o.CrewManifest)})})})}return b}()},42914:function(A,r,n){"use strict";r.__esModule=!0,r.GhostHudPanel=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GhostHudPanel=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.data,c=u.security,m=u.medical,l=u.diagnostic,d=u.radioactivity,s=u.ahud;return(0,e.createComponentVNode)(2,o.Window,{width:250,height:207,theme:"nologo",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,b,{label:"Medical",type:"medical",is_active:m}),(0,e.createComponentVNode)(2,b,{label:"Security",type:"security",is_active:c}),(0,e.createComponentVNode)(2,b,{label:"Diagnostic",type:"diagnostic",is_active:l}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,b,{label:"Radioactivity",type:"radioactivity",is_active:d,act_on:"rads_on",act_off:"rads_off"}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,b,{label:"Antag HUD",is_active:s,act_on:"ahud_on",act_off:"ahud_off"})]})})})}return S}(),b=function(I,k){var g=(0,a.useBackend)(k),u=g.act,c=I.label,m=I.type,l=m===void 0?null:m,d=I.is_active,s=I.act_on,i=s===void 0?"hud_on":s,h=I.act_off,C=h===void 0?"hud_off":h;return(0,e.createComponentVNode)(2,t.Flex,{pt:.3,color:"label",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{pl:.5,align:"center",width:"80%",children:c}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Button,{mr:.6,content:d?"On":"Off",icon:d?"toggle-on":"toggle-off",selected:d,onClick:function(){function v(){return u(d?C:i,{hud_type:l})}return v}()})})]})}},25825:function(A,r,n){"use strict";r.__esModule=!0,r.GlandDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GlandDispenser=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.glands,m=c===void 0?[]:c;return(0,e.createComponentVNode)(2,o.Window,{width:300,height:338,theme:"abductor",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:m.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{width:"60px",height:"60px",m:.75,textAlign:"center",fontSize:"17px",lineHeight:"55px",icon:"eject",backgroundColor:l.color,content:l.amount||"0",disabled:!l.amount,onClick:function(){function d(){return g("dispense",{gland_id:l.id})}return d}()},l.id)})})})})}return b}()},10270:function(A,r,n){"use strict";r.__esModule=!0,r.GravityGen=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GravityGen=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.charging_state,m=u.charge_count,l=u.breaker,d=u.ext_power,s=function(){function h(C){return C>0?(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"average",children:["[ ",C===1?"Charging":"Discharging"," ]"]}):(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:d?"good":"bad",children:["[ ",d?"Powered":"Unpowered"," ]"]})}return h}(),i=function(){function h(C){if(C>0)return(0,e.createComponentVNode)(2,t.NoticeBox,{danger:!0,p:1.5,children:[(0,e.createVNode)(1,"b",null,"WARNING:",16)," Radiation Detected!"]})}return h}();return(0,e.createComponentVNode)(2,o.Window,{width:350,height:170,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[i(c),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Generator Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:l?"power-off":"times",content:l?"Online":"Offline",color:l?"green":"red",px:1.5,onClick:function(){function h(){return g("breaker")}return h}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Status",color:d?"good":"bad",children:s(c)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gravity Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:m/100,ranges:{good:[.9,1/0],average:[.5,.9],bad:[-1/0,.5]}})})]})})]})})})}return b}()},48657:function(A,r,n){"use strict";r.__esModule=!0,r.GuestPass=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49148),b=r.GuestPass=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:690,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"id-card",selected:!c.showlogs,onClick:function(){function m(){return u("mode",{mode:0})}return m}(),children:"Issue Pass"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"scroll",selected:c.showlogs,onClick:function(){function m(){return u("mode",{mode:1})}return m}(),children:["Records (",c.issue_log.length,")"]})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Card",children:(0,e.createComponentVNode)(2,t.Button,{icon:c.scan_name?"eject":"id-card",selected:c.scan_name,content:c.scan_name?c.scan_name:"-----",tooltip:c.scan_name?"Eject ID":"Insert ID",onClick:function(){function m(){return u("scan")}return m}()})})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:!c.showlogs&&(0,e.createComponentVNode)(2,t.Section,{title:"Issue Guest Pass",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Issue To",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.giv_name?c.giv_name:"-----",disabled:!c.scan_name,onClick:function(){function m(){return u("giv_name")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reason",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.reason?c.reason:"-----",disabled:!c.scan_name,onClick:function(){function m(){return u("reason")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Duration",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.duration?c.duration:"-----",disabled:!c.scan_name,onClick:function(){function m(){return u("duration")}return m}()})})]})})}),!c.showlogs&&(c.scan_name?(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.AccessList,{sectionButtons:(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",content:c.printmsg,disabled:!c.canprint,onClick:function(){function m(){return u("issue")}return m}()}),grantableList:c.grantableList,accesses:c.regions,selectedList:c.selectedAccess,accessMod:function(){function m(l){return u("access",{access:l})}return m}(),grantAll:function(){function m(){return u("grant_all")}return m}(),denyAll:function(){function m(){return u("clear_all")}return m}(),grantDep:function(){function m(l){return u("grant_region",{region:l})}return m}(),denyDep:function(){function m(l){return u("deny_region",{region:l})}return m}()})}):(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,fontSize:1.5,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"id-card",size:5,color:"gray",mb:5}),(0,e.createVNode)(1,"br"),"Please, insert ID Card"]})})})})),!!c.showlogs&&(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,m:0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Issuance Log",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print",disabled:!c.scan_name,onClick:function(){function m(){return u("print")}return m}()}),children:!!c.issue_log.length&&(0,e.createComponentVNode)(2,t.LabeledList,{children:c.issue_log.map(function(m,l){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:m},l)})})||(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,fontSize:1.5,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No logs"]})})})})]})})})}return S}()},67834:function(A,r,n){"use strict";r.__esModule=!0,r.HandheldChemDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[1,5,10,20,30,50],b=null,S=r.HandheldChemDispenser=function(){function g(u,c){return(0,e.createComponentVNode)(2,o.Window,{width:390,height:430,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k)]})})})}return g}(),I=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.amount,i=d.energy,h=d.maxEnergy,C=d.mode;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:i,minValue:0,maxValue:h,ranges:{good:[h*.5,1/0],average:[h*.25,h*.5],bad:[-1/0,h*.25]},children:[i," / ",h," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Amount",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{children:f.map(function(v,p){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"15%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"cog",selected:s===v,content:v,onClick:function(){function N(){return l("amount",{amount:v})}return N}()})},p)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mode",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{justify:"space-between",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:C==="dispense",content:"Dispense",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"dispense"})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:C==="remove",content:"Remove",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"remove"})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:C==="isolate",content:"Isolate",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"isolate"})}return v}()})]})})]})})})},k=function(u,c){for(var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.chemicals,i=s===void 0?[]:s,h=d.current_reagent,C=[],v=0;v<(i.length+1)%3;v++)C.push(!0);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,height:"18%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:d.glass?"Drink Selector":"Chemical Selector",children:[i.map(function(p,N){return(0,e.createComponentVNode)(2,t.Button,{width:"32%",icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",selected:h===p.id,content:p.title,style:{"margin-left":"2px"},onClick:function(){function V(){return l("dispense",{reagent:p.id})}return V}()},N)}),C.map(function(p,N){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:"1",basis:"25%"},N)})]})})}},46098:function(A,r,n){"use strict";r.__esModule=!0,r.HealthSensor=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.HealthSensor=function(){function I(k,g){var u=(0,t.useBackend)(g),c=u.act,m=u.data,l=m.on,d=m.user_health,s=m.minHealth,i=m.maxHealth,h=m.alarm_health;return(0,e.createComponentVNode)(2,f.Window,{width:300,height:125,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Scanning",children:(0,e.createComponentVNode)(2,o.Button,{icon:"power-off",content:l?"On":"Off",color:l?null:"red",selected:l,onClick:function(){function C(){return c("scan_toggle")}return C}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health activation",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:2,stepPixelSize:6,minValue:s,maxValue:i,value:h,format:function(){function C(v){return(0,a.toFixed)(v,1)}return C}(),width:"80px",onDrag:function(){function C(v,p){return c("alarm_health",{alarm_health:p})}return C}()})}),d!==null&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"User health",children:(0,e.createComponentVNode)(2,o.Box,{color:S(d),bold:d>=100,children:(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:d})})})]})})})})}return I}(),S=function(k){return k>50?"green":k>0?"orange":"red"}},36771:function(A,r,n){"use strict";r.__esModule=!0,r.Holodeck=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Holodeck=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=(0,a.useLocalState)(k,"currentDeck",""),l=m[0],d=m[1],s=(0,a.useLocalState)(k,"showReload",!1),i=s[0],h=s[1],C=c.decks,v=c.ai_override,p=c.emagged,N=function(){function V(y){u("select_deck",{deck:y}),d(y),h(!0),setTimeout(function(){h(!1)},3e3)}return V}();return(0,e.createComponentVNode)(2,o.Window,{width:400,height:320,children:[i&&(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Holodeck Control System",children:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createVNode)(1,"b",null,"Currently Loaded Program:",16)," ",l]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Available Programs",children:[C.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{width:15.5,color:"transparent",content:V,selected:V===l,onClick:function(){function y(){return N(V)}return y}()},V)}),(0,e.createVNode)(1,"hr",null,null,1,{color:"gray"}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!v&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Override Protocols",children:(0,e.createComponentVNode)(2,t.Button,{content:p?"Turn On":"Turn Off",color:p?"good":"bad",onClick:function(){function V(){return u("ai_override")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety Protocols",children:(0,e.createComponentVNode)(2,t.Box,{color:p?"bad":"good",children:[p?"Off":"On",!!p&&(0,e.createComponentVNode)(2,t.Button,{ml:9.5,width:15.5,color:"red",content:"Wildlife Simulation",onClick:function(){function V(){return u("wildlifecarp")}return V}()})]})})]})]})})]})})]})}return S}(),b=function(I,k){return(0,e.createComponentVNode)(2,t.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"spinner",size:"5",spin:!0}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{color:"white",children:(0,e.createVNode)(1,"h1",null,"\xA0Recalibrating projection apparatus.\xA0",16)}),(0,e.createComponentVNode)(2,t.Box,{color:"label",children:(0,e.createVNode)(1,"h3",null,"Please, wait for 3 seconds.",16)})]})}},25471:function(A,r,n){"use strict";r.__esModule=!0,r.Instrument=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.Instrument=function(){function u(c,m){var l=(0,t.useBackend)(m),d=l.act,s=l.data;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:505,children:[(0,e.createComponentVNode)(2,S),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,g)]})})]})}return u}(),S=function(c,m){var l=(0,t.useBackend)(m),d=l.act,s=l.data,i=s.help;if(i)return(0,e.createComponentVNode)(2,o.Modal,{maxWidth:"75%",height:window.innerHeight*.75+"px",mx:"auto",py:"0",px:"0.5rem",children:(0,e.createComponentVNode)(2,o.Section,{height:"100%",title:"Help",level:"2",overflow:"auto",children:(0,e.createComponentVNode)(2,o.Box,{px:"0.5rem",mt:"-0.5rem",children:[(0,e.createVNode)(1,"h1",null,"Making a Song",16),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Lines are a series of chords, separated by commas\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(,)"}),(0,e.createTextVNode)(", each with notes separated by hyphens\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(-)"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("as defined above.")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Notes are played by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"names of the note"}),(0,e.createTextVNode)(", and optionally, the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(", and/or the"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave number"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("By default, every note is\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"natural"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("and in\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave 3"}),(0,e.createTextVNode)(". Defining a different state for either is remembered for each"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"note"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Example:"}),(0,e.createTextVNode)("\xA0"),(0,e.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,e.createTextVNode)(" will play a\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"C"}),(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"major"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("scale.")],0),(0,e.createVNode)(1,"li",null,[(0,e.createTextVNode)("After a note has an\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("or\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("placed, it will be remembered:\xA0"),(0,e.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,e.createTextVNode)(" is "),(0,e.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],0)],4)],0),(0,e.createVNode)(1,"p",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Chords"}),(0,e.createTextVNode)("\xA0can be played simply by seperating each note with a hyphen: "),(0,e.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("A"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"pause"}),(0,e.createTextVNode)("\xA0may be denoted by an empty chord: "),(0,e.createVNode)(1,"i",null,"C,E,,C,G",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,e.createTextVNode)(",\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"eg:"}),(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,e.createTextVNode)(".")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Combined, an example line is: "),(0,e.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,e.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Lines are a series of chords, separated by commas\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(,)"}),(0,e.createTextVNode)(", each with notes separated by hyphens\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(-)"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("as defined above.")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Notes are played by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"names of the note"}),(0,e.createTextVNode)(", and optionally, the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(", and/or the"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave number"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("By default, every note is\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"natural"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("and in\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave 3"}),(0,e.createTextVNode)(". Defining a different state for either is remembered for each"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"note"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Example:"}),(0,e.createTextVNode)("\xA0"),(0,e.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,e.createTextVNode)(" will play a\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"C"}),(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"major"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("scale.")],0),(0,e.createVNode)(1,"li",null,[(0,e.createTextVNode)("After a note has an\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("or\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("placed, it will be remembered:\xA0"),(0,e.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,e.createTextVNode)(" is "),(0,e.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],0)],4)],0),(0,e.createVNode)(1,"p",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Chords"}),(0,e.createTextVNode)("\xA0can be played simply by seperating each note with a hyphen: "),(0,e.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("A"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"pause"}),(0,e.createTextVNode)("\xA0may be denoted by an empty chord: "),(0,e.createVNode)(1,"i",null,"C,E,,C,G",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,e.createTextVNode)(",\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"eg:"}),(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,e.createTextVNode)(".")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Combined, an example line is: "),(0,e.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,e.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,e.createVNode)(1,"h1",null,"Instrument Advanced Settings",16),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Type:"}),(0,e.createTextVNode)("\xA0Whether the instrument is legacy or synthesized."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Legacy instruments have a collection of sounds that are selectively used depending on the note to play."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Synthesized instruments use a base sound and change its pitch to match the note to play.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Current:"}),(0,e.createTextVNode)("\xA0Which instrument sample to play. Some instruments can be tuned to play different samples. Experiment!")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Note Shift/Note Transpose:"}),(0,e.createTextVNode)("\xA0The pitch to apply to all notes of the song.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Sustain Mode:"}),(0,e.createTextVNode)("\xA0How a played note fades out."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Linear sustain means a note will fade out at a constant rate."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Exponential sustain means a note will fade out at an exponential rate, sounding smoother.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Volume Dropoff Threshold:"}),(0,e.createTextVNode)("\xA0The volume threshold at which a note is fully stopped.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Sustain indefinitely last held note:"}),(0,e.createTextVNode)("\xA0Whether the last note should be sustained indefinitely.")],4)],4),(0,e.createComponentVNode)(2,o.Button,{color:"grey",content:"Close",onClick:function(){function h(){return d("help")}return h}()})]})})})},I=function(c,m){var l=(0,t.useBackend)(m),d=l.act,s=l.data,i=s.lines,h=s.playing,C=s.repeat,v=s.maxRepeats,p=s.tempo,N=s.minTempo,V=s.maxTempo,y=s.tickLag,B=s.volume,L=s.minVolume,w=s.maxVolume,x=s.ready;return(0,e.createComponentVNode)(2,o.Section,{title:"Instrument",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"info",content:"Help",onClick:function(){function T(){return d("help")}return T}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"file",content:"New",onClick:function(){function T(){return d("newsong")}return T}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"upload",content:"Import",onClick:function(){function T(){return d("import")}return T}()})],4),children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Playback",children:[(0,e.createComponentVNode)(2,o.Button,{selected:h,disabled:i.length===0||C<0,icon:"play",content:"Play",onClick:function(){function T(){return d("play")}return T}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!h,icon:"stop",content:"Stop",onClick:function(){function T(){return d("stop")}return T}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Repeat",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:0,maxValue:v,value:C,stepPixelSize:59,onChange:function(){function T(M,O){return d("repeat",{new:O})}return T}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Tempo",children:(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Button,{disabled:p>=V,content:"-",as:"span",mr:"0.5rem",onClick:function(){function T(){return d("tempo",{new:p+y})}return T}()}),(0,a.round)(600/p)," BPM",(0,e.createComponentVNode)(2,o.Button,{disabled:p<=N,content:"+",as:"span",ml:"0.5rem",onClick:function(){function T(){return d("tempo",{new:p-y})}return T}()})]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Volume",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:L,maxValue:w,value:B,stepPixelSize:6,onDrag:function(){function T(M,O){return d("setvolume",{new:O})}return T}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Status",children:x?(0,e.createComponentVNode)(2,o.Box,{color:"good",children:"Ready"}):(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"Instrument Definition Error!"})})]}),(0,e.createComponentVNode)(2,k)]})},k=function(c,m){var l=(0,t.useBackend)(m),d=l.act,s=l.data,i=s.allowedInstrumentNames,h=s.instrumentLoaded,C=s.instrument,v=s.canNoteShift,p=s.noteShift,N=s.noteShiftMin,V=s.noteShiftMax,y=s.sustainMode,B=s.sustainLinearDuration,L=s.sustainExponentialDropoff,w=s.legacy,x=s.sustainDropoffVolume,T=s.sustainHeldNote,M,O;return y===1?(M="Linear",O=(0,e.createComponentVNode)(2,o.Slider,{minValue:.1,maxValue:5,value:B,step:.5,stepPixelSize:85,format:function(){function D(E){return(0,a.round)(E*100)/100+" seconds"}return D}(),onChange:function(){function D(E,P){return d("setlinearfalloff",{new:P/10})}return D}()})):y===2&&(M="Exponential",O=(0,e.createComponentVNode)(2,o.Slider,{minValue:1.025,maxValue:10,value:L,step:.01,format:function(){function D(E){return(0,a.round)(E*1e3)/1e3+"% per decisecond"}return D}(),onChange:function(){function D(E,P){return d("setexpfalloff",{new:P})}return D}()})),i.sort(),(0,e.createComponentVNode)(2,o.Box,{my:-1,children:(0,e.createComponentVNode)(2,o.Collapsible,{mt:"1rem",mb:"0",title:"Advanced",children:(0,e.createComponentVNode)(2,o.Section,{mt:-1,children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Type",children:w?"Legacy":"Synthesized"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Current",children:h?(0,e.createComponentVNode)(2,o.Dropdown,{options:i,selected:C,width:"50%",onSelected:function(){function D(E){return d("switchinstrument",{name:E})}return D}()}):(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"None!"})}),!!(!w&&v)&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Note Shift/Note Transpose",children:(0,e.createComponentVNode)(2,o.Slider,{minValue:N,maxValue:V,value:p,stepPixelSize:2,format:function(){function D(E){return E+" keys / "+(0,a.round)(E/12*100)/100+" octaves"}return D}(),onChange:function(){function D(E,P){return d("setnoteshift",{new:P})}return D}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Sustain Mode",children:[(0,e.createComponentVNode)(2,o.Dropdown,{options:["Linear","Exponential"],selected:M,mb:"0.4rem",onSelected:function(){function D(E){return d("setsustainmode",{new:E})}return D}()}),O]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Volume Dropoff Threshold",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:.01,maxValue:100,value:x,stepPixelSize:6,onChange:function(){function D(E,P){return d("setdropoffvolume",{new:P})}return D}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Sustain indefinitely last held note",children:(0,e.createComponentVNode)(2,o.Button,{selected:T,icon:T?"toggle-on":"toggle-off",content:T?"Yes":"No",onClick:function(){function D(){return d("togglesustainhold")}return D}()})})],4)]}),(0,e.createComponentVNode)(2,o.Button,{icon:"redo",content:"Reset to Default",mt:"0.5rem",onClick:function(){function D(){return d("reset")}return D}()})]})})})},g=function(c,m){var l=(0,t.useBackend)(m),d=l.act,s=l.data,i=s.playing,h=s.lines,C=s.editing;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Editor",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:!C||i,icon:"plus",content:"Add Line",onClick:function(){function v(){return d("newline",{line:h.length+1})}return v}()}),(0,e.createComponentVNode)(2,o.Button,{selected:!C,icon:C?"chevron-up":"chevron-down",onClick:function(){function v(){return d("edit")}return v}()})],4),children:!!C&&(h.length>0?(0,e.createComponentVNode)(2,o.LabeledList,{children:h.map(function(v,p){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:p+1,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:i,icon:"pen",onClick:function(){function N(){return d("modifyline",{line:p+1})}return N}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:i,icon:"trash",onClick:function(){function N(){return d("deleteline",{line:p+1})}return N}()})],4),children:v},p)})}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"Song is empty."}))})}},52736:function(A,r,n){"use strict";r.__esModule=!0,r.Jukebox=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(72253),f=n(36036),b=n(98595),S=r.Jukebox=function(){function g(u,c){var m=(0,o.useBackend)(c),l=m.act,d=m.data,s=d.active,i=d.looping,h=d.track_selected,C=d.volume,v=d.max_volume,p=d.songs,N=d.startTime,V=d.endTime,y=d.worldTime,B=d.need_coin,L=d.payment,w=d.advanced_admin,x=35,T=!L&&B&&!w,M=(0,t.flow)([(0,a.sortBy)(function(j){return j.name})])(p),O=p.find(function(j){return j.name===h}),D=M.length,E=O?M.findIndex(function(j){return j.name===O.name})+1:0,P=function(){function j(F){var W=Math.floor(F/60),z=F%60,K=String(W).padStart(2,"0")+":"+String(z).padStart(2,"0");return K}return j}(),R=(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:[s?i?"\u221E":P(Math.round((y-N)/10)):i?"\u221E":P(O.length)," ","/ ",i?"\u221E":P(O.length)]});return(0,e.createComponentVNode)(2,b.Window,{width:350,height:435,title:"\u041C\u0443\u0437\u044B\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442",children:[T?(0,e.createComponentVNode)(2,k):null,(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,title:"\u041F\u0440\u043E\u0438\u0433\u0440\u044B\u0432\u0430\u0442\u0435\u043B\u044C",children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{bold:!0,maxWidth:"240px",children:O.name.length>x?(0,e.createVNode)(1,"marquee",null,O.name,0):O.name}),(0,e.createComponentVNode)(2,f.Stack,{fill:!0,mt:1.5,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,f.Button,{fluid:!0,icon:s?"pause":"play",color:"transparent",content:s?"\u0421\u0442\u043E\u043F":"\u0421\u0442\u0430\u0440\u0442",selected:s,onClick:function(){function j(){return l("toggle")}return j}()})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,f.Button.Checkbox,{fluid:!0,icon:"undo",content:"\u041F\u043E\u0432\u0442\u043E\u0440",disabled:s||B&&!w,tooltip:B&&!w?"\u0412\u044B \u043D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440 \u0437\u0430 \u043C\u043E\u043D\u0435\u0442\u043A\u0443":null,checked:i,onClick:function(){function j(){return l("loop",{looping:!i})}return j}()})})]}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.ProgressBar.Countdown,{start:N,current:i?V:y,end:V,children:R})})]})})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{children:[s?(0,e.createComponentVNode)(2,I):null,(0,e.createComponentVNode)(2,f.Stack,{fill:!0,mb:1.5,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,m:0,children:(0,e.createComponentVNode)(2,f.Button,{color:"transparent",icon:"fast-backward",onClick:function(){function j(){return l("set_volume",{volume:"min"})}return j}()})}),(0,e.createComponentVNode)(2,f.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,f.Button,{color:"transparent",icon:"undo",onClick:function(){function j(){return l("set_volume",{volume:"reset"})}return j}()})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,m:0,textAlign:"right",children:(0,e.createComponentVNode)(2,f.Button,{color:"transparent",icon:"fast-forward",onClick:function(){function j(){return l("set_volume",{volume:"max"})}return j}()})})]}),(0,e.createComponentVNode)(2,f.Stack.Item,{textAlign:"center",textColor:"label",children:[(0,e.createComponentVNode)(2,f.Knob,{size:2,color:C<=25?"green":C<=50?"":C<=75?"orange":"red",value:C,unit:"%",minValue:0,maxValue:v,step:1,stepPixelSize:5,onDrag:function(){function j(F,W){return l("set_volume",{volume:W})}return j}()}),"Volume"]})]})})]}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0442\u0440\u0435\u043A\u0438",buttons:(0,e.createComponentVNode)(2,f.Button,{bold:!0,icon:"random",color:"transparent",content:E+"/"+D,tooltip:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0439 \u0442\u0440\u0435\u043A",tooltipPosition:"top-end",onClick:function(){function j(){var F=Math.floor(Math.random()*D),W=M[F];l("select_track",{track:W.name})}return j}()}),children:M.map(function(j){return(0,e.createComponentVNode)(2,f.Stack.Item,{mb:.5,textAlign:"left",children:(0,e.createComponentVNode)(2,f.Button,{fluid:!0,selected:O.name===j.name,color:"translucent",content:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:j.name}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:P(j.length)})]}),onClick:function(){function F(){l("select_track",{track:j.name})}return F}()})},j.name)})})})]})})]})}return g}(),I=function(){return(0,e.createComponentVNode)(2,f.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"music",size:"3",color:"gray",mb:1}),(0,e.createComponentVNode)(2,f.Box,{color:"label",bold:!0,children:"\u0418\u0433\u0440\u0430\u0435\u0442 \u043C\u0443\u0437\u044B\u043A\u0430"})]})},k=function(){return(0,e.createComponentVNode)(2,f.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"coins",size:"6",color:"gold",mr:1}),(0,e.createComponentVNode)(2,f.Box,{color:"label",bold:!0,mt:5,fontSize:2,children:"\u0412\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043C\u043E\u043D\u0435\u0442\u043A\u0443"})]})}},13618:function(A,r,n){"use strict";r.__esModule=!0,r.KeyComboModal=void 0;var e=n(89005),a=n(70611),t=n(72253),o=n(36036),f=n(98595),b=n(19203),S=n(51057),I=function(l){return l.key!==a.KEY.Alt&&l.key!==a.KEY.Control&&l.key!==a.KEY.Shift&&l.key!==a.KEY.Escape},k={DEL:"Delete",DOWN:"South",END:"Southwest",HOME:"Northwest",INSERT:"Insert",LEFT:"West",PAGEDOWN:"Southeast",PAGEUP:"Northeast",RIGHT:"East",SPACEBAR:"Space",UP:"North"},g=3,u=function(l){var d="";if(l.altKey&&(d+="Alt"),l.ctrlKey&&(d+="Ctrl"),l.shiftKey&&!(l.keyCode>=48&&l.keyCode<=57)&&(d+="Shift"),l.location===g&&(d+="Numpad"),I(l))if(l.shiftKey&&l.keyCode>=48&&l.keyCode<=57){var s=l.keyCode-48;d+="Shift"+s}else{var i=l.key.toUpperCase();d+=k[i]||i}return d},c=r.KeyComboModal=function(){function m(l,d){var s=(0,t.useBackend)(d),i=s.act,h=s.data,C=h.init_value,v=h.large_buttons,p=h.message,N=p===void 0?"":p,V=h.title,y=h.timeout,B=(0,t.useLocalState)(d,"input",C),L=B[0],w=B[1],x=(0,t.useLocalState)(d,"binding",!0),T=x[0],M=x[1],O=function(){function P(R){if(!T){R.key===a.KEY.Enter&&i("submit",{entry:L}),(0,a.isEscape)(R.key)&&i("cancel");return}if(R.preventDefault(),I(R)){D(u(R)),M(!1);return}else if(R.key===a.KEY.Escape){D(C),M(!1);return}}return P}(),D=function(){function P(R){R!==L&&w(R)}return P}(),E=130+(N.length>30?Math.ceil(N.length/3):0)+(N.length&&v?5:0);return(0,e.createComponentVNode)(2,f.Window,{title:V,width:240,height:E,children:[y&&(0,e.createComponentVNode)(2,S.Loader,{value:y}),(0,e.createComponentVNode)(2,f.Window.Content,{onKeyDown:function(){function P(R){O(R)}return P}(),children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Autofocus),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:N})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{disabled:T,content:T&&T!==null?"Awaiting input...":""+L,width:"100%",textAlign:"center",onClick:function(){function P(){D(C),M(!0)}return P}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,b.InputButtons,{input:L})})]})]})})]})}return m}()},35655:function(A,r,n){"use strict";r.__esModule=!0,r.KeycardAuth=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.KeycardAuth=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=(0,e.createComponentVNode)(2,t.Section,{title:"Keycard Authentication Device",children:(0,e.createComponentVNode)(2,t.Box,{children:"This device is used to trigger certain high security events. It requires the simultaneous swipe of two high-level ID cards."})});if(!u.swiping&&!u.busy)return(0,e.createComponentVNode)(2,o.Window,{width:540,height:280,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[c,(0,e.createComponentVNode)(2,t.Section,{title:"Choose Action",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Red Alert",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-triangle",disabled:!u.redAvailable,onClick:function(){function l(){return g("triggerevent",{triggerevent:"Red Alert"})}return l}(),content:"Red Alert"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ERT",children:(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Emergency Response Team"})}return l}(),content:"Call ERT"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Maint Access",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"door-open",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Grant Emergency Maintenance Access"})}return l}(),content:"Grant"}),(0,e.createComponentVNode)(2,t.Button,{icon:"door-closed",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Revoke Emergency Maintenance Access"})}return l}(),content:"Revoke"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Station-Wide Access",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"door-open",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Activate Station-Wide Emergency Access"})}return l}(),content:"Grant"}),(0,e.createComponentVNode)(2,t.Button,{icon:"door-closed",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Deactivate Station-Wide Emergency Access"})}return l}(),content:"Revoke"})]})]})})]})});var m=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Waiting for YOU to swipe your ID..."});return!u.hasSwiped&&!u.ertreason&&u.event==="Emergency Response Team"?m=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Fill out the reason for your ERT request."}):u.hasConfirm?m=(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Request Confirmed!"}):u.isRemote?m=(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Swipe your card to CONFIRM the remote request."}):u.hasSwiped&&(m=(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Waiting for second person to confirm..."})),(0,e.createComponentVNode)(2,o.Window,{width:540,height:265,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[c,u.event==="Emergency Response Team"&&(0,e.createComponentVNode)(2,t.Section,{title:"Reason for ERT Call",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{color:u.ertreason?"":"red",icon:u.ertreason?"check":"pencil-alt",content:u.ertreason?u.ertreason:"-----",disabled:u.busy,onClick:function(){function l(){return g("ert")}return l}()})})}),(0,e.createComponentVNode)(2,t.Section,{title:u.event,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back",disabled:u.busy||u.hasConfirm,onClick:function(){function l(){return g("reset")}return l}()}),children:m})]})})}return b}()},62955:function(A,r,n){"use strict";r.__esModule=!0,r.KitchenMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(62411),b=r.KitchenMachine=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.data,m=u.config,l=c.ingredients,d=c.operating,s=m.title;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:320,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Operating,{operating:d,name:s}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,S)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Ingredients",children:(0,e.createComponentVNode)(2,t.Table,{className:"Ingredient__Table",children:l.map(function(i){return(0,e.createComponentVNode)(2,t.Table.Row,{tr:5,children:[(0,e.createVNode)(1,"td",null,(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:i.name}),2),(0,e.createVNode)(1,"td",null,(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:[i.amount," ",i.units]}),2)]},i.name)})})})})]})})})}return I}(),S=function(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.inactive,d=m.tooltip;return(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"power-off",disabled:l,tooltip:l?d:"",tooltipPosition:"bottom",content:"Activate",onClick:function(){function s(){return c("cook")}return s}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",disabled:l,tooltip:l?d:"",tooltipPosition:"bottom",content:"Eject Contents",onClick:function(){function s(){return c("eject")}return s}()})})]})})}},9525:function(A,r,n){"use strict";r.__esModule=!0,r.LawManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.LawManager=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.isAdmin,s=l.isSlaved,i=l.isMalf,h=l.isAIMalf,C=l.view;return(0,e.createComponentVNode)(2,o.Window,{width:800,height:i?620:365,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!(d&&s)&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:["This unit is slaved to ",s,"."]}),!!(i||h)&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Law Management",selected:C===0,onClick:function(){function v(){return m("set_view",{set_view:0})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Lawsets",selected:C===1,onClick:function(){function v(){return m("set_view",{set_view:1})}return v}()})]}),C===0&&(0,e.createComponentVNode)(2,b),C===1&&(0,e.createComponentVNode)(2,S)]})})}return k}(),b=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.has_zeroth_laws,s=l.zeroth_laws,i=l.has_ion_laws,h=l.ion_laws,C=l.ion_law_nr,v=l.has_inherent_laws,p=l.inherent_laws,N=l.has_supplied_laws,V=l.supplied_laws,y=l.channels,B=l.channel,L=l.isMalf,w=l.isAdmin,x=l.zeroth_law,T=l.ion_law,M=l.inherent_law,O=l.supplied_law,D=l.supplied_law_position;return(0,e.createFragment)([!!d&&(0,e.createComponentVNode)(2,I,{title:"ERR_NULL_VALUE",laws:s,ctx:u}),!!i&&(0,e.createComponentVNode)(2,I,{title:C,laws:h,ctx:u}),!!v&&(0,e.createComponentVNode)(2,I,{title:"Inherent",laws:p,ctx:u}),!!N&&(0,e.createComponentVNode)(2,I,{title:"Supplied",laws:V,ctx:u}),(0,e.createComponentVNode)(2,t.Section,{title:"Statement Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Statement Channel",children:y.map(function(E){return(0,e.createComponentVNode)(2,t.Button,{content:E.channel,selected:E.channel===B,onClick:function(){function P(){return m("law_channel",{law_channel:E.channel})}return P}()},E.channel)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"State Laws",children:(0,e.createComponentVNode)(2,t.Button,{content:"State Laws",onClick:function(){function E(){return m("state_laws")}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Law Notification",children:(0,e.createComponentVNode)(2,t.Button,{content:"Notify",onClick:function(){function E(){return m("notify_laws")}return E}()})})]})}),!!L&&(0,e.createComponentVNode)(2,t.Section,{title:"Add Laws",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Type"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"60%",children:"Law"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Index"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"20%",children:"Actions"})]}),!!(w&&!d)&&(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Zero"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:x}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function E(){return m("change_zeroth_law")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function E(){return m("add_zeroth_law")}return E}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Ion"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:T}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function E(){return m("change_ion_law")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function E(){return m("add_ion_law")}return E}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Inherent"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:M}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function E(){return m("change_inherent_law")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function E(){return m("add_inherent_law")}return E}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Supplied"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:O}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:D,onClick:function(){function E(){return m("change_supplied_law_position")}return E}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function E(){return m("change_supplied_law")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function E(){return m("add_supplied_law")}return E}()})]})]})]})})],0)},S=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.law_sets;return(0,e.createComponentVNode)(2,t.Box,{children:d.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name+" - "+s.header,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Load Laws",icon:"download",onClick:function(){function i(){return m("transfer_laws",{transfer_laws:s.ref})}return i}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[s.laws.has_ion_laws>0&&s.laws.ion_laws.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.index,children:i.law},i.index)}),s.laws.has_zeroth_laws>0&&s.laws.zeroth_laws.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.index,children:i.law},i.index)}),s.laws.has_inherent_laws>0&&s.laws.inherent_laws.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.index,children:i.law},i.index)}),s.laws.has_supplied_laws>0&&s.laws.inherent_laws.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.index,children:i.law},i.index)})]})},s.name)})})},I=function(g,u){var c=(0,a.useBackend)(g.ctx),m=c.act,l=c.data,d=l.isMalf;return(0,e.createComponentVNode)(2,t.Section,{title:g.title+" Laws",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Index"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"69%",children:"Law"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"21%",children:"State?"})]}),g.laws.map(function(s){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:s.index}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s.law}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:s.state?"Yes":"No",selected:s.state,onClick:function(){function i(){return m("state_law",{ref:s.ref,state_law:s.state?0:1})}return i}()}),!!d&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function i(){return m("edit_law",{edit_law:s.ref})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Delete",icon:"trash",color:"red",onClick:function(){function i(){return m("delete_law",{delete_law:s.ref})}return i}()})],4)]})]},s.law)})]})})}},85066:function(A,r,n){"use strict";r.__esModule=!0,r.LibraryComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.LibraryComputer=function(){function C(v,p){return(0,e.createComponentVNode)(2,o.Window,{width:1050,height:600,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,u),(0,e.createComponentVNode)(2,c)]})})]})}return C}(),S=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=v.args,L=y.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:B.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:B.author}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:B.summary}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rating",children:[B.rating,(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",verticalAlign:"top"})]}),!B.isProgrammatic&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Categories",children:B.categories.join(", ")})]}),(0,e.createVNode)(1,"br"),L===B.ckey&&(0,e.createComponentVNode)(2,t.Button,{content:"Delete Book",icon:"trash",color:"red",disabled:B.isProgrammatic,onClick:function(){function w(){return V("delete_book",{bookid:B.id,user_ckey:L})}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Report Book",icon:"flag",color:"red",disabled:B.isProgrammatic,onClick:function(){function w(){return(0,f.modalOpen)(p,"report_book",{bookid:B.id})}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Rate Book",icon:"star",color:"caution",disabled:B.isProgrammatic,onClick:function(){function w(){return(0,f.modalOpen)(p,"rate_info",{bookid:B.id})}return w}()})]})},I=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=v.args,L=y.selected_report,w=y.report_categories,x=y.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{level:2,m:"-1rem",pb:"1.5rem",title:"Report this book for Rule Violations",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:B.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reasons",children:(0,e.createComponentVNode)(2,t.Box,{children:w.map(function(T,M){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:T.description,selected:T.category_id===L,onClick:function(){function O(){return V("set_report",{report_type:T.category_id})}return O}()}),(0,e.createVNode)(1,"br")],4,M)})})})]}),(0,e.createComponentVNode)(2,t.Button.Confirm,{bold:!0,icon:"paper-plane",content:"Submit Report",onClick:function(){function T(){return V("submit_report",{bookid:B.id,user_ckey:x})}return T}()})]})},k=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.selected_rating,L=Array(10).fill().map(function(w,x){return 1+x});return(0,e.createComponentVNode)(2,t.Stack,{children:[L.map(function(w,x){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{bold:!0,icon:"star",color:B>=w?"caution":"default",onClick:function(){function T(){return V("set_rating",{rating_value:w})}return T}()})},x)}),(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,ml:2,fontSize:"150%",children:[B+"/10",(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",ml:.5,verticalAlign:"top"})]})]})},g=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=v.args,L=y.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{level:2,m:"-1rem",pb:"1.5rem",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:B.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:B.author}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rating",children:[B.current_rating?B.current_rating:0,(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",ml:.5,verticalAlign:"middle"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Ratings",children:B.total_ratings?B.total_ratings:0})]}),(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,t.Button.Confirm,{mt:2,content:"Submit",icon:"paper-plane",onClick:function(){function w(){return V("rate_book",{bookid:B.id,user_ckey:L})}return w}()})]})},u=function(v,p){var N=(0,a.useBackend)(p),V=N.data,y=(0,a.useLocalState)(p,"tabIndex",0),B=y[0],L=y[1],w=V.login_state;return(0,e.createComponentVNode)(2,t.Stack.Item,{mb:1,children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:B===0,onClick:function(){function x(){return L(0)}return x}(),children:"Book Archives"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:B===1,onClick:function(){function x(){return L(1)}return x}(),children:"Corporate Literature"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:B===2,onClick:function(){function x(){return L(2)}return x}(),children:"Upload Book"}),w===1&&(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:B===3,onClick:function(){function x(){return L(3)}return x}(),children:"Patron Manager"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:B===4,onClick:function(){function x(){return L(4)}return x}(),children:"Inventory"})]})})},c=function(v,p){var N=(0,a.useLocalState)(p,"tabIndex",0),V=N[0];switch(V){case 0:return(0,e.createComponentVNode)(2,l);case 1:return(0,e.createComponentVNode)(2,d);case 2:return(0,e.createComponentVNode)(2,s);case 3:return(0,e.createComponentVNode)(2,i);case 4:return(0,e.createComponentVNode)(2,h);default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},m=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.searchcontent,L=y.book_categories,w=y.user_ckey,x=[];return L.map(function(T){return x[T.description]=T.category_id}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"35%",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"edit",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Search Inputs"]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:20,content:B.title||"Input Title",onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_search_title")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:20,content:B.author||"Input Author",onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_search_author")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Ratings",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{mr:1,width:"min-content",content:B.ratingmin,onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_search_ratingmin")}return T}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:"To"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:1,width:"min-content",content:B.ratingmax,onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_search_ratingmax")}return T}()})})]})})]})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"clipboard-list",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Book Categories"]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Dropdown,{mt:.6,width:"190px",options:L.map(function(T){return T.description}),onSelected:function(){function T(M){return V("toggle_search_category",{category_id:x[M]})}return T}()})})})}),(0,e.createVNode)(1,"br"),L.filter(function(T){return B.categories.includes(T.category_id)}).map(function(T){return(0,e.createComponentVNode)(2,t.Button,{content:T.description,selected:!0,icon:"unlink",onClick:function(){function M(){return V("toggle_search_category",{category_id:T.category_id})}return M}()},T.category_id)})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Search Actions"]}),(0,e.createComponentVNode)(2,t.Button,{content:"Clear Search",icon:"eraser",onClick:function(){function T(){return V("clear_search")}return T}()}),B.ckey?(0,e.createComponentVNode)(2,t.Button,{mb:.5,content:"Stop Showing My Books",color:"bad",icon:"search",onClick:function(){function T(){return V("clear_ckey_search")}return T}()}):(0,e.createComponentVNode)(2,t.Button,{content:"Find My Books",icon:"search",onClick:function(){function T(){return V("find_users_books",{user_ckey:w})}return T}()})]})]})},l=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.external_booklist,L=y.archive_pagenumber,w=y.num_pages,x=y.login_state;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Book System Access",buttons:(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",disabled:L===1,onClick:function(){function T(){return V("deincrementpagemax")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-left",disabled:L===1,onClick:function(){function T(){return V("deincrementpage")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{bold:!0,content:L,onClick:function(){function T(){return(0,f.modalOpen)(p,"setpagenumber")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",disabled:L===w,onClick:function(){function T(){return V("incrementpage")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",disabled:L===w,onClick:function(){function T(){return V("incrementpagemax")}return T}()})],4),children:[(0,e.createComponentVNode)(2,m),(0,e.createVNode)(1,"hr"),(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Ratings"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Category"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Actions"})]}),B.map(function(T){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:T.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book",mr:.5}),T.title.length>45?T.title.substr(0,45)+"...":T.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:T.author.length>30?T.author.substr(0,30)+"...":T.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[T.rating,(0,e.createComponentVNode)(2,t.Icon,{name:"star",ml:.5,color:"yellow",verticalAlign:"middle"})]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:T.categories.join(", ").substr(0,45)}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[x===1&&(0,e.createComponentVNode)(2,t.Button,{content:"Order",icon:"print",onClick:function(){function M(){return V("order_external_book",{bookid:T.id})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{content:"More...",onClick:function(){function M(){return(0,f.modalOpen)(p,"expand_info",{bookid:T.id})}return M}()})]})]},T.id)})]})]})},d=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.programmatic_booklist,L=y.login_state;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Corporate Book Catalog",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Actions"})]}),B.map(function(w,x){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:w.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book",mr:2}),w.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:w.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[L===1&&(0,e.createComponentVNode)(2,t.Button,{content:"Order",icon:"print",onClick:function(){function T(){return V("order_programmatic_book",{bookid:w.id})}return T}()}),(0,e.createComponentVNode)(2,t.Button,{content:"More...",onClick:function(){function T(){return(0,f.modalOpen)(p,"expand_info",{bookid:w.id})}return T}()})]})]},x)})]})})},s=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.selectedbook,L=y.book_categories,w=y.user_ckey,x=[];return L.map(function(T){return x[T.description]=T.category_id}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Book System Upload",buttons:(0,e.createComponentVNode)(2,t.Button.Confirm,{bold:!0,width:9.5,icon:"upload",disabled:B.copyright,content:"Upload Book",onClick:function(){function T(){return V("uploadbook",{user_ckey:w})}return T}()}),children:[B.copyright?(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"WARNING: You cannot upload or modify the attributes of a copyrighted book"}):(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{ml:15,mb:3,fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:3,mr:2}),"Book Uploader"]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{width:20,textAlign:"left",icon:"pen",disabled:B.copyright,content:B.title,onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_selected_title")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{width:20,textAlign:"left",icon:"pen",disabled:B.copyright,content:B.author,onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_selected_author")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"240px",options:L.map(function(T){return T.description}),onSelected:function(){function T(M){return V("toggle_upload_category",{category_id:x[M]})}return T}()})})})]}),(0,e.createVNode)(1,"br"),L.filter(function(T){return B.categories.includes(T.category_id)}).map(function(T){return(0,e.createComponentVNode)(2,t.Button,{content:T.description,disabled:B.copyright,selected:!0,icon:"unlink",onClick:function(){function M(){return V("toggle_upload_category",{category_id:T.category_id})}return M}()},T.category_id)})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mr:75,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pen",width:"auto",disabled:B.copyright,content:"Edit Summary",onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_selected_summary")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:B.summary})]})})]})]})},i=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.checkout_data;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Checked Out Books",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Patron"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Time Left"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actions"})]}),B.map(function(L,w){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-tag"}),L.patron_name]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.title}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.timeleft>=0?L.timeleft:"LATE"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:(0,e.createComponentVNode)(2,t.Button,{content:"Mark Lost",icon:"flag",color:"bad",disabled:L.timeleft>=0,onClick:function(){function x(){return V("reportlost",{libraryid:L.libraryid})}return x}()})})]},w)})]})})},h=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.inventory_list;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Library Inventory",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"LIB ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"})]}),B.map(function(L,w){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.libraryid}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"})," ",L.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.checked_out?"Checked Out":"Available"})]},w)})]})})};(0,f.modalRegisterBodyOverride)("expand_info",S),(0,f.modalRegisterBodyOverride)("report_book",I),(0,f.modalRegisterBodyOverride)("rate_info",g)},9516:function(A,r,n){"use strict";r.__esModule=!0,r.LibraryManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.LibraryManager=function(){function u(c,m){return(0,e.createComponentVNode)(2,o.Window,{width:600,height:600,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,e.createComponentVNode)(2,S)})]})}return u}(),S=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.pagestate;switch(i){case 1:return(0,e.createComponentVNode)(2,I);case 2:return(0,e.createComponentVNode)(2,g);case 3:return(0,e.createComponentVNode)(2,k);default:return"WE SHOULDN'T BE HERE!"}},I=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data;return(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.4rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-shield",verticalAlign:"middle",size:3,mr:"1rem"}),"Library Manager"]}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{icon:"trash",width:"auto",color:"danger",content:"Delete Book by SSID",onClick:function(){function i(){return(0,f.modalOpen)(m,"specify_ssid_delete")}return i}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"user-slash",width:"auto",color:"danger",content:"Delete All Books By CKEY",onClick:function(){function i(){return(0,f.modalOpen)(m,"specify_ckey_delete")}return i}()}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{icon:"search",width:"auto",content:"View All Books By CKEY",onClick:function(){function i(){return(0,f.modalOpen)(m,"specify_ckey_search")}return i}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"search",width:"auto",content:"View All Reported Books",onClick:function(){function i(){return d("view_reported_books")}return i}()})]})},k=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.reports;return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-secret",verticalAlign:"middle",size:2,mr:"1rem"}),(0,e.createVNode)(1,"br"),"All Reported Books",(0,e.createVNode)(1,"br")]}),(0,e.createComponentVNode)(2,t.Button,{content:"Return to Main",icon:"arrow-alt-circle-left",onClick:function(){function h(){return d("return")}return h}()}),(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Uploader CKEY"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Report Type"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Reporter Ckey"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Administrative Actions"})]}),i.map(function(h){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:h.uploader_ckey}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"}),h.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:h.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:h.report_description}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:h.reporter_ckey}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Delete",icon:"trash",onClick:function(){function C(){return d("delete_book",{bookid:h.id})}return C}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Unflag",icon:"flag",color:"caution",onClick:function(){function C(){return d("unflag_book",{bookid:h.id})}return C}()}),(0,e.createComponentVNode)(2,t.Button,{content:"View",onClick:function(){function C(){return d("view_book",{bookid:h.id})}return C}()})]})]},h.id)})]})})},g=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.ckey,h=s.booklist;return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user",verticalAlign:"middle",size:2,mr:"1rem"}),(0,e.createVNode)(1,"br"),"Books uploaded by ",i,(0,e.createVNode)(1,"br")]}),(0,e.createComponentVNode)(2,t.Button,{mt:1,content:"Return to Main",icon:"arrow-alt-circle-left",onClick:function(){function C(){return d("return")}return C}()}),(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Administrative Actions"})]}),h.map(function(C){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"}),C.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:C.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Delete",icon:"trash",color:"bad",onClick:function(){function v(){return d("delete_book",{bookid:C.id})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"View",onClick:function(){function v(){return d("view_book",{bookid:C.id})}return v}()})]})]},C.id)})]})})}},90447:function(A,r,n){"use strict";r.__esModule=!0,r.ListInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(36036),f=n(72253),b=n(92986),S=n(98595),I=r.ListInputModal=function(){function u(c,m){var l=(0,f.useBackend)(m),d=l.act,s=l.data,i=s.items,h=i===void 0?[]:i,C=s.message,v=C===void 0?"":C,p=s.init_value,N=s.timeout,V=s.title,y=(0,f.useLocalState)(m,"selected",h.indexOf(p)),B=y[0],L=y[1],w=(0,f.useLocalState)(m,"searchBarVisible",h.length>10),x=w[0],T=w[1],M=(0,f.useLocalState)(m,"searchQuery",""),O=M[0],D=M[1],E=function(){function G(J){var Q=z.length-1;if(J===b.KEY_DOWN)if(B===null||B===Q){var ue;L(0),(ue=document.getElementById("0"))==null||ue.scrollIntoView()}else{var ie;L(B+1),(ie=document.getElementById((B+1).toString()))==null||ie.scrollIntoView()}else if(J===b.KEY_UP)if(B===null||B===0){var pe;L(Q),(pe=document.getElementById(Q.toString()))==null||pe.scrollIntoView()}else{var te;L(B-1),(te=document.getElementById((B-1).toString()))==null||te.scrollIntoView()}}return G}(),P=function(){function G(J){J!==B&&L(J)}return G}(),R=function(){function G(){T(!1),T(!0)}return G}(),j=function(){function G(J){var Q=String.fromCharCode(J),ue=h.find(function(te){return te==null?void 0:te.toLowerCase().startsWith(Q==null?void 0:Q.toLowerCase())});if(ue){var ie,pe=h.indexOf(ue);L(pe),(ie=document.getElementById(pe.toString()))==null||ie.scrollIntoView()}}return G}(),F=function(){function G(J){var Q;J!==O&&(D(J),L(0),(Q=document.getElementById("0"))==null||Q.scrollIntoView())}return G}(),W=function(){function G(){T(!x),D("")}return G}(),z=h.filter(function(G){return G==null?void 0:G.toLowerCase().includes(O.toLowerCase())}),K=330+Math.ceil(v.length/3);return x||setTimeout(function(){var G;return(G=document.getElementById(B.toString()))==null?void 0:G.focus()},1),(0,e.createComponentVNode)(2,S.Window,{title:V,width:325,height:K,children:[N&&(0,e.createComponentVNode)(2,a.Loader,{value:N}),(0,e.createComponentVNode)(2,S.Window.Content,{onKeyDown:function(){function G(J){var Q=window.event?J.which:J.keyCode;(Q===b.KEY_DOWN||Q===b.KEY_UP)&&(J.preventDefault(),E(Q)),Q===b.KEY_ENTER&&(J.preventDefault(),d("submit",{entry:z[B]})),!x&&Q>=b.KEY_A&&Q<=b.KEY_Z&&(J.preventDefault(),j(Q)),Q===b.KEY_ESCAPE&&(J.preventDefault(),d("cancel"))}return G}(),children:(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{compact:!0,icon:x?"search":"font",selected:!0,tooltip:x?"Search Mode. Type to search or use arrow keys to select manually.":"Hotkey Mode. Type a letter to jump to the first match. Enter to select.",tooltipPosition:"left",onClick:function(){function G(){return W()}return G}()}),className:"ListInput__Section",fill:!0,title:v,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,k,{filteredItems:z,onClick:P,onFocusSearch:R,searchBarVisible:x,selected:B})}),(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:x&&(0,e.createComponentVNode)(2,g,{filteredItems:z,onSearch:F,searchQuery:O,selected:B})}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,children:(0,e.createComponentVNode)(2,t.InputButtons,{input:z[B]})})]})})})]})}return u}(),k=function(c,m){var l=(0,f.useBackend)(m),d=l.act,s=c.filteredItems,i=c.onClick,h=c.onFocusSearch,C=c.searchBarVisible,v=c.selected;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,tabIndex:0,children:s.map(function(p,N){return(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:"transparent",id:N,onClick:function(){function V(){return i(N)}return V}(),onDblClick:function(){function V(y){y.preventDefault(),d("submit",{entry:s[v]})}return V}(),onKeyDown:function(){function V(y){var B=window.event?y.which:y.keyCode;C&&B>=b.KEY_A&&B<=b.KEY_Z&&(y.preventDefault(),h())}return V}(),selected:N===v,style:{animation:"none",transition:"none"},children:p.replace(/^\w/,function(V){return V.toUpperCase()})},N)})})},g=function(c,m){var l=(0,f.useBackend)(m),d=l.act,s=c.filteredItems,i=c.onSearch,h=c.searchQuery,C=c.selected;return(0,e.createComponentVNode)(2,o.Input,{width:"100%",autoFocus:!0,autoSelect:!0,onEnter:function(){function v(p){p.preventDefault(),d("submit",{entry:s[C]})}return v}(),onInput:function(){function v(p,N){return i(N)}return v}(),placeholder:"Search...",value:h})}},26826:function(A,r,n){"use strict";r.__esModule=!0,r.Loadout=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b={Default:function(){function c(m,l){return m.gear.gear_tier-l.gear.gear_tier}return c}(),Alphabetical:function(){function c(m,l){return m.gear.name.toLowerCase().localeCompare(l.gear.name.toLowerCase())}return c}(),Cost:function(){function c(m,l){return m.gear.cost-l.gear.cost}return c}()},S=r.Loadout=function(){function c(m,l){var d=(0,t.useBackend)(l),s=d.act,i=d.data,h=(0,t.useLocalState)(l,"search",!1),C=h[0],v=h[1],p=(0,t.useLocalState)(l,"searchText",""),N=p[0],V=p[1],y=(0,t.useLocalState)(l,"category",Object.keys(i.gears)[0]),B=y[0],L=y[1],w=(0,t.useLocalState)(l,"tweakedGear",""),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,f.Window,{width:975,height:650,children:[x&&(0,e.createComponentVNode)(2,u,{tweakedGear:x,setTweakedGear:T}),(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,I,{category:B,setCategory:L})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"25%",children:(0,e.createComponentVNode)(2,g,{setTweakedGear:T})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"75%",children:(0,e.createComponentVNode)(2,k,{category:B,search:C,setSearch:v,searchText:N,setSearchText:V})})]})})]})})]})}return c}(),I=function(m,l){var d=(0,t.useBackend)(l),s=d.act,i=d.data,h=m.category,C=m.setCategory;return(0,e.createComponentVNode)(2,o.Tabs,{fluid:!0,textAlign:"center",style:{"flex-wrap":"wrap-reverse"},children:Object.keys(i.gears).map(function(v){return(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:v===h,style:{"white-space":"nowrap"},onClick:function(){function p(){return C(v)}return p}(),children:v},v)})})},k=function(m,l){var d=(0,t.useBackend)(l),s=d.act,i=d.data,h=i.user_tier,C=i.gear_slots,v=i.max_gear_slots,p=m.category,N=m.search,V=m.setSearch,y=m.searchText,B=m.setSearchText,L=(0,t.useLocalState)(l,"sortType","Default"),w=L[0],x=L[1],T=(0,t.useLocalState)(l,"sortReverse",!1),M=T[0],O=T[1],D=(0,a.createSearch)(y,function(P){return P.name}),E;return y.length>2?E=Object.entries(i.gears).reduce(function(P,R){var j=R[0],F=R[1];return P.concat(Object.entries(F).map(function(W){var z=W[0],K=W[1];return{key:z,gear:K}}))},[]).filter(function(P){var R=P.gear;return D(R)}):E=Object.entries(i.gears[p]).map(function(P){var R=P[0],j=P[1];return{key:R,gear:j}}),E.sort(b[w]),M&&(E=E.reverse()),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:p,buttons:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Dropdown,{height:1.66,selected:w,options:Object.keys(b),onSelected:function(){function P(R){return x(R)}return P}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:M?"arrow-down-wide-short":"arrow-down-short-wide",tooltip:M?"Ascending order":"Descending order",tooltipPosition:"bottom-end",onClick:function(){function P(){return O(!M)}return P}()})}),N&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Input,{width:20,placeholder:"Search...",value:y,onInput:function(){function P(R){return B(R.target.value)}return P}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"magnifying-glass",selected:N,tooltip:"Toggle search field",tooltipPosition:"bottom-end",onClick:function(){function P(){V(!N),B("")}return P}()})})]}),children:E.map(function(P){var R=P.key,j=P.gear,F=12,W=Object.keys(i.selected_gears).includes(R),z=j.cost===1?j.cost+" Point":j.cost+" Points",K=(0,e.createComponentVNode)(2,o.Box,{children:[j.name.length>F&&(0,e.createComponentVNode)(2,o.Box,{children:j.name}),j.gear_tier>h&&(0,e.createComponentVNode)(2,o.Box,{mt:j.name.length>F&&1.5,textColor:"red",children:"That gear is only available at a higher donation tier than you are on."})]}),G=(0,e.createFragment)([j.allowed_roles&&(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:"user",tooltip:(0,e.createComponentVNode)(2,o.Section,{m:-1,title:"Allowed Roles",children:j.allowed_roles.map(function(Q){return(0,e.createComponentVNode)(2,o.Box,{children:Q},Q)})}),tooltipPosition:"left"}),Object.entries(j.tweaks).map(function(Q){var ue=Q[0],ie=Q[1];return ie.map(function(pe){return(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:pe.icon,tooltip:pe.tooltip,tooltipPosition:"top"},ue)})}),(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:"info",tooltip:j.desc,tooltipPosition:"top"})],0),J=(0,e.createComponentVNode)(2,o.Box,{class:"Loadout-InfoBox",children:[(0,e.createComponentVNode)(2,o.Box,{style:{"flex-grow":1},fontSize:1,color:"gold",opacity:.75,children:j.gear_tier>0&&"Tier "+j.gear_tier}),(0,e.createComponentVNode)(2,o.Box,{fontSize:.75,opacity:.66,children:z})]});return(0,e.createComponentVNode)(2,o.ImageButton,{m:.5,imageSize:84,dmIcon:j.icon,dmIconState:j.icon_state,tooltip:(j.name.length>F||j.gear_tier>0)&&K,tooltipPosition:"bottom",selected:W,disabled:j.gear_tier>h||C+j.cost>v&&!W,buttons:G,buttonsAlt:J,onClick:function(){function Q(){return s("toggle_gear",{gear:R})}return Q}(),children:j.name},R)})})},g=function(m,l){var d=(0,t.useBackend)(l),s=d.act,i=d.data,h=m.setTweakedGear,C=Object.entries(i.gears).reduce(function(v,p){var N=p[0],V=p[1],y=Object.entries(V).filter(function(B){var L=B[0];return Object.keys(i.selected_gears).includes(L)}).map(function(B){var L=B[0],w=B[1];return Object.assign({key:L},w)});return v.concat(y)},[]);return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Selected Equipment",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",tooltip:"Clear Loadout",tooltipPosition:"bottom-end",onClick:function(){function v(){return s("clear_loadout")}return v}()}),children:C.map(function(v){return(0,e.createComponentVNode)(2,o.ImageButton,{fluid:!0,imageSize:32,dmIcon:v.icon,dmIconState:v.icon_state,buttons:(0,e.createFragment)([Object.entries(v.tweaks).length>0&&(0,e.createComponentVNode)(2,o.Button,{translucent:!0,icon:"gears",iconColor:"gray",width:"33px",onClick:function(){function p(){return h(v)}return p}()}),(0,e.createComponentVNode)(2,o.Button,{translucent:!0,icon:"times",iconColor:"red",width:"32px",onClick:function(){function p(){return s("toggle_gear",{gear:v.key})}return p}()})],0),children:v.name},v.key)})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.ProgressBar,{value:i.gear_slots,maxValue:i.max_gear_slots,ranges:{bad:[i.max_gear_slots,1/0],average:[i.max_gear_slots*.66,i.max_gear_slots],good:[0,i.max_gear_slots*.66]},children:(0,e.createComponentVNode)(2,o.Box,{textAlign:"center",children:["Used points ",i.gear_slots,"/",i.max_gear_slots]})})})})]})},u=function(m,l){var d=(0,t.useBackend)(l),s=d.act,i=d.data,h=m.tweakedGear,C=m.setTweakedGear;return(0,e.createComponentVNode)(2,o.Dimmer,{children:(0,e.createComponentVNode)(2,o.Box,{className:"Loadout-Modal__background",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,width:20,height:20,title:h.name,buttons:(0,e.createComponentVNode)(2,o.Button,{color:"red",icon:"times",tooltip:"Close",tooltipPosition:"top",onClick:function(){function v(){return C("")}return v}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:Object.entries(h.tweaks).map(function(v){var p=v[0],N=v[1];return N.map(function(V){var y=i.selected_gears[h.key][p];return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:V.name,color:y?"":"gray",buttons:(0,e.createComponentVNode)(2,o.Button,{color:"transparent",icon:"pen",onClick:function(){function B(){return s("set_tweak",{gear:h.key,tweak:p})}return B}()}),children:[y||"Default",(0,e.createComponentVNode)(2,o.Box,{inline:!0,ml:1,width:1,height:1,verticalAlign:"middle",style:{"background-color":""+y}})]},p)})})})})})})}},77613:function(A,r,n){"use strict";r.__esModule=!0,r.MODsuitContent=r.MODsuit=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(B,L){var w=B.name,x=B.value,T=B.module_ref,M=(0,a.useBackend)(L),O=M.act;return(0,e.createComponentVNode)(2,t.NumberInput,{value:x,minValue:-50,maxValue:50,stepPixelSize:5,width:"39px",onChange:function(){function D(E,P){return O("configure",{key:w,value:P,ref:T})}return D}()})},b=function(B,L){var w=B.name,x=B.value,T=B.module_ref,M=(0,a.useBackend)(L),O=M.act;return(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:x,onClick:function(){function D(){return O("configure",{key:w,value:!x,ref:T})}return D}()})},S=function(B,L){var w=B.name,x=B.value,T=B.module_ref,M=(0,a.useBackend)(L),O=M.act;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"paint-brush",onClick:function(){function D(){return O("configure",{key:w,ref:T})}return D}()}),(0,e.createComponentVNode)(2,t.ColorBox,{color:x,mr:.5})],4)},I=function(B,L){var w=B.name,x=B.value,T=B.values,M=B.module_ref,O=(0,a.useBackend)(L),D=O.act;return(0,e.createComponentVNode)(2,t.Dropdown,{displayText:x,options:T,onSelected:function(){function E(P){return D("configure",{key:w,value:P,ref:M})}return E}()})},k=function(B,L){var w=B.name,x=B.display_name,T=B.type,M=B.value,O=B.values,D=B.module_ref,E={number:(0,e.normalizeProps)((0,e.createComponentVNode)(2,f,Object.assign({},B))),bool:(0,e.normalizeProps)((0,e.createComponentVNode)(2,b,Object.assign({},B))),color:(0,e.normalizeProps)((0,e.createComponentVNode)(2,S,Object.assign({},B))),list:(0,e.normalizeProps)((0,e.createComponentVNode)(2,I,Object.assign({},B)))};return(0,e.createComponentVNode)(2,t.Box,{children:[x,": ",E[T]]})},g=function(B,L){var w=B.active,x=B.userradiated,T=B.usertoxins,M=B.usermaxtoxins,O=B.threatlevel;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Radiation Level",color:w&&x?"bad":"good",children:w&&x?"IRRADIATED!":"RADIATION-FREE"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxins Level",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?T/M:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:T})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Hazard Level",color:w&&O?"bad":"good",bold:!0,children:w&&O?O:0})})]})},u=function(B,L){var w=B.active,x=B.userhealth,T=B.usermaxhealth,M=B.userbrute,O=B.userburn,D=B.usertoxin,E=B.useroxy;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?x/T:0,ranges:{good:[.5,1/0],average:[.2,.5],bad:[-1/0,.2]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?x:0})})}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Brute",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?M/T:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?M:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Burn",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?O/T:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?O:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxin",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?D/T:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?D:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Suffocation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?E/T:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?E:0})})})})]})],4)},c=function(B,L){var w=B.active,x=B.statustime,T=B.statusid,M=B.statushealth,O=B.statusmaxhealth,D=B.statusbrute,E=B.statusburn,P=B.statustoxin,R=B.statusoxy,j=B.statustemp,F=B.statusnutrition,W=B.statusfingerprints,z=B.statusdna,K=B.statusviruses;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Operation Time",children:w?x:"00:00:00"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Operation Number",children:w?T||"0":"???"})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?M/O:0,ranges:{good:[.5,1/0],average:[.2,.5],bad:[-1/0,.2]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?M:0})})}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Brute",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?D/O:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?D:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Burn",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?E/O:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?E:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxin",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?P/O:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:P})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Suffocation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?R/O:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:R})})})})]}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Body Temperature",children:w?j:0})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Nutrition Status",children:w?F:0})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"DNA",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fingerprints",children:w?W:"???"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unique Enzymes",children:w?z:"???"})]})}),!!w&&!!K&&(0,e.createComponentVNode)(2,t.Section,{title:"Diseases",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"signature",tooltip:"Name",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"wind",tooltip:"Type",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"bolt",tooltip:"Stage",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"flask",tooltip:"Cure",tooltipPosition:"top"})})]}),K.map(function(G){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.type}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[G.stage,"/",G.maxstage]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.cure})]},G.name)})]})})],0)},m={rad_counter:g,health_analyzer:u,status_readout:c},l=function(){return(0,e.createComponentVNode)(2,t.Section,{align:"center",fill:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{color:"red",name:"exclamation-triangle",size:15}),(0,e.createComponentVNode)(2,t.Box,{fontSize:"30px",color:"red",children:"ERROR: INTERFACE UNRESPONSIVE"})]})},d=function(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data;return(0,e.createComponentVNode)(2,t.Dimmer,{children:(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",color:"blue",children:"SUIT UNPOWERED"})})})},s=function(B,L){var w=B.configuration_data,x=B.module_ref,T=Object.keys(w);return(0,e.createComponentVNode)(2,t.Dimmer,{backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[T.map(function(M){var O=w[M];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,k,{name:M,display_name:O.display_name,type:O.type,value:O.value,values:O.values,module_ref:x})},O.key)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:B.onExit,icon:"times",textAlign:"center",children:"Exit"})})})]})})},i=function(B){switch(B){case 1:return"Use";case 2:return"Toggle";case 3:return"Select"}},h=function(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.active,O=T.malfunctioning,D=T.locked,E=T.open,P=T.selected_module,R=T.complexity,j=T.complexity_max,F=T.wearer_name,W=T.wearer_job,z=O?"Malfunctioning":M?"Active":"Inactive";return(0,e.createComponentVNode)(2,t.Section,{title:"Parameters",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:M?"Deactivate":"Activate",onClick:function(){function K(){return x("activate")}return K}()}),children:z}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Lock",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:D?"lock-open":"lock",content:D?"Unlock":"Lock",onClick:function(){function K(){return x("lock")}return K}()}),children:D?"Locked":"Unlocked"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cover",children:E?"Open":"Closed"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Selected Module",children:P||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Complexity",children:[R," (",j,")"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Occupant",children:[F,", ",W]})]})})},C=function(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.active,O=T.control,D=T.helmet,E=T.chestplate,P=T.gauntlets,R=T.boots,j=T.core,F=T.charge;return(0,e.createComponentVNode)(2,t.Section,{title:"Hardware",children:[(0,e.createComponentVNode)(2,t.Collapsible,{title:"Parts",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Control Unit",children:O}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Helmet",children:D||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Chestplate",children:E||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gauntlets",children:P||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Boots",children:R||"None"})]})}),(0,e.createComponentVNode)(2,t.Collapsible,{title:"Core",children:j&&(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Core Type",children:j}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Core Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:F/100,content:F+"%",ranges:{good:[.6,1/0],average:[.3,.6],bad:[-1/0,.3]}})})]})||(0,e.createComponentVNode)(2,t.Box,{color:"bad",textAlign:"center",children:"No Core Detected"})})]})},v=function(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.active,O=T.modules,D=O.filter(function(E){return!!E.id});return(0,e.createComponentVNode)(2,t.Section,{title:"Info",children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:D.length!==0&&D.map(function(E){var P=m[E.id];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[!M&&(0,e.createComponentVNode)(2,d),(0,e.normalizeProps)((0,e.createComponentVNode)(2,P,Object.assign({},E,{active:M})))]},E.ref)})||(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:"No Info Modules Detected"})})})},p=function(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.complexity_max,O=T.modules,D=(0,a.useLocalState)(L,"module_configuration",null),E=D[0],P=D[1];return(0,e.createComponentVNode)(2,t.Section,{title:"Modules",fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:O.length!==0&&O.map(function(R){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Collapsible,{title:R.module_name,children:(0,e.createComponentVNode)(2,t.Section,{children:[E===R.ref&&(0,e.createComponentVNode)(2,s,{configuration_data:R.configuration_data,module_ref:R.ref,onExit:function(){function j(){return P(null)}return j}()}),(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"save",tooltip:"Complexity",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"plug",tooltip:"Idle Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"lightbulb",tooltip:"Active Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"bolt",tooltip:"Use Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"hourglass-half",tooltip:"Cooldown",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"tasks",tooltip:"Actions",tooltipPosition:"top"})})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[R.module_complexity,"/",M]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:R.idle_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:R.active_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:R.use_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[R.cooldown>0&&R.cooldown/10||"0","/",R.cooldown_time/10,"s"]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function j(){return x("select",{ref:R.ref})}return j}(),icon:"bullseye",selected:R.module_active,tooltip:i(R.module_type),tooltipPosition:"left",disabled:!R.module_type}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function j(){return P(R.ref)}return j}(),icon:"cog",selected:E===R.ref,tooltip:"Configure",tooltipPosition:"left",disabled:R.configuration_data.length===0}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function j(){return x("pin",{ref:R.ref})}return j}(),icon:"thumbtack",selected:R.pinned,tooltip:"Pin",tooltipPosition:"left",disabled:!R.module_type})]})]})]}),(0,e.createComponentVNode)(2,t.Box,{children:R.description})]})})},R.ref)})||(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:"No Modules Detected"})})})})},N=r.MODsuitContent=function(){function y(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.ui_theme,O=T.interface_break;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!O,children:!!O&&(0,e.createComponentVNode)(2,l)||(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,h)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,C)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,v)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,p)})]})})}return y}(),V=r.MODsuit=function(){function y(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.ui_theme,O=T.interface_break;return(0,e.createComponentVNode)(2,o.Window,{theme:M,width:400,height:620,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,N)})})})}return y}()},78624:function(A,r,n){"use strict";r.__esModule=!0,r.MagnetController=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=n(3939),S=new Map([["n",{icon:"arrow-up",tooltip:"Move North"}],["e",{icon:"arrow-right",tooltip:"Move East"}],["s",{icon:"arrow-down",tooltip:"Move South"}],["w",{icon:"arrow-left",tooltip:"Move West"}],["c",{icon:"crosshairs",tooltip:"Move to Magnet"}],["r",{icon:"dice",tooltip:"Move Randomly"}]]),I=r.MagnetController=function(){function k(g,u){var c=(0,t.useBackend)(u),m=c.act,l=c.data,d=l.autolink,s=l.code,i=l.frequency,h=l.linkedMagnets,C=l.magnetConfiguration,v=l.path,p=l.pathPosition,N=l.probing,V=l.powerState,y=l.speed;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:600,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[!d&&(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{content:"Probe",icon:N?"spinner":"sync",iconSpin:!!N,disabled:N,onClick:function(){function B(){return m("probe_magnets")}return B}()}),title:"Magnet Linking",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:(0,a.toFixed)(i/10,1)}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",children:s})]})}),(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{icon:V?"power-off":"times",content:V?"On":"Off",selected:V,onClick:function(){function B(){return m("toggle_power")}return B}()}),title:"Controller Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Speed",children:(0,e.createComponentVNode)(2,o.Slider,{value:y.value,minValue:y.min,maxValue:y.max,onChange:function(){function B(L,w){return m("set_speed",{speed:w})}return B}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Path",children:[Array.from(S.entries()).map(function(B){var L=B[0],w=B[1],x=w.icon,T=w.tooltip;return(0,e.createComponentVNode)(2,o.Button,{icon:x,tooltip:T,onClick:function(){function M(){return m("path_add",{code:L})}return M}()},L)}),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",confirmIcon:"trash",confirmContent:"",float:"right",tooltip:"Reset Path",tooltipPosition:"left",onClick:function(){function B(){return m("path_clear")}return B}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"file-import",float:"right",tooltip:"Manually input path",tooltipPosition:"left",onClick:function(){function B(){return(0,b.modalOpen)(u,"path_custom_input")}return B}()}),(0,e.createComponentVNode)(2,o.BlockQuote,{children:v.map(function(B,L){var w=S.get(B)||{icon:"question"},x=w.icon,T=w.tooltip;return(0,e.createComponentVNode)(2,o.Button.Confirm,{selected:L+2===p,icon:x,confirmIcon:x,confirmContent:"",tooltip:T,onClick:function(){function M(){return m("path_remove",{index:L+1,code:B})}return M}()},L)})})]})]})}),h.map(function(B,L){var w=B.uid,x=B.powerState,T=B.electricityLevel,M=B.magneticField;return(0,e.createComponentVNode)(2,o.Section,{title:"Magnet #"+(L+1)+" Configuration",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:x?"power-off":"times",content:x?"On":"Off",selected:x,onClick:function(){function O(){return m("toggle_magnet_power",{id:w})}return O}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Move Speed",children:(0,e.createComponentVNode)(2,o.Slider,{value:T,minValue:C.electricityLevel.min,maxValue:C.electricityLevel.max,onChange:function(){function O(D,E){return m("set_electricity_level",{id:w,electricityLevel:E})}return O}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Field Size",children:(0,e.createComponentVNode)(2,o.Slider,{value:M,minValue:C.magneticField.min,maxValue:C.magneticField.max,onChange:function(){function O(D,E){return m("set_magnetic_field",{id:w,magneticField:E})}return O}()})})]})},w)})]})]})}return k}()},72106:function(A,r,n){"use strict";r.__esModule=!0,r.MechBayConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.MechBayConsole=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.recharge_port,m=c&&c.mech,l=m&&m.cell,d=m&&m.name;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:155,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:d?"Mech status: "+d:"Mech status",textAlign:"center",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Sync",onClick:function(){function s(){return g("reconnect")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No power port detected. Please re-sync."})||!m&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No mech detected."})||(0,e.createComponentVNode)(2,t.ProgressBar,{value:m.health/m.maxhealth,ranges:{good:[.7,1/0],average:[.3,.7],bad:[-1/0,.3]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No power port detected. Please re-sync."})||!m&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No mech detected."})||!l&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No cell is installed."})||(0,e.createComponentVNode)(2,t.ProgressBar,{value:l.charge/l.maxcharge,ranges:{good:[.7,1/0],average:[.3,.7],bad:[-1/0,.3]},children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:l.charge})," / "+l.maxcharge]})})]})})})})}return b}()},7466:function(A,r,n){"use strict";r.__esModule=!0,r.MechaControlConsole=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=n(25328),S=r.MechaControlConsole=function(){function I(k,g){var u=(0,t.useBackend)(g),c=u.act,m=u.data,l=m.beacons,d=m.stored_data;return d.length?(0,e.createComponentVNode)(2,f.Window,{width:420,height:500,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:"Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"window-close",onClick:function(){function s(){return c("clear_log")}return s}()}),children:d.map(function(s){return(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",children:["(",s.time,")"]}),(0,e.createComponentVNode)(2,o.Box,{children:(0,b.decodeHtmlEntities)(s.message)})]},s.time)})})})}):(0,e.createComponentVNode)(2,f.Window,{width:420,height:500,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:l.length&&l.map(function(s){return(0,e.createComponentVNode)(2,o.Section,{title:s.name,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function i(){return c("send_message",{mt:s.uid})}return i}(),children:"Message"}),(0,e.createComponentVNode)(2,o.Button,{icon:"eye",onClick:function(){function i(){return c("get_log",{mt:s.uid})}return i}(),children:"View Log"}),(0,e.createComponentVNode)(2,o.Button.Confirm,{color:"red",content:"Sabotage",icon:"bomb",onClick:function(){function i(){return c("shock",{mt:s.uid})}return i}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{good:[s.maxHealth*.75,1/0],average:[s.maxHealth*.5,s.maxHealth*.75],bad:[-1/0,s.maxHealth*.5]},value:s.health,maxValue:s.maxHealth})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cell Charge",children:s.cell&&(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{good:[s.cellMaxCharge*.75,1/0],average:[s.cellMaxCharge*.5,s.cellMaxCharge*.75],bad:[-1/0,s.cellMaxCharge*.5]},value:s.cellCharge,maxValue:s.cellMaxCharge})||(0,e.createComponentVNode)(2,o.NoticeBox,{children:"No Cell Installed"})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Air Tank",children:[s.airtank,"kPa"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pilot",children:s.pilot||"Unoccupied"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Location",children:(0,b.toTitleCase)(s.location)||"Unknown"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Active Equipment",children:s.active||"None"}),s.cargoMax&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cargo Space",children:(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{bad:[s.cargoMax*.75,1/0],average:[s.cargoMax*.5,s.cargoMax*.75],good:[-1/0,s.cargoMax*.5]},value:s.cargoUsed,maxValue:s.cargoMax})})||null]})},s.name)})||(0,e.createComponentVNode)(2,o.NoticeBox,{children:"No mecha beacons found."})})})}return I}()},79625:function(A,r,n){"use strict";r.__esModule=!0,r.MedicalRecords=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(3939),b=n(98595),S=n(321),I=n(5485),k=n(22091),g={Minor:"lightgray",Medium:"good",Harmful:"average","Dangerous!":"bad","BIOHAZARD THREAT!":"darkred"},u={"*Deceased*":"deceased","*SSD*":"ssd","Physically Unfit":"physically_unfit",Disabled:"disabled"},c=function(x,T){(0,f.modalOpen)(x,"edit",{field:T.edit,value:T.value})},m=function(x,T){var M=x.args;return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:M.name||"Virus",children:(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Number of stages",children:M.max_stages}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Spread",children:[M.spread_text," Transmission"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Possible cure",children:M.cure}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Notes",children:M.desc}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Severity",color:g[M.severity],children:M.severity})]})})})},l=r.MedicalRecords=function(){function w(x,T){var M=(0,t.useBackend)(T),O=M.data,D=O.loginState,E=O.screen;if(!D.logged_in)return(0,e.createComponentVNode)(2,b.Window,{width:800,height:900,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,I.LoginScreen)})});var P;return E===2?P=(0,e.createComponentVNode)(2,d):E===3?P=(0,e.createComponentVNode)(2,s):E===4?P=(0,e.createComponentVNode)(2,i):E===5?P=(0,e.createComponentVNode)(2,p):E===6?P=(0,e.createComponentVNode)(2,N):E===7&&(P=(0,e.createComponentVNode)(2,V)),(0,e.createComponentVNode)(2,b.Window,{width:800,height:900,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S.LoginInfo),(0,e.createComponentVNode)(2,k.TemporaryNotice),(0,e.createComponentVNode)(2,L),P]})})]})}return w}(),d=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.records,P=(0,t.useLocalState)(T,"searchText",""),R=P[0],j=P[1],F=(0,t.useLocalState)(T,"sortId","name"),W=F[0],z=F[1],K=(0,t.useLocalState)(T,"sortOrder",!0),G=K[0],J=K[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Manage Records",icon:"wrench",ml:"0.25rem",onClick:function(){function Q(){return O("screen",{screen:3})}return Q}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{fluid:!0,placeholder:"Search by Name, ID, Physical Status, or Mental Status",onInput:function(){function Q(ue,ie){return j(ie)}return Q}()})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,y,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,y,{id:"id",children:"ID"}),(0,e.createComponentVNode)(2,y,{id:"rank",children:"Assignment"}),(0,e.createComponentVNode)(2,y,{id:"p_stat",children:"Patient Status"}),(0,e.createComponentVNode)(2,y,{id:"m_stat",children:"Mental Status"})]}),E.filter((0,a.createSearch)(R,function(Q){return Q.name+"|"+Q.id+"|"+Q.rank+"|"+Q.p_stat+"|"+Q.m_stat})).sort(function(Q,ue){var ie=G?1:-1;return Q[W].localeCompare(ue[W])*ie}).map(function(Q){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listRow--"+u[Q.p_stat],onClick:function(){function ue(){return O("view_record",{view_record:Q.ref})}return ue}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",Q.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:Q.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:Q.rank}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:Q.p_stat}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:Q.m_stat})]},Q.id)})]})})})],4)},s=function(x,T){var M=(0,t.useBackend)(T),O=M.act;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,translucent:!0,lineHeight:3,icon:"download",content:"Backup to Disk",disabled:!0})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:[(0,e.createComponentVNode)(2,o.Button,{fluid:!0,translucent:!0,lineHeight:3,icon:"upload",content:"Upload from Disk",my:"0.5rem",disabled:!0})," "]}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button.Confirm,{fluid:!0,translucent:!0,lineHeight:3,icon:"trash",content:"Delete All Medical Records",onClick:function(){function D(){return O("del_all_med_records")}return D}()})})]})})},i=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.medical,P=D.printing;return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{height:"235px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"General Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:P?"spinner":"print",disabled:P,iconSpin:!!P,content:"Print Record",ml:"0.5rem",onClick:function(){function R(){return O("print_record")}return R}()}),children:(0,e.createComponentVNode)(2,h)})}),!E||!E.fields?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Medical Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"pen",content:"Create New Record",onClick:function(){function R(){return O("new_med_record")}return R}()}),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"Medical records lost!"]})})})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Medical Data",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",disabled:!!E.empty,content:"Delete Medical Record",onClick:function(){function R(){return O("del_med_record")}return R}()}),children:(0,e.createComponentVNode)(2,C)})}),(0,e.createComponentVNode)(2,v)],4)],0)},h=function(x,T){var M=(0,t.useBackend)(T),O=M.data,D=O.general;return!D||!D.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"General records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:D.fields.map(function(E,P){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:E.field,children:[(0,e.createComponentVNode)(2,o.Box,{height:"20px",inline:!0,children:E.value}),!!E.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",onClick:function(){function R(){return c(T,E)}return R}()})]},P)})})}),!!D.has_photos&&D.photos.map(function(E,P){return(0,e.createComponentVNode)(2,o.Stack.Item,{inline:!0,textAlign:"center",color:"label",ml:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:E,style:{width:"96px","margin-top":"2.5rem","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createVNode)(1,"br"),"Photo #",P+1]},P)})]})},C=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.medical;return!E||!E.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"Medical records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:E.fields.map(function(P,R){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:P.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(P.value),!!P.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:P.line_break?"1rem":"initial",onClick:function(){function j(){return c(T,P)}return j}()})]},R)})})})})},v=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.medical;return(0,e.createComponentVNode)(2,o.Stack.Item,{height:"150px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Comments/Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"comment",content:"Add Entry",onClick:function(){function P(){return(0,f.modalOpen)(T,"add_comment")}return P}()}),children:E.comments.length===0?(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No comments found."}):E.comments.map(function(P,R){return(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:P.header}),(0,e.createVNode)(1,"br"),P.text,(0,e.createComponentVNode)(2,o.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){function j(){return O("del_comment",{del_comment:R+1})}return j}()})]},R)})})})},p=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.virus,P=(0,t.useLocalState)(T,"searchText",""),R=P[0],j=P[1],F=(0,t.useLocalState)(T,"sortId2","name"),W=F[0],z=F[1],K=(0,t.useLocalState)(T,"sortOrder2",!0),G=K[0],J=K[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{ml:"0.25rem",fluid:!0,placeholder:"Search by Name, Max Stages, or Severity",onInput:function(){function Q(ue,ie){return j(ie)}return Q}()})}),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,B,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,B,{id:"max_stages",children:"Max Stages"}),(0,e.createComponentVNode)(2,B,{id:"severity",children:"Severity"})]}),E.filter((0,a.createSearch)(R,function(Q){return Q.name+"|"+Q.max_stages+"|"+Q.severity})).sort(function(Q,ue){var ie=G?1:-1;return Q[W].localeCompare(ue[W])*ie}).map(function(Q){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listVirus--"+Q.severity,onClick:function(){function ue(){return O("vir",{vir:Q.D})}return ue}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"virus"})," ",Q.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:Q.max_stages}),(0,e.createComponentVNode)(2,o.Table.Cell,{color:g[Q.severity],children:Q.severity})]},Q.id)})]})})})})],4)},N=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.goals;return(0,e.createComponentVNode)(2,o.Section,{title:"Virology Goals",fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:E.length!==0&&E.map(function(P){return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:P.name,children:[(0,e.createComponentVNode)(2,o.Table,{children:(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:(0,e.createComponentVNode)(2,o.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,o.ProgressBar,{value:P.delivered,minValue:0,maxValue:P.deliverygoal,ranges:{good:[P.deliverygoal*.5,1/0],average:[P.deliverygoal*.25,P.deliverygoal*.5],bad:[-1/0,P.deliverygoal*.25]},children:[P.delivered," / ",P.deliverygoal," Units"]})})})}),(0,e.createComponentVNode)(2,o.Box,{children:P.report})]})},P.id)})||(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Box,{textAlign:"center",children:"No Goals Detected"})})})})},V=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.medbots;return E.length===0?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"robot",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"There are no Medibots."]})})})}):(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Area"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Chemicals"})]}),E.map(function(P){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listMedbot--"+P.on,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"medical"})," ",P.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[P.area||"Unknown"," (",P.x,", ",P.y,")"]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.on?(0,e.createComponentVNode)(2,o.Box,{color:"good",children:"Online"}):(0,e.createComponentVNode)(2,o.Box,{color:"average",children:"Offline"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.use_beaker?"Reservoir: "+P.total_volume+"/"+P.maximum_volume:"Using internal synthesizer"})]},P.id)})]})})})},y=function(x,T){var M=(0,t.useLocalState)(T,"sortId","name"),O=M[0],D=M[1],E=(0,t.useLocalState)(T,"sortOrder",!0),P=E[0],R=E[1],j=x.id,F=x.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:O!==j&&"transparent",onClick:function(){function W(){O===j?R(!P):(D(j),R(!0))}return W}(),children:[F,O===j&&(0,e.createComponentVNode)(2,o.Icon,{name:P?"sort-up":"sort-down",ml:"0.25rem;"})]})})},B=function(x,T){var M=(0,t.useLocalState)(T,"sortId2","name"),O=M[0],D=M[1],E=(0,t.useLocalState)(T,"sortOrder2",!0),P=E[0],R=E[1],j=x.id,F=x.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:O!==j&&"transparent",onClick:function(){function W(){O===j?R(!P):(D(j),R(!0))}return W}(),children:[F,O===j&&(0,e.createComponentVNode)(2,o.Icon,{name:P?"sort-up":"sort-down",ml:"0.25rem;"})]})})},L=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.screen,P=D.general;return(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:E===2,onClick:function(){function R(){O("screen",{screen:2})}return R}(),children:"List Records"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"database",selected:E===5,onClick:function(){function R(){O("screen",{screen:5})}return R}(),children:"Virus Database"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"vial",selected:E===6,onClick:function(){function R(){O("screen",{screen:6})}return R}(),children:"Virology Goals"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"plus-square",selected:E===7,onClick:function(){function R(){return O("screen",{screen:7})}return R}(),children:"Medibot Tracking"}),E===3&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"wrench",selected:E===3,children:"Record Maintenance"}),E===4&&P&&!P.empty&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"file",selected:E===4,children:["Record: ",P.fields[0].value]})]})})};(0,f.modalRegisterBodyOverride)("virus",m)},54989:function(A,r,n){"use strict";r.__esModule=!0,r.MerchVendor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=g.product,s=g.productImage,i=g.productCategory,h=l.user_money;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+s,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}})}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:d.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{disabled:d.price>h,icon:"shopping-cart",content:d.price,textAlign:"left",onClick:function(){function C(){return m("purchase",{name:d.name,category:i})}return C}()})})]})},b=function(g,u){var c=(0,a.useBackend)(u),m=c.data,l=(0,a.useLocalState)(u,"tabIndex",1),d=l[0],s=m.products,i=m.imagelist,h=["apparel","toy","decoration"];return(0,e.createComponentVNode)(2,t.Table,{children:s[h[d]].map(function(C){return(0,e.createComponentVNode)(2,f,{product:C,productImage:i[C.path],productCategory:h[d]},C.name)})})},S=r.MerchVendor=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.user_cash,s=l.inserted_cash;return(0,e.createComponentVNode)(2,o.Window,{title:"Merch Computer",width:450,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"User",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{color:"light-grey",inline:!0,mr:"0.5rem",children:["There is ",(0,e.createVNode)(1,"b",null,s,0)," credits inserted."]}),(0,e.createComponentVNode)(2,t.Button,{disabled:!s,icon:"money-bill-wave-alt",content:"Dispense Change",textAlign:"left",onClick:function(){function i(){return m("change")}return i}()})],4),children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Doing your job and not getting any recognition at work? Well, welcome to the merch shop! Here, you can buy cool things in exchange for money you earn when you have completed your Job Objectives.",d!==null&&(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:["Your balance is ",(0,e.createVNode)(1,"b",null,[d||0,(0,e.createTextVNode)(" credits")],0),"."]})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Products",children:[(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,b)]})})]})})})}return k}(),I=function(g,u){var c=(0,a.useBackend)(u),m=c.data,l=(0,a.useLocalState)(u,"tabIndex",1),d=l[0],s=l[1],i=m.login_state;return(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"dice",selected:d===1,onClick:function(){function h(){return s(1)}return h}(),children:"Toys"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"flag",selected:d===2,onClick:function(){function h(){return s(2)}return h}(),children:"Decorations"})]})}},87684:function(A,r,n){"use strict";r.__esModule=!0,r.MiningVendor=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=["title","items","gridLayout"];function S(l,d){if(l==null)return{};var s={};for(var i in l)if({}.hasOwnProperty.call(l,i)){if(d.includes(i))continue;s[i]=l[i]}return s}var I={Alphabetical:function(){function l(d,s){return d-s}return l}(),Availability:function(){function l(d,s){return-(d.affordable-s.affordable)}return l}(),Price:function(){function l(d,s){return d.price-s.price}return l}()},k=r.MiningVendor=function(){function l(d,s){var i=(0,t.useLocalState)(s,"gridLayout",!1),h=i[0],C=i[1];return(0,e.createComponentVNode)(2,f.Window,{width:400,height:525,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,c,{gridLayout:h,setGridLayout:C}),(0,e.createComponentVNode)(2,u,{gridLayout:h})]})})})}return l}(),g=function(d,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=C.has_id,p=C.id;return(0,e.createComponentVNode)(2,o.NoticeBox,{success:v,children:v?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Box,{inline:!0,verticalAlign:"middle",style:{float:"left"},children:["Logged in as ",p.name,".",(0,e.createVNode)(1,"br"),"You have ",p.points.toLocaleString("en-US")," points."]}),(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject ID",style:{float:"right"},onClick:function(){function N(){return h("logoff")}return N}()}),(0,e.createComponentVNode)(2,o.Box,{style:{clear:"both"}})],4):"Please insert an ID in order to make purchases."})},u=function(d,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=C.has_id,p=C.id,N=C.items,V=d.gridLayout,y=(0,t.useLocalState)(s,"search",""),B=y[0],L=y[1],w=(0,t.useLocalState)(s,"sort","Alphabetical"),x=w[0],T=w[1],M=(0,t.useLocalState)(s,"descending",!1),O=M[0],D=M[1],E=(0,a.createSearch)(B,function(j){return j[0]}),P=!1,R=Object.entries(N).map(function(j,F){var W=Object.entries(j[1]).filter(E).map(function(z){return z[1].affordable=v&&p.points>=z[1].price,z[1]}).sort(I[x]);if(W.length!==0)return O&&(W=W.reverse()),P=!0,(0,e.createComponentVNode)(2,m,{title:j[0],items:W,gridLayout:V},j[0])});return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:P?R:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No items matching your criteria was found!"})})})},c=function(d,s){var i=d.gridLayout,h=d.setGridLayout,C=(0,t.useLocalState)(s,"search",""),v=C[0],p=C[1],N=(0,t.useLocalState)(s,"sort",""),V=N[0],y=N[1],B=(0,t.useLocalState)(s,"descending",!1),L=B[0],w=B[1];return(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{mt:.2,placeholder:"Search by item name..",width:"100%",onInput:function(){function x(T,M){return p(M)}return x}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:i?"list":"table-cells-large",height:1.75,tooltip:i?"Toggle List Layout":"Toggle Grid Layout",tooltipPosition:"bottom-start",onClick:function(){function x(){return h(!i)}return x}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"30%",children:(0,e.createComponentVNode)(2,o.Dropdown,{selected:"Alphabetical",options:Object.keys(I),width:"100%",onSelected:function(){function x(T){return y(T)}return x}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:L?"arrow-down":"arrow-up",height:1.75,tooltip:L?"Descending order":"Ascending order",tooltipPosition:"bottom-start",onClick:function(){function x(){return w(!L)}return x}()})})]})})},m=function(d,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=d.title,p=d.items,N=d.gridLayout,V=S(d,b);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Collapsible,Object.assign({open:!0,title:v},V,{children:p.map(function(y){return N?(0,e.createComponentVNode)(2,o.ImageButton,{mb:.5,imageSize:57.5,dmIcon:y.icon,dmIconState:y.icon_state,disabled:!C.has_id||C.id.points0?'\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043F\u043E\u0438\u0441\u043A\u0430 "'+d+'"':"\u0412\u0441\u0435 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 - "+m.length,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:m.filter(function(h){return h.name&&(d.length>0?h.name.toLowerCase().includes(d.toLowerCase())||h.desc.toLowerCase().includes(d.toLowerCase())||h.author.toLowerCase().includes(d.toLowerCase()):!0)}).map(function(h){return(0,e.createComponentVNode)(2,o.Collapsible,{title:h.name,children:[(0,e.createComponentVNode)(2,o.Section,{title:"\u0410\u0432\u0442\u043E\u0440\u044B",children:h.author}),(0,e.createComponentVNode)(2,o.Section,{title:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",children:h.desc})]},h.name)})})})})})],4)}return S}()},59783:function(A,r,n){"use strict";r.__esModule=!0,r.NTRecruiter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.NTRecruiter=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.gamestatus,m=u.cand_name,l=u.cand_birth,d=u.cand_age,s=u.cand_species,i=u.cand_planet,h=u.cand_job,C=u.cand_records,v=u.cand_curriculum,p=u.total_curriculums,N=u.reason;if(c===0)return(0,e.createComponentVNode)(2,o.Window,{width:400,height:550,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{pt:"45%",fontSize:"31px",color:"white",textAlign:"center",bold:!0,children:"Nanotrasen Recruiter Simulator"}),(0,e.createComponentVNode)(2,t.Stack.Item,{pt:"1%",fontSize:"16px",textAlign:"center",color:"label",children:"Work as the Nanotrasen recruiter and avoid hiring incompetent employees!"})]})}),(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Button,{textAlign:"center",lineHeight:2,fluid:!0,icon:"play",color:"green",content:"Begin Shift",onClick:function(){function V(){return g("start_game")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{textAlign:"center",lineHeight:2,fluid:!0,icon:"info",color:"blue",content:"Guide",onClick:function(){function V(){return g("instructions")}return V}()})]})]})})});if(c===1)return(0,e.createComponentVNode)(2,o.Window,{width:400,height:550,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,color:"grey",title:"Guide",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-left",content:"Main Menu",onClick:function(){function V(){return g("back_to_menu")}return V}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"1#",color:"silver",children:["To win this game you must hire/dismiss ",(0,e.createVNode)(1,"b",null,p,0)," candidates, one wrongly made choice leads to a game over."]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"2#",color:"silver",children:"Make the right choice by truly putting yourself into the skin of a recruiter working for Nanotrasen!"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"3#",color:"silver",children:[(0,e.createVNode)(1,"b",null,"Unique",16)," characters may appear, pay attention to them!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"4#",color:"silver",children:"Make sure to pay attention to details like age, planet names, the requested job and even the species of the candidate!"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"5#",color:"silver",children:["Not every employment record is good, remember to make your choice based on the ",(0,e.createVNode)(1,"b",null,"company morals",16),"!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"6#",color:"silver",children:"The planet of origin has no restriction on the species of the candidate, don't think too much when you see humans that came from Boron!"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"7#",color:"silver",children:["Pay attention to ",(0,e.createVNode)(1,"b",null,"typos",16)," and ",(0,e.createVNode)(1,"b",null,"missing words",16),", these do make for bad applications!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"8#",color:"silver",children:["Remember, you are recruiting people to work at one of the many NT stations, so no hiring for"," ",(0,e.createVNode)(1,"b",null,"jobs",16)," that they ",(0,e.createVNode)(1,"b",null,"don't offer",16),"!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"9#",color:"silver",children:["Keep your eyes open for incompatible ",(0,e.createVNode)(1,"b",null,"naming schemes",16),", no company wants a Vox named Joe!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"10#",color:"silver",children:["For some unknown reason ",(0,e.createVNode)(1,"b",null,"clowns",16)," are never denied by the company, no matter what."]})]})})})})});if(c===2)return(0,e.createComponentVNode)(2,o.Window,{width:400,height:550,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,color:"label",fontSize:"14px",title:"Employment Applications",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"24px",textAlign:"center",color:"silver",bold:!0,children:["Candidate Number #",v]}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",color:"silver",children:(0,e.createVNode)(1,"b",null,m,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Species",color:"silver",children:(0,e.createVNode)(1,"b",null,s,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Age",color:"silver",children:(0,e.createVNode)(1,"b",null,d,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Date of Birth",color:"silver",children:(0,e.createVNode)(1,"b",null,l,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Planet of Origin",color:"silver",children:(0,e.createVNode)(1,"b",null,i,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Requested Job",color:"silver",children:(0,e.createVNode)(1,"b",null,h,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Employment Records",color:"silver",children:(0,e.createVNode)(1,"b",null,C,0)})]})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Stamp the application!",color:"grey",textAlign:"center",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"red",content:"Dismiss",fontSize:"150%",icon:"ban",lineHeight:4.5,onClick:function(){function V(){return g("dismiss")}return V}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"green",content:"Hire",fontSize:"150%",icon:"arrow-circle-up",lineHeight:4.5,onClick:function(){function V(){return g("hire")}return V}()})})]})})})]})})});if(c===3)return(0,e.createComponentVNode)(2,o.Window,{width:400,height:550,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{pt:"40%",fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,color:"red",fontSize:"50px",textAlign:"center",children:"Game Over"}),(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"15px",color:"label",textAlign:"center",children:N}),(0,e.createComponentVNode)(2,t.Stack.Item,{color:"blue",fontSize:"20px",textAlign:"center",pt:"10px",children:["FINAL SCORE: ",v-1,"/",p]})]})}),(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Button,{lineHeight:4,fluid:!0,icon:"arrow-left",content:"Main Menu",onClick:function(){function V(){return g("back_to_menu")}return V}()})})]})})})}return b}()},64713:function(A,r,n){"use strict";r.__esModule=!0,r.Newscaster=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(76910),b=n(98595),S=n(3939),I=n(22091),k=["icon","iconSpin","selected","security","onClick","title","children"],g=["name"];function u(B,L){if(B==null)return{};var w={};for(var x in B)if({}.hasOwnProperty.call(B,x)){if(L.includes(x))continue;w[x]=B[x]}return w}var c=128,m=["security","engineering","medical","science","service","supply"],l={security:{title:"Security",fluff_text:"Help keep the crew safe"},engineering:{title:"Engineering",fluff_text:"Ensure the station runs smoothly"},medical:{title:"Medical",fluff_text:"Practice medicine and save lives"},science:{title:"Science",fluff_text:"Develop new technologies"},service:{title:"Service",fluff_text:"Provide amenities to the crew"},supply:{title:"Supply",fluff_text:"Keep the station supplied"}},d=r.Newscaster=function(){function B(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=M.is_security,D=M.is_admin,E=M.is_silent,P=M.is_printing,R=M.screen,j=M.channels,F=M.channel_idx,W=F===void 0?-1:F,z=(0,t.useLocalState)(w,"menuOpen",!1),K=z[0],G=z[1],J=(0,t.useLocalState)(w,"viewingPhoto",""),Q=J[0],ue=J[1],ie=(0,t.useLocalState)(w,"censorMode",!1),pe=ie[0],te=ie[1],q;R===0||R===2?q=(0,e.createComponentVNode)(2,i):R===1&&(q=(0,e.createComponentVNode)(2,h));var ne=j.reduce(function(le,ee){return le+ee.unread},0);return(0,e.createComponentVNode)(2,b.Window,{theme:O&&"security",width:800,height:600,children:[Q?(0,e.createComponentVNode)(2,p):(0,e.createComponentVNode)(2,S.ComplexModal,{maxWidth:window.innerWidth/1.5+"px",maxHeight:window.innerHeight/1.5+"px"}),(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Section,{fill:!0,className:(0,a.classes)(["Newscaster__menu",K&&"Newscaster__menu--open"]),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,s,{icon:"bars",title:"Toggle Menu",onClick:function(){function le(){return G(!K)}return le}()}),(0,e.createComponentVNode)(2,s,{icon:"newspaper",title:"Headlines",selected:R===0,onClick:function(){function le(){return T("headlines")}return le}(),children:ne>0&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--unread",children:ne>=10?"9+":ne})}),(0,e.createComponentVNode)(2,s,{icon:"briefcase",title:"Job Openings",selected:R===1,onClick:function(){function le(){return T("jobs")}return le}()}),(0,e.createComponentVNode)(2,o.Divider)]}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:j.map(function(le){return(0,e.createComponentVNode)(2,s,{icon:le.icon,title:le.name,selected:R===2&&j[W-1]===le,onClick:function(){function ee(){return T("channel",{uid:le.uid})}return ee}(),children:le.unread>0&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--unread",children:le.unread>=10?"9+":le.unread})},le)})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Divider),(!!O||!!D)&&(0,e.createFragment)([(0,e.createComponentVNode)(2,s,{security:!0,icon:"exclamation-circle",title:"Edit Wanted Notice",mb:"0.5rem",onClick:function(){function le(){return(0,S.modalOpen)(w,"wanted_notice")}return le}()}),(0,e.createComponentVNode)(2,s,{security:!0,icon:pe?"minus-square":"minus-square-o",title:"Censor Mode: "+(pe?"On":"Off"),mb:"0.5rem",onClick:function(){function le(){return te(!pe)}return le}()}),(0,e.createComponentVNode)(2,o.Divider)],4),(0,e.createComponentVNode)(2,s,{icon:"pen-alt",title:"New Story",mb:"0.5rem",onClick:function(){function le(){return(0,S.modalOpen)(w,"create_story")}return le}()}),(0,e.createComponentVNode)(2,s,{icon:"plus-circle",title:"New Channel",onClick:function(){function le(){return(0,S.modalOpen)(w,"create_channel")}return le}()}),(0,e.createComponentVNode)(2,o.Divider),(0,e.createComponentVNode)(2,s,{icon:P?"spinner":"print",iconSpin:P,title:P?"Printing...":"Print Newspaper",onClick:function(){function le(){return T("print_newspaper")}return le}()}),(0,e.createComponentVNode)(2,s,{icon:E?"volume-mute":"volume-up",title:"Mute: "+(E?"On":"Off"),onClick:function(){function le(){return T("toggle_mute")}return le}()})]})]})}),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,width:"100%",children:[(0,e.createComponentVNode)(2,I.TemporaryNotice),q]})]})})]})}return B}(),s=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=L.icon,O=M===void 0?"":M,D=L.iconSpin,E=L.selected,P=E===void 0?!1:E,R=L.security,j=R===void 0?!1:R,F=L.onClick,W=L.title,z=L.children,K=u(L,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({className:(0,a.classes)(["Newscaster__menuButton",P&&"Newscaster__menuButton--selected",j&&"Newscaster__menuButton--security"]),onClick:F},K,{children:[P&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--selectedBar"}),(0,e.createComponentVNode)(2,o.Icon,{name:O,spin:D,size:"2"}),(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--title",children:W}),z]})))},i=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=M.screen,D=M.is_admin,E=M.channel_idx,P=M.channel_can_manage,R=M.channels,j=M.stories,F=M.wanted,W=(0,t.useLocalState)(w,"fullStories",[]),z=W[0],K=W[1],G=(0,t.useLocalState)(w,"censorMode",!1),J=G[0],Q=G[1],ue=O===2&&E>-1?R[E-1]:null;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[!!F&&(0,e.createComponentVNode)(2,C,{story:F,wanted:!0}),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:ue?ue.icon:"newspaper",mr:"0.5rem"}),ue?ue.name:"Headlines"],0),children:j.length>0?j.slice().reverse().map(function(ie){return!z.includes(ie.uid)&&ie.body.length+3>c?Object.assign({},ie,{body_short:ie.body.substr(0,c-4)+"..."}):ie}).map(function(ie,pe){return(0,e.createComponentVNode)(2,C,{story:ie},pe)}):(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__emptyNotice",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"times",size:"3"}),(0,e.createVNode)(1,"br"),"There are no stories at this time."]})}),!!ue&&(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,height:"40%",title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"info-circle",mr:"0.5rem"}),(0,e.createTextVNode)("About")],4),buttons:(0,e.createFragment)([J&&(0,e.createComponentVNode)(2,o.Button,{disabled:!!ue.admin&&!D,selected:ue.censored,icon:ue.censored?"comment-slash":"comment",content:ue.censored?"Uncensor Channel":"Censor Channel",mr:"0.5rem",onClick:function(){function ie(){return T("censor_channel",{uid:ue.uid})}return ie}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!P,icon:"cog",content:"Manage",onClick:function(){function ie(){return(0,S.modalOpen)(w,"manage_channel",{uid:ue.uid})}return ie}()})],0),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description",children:ue.description||"N/A"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",children:ue.author||"N/A"}),!!D&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Ckey",children:ue.author_ckey}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Public",children:ue.public?"Yes":"No"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Total Views",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"eye",mr:"0.5rem"}),j.reduce(function(ie,pe){return ie+pe.view_count},0).toLocaleString()]})]})})]})},h=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=M.jobs,D=M.wanted,E=Object.entries(O).reduce(function(P,R){var j=R[0],F=R[1];return P+F.length},0);return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[!!D&&(0,e.createComponentVNode)(2,C,{story:D,wanted:!0}),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"briefcase",mr:"0.5rem"}),(0,e.createTextVNode)("Job Openings")],4),buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",color:"label",children:"Work for a better future at Nanotrasen"}),children:E>0?m.map(function(P){return Object.assign({},l[P],{id:P,jobs:O[P]})}).filter(function(P){return!!P&&P.jobs.length>0}).map(function(P){return(0,e.createComponentVNode)(2,o.Section,{className:(0,a.classes)(["Newscaster__jobCategory","Newscaster__jobCategory--"+P.id]),title:P.title,buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",color:"label",children:P.fluff_text}),children:P.jobs.map(function(R){return(0,e.createComponentVNode)(2,o.Box,{class:(0,a.classes)(["Newscaster__jobOpening",!!R.is_command&&"Newscaster__jobOpening--command"]),children:["\u2022 ",R.title]},R.title)})},P.id)}):(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__emptyNotice",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"times",size:"3"}),(0,e.createVNode)(1,"br"),"There are no openings at this time."]})}),(0,e.createComponentVNode)(2,o.Section,{height:"17%",children:["Interested in serving Nanotrasen?",(0,e.createVNode)(1,"br"),"Sign up for any of the above position now at the ",(0,e.createVNode)(1,"b",null,"Head of Personnel's Office!",16),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Box,{as:"small",color:"label",children:"By signing up for a job at Nanotrasen, you agree to transfer your soul to the loyalty department of the omnipresent and helpful watcher of humanity."})]})]})},C=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=L.story,D=L.wanted,E=D===void 0?!1:D,P=M.is_admin,R=(0,t.useLocalState)(w,"fullStories",[]),j=R[0],F=R[1],W=(0,t.useLocalState)(w,"censorMode",!1),z=W[0],K=W[1];return(0,e.createComponentVNode)(2,o.Section,{className:(0,a.classes)(["Newscaster__story",E&&"Newscaster__story--wanted"]),title:(0,e.createFragment)([E&&(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-circle",mr:"0.5rem"}),O.censor_flags&2&&"[REDACTED]"||O.title||"News from "+O.author],0),buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",children:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:[!E&&z&&(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:(0,e.createComponentVNode)(2,o.Button,{enabled:O.censor_flags&2,icon:O.censor_flags&2?"comment-slash":"comment",content:O.censor_flags&2?"Uncensor":"Censor",mr:"0.5rem",mt:"-0.25rem",onClick:function(){function G(){return T("censor_story",{uid:O.uid})}return G}()})}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",O.author," |\xA0",!!P&&(0,e.createFragment)([(0,e.createTextVNode)("ckey: "),O.author_ckey,(0,e.createTextVNode)(" |\xA0")],0),!E&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"eye"}),(0,e.createTextVNode)(" "),O.view_count.toLocaleString(),(0,e.createTextVNode)(" |\xA0")],0),(0,e.createComponentVNode)(2,o.Icon,{name:"clock"})," ",(0,f.timeAgo)(O.publish_time,M.world_time)]})]})}),children:(0,e.createComponentVNode)(2,o.Box,{children:O.censor_flags&2?"[REDACTED]":(0,e.createFragment)([!!O.has_photo&&(0,e.createComponentVNode)(2,v,{name:"story_photo_"+O.uid+".png",float:"right",ml:"0.5rem"}),(O.body_short||O.body).split("\n").map(function(G,J){return(0,e.createComponentVNode)(2,o.Box,{children:G||(0,e.createVNode)(1,"br")},J)}),O.body_short&&(0,e.createComponentVNode)(2,o.Button,{content:"Read more..",mt:"0.5rem",onClick:function(){function G(){return F([].concat(j,[O.uid]))}return G}()}),(0,e.createComponentVNode)(2,o.Box,{clear:"right"})],0)})})},v=function(L,w){var x=L.name,T=u(L,g),M=(0,t.useLocalState)(w,"viewingPhoto",""),O=M[0],D=M[1];return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({as:"img",className:"Newscaster__photo",src:x,onClick:function(){function E(){return D(x)}return E}()},T)))},p=function(L,w){var x=(0,t.useLocalState)(w,"viewingPhoto",""),T=x[0],M=x[1];return(0,e.createComponentVNode)(2,o.Modal,{className:"Newscaster__photoZoom",children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",src:T}),(0,e.createComponentVNode)(2,o.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){function O(){return M("")}return O}()})]})},N=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=!!L.args.uid&&M.channels.filter(function(oe){return oe.uid===L.args.uid}).pop();if(L.id==="manage_channel"&&!O){(0,S.modalClose)(w);return}var D=L.id==="manage_channel",E=!!L.args.is_admin,P=L.args.scanned_user,R=(0,t.useLocalState)(w,"author",(O==null?void 0:O.author)||P||"Unknown"),j=R[0],F=R[1],W=(0,t.useLocalState)(w,"name",(O==null?void 0:O.name)||""),z=W[0],K=W[1],G=(0,t.useLocalState)(w,"description",(O==null?void 0:O.description)||""),J=G[0],Q=G[1],ue=(0,t.useLocalState)(w,"icon",(O==null?void 0:O.icon)||"newspaper"),ie=ue[0],pe=ue[1],te=(0,t.useLocalState)(w,"isPublic",D?!!(O!=null&&O.public):!1),q=te[0],ne=te[1],le=(0,t.useLocalState)(w,"adminLocked",(O==null?void 0:O.admin)===1||!1),ee=le[0],re=le[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:D?"Manage "+O.name:"Create New Channel",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!E,width:"100%",value:j,onInput:function(){function oe(fe,me){return F(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",placeholder:"50 characters max.",maxLength:"50",value:z,onInput:function(){function oe(fe,me){return K(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description (optional)",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{multiline:!0,width:"100%",placeholder:"128 characters max.",maxLength:"128",value:J,onInput:function(){function oe(fe,me){return Q(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Icon",children:[(0,e.createComponentVNode)(2,o.Input,{disabled:!E,value:ie,width:"35%",mr:"0.5rem",onInput:function(){function oe(fe,me){return pe(me)}return oe}()}),(0,e.createComponentVNode)(2,o.Icon,{name:ie,size:"2",verticalAlign:"middle",mr:"0.5rem"})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Accept Public Stories?",children:(0,e.createComponentVNode)(2,o.Button,{selected:q,icon:q?"toggle-on":"toggle-off",content:q?"Yes":"No",onClick:function(){function oe(){return ne(!q)}return oe}()})}),E&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:ee,icon:ee?"lock":"lock-open",content:ee?"On":"Off",tooltip:"Locking this channel will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function oe(){return re(!ee)}return oe}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:j.trim().length===0||z.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function oe(){(0,S.modalAnswer)(w,L.id,"",{author:j,name:z.substr(0,49),description:J.substr(0,128),icon:ie,public:q?1:0,admin_locked:ee?1:0})}return oe}()})]})},V=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=M.photo,D=M.channels,E=M.channel_idx,P=E===void 0?-1:E,R=!!L.args.is_admin,j=L.args.scanned_user,F=D.slice().sort(function(oe,fe){if(P<0)return 0;var me=D[P-1];if(me.uid===oe.uid)return-1;if(me.uid===fe.uid)return 1}).filter(function(oe){return R||!oe.frozen&&(oe.author===j||!!oe.public)}),W=(0,t.useLocalState)(w,"author",j||"Unknown"),z=W[0],K=W[1],G=(0,t.useLocalState)(w,"channel",F.length>0?F[0].name:""),J=G[0],Q=G[1],ue=(0,t.useLocalState)(w,"title",""),ie=ue[0],pe=ue[1],te=(0,t.useLocalState)(w,"body",""),q=te[0],ne=te[1],le=(0,t.useLocalState)(w,"adminLocked",!1),ee=le[0],re=le[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:"Create New Story",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!R,width:"100%",value:z,onInput:function(){function oe(fe,me){return K(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Channel",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Dropdown,{selected:J,options:F.map(function(oe){return oe.name}),mb:"0",width:"100%",onSelected:function(){function oe(fe){return Q(fe)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Divider),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",placeholder:"128 characters max.",maxLength:"128",value:ie,onInput:function(){function oe(fe,me){return pe(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Story Text",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{fluid:!0,multiline:!0,placeholder:"1024 characters max.",maxLength:"1024",rows:"8",width:"100%",value:q,onInput:function(){function oe(fe,me){return ne(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{icon:"image",selected:O,content:O?"Eject: "+O.name:"Insert Photo",tooltip:!O&&"Attach a photo to this story by holding the photograph in your hand.",onClick:function(){function oe(){return T(O?"eject_photo":"attach_photo")}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Preview",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Section,{noTopPadding:!0,title:ie,maxHeight:"13.5rem",overflow:"auto",children:(0,e.createComponentVNode)(2,o.Box,{mt:"0.5rem",children:[!!O&&(0,e.createComponentVNode)(2,v,{name:"inserted_photo_"+O.uid+".png",float:"right"}),q.split("\n").map(function(oe,fe){return(0,e.createComponentVNode)(2,o.Box,{children:oe||(0,e.createVNode)(1,"br")},fe)}),(0,e.createComponentVNode)(2,o.Box,{clear:"right"})]})})}),R&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:ee,icon:ee?"lock":"lock-open",content:ee?"On":"Off",tooltip:"Locking this story will make it censorable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function oe(){return re(!ee)}return oe}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:z.trim().length===0||J.trim().length===0||ie.trim().length===0||q.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function oe(){(0,S.modalAnswer)(w,"create_story","",{author:z,channel:J,title:ie.substr(0,127),body:q.substr(0,1023),admin_locked:ee?1:0})}return oe}()})]})},y=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=M.photo,D=M.wanted,E=!!L.args.is_admin,P=L.args.scanned_user,R=(0,t.useLocalState)(w,"author",(D==null?void 0:D.author)||P||"Unknown"),j=R[0],F=R[1],W=(0,t.useLocalState)(w,"name",(D==null?void 0:D.title.substr(8))||""),z=W[0],K=W[1],G=(0,t.useLocalState)(w,"description",(D==null?void 0:D.body)||""),J=G[0],Q=G[1],ue=(0,t.useLocalState)(w,"adminLocked",(D==null?void 0:D.admin_locked)===1||!1),ie=ue[0],pe=ue[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:"Manage Wanted Notice",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Authority",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!E,width:"100%",value:j,onInput:function(){function te(q,ne){return F(ne)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",value:z,maxLength:"128",onInput:function(){function te(q,ne){return K(ne)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{multiline:!0,width:"100%",value:J,maxLength:"512",rows:"4",onInput:function(){function te(q,ne){return Q(ne)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:[(0,e.createComponentVNode)(2,o.Button,{icon:"image",selected:O,content:O?"Eject: "+O.name:"Insert Photo",tooltip:!O&&"Attach a photo to this wanted notice by holding the photograph in your hand.",tooltipPosition:"top",onClick:function(){function te(){return T(O?"eject_photo":"attach_photo")}return te}()}),!!O&&(0,e.createComponentVNode)(2,v,{name:"inserted_photo_"+O.uid+".png",float:"right"})]}),E&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:ie,icon:ie?"lock":"lock-open",content:ie?"On":"Off",tooltip:"Locking this wanted notice will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function te(){return pe(!ie)}return te}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:!D,icon:"eraser",color:"danger",content:"Clear",position:"absolute",right:"7.25rem",bottom:"-0.75rem",onClick:function(){function te(){T("clear_wanted_notice"),(0,S.modalClose)(w)}return te}()}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:j.trim().length===0||z.trim().length===0||J.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function te(){(0,S.modalAnswer)(w,L.id,"",{author:j,name:z.substr(0,127),description:J.substr(0,511),admin_locked:ie?1:0})}return te}()})]})};(0,S.modalRegisterBodyOverride)("create_channel",N),(0,S.modalRegisterBodyOverride)("manage_channel",N),(0,S.modalRegisterBodyOverride)("create_story",V),(0,S.modalRegisterBodyOverride)("wanted_notice",y)},48286:function(A,r,n){"use strict";r.__esModule=!0,r.Noticeboard=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=r.Noticeboard=function(){function S(I,k){var g=(0,t.useBackend)(k),u=g.act,c=g.data,m=c.papers;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:300,theme:"noticeboard",children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:m.map(function(l){return(0,e.createComponentVNode)(2,o.Stack.Item,{align:"center",width:"22.45%",height:"85%",onClick:function(){function d(){return u("interact",{paper:l.ref})}return d}(),onContextMenu:function(){function d(s){s.preventDefault(),u("showFull",{paper:l.ref})}return d}(),children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,fontSize:.75,title:l.name,children:(0,a.decodeHtmlEntities)(l.contents)})},l.ref)})})})})}return S}()},41166:function(A,r,n){"use strict";r.__esModule=!0,r.NuclearBomb=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.NuclearBomb=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data;return u.extended?(0,e.createComponentVNode)(2,o.Window,{width:350,height:290,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auth Disk",children:(0,e.createComponentVNode)(2,t.Button,{icon:u.authdisk?"eject":"id-card",selected:u.authdisk,content:u.diskname?u.diskname:"-----",tooltip:u.authdisk?"Eject Disk":"Insert Disk",onClick:function(){function c(){return g("auth")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auth Code",children:(0,e.createComponentVNode)(2,t.Button,{icon:"key",disabled:!u.authdisk,selected:u.authcode,content:u.codemsg,onClick:function(){function c(){return g("code")}return c}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Arming & Disarming",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Bolted to floor",children:(0,e.createComponentVNode)(2,t.Button,{icon:u.anchored?"check":"times",selected:u.anchored,disabled:!u.authdisk,content:u.anchored?"YES":"NO",onClick:function(){function c(){return g("toggle_anchor")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Time Left",children:(0,e.createComponentVNode)(2,t.Button,{icon:"stopwatch",content:u.time,disabled:!u.authfull,tooltip:"Set Timer",onClick:function(){function c(){return g("set_time")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety",children:(0,e.createComponentVNode)(2,t.Button,{icon:u.safety?"check":"times",selected:u.safety,disabled:!u.authfull,content:u.safety?"ON":"OFF",tooltip:u.safety?"Disable Safety":"Enable Safety",onClick:function(){function c(){return g("toggle_safety")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Arm/Disarm",children:(0,e.createComponentVNode)(2,t.Button,{icon:(u.timer,"bomb"),disabled:u.safety||!u.authfull,color:"red",content:u.timer?"DISARM THE NUKE":"ARM THE NUKE",onClick:function(){function c(){return g("toggle_armed")}return c}()})})]})})]})}):(0,e.createComponentVNode)(2,o.Window,{width:350,height:115,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Deployment",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"exclamation-triangle",content:"Deploy Nuclear Device (will bolt device to floor)",onClick:function(){function c(){return g("deploy")}return c}()})})})})}return b}()},52416:function(A,r,n){"use strict";r.__esModule=!0,r.NumberInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(92986),f=n(72253),b=n(36036),S=n(98595),I=r.NumberInputModal=function(){function g(u,c){var m=(0,f.useBackend)(c),l=m.act,d=m.data,s=d.init_value,i=d.large_buttons,h=d.message,C=h===void 0?"":h,v=d.timeout,p=d.title,N=(0,f.useLocalState)(c,"input",s),V=N[0],y=N[1],B=function(){function x(T){T!==V&&y(T)}return x}(),L=function(){function x(T){T!==V&&y(T)}return x}(),w=140+Math.max(Math.ceil(C.length/3),C.length>0&&i?5:0);return(0,e.createComponentVNode)(2,S.Window,{title:p,width:270,height:w,children:[v&&(0,e.createComponentVNode)(2,a.Loader,{value:v}),(0,e.createComponentVNode)(2,S.Window.Content,{onKeyDown:function(){function x(T){var M=window.event?T.which:T.keyCode;M===o.KEY_ENTER&&l("submit",{entry:V}),M===o.KEY_ESCAPE&&l("cancel")}return x}(),children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Box,{color:"label",children:C})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,k,{input:V,onClick:L,onChange:B})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,t.InputButtons,{input:V})})]})})})]})}return g}(),k=function(u,c){var m=(0,f.useBackend)(c),l=m.act,d=m.data,s=d.min_value,i=d.max_value,h=d.init_value,C=d.round_value,v=u.input,p=u.onClick,N=u.onChange,V=Math.round(v!==s?Math.max(v/2,s):i/2),y=v===s&&s>0||v===1;return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===s,icon:"angle-double-left",onClick:function(){function B(){return p(s)}return B}(),tooltip:v===s?"Min":"Min ("+s+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.RestrictedInput,{autoFocus:!0,autoSelect:!0,fluid:!0,allowFloats:!C,minValue:s,maxValue:i,onChange:function(){function B(L,w){return N(w)}return B}(),onEnter:function(){function B(L,w){return l("submit",{entry:w})}return B}(),value:v})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===i,icon:"angle-double-right",onClick:function(){function B(){return p(i)}return B}(),tooltip:v===i?"Max":"Max ("+i+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:y,icon:"divide",onClick:function(){function B(){return p(V)}return B}(),tooltip:y?"Split":"Split ("+V+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===h,icon:"redo",onClick:function(){function B(){return p(h)}return B}(),tooltip:h?"Reset ("+h+")":"Reset"})})]})}},1218:function(A,r,n){"use strict";r.__esModule=!0,r.OperatingComputer=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(98595),f=n(36036),b=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],S=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],I={average:[.25,.5],bad:[.5,1/0]},k=["bad","average","average","good","average","average","bad"],g=r.OperatingComputer=function(){function l(d,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=C.hasOccupant,p=C.choice,N;return p?N=(0,e.createComponentVNode)(2,m):N=v?(0,e.createComponentVNode)(2,u):(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,o.Window,{width:650,height:455,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{selected:!p,icon:"user",onClick:function(){function V(){return h("choiceOff")}return V}(),children:"Patient"}),(0,e.createComponentVNode)(2,f.Tabs.Tab,{selected:!!p,icon:"cog",onClick:function(){function V(){return h("choiceOn")}return V}(),children:"Options"})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,children:N})})]})})})}return l}(),u=function(d,s){var i=(0,t.useBackend)(s),h=i.data,C=h.occupant;return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,title:"Patient",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Name",children:C.name}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Status",color:b[C.stat][0],children:b[C.stat][1]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:C.maxHealth,value:C.health/C.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),S.map(function(v,p){return(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:v[0]+" Damage",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:"100",value:C[v[1]]/100,ranges:I,children:(0,a.round)(C[v[1]])},p)},p)}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:C.maxTemp,value:C.bodyTemperature/C.maxTemp,color:k[C.temperatureSuitability+3],children:[(0,a.round)(C.btCelsius),"\xB0C, ",(0,a.round)(C.btFaren),"\xB0F"]})}),!!C.hasBlood&&(0,e.createFragment)([(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Blood Level",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:C.bloodMax,value:C.bloodLevel/C.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[C.bloodPercent,"%, ",C.bloodLevel,"cl"]})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Pulse",children:[C.pulse," BPM"]})],4)]})})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Current Procedure",level:"2",children:C.inSurgery?(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Procedure",children:C.surgeryName}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Next Step",children:C.stepName})]}):(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No procedure ongoing."})})})]})},c=function(){return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No patient detected."]})})},m=function(d,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=C.verbose,p=C.health,N=C.healthAlarm,V=C.oxy,y=C.oxyAlarm,B=C.crit;return(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Loudspeaker",children:(0,e.createComponentVNode)(2,f.Button,{selected:v,icon:v?"toggle-on":"toggle-off",content:v?"On":"Off",onClick:function(){function L(){return h(v?"verboseOff":"verboseOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health Announcer",children:(0,e.createComponentVNode)(2,f.Button,{selected:p,icon:p?"toggle-on":"toggle-off",content:p?"On":"Off",onClick:function(){function L(){return h(p?"healthOff":"healthOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health Announcer Threshold",children:(0,e.createComponentVNode)(2,f.Knob,{bipolar:!0,minValue:-100,maxValue:100,value:N,stepPixelSize:5,ml:"0",onChange:function(){function L(w,x){return h("health_adj",{new:x})}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Oxygen Alarm",children:(0,e.createComponentVNode)(2,f.Button,{selected:V,icon:V?"toggle-on":"toggle-off",content:V?"On":"Off",onClick:function(){function L(){return h(V?"oxyOff":"oxyOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Oxygen Alarm Threshold",children:(0,e.createComponentVNode)(2,f.Knob,{bipolar:!0,minValue:-100,maxValue:100,value:y,stepPixelSize:5,ml:"0",onChange:function(){function L(w,x){return h("oxy_adj",{new:x})}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Critical Alert",children:(0,e.createComponentVNode)(2,f.Button,{selected:B,icon:B?"toggle-on":"toggle-off",content:B?"On":"Off",onClick:function(){function L(){return h(B?"critOff":"critOn")}return L}()})})]})}},46892:function(A,r,n){"use strict";r.__esModule=!0,r.Orbit=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(35840);function S(i,h){var C=typeof Symbol!="undefined"&&i[Symbol.iterator]||i["@@iterator"];if(C)return(C=C.call(i)).next.bind(C);if(Array.isArray(i)||(C=I(i))||h&&i&&typeof i.length=="number"){C&&(i=C);var v=0;return function(){return v>=i.length?{done:!0}:{done:!1,value:i[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function I(i,h){if(i){if(typeof i=="string")return k(i,h);var C={}.toString.call(i).slice(8,-1);return C==="Object"&&i.constructor&&(C=i.constructor.name),C==="Map"||C==="Set"?Array.from(i):C==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(C)?k(i,h):void 0}}function k(i,h){(h==null||h>i.length)&&(h=i.length);for(var C=0,v=Array(h);CC},m=function(h,C){var v=h.name,p=C.name;if(!v||!p)return 0;var N=v.match(g),V=p.match(g);if(N&&V&&v.replace(g,"")===p.replace(g,"")){var y=parseInt(N[1],10),B=parseInt(V[1],10);return y-B}return c(v,p)},l=function(h,C){var v=h.searchText,p=h.source,N=h.title,V=h.color,y=h.sorted,B=p.filter(u(v));return y&&B.sort(m),p.length>0&&(0,e.createComponentVNode)(2,o.Section,{title:N+" - ("+p.length+")",children:B.map(function(L){return(0,e.createComponentVNode)(2,d,{thing:L,color:V},L.name)})})},d=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=h.color,V=h.thing;return(0,e.createComponentVNode)(2,o.Button,{color:N,tooltip:V.assigned_role?(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",mr:"0.5em",className:(0,b.classes)(["job_icons16x16",V.assigned_role_sprite])})," ",V.assigned_role]}):"",tooltipPosition:"bottom",onClick:function(){function y(){return p("orbit",{ref:V.ref})}return y}(),children:[V.name,V.orbiters&&(0,e.createComponentVNode)(2,o.Box,{inline:!0,ml:1,children:["(",V.orbiters," ",(0,e.createComponentVNode)(2,o.Icon,{name:"eye"}),")"]})]})},s=r.Orbit=function(){function i(h,C){for(var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.alive,y=N.antagonists,B=N.highlights,L=N.response_teams,w=N.tourist,x=N.auto_observe,T=N.dead,M=N.ssd,O=N.ghosts,D=N.misc,E=N.npcs,P=(0,t.useLocalState)(C,"searchText",""),R=P[0],j=P[1],F={},W=S(y),z;!(z=W()).done;){var K=z.value;F[K.antag]===void 0&&(F[K.antag]=[]),F[K.antag].push(K)}var G=Object.entries(F);G.sort(function(Q,ue){return c(Q[0],ue[0])});var J=function(){function Q(ue){for(var ie=0,pe=[G.map(function(ne){var le=ne[0],ee=ne[1];return ee}),w,B,V,O,M,T,E,D];ie0&&(0,e.createComponentVNode)(2,o.Section,{title:"Antagonists",children:G.map(function(Q){var ue=Q[0],ie=Q[1];return(0,e.createComponentVNode)(2,o.Section,{title:ue+" - ("+ie.length+")",level:2,children:ie.filter(u(R)).sort(m).map(function(pe){return(0,e.createComponentVNode)(2,d,{color:"bad",thing:pe},pe.name)})},ue)})}),B.length>0&&(0,e.createComponentVNode)(2,l,{title:"Highlights",source:B,searchText:R,color:"teal"}),(0,e.createComponentVNode)(2,l,{title:"Response Teams",source:L,searchText:R,color:"purple"}),(0,e.createComponentVNode)(2,l,{title:"Tourists",source:w,searchText:R,color:"violet"}),(0,e.createComponentVNode)(2,l,{title:"Alive",source:V,searchText:R,color:"good"}),(0,e.createComponentVNode)(2,l,{title:"Ghosts",source:O,searchText:R,color:"grey"}),(0,e.createComponentVNode)(2,l,{title:"SSD",source:M,searchText:R,color:"grey"}),(0,e.createComponentVNode)(2,l,{title:"Dead",source:T,searchText:R,sorted:!1}),(0,e.createComponentVNode)(2,l,{title:"NPCs",source:E,searchText:R,sorted:!1}),(0,e.createComponentVNode)(2,l,{title:"Misc",source:D,searchText:R,sorted:!1})]})})}return i}()},15421:function(A,r,n){"use strict";r.__esModule=!0,r.OreRedemption=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=n(9394);function S(i){if(i==null)throw new TypeError("Cannot destructure "+i)}var I=(0,b.createLogger)("OreRedemption"),k=function(h){return h.toLocaleString("en-US")+" pts"},g=r.OreRedemption=function(){function i(h,C){return(0,e.createComponentVNode)(2,f.Window,{width:490,height:750,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,u,{height:"100%"})}),(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,m)]})})})}return i}(),u=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.id,y=N.points,B=N.disk,L=Object.assign({},(S(h),h));return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({},L,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"average",textAlign:"center",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"This machine only accepts ore. Gibtonite is not accepted."]}),(0,e.createComponentVNode)(2,o.Divider),(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Unclaimed Points",color:y>0?"good":"grey",bold:y>0&&"good",children:k(y)})}),(0,e.createComponentVNode)(2,o.Divider),B?(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Design disk",children:[(0,e.createComponentVNode)(2,o.Button,{selected:!0,bold:!0,icon:"eject",content:B.name,tooltip:"Ejects the design disk.",onClick:function(){function w(){return p("eject_disk")}return w}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!B.design||!B.compatible,icon:"upload",content:"Download",tooltip:"Downloads the design on the disk into the machine.",onClick:function(){function w(){return p("download")}return w}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Stored design",children:(0,e.createComponentVNode)(2,o.Box,{color:B.design&&(B.compatible?"good":"bad"),children:B.design||"N/A"})})]}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No design disk inserted."})]})))},c=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.sheets,y=Object.assign({},(S(h),h));return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,height:"20%",children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,className:"OreRedemption__Ores",p:"0"},y,{children:[(0,e.createComponentVNode)(2,l,{title:"Sheets",columns:[["Available","25%"],["Ore Value","15%"],["Smelt","20%"]]}),V.map(function(B){return(0,e.createComponentVNode)(2,d,{ore:B},B.id)})]})))})},m=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.alloys,y=Object.assign({},(S(h),h));return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,className:"OreRedemption__Ores",p:"0"},y,{children:[(0,e.createComponentVNode)(2,l,{title:"Alloys",columns:[["Recipe","50%"],["Available","11%"],["Smelt","20%"]]}),V.map(function(B){return(0,e.createComponentVNode)(2,s,{ore:B},B.id)})]})))})},l=function(h,C){var v;return(0,e.createComponentVNode)(2,o.Box,{className:"OreHeader",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:h.title}),(v=h.columns)==null?void 0:v.map(function(p){return(0,e.createComponentVNode)(2,o.Stack.Item,{basis:p[1],textAlign:"center",color:"label",bold:!0,children:p[0]},p)})]})})},d=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=h.ore;if(!(N.value&&N.amount<=0&&!(["metal","glass"].indexOf(N.id)>-1)))return(0,e.createComponentVNode)(2,o.Box,{className:"SheetLine",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"45%",align:"middle",children:(0,e.createComponentVNode)(2,o.Stack,{align:"center",children:[(0,e.createComponentVNode)(2,o.Stack.Item,{className:(0,a.classes)(["materials32x32",N.id])}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:N.name})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",color:N.amount>=1?"good":"gray",bold:N.amount>=1,align:"center",children:N.amount.toLocaleString("en-US")}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",children:N.value}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"40%",value:0,minValue:0,maxValue:Math.min(N.amount,50),stepPixelSize:6,onChange:function(){function V(y,B){return p(N.value?"sheet":"alloy",{id:N.id,amount:B})}return V}()})})]})})},s=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=h.ore;return(0,e.createComponentVNode)(2,o.Box,{className:"SheetLine",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"7%",align:"middle",children:(0,e.createComponentVNode)(2,o.Box,{className:(0,a.classes)(["alloys32x32",N.id])})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"30%",textAlign:"middle",align:"center",children:N.name}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"35%",textAlign:"middle",color:N.amount>=1?"good":"gray",align:"center",children:N.description}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"10%",textAlign:"center",color:N.amount>=1?"good":"gray",bold:N.amount>=1,align:"center",children:N.amount.toLocaleString("en-US")}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"40%",value:0,minValue:0,maxValue:Math.min(N.amount,50),stepPixelSize:6,onChange:function(){function V(y,B){return p(N.value?"sheet":"alloy",{id:N.id,amount:B})}return V}()})})]})})}},52754:function(A,r,n){"use strict";r.__esModule=!0,r.PAI=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(71253),b=n(70752),S=function(g){var u;try{u=b("./"+g+".js")}catch(m){if(m.code==="MODULE_NOT_FOUND")return(0,f.routingError)("notFound",g);throw m}var c=u[g];return c||(0,f.routingError)("missingExport",g)},I=r.PAI=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.app_template,s=l.app_icon,i=l.app_title,h=S(d);return(0,e.createComponentVNode)(2,o.Window,{width:600,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{p:1,fill:!0,scrollable:!0,title:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:s,mr:1}),i,d!=="pai_main_menu"&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{ml:2,mb:0,content:"Back",icon:"arrow-left",onClick:function(){function C(){return m("Back")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Home",icon:"arrow-up",onClick:function(){function C(){return m("MASTER_back")}return C}()})],4)]}),children:(0,e.createComponentVNode)(2,h)})})})})})}return k}()},85175:function(A,r,n){"use strict";r.__esModule=!0,r.PDA=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(71253),b=n(59395),S=function(c){var m;try{m=b("./"+c+".js")}catch(d){if(d.code==="MODULE_NOT_FOUND")return(0,f.routingError)("notFound",c);throw d}var l=m[c];return l||(0,f.routingError)("missingExport",c)},I=r.PDA=function(){function u(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.app,h=s.owner;if(!h)return(0,e.createComponentVNode)(2,o.Window,{width:350,height:105,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Error",children:"No user data found. Please swipe an ID card."})})});var C=S(i.template);return(0,e.createComponentVNode)(2,o.Window,{width:600,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,k)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,p:1,pb:0,title:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:i.icon,mr:1}),i.name]}),children:(0,e.createComponentVNode)(2,C)})}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:7.5,children:(0,e.createComponentVNode)(2,g)})]})})})}return u}(),k=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.idInserted,h=s.idLink,C=s.stationTime,v=s.cartridge_name;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{ml:.5,children:(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",color:"transparent",onClick:function(){function p(){return d("Authenticate")}return p}(),content:i?h:"No ID Inserted"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"sd-card",color:"transparent",onClick:function(){function p(){return d("Eject")}return p}(),content:v?["Eject "+v]:"No Cartridge Inserted"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"right",bold:!0,mr:1,mt:.5,children:C})]})},g=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.app;return(0,e.createComponentVNode)(2,t.Box,{height:"45px",className:"PDA__footer",backgroundColor:"#1b1b1b",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[!!i.has_back&&(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"33%",mr:-.5,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:i.has_back?"white":"disabled",icon:"arrow-alt-circle-left-o",onClick:function(){function h(){return d("Back")}return h}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{basis:i.has_back?"33%":"100%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:i.is_home?"disabled":"white",icon:"home",onClick:function(){function h(){d("Home")}return h}()})})]})})}},68654:function(A,r,n){"use strict";r.__esModule=!0,r.Pacman=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49968),b=r.Pacman=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.active,l=c.anchored,d=c.broken,s=c.emagged,i=c.fuel_type,h=c.fuel_usage,C=c.fuel_stored,v=c.fuel_cap,p=c.is_ai,N=c.tmp_current,V=c.tmp_max,y=c.tmp_overheat,B=c.output_max,L=c.power_gen,w=c.output_set,x=c.has_fuel,T=C/v,M=N/V,O=w*L,D=Math.round(C/h*2),E=Math.round(D/60),P=D>120?E+" minutes":D+" seconds";return(0,e.createComponentVNode)(2,o.Window,{width:500,height:225,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(d||!l)&&(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:[!!d&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"The generator is malfunctioning!"}),!d&&!l&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"The generator needs to be anchored to the floor with a wrench."})]}),!d&&!!l&&(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:m?"power-off":"times",content:m?"On":"Off",tooltip:"Toggles the generator on/off. Requires fuel.",tooltipPosition:"left",disabled:!x,selected:m,onClick:function(){function R(){return u("toggle_power")}return R}()}),children:(0,e.createComponentVNode)(2,t.Flex,{direction:"row",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",className:"ml-1",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power setting",children:[(0,e.createComponentVNode)(2,t.NumberInput,{value:w,minValue:1,maxValue:B*(s?2.5:1),step:1,className:"mt-1",onDrag:function(){function R(j,F){return u("change_power",{change_power:F})}return R}()}),"(",(0,f.formatPower)(O),")"]})})}),(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:M,ranges:{green:[-1/0,.33],orange:[.33,.66],red:[.66,1/0]},children:[N," \u2103"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[y>50&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"CRITICAL OVERHEAT!"}),y>20&&y<=50&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"WARNING: Overheating!"}),y>1&&y<=20&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Temperature High"}),y===0&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Optimal"})]})]})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Fuel",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject Fuel",tooltip:"Ejects fuel. Generator needs to be offline.",tooltipPosition:"left",disabled:m||p||!x,onClick:function(){function R(){return u("eject_fuel")}return R}()}),children:(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Type",children:i}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel level",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:T,ranges:{red:[-1/0,.33],orange:[.33,.66],green:[.66,1/0]},children:[Math.round(C/1e3)," dm\xB3"]})})]})}),(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel usage",children:[h/1e3," dm\xB3/s"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel depletion",children:[!!x&&(h?P:"N/A"),!x&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Out of fuel"})]})]})})]})})],4)]})})}return S}()},1701:function(A,r,n){"use strict";r.__esModule=!0,r.PanDEMIC=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PanDEMIC=function(){function l(d,s){var i=(0,a.useBackend)(s),h=i.data,C=h.beakerLoaded,v=h.beakerContainsBlood,p=h.beakerContainsVirus,N=h.resistances,V=N===void 0?[]:N,y;return C?v?v&&!p&&(y=(0,e.createFragment)([(0,e.createTextVNode)("No disease detected in provided blood sample.")],4)):y=(0,e.createFragment)([(0,e.createTextVNode)("No blood sample found in the loaded container.")],4):y=(0,e.createFragment)([(0,e.createTextVNode)("No container loaded.")],4),(0,e.createComponentVNode)(2,o.Window,{width:575,height:510,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[y&&!p?(0,e.createComponentVNode)(2,t.Section,{title:"Container Information",buttons:(0,e.createComponentVNode)(2,b,{fill:!0,vertical:!0}),children:(0,e.createComponentVNode)(2,t.NoticeBox,{children:y})}):(0,e.createComponentVNode)(2,k),(V==null?void 0:V.length)>0&&(0,e.createComponentVNode)(2,m,{align:"bottom"})]})})})}return l}(),b=function(d,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.beakerLoaded;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!v,onClick:function(){function p(){return h("eject_beaker")}return p}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash-alt",confirmIcon:"eraser",content:"Destroy",confirmContent:"Destroy",disabled:!v,onClick:function(){function p(){return h("destroy_eject_beaker")}return p}()})],4)},S=function(d,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.beakerContainsVirus,p=d.strain,N=p.commonName,V=p.description,y=p.diseaseAgent,B=p.bloodDNA,L=p.bloodType,w=p.possibleTreatments,x=p.transmissionRoute,T=p.isAdvanced,M=(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood DNA",children:B?(0,e.createVNode)(1,"span",null,B,0,{style:{"font-family":"'Courier New', monospace"}}):"Undetectable"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood Type",children:(0,e.createVNode)(1,"div",null,null,1,{dangerouslySetInnerHTML:{__html:L!=null?L:"Undetectable"}})})],4);if(!v)return(0,e.createComponentVNode)(2,t.LabeledList,{children:M});var O;return T&&(N!=null&&N!=="Unknown"?O=(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print Release Forms",onClick:function(){function D(){return h("print_release_forms",{strain_index:d.strainIndex})}return D}(),style:{"margin-left":"auto"}}):O=(0,e.createComponentVNode)(2,t.Button,{icon:"pen",content:"Name Disease",onClick:function(){function D(){return h("name_strain",{strain_index:d.strainIndex})}return D}(),style:{"margin-left":"auto"}})),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Common Name",className:"common-name-label",children:(0,e.createComponentVNode)(2,t.Stack,{horizontal:!0,align:"center",children:[N!=null?N:"Unknown",O]})}),V&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:V}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Disease Agent",children:y}),M,(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Spread Vector",children:x!=null?x:"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Possible Cures",children:w!=null?w:"None"})]})},I=function(d,s){var i,h=(0,a.useBackend)(s),C=h.act,v=h.data,p=!!v.synthesisCooldown,N=(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:p?"spinner":"clone",iconSpin:p,content:"Clone",disabled:p,onClick:function(){function V(){return C("clone_strain",{strain_index:d.strainIndex})}return V}()}),d.sectionButtons],0);return(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:(i=d.sectionTitle)!=null?i:"Strain Information",buttons:N,children:(0,e.createComponentVNode)(2,S,{strain:d.strain,strainIndex:d.strainIndex})})})},k=function(d,s){var i,h=(0,a.useBackend)(s),C=h.act,v=h.data,p=v.selectedStrainIndex,N=v.strains,V=N[p-1];if(N.length===0)return(0,e.createComponentVNode)(2,t.Section,{title:"Container Information",buttons:(0,e.createComponentVNode)(2,b),children:(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No disease detected in provided blood sample."})});if(N.length===1){var y;return(0,e.createFragment)([(0,e.createComponentVNode)(2,I,{strain:N[0],strainIndex:1,sectionButtons:(0,e.createComponentVNode)(2,b)}),((y=N[0].symptoms)==null?void 0:y.length)>0&&(0,e.createComponentVNode)(2,u,{strain:N[0]})],0)}var B=(0,e.createComponentVNode)(2,b);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Culture Information",fill:!0,buttons:B,children:(0,e.createComponentVNode)(2,t.Flex,{direction:"column",style:{height:"100%"},children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{children:N.map(function(L,w){var x;return(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"virus",selected:p-1===w,onClick:function(){function T(){return C("switch_strain",{strain_index:w+1})}return T}(),children:(x=L.commonName)!=null?x:"Unknown"},w)})})}),(0,e.createComponentVNode)(2,I,{strain:V,strainIndex:p}),((i=V.symptoms)==null?void 0:i.length)>0&&(0,e.createComponentVNode)(2,u,{className:"remove-section-bottom-padding",strain:V})]})})})},g=function(d){return d.reduce(function(s,i){return s+i},0)},u=function(d){var s=d.strain.symptoms;return(0,e.createComponentVNode)(2,t.Flex.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Infection Symptoms",fill:!0,className:d.className,children:(0,e.createComponentVNode)(2,t.Table,{className:"symptoms-table",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Stealth"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Resistance"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Stage Speed"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Transmissibility"})]}),s.map(function(i,h){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.stealth}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.resistance}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.stageSpeed}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.transmissibility})]},h)}),(0,e.createComponentVNode)(2,t.Table.Row,{className:"table-spacer"}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{style:{"font-weight":"bold"},children:"Total"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(i){return i.stealth}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(i){return i.resistance}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(i){return i.stageSpeed}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(i){return i.transmissibility}))})]})]})})})},c=["flask","vial","eye-dropper"],m=function(d,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.synthesisCooldown,p=C.beakerContainsVirus,N=C.resistances;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Antibodies",fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{horizontal:!0,wrap:!0,children:N.map(function(V,y){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:c[y%c.length],disabled:!!v,onClick:function(){function B(){return h("clone_vaccine",{resistance_index:y+1})}return B}(),mr:"0.5em"}),V]},y)})})})})}},67921:function(A,r,n){"use strict";r.__esModule=!0,r.ParticleAccelerator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(25328),f=n(79646),b=n(36352),S=n(98595),I=n(35840),k=n(38307),g=function(d){switch(d){case 1:return"north";case 2:return"south";case 4:return"east";case 8:return"west";case 5:return"northeast";case 6:return"southeast";case 9:return"northwest";case 10:return"southwest"}return""},u=r.ParticleAccelerator=function(){function l(d,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.assembled,p=C.power,N=C.strength,V=C.max_strength,y=C.icon,B=C.layout_1,L=C.layout_2,w=C.layout_3,x=C.orientation;return(0,e.createComponentVNode)(2,S.Window,{width:395,height:v?160:x==="north"||x==="south"?540:465,children:(0,e.createComponentVNode)(2,S.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Control Panel",buttons:(0,e.createComponentVNode)(2,t.Button,{dmIcon:"sync",content:"Connect",onClick:function(){function T(){return h("scan")}return T}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",mb:"5px",children:(0,e.createComponentVNode)(2,t.Box,{color:v?"good":"bad",children:v?"Operational":"Error: Verify Configuration"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:p?"power-off":"times",content:p?"On":"Off",selected:p,disabled:!v,onClick:function(){function T(){return h("power")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Strength",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:!v||N===0,onClick:function(){function T(){return h("remove_strength")}return T}(),mr:"4px"}),N,(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:!v||N===V,onClick:function(){function T(){return h("add_strength")}return T}(),ml:"4px"})]})]})}),v?"":(0,e.createComponentVNode)(2,t.Section,{title:x?"EM Acceleration Chamber Orientation: "+(0,o.capitalize)(x):"Place EM Acceleration Chamber Next To Console",children:x===0?"":x==="north"||x==="south"?(0,e.createComponentVNode)(2,m):(0,e.createComponentVNode)(2,c)})]})})}return l}(),c=function(d,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.assembled,p=C.power,N=C.strength,V=C.max_strength,y=C.icon,B=C.layout_1,L=C.layout_2,w=C.layout_3,x=C.orientation;return(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:(x==="east"?B:w).slice().map(function(T){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})}),(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:L.slice().map(function(T){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})}),(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:(x==="east"?w:B).slice().map(function(T){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})})]})},m=function(d,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.assembled,p=C.power,N=C.strength,V=C.max_strength,y=C.icon,B=C.layout_1,L=C.layout_2,w=C.layout_3,x=C.orientation;return(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,f.GridColumn,{width:"40px",children:(x==="north"?B:w).slice().map(function(T){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})}),(0,e.createComponentVNode)(2,f.GridColumn,{children:L.slice().map(function(T){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})}),(0,e.createComponentVNode)(2,f.GridColumn,{width:"40px",children:(x==="north"?w:B).slice().map(function(T){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,tooltip:T.status,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})})]})}},71432:function(A,r,n){"use strict";r.__esModule=!0,r.PdaPainter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PdaPainter=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.data,l=m.has_pda;return(0,e.createComponentVNode)(2,o.Window,{width:510,height:505,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:l?(0,e.createComponentVNode)(2,S):(0,e.createComponentVNode)(2,b)})})}return k}(),b=function(g,u){var c=(0,a.useBackend)(u),m=c.act;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"silver",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"download",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{width:"160px",textAlign:"center",content:"Insert PDA",onClick:function(){function l(){return m("insert_pda")}return l}()})]})})})},S=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.pda_colors;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,horizontal:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,I)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Table,{className:"PdaPainter__list",children:Object.keys(d).map(function(s){return(0,e.createComponentVNode)(2,t.Table.Row,{onClick:function(){function i(){return m("choose_pda",{selectedPda:s})}return i}(),children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/png;base64,"+d[s][0],style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s})]},s)})})})})]})},I=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.current_appearance,s=l.preview_appearance;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Current PDA",children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+d,style:{"vertical-align":"middle",width:"160px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",content:"Eject",color:"green",onClick:function(){function i(){return m("eject_pda")}return i}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"paint-roller",content:"Paint PDA",onClick:function(){function i(){return m("paint_pda")}return i}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Preview",children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+s,style:{"vertical-align":"middle",width:"160px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}})})]})}},33388:function(A,r,n){"use strict";r.__esModule=!0,r.PersonalCrafting=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PersonalCrafting=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.busy,d=m.category,s=m.display_craftable_only,i=m.display_compact,h=m.prev_cat,C=m.next_cat,v=m.subcategory,p=m.prev_subcat,N=m.next_subcat;return(0,e.createComponentVNode)(2,o.Window,{width:700,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!l&&(0,e.createComponentVNode)(2,t.Dimmer,{fontSize:"32px",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cog",spin:1})," Crafting..."]}),(0,e.createComponentVNode)(2,t.Section,{title:d,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Show Craftable Only",icon:s?"check-square-o":"square-o",selected:s,onClick:function(){function V(){return c("toggle_recipes")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Compact Mode",icon:i?"check-square-o":"square-o",selected:i,onClick:function(){function V(){return c("toggle_compact")}return V}()})],4),children:[(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:h,icon:"arrow-left",onClick:function(){function V(){return c("backwardCat")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:C,icon:"arrow-right",onClick:function(){function V(){return c("forwardCat")}return V}()})]}),v&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:p,icon:"arrow-left",onClick:function(){function V(){return c("backwardSubCat")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N,icon:"arrow-right",onClick:function(){function V(){return c("forwardSubCat")}return V}()})]}),i?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,S)]})]})})}return I}(),b=function(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.display_craftable_only,d=m.can_craft,s=m.cant_craft;return(0,e.createComponentVNode)(2,t.Box,{mt:1,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[d.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.name,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",onClick:function(){function h(){return c("make",{make:i.ref})}return h}()}),i.catalyst_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:i.catalyst_text,content:"Catalysts",color:"transparent"}),(0,e.createComponentVNode)(2,t.Button,{tooltip:i.req_text,content:"Requirements",color:"transparent"}),i.tool_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:i.tool_text,content:"Tools",color:"transparent"})]},i.name)}),!l&&s.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.name,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",disabled:!0}),i.catalyst_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:i.catalyst_text,content:"Catalysts",color:"transparent"}),(0,e.createComponentVNode)(2,t.Button,{tooltip:i.req_text,content:"Requirements",color:"transparent"}),i.tool_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:i.tool_text,content:"Tools",color:"transparent"})]},i.name)})]})})},S=function(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.display_craftable_only,d=m.can_craft,s=m.cant_craft;return(0,e.createComponentVNode)(2,t.Box,{mt:1,children:[d.map(function(i){return(0,e.createComponentVNode)(2,t.Section,{title:i.name,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",onClick:function(){function h(){return c("make",{make:i.ref})}return h}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[i.catalyst_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Catalysts",children:i.catalyst_text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Requirements",children:i.req_text}),i.tool_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tools",children:i.tool_text})]})},i.name)}),!l&&s.map(function(i){return(0,e.createComponentVNode)(2,t.Section,{title:i.name,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",disabled:!0}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[i.catalyst_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Catalysts",children:i.catalyst_text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Requirements",children:i.req_text}),i.tool_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tools",children:i.tool_text})]})},i.name)})]})}},56150:function(A,r,n){"use strict";r.__esModule=!0,r.Photocopier=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Photocopier=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:440,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Photocopier",color:"silver",children:[(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Copies:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"2em",bold:!0,children:m.copynumber}),(0,e.createComponentVNode)(2,t.Stack.Item,{float:"right",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"minus",textAlign:"center",content:"",onClick:function(){function l(){return c("minus")}return l}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"plus",textAlign:"center",content:"",onClick:function(){function l(){return c("add")}return l}()})]})]}),(0,e.createComponentVNode)(2,t.Stack,{mb:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Toner:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,children:m.toner})]}),(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Inserted Document:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!m.copyitem&&!m.mob,content:m.copyitem?m.copyitem:m.mob?m.mob+"'s ass!":"document",onClick:function(){function l(){return c("removedocument")}return l}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Inserted Folder:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!m.folder,content:m.folder?m.folder:"folder",onClick:function(){function l(){return c("removefolder")}return l}()})})]})]}),(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,b)}),(0,e.createComponentVNode)(2,S)]})})})}return I}(),b=function(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.issilicon;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"copy",float:"center",textAlign:"center",content:"Copy",onClick:function(){function d(){return c("copy")}return d}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file-import",float:"center",textAlign:"center",content:"Scan",onClick:function(){function d(){return c("scandocument")}return d}()}),!!l&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file",color:"green",float:"center",textAlign:"center",content:"Print Text",onClick:function(){function d(){return c("ai_text")}return d}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"image",color:"green",float:"center",textAlign:"center",content:"Print Image",onClick:function(){function d(){return c("ai_pic")}return d}()})],4)],0)},S=function(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Scanned Files",children:m.files.map(function(l){return(0,e.createComponentVNode)(2,t.Section,{title:l.name,buttons:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print",disabled:m.toner<=0,onClick:function(){function d(){return c("filecopy",{uid:l.uid})}return d}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash-alt",content:"Delete",color:"bad",onClick:function(){function d(){return c("deletefile",{uid:l.uid})}return d}()})]})},l.name)})})}},8340:function(A,r,n){"use strict";r.__esModule=!0,r.Photocopier220=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(88510),b=n(64795),S=n(25328);function I(m,l){var d=typeof Symbol!="undefined"&&m[Symbol.iterator]||m["@@iterator"];if(d)return(d=d.call(m)).next.bind(d);if(Array.isArray(m)||(d=k(m))||l&&m&&typeof m.length=="number"){d&&(m=d);var s=0;return function(){return s>=m.length?{done:!0}:{done:!1,value:m[s++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function k(m,l){if(m){if(typeof m=="string")return g(m,l);var d={}.toString.call(m).slice(8,-1);return d==="Object"&&m.constructor&&(d=m.constructor.name),d==="Map"||d==="Set"?Array.from(m):d==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(d)?g(m,l):void 0}}function g(m,l){(l==null||l>m.length)&&(l=m.length);for(var d=0,s=Array(l);dm?this.substring(0,m)+"...":this};var u=function(l,d){d===void 0&&(d="");var s=(0,S.createSearch)(d,function(i){return i.altername});return(0,b.flow)([(0,f.filter)(function(i){return i==null?void 0:i.altername}),d&&(0,f.filter)(s),(0,f.sortBy)(function(i){return i.id})])(l)},c=r.Photocopier220=function(){function m(l,d){for(var s=(0,a.useBackend)(d),i=s.act,h=s.data,C=h.copies,v=h.maxcopies,p=(0,a.useLocalState)(d,"searchText",""),N=p[0],V=p[1],y=u((0,f.sortBy)(function(E){return E.category})(h.forms||[]),N),B=[],L=I(y),w;!(w=L()).done;){var x=w.value;B.includes(x.category)||B.push(x.category)}var T=(0,a.useLocalState)(d,"number",0),M=T[0],O=T[1],D;return h.category===""?D=y:D=y.filter(function(E){return E.category===h.category}),(0,e.createComponentVNode)(2,o.Window,{width:550,height:575,theme:h.ui_theme,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"40%",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"\u0421\u0442\u0430\u0442\u0443\u0441",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",mt:.3,color:"grey",children:"\u0417\u0430\u0440\u044F\u0434 \u0442\u043E\u043D\u0435\u0440\u0430:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{minValue:0,maxValue:30,value:h.toner})})]}),(0,e.createComponentVNode)(2,t.Stack,{mt:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",mb:.3,color:"grey",children:"\u0424\u043E\u0440\u043C\u0430:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",textAlign:"center",bold:!0,children:h.form_id===""?"\u041D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u0430":h.form_id})]}),(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",mt:1,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!h.copyitem&&!h.mob,icon:h.copyitem||h.mob?"eject":"times",content:h.copyitem?h.copyitem:h.mob?"\u0416\u043E\u043F\u0430 "+h.mob+"!":"\u0421\u043B\u043E\u0442 \u0434\u043B\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430",onClick:function(){function E(){return i("removedocument")}return E}()})})}),(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",mt:"3px",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!h.folder,icon:h.folder?"eject":"times",content:h.folder?h.folder:"\u0421\u043B\u043E\u0442 \u0434\u043B\u044F \u043F\u0430\u043F\u043A\u0438",onClick:function(){function E(){return i("removefolder")}return E}()})})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"100%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"print",disabled:h.toner===0||h.form===null,content:"\u041F\u0435\u0447\u0430\u0442\u044C",onClick:function(){function E(){return i("print_form")}return E}()})}),!!h.isAI&&(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"100%",ml:"5px",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"image",disabled:h.toner<5,content:"\u0424\u043E\u0442\u043E",tooltip:"\u0420\u0430\u0441\u043F\u0435\u0447\u0430\u0442\u0430\u0442\u044C \u0444\u043E\u0442\u043E \u0441 \u0411\u0430\u0437\u044B \u0414\u0430\u043D\u043D\u044B\u0445",onClick:function(){function E(){return i("ai_pic")}return E}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"100%",mt:"3px",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"copy",content:"\u041A\u043E\u043F\u0438\u044F",disabled:h.toner===0||!h.copyitem&&!h.mob,onClick:function(){function E(){return i("copy")}return E}()})}),!!h.isAI&&(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"100%",ml:"5px",mt:"3px",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"i-cursor",content:"\u0422\u0435\u043A\u0441\u0442",tooltip:"\u0420\u0430\u0441\u043F\u0435\u0447\u0430\u0442\u0430\u0442\u044C \u0441\u0432\u043E\u0439 \u0442\u0435\u043A\u0441\u0442",disabled:h.toner===0,onClick:function(){function E(){return i("ai_text")}return E}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:1.5,mt:1.2,width:"50%",color:"grey",children:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:"}),(0,e.createComponentVNode)(2,t.Slider,{mt:.75,width:"50%",animated:!0,minValue:1,maxValue:v,value:C,stepPixelSize:10,onChange:function(){function E(P,R){return i("copies",{new:R})}return E}()})]})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"\u0411\u044E\u0440\u043E\u043A\u0440\u0430\u0442\u0438\u044F",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mb:-.5,icon:"chevron-right",color:"transparent",content:"\u0412\u0441\u0435 \u0444\u043E\u0440\u043C\u044B",selected:!h.category,onClick:function(){function E(){return i("choose_category",{category:""})}return E}()})}),B.map(function(E){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"chevron-right",mb:-.5,color:"transparent",content:E,selected:h.category===E,onClick:function(){function P(){return i("choose_category",{category:E})}return P}()},E)},E)})]})})})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"60%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:h.category||"\u0412\u0441\u0435 \u0444\u043E\u0440\u043C\u044B",buttons:(0,e.createComponentVNode)(2,t.Input,{mr:18.5,width:"100%",placeholder:"\u041F\u043E\u0438\u0441\u043A \u0444\u043E\u0440\u043C\u044B",onInput:function(){function E(P,R){return V(R)}return E}()}),children:D.map(function(E){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mb:.5,color:"transparent",content:E.altername.trimLongStr(37),tooltip:E.altername,selected:h.form_id===E.id,onClick:function(){function P(){return i("choose_form",{path:E.path,id:E.id})}return P}()})},E.path)})})})]})})})}return m}()},84676:function(A,r,n){"use strict";r.__esModule=!0,r.PoolController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=["tempKey"];function b(g,u){if(g==null)return{};var c={};for(var m in g)if({}.hasOwnProperty.call(g,m)){if(u.includes(m))continue;c[m]=g[m]}return c}var S={scalding:{label:"Scalding",color:"#FF0000",icon:"fa fa-arrow-circle-up",requireEmag:!0},warm:{label:"Warm",color:"#990000",icon:"fa fa-arrow-circle-up"},normal:{label:"Normal",color:null,icon:"fa fa-arrow-circle-right"},cool:{label:"Cool",color:"#009999",icon:"fa fa-arrow-circle-down"},frigid:{label:"Frigid",color:"#00CCCC",icon:"fa fa-arrow-circle-down",requireEmag:!0}},I=function(u,c){var m=u.tempKey,l=b(u,f),d=S[m];if(!d)return null;var s=(0,a.useBackend)(c),i=s.data,h=s.act,C=i.currentTemp,v=d.label,p=d.icon,N=m===C,V=function(){h("setTemp",{temp:m})};return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Button,Object.assign({color:"transparent",selected:N,onClick:V},l,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:p}),v]})))},k=r.PoolController=function(){function g(u,c){for(var m=(0,a.useBackend)(c),l=m.data,d=l.emagged,s=l.currentTemp,i=S[s]||S.normal,h=i.label,C=i.color,v=[],p=0,N=Object.entries(S);p50?"battery-half":"battery-quarter")||C==="C"&&"bolt"||C==="F"&&"battery-full"||C==="M"&&"slash",color:C==="N"&&(v>50?"yellow":"red")||C==="C"&&"yellow"||C==="F"&&"green"||C==="M"&&"orange"}),(0,e.createComponentVNode)(2,I.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,o.toFixed)(v)+"%"})],4)};d.defaultHooks=f.pureComponentHooks;var s=function(h){var C,v,p=h.status;switch(p){case"AOn":C=!0,v=!0;break;case"AOff":C=!0,v=!1;break;case"On":C=!1,v=!0;break;case"Off":C=!1,v=!1;break}var N=(v?"On":"Off")+(" ["+(C?"auto":"manual")+"]");return(0,e.createComponentVNode)(2,I.ColorBox,{color:v?"good":"bad",content:C?void 0:"M",title:N})};s.defaultHooks=f.pureComponentHooks},50992:function(A,r,n){"use strict";r.__esModule=!0,r.PrisonerImplantManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(29319),f=n(3939),b=n(321),S=n(5485),I=n(98595),k=r.PrisonerImplantManager=function(){function g(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.loginState,i=d.prisonerInfo,h=d.chemicalInfo,C=d.trackingInfo,v;if(!s.logged_in)return(0,e.createComponentVNode)(2,I.Window,{theme:"security",width:500,height:850,children:(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,S.LoginScreen)})});var p=[1,5,10];return(0,e.createComponentVNode)(2,I.Window,{theme:"security",width:500,height:850,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.LoginInfo),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Prisoner Points Manager System",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Prisoner",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.name?"eject":"id-card",selected:i.name,content:i.name?i.name:"-----",tooltip:i.name?"Eject ID":"Insert ID",onClick:function(){function N(){return l("id_card")}return N}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Points",children:[i.points!==null?i.points:"-/-",(0,e.createComponentVNode)(2,t.Button,{ml:2,icon:"minus-square",disabled:i.points===null,content:"Reset",onClick:function(){function N(){return l("reset_points")}return N}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Point Goal",children:[i.goal!==null?i.goal:"-/-",(0,e.createComponentVNode)(2,t.Button,{ml:2,icon:"pen",disabled:i.goal===null,content:"Edit",onClick:function(){function N(){return(0,f.modalOpen)(c,"set_points")}return N}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{children:(0,e.createVNode)(1,"box",null,[(0,e.createTextVNode)("1 minute of prison time should roughly equate to 150 points."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Sentences should not exceed 5000 points."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Permanent prisoners should not be given a point goal."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Prisoners who meet their point goal will be able to automatically access their locker and return to the station using the shuttle.")],4,{hidden:i.goal===null})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Tracking Implants",children:C.map(function(N){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{p:1,backgroundColor:"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:["Subject: ",N.subject]}),(0,e.createComponentVNode)(2,t.Box,{children:[" ",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Location",children:N.location}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:N.health}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Prisoner",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-triangle",content:"Warn",tooltip:"Broadcast a message to this poor sod",onClick:function(){function V(){return(0,f.modalOpen)(c,"warn",{uid:N.uid})}return V}()})})]})]},N.subject)]}),(0,e.createVNode)(1,"br")],4)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Chemical Implants",children:h.map(function(N){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{p:1,backgroundColor:"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:["Subject: ",N.name]}),(0,e.createComponentVNode)(2,t.Box,{children:[" ",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Remaining Reagents",children:N.volume})}),p.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{mt:2,disabled:N.volumec;return(0,e.createComponentVNode)(2,t.ImageButton,{fluid:!0,title:N.name,dmIcon:N.icon,dmIconState:N.icon_state,buttonsAlt:(0,e.createComponentVNode)(2,t.Button,{bold:!0,translucent:!0,fontSize:1.5,tooltip:V&&"Not enough tickets",disabled:V,onClick:function(){function y(){return g("purchase",{purchase:N.itemID})}return y}(),children:[N.cost,(0,e.createComponentVNode)(2,t.Icon,{m:0,mt:.25,name:"ticket",color:V?"bad":"good",size:1.6})]}),children:N.desc},N.name)})})})})})})}return b}()},94813:function(A,r,n){"use strict";r.__esModule=!0,r.RCD=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=n(49148),S=r.RCD=function(){function l(d,s){return(0,e.createComponentVNode)(2,o.Window,{width:480,height:670,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,u),(0,e.createComponentVNode)(2,c)]})})]})}return l}(),I=function(d,s){var i=(0,a.useBackend)(s),h=i.data,C=h.matter,v=h.max_matter,p=v*.7,N=v*.25;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Matter Storage",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[p,1/0],average:[N,p],bad:[-1/0,N]},value:C,maxValue:v,children:(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:C+" / "+v+" units"})})})})},k=function(){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Construction Type",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,g,{mode_type:"Floors and Walls"}),(0,e.createComponentVNode)(2,g,{mode_type:"Airlocks"}),(0,e.createComponentVNode)(2,g,{mode_type:"Windows"}),(0,e.createComponentVNode)(2,g,{mode_type:"Deconstruction"})]})})})},g=function(d,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=d.mode_type,p=C.mode;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"transparent",content:v,selected:p===v?1:0,onClick:function(){function N(){return h("mode",{mode:v})}return N}()})})},u=function(d,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.door_name,p=C.electrochromic,N=C.airlock_glass;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Airlock Settings",children:(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"transparent",icon:"pen-alt",content:(0,e.createFragment)([(0,e.createTextVNode)("Rename: "),(0,e.createVNode)(1,"b",null,v,0)],0),onClick:function(){function V(){return(0,f.modalOpen)(s,"renameAirlock")}return V}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:N===1&&(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:p?"toggle-on":"toggle-off",content:"Electrochromic",selected:p,onClick:function(){function V(){return h("electrochromic")}return V}()})})]})})})},c=function(d,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.tab,p=C.locked,N=C.one_access,V=C.selected_accesses,y=C.regions;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"cog",selected:v===1,onClick:function(){function B(){return h("set_tab",{tab:1})}return B}(),children:"Airlock Types"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:v===2,icon:"list",onClick:function(){function B(){return h("set_tab",{tab:2})}return B}(),children:"Airlock Access"})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:v===1?(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Types",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m,{check_number:0})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m,{check_number:1})})]})}):v===2&&p?(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Access",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"lock-open",content:"Unlock",onClick:function(){function B(){return h("set_lock",{new_lock:"unlock"})}return B}()}),children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"lock",size:"5",mb:3}),(0,e.createVNode)(1,"br"),"Airlock access selection is currently locked."]})})}):(0,e.createComponentVNode)(2,b.AccessList,{sectionButtons:(0,e.createComponentVNode)(2,t.Button,{icon:"lock",content:"Lock",onClick:function(){function B(){return h("set_lock",{new_lock:"lock"})}return B}()}),usedByRcd:1,rcdButtons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:N,content:"One",onClick:function(){function B(){return h("set_one_access",{access:"one"})}return B}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!N,width:4,content:"All",onClick:function(){function B(){return h("set_one_access",{access:"all"})}return B}()})],4),accesses:y,selectedList:V,accessMod:function(){function B(L){return h("set",{access:L})}return B}(),grantAll:function(){function B(){return h("grant_all")}return B}(),denyAll:function(){function B(){return h("clear_all")}return B}(),grantDep:function(){function B(L){return h("grant_region",{region:L})}return B}(),denyDep:function(){function B(L){return h("deny_region",{region:L})}return B}()})})],4)},m=function(d,s){for(var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.door_types_ui_list,p=C.door_type,N=d.check_number,V=[],y=0;yf?w=(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,mb:1,children:"There are new messages"}):w=(0,e.createComponentVNode)(2,t.Box,{color:"label",mb:1,children:"There are no new messages"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Main Menu",buttons:(0,e.createComponentVNode)(2,t.Button,{width:9,content:L?"Speaker Off":"Speaker On",selected:!L,icon:L?"volume-mute":"volume-up",onClick:function(){function x(){return N("toggleSilent")}return x}()}),children:[w,(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"View Messages",icon:y>f?"envelope-open-text":"envelope",onClick:function(){function x(){return N("setScreen",{setScreen:6})}return x}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Assistance",icon:"hand-paper",onClick:function(){function x(){return N("setScreen",{setScreen:1})}return x}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Supplies",icon:"box",onClick:function(){function x(){return N("setScreen",{setScreen:2})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Secondary Goal",icon:"clipboard-list",onClick:function(){function x(){return N("setScreen",{setScreen:11})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Relay Anonymous Information",icon:"comment",onClick:function(){function x(){return N("setScreen",{setScreen:3})}return x}()})]})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Print Shipping Label",icon:"tag",onClick:function(){function x(){return N("setScreen",{setScreen:9})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"View Shipping Logs",icon:"clipboard-list",onClick:function(){function x(){return N("setScreen",{setScreen:10})}return x}()})]})}),!!B&&(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Send Station-Wide Announcement",icon:"bullhorn",onClick:function(){function x(){return N("setScreen",{setScreen:8})}return x}()})})]})})},u=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y=V.department,B=[],L;switch(C.purpose){case"ASSISTANCE":B=V.assist_dept,L="Request assistance from another department";break;case"SUPPLIES":B=V.supply_dept,L="Request supplies from another department";break;case"INFO":B=V.info_dept,L="Relay information to another department";break}return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:L,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function w(){return N("setScreen",{setScreen:0})}return w}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:B.filter(function(w){return w!==y}).map(function(w){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:w,textAlign:"right",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Message",icon:"envelope",onClick:function(){function x(){return N("writeInput",{write:w,priority:S})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{content:"High Priority",icon:"exclamation-circle",onClick:function(){function x(){return N("writeInput",{write:w,priority:I})}return x}()})]},w)})})})})},c=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y;switch(C.type){case"SUCCESS":y="Message sent successfully";break;case"FAIL":y="Unable to contact messaging server";break}return(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:y,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function B(){return N("setScreen",{setScreen:0})}return B}()})})},m=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y,B;switch(C.type){case"MESSAGES":y=V.message_log,B="Message Log";break;case"SHIPPING":y=V.shipping_log,B="Shipping label print log";break}return y.reverse(),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:B,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()}),children:y.map(function(L){return(0,e.createComponentVNode)(2,t.Box,{textAlign:"left",children:[L.map(function(w,x){return(0,e.createVNode)(1,"div",null,w,0,null,x)}),(0,e.createVNode)(1,"hr")]},L)})})})},l=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y=V.recipient,B=V.message,L=V.msgVerified,w=V.msgStamped;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Message Authentication",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function x(){return N("setScreen",{setScreen:0})}return x}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Recipient",children:y}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message",children:B}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Validated by",color:"green",children:L}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stamped by",color:"blue",children:w})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",content:"Send Message",icon:"envelope",onClick:function(){function x(){return N("department",{department:y})}return x}()})})})],4)},d=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y=V.message,B=V.announceAuth;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Station-Wide Announcement",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Edit Message",icon:"edit",onClick:function(){function L(){return N("writeAnnouncement")}return L}()})],4),children:y})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:[B?(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"green",children:"ID verified. Authentication accepted."}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Swipe your ID card to authenticate yourself"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:2,textAlign:"center",content:"Send Announcement",icon:"bullhorn",disabled:!(B&&y),onClick:function(){function L(){return N("sendAnnouncement")}return L}()})]})})],4)},s=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y=V.shipDest,B=V.msgVerified,L=V.ship_dept;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{title:"Print Shipping Label",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function w(){return N("setScreen",{setScreen:0})}return w}()}),children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Destination",children:y}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Validated by",children:B})]}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:1,textAlign:"center",content:"Print Label",icon:"print",disabled:!(y&&B),onClick:function(){function w(){return N("printLabel")}return w}()})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Destinations",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:L.map(function(w){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:w,textAlign:"right",className:"candystripe",children:(0,e.createComponentVNode)(2,t.Button,{content:y===w?"Selected":"Select",selected:y===w,onClick:function(){function x(){return N("shipSelect",{shipSelect:w})}return x}()})},w)})})})})],4)},i=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y=V.secondaryGoalAuth,B=V.secondaryGoalEnabled;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Request Secondary Goal",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:[B?y?(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"green",children:"ID verified. Authentication accepted."}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Swipe your ID card to authenticate yourself"}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Complete your current goal first!"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:2,textAlign:"center",content:"Request Secondary Goal",icon:"clipboard-list",disabled:!(y&&B),onClick:function(){function L(){return N("requestSecondaryGoal")}return L}()})]})})],4)}},9861:function(A,r,n){"use strict";r.__esModule=!0,r.RndBackupConsole=r.LinkMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.RndBackupConsole=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.network_name,l=c.has_disk,d=c.disk_name,s=c.linked,i=c.techs,h=c.last_timestamp;return(0,e.createComponentVNode)(2,o.Window,{width:900,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Device Info",children:[(0,e.createComponentVNode)(2,t.Box,{mb:2,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Network",children:s?(0,e.createComponentVNode)(2,t.Button,{content:m,icon:"unlink",selected:1,onClick:function(){function C(){return u("unlink")}return C}()}):"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Loaded Disk",children:l?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:d+" (Last backup: "+h+")",icon:"save",selected:1,onClick:function(){function C(){return u("eject_disk")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Save all",onClick:function(){function C(){return u("saveall2disk")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Load all",onClick:function(){function C(){return u("saveall2network")}return C}()})],4):"None"})]})}),!!s||(0,e.createComponentVNode)(2,b)]}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Section,{title:"Tech Info",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Tech Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Level"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Disk Level"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actions"})]}),Object.keys(i).map(function(C){return!(i[C].network_level>0||i[C].disk_level>0)||(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:i[C].name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i[C].network_level||"None"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i[C].disk_level||"None"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Load to network",disabled:!l||!s,onClick:function(){function v(){return u("savetech2network",{tech:C})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Load to disk",disabled:!l||!s,onClick:function(){function v(){return u("savetech2disk",{tech:C})}return v}()})]})]},C)})]})})})]})})}return S}(),b=r.LinkMenu=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.controllers;return(0,e.createComponentVNode)(2,t.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Link"})]}),m.map(function(l){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Link",icon:"link",onClick:function(){function d(){return u("linktonetworkcontroller",{target_controller:l.addr})}return d}()})})]},l.addr)})]})})}return S}()},68303:function(A,r,n){"use strict";r.__esModule=!0,r.AnalyzerMenu=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=r.AnalyzerMenu=function(){function S(I,k){var g=(0,t.useBackend)(k),u=g.data,c=g.act,m=u.tech_levels,l=u.loaded_item,d=u.linked_analyzer,s=u.can_discover;return d?l?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Section,{title:"Object Analysis",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{content:"Deconstruct",icon:"microscope",onClick:function(){function i(){c("deconstruct")}return i}()}),(0,e.createComponentVNode)(2,o.Button,{content:"Eject",icon:"eject",onClick:function(){function i(){c("eject_item")}return i}()}),!s||(0,e.createComponentVNode)(2,o.Button,{content:"Discover",icon:"atom",onClick:function(){function i(){c("discover")}return i}()})],0),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:l.name})})}),(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{id:"research-levels",children:[(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Research Field"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Current Level"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Object Level"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"New Level"})]}),m.map(function(i){return(0,e.createComponentVNode)(2,b,{techLevel:i},i.id)})]})})],4):(0,e.createComponentVNode)(2,o.Section,{title:"Analysis Menu",children:"No item loaded. Standing by..."}):(0,e.createComponentVNode)(2,o.Section,{title:"Analysis Menu",children:"NO SCIENTIFIC ANALYZER LINKED TO CONSOLE"})}return S}(),b=function(I,k){var g=I.techLevel,u=g.name,c=g.desc,m=g.level,l=g.object_level,d=g.ui_icon,s=l!=null,i=s&&l>=m?Math.max(l,m+1):m;return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"circle-info",tooltip:c})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:d})," ",u]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:m}),s?(0,e.createComponentVNode)(2,o.Table.Cell,{children:l}):(0,e.createComponentVNode)(2,o.Table.Cell,{className:"research-level-no-effect",children:"-"}),(0,e.createComponentVNode)(2,o.Table.Cell,{className:(0,a.classes)([i!==m&&"upgraded-level"]),children:i})]})}},37556:function(A,r,n){"use strict";r.__esModule=!0,r.DataDiskMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o="design",f="tech",b=function(c,m){var l=(0,a.useBackend)(m),d=l.data,s=l.act,i=d.disk_data;return i?(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:i.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:i.level}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:i.desc})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:(0,e.createComponentVNode)(2,t.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){function h(){return s("updt_tech")}return h}()})})]}):null},S=function(c,m){var l=(0,a.useBackend)(m),d=l.data,s=l.act,i=d.disk_data;if(!i)return null;var h=i.name,C=i.lathe_types,v=i.materials,p=C.join(", ");return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:h}),p?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lathe Types",children:p}):null,(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Required Materials"})]}),v.map(function(N){return(0,e.createComponentVNode)(2,t.Box,{children:["- ",(0,e.createVNode)(1,"span",null,N.name,0,{style:{"text-transform":"capitalize"}})," x ",N.amount]},N.name)}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:(0,e.createComponentVNode)(2,t.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){function N(){return s("updt_design")}return N}()})})]})},I=function(c,m){var l=(0,a.useBackend)(m),d=l.act,s=l.data,i=s.disk_data;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Section,Object.assign({buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Erase",icon:"eraser",disabled:!i,onClick:function(){function h(){return d("erase_disk")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject",icon:"eject",onClick:function(){function h(){d("eject_disk")}return h}()})],4)},c)))},k=function(c,m){var l=(0,a.useBackend)(m),d=l.data,s=l.act,i=d.disk_type,h=d.to_copy,C=c.title;return(0,e.createComponentVNode)(2,I,{title:C,children:(0,e.createComponentVNode)(2,t.Box,{overflowY:"auto",overflowX:"hidden",maxHeight:"450px",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:h.sort(function(v,p){return v.name.localeCompare(p.name)}).map(function(v){var p=v.name,N=v.id;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{noColon:!0,label:p,children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Copy to Disk",onClick:function(){function V(){i===f?s("copy_tech",{id:N}):s("copy_design",{id:N})}return V}()})},N)})})})})},g=r.DataDiskMenu=function(){function u(c,m){var l=(0,a.useBackend)(m),d=l.data,s=d.disk_type,i=d.disk_data;if(!s)return(0,e.createComponentVNode)(2,t.Section,{title:"Data Disk",children:"No disk loaded."});switch(s){case o:return i?(0,e.createComponentVNode)(2,I,{title:"Design Disk",children:(0,e.createComponentVNode)(2,S)}):(0,e.createComponentVNode)(2,k,{title:"Design Disk"});case f:return i?(0,e.createComponentVNode)(2,I,{title:"Technology Disk",children:(0,e.createComponentVNode)(2,b)}):(0,e.createComponentVNode)(2,k,{title:"Technology Disk"});default:return(0,e.createFragment)([(0,e.createTextVNode)("UNRECOGNIZED DISK TYPE")],4)}}return u}()},16830:function(A,r,n){"use strict";r.__esModule=!0,r.LatheCategory=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(52662),f=r.LatheCategory=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.data,u=k.act,c=g.category,m=g.matching_designs,l=g.menu,d=l===4,s=d?"build":"imprint";return(0,e.createComponentVNode)(2,t.Section,{title:c,children:[(0,e.createComponentVNode)(2,o.LatheMaterials),(0,e.createComponentVNode)(2,t.Table,{className:"RndConsole__LatheCategory__MatchingDesigns",children:m.map(function(i){var h=i.id,C=i.name,v=i.can_build,p=i.materials;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:C,disabled:v<1,onClick:function(){function N(){return u(s,{id:h,amount:1})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v>=5?(0,e.createComponentVNode)(2,t.Button,{content:"x5",onClick:function(){function N(){return u(s,{id:h,amount:5})}return N}()}):null}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v>=10?(0,e.createComponentVNode)(2,t.Button,{content:"x10",onClick:function(){function N(){return u(s,{id:h,amount:10})}return N}()}):null}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.map(function(N){return(0,e.createFragment)([" | ",(0,e.createVNode)(1,"span",N.is_red?"color-red":null,[N.amount,(0,e.createTextVNode)(" "),N.name],0)],0)})})]},h)})})]})}return b}()},70497:function(A,r,n){"use strict";r.__esModule=!0,r.LatheChemicalStorage=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheChemicalStorage=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data,g=I.act,u=k.loaded_chemicals,c=k.menu===4;return(0,e.createComponentVNode)(2,t.Section,{title:"Chemical Storage",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Purge All",icon:"trash",onClick:function(){function m(){var l=c?"disposeallP":"disposeallI";g(l)}return m}()}),(0,e.createComponentVNode)(2,t.LabeledList,{children:u.map(function(m){var l=m.volume,d=m.name,s=m.id;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"* "+l+" of "+d,children:(0,e.createComponentVNode)(2,t.Button,{content:"Purge",icon:"trash",onClick:function(){function i(){var h=c?"disposeP":"disposeI";g(h,{id:s})}return i}()})},s)})})]})}return f}()},70864:function(A,r,n){"use strict";r.__esModule=!0,r.LatheMainMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(52662),f=n(68198),b=r.LatheMainMenu=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.data,c=g.act,m=u.menu,l=u.categories,d=m===4?"Protolathe":"Circuit Imprinter";return(0,e.createComponentVNode)(2,t.Section,{title:d+" Menu",children:[(0,e.createComponentVNode)(2,o.LatheMaterials),(0,e.createComponentVNode)(2,f.LatheSearch),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.Flex,{wrap:"wrap",children:l.map(function(s){return(0,e.createComponentVNode)(2,t.Flex,{style:{"flex-basis":"50%","margin-bottom":"6px"},children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-right",content:s,onClick:function(){function i(){c("setCategory",{category:s})}return i}()})},s)})})]})}return S}()},42878:function(A,r,n){"use strict";r.__esModule=!0,r.LatheMaterialStorage=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheMaterialStorage=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data,g=I.act,u=k.loaded_materials;return(0,e.createComponentVNode)(2,t.Section,{className:"RndConsole__LatheMaterialStorage",title:"Material Storage",children:(0,e.createComponentVNode)(2,t.Table,{children:u.map(function(c){var m=c.id,l=c.amount,d=c.name,s=function(){function v(p){var N=k.menu===4?"lathe_ejectsheet":"imprinter_ejectsheet";g(N,{id:m,amount:p})}return v}(),i=Math.floor(l/2e3),h=l<1,C=i===1?"":"s";return(0,e.createComponentVNode)(2,t.Table.Row,{className:h?"color-grey":"color-yellow",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{minWidth:"210px",children:["* ",l," of ",d]}),(0,e.createComponentVNode)(2,t.Table.Cell,{minWidth:"110px",children:["(",i," sheet",C,")"]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l>=2e3?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"1x",icon:"eject",onClick:function(){function v(){return s(1)}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"C",icon:"eject",onClick:function(){function v(){return s("custom")}return v}()}),l>=2e3*5?(0,e.createComponentVNode)(2,t.Button,{content:"5x",icon:"eject",onClick:function(){function v(){return s(5)}return v}()}):null,(0,e.createComponentVNode)(2,t.Button,{content:"All",icon:"eject",onClick:function(){function v(){return s(50)}return v}()})],0):null})]},m)})})})}return f}()},52662:function(A,r,n){"use strict";r.__esModule=!0,r.LatheMaterials=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheMaterials=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data,g=k.total_materials,u=k.max_materials,c=k.max_chemicals,m=k.total_chemicals;return(0,e.createComponentVNode)(2,t.Box,{className:"RndConsole__LatheMaterials",mb:"10px",children:(0,e.createComponentVNode)(2,t.Table,{width:"auto",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Material Amount:"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g}),u?(0,e.createComponentVNode)(2,t.Table.Cell,{children:" / "+u}):null]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Chemical Amount:"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:m}),c?(0,e.createComponentVNode)(2,t.Table.Cell,{children:" / "+c}):null]})]})})}return f}()},9681:function(A,r,n){"use strict";r.__esModule=!0,r.LatheMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(12644),f=n(70864),b=n(16830),S=n(42878),I=n(70497),k=["menu"];function g(d,s){if(d==null)return{};var i={};for(var h in d)if({}.hasOwnProperty.call(d,h)){if(s.includes(h))continue;i[h]=d[h]}return i}var u=t.Tabs.Tab,c=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.menu===o.MENU.LATHE?["nav_protolathe",v.submenu_protolathe]:["nav_imprinter",v.submenu_imprinter],N=p[0],V=p[1],y=s.menu,B=g(s,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,u,Object.assign({selected:V===y,onClick:function(){function L(){return C(N,{menu:y})}return L}()},B)))},m=function(s){switch(s){case o.PRINTER_MENU.MAIN:return(0,e.createComponentVNode)(2,f.LatheMainMenu);case o.PRINTER_MENU.SEARCH:return(0,e.createComponentVNode)(2,b.LatheCategory);case o.PRINTER_MENU.MATERIALS:return(0,e.createComponentVNode)(2,S.LatheMaterialStorage);case o.PRINTER_MENU.CHEMICALS:return(0,e.createComponentVNode)(2,I.LatheChemicalStorage)}},l=r.LatheMenu=function(){function d(s,i){var h=(0,a.useBackend)(i),C=h.data,v=C.menu,p=C.linked_lathe,N=C.linked_imprinter;return v===o.MENU.LATHE&&!p?(0,e.createComponentVNode)(2,t.Box,{children:"NO PROTOLATHE LINKED TO CONSOLE"}):v===o.MENU.IMPRINTER&&!N?(0,e.createComponentVNode)(2,t.Box,{children:"NO CIRCUIT IMPRITER LINKED TO CONSOLE"}):(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.MAIN,icon:"bars",children:"Main Menu"}),(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.MATERIALS,icon:"layer-group",children:"Materials"}),(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.CHEMICALS,icon:"flask-vial",children:"Chemicals"})]}),m(C.menu===o.MENU.LATHE?C.submenu_protolathe:C.submenu_imprinter)]})}return d}()},68198:function(A,r,n){"use strict";r.__esModule=!0,r.LatheSearch=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheSearch=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"Search...",onEnter:function(){function g(u,c){return k("search",{to_search:c})}return g}()})})}return f}()},81421:function(A,r,n){"use strict";r.__esModule=!0,r.LinkMenu=void 0;var e=n(89005),a=n(72253),t=n(98595),o=n(36036),f=r.LinkMenu=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.controllers;return(0,e.createComponentVNode)(2,t.Window,{width:800,height:550,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Link"})]}),c.map(function(m){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:m.addr}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:m.net_id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Link",icon:"link",onClick:function(){function l(){return g("linktonetworkcontroller",{target_controller:m.addr})}return l}()})})]},m.addr)})]})})})})}return b}()},6256:function(A,r,n){"use strict";r.__esModule=!0,r.SettingsMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.SettingsMenu=function(){function S(I,k){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,f),(0,e.createComponentVNode)(2,b)]})}return S}(),f=function(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.sync,l=c.admin;return(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.Flex,{direction:"column",align:"flex-start",children:(0,e.createComponentVNode)(2,t.Button,{color:"red",icon:"unlink",content:"Disconnect from Research Network",onClick:function(){function d(){u("unlink")}return d}()})})})},b=function(I,k){var g=(0,a.useBackend)(k),u=g.data,c=g.act,m=u.linked_analyzer,l=u.linked_lathe,d=u.linked_imprinter;return(0,e.createComponentVNode)(2,t.Section,{title:"Linked Devices",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"link",content:"Re-sync with Nearby Devices",onClick:function(){function s(){return c("find_device")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Scientific Analyzer",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!m,content:m?"Unlink":"Undetected",onClick:function(){function s(){return c("disconnect",{item:"analyze"})}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Protolathe",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!l,content:l?"Unlink":"Undetected",onClick:function(){function s(){c("disconnect",{item:"lathe"})}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Circuit Imprinter",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!d,content:d?"Unlink":"Undetected",onClick:function(){function s(){return c("disconnect",{item:"imprinter"})}return s}()})})]})})}},12644:function(A,r,n){"use strict";r.__esModule=!0,r.RndConsole=r.PRINTER_MENU=r.MENU=void 0;var e=n(89005),a=n(72253),t=n(98595),o=n(36036),f=n(35840),b=n(37556),S=n(9681),I=n(81421),k=n(6256),g=n(68303),u=["menu"];function c(p,N){if(p==null)return{};var V={};for(var y in p)if({}.hasOwnProperty.call(p,y)){if(N.includes(y))continue;V[y]=p[y]}return V}var m=o.Tabs.Tab,l=r.MENU={MAIN:0,DISK:2,ANALYZE:3,LATHE:4,IMPRINTER:5,SETTINGS:6},d=r.PRINTER_MENU={MAIN:0,SEARCH:1,MATERIALS:2,CHEMICALS:3},s=function(N){switch(N){case l.MAIN:return(0,e.createComponentVNode)(2,v);case l.DISK:return(0,e.createComponentVNode)(2,b.DataDiskMenu);case l.ANALYZE:return(0,e.createComponentVNode)(2,g.AnalyzerMenu);case l.LATHE:case l.IMPRINTER:return(0,e.createComponentVNode)(2,S.LatheMenu);case l.SETTINGS:return(0,e.createComponentVNode)(2,k.SettingsMenu);default:return"UNKNOWN MENU"}},i=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.menu,x=N.menu,T=c(N,u);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,m,Object.assign({selected:w===x,onClick:function(){function M(){return B("nav",{menu:x})}return M}()},T)))},h=r.RndConsole=function(){function p(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data;if(!L.linked)return(0,e.createComponentVNode)(2,I.LinkMenu);var w=L.menu,x=L.linked_analyzer,T=L.linked_lathe,M=L.linked_imprinter,O=L.wait_message;return(0,e.createComponentVNode)(2,t.Window,{width:800,height:550,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole",children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,i,{icon:"flask",menu:l.MAIN,children:"Research"}),!!x&&(0,e.createComponentVNode)(2,i,{icon:"microscope",menu:l.ANALYZE,children:"Analyze"}),!!T&&(0,e.createComponentVNode)(2,i,{icon:"print",menu:l.LATHE,children:"Protolathe"}),!!M&&(0,e.createComponentVNode)(2,i,{icon:"memory",menu:l.IMPRINTER,children:"Imprinter"}),(0,e.createComponentVNode)(2,i,{icon:"floppy-disk",menu:l.DISK,children:"Disk"}),(0,e.createComponentVNode)(2,i,{icon:"cog",menu:l.SETTINGS,children:"Settings"})]}),s(w),(0,e.createComponentVNode)(2,C)]})})})}return p}(),C=function(N,V){var y=(0,a.useBackend)(V),B=y.data,L=B.wait_message;return L?(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole__Overlay",children:(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole__Overlay__Wrapper",children:(0,e.createComponentVNode)(2,o.NoticeBox,{color:"black",children:L})})}):null},v=function(N,V){var y=(0,a.useBackend)(V),B=y.data,L=B.tech_levels;return(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{id:"research-levels",children:[(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Research Field"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Level"})]}),L.map(function(w){var x=w.id,T=w.name,M=w.desc,O=w.level,D=w.ui_icon;return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"circle-info",tooltip:M})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:D})," ",T]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:O})]},x)})]})})}},29205:function(A,r,n){"use strict";r.__esModule=!0,r.RndNetController=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=r.RndNetController=function(){function k(g,u){var c=(0,t.useBackend)(u),m=c.act,l=c.data,d=l.ion,s=(0,t.useLocalState)(u,"mainTabIndex",0),i=s[0],h=s[1],C=function(){function v(p){switch(p){case 0:return(0,e.createComponentVNode)(2,S);case 1:return(0,e.createComponentVNode)(2,I);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}}return v}();return(0,e.createComponentVNode)(2,f.Window,{width:900,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"wrench",selected:i===0,onClick:function(){function v(){return h(0)}return v}(),children:"Network Management"},"ConfigPage"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"floppy-disk",selected:i===1,onClick:function(){function v(){return h(1)}return v}(),children:"Design Management"},"DesignPage")]}),C(i)]})})}return k}(),S=function(g,u){var c=(0,t.useBackend)(u),m=c.act,l=c.data,d=(0,t.useLocalState)(u,"filterType","ALL"),s=d[0],i=d[1],h=l.network_password,C=l.network_name,v=l.devices,p=[];p.push(s),s==="MSC"&&(p.push("BCK"),p.push("PGN"));var N=s==="ALL"?v:v.filter(function(V){return p.indexOf(V.dclass)>-1});return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Section,{title:"Network Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Network Name",children:(0,e.createComponentVNode)(2,o.Button,{content:C||"Unset",selected:C,icon:"edit",onClick:function(){function V(){return m("network_name")}return V}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Network Password",children:(0,e.createComponentVNode)(2,o.Button,{content:h||"Unset",selected:h,icon:"lock",onClick:function(){function V(){return m("network_password")}return V}()})})]})}),(0,e.createComponentVNode)(2,o.Section,{title:"Connected Devices",children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="ALL",onClick:function(){function V(){return i("ALL")}return V}(),icon:"network-wired",children:"All Devices"},"AllDevices"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="SRV",onClick:function(){function V(){return i("SRV")}return V}(),icon:"server",children:"R&D Servers"},"RNDServers"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="RDC",onClick:function(){function V(){return i("RDC")}return V}(),icon:"desktop",children:"R&D Consoles"},"RDConsoles"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="MFB",onClick:function(){function V(){return i("MFB")}return V}(),icon:"industry",children:"Exosuit Fabricators"},"Mechfabs"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="MSC",onClick:function(){function V(){return i("MSC")}return V}(),icon:"microchip",children:"Miscellaneous Devices"},"Misc")]}),(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Device Name"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Device ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Unlink"})]}),N.map(function(V){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:V.name}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:V.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function y(){return m("unlink_device",{dclass:V.dclass,uid:V.id})}return y}()})})]},V.id)})]})]})],4)},I=function(g,u){var c=(0,t.useBackend)(u),m=c.act,l=c.data,d=l.designs,s=(0,t.useLocalState)(u,"searchText",""),i=s[0],h=s[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Design Management",children:[(0,e.createComponentVNode)(2,o.Input,{fluid:!0,placeholder:"Search for designs",mb:2,onInput:function(){function C(v,p){return h(p)}return C}()}),d.filter((0,a.createSearch)(i,function(C){return C.name})).map(function(C){return(0,e.createComponentVNode)(2,o.Button.Checkbox,{fluid:!0,content:C.name,checked:!C.blacklisted,onClick:function(){function v(){return m(C.blacklisted?"unblacklist_design":"blacklist_design",{d_uid:C.uid})}return v}()},C.name)})]})}},63315:function(A,r,n){"use strict";r.__esModule=!0,r.RndServer=void 0;var e=n(89005),a=n(72253),t=n(44879),o=n(36036),f=n(98595),b=r.RndServer=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.active,s=l.network_name;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:500,resizable:!0,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,o.Section,{title:"Server Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Machine power",children:(0,e.createComponentVNode)(2,o.Button,{content:d?"On":"Off",selected:d,icon:"power-off",onClick:function(){function i(){return m("toggle_active")}return i}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Link status",children:s===null?(0,e.createComponentVNode)(2,o.Box,{color:"red",children:"Unlinked"}):(0,e.createComponentVNode)(2,o.Box,{color:"green",children:"Linked"})})]})}),s===null?(0,e.createComponentVNode)(2,I):(0,e.createComponentVNode)(2,S)]})})}return k}(),S=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.network_name;return(0,e.createComponentVNode)(2,o.Section,{title:"Network Info",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Connected network ID",children:d}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Unlink",children:(0,e.createComponentVNode)(2,o.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function s(){return m("unlink")}return s}()})})]})})},I=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.controllers;return(0,e.createComponentVNode)(2,o.Section,{title:"Detected Cores",children:(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Link"})]}),d.map(function(s){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:s.netname}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Link",icon:"link",onClick:function(){function i(){return m("link",{addr:s.addr})}return i}()})})]},s.addr)})]})})}},26109:function(A,r,n){"use strict";r.__esModule=!0,r.RobotSelfDiagnosis=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=function(k,g){var u=k/g;return u<=.2?"good":u<=.5?"average":"bad"},S=r.RobotSelfDiagnosis=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.data,m=c.component_data;return(0,e.createComponentVNode)(2,o.Window,{width:280,height:480,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:m.map(function(l,d){return(0,e.createComponentVNode)(2,t.Section,{title:(0,f.capitalize)(l.name),children:l.installed<=0?(0,e.createComponentVNode)(2,t.NoticeBox,{m:-.5,height:3.5,color:"red",style:{"font-style":"normal"},children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",children:(0,e.createComponentVNode)(2,t.Flex.Item,{grow:1,textAlign:"center",align:"center",color:"#e8e8e8",children:l.installed===-1?"Destroyed":"Missing"})})}):(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{width:"72%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Brute Damage",color:b(l.brute_damage,l.max_damage),children:l.brute_damage}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Burn Damage",color:b(l.electronic_damage,l.max_damage),children:l.electronic_damage})]})}),(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Powered",color:l.powered?"good":"bad",children:l.powered?"Yes":"No"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Enabled",color:l.status?"good":"bad",children:l.status?"Yes":"No"})]})})]})},d)})})})}return I}()},97997:function(A,r,n){"use strict";r.__esModule=!0,r.RoboticsControlConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.RoboticsControlConsole=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.can_hack,l=c.safety,d=c.show_lock_all,s=c.cyborgs,i=s===void 0?[]:s;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:460,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!d&&(0,e.createComponentVNode)(2,t.Section,{title:"Emergency Lock Down",children:[(0,e.createComponentVNode)(2,t.Button,{icon:l?"lock":"unlock",content:l?"Disable Safety":"Enable Safety",selected:l,onClick:function(){function h(){return u("arm",{})}return h}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"lock",disabled:l,content:"Lock ALL Cyborgs",color:"bad",onClick:function(){function h(){return u("masslock",{})}return h}()})]}),(0,e.createComponentVNode)(2,b,{cyborgs:i,can_hack:m})]})})}return S}(),b=function(I,k){var g=I.cyborgs,u=I.can_hack,c=(0,a.useBackend)(k),m=c.act,l=c.data,d="Detonate";return l.detonate_cooldown>0&&(d+=" ("+l.detonate_cooldown+"s)"),g.length?g.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name,buttons:(0,e.createFragment)([!!s.hackable&&!s.emagged&&(0,e.createComponentVNode)(2,t.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){function i(){return m("hackbot",{uid:s.uid})}return i}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:s.locked_down?"unlock":"lock",color:s.locked_down?"good":"default",content:s.locked_down?"Release":"Lockdown",disabled:!l.auth,onClick:function(){function i(){return m("stopbot",{uid:s.uid})}return i}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"bomb",content:d,disabled:!l.auth||l.detonate_cooldown>0,color:"bad",onClick:function(){function i(){return m("killbot",{uid:s.uid})}return i}()})],0),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:(0,e.createComponentVNode)(2,t.Box,{color:s.status?"bad":s.locked_down?"average":"good",children:s.status?"Not Responding":s.locked_down?"Locked Down":"Nominal"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:(0,e.createComponentVNode)(2,t.Box,{children:s.locstring})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:s.health>50?"good":"bad",value:s.health/100})}),typeof s.charge=="number"&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:s.charge>30?"good":"bad",value:s.charge/100})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell Capacity",children:(0,e.createComponentVNode)(2,t.Box,{color:s.cell_capacity<3e4?"average":"good",children:s.cell_capacity})})],4)||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"No Power Cell"})}),!!s.is_hacked&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safeties",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"DISABLED"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Module",children:s.module}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Master AI",children:(0,e.createComponentVNode)(2,t.Box,{color:s.synchronization?"default":"average",children:s.synchronization||"None"})})]})},s.uid)}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No cyborg units detected within access parameters."})}},54431:function(A,r,n){"use strict";r.__esModule=!0,r.Safe=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Safe=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.dial,s=l.open,i=l.locked,h=l.contents;return(0,e.createComponentVNode)(2,o.Window,{theme:"safe",width:600,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving",children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving--hinge",top:"25%"}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving--hinge",top:"75%"})]}),(0,e.createComponentVNode)(2,t.Icon,{className:"Safe--engraving--arrow",name:"long-arrow-alt-down",size:"3"}),(0,e.createVNode)(1,"br"),s?(0,e.createComponentVNode)(2,S):(0,e.createComponentVNode)(2,t.Box,{as:"img",className:"Safe--dial",src:"safe_dial.png",style:{transform:"rotate(-"+3.6*d+"deg)","z-index":0}})]}),!s&&(0,e.createComponentVNode)(2,I)]})})}return k}(),b=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.dial,s=l.open,i=l.locked,h=function(v,p){return(0,e.createComponentVNode)(2,t.Button,{disabled:s||p&&!i,icon:"arrow-"+(p?"right":"left"),content:(p?"Right":"Left")+" "+v,iconRight:p,onClick:function(){function N(){return m(p?"turnleft":"turnright",{num:v})}return N}(),style:{"z-index":10}})};return(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer",children:[(0,e.createComponentVNode)(2,t.Button,{disabled:i,icon:s?"lock":"lock-open",content:s?"Close":"Open",mb:"0.5rem",onClick:function(){function C(){return m("open")}return C}()}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{position:"absolute",children:[h(50),h(10),h(1)]}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer--right",position:"absolute",right:"5px",children:[h(1,!0),h(10,!0),h(50,!0)]}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer--number",children:d})]})},S=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.contents;return(0,e.createComponentVNode)(2,t.Box,{className:"Safe--contents",overflow:"auto",children:d.map(function(s,i){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{mb:"0.5rem",onClick:function(){function h(){return m("retrieve",{index:i+1})}return h}(),children:[(0,e.createComponentVNode)(2,t.Box,{as:"img",src:s.sprite+".png",verticalAlign:"middle",ml:"-6px",mr:"0.5rem"}),s.name]}),(0,e.createVNode)(1,"br")],4,s)})})},I=function(g,u){return(0,e.createComponentVNode)(2,t.Section,{className:"Safe--help",title:"Safe opening instructions (because you all keep forgetting)",children:[(0,e.createComponentVNode)(2,t.Box,{children:["1. Turn the dial left to the first number.",(0,e.createVNode)(1,"br"),"2. Turn the dial right to the second number.",(0,e.createVNode)(1,"br"),"3. Continue repeating this process for each number, switching between left and right each time.",(0,e.createVNode)(1,"br"),"4. Open the safe."]}),(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:"To lock fully, turn the dial to the left after closing the safe."})]})}},29740:function(A,r,n){"use strict";r.__esModule=!0,r.SatelliteControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SatelliteControl=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.satellites,m=u.notice,l=u.meteor_shield,d=u.meteor_shield_coverage,s=u.meteor_shield_coverage_max,i=u.meteor_shield_coverage_percentage;return(0,e.createComponentVNode)(2,o.Window,{width:475,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[l&&(0,e.createComponentVNode)(2,t.Section,{title:"Station Shield Coverage",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:i>=100?"good":"average",value:d,maxValue:s,children:[i," %"]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Satellite Network Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alert",color:"red",children:u.notice}),c.map(function(h){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"#"+h.id,children:[h.mode," ",(0,e.createComponentVNode)(2,t.Button,{content:h.active?"Deactivate":"Activate",icon:"arrow-circle-right",onClick:function(){function C(){return g("toggle",{id:h.id})}return C}()})]},h.id)})]})})]})})}return b}()},44162:function(A,r,n){"use strict";r.__esModule=!0,r.SecureStorage=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=n(36352),S=n(92986),I=r.SecureStorage=function(){function c(m,l){return(0,e.createComponentVNode)(2,f.Window,{theme:"securestorage",height:500,width:280,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,g)})})})})}return c}(),k=function(m,l){var d=(0,t.useBackend)(l),s=d.act,i=window.event?m.which:m.keyCode;if(i===S.KEY_ENTER){m.preventDefault(),s("keypad",{digit:"E"});return}if(i===S.KEY_ESCAPE){m.preventDefault(),s("keypad",{digit:"C"});return}if(i===S.KEY_BACKSPACE){m.preventDefault(),s("backspace");return}if(i>=S.KEY_0&&i<=S.KEY_9){m.preventDefault(),s("keypad",{digit:i-S.KEY_0});return}if(i>=S.KEY_NUMPAD_0&&i<=S.KEY_NUMPAD_9){m.preventDefault(),s("keypad",{digit:i-S.KEY_NUMPAD_0});return}},g=function(m,l){var d=(0,t.useBackend)(l),s=d.act,i=d.data,h=i.locked,C=i.no_passcode,v=i.emagged,p=i.user_entered_code,N=[["1","2","3"],["4","5","6"],["7","8","9"],["C","0","E"]],V=C?"":h?"bad":"good";return(0,e.createComponentVNode)(2,o.Section,{fill:!0,onKeyDown:function(){function y(B){return k(B,l)}return y}(),children:[(0,e.createComponentVNode)(2,o.Stack.Item,{height:7.3,children:(0,e.createComponentVNode)(2,o.Box,{className:(0,a.classes)(["SecureStorage__displayBox","SecureStorage__displayBox--"+V]),height:"100%",children:v?"ERROR":p})}),(0,e.createComponentVNode)(2,o.Table,{children:N.map(function(y){return(0,e.createComponentVNode)(2,b.TableRow,{children:y.map(function(B){return(0,e.createComponentVNode)(2,b.TableCell,{children:(0,e.createComponentVNode)(2,u,{number:B})},B)})},y[0])})})]})},u=function(m,l){var d=(0,t.useBackend)(l),s=d.act,i=d.data,h=m.number;return(0,e.createComponentVNode)(2,o.Button,{fluid:!0,bold:!0,mb:"6px",content:h,textAlign:"center",fontSize:"60px",lineHeight:1.25,width:"80px",className:(0,a.classes)(["SecureStorage__Button","SecureStorage__Button--keypad","SecureStorage__Button--"+h]),onClick:function(){function C(){return s("keypad",{digit:h})}return C}()})}},6272:function(A,r,n){"use strict";r.__esModule=!0,r.SecurityRecords=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(3939),S=n(321),I=n(5485),k=n(22091),g={"*Execute*":"execute","*Arrest*":"arrest",Incarcerated:"incarcerated",Parolled:"parolled",Released:"released",Demote:"demote",Search:"search",Monitor:"monitor"},u=function(p,N){(0,b.modalOpen)(p,"edit",{field:N.edit,value:N.value})},c=r.SecurityRecords=function(){function v(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.loginState,w=B.currentPage,x;if(L.logged_in)w===1?x=(0,e.createComponentVNode)(2,l):w===2&&(x=(0,e.createComponentVNode)(2,i));else return(0,e.createComponentVNode)(2,f.Window,{theme:"security",width:800,height:900,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,I.LoginScreen)})});return(0,e.createComponentVNode)(2,f.Window,{theme:"security",width:800,height:900,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S.LoginInfo),(0,e.createComponentVNode)(2,k.TemporaryNotice),(0,e.createComponentVNode)(2,m),x]})})]})}return v}(),m=function(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.currentPage,w=B.general;return(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:L===1,onClick:function(){function x(){return y("page",{page:1})}return x}(),children:"List Records"}),L===2&&w&&!w.empty&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"file",selected:L===2,children:["Record: ",w.fields[0].value]})]})})},l=function(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.records,w=(0,t.useLocalState)(N,"searchText",""),x=w[0],T=w[1],M=(0,t.useLocalState)(N,"sortId","name"),O=M[0],D=M[1],E=(0,t.useLocalState)(N,"sortOrder",!0),P=E[0],R=E[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,s)}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"SecurityRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,d,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,d,{id:"id",children:"ID"}),(0,e.createComponentVNode)(2,d,{id:"rank",children:"Assignment"}),(0,e.createComponentVNode)(2,d,{id:"fingerprint",children:"Fingerprint"}),(0,e.createComponentVNode)(2,d,{id:"status",children:"Criminal Status"})]}),L.filter((0,a.createSearch)(x,function(j){return j.name+"|"+j.id+"|"+j.rank+"|"+j.fingerprint+"|"+j.status})).sort(function(j,F){var W=P?1:-1;return j[O].localeCompare(F[O])*W}).map(function(j){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"SecurityRecords__listRow--"+g[j.status],onClick:function(){function F(){return y("view",{uid_gen:j.uid_gen,uid_sec:j.uid_sec})}return F}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",j.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:j.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:j.rank}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:j.fingerprint}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:j.status})]},j.id)})]})})})],4)},d=function(p,N){var V=(0,t.useLocalState)(N,"sortId","name"),y=V[0],B=V[1],L=(0,t.useLocalState)(N,"sortOrder",!0),w=L[0],x=L[1],T=p.id,M=p.children;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:y!==T&&"transparent",fluid:!0,onClick:function(){function O(){y===T?x(!w):(B(T),x(!0))}return O}(),children:[M,y===T&&(0,e.createComponentVNode)(2,o.Icon,{name:w?"sort-up":"sort-down",ml:"0.25rem;"})]})})})},s=function(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.isPrinting,w=(0,t.useLocalState)(N,"searchText",""),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{ml:"0.25rem",content:"New Record",icon:"plus",onClick:function(){function M(){return y("new_general")}return M}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{disabled:L,icon:L?"spinner":"print",iconSpin:!!L,content:"Print Cell Log",onClick:function(){function M(){return(0,b.modalOpen)(N,"print_cell_log")}return M}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by Name, ID, Assignment, Fingerprint, Status",fluid:!0,onInput:function(){function M(O,D){return T(D)}return M}()})})]})},i=function(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.isPrinting,w=B.general,x=B.security;return!w||!w.fields?(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"General records lost!"}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"General Data",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:L,icon:L?"spinner":"print",iconSpin:!!L,content:"Print Record",onClick:function(){function T(){return y("print_record")}return T}()}),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",tooltip:"WARNING: This will also delete the Security and Medical records associated with this crew member!",tooltipPosition:"bottom-start",content:"Delete Record",onClick:function(){function T(){return y("delete_general")}return T}()})],4),children:(0,e.createComponentVNode)(2,h)})}),!x||!x.fields?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Security Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"pen",content:"Create New Record",onClick:function(){function T(){return y("new_security")}return T}()}),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"Security records lost!"]})})})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Security Data",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",disabled:x.empty,content:"Delete Record",onClick:function(){function T(){return y("delete_security")}return T}()}),children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:x.fields.map(function(T,M){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:T.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(T.value),!!T.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:T.line_break?"1rem":"initial",onClick:function(){function O(){return u(N,T)}return O}()})]},M)})})})})}),(0,e.createComponentVNode)(2,C)],4)],0)},h=function(p,N){var V=(0,t.useBackend)(N),y=V.data,B=y.general;return!B||!B.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"General records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:B.fields.map(function(L,w){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:L.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(""+L.value),!!L.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:L.line_break?"1rem":"initial",onClick:function(){function x(){return u(N,L)}return x}()})]},w)})})}),!!B.has_photos&&B.photos.map(function(L,w){return(0,e.createComponentVNode)(2,o.Stack.Item,{inline:!0,textAlign:"center",color:"label",ml:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:L,style:{width:"96px","margin-top":"5rem","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createVNode)(1,"br"),"Photo #",w+1]},w)})]})},C=function(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.security;return(0,e.createComponentVNode)(2,o.Stack.Item,{height:"150px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Comments/Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"comment",content:"Add Entry",onClick:function(){function w(){return(0,b.modalOpen)(N,"comment_add")}return w}()}),children:L.comments.length===0?(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No comments found."}):L.comments.map(function(w,x){return(0,e.createComponentVNode)(2,o.Box,{preserveWhitespace:!0,children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:w.header||"Auto-generated"}),(0,e.createVNode)(1,"br"),w.text||w,(0,e.createComponentVNode)(2,o.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){function T(){return y("comment_delete",{id:x+1})}return T}()})]},x)})})})}},5099:function(A,r,n){"use strict";r.__esModule=!0,r.SeedExtractor=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(3939);function S(d,s){var i=typeof Symbol!="undefined"&&d[Symbol.iterator]||d["@@iterator"];if(i)return(i=i.call(d)).next.bind(i);if(Array.isArray(d)||(i=I(d))||s&&d&&typeof d.length=="number"){i&&(d=i);var h=0;return function(){return h>=d.length?{done:!0}:{done:!1,value:d[h++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function I(d,s){if(d){if(typeof d=="string")return k(d,s);var i={}.toString.call(d).slice(8,-1);return i==="Object"&&d.constructor&&(i=d.constructor.name),i==="Map"||i==="Set"?Array.from(d):i==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?k(d,s):void 0}}function k(d,s){(s==null||s>d.length)&&(s=d.length);for(var i=0,h=Array(s);i=x},C=function(w,x){return w<=x},v=s.split(" "),p=[],N=function(){var w=B.value,x=w.split(":");if(x.length===0)return 0;if(x.length===1)return p.push(function(O){return(O.name+" ("+O.variant+")").toLocaleLowerCase().includes(x[0].toLocaleLowerCase())}),0;if(x.length>2)return{v:function(){function O(D){return!1}return O}()};var T,M=i;if(x[1][x[1].length-1]==="-"?(M=C,T=Number(x[1].substring(0,x[1].length-1))):x[1][x[1].length-1]==="+"?(M=h,T=Number(x[1].substring(0,x[1].length-1))):T=Number(x[1]),isNaN(T))return{v:function(){function O(D){return!1}return O}()};switch(x[0].toLocaleLowerCase()){case"l":case"life":case"lifespan":p.push(function(O){return M(O.lifespan,T)});break;case"e":case"end":case"endurance":p.push(function(O){return M(O.endurance,T)});break;case"m":case"mat":case"maturation":p.push(function(O){return M(O.maturation,T)});break;case"pr":case"prod":case"production":p.push(function(O){return M(O.production,T)});break;case"y":case"yield":p.push(function(O){return M(O.yield,T)});break;case"po":case"pot":case"potency":p.push(function(O){return M(O.potency,T)});break;case"s":case"stock":case"c":case"count":case"a":case"amount":p.push(function(O){return M(O.amount,T)});break;default:return{v:function(){function O(D){return!1}return O}()}}},V,y=S(v),B;!(B=y()).done;)if(V=N(),V!==0&&V)return V.v;return function(L){for(var w=0,x=p;w=1?Number(M):1)}return x}()})]})]})}},17474:function(A,r,n){"use strict";r.__esModule=!0,r.Shop=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(25328),f=n(72253),b=n(36036),S=n(98595),I=n(3939),k=function(h){switch(h){case 0:return(0,e.createComponentVNode)(2,u);case 1:return(0,e.createComponentVNode)(2,c);default:return"\u041E\u0428\u0418\u0411\u041A\u0410, \u0421\u041E\u041E\u0411\u0429\u0418\u0422\u0415 \u0420\u0410\u0417\u0420\u0410\u0411\u041E\u0422\u0427\u0418\u041A\u0423"}},g=r.Shop=function(){function i(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=N.cart,y=(0,f.useLocalState)(C,"tabIndex",0),B=y[0],L=y[1];return(0,e.createComponentVNode)(2,S.Window,{width:900,height:600,theme:"abductor",children:[(0,e.createComponentVNode)(2,I.ComplexModal),(0,e.createComponentVNode)(2,S.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Tabs,{children:[(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:B===0,onClick:function(){function w(){L(0)}return w}(),icon:"store",children:"\u0422\u043E\u0440\u0433\u043E\u0432\u043B\u044F"},"PurchasePage"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:B===1,onClick:function(){function w(){L(1)}return w}(),icon:"shopping-cart",children:["\u041A\u043E\u0440\u0437\u0438\u043D\u0430 ",V&&V.length?"("+V.length+")":""]},"Cart")]})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:k(B)})]})})]})}return i}(),u=function(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=N.cash,y=N.cats,B=(0,f.useLocalState)(C,"shopItems",y[0].items),L=B[0],w=B[1],x=(0,f.useLocalState)(C,"showDesc",1),T=x[0],M=x[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Section,{title:"\u0421\u0440\u0435\u0434\u0441\u0442\u0432\u0430: "+V+"\u043A",buttons:(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438",checked:T,onClick:function(){function O(){return M(!T)}return O}()})})})}),(0,e.createComponentVNode)(2,b.Stack,{fill:!0,mt:.3,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:y.map(function(O){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:O.items===L,onClick:function(){function D(){w(O.items)}return D}(),children:O.cat},O)})})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:L.map(function(O){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,m,{i:O,showDecription:T},(0,o.decodeHtmlEntities)(O.name))},(0,o.decodeHtmlEntities)(O.name))})})})})]})]})},c=function(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=N.cart,y=N.cash,B=N.cart_price,L=(0,f.useLocalState)(C,"showDesc",0),w=L[0],x=L[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"\u0421\u0440\u0435\u0434\u0441\u0442\u0432\u0430: "+y+"\u043A",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438",checked:w,onClick:function(){function T(){return x(!w)}return T}()}),(0,e.createComponentVNode)(2,b.Button,{content:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",icon:"trash",onClick:function(){function T(){return p("empty_cart")}return T}(),disabled:!V}),(0,e.createComponentVNode)(2,b.Button,{content:"\u041E\u043F\u043B\u0430\u0442\u0438\u0442\u044C ("+B+"\u043A)",icon:"shopping-cart",onClick:function(){function T(){return p("purchase_cart")}return T}(),disabled:!V||B>y})],4),children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:V?V.map(function(T){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,mr:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,m,{i:T,showDecription:w,buttons:(0,e.createComponentVNode)(2,d,{i:T})})},(0,o.decodeHtmlEntities)(T.name))}):(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:"\u0412\u0430\u0448\u0430 \u043A\u043E\u0440\u0437\u0438\u043D\u0430 \u043F\u0443\u0441\u0442\u0430!"})})})})})},m=function(h,C){var v=h.i,p=h.showDecription,N=p===void 0?1:p,V=h.buttons,y=V===void 0?(0,e.createComponentVNode)(2,l,{i:v}):V;return(0,e.createComponentVNode)(2,b.Section,{title:(0,o.decodeHtmlEntities)(v.name),showBottom:N,buttons:y,children:[N?(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:(0,o.decodeHtmlEntities)(v.desc)}):null,N?(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:(0,o.decodeHtmlEntities)(v.content)}):null]})},l=function(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=h.i,y=N.cash;return(0,e.createComponentVNode)(2,b.Button,{icon:"shopping-cart",content:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 ("+V.cost+" \u041A\u0438\u043A\u0438\u0440\u0438\u0434\u0438\u0442\u043E\u0432)",color:V.limit!==-1&&"red",tooltip:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u043E\u0432\u0430\u0440 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443, \u0443\u0432\u0435\u043B\u0438\u0447\u0438\u0432 \u043E\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043B\u043E \u0434\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u043E\u0432\u0430\u0440\u0430. \u0426\u0435\u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u0430 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u043E\u0442 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044B\u0445 \u0446\u0435\u043D\u043D\u043E\u0441\u0442\u0435\u0439 \u0432 \u0420\u0430\u0441\u0447\u0438\u0447\u0435\u0442\u0447\u0438\u043A\u0438\u043A\u0435.",tooltipPosition:"left",onClick:function(){function B(){return p("add_to_cart",{item:V.obj_path})}return B}(),disabled:V.cost>y||V.limit!==-1&&V.purchased>=V.limit||V.is_time_available===!1})},d=function(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=h.i;return(0,e.createComponentVNode)(2,b.Stack,{children:[(0,e.createComponentVNode)(2,b.Button,{icon:"times",content:"("+V.cost*V.amount+"\u043A)",tooltip:"\u0423\u0431\u0440\u0430\u0442\u044C \u0438\u0437 \u043A\u043E\u0440\u0437\u0438\u043D\u044B.",tooltipPosition:"left",onClick:function(){function y(){return p("remove_from_cart",{item:V.obj_path})}return y}()}),(0,e.createComponentVNode)(2,b.Button,{icon:"minus",ml:"5px",onClick:function(){function y(){return p("set_cart_item_quantity",{item:V.obj_path,quantity:--V.amount})}return y}(),disabled:V.amount<=0}),(0,e.createComponentVNode)(2,b.Button.Input,{content:V.amount,width:"45px",tooltipPosition:"bottom-end",onCommit:function(){function y(B,L){return p("set_cart_item_quantity",{item:V.obj_path,quantity:L})}return y}(),disabled:V.limit!==-1&&V.amount>=V.limit&&V.amount<=0}),(0,e.createComponentVNode)(2,b.Button,{mb:.3,icon:"plus",tooltipPosition:"bottom-start",tooltip:V.limit===0&&"Discount already redeemed!",onClick:function(){function y(){return p("set_cart_item_quantity",{item:V.obj_path,quantity:++V.amount})}return y}(),disabled:V.limit!==-1&&V.amount>=V.limit})]})},s=function(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=h.pack;return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,horizontal:!0,children:(0,e.createComponentVNode)(2,b.Stack.Item,{width:"70%",children:V.content_images.map(function(y){return(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+y,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}})},y.ref)})})})}},2916:function(A,r,n){"use strict";r.__esModule=!0,r.ShuttleConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ShuttleConsole=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:150,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:u.status?u.status:(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"Shuttle Missing"})}),!!u.shuttle&&(!!u.docking_ports_len&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Send to ",children:u.docking_ports.map(function(c){return(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",content:c.name,onClick:function(){function m(){return g("move",{move:c.id})}return m}()},c.name)})})||(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:"red",children:(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"Shuttle Locked"})}),!!u.admin_controlled&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Authorization",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-circle",content:"Request Authorization",disabled:!u.status,onClick:function(){function c(){return g("request")}return c}()})})],0))]})})})})}return b}()},39401:function(A,r,n){"use strict";r.__esModule=!0,r.ShuttleManipulator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ShuttleManipulator=function(){function k(g,u){var c=(0,a.useLocalState)(u,"tabIndex",0),m=c[0],l=c[1],d=function(){function s(i){switch(i){case 0:return(0,e.createComponentVNode)(2,b);case 1:return(0,e.createComponentVNode)(2,S);case 2:return(0,e.createComponentVNode)(2,I);default:return"WE SHOULDN'T BE HERE!"}}return s}();return(0,e.createComponentVNode)(2,o.Window,{width:650,height:700,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===0,onClick:function(){function s(){return l(0)}return s}(),icon:"info-circle",children:"Status"},"Status"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===1,onClick:function(){function s(){return l(1)}return s}(),icon:"file-import",children:"Templates"},"Templates"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===2,onClick:function(){function s(){return l(2)}return s}(),icon:"tools",children:"Modification"},"Modification")]}),d(m)]})})})}return k}(),b=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.shuttles;return(0,e.createComponentVNode)(2,t.Box,{children:d.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID",children:s.id}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Timer",children:s.timeleft}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Mode",children:s.mode}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Status",children:s.status}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){function i(){return m("jump_to",{type:"mobile",id:s.id})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Fast Travel",icon:"fast-forward",onClick:function(){function i(){return m("fast_travel",{id:s.id})}return i}()})]})]})},s.name)})})},S=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.templates_tabs,s=l.existing_shuttle,i=l.templates;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Tabs,{children:d.map(function(h){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===s.id,icon:"file",onClick:function(){function C(){return m("select_template_category",{cat:h})}return C}(),children:h},h)})}),!!s&&i[s.id].templates.map(function(h){return(0,e.createComponentVNode)(2,t.Section,{title:h.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[h.description&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:h.description}),h.admin_notes&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Admin Notes",children:h.admin_notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{content:"Load Template",icon:"download",onClick:function(){function C(){return m("select_template",{shuttle_id:h.shuttle_id})}return C}()})})]})},h.name)})]})},I=function(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.existing_shuttle,s=l.selected;return(0,e.createComponentVNode)(2,t.Box,{children:[d?(0,e.createComponentVNode)(2,t.Section,{title:"Selected Shuttle: "+d.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:d.status}),d.timer&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Timer",children:d.timeleft}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){function i(){return m("jump_to",{type:"mobile",id:d.id})}return i}()})})]})}):(0,e.createComponentVNode)(2,t.Section,{title:"Selected Shuttle: None"}),s?(0,e.createComponentVNode)(2,t.Section,{title:"Selected Template: "+s.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[s.description&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:s.description}),s.admin_notes&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Admin Notes",children:s.admin_notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Preview",icon:"eye",onClick:function(){function i(){return m("preview",{shuttle_id:s.shuttle_id})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Load",icon:"download",onClick:function(){function i(){return m("load",{shuttle_id:s.shuttle_id})}return i}()})]})]})}):(0,e.createComponentVNode)(2,t.Section,{title:"Selected Template: None"})]})}},86013:function(A,r,n){"use strict";r.__esModule=!0,r.SingularityMonitor=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(44879),f=n(72253),b=n(36036),S=n(76910),I=n(98595),k=n(36352),g=r.SingularityMonitor=function(){function l(d,s){var i=(0,f.useBackend)(s),h=i.act,C=i.data;return C.active===0?(0,e.createComponentVNode)(2,c):(0,e.createComponentVNode)(2,m)}return l}(),u=function(d){return Math.log2(16+Math.max(0,d))-4},c=function(d,s){var i=(0,f.useBackend)(s),h=i.act,C=i.data,v=C.singularities,p=v===void 0?[]:v;return(0,e.createComponentVNode)(2,I.Window,{width:450,height:185,children:(0,e.createComponentVNode)(2,I.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,title:"Detected Singularities",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"sync",content:"Refresh",onClick:function(){function N(){return h("refresh")}return N}()}),children:(0,e.createComponentVNode)(2,b.Table,{children:p.map(function(N){return(0,e.createComponentVNode)(2,b.Table.Row,{children:[(0,e.createComponentVNode)(2,b.Table.Cell,{children:N.singularity_id+". "+N.area_name}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,color:"label",children:"Stage:"}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,width:"120px",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N.stage,minValue:0,maxValue:6,ranges:{good:[1,2],average:[3,4],bad:[5,6]},children:(0,o.toFixed)(N.stage)})}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,b.Button,{content:"Details",onClick:function(){function V(){return h("view",{view:N.singularity_id})}return V}()})})]},N.singularity_id)})})})})})},m=function(d,s){var i=(0,f.useBackend)(s),h=i.act,C=i.data,v=C.active,p=C.singulo_stage,N=C.singulo_potential_stage,V=C.singulo_energy,y=C.singulo_high,B=C.singulo_low,L=C.generators,w=L===void 0?[]:L;return(0,e.createComponentVNode)(2,I.Window,{width:550,height:185,children:(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"270px",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Metrics",children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Stage",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:p,minValue:0,maxValue:6,ranges:{good:[1,2],average:[3,4],bad:[5,6]},children:(0,o.toFixed)(p)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Potential Stage",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N,minValue:0,maxValue:6,ranges:{good:[1,p+.5],average:[p+.5,p+1.5],bad:[p+1.5,p+2]},children:(0,o.toFixed)(N)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:V,minValue:B,maxValue:y,ranges:{good:[.67*y+.33*B,y],average:[.33*y+.67*B,.67*y+.33*B],bad:[B,.33*y+.67*B]},children:(0,o.toFixed)(V)+"MJ"})})]})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Field Generators",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"arrow-left",content:"Back",onClick:function(){function x(){return h("back")}return x}()}),children:(0,e.createComponentVNode)(2,b.LabeledList,{children:w.map(function(x){return(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Remaining Charge",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:x.charge,minValue:0,maxValue:125,ranges:{good:[80,125],average:[30,80],bad:[0,30]},children:(0,o.toFixed)(x.charge)})},x.gen_index)})})})})]})})})}},88284:function(A,r,n){"use strict";r.__esModule=!0,r.Sleeper=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=[["good","Alive"],["average","Critical"],["bad","DEAD"]],S=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],I={average:[.25,.5],bad:[.5,1/0]},k=["bad","average","average","good","average","average","bad"],g=r.Sleeper=function(){function i(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.hasOccupant,y=V?(0,e.createComponentVNode)(2,u):(0,e.createComponentVNode)(2,s);return(0,e.createComponentVNode)(2,f.Window,{width:550,height:760,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:y}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,l)})]})})})}return i}(),u=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.occupant;return(0,e.createFragment)([(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,d)],4)},c=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.occupant,y=N.auto_eject_dead;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:"Auto-eject if dead:\xA0"}),(0,e.createComponentVNode)(2,o.Button,{icon:y?"toggle-on":"toggle-off",selected:y,content:y?"On":"Off",onClick:function(){function B(){return p("auto_eject_dead_"+(y?"off":"on"))}return B}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"user-slash",content:"Eject",onClick:function(){function B(){return p("ejectify")}return B}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:V.name}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.maxHealth,value:V.health/V.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]},children:(0,a.round)(V.health,0)})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Status",color:b[V.stat][0],children:b[V.stat][1]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.maxTemp,value:V.bodyTemperature/V.maxTemp,color:k[V.temperatureSuitability+3],children:[(0,a.round)(V.btCelsius,0),"\xB0C,",(0,a.round)(V.btFaren,0),"\xB0F"]})}),!!V.hasBlood&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Blood Level",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.bloodMax,value:V.bloodLevel/V.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[V.bloodPercent,"%, ",V.bloodLevel,"cl"]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pulse",verticalAlign:"middle",children:[V.pulse," BPM"]})],4)]})})},m=function(h,C){var v=(0,t.useBackend)(C),p=v.data,N=p.occupant;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant Damage",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:S.map(function(V,y){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:V[0],children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:"100",value:N[V[1]]/100,ranges:I,children:(0,a.round)(N[V[1]],0)},y)},y)})})})},l=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.hasOccupant,y=N.isBeakerLoaded,B=N.beakerMaxSpace,L=N.beakerFreeSpace,w=N.dialysis,x=w&&L>0;return(0,e.createComponentVNode)(2,o.Section,{title:"Dialysis",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:!y||L<=0||!V,selected:x,icon:x?"toggle-on":"toggle-off",content:x?"Active":"Inactive",onClick:function(){function T(){return p("togglefilter")}return T}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!y,icon:"eject",content:"Eject",onClick:function(){function T(){return p("removebeaker")}return T}()})],4),children:y?(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Remaining Space",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:B,value:L/B,ranges:{good:[.5,1/0],average:[.25,.5],bad:[-1/0,.25]},children:[L,"u"]})})}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No beaker loaded."})})},d=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.occupant,y=N.chemicals,B=N.maxchem,L=N.amounts;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant Chemicals",children:y.map(function(w,x){var T="",M;return w.overdosing?(T="bad",M=(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-circle"}),"\xA0 Overdosing!"]})):w.od_warning&&(T="average",M=(0,e.createComponentVNode)(2,o.Box,{color:"average",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle"}),"\xA0 Close to overdosing"]})),(0,e.createComponentVNode)(2,o.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.createComponentVNode)(2,o.Section,{title:w.title,level:"3",mx:"0",lineHeight:"18px",buttons:M,children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:B,value:w.occ_amount/B,color:T,title:"Amount of chemicals currently inside the occupant / Total amount injectable by this machine",mr:"0.5rem",children:[w.pretty_amount,"/",B,"u"]}),L.map(function(O,D){return(0,e.createComponentVNode)(2,o.Button,{disabled:!w.injectable||w.occ_amount+O>B||V.stat===2,icon:"syringe",content:"Inject "+O+"u",title:"Inject "+O+"u of "+w.title+" into the occupant",mb:"0",height:"19px",onClick:function(){function E(){return p("chemical",{chemid:w.id,amount:O})}return E}()},D)})]})})},x)})})},s=function(h,C){return(0,e.createComponentVNode)(2,o.Section,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}},21597:function(A,r,n){"use strict";r.__esModule=!0,r.SlotMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SlotMachine=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data;if(u.money===null)return(0,e.createComponentVNode)(2,o.Window,{width:350,height:90,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{children:"Could not scan your card or could not find account!"}),(0,e.createComponentVNode)(2,t.Box,{children:"Please wear or hold your ID and try again."})]})})});var c;return u.plays===1?c=u.plays+" player has tried their luck today!":c=u.plays+" players have tried their luck today!",(0,e.createComponentVNode)(2,o.Window,{width:300,height:151,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{lineHeight:2,children:c}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Credits Remaining",children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:u.money})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"10 credits to spin",children:(0,e.createComponentVNode)(2,t.Button,{icon:"coins",disabled:u.working,content:u.working?"Spinning...":"Spin",onClick:function(){function m(){return g("spin")}return m}()})})]}),(0,e.createComponentVNode)(2,t.Box,{bold:!0,lineHeight:2,color:u.resultlvl,children:u.result})]})})})}return b}()},46348:function(A,r,n){"use strict";r.__esModule=!0,r.Smartfridge=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Smartfridge=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.secure,m=u.can_dry,l=u.drying,d=u.contents;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[!!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"Secure Access: Please have your identification ready."}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:m?"Drying rack":"Contents",buttons:!!m&&(0,e.createComponentVNode)(2,t.Button,{width:4,icon:l?"power-off":"times",content:l?"On":"Off",selected:l,onClick:function(){function s(){return g("drying")}return s}()}),children:[!d&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cookie-bite",size:5,color:"brown"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No products loaded."]})}),!!d&&d.slice().sort(function(s,i){return s.display_name.localeCompare(i.display_name)}).map(function(s){return(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"55%",children:s.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"25%",children:["(",s.quantity," in stock)"]}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:13,children:[(0,e.createComponentVNode)(2,t.Button,{width:3,icon:"arrow-down",tooltip:"Dispense one.",content:"1",onClick:function(){function i(){return g("vend",{index:s.vend,amount:1})}return i}()}),(0,e.createComponentVNode)(2,t.NumberInput,{width:"40px",minValue:0,value:0,maxValue:s.quantity,step:1,stepPixelSize:3,onChange:function(){function i(h,C){return g("vend",{index:s.vend,amount:C})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{width:4,icon:"arrow-down",content:"All",tooltip:"Dispense all.",tooltipPosition:"bottom-start",onClick:function(){function i(){return g("vend",{index:s.vend,amount:s.quantity})}return i}()})]})]},s)})]})]})})})}return b}()},86162:function(A,r,n){"use strict";r.__esModule=!0,r.Smes=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(49968),f=n(98595),b=1e3,S=r.Smes=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.capacityPercent,d=m.capacity,s=m.charge,i=m.inputAttempt,h=m.inputting,C=m.inputLevel,v=m.inputLevelMax,p=m.inputAvailable,N=m.outputPowernet,V=m.outputAttempt,y=m.outputting,B=m.outputLevel,L=m.outputLevelMax,w=m.outputUsed,x=l>=100&&"good"||h&&"average"||"bad",T=y&&"good"||s>0&&"average"||"bad";return(0,e.createComponentVNode)(2,f.Window,{width:340,height:345,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Stored Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:l*.01,ranges:{good:[.5,1/0],average:[.15,.5],bad:[-1/0,.15]}})}),(0,e.createComponentVNode)(2,t.Section,{title:"Input",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Charge Mode",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:i?"sync-alt":"times",selected:i,onClick:function(){function M(){return c("tryinput")}return M}(),children:i?"Auto":"Off"}),children:(0,e.createComponentVNode)(2,t.Box,{color:x,children:l>=100&&"Fully Charged"||h&&"Charging"||"Not Charging"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Input",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:C===0,onClick:function(){function M(){return c("input",{target:"min"})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:C===0,onClick:function(){function M(){return c("input",{adjust:-1e4})}return M}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Slider,{value:C/b,fillValue:p/b,minValue:0,maxValue:v/b,step:5,stepPixelSize:4,format:function(){function M(O){return(0,o.formatPower)(O*b,1)}return M}(),onChange:function(){function M(O,D){return c("input",{target:D*b})}return M}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:C===v,onClick:function(){function M(){return c("input",{adjust:1e4})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:C===v,onClick:function(){function M(){return c("input",{target:"max"})}return M}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available",children:(0,o.formatPower)(p)})]})}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Output",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Output Mode",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:V?"power-off":"times",selected:V,onClick:function(){function M(){return c("tryoutput")}return M}(),children:V?"On":"Off"}),children:(0,e.createComponentVNode)(2,t.Box,{color:T,children:N?y?"Sending":s>0?"Not Sending":"No Charge":"Not Connected"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Output",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:B===0,onClick:function(){function M(){return c("output",{target:"min"})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:B===0,onClick:function(){function M(){return c("output",{adjust:-1e4})}return M}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Slider,{value:B/b,minValue:0,maxValue:L/b,step:5,stepPixelSize:4,format:function(){function M(O){return(0,o.formatPower)(O*b,1)}return M}(),onChange:function(){function M(O,D){return c("output",{target:D*b})}return M}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:B===L,onClick:function(){function M(){return c("output",{adjust:1e4})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:B===L,onClick:function(){function M(){return c("output",{target:"max"})}return M}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Outputting",children:(0,o.formatPower)(w)})]})})]})})})}return I}()},63584:function(A,r,n){"use strict";r.__esModule=!0,r.SolarControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SolarControl=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=0,m=1,l=2,d=u.generated,s=u.generated_ratio,i=u.tracking_state,h=u.tracking_rate,C=u.connected_panels,v=u.connected_tracker,p=u.cdir,N=u.direction,V=u.rotating_direction;return(0,e.createComponentVNode)(2,o.Window,{width:490,height:277,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Scan for new hardware",onClick:function(){function y(){return g("refresh")}return y}()}),children:(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Solar tracker",color:v?"good":"bad",children:v?"OK":"N/A"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Solar panels",color:C>0?"good":"bad",children:C})]})}),(0,e.createComponentVNode)(2,t.Grid.Column,{size:2,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power output",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[.66,1/0],average:[.33,.66],bad:[-1/0,.33]},minValue:0,maxValue:1,value:s,children:d+" W"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Panel orientation",children:[p,"\xB0 (",N,")"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker rotation",children:[i===l&&(0,e.createComponentVNode)(2,t.Box,{children:" Automated "}),i===m&&(0,e.createComponentVNode)(2,t.Box,{children:[" ",h,"\xB0/h (",V,")"," "]}),i===c&&(0,e.createComponentVNode)(2,t.Box,{children:" Tracker offline "})]})]})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Panel orientation",children:[i!==l&&(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0",step:1,stepPixelSize:1,minValue:0,maxValue:359,value:p,onDrag:function(){function y(B,L){return g("cdir",{cdir:L})}return y}()}),i===l&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Automated "})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker status",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Off",selected:i===c,onClick:function(){function y(){return g("track",{track:c})}return y}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"clock-o",content:"Timed",selected:i===m,onClick:function(){function y(){return g("track",{track:m})}return y}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Auto",selected:i===l,disabled:!v,onClick:function(){function y(){return g("track",{track:l})}return y}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker rotation",children:[i===m&&(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0/h",step:1,stepPixelSize:1,minValue:-7200,maxValue:7200,value:h,format:function(){function y(B){var L=Math.sign(B)>0?"+":"-";return L+Math.abs(B)}return y}(),onDrag:function(){function y(B,L){return g("tdir",{tdir:L})}return y}()}),i===c&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Tracker offline "}),i===l&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Automated "})]})]})})]})})}return b}()},38096:function(A,r,n){"use strict";r.__esModule=!0,r.SpawnersMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SpawnersMenu=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.spawners||[];return(0,e.createComponentVNode)(2,o.Window,{width:700,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{children:c.map(function(m){return(0,e.createComponentVNode)(2,t.Section,{mb:.5,title:m.name+" ("+m.amount_left+" left)",level:2,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-circle-right",content:"Jump",onClick:function(){function l(){return g("jump",{ID:m.uids})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-circle-right",content:"Spawn",onClick:function(){function l(){return g("spawn",{ID:m.uids})}return l}()})],4),children:[(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},mb:1,fontSize:"16px",children:m.desc}),!!m.fluff&&(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},textColor:"#878787",fontSize:"14px",children:m.fluff}),!!m.important_info&&(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},mt:1,bold:!0,color:"red",fontSize:"18px",children:m.important_info})]},m.name)})})})})}return b}()},30586:function(A,r,n){"use strict";r.__esModule=!0,r.SpecMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SpecMenu=function(){function g(u,c){return(0,e.createComponentVNode)(2,o.Window,{width:1100,height:600,theme:"nologo",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,S),(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k)]})})})}return g}(),b=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Hemomancer",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function i(){return l("hemomancer")}return i}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on blood magic and the manipulation of blood around you.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Vampiric claws",16),(0,e.createTextVNode)(": Unlocked at 150 blood, allows you to summon a robust pair of claws that attack rapidly, drain a targets blood, and heal you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood Barrier",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to select two turfs and create a wall between them.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood tendrils",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to slow everyone in a targeted 3x3 area after a short delay.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Sanguine pool",16),(0,e.createTextVNode)(": Unlocked at 400 blood, allows you to travel at high speeds for a short duration. Doing this leaves behind blood splatters. You can move through anything but walls and space when doing this.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Predator senses",16),(0,e.createTextVNode)(": Unlocked at 600 blood, allows you to sniff out anyone within the same sector as you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood eruption",16),(0,e.createTextVNode)(": Unlocked at 800 blood, allows you to manipulate all nearby blood splatters, in 4 tiles around you, into spikes that impale anyone stood ontop of them.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"The blood bringers rite",16),(0,e.createTextVNode)(": When toggled you will rapidly drain the blood of everyone who is nearby and use it to heal yourself slightly and remove any incapacitating effects rapidly.")],4)]})})},S=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Umbrae",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function i(){return l("umbrae")}return i}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on darkness, stealth ambushing and mobility.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Cloak of darkness",16),(0,e.createTextVNode)(": Unlocked at 150 blood, when toggled, allows you to become nearly invisible and move rapidly when in dark regions. While active, burn damage is more effective against you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Shadow anchor",16),(0,e.createTextVNode)(": Unlocked at 250 blood, casting it will create an anchor at the cast location after a short delay. If you then cast the ability again, you are teleported back to the anchor. If you do not cast again within 2 minutes, you will do a fake recall, causing a clone to appear at the anchor and making yourself invisible. It will not teleport you between Z levels.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Shadow snare",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to summon a trap that when crossed blinds and ensnares the victim. This trap is hard to see, but withers in the light.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Dark passage",16),(0,e.createTextVNode)(": Unlocked at 400 blood, allows you to target a turf on screen, you will then teleport to that turf.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Extinguish",16),(0,e.createTextVNode)(": Unlocked at 600 blood, allows you to snuff out nearby electronic light sources and glowshrooms.")],4),(0,e.createVNode)(1,"b",null,"Shadow boxing",16),": Unlocked at 800 blood, sends out shadow clones towards a target, damaging them while you remain in range.",(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Eternal darkness",16),(0,e.createTextVNode)(": When toggled, you consume yourself in unholy darkness, only the strongest of lights will be able to see through it. Inside the radius, nearby creatures will freeze and energy projectiles will deal less damage.")],4),(0,e.createVNode)(1,"p",null,"In addition, you also gain permanent X-ray vision.",16)]})})},I=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Gargantua",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function i(){return l("gargantua")}return i}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on tenacity and melee damage.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Rejuvenate",16),(0,e.createTextVNode)(": Will heal you at an increased rate based on how much damage you have taken.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood swell",16),(0,e.createTextVNode)(": Unlocked at 150 blood, increases your resistance to physical damage, stuns and stamina for 30 seconds. While it is active you cannot fire guns.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Seismic stomp",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to stomp the ground to send out a shockwave, knocking people back.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood rush",16),(0,e.createTextVNode)(": Unlocked at 250 blood, gives you a short speed boost when cast.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood swell II",16),(0,e.createTextVNode)(": Unlocked at 400 blood, increases all melee damage by 10.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Overwhelming force",16),(0,e.createTextVNode)(": Unlocked at 600 blood, when toggled, if you bump into a door that you do not have access to, it will force it open. In addition, you cannot be pushed or pulled while it is active.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Demonic grasp",16),(0,e.createTextVNode)(": Unlocked at 800 blood, allows you to send out a demonic hand to snare someone. If you are on disarm/grab intent you will push/pull the target, respectively.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Charge",16),(0,e.createTextVNode)(": Unlocked at 800 blood, you gain the ability to charge at a target. Destroying and knocking back pretty much anything you collide with.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full Power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Desecrated Duel",16),(0,e.createTextVNode)(": Leap towards a visible enemy, creating an arena upon landing, infusing you with increased regeneration, and granting you resistance to internal damages.")],4)]})})},k=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Dantalion",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function i(){return l("dantalion")}return i}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on thralling and illusions.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Enthrall",16),(0,e.createTextVNode)(": Unlocked at 150 blood, Thralls your target to your will, requires you to stand still. Does not work on mindshielded or already enthralled/mindslaved people.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Thrall cap",16),(0,e.createTextVNode)(": You can only thrall a max of 1 person at a time. This can be increased at 400 blood, 600 blood and at full power to a max of 4 thralls.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Thrall commune",16),(0,e.createTextVNode)(": Unlocked at 150 blood, Allows you to talk to your thralls, your thralls can talk back in the same way.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Subspace swap",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to swap positions with a target.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Pacify",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to pacify a target, preventing them from causing harm for 40 seconds.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Decoy",16),(0,e.createTextVNode)(": Unlocked at 400 blood, briefly turn invisible and send out an illusion to fool everyone nearby.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Rally thralls",16),(0,e.createTextVNode)(": Unlocked at 600 blood, removes all incapacitating effects from nearby thralls.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood bond",16),(0,e.createTextVNode)(": Unlocked at 800 blood, when cast, all nearby thralls become linked to you. If anyone in the network takes damage, it is shared equally between everyone in the network. If a thrall goes out of range, they will be removed from the network.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full Power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Mass Hysteria",16),(0,e.createTextVNode)(": Casts a powerful illusion that blinds and then makes everyone nearby perceive others as random animals.")],4)]})})}},95152:function(A,r,n){"use strict";r.__esModule=!0,r.StackCraft=void 0;var e=n(89005),a=n(72253),t=n(88510),o=n(64795),f=n(25328),b=n(98595),S=n(36036),I=r.StackCraft=function(){function s(){return(0,e.createComponentVNode)(2,b.Window,{width:350,height:500,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,k)})})}return s}(),k=function(i,h){var C=(0,a.useBackend)(h),v=C.data,p=v.amount,N=v.recipes,V=(0,a.useLocalState)(h,"searchText",""),y=V[0],B=V[1],L=g(N,(0,f.createSearch)(y)),w=(0,a.useLocalState)(h,"",!1),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,S.Section,{fill:!0,scrollable:!0,title:"Amount: "+p,buttons:(0,e.createFragment)([x&&(0,e.createComponentVNode)(2,S.Input,{width:12.5,value:y,placeholder:"Find recipe",onInput:function(){function M(O,D){return B(D)}return M}()}),(0,e.createComponentVNode)(2,S.Button,{ml:.5,tooltip:"Search",tooltipPosition:"bottom-end",icon:"magnifying-glass",selected:x,onClick:function(){function M(){return T(!x)}return M}()})],0),children:L?(0,e.createComponentVNode)(2,l,{recipes:L}):(0,e.createComponentVNode)(2,S.NoticeBox,{children:"No recipes found!"})})},g=function s(i,h){var C=(0,o.flow)([(0,t.map)(function(v){var p=v[0],N=v[1];return u(N)?h(p)?v:[p,s(N,h)]:h(p)?v:[p,void 0]}),(0,t.filter)(function(v){var p=v[0],N=v[1];return N!==void 0}),(0,t.sortBy)(function(v){var p=v[0],N=v[1];return p}),(0,t.sortBy)(function(v){var p=v[0],N=v[1];return!u(N)}),(0,t.reduce)(function(v,p){var N=p[0],V=p[1];return v[N]=V,v},{})])(Object.entries(i));return Object.keys(C).length?C:void 0},u=function(i){return i.uid===void 0},c=function(i,h){return i.required_amount>h?0:Math.floor(h/i.required_amount)},m=function(i,h){for(var C=(0,a.useBackend)(h),v=C.act,p=i.recipe,N=i.max_possible_multiplier,V=Math.min(N,Math.floor(p.max_result_amount/p.result_amount)),y=[5,10,25],B=[],L=function(){var M=x[w];V>=M&&B.push((0,e.createComponentVNode)(2,S.Button,{bold:!0,translucent:!0,fontSize:.85,width:"32px",content:M*p.result_amount+"x",onClick:function(){function O(){return v("make",{recipe_uid:p.uid,multiplier:M})}return O}()}))},w=0,x=y;w1?B+"x ":"",E=L>1?"s":"",P=""+D+V,R=L+" sheet"+E,j=c(y,N);return(0,e.createComponentVNode)(2,S.ImageButton,{fluid:!0,base64:O,dmIcon:T,dmIconState:M,imageSize:32,disabled:!j,tooltip:R,buttons:w>1&&j>1&&(0,e.createComponentVNode)(2,m,{recipe:y,max_possible_multiplier:j}),onClick:function(){function F(){return v("make",{recipe_uid:x,multiplier:1})}return F}(),children:P})}},38307:function(A,r,n){"use strict";r.__esModule=!0,r.StationAlertConsoleContent=r.StationAlertConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.StationAlertConsole=function(){function S(){return(0,e.createComponentVNode)(2,o.Window,{width:325,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b)})})}return S}(),b=r.StationAlertConsoleContent=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.data,c=u.alarms||[],m=c.Fire||[],l=c.Atmosphere||[],d=c.Power||[];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Fire Alarms",children:(0,e.createVNode)(1,"ul",null,[m.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),m.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Atmospherics Alarms",children:(0,e.createVNode)(1,"ul",null,[l.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),l.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Alarms",children:(0,e.createVNode)(1,"ul",null,[d.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),d.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)})],4)}return S}()},96091:function(A,r,n){"use strict";r.__esModule=!0,r.StationTraitsPanel=void 0;var e=n(89005),a=n(88510),t=n(42127),o=n(72253),f=n(36036),b=n(98595),S=function(u){return u[u.SetupFutureStationTraits=0]="SetupFutureStationTraits",u[u.ViewStationTraits=1]="ViewStationTraits",u}(S||{}),I=function(c,m){var l=(0,o.useBackend)(m),d=l.act,s=l.data,i=s.future_station_traits,h=(0,o.useLocalState)(m,"selectedFutureTrait",null),C=h[0],v=h[1],p=Object.fromEntries(s.valid_station_traits.map(function(V){return[V.name,V.path]})),N=Object.keys(p);return N.sort(),(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Dropdown,{displayText:!C&&"Select trait to add...",onSelected:v,options:N,selected:C,width:"100%"})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"green",icon:"plus",onClick:function(){function V(){if(C){var y=p[C],B=[y];if(i){var L,w=i.map(function(x){return x.path});if(w.indexOf(y)!==-1)return;B=(L=B).concat.apply(L,w)}d("setup_future_traits",{station_traits:B})}}return V}(),children:"Add"})})]}),(0,e.createComponentVNode)(2,f.Divider),Array.isArray(i)?i.length>0?(0,e.createComponentVNode)(2,f.Stack,{vertical:!0,fill:!0,children:i.map(function(V){return(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:V.name}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"red",icon:"times",onClick:function(){function y(){d("setup_future_traits",{station_traits:(0,a.filterMap)(i,function(B){if(B.path!==V.path)return B.path})})}return y}(),children:"Delete"})})]})},V.path)})}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Box,{children:"No station traits will run next round."}),(0,e.createComponentVNode)(2,f.Button,{mt:1,fluid:!0,color:"good",icon:"times",tooltip:"The next round will roll station traits randomly, just like normal",onClick:function(){function V(){return d("clear_future_traits")}return V}(),children:"Run Station Traits Normally"})]}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Box,{children:"No future station traits are planned."}),(0,e.createComponentVNode)(2,f.Button,{mt:1,fluid:!0,color:"red",icon:"times",onClick:function(){function V(){return d("setup_future_traits",{station_traits:[]})}return V}(),children:"Prevent station traits from running next round"})]})]})},k=function(c,m){var l=(0,o.useBackend)(m),d=l.act,s=l.data;return s.current_traits.length>0?(0,e.createComponentVNode)(2,f.Stack,{vertical:!0,fill:!0,children:s.current_traits.map(function(i){return(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:i.name}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button.Confirm,{content:"Revert",color:"red",disabled:s.too_late_to_revert||!i.can_revert,tooltip:!i.can_revert&&"This trait is not revertable."||s.too_late_to_revert&&"It's too late to revert station traits, the round has already started.",icon:"times",onClick:function(){function h(){return d("revert",{ref:i.ref})}return h}()})})]})},i.ref)})}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:"There are no active station traits."})},g=r.StationTraitsPanel=function(){function u(c,m){var l=(0,o.useLocalState)(m,"station_traits_tab",S.ViewStationTraits),d=l[0],s=l[1],i;switch(d){case S.SetupFutureStationTraits:i=(0,e.createComponentVNode)(2,I);break;case S.ViewStationTraits:i=(0,e.createComponentVNode)(2,k);break;default:(0,t.exhaustiveCheck)(d)}return(0,e.createComponentVNode)(2,b.Window,{title:"Modify Station Traits",height:350,width:350,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"eye",selected:d===S.ViewStationTraits,onClick:function(){function h(){return s(S.ViewStationTraits)}return h}(),children:"View"}),(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"edit",selected:d===S.SetupFutureStationTraits,onClick:function(){function h(){return s(S.SetupFutureStationTraits)}return h}(),children:"Edit"})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{m:0,children:[(0,e.createComponentVNode)(2,f.Divider),i]})]})})})}return u}()},39409:function(A,r,n){"use strict";r.__esModule=!0,r.StripMenu=void 0;var e=n(89005),a=n(88510),t=n(79140),o=n(72253),f=n(36036),b=n(98595),S=5,I=9,k=function(C){return C===0?5:9},g="64px",u=function(C){return C[0]+"/"+C[1]},c=function(C){var v=C.align,p=C.children;return(0,e.createComponentVNode)(2,f.Box,{style:{position:"absolute",left:v==="left"?"6px":"48px","text-align":v,"text-shadow":"2px 2px 2px #000",top:"2px"},children:p})},m={enable_internals:{icon:"lungs",text:"Enable internals"},disable_internals:{icon:"lungs",text:"Disable internals"},enable_lock:{icon:"lock",text:"Enable lock"},disable_lock:{icon:"unlock",text:"Disable lock"},suit_sensors:{icon:"tshirt",text:"Adjust suit sensors"},remove_accessory:{icon:"medal",text:"Remove accessory"},dislodge_headpocket:{icon:"head-side-virus",text:"Dislodge headpocket"}},l={eyes:{displayName:"eyewear",gridSpot:u([0,0]),image:"inventory-glasses.png"},head:{displayName:"headwear",gridSpot:u([0,1]),image:"inventory-head.png"},mask:{displayName:"mask",gridSpot:u([1,1]),image:"inventory-mask.png"},neck:{displayName:"neck",gridSpot:u([1,0]),image:"inventory-neck.png"},pet_collar:{displayName:"collar",gridSpot:u([1,1]),image:"inventory-collar.png"},right_ear:{displayName:"right ear",gridSpot:u([0,2]),image:"inventory-ears.png"},left_ear:{displayName:"left ear",gridSpot:u([1,2]),image:"inventory-ears.png"},parrot_headset:{displayName:"headset",gridSpot:u([1,2]),image:"inventory-ears.png"},handcuffs:{displayName:"handcuffs",gridSpot:u([1,3])},legcuffs:{displayName:"legcuffs",gridSpot:u([1,4])},jumpsuit:{displayName:"uniform",gridSpot:u([2,0]),image:"inventory-uniform.png"},suit:{displayName:"suit",gridSpot:u([2,1]),image:"inventory-suit.png"},gloves:{displayName:"gloves",gridSpot:u([2,2]),image:"inventory-gloves.png"},right_hand:{displayName:"right hand",gridSpot:u([2,3]),image:"inventory-hand_r.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"left",children:"R"})},left_hand:{displayName:"left hand",gridSpot:u([2,4]),image:"inventory-hand_l.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"right",children:"L"})},shoes:{displayName:"shoes",gridSpot:u([3,1]),image:"inventory-shoes.png"},suit_storage:{displayName:"suit storage",gridSpot:u([4,0]),image:"inventory-suit_storage.png"},id:{displayName:"ID",gridSpot:u([4,1]),image:"inventory-id.png"},belt:{displayName:"belt",gridSpot:u([4,2]),image:"inventory-belt.png"},back:{displayName:"backpack",gridSpot:u([4,3]),image:"inventory-back.png"},left_pocket:{displayName:"left pocket",gridSpot:u([3,4]),image:"inventory-pocket.png"},right_pocket:{displayName:"right pocket",gridSpot:u([3,3]),image:"inventory-pocket.png"},pda:{displayName:"PDA",gridSpot:u([4,4]),image:"inventory-pda.png"}},d={eyes:{displayName:"eyewear",gridSpot:u([0,0]),image:"inventory-glasses.png"},head:{displayName:"headwear",gridSpot:u([0,1]),image:"inventory-head.png"},mask:{displayName:"mask",gridSpot:u([1,1]),image:"inventory-mask.png"},neck:{displayName:"neck",gridSpot:u([1,0]),image:"inventory-neck.png"},pet_collar:{displayName:"collar",gridSpot:u([1,1]),image:"inventory-collar.png"},right_ear:{displayName:"right ear",gridSpot:u([0,2]),image:"inventory-ears.png"},left_ear:{displayName:"left ear",gridSpot:u([1,2]),image:"inventory-ears.png"},parrot_headset:{displayName:"headset",gridSpot:u([1,2]),image:"inventory-ears.png"},handcuffs:{displayName:"handcuffs",gridSpot:u([1,3])},legcuffs:{displayName:"legcuffs",gridSpot:u([1,4])},jumpsuit:{displayName:"uniform",gridSpot:u([2,0]),image:"inventory-uniform.png"},suit:{displayName:"suit",gridSpot:u([2,1]),image:"inventory-suit.png"},gloves:{displayName:"gloves",gridSpot:u([2,2]),image:"inventory-gloves.png"},right_hand:{displayName:"right hand",gridSpot:u([4,4]),image:"inventory-hand_r.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"left",children:"R"})},left_hand:{displayName:"left hand",gridSpot:u([4,5]),image:"inventory-hand_l.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"right",children:"L"})},shoes:{displayName:"shoes",gridSpot:u([3,1]),image:"inventory-shoes.png"},suit_storage:{displayName:"suit storage",gridSpot:u([4,0]),image:"inventory-suit_storage.png"},id:{displayName:"ID",gridSpot:u([4,1]),image:"inventory-id.png"},belt:{displayName:"belt",gridSpot:u([4,2]),image:"inventory-belt.png"},back:{displayName:"backpack",gridSpot:u([4,3]),image:"inventory-back.png"},left_pocket:{displayName:"left pocket",gridSpot:u([4,7]),image:"inventory-pocket.png"},right_pocket:{displayName:"right pocket",gridSpot:u([4,6]),image:"inventory-pocket.png"},pda:{displayName:"PDA",gridSpot:u([4,8]),image:"inventory-pda.png"}},s=function(h){return h[h.Completely=1]="Completely",h[h.Hidden=2]="Hidden",h}(s||{}),i=r.StripMenu=function(){function h(C,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,y=new Map;if(V.show_mode===0)for(var B=0,L=Object.keys(V.items);B=.01})},(0,a.sortBy)(function(T){return-T.amount})])(C.gases||[]),x=Math.max.apply(Math,[1].concat(w.map(function(T){return T.portion})));return(0,e.createComponentVNode)(2,I.Window,{width:550,height:250,children:(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"270px",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Metrics",children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:p/100,ranges:{good:[.9,1/0],average:[.5,.9],bad:[-1/0,.5]}})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Relative EER",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N,minValue:0,maxValue:5e3,ranges:{good:[-1/0,5e3],average:[5e3,7e3],bad:[7e3,1/0]},children:(0,o.toFixed)(N)+" MeV/cm3"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Gas Coefficient",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:L,minValue:1,maxValue:5.25,ranges:{bad:[1,1.55],average:[1.55,5.25],good:[5.25,1/0]},children:L.toFixed(2)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:u(V),minValue:0,maxValue:u(1e4),ranges:{teal:[-1/0,u(80)],good:[u(80),u(373)],average:[u(373),u(1e3)],bad:[u(1e3),1/0]},children:(0,o.toFixed)(V)+" K"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Mole Per Tile",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:B,minValue:0,maxValue:12e3,ranges:{teal:[-1/0,100],average:[100,11333],good:[11333,12e3],bad:[12e3,1/0]},children:(0,o.toFixed)(B)+" mol"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Pressure",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:u(y),minValue:0,maxValue:u(5e4),ranges:{good:[u(1),u(300)],average:[-1/0,u(1e3)],bad:[u(1e3),1/0]},children:(0,o.toFixed)(y)+" kPa"})})]})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Gases",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"arrow-left",content:"Back",onClick:function(){function T(){return h("back")}return T}()}),children:(0,e.createComponentVNode)(2,b.LabeledList,{children:w.map(function(T){return(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:(0,S.getGasLabel)(T.name),children:(0,e.createComponentVNode)(2,b.ProgressBar,{color:(0,S.getGasColor)(T.name),value:T.portion,minValue:0,maxValue:x,children:(0,o.toFixed)(T.amount)+" mol ("+T.portion+"%)"})},T.name)})})})})]})})})}},46029:function(A,r,n){"use strict";r.__esModule=!0,r.SyndicateComputerSimple=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SyndicateComputerSimple=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data;return(0,e.createComponentVNode)(2,o.Window,{theme:"syndicate",width:400,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:u.rows.map(function(c){return(0,e.createComponentVNode)(2,t.Section,{title:c.title,buttons:(0,e.createComponentVNode)(2,t.Button,{content:c.buttontitle,disabled:c.buttondisabled,tooltip:c.buttontooltip,tooltipPosition:"left",onClick:function(){function m(){return g(c.buttonact)}return m}()}),children:[c.status,!!c.bullets&&(0,e.createComponentVNode)(2,t.Box,{children:c.bullets.map(function(m){return(0,e.createComponentVNode)(2,t.Box,{children:m},m)})})]},c.title)})})})}return b}()},36372:function(A,r,n){"use strict";r.__esModule=!0,r.TEG=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(I){return I.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,")},b=r.TEG=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data;return c.error?(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Error",children:[c.error,(0,e.createComponentVNode)(2,t.Button,{icon:"circle",content:"Recheck",onClick:function(){function m(){return u("check")}return m}()})]})})}):(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Cold Loop ("+c.cold_dir+")",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cold Inlet",children:[f(c.cold_inlet_temp)," K, ",f(c.cold_inlet_pressure)," kPa"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cold Outlet",children:[f(c.cold_outlet_temp)," K, ",f(c.cold_outlet_pressure)," kPa"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Hot Loop ("+c.hot_dir+")",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hot Inlet",children:[f(c.hot_inlet_temp)," K, ",f(c.hot_inlet_pressure)," kPa"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hot Outlet",children:[f(c.hot_outlet_temp)," K, ",f(c.hot_outlet_pressure)," kPa"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Output",children:[f(c.output_power)," W",!!c.warning_switched&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Cold inlet temperature exceeds hot inlet temperature."}),!!c.warning_cold_pressure&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Cold circulator inlet pressure is under 1,000 kPa."}),!!c.warning_hot_pressure&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Hot circulator inlet pressure is under 1,000 kPa."})]})]})})}return S}()},23190:function(A,r,n){"use strict";r.__esModule=!0,r.TTSSeedsExplorerContent=r.TTSSeedsExplorer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(46095),f=n(98595),b={0:"Free",1:"Tier I",2:"Tier II",3:"Tier III",4:"Tier IV",5:"Tier V"},S={male:"\u041C\u0443\u0436\u0441\u043A\u043E\u0439",female:"\u0416\u0435\u043D\u0441\u043A\u0438\u0439"},I={\u041C\u0443\u0436\u0441\u043A\u043E\u0439:{icon:"mars",color:"blue"},\u0416\u0435\u043D\u0441\u043A\u0438\u0439:{icon:"venus",color:"purple"},\u041B\u044E\u0431\u043E\u0439:{icon:"venus-mars",color:"white"}},k=function(m,l,d,s){return s===void 0&&(s=null),m.map(function(i){var h,C=(h=i[s])!=null?h:i;return(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:l.includes(i),content:C,onClick:function(){function v(){l.includes(i)?d(l.filter(function(p){var N;return((N=p[s])!=null?N:p)!==i})):d([i].concat(l))}return v}()},C)})},g=r.TTSSeedsExplorer=function(){function c(){return(0,e.createComponentVNode)(2,f.Window,{width:1e3,height:685,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,u)})})})}return c}(),u=r.TTSSeedsExplorerContent=function(){function c(m,l){var d=(0,a.useBackend)(l),s=d.act,i=d.data,h=i.providers,C=i.seeds,v=i.selected_seed,p=i.phrases,N=i.donator_level,V=i.character_gender,y=C.map(function(Y){return Y.category}).filter(function(Y,ve,he){return he.indexOf(Y)===ve}).sort(function(Y,ve){return Y.localeCompare(ve)}),B=C.map(function(Y){return Y.gender}).filter(function(Y,ve,he){return he.indexOf(Y)===ve}),L=C.map(function(Y){return Y.required_donator_level}).filter(function(Y,ve,he){return he.indexOf(Y)===ve}).sort(function(Y,ve){return Y-ve}).map(function(Y){return b[Y]}),w=(0,a.useLocalState)(l,"selectedProviders",h),x=w[0],T=w[1],M=(0,a.useLocalState)(l,"selectedGenders",B.includes(S[V])?[S[V]]:B),O=M[0],D=M[1],E=(0,a.useLocalState)(l,"selectedCategories",y),P=E[0],R=E[1],j=(0,a.useLocalState)(l,"selectedDonatorLevels",L.includes(b[N])?L.slice(0,L.indexOf(b[N])+1):L),F=j[0],W=j[1],z=(0,a.useLocalState)(l,"selectedPhrase",p[0]),K=z[0],G=z[1],J=(0,a.useLocalState)(l,"searchtext",""),Q=J[0],ue=J[1],ie=(0,a.useLocalState)(l,"searchToggle",!1),pe=ie[0],te=ie[1],q=k(h,x,T,"name"),ne=k(B,O,D),le=k(y,P,R),ee=k(L,F,W),re=(0,e.createComponentVNode)(2,t.Dropdown,{options:p,selected:K.replace(/(.{60})..+/,"$1..."),width:"21.3em",onSelected:function(){function Y(ve){return G(ve)}return Y}()}),oe=(0,e.createFragment)([pe&&(0,e.createComponentVNode)(2,t.Input,{placeholder:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435...",width:20,onInput:function(){function Y(ve,he){return ue(he)}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"magnifying-glass",tooltip:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u0438\u0441\u043A",tooltipPosition:"bottom-end",selected:pe,onClick:function(){function Y(){return te(!pe)}return Y}()})],0),fe=C.sort(function(Y,ve){var he=Y.name.toLowerCase(),Ve=ve.name.toLowerCase();return he>Ve?1:he0&&v!==Y.name?"orange":"white",children:Y.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,opacity:v===Y.name?.5:.25,textAlign:"left",children:Y.category}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,opacity:.5,textColor:v===Y.name?"white":I[Y.gender].color,textAlign:"left",children:(0,e.createComponentVNode)(2,t.Icon,{mx:1,size:1.2,name:I[Y.gender].icon})}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,opacity:.5,textColor:"white",textAlign:"right",children:Y.required_donator_level>0&&(0,e.createFragment)([b[Y.required_donator_level],(0,e.createComponentVNode)(2,t.Icon,{ml:1,mr:2,name:"coins"})],0)})]},Y.name)});return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"30.25em",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"\u041F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u044B",children:q}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"\u041F\u043E\u043B",children:ne}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"\u0422\u0438\u0440",children:ee}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"\u0424\u0440\u0430\u0437\u0430",children:re})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"times",disabled:P.length===0,onClick:function(){function Y(){return R([])}return Y}(),children:"\u0423\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0451"}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",disabled:P.length===y.length,onClick:function(){function Y(){return R(y)}return Y}(),children:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0451"})],4),children:le})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.BlockQuote,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"11px",children:"\u0414\u043B\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u044F \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0432 \u0443\u0441\u043B\u043E\u0432\u0438\u044F\u0445 \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0445 \u0440\u0430\u0441\u0445\u043E\u0434\u043E\u0432 \u0447\u0430\u0441\u0442\u044C \u0433\u043E\u043B\u043E\u0441\u043E\u0432 \u043F\u0440\u0438\u0448\u043B\u043E\u0441\u044C \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u043C\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044C\u043D\u0443\u044E \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0443 \u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0430."}),(0,e.createComponentVNode)(2,t.Box,{mt:1.5,italic:!0,color:"gray",fontSize:"10px",children:"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435 \u043E\u0431 \u044D\u0442\u043E\u043C \u043C\u043E\u0436\u043D\u043E \u0443\u0437\u043D\u0430\u0442\u044C \u0432 \u043D\u0430\u0448\u0435\u043C Discord-\u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0435."})]})})})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"\u0413\u043E\u043B\u043E\u0441\u0430 ("+fe.length+"/"+C.length+")",buttons:oe,children:(0,e.createComponentVNode)(2,t.Table,{children:(0,e.createComponentVNode)(2,o.VirtualList,{children:me})})})})],4)}return c}()},56441:function(A,r,n){"use strict";r.__esModule=!0,r.TachyonArrayContent=r.TachyonArray=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TachyonArray=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.records,l=m===void 0?[]:m,d=c.explosion_target,s=c.toxins_tech,i=c.printing;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shift's Target",children:d}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Toxins Level",children:s}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Administration",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print All Logs",disabled:!l.length||i,align:"center",onClick:function(){function h(){return u("print_logs")}return h}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash",content:"Delete All Logs",disabled:!l.length,color:"bad",align:"center",onClick:function(){function h(){return u("delete_logs")}return h}()})]})]})}),l.length?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No Records"})]})})}return S}(),b=r.TachyonArrayContent=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.records,l=m===void 0?[]:m;return(0,e.createComponentVNode)(2,t.Section,{title:"Logged Explosions",children:(0,e.createComponentVNode)(2,t.Flex,{children:(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Time"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Epicenter"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actual Size"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Theoretical Size"})]}),l.map(function(d){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.logged_time}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.epicenter}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.actual_size_message}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.theoretical_size_message}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash",content:"Delete",color:"bad",onClick:function(){function s(){return u("delete_record",{index:d.index})}return s}()})})]},d.index)})]})})})})}return S}()},1754:function(A,r,n){"use strict";r.__esModule=!0,r.Tank=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Tank=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c;return u.has_mask?c=(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mask",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,width:"76%",icon:u.connected?"check":"times",content:u.connected?"Internals On":"Internals Off",selected:u.connected,onClick:function(){function m(){return g("internals")}return m}()})}):c=(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mask",color:"red",children:"No Mask Equipped"}),(0,e.createComponentVNode)(2,o.Window,{width:325,height:135,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tank Pressure",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:u.tankPressure/1013,ranges:{good:[.35,1/0],average:[.15,.35],bad:[-1/0,.15]},children:u.tankPressure+" kPa"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Release Pressure",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:u.ReleasePressure===u.minReleasePressure,tooltip:"Min",onClick:function(){function m(){return g("pressure",{pressure:"min"})}return m}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,value:parseFloat(u.releasePressure),width:"65px",unit:"kPa",minValue:u.minReleasePressure,maxValue:u.maxReleasePressure,onChange:function(){function m(l,d){return g("pressure",{pressure:d})}return m}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:u.ReleasePressure===u.maxReleasePressure,tooltip:"Max",onClick:function(){function m(){return g("pressure",{pressure:"max"})}return m}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"undo",content:"",disabled:u.ReleasePressure===u.defaultReleasePressure,tooltip:"Reset",onClick:function(){function m(){return g("pressure",{pressure:"reset"})}return m}()})]}),c]})})})})}return b}()},7579:function(A,r,n){"use strict";r.__esModule=!0,r.TankDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TankDispenser=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.o_tanks,m=u.p_tanks;return(0,e.createComponentVNode)(2,o.Window,{width:250,height:105,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Dispense Oxygen Tank ("+c+")",disabled:c===0,icon:"arrow-circle-down",onClick:function(){function l(){return g("oxygen")}return l}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{mt:1,fluid:!0,content:"Dispense Plasma Tank ("+m+")",disabled:m===0,icon:"arrow-circle-down",onClick:function(){function l(){return g("plasma")}return l}()})})]})})})}return b}()},16136:function(A,r,n){"use strict";r.__esModule=!0,r.TcommsCore=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TcommsCore=function(){function g(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.ion,i=(0,a.useLocalState)(c,"tabIndex",0),h=i[0],C=i[1],v=function(){function p(N){switch(N){case 0:return(0,e.createComponentVNode)(2,S);case 1:return(0,e.createComponentVNode)(2,I);case 2:return(0,e.createComponentVNode)(2,k);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}}return p}();return(0,e.createComponentVNode)(2,o.Window,{width:900,height:520,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[s===1&&(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"wrench",selected:h===0,onClick:function(){function p(){return C(0)}return p}(),children:"Configuration"},"ConfigPage"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"link",selected:h===1,onClick:function(){function p(){return C(1)}return p}(),children:"Device Linkage"},"LinkagePage"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"user-times",selected:h===2,onClick:function(){function p(){return C(2)}return p}(),children:"User Filtering"},"FilterPage")]}),v(h)]})})}return g}(),b=function(){return(0,e.createComponentVNode)(2,t.NoticeBox,{children:"ERROR: An Ionospheric overload has occured. Please wait for the machine to reboot. This cannot be manually done."})},S=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.active,i=d.sectors_available,h=d.nttc_toggle_jobs,C=d.nttc_toggle_job_color,v=d.nttc_toggle_name_color,p=d.nttc_toggle_command_bold,N=d.nttc_job_indicator_type,V=d.nttc_setting_language,y=d.network_id;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Machine Power",children:(0,e.createComponentVNode)(2,t.Button,{content:s?"On":"Off",selected:s,icon:"power-off",onClick:function(){function B(){return l("toggle_active")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sector Coverage",children:i})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Radio Configuration",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Announcements",children:(0,e.createComponentVNode)(2,t.Button,{content:h?"On":"Off",selected:h,icon:"user-tag",onClick:function(){function B(){return l("nttc_toggle_jobs")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Departmentalisation",children:(0,e.createComponentVNode)(2,t.Button,{content:C?"On":"Off",selected:C,icon:"clipboard-list",onClick:function(){function B(){return l("nttc_toggle_job_color")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name Departmentalisation",children:(0,e.createComponentVNode)(2,t.Button,{content:v?"On":"Off",selected:v,icon:"user-tag",onClick:function(){function B(){return l("nttc_toggle_name_color")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Command Amplification",children:(0,e.createComponentVNode)(2,t.Button,{content:p?"On":"Off",selected:p,icon:"volume-up",onClick:function(){function B(){return l("nttc_toggle_command_bold")}return B}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Advanced",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Announcement Format",children:(0,e.createComponentVNode)(2,t.Button,{content:N||"Unset",selected:N,icon:"pencil-alt",onClick:function(){function B(){return l("nttc_job_indicator_type")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Language Conversion",children:(0,e.createComponentVNode)(2,t.Button,{content:V||"Unset",selected:V,icon:"globe",onClick:function(){function B(){return l("nttc_setting_language")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network ID",children:(0,e.createComponentVNode)(2,t.Button,{content:y||"Unset",selected:y,icon:"server",onClick:function(){function B(){return l("network_id")}return B}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Maintenance",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Import Configuration",icon:"file-import",onClick:function(){function B(){return l("import")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Export Configuration",icon:"file-export",onClick:function(){function B(){return l("export")}return B}()})]})],4)},I=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.link_password,i=d.relay_entries;return(0,e.createComponentVNode)(2,t.Section,{title:"Device Linkage",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linkage Password",children:(0,e.createComponentVNode)(2,t.Button,{content:s||"Unset",selected:s,icon:"lock",onClick:function(){function h(){return l("change_password")}return h}()})})}),(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Sector"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Unlink"})]}),i.map(function(h){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.sector}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.status===1?(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Online"}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Offline"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Unlink",icon:"unlink",onClick:function(){function C(){return l("unlink",{addr:h.addr})}return C}()})})]},h.addr)})]})]})},k=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.filtered_users;return(0,e.createComponentVNode)(2,t.Section,{title:"User Filtering",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Add User",icon:"user-plus",onClick:function(){function i(){return l("add_filter")}return i}()}),children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{style:{width:"90%"},children:"User"}),(0,e.createComponentVNode)(2,t.Table.Cell,{style:{width:"10%"},children:"Actions"})]}),s.map(function(i){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:i}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove",icon:"user-times",onClick:function(){function h(){return l("remove_filter",{user:i})}return h}()})})]},i)})]})})}},88046:function(A,r,n){"use strict";r.__esModule=!0,r.TcommsRelay=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TcommsRelay=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.linked,d=m.active,s=m.network_id;return(0,e.createComponentVNode)(2,o.Window,{width:600,height:292,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Relay Configuration",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Machine Power",children:(0,e.createComponentVNode)(2,t.Button,{content:d?"On":"Off",selected:d,icon:"power-off",onClick:function(){function i(){return c("toggle_active")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network ID",children:(0,e.createComponentVNode)(2,t.Button,{content:s||"Unset",selected:s,icon:"server",onClick:function(){function i(){return c("network_id")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Link Status",children:l===1?(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Linked"}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Unlinked"})})]})}),l===1?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,S)]})})}return I}(),b=function(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.linked_core_id,d=m.linked_core_addr,s=m.hidden_link;return(0,e.createComponentVNode)(2,t.Section,{title:"Link Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linked Core ID",children:l}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linked Core Address",children:d}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hidden Link",children:(0,e.createComponentVNode)(2,t.Button,{content:s?"Yes":"No",icon:s?"eye-slash":"eye",selected:s,onClick:function(){function i(){return c("toggle_hidden_link")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unlink",children:(0,e.createComponentVNode)(2,t.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function i(){return c("unlink")}return i}()})})]})})},S=function(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.cores;return(0,e.createComponentVNode)(2,t.Section,{title:"Detected Cores",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Sector"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Link"})]}),l.map(function(d){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:d.sector}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Link",icon:"link",onClick:function(){function s(){return c("link",{addr:d.addr})}return s}()})})]},d.addr)})]})})}},20802:function(A,r,n){"use strict";r.__esModule=!0,r.Teleporter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Teleporter=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.targetsTeleport?u.targetsTeleport:{},m=0,l=1,d=2,s=u.calibrated,i=u.calibrating,h=u.powerstation,C=u.regime,v=u.teleporterhub,p=u.target,N=u.locked,V=u.adv_beacon_allowed,y=u.advanced_beacon_locking;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:270,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:[(!h||!v)&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Error",children:[v,!h&&(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:" Powerstation not linked "}),h&&!v&&(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:" Teleporter hub not linked "})]}),h&&v&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Status",buttons:(0,e.createFragment)(!!V&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"label",children:"Advanced Beacon Locking:\xA0"}),(0,e.createComponentVNode)(2,t.Button,{selected:y,icon:y?"toggle-on":"toggle-off",content:y?"Enabled":"Disabled",onClick:function(){function B(){return g("advanced_beacon_locking",{on:y?0:1})}return B}()})],4),0),children:[(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Teleport target:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[C===m&&(0,e.createComponentVNode)(2,t.Dropdown,{width:18.2,selected:p,disabled:i,options:Object.keys(c),color:p!=="None"?"default":"bad",onSelected:function(){function B(L){return g("settarget",{x:c[L].x,y:c[L].y,z:c[L].z,tptarget:c[L].pretarget})}return B}()}),C===l&&(0,e.createComponentVNode)(2,t.Dropdown,{width:18.2,selected:p,disabled:i,options:Object.keys(c),color:p!=="None"?"default":"bad",onSelected:function(){function B(L){return g("settarget",{x:c[L].x,y:c[L].y,z:c[L].z,tptarget:c[L].pretarget})}return B}()}),C===d&&(0,e.createComponentVNode)(2,t.Box,{children:p})]})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Regime:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Gate",tooltip:"Teleport to another teleport hub.",tooltipPosition:"top",color:C===l?"good":null,onClick:function(){function B(){return g("setregime",{regime:l})}return B}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Teleporter",tooltip:"One-way teleport.",tooltipPosition:"top",color:C===m?"good":null,onClick:function(){function B(){return g("setregime",{regime:m})}return B}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"GPS",tooltip:"Teleport to a location stored in a GPS device.",tooltipPosition:"top-end",color:C===d?"good":null,disabled:!N,onClick:function(){function B(){return g("setregime",{regime:d})}return B}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{label:"Calibration",mt:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Calibration:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[p!=="None"&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:15.8,textAlign:"center",mt:.5,children:i&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"In Progress"})||s&&(0,e.createComponentVNode)(2,t.Box,{color:"good",children:"Optimal"})||(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Sub-Optimal"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{icon:"sync-alt",tooltip:"Calibrates the hub. Accidents may occur when the calibration is not optimal.",tooltipPosition:"bottom-end",disabled:!!(s||i),onClick:function(){function B(){return g("calibrate")}return B}()})})]}),p==="None"&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"21px",children:"No target set"})]})]})]}),!!(N&&h&&v&&C===d)&&(0,e.createComponentVNode)(2,t.Section,{title:"GPS",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Upload GPS data",tooltip:"Loads the GPS data from the device.",icon:"upload",onClick:function(){function B(){return g("load")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject",tooltip:"Ejects the GPS device",icon:"eject",onClick:function(){function B(){return g("eject")}return B}()})]})})]})})})})}return b}()},48517:function(A,r,n){"use strict";r.__esModule=!0,r.TelescienceConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TelescienceConsole=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.last_msg,m=u.linked_pad,l=u.held_gps,d=u.lastdata,s=u.power_levels,i=u.current_max_power,h=u.current_power,C=u.current_bearing,v=u.current_elevation,p=u.current_sector,N=u.working,V=u.max_z,y=(0,a.useLocalState)(I,"dummyrot",C),B=y[0],L=y[1];return(0,e.createComponentVNode)(2,o.Window,{width:400,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:(0,e.createFragment)([c,!(d.length>0)||(0,e.createVNode)(1,"ul",null,d.map(function(w){return(0,e.createVNode)(1,"li",null,w,0,null,w)}),0)],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Telepad Status",children:m===1?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Bearing",children:(0,e.createComponentVNode)(2,t.Box,{inline:!0,position:"relative",children:[(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0",width:6.1,lineHeight:1.5,step:.1,minValue:0,maxValue:360,disabled:N,value:C,onDrag:function(){function w(x,T){return L(T)}return w}(),onChange:function(){function w(x,T){return g("setbear",{bear:T})}return w}()}),(0,e.createComponentVNode)(2,t.Icon,{ml:1,size:1,name:"arrow-up",rotation:B})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Elevation",children:(0,e.createComponentVNode)(2,t.NumberInput,{width:6.1,lineHeight:1.5,step:.1,minValue:0,maxValue:100,disabled:N,value:v,onChange:function(){function w(x,T){return g("setelev",{elev:T})}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Level",children:s.map(function(w,x){return(0,e.createComponentVNode)(2,t.Button,{content:w,selected:h===w,disabled:x>=i-1||N,onClick:function(){function T(){return g("setpwr",{pwr:x+1})}return T}()},w)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Sector",children:(0,e.createComponentVNode)(2,t.NumberInput,{width:6.1,lineHeight:1.5,step:1,minValue:2,maxValue:V,value:p,disabled:N,onChange:function(){function w(x,T){return g("setz",{newz:T})}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Telepad Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Send",disabled:N,onClick:function(){function w(){return g("pad_send")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Receive",disabled:N,onClick:function(){function w(){return g("pad_receive")}return w}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Crystal Maintenance",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Recalibrate Crystals",disabled:N,onClick:function(){function w(){return g("recal_crystals")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject Crystals",disabled:N,onClick:function(){function w(){return g("eject_crystals")}return w}()})]})]}):(0,e.createFragment)([(0,e.createTextVNode)("No pad linked to console. Please use a multitool to link a pad.")],4)}),(0,e.createComponentVNode)(2,t.Section,{title:"GPS Actions",children:l===1?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{disabled:l===0||N,content:"Eject GPS",onClick:function(){function w(){return g("eject_gps")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:l===0||N,content:"Store Coordinates",onClick:function(){function w(){return g("store_to_gps")}return w}()})],4):(0,e.createFragment)([(0,e.createTextVNode)("Please insert a GPS to store coordinates to it.")],4)})]})})}return b}()},21800:function(A,r,n){"use strict";r.__esModule=!0,r.TempGun=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.TempGun=function(){function g(u,c){var m=(0,t.useBackend)(c),l=m.act,d=m.data,s=d.target_temperature,i=d.temperature,h=d.max_temp,C=d.min_temp;return(0,e.createComponentVNode)(2,f.Window,{width:250,height:121,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target Temperature",children:[(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:10,stepPixelSize:6,minValue:C,maxValue:h,value:s,format:function(){function v(p){return(0,a.toFixed)(p,2)}return v}(),width:"50px",onDrag:function(){function v(p,N){return l("target_temperature",{target_temperature:N})}return v}()}),"\xB0C"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Current Temperature",children:(0,e.createComponentVNode)(2,o.Box,{color:S(i),bold:i>500-273.15,children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:(0,a.round)(i,2)}),"\xB0C"]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Power Cost",children:(0,e.createComponentVNode)(2,o.Box,{color:k(i),children:I(i)})})]})})})})}return g}(),S=function(u){return u<=-100?"blue":u<=0?"teal":u<=100?"green":u<=200?"orange":"red"},I=function(u){return u<=100-273.15?"High":u<=250-273.15?"Medium":u<=300-273.15?"Low":u<=400-273.15?"Medium":"High"},k=function(u){return u<=100-273.15?"red":u<=250-273.15?"orange":u<=300-273.15?"green":u<=400-273.15?"orange":"red"}},24410:function(A,r,n){"use strict";r.__esModule=!0,r.sanitizeMultiline=r.removeAllSkiplines=r.TextInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(72253),f=n(92986),b=n(36036),S=n(98595),I=r.sanitizeMultiline=function(){function c(m){return m.replace(/(\n|\r\n){3,}/,"\n\n")}return c}(),k=r.removeAllSkiplines=function(){function c(m){return m.replace(/[\r\n]+/,"")}return c}(),g=r.TextInputModal=function(){function c(m,l){var d=(0,o.useBackend)(l),s=d.act,i=d.data,h=i.max_length,C=i.message,v=C===void 0?"":C,p=i.multiline,N=i.placeholder,V=i.timeout,y=i.title,B=(0,o.useLocalState)(l,"input",N||""),L=B[0],w=B[1],x=function(){function O(D){if(D!==L){var E=p?I(D):k(D);w(E)}}return O}(),T=p||L.length>=40,M=130+(v.length>40?Math.ceil(v.length/4):0)+(T?80:0);return(0,e.createComponentVNode)(2,S.Window,{title:y,width:325,height:M,children:[V&&(0,e.createComponentVNode)(2,a.Loader,{value:V}),(0,e.createComponentVNode)(2,S.Window.Content,{onKeyDown:function(){function O(D){var E=window.event?D.which:D.keyCode;E===f.KEY_ENTER&&(!T||!D.shiftKey)&&s("submit",{entry:L}),E===f.KEY_ESCAPE&&s("cancel")}return O}(),children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Box,{color:"label",children:v})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,u,{input:L,onType:x})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,t.InputButtons,{input:L,message:L.length+"/"+h})})]})})})]})}return c}(),u=function(m,l){var d=(0,o.useBackend)(l),s=d.act,i=d.data,h=i.max_length,C=i.multiline,v=m.input,p=m.onType,N=C||v.length>=40;return(0,e.createComponentVNode)(2,b.TextArea,{autoFocus:!0,autoSelect:!0,height:C||v.length>=40?"100%":"1.8rem",maxLength:h,onEscape:function(){function V(){return s("cancel")}return V}(),onEnter:function(){function V(y){N&&y.shiftKey||(y.preventDefault(),s("submit",{entry:v}))}return V}(),onInput:function(){function V(y,B){return p(B)}return V}(),placeholder:"Type something...",value:v})}},25036:function(A,r,n){"use strict";r.__esModule=!0,r.ThermoMachine=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.ThermoMachine=function(){function S(I,k){var g=(0,t.useBackend)(k),u=g.act,c=g.data;return(0,e.createComponentVNode)(2,f.Window,{width:300,height:225,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:[(0,e.createComponentVNode)(2,o.Section,{title:"Status",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:c.temperature,format:function(){function m(l){return(0,a.toFixed)(l,2)}return m}()})," K"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pressure",children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:c.pressure,format:function(){function m(l){return(0,a.toFixed)(l,2)}return m}()})," kPa"]})]})}),(0,e.createComponentVNode)(2,o.Section,{title:"Controls",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){function m(){return u("power")}return m}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Setting",textAlign:"center",children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:c.cooling?"temperature-low":"temperature-high",content:c.cooling?"Cooling":"Heating",selected:c.cooling,onClick:function(){function m(){return u("cooling")}return m}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target Temperature",children:[(0,e.createComponentVNode)(2,o.Button,{icon:"fast-backward",disabled:c.target===c.min,title:"Minimum temperature",onClick:function(){function m(){return u("target",{target:c.min})}return m}()}),(0,e.createComponentVNode)(2,o.NumberInput,{animated:!0,value:Math.round(c.target),unit:"K",width:5.4,lineHeight:1.4,minValue:Math.round(c.min),maxValue:Math.round(c.max),step:5,stepPixelSize:3,onDrag:function(){function m(l,d){return u("target",{target:d})}return m}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"fast-forward",disabled:c.target===c.max,title:"Maximum Temperature",onClick:function(){function m(){return u("target",{target:c.max})}return m}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"sync",disabled:c.target===c.initial,title:"Room Temperature",onClick:function(){function m(){return u("target",{target:c.initial})}return m}()})]})]})})]})})}return S}()},20035:function(A,r,n){"use strict";r.__esModule=!0,r.TransferValve=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TransferValve=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.tank_one,m=u.tank_two,l=u.attached_device,d=u.valve;return(0,e.createComponentVNode)(2,o.Window,{width:460,height:285,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Valve Status",children:(0,e.createComponentVNode)(2,t.Button,{icon:d?"unlock":"lock",content:d?"Open":"Closed",disabled:!c||!m,onClick:function(){function s(){return g("toggle")}return s}()})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Assembly",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Configure Assembly",disabled:!l,onClick:function(){function s(){return g("device")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:l?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:l,disabled:!l,onClick:function(){function s(){return g("remove_device")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Assembly"})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Attachment One",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:c?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:c,disabled:!c,onClick:function(){function s(){return g("tankone")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Tank"})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Attachment Two",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:m?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:m,disabled:!m,onClick:function(){function s(){return g("tanktwo")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Tank"})})})})]})})}return b}()},78166:function(A,r,n){"use strict";r.__esModule=!0,r.TurbineComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(44879),b=r.TurbineComputer=function(){function k(g,u){var c=(0,a.useBackend)(u),m=c.act,l=c.data,d=l.compressor,s=l.compressor_broken,i=l.turbine,h=l.turbine_broken,C=l.online,v=!!(d&&!s&&i&&!h);return(0,e.createComponentVNode)(2,o.Window,{width:400,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:C?"power-off":"times",content:C?"Online":"Offline",selected:C,disabled:!v,onClick:function(){function p(){return m("toggle_power")}return p}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Disconnect",onClick:function(){function p(){return m("disconnect")}return p}()})],4),children:v?(0,e.createComponentVNode)(2,I):(0,e.createComponentVNode)(2,S)})})})}return k}(),S=function(g,u){var c=(0,a.useBackend)(u),m=c.data,l=m.compressor,d=m.compressor_broken,s=m.turbine,i=m.turbine_broken,h=m.online;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Compressor Status",color:!l||d?"bad":"good",children:d?l?"Offline":"Missing":"Online"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Turbine Status",color:!s||i?"bad":"good",children:i?s?"Offline":"Missing":"Online"})]})},I=function(g,u){var c=(0,a.useBackend)(u),m=c.data,l=m.rpm,d=m.temperature,s=m.power,i=m.bearing_heat;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Turbine Speed",children:[l," RPM"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Internal Temp",children:[d," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Generated Power",children:[s," W"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Bearing Heat",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:i,minValue:0,maxValue:100,ranges:{good:[-1/0,60],average:[60,90],bad:[90,1/0]},children:(0,f.toFixed)(i)+"%"})})]})}},52847:function(A,r,n){"use strict";r.__esModule=!0,r.Uplink=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(25328),f=n(72253),b=n(36036),S=n(98595),I=n(3939),k=function(C){switch(C){case 0:return(0,e.createComponentVNode)(2,u);case 1:return(0,e.createComponentVNode)(2,c);case 2:return(0,e.createComponentVNode)(2,i);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}},g=r.Uplink=function(){function h(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.cart,B=(0,f.useLocalState)(v,"tabIndex",0),L=B[0],w=B[1],x=(0,f.useLocalState)(v,"searchText",""),T=x[0],M=x[1];return(0,e.createComponentVNode)(2,S.Window,{width:900,height:600,theme:"syndicate",children:[(0,e.createComponentVNode)(2,I.ComplexModal),(0,e.createComponentVNode)(2,S.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Tabs,{children:[(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===0,onClick:function(){function O(){w(0),M("")}return O}(),icon:"store",children:"View Market"},"PurchasePage"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===1,onClick:function(){function O(){w(1),M("")}return O}(),icon:"shopping-cart",children:["View Shopping Cart ",y&&y.length?"("+y.length+")":""]},"Cart"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===2,onClick:function(){function O(){w(2),M("")}return O}(),icon:"user",children:"Exploitable Information"},"ExploitableInfo"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{onClick:function(){function O(){return N("lock")}return O}(),icon:"lock",children:"Lock Uplink"},"LockUplink")]})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:k(L)})]})})]})}return h}(),u=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.crystals,B=V.cats,L=(0,f.useLocalState)(v,"uplinkItems",B[0].items),w=L[0],x=L[1],T=(0,f.useLocalState)(v,"searchText",""),M=T[0],O=T[1],D=function(W,z){z===void 0&&(z="");var K=(0,o.createSearch)(z,function(G){var J=G.hijack_only===1?"|hijack":"";return G.name+"|"+G.desc+"|"+G.cost+"tc"+J});return(0,t.flow)([(0,a.filter)(function(G){return G==null?void 0:G.name}),z&&(0,a.filter)(K),(0,a.sortBy)(function(G){return G==null?void 0:G.name})])(W)},E=function(W){if(O(W),W==="")return x(B[0].items);x(D(B.map(function(z){return z.items}).flat(),W))},P=(0,f.useLocalState)(v,"showDesc",1),R=P[0],j=P[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Section,{title:"Current Balance: "+y+"TC",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"Show Descriptions",checked:R,onClick:function(){function F(){return j(!R)}return F}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Random Item",icon:"question",onClick:function(){function F(){return N("buyRandom")}return F}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Refund Currently Held Item",icon:"undo",onClick:function(){function F(){return N("refund")}return F}()})],4),children:(0,e.createComponentVNode)(2,b.Input,{fluid:!0,placeholder:"Search Equipment",onInput:function(){function F(W,z){E(z)}return F}(),value:M})})})}),(0,e.createComponentVNode)(2,b.Stack,{fill:!0,mt:.3,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:B.map(function(F){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:M!==""?!1:F.items===w,onClick:function(){function W(){x(F.items),O("")}return W}(),children:F.cat},F)})})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:w.map(function(F){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,l,{i:F,showDecription:R},(0,o.decodeHtmlEntities)(F.name))},(0,o.decodeHtmlEntities)(F.name))})})})})]})]})},c=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.cart,B=V.crystals,L=V.cart_price,w=(0,f.useLocalState)(v,"showDesc",0),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Current Balance: "+B+"TC",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"Show Descriptions",checked:x,onClick:function(){function M(){return T(!x)}return M}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Empty Cart",icon:"trash",onClick:function(){function M(){return N("empty_cart")}return M}(),disabled:!y}),(0,e.createComponentVNode)(2,b.Button,{content:"Purchase Cart ("+L+"TC)",icon:"shopping-cart",onClick:function(){function M(){return N("purchase_cart")}return M}(),disabled:!y||L>B})],4),children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:y?y.map(function(M){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,mr:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,l,{i:M,showDecription:x,buttons:(0,e.createComponentVNode)(2,s,{i:M})})},(0,o.decodeHtmlEntities)(M.name))}):(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:"Your Shopping Cart is empty!"})})})}),(0,e.createComponentVNode)(2,m)]})},m=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.cats,B=V.lucky_numbers;return(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Suggested Purchases",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"dice",content:"See more suggestions",onClick:function(){function L(){return N("shuffle_lucky_numbers")}return L}()}),children:(0,e.createComponentVNode)(2,b.Stack,{wrap:!0,children:B.map(function(L){return y[L.cat].items[L.item]}).filter(function(L){return L!=null}).map(function(L,w){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,mb:1,ml:1,width:34,backgroundColor:"rgba(255, 0, 0, 0.15)",children:(0,e.createComponentVNode)(2,l,{grow:!0,i:L})},w)})})})})},l=function(C,v){var p=C.i,N=C.showDecription,V=N===void 0?1:N,y=C.buttons,B=y===void 0?(0,e.createComponentVNode)(2,d,{i:p}):y;return(0,e.createComponentVNode)(2,b.Section,{title:(0,o.decodeHtmlEntities)(p.name),showBottom:V,buttons:B,children:V?(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:(0,o.decodeHtmlEntities)(p.desc)}):null})},d=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=C.i,B=V.crystals;return(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button,{icon:"shopping-cart",color:y.hijack_only===1&&"red",tooltip:"Add to cart.",tooltipPosition:"left",onClick:function(){function L(){return N("add_to_cart",{item:y.obj_path})}return L}(),disabled:y.cost>B}),(0,e.createComponentVNode)(2,b.Button,{content:"Buy ("+y.cost+"TC)"+(y.refundable?" [Refundable]":""),color:y.hijack_only===1&&"red",tooltip:y.hijack_only===1&&"Hijack Agents Only!",tooltipPosition:"left",onClick:function(){function L(){return N("buyItem",{item:y.obj_path})}return L}(),disabled:y.cost>B})],4)},s=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=C.i,B=V.exploitable;return(0,e.createComponentVNode)(2,b.Stack,{children:[(0,e.createComponentVNode)(2,b.Button,{icon:"times",content:"("+y.cost*y.amount+"TC)",tooltip:"Remove from cart.",tooltipPosition:"left",onClick:function(){function L(){return N("remove_from_cart",{item:y.obj_path})}return L}()}),(0,e.createComponentVNode)(2,b.Button,{icon:"minus",tooltip:y.limit===0&&"Discount already redeemed!",ml:"5px",onClick:function(){function L(){return N("set_cart_item_quantity",{item:y.obj_path,quantity:--y.amount})}return L}(),disabled:y.amount<=0}),(0,e.createComponentVNode)(2,b.Button.Input,{content:y.amount,width:"45px",tooltipPosition:"bottom-end",tooltip:y.limit===0&&"Discount already redeemed!",onCommit:function(){function L(w,x){return N("set_cart_item_quantity",{item:y.obj_path,quantity:x})}return L}(),disabled:y.limit!==-1&&y.amount>=y.limit&&y.amount<=0}),(0,e.createComponentVNode)(2,b.Button,{mb:.3,icon:"plus",tooltipPosition:"bottom-start",tooltip:y.limit===0&&"Discount already redeemed!",onClick:function(){function L(){return N("set_cart_item_quantity",{item:y.obj_path,quantity:++y.amount})}return L}(),disabled:y.limit!==-1&&y.amount>=y.limit})]})},i=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.exploitable,B=(0,f.useLocalState)(v,"selectedRecord",y[0]),L=B[0],w=B[1],x=(0,f.useLocalState)(v,"searchText",""),T=x[0],M=x[1],O=function(P,R){R===void 0&&(R="");var j=(0,o.createSearch)(R,function(F){return F.name});return(0,t.flow)([(0,a.filter)(function(F){return F==null?void 0:F.name}),R&&(0,a.filter)(j),(0,a.sortBy)(function(F){return F.name})])(P)},D=O(y,T);return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Exploitable Records",children:[(0,e.createComponentVNode)(2,b.Input,{fluid:!0,mb:1,placeholder:"Search Crew",onInput:function(){function E(P,R){return M(R)}return E}()}),(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:D.map(function(E){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:E===L,onClick:function(){function P(){return w(E)}return P}(),children:E.name},E)})})]})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:L.name,children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Age",children:L.age}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Fingerprint",children:L.fingerprint}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Rank",children:L.rank}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Sex",children:L.sex}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Species",children:L.species})]})})})]})}},12261:function(A,r,n){"use strict";r.__esModule=!0,r.Vending=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=I.product,l=I.productStock,d=I.productIcon,s=I.productIconState,i=c.chargesMoney,h=c.user,C=c.usermoney,v=c.inserted_cash,p=c.vend_ready,N=c.inserted_item_name,V=!i||m.price===0,y="ERROR!",B="";V?(y="FREE",B="arrow-circle-down"):(y=m.price,B="shopping-cart");var L=!p||l===0||!V&&m.price>C&&m.price>v;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,t.DmIcon,{verticalAlign:"middle",icon:d,icon_state:s,fallback:(0,e.createComponentVNode)(2,t.Icon,{p:.66,name:"spinner",size:2,spin:!0})})}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:m.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Box,{color:l<=0&&"bad"||l<=m.max_amount/2&&"average"||"good",children:[l," in stock"]})}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,disabled:L,icon:B,content:y,textAlign:"left",onClick:function(){function w(){return u("vend",{inum:m.inum})}return w}()})})]})},b=r.Vending=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.user,l=c.usermoney,d=c.inserted_cash,s=c.chargesMoney,i=c.product_records,h=i===void 0?[]:i,C=c.hidden_records,v=C===void 0?[]:C,p=c.stock,N=c.vend_ready,V=c.inserted_item_name,y=c.panel_open,B=c.speaker,L;return L=[].concat(h),c.extended_inventory&&(L=[].concat(L,v)),L=L.filter(function(w){return!!w}),(0,e.createComponentVNode)(2,o.Window,{title:"Vending Machine",width:450,height:Math.min((s?171:89)+L.length*32,585),children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[!!s&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"User",buttons:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:!!V&&(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:(0,e.createVNode)(1,"span",null,V,0,{style:{"text-transform":"capitalize"}}),onClick:function(){function w(){return u("eject_item",{})}return w}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{disabled:!d,icon:"money-bill-wave-alt",content:d?(0,e.createFragment)([(0,e.createVNode)(1,"b",null,d,0),(0,e.createTextVNode)(" credits")],0):"Dispense Change",tooltip:d?"Dispense Change":null,textAlign:"left",onClick:function(){function w(){return u("change")}return w}()})})]}),children:m&&(0,e.createComponentVNode)(2,t.Box,{children:["Welcome, ",(0,e.createVNode)(1,"b",null,m.name,0),", ",(0,e.createVNode)(1,"b",null,m.job||"Unemployed",0),"!",(0,e.createVNode)(1,"br"),"Your balance is ",(0,e.createVNode)(1,"b",null,[l,(0,e.createTextVNode)(" credits")],0),".",(0,e.createVNode)(1,"br")]})})}),!!y&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Maintenance",children:(0,e.createComponentVNode)(2,t.Button,{icon:B?"check":"volume-mute",selected:B,content:"Speaker",textAlign:"left",onClick:function(){function w(){return u("toggle_voice",{})}return w}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Products",children:(0,e.createComponentVNode)(2,t.Table,{children:L.map(function(w){return(0,e.createComponentVNode)(2,f,{product:w,productStock:p[w.name],productIcon:w.icon,productIconState:w.icon_state},w.name)})})})})]})})})}return S}()},68971:function(A,r,n){"use strict";r.__esModule=!0,r.VolumeMixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.VolumeMixer=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.channels;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:Math.min(95+c.length*50,565),children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:c.map(function(m,l){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.25rem",color:"label",mt:l>0&&"0.5rem",children:m.name}),(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:.5,children:(0,e.createComponentVNode)(2,t.Button,{width:"24px",color:"transparent",children:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-off",size:"1.5",mt:"0.1rem",onClick:function(){function d(){return g("volume",{channel:m.num,volume:0})}return d}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mx:"0.5rem",children:(0,e.createComponentVNode)(2,t.Slider,{minValue:0,maxValue:100,stepPixelSize:3.13,value:m.volume,onChange:function(){function d(s,i){return g("volume",{channel:m.num,volume:i})}return d}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{width:"24px",color:"transparent",children:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-up",size:"1.5",mt:"0.1rem",onClick:function(){function d(){return g("volume",{channel:m.num,volume:100})}return d}()})})})]})})],4,m.num)})})})})}return b}()},2510:function(A,r,n){"use strict";r.__esModule=!0,r.VotePanel=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.VotePanel=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.remaining,m=u.question,l=u.choices,d=u.user_vote,s=u.counts,i=u.show_counts;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:360,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:m,children:[(0,e.createComponentVNode)(2,t.Box,{mb:1.5,ml:.5,children:["Time remaining: ",Math.round(c/10),"s"]}),l.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{mb:1,fluid:!0,translucent:!0,lineHeight:3,multiLine:h,content:h+(i?" ("+(s[h]||0)+")":""),onClick:function(){function C(){return g("vote",{target:h})}return C}(),selected:h===d})},h)})]})})})}return b}()},30138:function(A,r,n){"use strict";r.__esModule=!0,r.Wires=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Wires=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.wires||[],m=u.status||[],l=56+c.length*23+(status?0:15+m.length*17);return(0,e.createComponentVNode)(2,o.Window,{width:350,height:l,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:c.map(function(d){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{className:"candystripe",label:d.color_name,labelColor:d.seen_color,color:d.seen_color,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:d.cut?"Mend":"Cut",onClick:function(){function s(){return g("cut",{wire:d.color})}return s}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Pulse",onClick:function(){function s(){return g("pulse",{wire:d.color})}return s}()}),(0,e.createComponentVNode)(2,t.Button,{content:d.attached?"Detach":"Attach",onClick:function(){function s(){return g("attach",{wire:d.color})}return s}()})],4),children:!!d.wire&&(0,e.createVNode)(1,"i",null,[(0,e.createTextVNode)("("),d.wire,(0,e.createTextVNode)(")")],0)},d.seen_color)})})})}),!!m.length&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:m.map(function(d){return(0,e.createComponentVNode)(2,t.Box,{color:"lightgray",children:d},d)})})})]})})})}return b}()},21400:function(A,r,n){"use strict";r.__esModule=!0,r.WizardApprenticeContract=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.WizardApprenticeContract=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.used;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:555,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Contract of Apprenticeship",children:["Using this contract, you may summon an apprentice to aid you on your mission.",(0,e.createVNode)(1,"p",null,"If you are unable to establish contact with your apprentice, you can feed the contract back to the spellbook to refund your points.",16),c?(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"red",children:"You've already summoned an apprentice or you are in process of summoning one."}):""]}),(0,e.createComponentVNode)(2,t.Section,{title:"Which school of magic is your apprentice studying?",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fire",children:["Your apprentice is skilled in bending fire. ",(0,e.createVNode)(1,"br"),"They know Fireball, Sacred Flame, and Ethereal Jaunt.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("fire")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Translocation",children:["Your apprentice is able to defy physics, learning how to move through bluespace. ",(0,e.createVNode)(1,"br"),"They know Teleport, Blink and Ethereal Jaunt.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("translocation")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Restoration",children:["Your apprentice is dedicated to supporting your magical prowess.",(0,e.createVNode)(1,"br"),"They come equipped with a Staff of Healing, have the unique ability to teleport back to you, and know Charge and Knock.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("restoration")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stealth",children:["Your apprentice is learning the art of infiltrating mundane facilities. ",(0,e.createVNode)(1,"br"),"They know Mindswap, Knock, Homing Toolbox, and Disguise Self, all of which can be cast without robes. They also join you in a Maintenance Dweller disguise, complete with Gloves of Shock Immunity and a Belt of Tools.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("stealth")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Honk",children:["Your apprentice is here to spread the Honkmother's blessings.",(0,e.createVNode)(1,"br"),"They know Banana Touch, Instant Summons, Ethereal Jaunt, and come equipped with a Staff of Slipping."," ",(0,e.createVNode)(1,"br"),"While under your tutelage, they have been 'blessed' with clown shoes that are impossible to remove.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("honk")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider)]})})]})})}return b}()},49148:function(A,r,n){"use strict";r.__esModule=!0,r.AccessList=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036);function f(g,u){var c=typeof Symbol!="undefined"&&g[Symbol.iterator]||g["@@iterator"];if(c)return(c=c.call(g)).next.bind(c);if(Array.isArray(g)||(c=b(g))||u&&g&&typeof g.length=="number"){c&&(g=c);var m=0;return function(){return m>=g.length?{done:!0}:{done:!1,value:g[m++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(g,u){if(g){if(typeof g=="string")return S(g,u);var c={}.toString.call(g).slice(8,-1);return c==="Object"&&g.constructor&&(c=g.constructor.name),c==="Map"||c==="Set"?Array.from(g):c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?S(g,u):void 0}}function S(g,u){(u==null||u>g.length)&&(u=g.length);for(var c=0,m=Array(u);c0&&!V.includes(R.ref)&&!p.includes(R.ref),checked:p.includes(R.ref),onClick:function(){function j(){return y(R.ref)}return j}()},R.desc)})]})]})})}return g}()},26991:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosScan=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036),f=function(I,k,g,u,c){return Iu?"average":I>c?"bad":"good"},b=r.AtmosScan=function(){function S(I,k){var g=I.data.aircontents;return(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,a.filter)(function(u){return u.val!=="0"||u.entry==="Pressure"||u.entry==="Temperature"})(g).map(function(u){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:u.entry,color:f(u.val,u.bad_low,u.poor_low,u.poor_high,u.bad_high),children:[u.val,u.units]},u.entry)})})})}return S}()},85870:function(A,r,n){"use strict";r.__esModule=!0,r.BeakerContents=void 0;var e=n(89005),a=n(36036),t=n(15964),o=function(S){return S+" unit"+(S===1?"":"s")},f=r.BeakerContents=function(){function b(S){var I=S.beakerLoaded,k=S.beakerContents,g=k===void 0?[]:k,u=S.buttons;return(0,e.createComponentVNode)(2,a.Stack,{vertical:!0,children:[!I&&(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",children:"No beaker loaded."})||g.length===0&&(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",children:"Beaker is empty."}),g.map(function(c,m){return(0,e.createComponentVNode)(2,a.Stack,{children:[(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",grow:!0,children:[o(c.volume)," of ",c.name]},c.name),!!u&&(0,e.createComponentVNode)(2,a.Stack.Item,{children:u(c,m)})]},c.name)})]})}return b}();f.propTypes={beakerLoaded:t.bool,beakerContents:t.array,buttons:t.arrayOf(t.element)}},92963:function(A,r,n){"use strict";r.__esModule=!0,r.BotStatus=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.BotStatus=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,u=g.locked,c=g.noaccess,m=g.maintpanel,l=g.on,d=g.autopatrol,s=g.canhack,i=g.emagged,h=g.remote_disabled;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.NoticeBox,{children:["Swipe an ID card to ",u?"unlock":"lock"," this interface."]}),(0,e.createComponentVNode)(2,t.Section,{title:"General Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:(0,e.createComponentVNode)(2,t.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,disabled:c,onClick:function(){function C(){return k("power")}return C}()})}),d!==null&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Patrol",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:d,content:"Auto Patrol",disabled:c,onClick:function(){function C(){return k("autopatrol")}return C}()})}),!!m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Maintenance Panel",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Panel Open!"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety System",children:(0,e.createComponentVNode)(2,t.Box,{color:i?"bad":"good",children:i?"DISABLED!":"Enabled"})}),!!s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hacking",children:(0,e.createComponentVNode)(2,t.Button,{icon:"terminal",content:i?"Restore Safties":"Hack",disabled:c,color:"bad",onClick:function(){function C(){return k("hack")}return C}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Remote Access",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:!h,content:"AI Remote Control",disabled:c,onClick:function(){function C(){return k("disableremote")}return C}()})})]})})],4)}return f}()},3939:function(A,r,n){"use strict";r.__esModule=!0,r.modalRegisterBodyOverride=r.modalOpen=r.modalClose=r.modalAnswer=r.ComplexModal=void 0;var e=n(89005),a=n(72253),t=n(36036),o={},f=r.modalOpen=function(){function g(u,c,m){var l=(0,a.useBackend)(u),d=l.act,s=l.data,i=Object.assign(s.modal?s.modal.args:{},m||{});d("modal_open",{id:c,arguments:JSON.stringify(i)})}return g}(),b=r.modalRegisterBodyOverride=function(){function g(u,c){o[u]=c}return g}(),S=r.modalAnswer=function(){function g(u,c,m,l){var d=(0,a.useBackend)(u),s=d.act,i=d.data;if(i.modal){var h=Object.assign(i.modal.args||{},l||{});s("modal_answer",{id:c,answer:m,arguments:JSON.stringify(h)})}}return g}(),I=r.modalClose=function(){function g(u,c){var m=(0,a.useBackend)(u),l=m.act;l("modal_close",{id:c})}return g}(),k=r.ComplexModal=function(){function g(u,c){var m=(0,a.useBackend)(c),l=m.data;if(l.modal){var d=l.modal,s=d.id,i=d.text,h=d.type,C,v=(0,e.createComponentVNode)(2,t.Button,{className:"Button--modal",icon:"arrow-left",content:"Cancel",onClick:function(){function L(){return I(c)}return L}()}),p,N,V="auto";if(o[s])p=o[s](l.modal,c);else if(h==="input"){var y=l.modal.value;C=function(){function L(w){return S(c,s,y)}return L}(),p=(0,e.createComponentVNode)(2,t.Input,{value:l.modal.value,placeholder:"ENTER to submit",width:"100%",my:"0.5rem",autofocus:!0,onChange:function(){function L(w,x){y=x}return L}()}),N=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){function L(){return I(c)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:"Confirm",color:"good",float:"right",m:"0",onClick:function(){function L(){return S(c,s,y)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]})}else if(h==="choice"){var B=typeof l.modal.choices=="object"?Object.values(l.modal.choices):l.modal.choices;p=(0,e.createComponentVNode)(2,t.Dropdown,{options:B,selected:l.modal.value,width:"100%",my:"0.5rem",onSelected:function(){function L(w){return S(c,s,w)}return L}()}),V="initial"}else h==="bento"?p=(0,e.createComponentVNode)(2,t.Stack,{spacingPrecise:"1",wrap:"wrap",my:"0.5rem",maxHeight:"1%",children:l.modal.choices.map(function(L,w){return(0,e.createComponentVNode)(2,t.Stack.Item,{flex:"1 1 auto",children:(0,e.createComponentVNode)(2,t.Button,{selected:w+1===parseInt(l.modal.value,10),onClick:function(){function x(){return S(c,s,w+1)}return x}(),children:(0,e.createVNode)(1,"img",null,null,1,{src:L})})},w)})}):h==="boolean"&&(N=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:l.modal.no_text,color:"bad",float:"left",mb:"0",onClick:function(){function L(){return S(c,s,0)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:l.modal.yes_text,color:"good",float:"right",m:"0",onClick:function(){function L(){return S(c,s,1)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]}));return(0,e.createComponentVNode)(2,t.Modal,{maxWidth:u.maxWidth||window.innerWidth/2+"px",maxHeight:u.maxHeight||window.innerHeight/2+"px",onEnter:C,mx:"auto",overflowY:V,"padding-bottom":"5px",children:[i&&(0,e.createComponentVNode)(2,t.Box,{inline:!0,children:i}),o[s]&&v,p,N]})}}return g}()},41874:function(A,r,n){"use strict";r.__esModule=!0,r.CrewManifest=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(25328),f=n(76910),b=f.COLORS.department,S=["Captain","Head of Security","Chief Engineer","Chief Medical Officer","Research Director","Head of Personnel","Quartermaster"],I=function(m){return S.indexOf(m)!==-1?"green":"orange"},k=function(m){if(S.indexOf(m)!==-1)return!0},g=function(m){return m.length>0&&(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,color:"white",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"50%",children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"35%",children:"Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"15%",children:"Active"})]}),m.map(function(l){return(0,e.createComponentVNode)(2,t.Table.Row,{color:I(l.rank),bold:k(l.rank),children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(l.name)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(l.rank)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.active})]},l.name+l.rank)})]})},u=r.CrewManifest=function(){function c(m,l){var d=(0,a.useBackend)(l),s=d.act,i;if(m.data)i=m.data;else{var h=(0,a.useBackend)(l),C=h.data;i=C}var v=i,p=v.manifest,N=p.heads,V=p.sec,y=p.eng,B=p.med,L=p.sci,w=p.ser,x=p.sup,T=p.misc;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.command,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Command"})}),level:2,children:g(N)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.security,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Security"})}),level:2,children:g(V)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.engineering,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Engineering"})}),level:2,children:g(y)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.medical,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Medical"})}),level:2,children:g(B)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.science,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Science"})}),level:2,children:g(L)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.service,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Service"})}),level:2,children:g(w)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.supply,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Supply"})}),level:2,children:g(x)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Misc"})}),level:2,children:g(T)})]})}return c}()},19203:function(A,r,n){"use strict";r.__esModule=!0,r.InputButtons=void 0;var e=n(89005),a=n(36036),t=n(72253),o=r.InputButtons=function(){function f(b,S){var I=(0,t.useBackend)(S),k=I.act,g=I.data,u=g.large_buttons,c=g.swapped_buttons,m=b.input,l=b.message,d=b.disabled,s=(0,e.createComponentVNode)(2,a.Button,{color:"good",content:"Submit",bold:!!u,fluid:!!u,onClick:function(){function h(){return k("submit",{entry:m})}return h}(),textAlign:"center",tooltip:u&&l,disabled:d,width:!u&&6}),i=(0,e.createComponentVNode)(2,a.Button,{color:"bad",content:"Cancel",bold:!!u,fluid:!!u,onClick:function(){function h(){return k("cancel")}return h}(),textAlign:"center",width:!u&&6});return(0,e.createComponentVNode)(2,a.Flex,{fill:!0,align:"center",direction:c?"row-reverse":"row",justify:"space-around",children:[u?(0,e.createComponentVNode)(2,a.Flex.Item,{grow:!0,ml:c?.5:0,mr:c?0:.5,children:i}):(0,e.createComponentVNode)(2,a.Flex.Item,{children:i}),!u&&l&&(0,e.createComponentVNode)(2,a.Flex.Item,{children:(0,e.createComponentVNode)(2,a.Box,{color:"label",textAlign:"center",children:l})}),u?(0,e.createComponentVNode)(2,a.Flex.Item,{grow:!0,mr:c?.5:0,ml:c?0:.5,children:s}):(0,e.createComponentVNode)(2,a.Flex.Item,{children:s})]})}return f}()},195:function(A,r,n){"use strict";r.__esModule=!0,r.InterfaceLockNoticeBox=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.InterfaceLockNoticeBox=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,u=b.siliconUser,c=u===void 0?g.siliconUser:u,m=b.locked,l=m===void 0?g.locked:m,d=b.normallyLocked,s=d===void 0?g.normallyLocked:d,i=b.onLockStatusChange,h=i===void 0?function(){return k("lock")}:i,C=b.accessText,v=C===void 0?"an ID card":C;return c?(0,e.createComponentVNode)(2,t.NoticeBox,{color:c&&"grey",children:(0,e.createComponentVNode)(2,t.Flex,{align:"center",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:"Interface lock status:"}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:"1"}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Button,{m:"0",color:s?"red":"green",icon:s?"lock":"unlock",content:s?"Locked":"Unlocked",onClick:function(){function p(){h&&h(!l)}return p}()})})]})}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:["Swipe ",v," to ",l?"unlock":"lock"," this interface."]})}return f}()},51057:function(A,r,n){"use strict";r.__esModule=!0,r.Loader=void 0;var e=n(89005),a=n(44879),t=n(36036),o=r.Loader=function(){function f(b){var S=b.value;return(0,e.createVNode)(1,"div","AlertModal__Loader",(0,e.createComponentVNode)(2,t.Box,{className:"AlertModal__LoaderProgress",style:{width:(0,a.clamp01)(S)*100+"%"}}),2)}return f}()},321:function(A,r,n){"use strict";r.__esModule=!0,r.LoginInfo=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LoginInfo=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,u=g.loginState;if(g)return(0,e.createComponentVNode)(2,t.NoticeBox,{info:!0,children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:.5,children:["Logged in as: ",u.name," (",u.rank,")"]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!u.id,content:"Eject ID",color:"good",onClick:function(){function c(){return k("login_eject")}return c}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Logout",color:"good",onClick:function(){function c(){return k("login_logout")}return c}()})]})]})})}return f}()},5485:function(A,r,n){"use strict";r.__esModule=!0,r.LoginScreen=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LoginScreen=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,u=g.loginState,c=g.isAI,m=g.isRobot,l=g.isAdmin;return(0,e.createComponentVNode)(2,t.Section,{title:"Welcome",fill:!0,stretchContents:!0,children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",align:"center",justify:"center",children:(0,e.createComponentVNode)(2,t.Flex.Item,{textAlign:"center",mt:"-2rem",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.5rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-circle",verticalAlign:"middle",size:3,mr:"1rem"}),"Guest"]}),(0,e.createComponentVNode)(2,t.Box,{color:"label",my:"1rem",children:["ID:",(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",content:u.id?u.id:"----------",ml:"0.5rem",onClick:function(){function d(){return k("login_insert")}return d}()})]}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",disabled:!u.id,content:"Login",onClick:function(){function d(){return k("login_login",{login_type:1})}return d}()}),!!c&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as AI",onClick:function(){function d(){return k("login_login",{login_type:2})}return d}()}),!!m&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as Cyborg",onClick:function(){function d(){return k("login_login",{login_type:3})}return d}()}),!!l&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"CentComm Secure Login",onClick:function(){function d(){return k("login_login",{login_type:4})}return d}()})]})})})}return f}()},62411:function(A,r,n){"use strict";r.__esModule=!0,r.Operating=void 0;var e=n(89005),a=n(36036),t=n(15964),o=r.Operating=function(){function f(b){var S=b.operating,I=b.name;if(S)return(0,e.createComponentVNode)(2,a.Dimmer,{children:(0,e.createComponentVNode)(2,a.Flex,{mb:"30px",children:(0,e.createComponentVNode)(2,a.Flex.Item,{bold:!0,color:"silver",textAlign:"center",children:[(0,e.createComponentVNode)(2,a.Icon,{name:"spinner",spin:!0,size:4,mb:"15px"}),(0,e.createVNode)(1,"br"),"The ",I," is processing..."]})})})}return f}();o.propTypes={operating:t.bool,name:t.string}},13545:function(A,r,n){"use strict";r.__esModule=!0,r.Signaler=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=r.Signaler=function(){function b(S,I){var k=(0,t.useBackend)(I),g=k.act,u=S.data,c=u.code,m=u.frequency,l=u.minFrequency,d=u.maxFrequency;return(0,e.createComponentVNode)(2,o.Section,{children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:l/10,maxValue:d/10,value:m/10,format:function(){function s(i){return(0,a.toFixed)(i,1)}return s}(),width:"80px",onDrag:function(){function s(i,h){return g("freq",{freq:h})}return s}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:c,width:"80px",onDrag:function(){function s(i,h){return g("code",{code:h})}return s}()})})]}),(0,e.createComponentVNode)(2,o.Button,{mt:1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){function s(){return g("signal")}return s}()})]})}return b}()},41984:function(A,r,n){"use strict";r.__esModule=!0,r.SimpleRecords=void 0;var e=n(89005),a=n(72253),t=n(25328),o=n(64795),f=n(88510),b=n(36036),S=r.SimpleRecords=function(){function g(u,c){var m=u.data.records;return(0,e.createComponentVNode)(2,b.Box,{children:m?(0,e.createComponentVNode)(2,k,{data:u.data,recordType:u.recordType}):(0,e.createComponentVNode)(2,I,{data:u.data})})}return g}(),I=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=u.data.recordsList,s=(0,a.useLocalState)(c,"searchText",""),i=s[0],h=s[1],C=function(N,V){V===void 0&&(V="");var y=(0,t.createSearch)(V,function(B){return B.Name});return(0,o.flow)([(0,f.filter)(function(B){return B==null?void 0:B.Name}),V&&(0,f.filter)(y),(0,f.sortBy)(function(B){return B.Name})])(d)},v=C(d,i);return(0,e.createComponentVNode)(2,b.Box,{children:[(0,e.createComponentVNode)(2,b.Input,{fluid:!0,mb:1,placeholder:"Search records...",onInput:function(){function p(N,V){return h(V)}return p}()}),v.map(function(p){return(0,e.createComponentVNode)(2,b.Box,{children:(0,e.createComponentVNode)(2,b.Button,{mb:.5,content:p.Name,icon:"user",onClick:function(){function N(){return l("Records",{target:p.uid})}return N}()})},p)})]})},k=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=u.data.records,s=d.general,i=d.medical,h=d.security,C;switch(u.recordType){case"MED":C=(0,e.createComponentVNode)(2,b.Section,{level:2,title:"Medical Data",children:i?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Blood Type",children:i.blood_type}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Minor Disabilities",children:i.mi_dis}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:i.mi_dis_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Major Disabilities",children:i.ma_dis}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:i.ma_dis_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Allergies",children:i.alg}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:i.alg_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Current Diseases",children:i.cdi}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:i.cdi_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:i.notes})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"Medical record lost!"})});break;case"SEC":C=(0,e.createComponentVNode)(2,b.Section,{level:2,title:"Security Data",children:h?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Criminal Status",children:h.criminal}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Minor Crimes",children:h.mi_crim}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:h.mi_crim_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Major Crimes",children:h.ma_crim}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:h.ma_crim_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:h.notes})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"Security record lost!"})});break}return(0,e.createComponentVNode)(2,b.Box,{children:[(0,e.createComponentVNode)(2,b.Section,{title:"General Data",children:s?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Name",children:s.name}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Sex",children:s.sex}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Species",children:s.species}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Age",children:s.age}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Rank",children:s.rank}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Fingerprint",children:s.fingerprint}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Physical Status",children:s.p_stat}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Mental Status",children:s.m_stat})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"General record lost!"})}),C]})}},22091:function(A,r,n){"use strict";r.__esModule=!0,r.TemporaryNotice=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.TemporaryNotice=function(){function f(b,S){var I,k=(0,a.useBackend)(S),g=k.act,u=k.data,c=u.temp;if(c){var m=(I={},I[c.style]=!0,I);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.NoticeBox,Object.assign({},m,{children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:.5,children:c.text}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"times-circle",onClick:function(){function l(){return g("cleartemp")}return l}()})})]})})))}}return f}()},95213:function(A,r,n){"use strict";r.__esModule=!0,r.goonstation_PTL=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(49968),f=n(98595);/**
+ */function m(w,x){w.prototype=Object.create(x.prototype),w.prototype.constructor=w,l(w,x)}function l(w,x){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(T,M){return T.__proto__=M,T},l(w,x)}function u(w,x){if(w==null)return{};var T={};for(var M in w)if({}.hasOwnProperty.call(w,M)){if(x.includes(M))continue;T[M]=w[M]}return T}var s=r.ColorPickerModal=function(){function w(x,T){var M=(0,t.useBackend)(T),O=M.data,D=O.timeout,E=O.message,P=O.title,R=O.autofocus,j=O.default_color,F=j===void 0?"#000000":j,W=(0,t.useLocalState)(T,"color_picker_choice",(0,S.hexToHsva)(F)),z=W[0],K=W[1];return(0,e.createComponentVNode)(2,f.Window,{height:400,title:P,width:600,theme:"generic",children:[!!D&&(0,e.createComponentVNode)(2,a.Loader,{value:D}),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[E&&(0,e.createComponentVNode)(2,o.Stack.Item,{m:1,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:"label",overflow:"hidden",children:E})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[!!R&&(0,e.createComponentVNode)(2,o.Autofocus),(0,e.createComponentVNode)(2,i,{color:z,setColor:K,defaultColor:F})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,d.InputButtons,{input:(0,S.hsvaToHex)(z)})})]})})]})}return w}(),i=r.ColorSelector=function(){function w(x,T){var M=x.color,O=x.setColor,D=x.defaultColor,E=function(){function j(F){O(function(W){return Object.assign({},W,F)})}return j}(),P=(0,S.hsvaToRgba)(M),R=(0,S.hsvaToHex)(M);return(0,e.createComponentVNode)(2,o.Flex,{direction:"row",children:[(0,e.createComponentVNode)(2,o.Flex.Item,{mr:2,children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createVNode)(1,"div","react-colorful",[(0,e.createComponentVNode)(2,N,{hsva:M,onChange:E}),(0,e.createComponentVNode)(2,V,{hue:M.h,onChange:E,className:"react-colorful__last-control"})],4)}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"20px",textAlign:"center",children:"Current"}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"20px",textAlign:"center",children:"Previous"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Tooltip,{content:R,position:"bottom",children:(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"30px",backgroundColor:R})}),(0,e.createComponentVNode)(2,o.Tooltip,{content:D,position:"bottom",children:(0,e.createComponentVNode)(2,o.Box,{inline:!0,width:"100px",height:"30px",backgroundColor:D})})]})]})}),(0,e.createComponentVNode)(2,o.Flex.Item,{grow:!0,fontSize:"15px",lineHeight:"24px",children:(0,e.createComponentVNode)(2,o.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"Hex:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,height:"24px",children:(0,e.createComponentVNode)(2,v,{fluid:!0,color:(0,S.hsvaToHex)(M).substring(1),onChange:function(){function j(F){g.logger.info(F),O((0,S.hexToHsva)(F))}return j}(),prefixed:!0})})]})}),(0,e.createComponentVNode)(2,o.Stack.Divider),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"H:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,V,{hue:M.h,onChange:E})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:M.h,callback:function(){function j(F,W){return E({h:W})}return j}(),max:360,unit:"\xB0"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"S:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,y,{color:M,onChange:E})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:M.s,callback:function(){function j(F,W){return E({s:W})}return j}(),unit:"%"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"V:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,B,{color:M,onChange:E})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:M.v,callback:function(){function j(F,W){return E({v:W})}return j}(),unit:"%"})})]})}),(0,e.createComponentVNode)(2,o.Stack.Divider),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"R:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:M,onChange:E,target:"r"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:P.r,callback:function(){function j(F,W){P.r=W,E((0,S.rgbaToHsva)(P))}return j}(),max:255})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"G:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:M,onChange:E,target:"g"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:P.g,callback:function(){function j(F,W){P.g=W,E((0,S.rgbaToHsva)(P))}return j}(),max:255})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{width:"25px",children:(0,e.createComponentVNode)(2,o.Box,{textColor:"label",children:"B:"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,L,{color:M,onChange:E,target:"b"})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,h,{value:P.b,callback:function(){function j(F,W){P.b=W,E((0,S.rgbaToHsva)(P))}return j}(),max:255})})]})})]})})]})}return w}(),h=function(x){var T=x.value,M=x.callback,O=x.min,D=O===void 0?0:O,E=x.max,P=E===void 0?100:E,R=x.unit;return(0,e.createComponentVNode)(2,o.NumberInput,{width:"70px",value:Math.round(T),step:1,minValue:D,maxValue:P,onChange:M,unit:R})},C=function(x){return"#"+x},v=r.HexColorInput=function(){function w(x){var T=x.prefixed,M=x.alpha,O=x.color,D=x.fluid,E=x.onChange,P=u(x,c),R=function(){function F(W){return W.replace(/([^0-9A-F]+)/gi,"").substring(0,M?8:6)}return F}(),j=function(){function F(W){return(0,S.validHex)(W,M)}return F}();return(0,e.normalizeProps)((0,e.createComponentVNode)(2,p,Object.assign({},P,{fluid:D,color:O,onChange:E,escape:R,format:T?C:void 0,validate:j})))}return w}(),p=r.ColorInput=function(w){function x(M){var O;return O=w.call(this)||this,O.props=void 0,O.state=void 0,O.handleInput=function(D){var E=O.props.escape(D.currentTarget.value);O.setState({localValue:E})},O.handleBlur=function(D){D.currentTarget&&(O.props.validate(D.currentTarget.value)?O.props.onChange(O.props.escape?O.props.escape(D.currentTarget.value):D.currentTarget.value):O.setState({localValue:O.props.escape(O.props.color)}))},O.props=M,O.state={localValue:O.props.escape(O.props.color)},O}m(x,w);var T=x.prototype;return T.componentDidUpdate=function(){function M(O,D){O.color!==this.props.color&&this.setState({localValue:this.props.escape(this.props.color)})}return M}(),T.render=function(){function M(){return(0,e.createComponentVNode)(2,o.Box,{className:(0,k.classes)(["Input",this.props.fluid&&"Input--fluid"]),children:[(0,e.createVNode)(1,"div","Input__baseline",".",16),(0,e.createVNode)(64,"input","Input__input",null,1,{value:this.props.format?this.props.format(this.state.localValue):this.state.localValue,spellCheck:"false",onInput:this.handleInput,onBlur:this.handleBlur})]})}return M}(),x}(e.Component),N=function(x){var T=x.hsva,M=x.onChange,O=function(R){M({s:R.left*100,v:100-R.top*100})},D=function(R){M({s:(0,b.clamp)(T.s+R.left*100,0,100),v:(0,b.clamp)(T.v-R.top*100,0,100)})},E={"background-color":(0,S.hsvaToHslString)({h:T.h,s:100,v:100,a:1})+" !important"};return(0,e.createVNode)(1,"div","react-colorful__saturation_value",(0,e.createComponentVNode)(2,I.Interactive,{onMove:O,onKey:D,"aria-label":"Color","aria-valuetext":"Saturation "+Math.round(T.s)+"%, Brightness "+Math.round(T.v)+"%",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__saturation_value-pointer",top:1-T.v/100,left:T.s/100,color:(0,S.hsvaToHslString)(T)})}),2,{style:E})},V=function(x){var T=x.className,M=x.hue,O=x.onChange,D=function(j){O({h:360*j.left})},E=function(j){O({h:(0,b.clamp)(M+j.left*360,0,360)})},P=(0,k.classes)(["react-colorful__hue",T]);return(0,e.createVNode)(1,"div",P,(0,e.createComponentVNode)(2,I.Interactive,{onMove:D,onKey:E,"aria-label":"Hue","aria-valuenow":Math.round(M),"aria-valuemax":"360","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__hue-pointer",left:M/360,color:(0,S.hsvaToHslString)({h:M,s:100,v:100,a:1})})}),2)},y=function(x){var T=x.className,M=x.color,O=x.onChange,D=function(j){O({s:100*j.left})},E=function(j){O({s:(0,b.clamp)(M.s+j.left*100,0,100)})},P=(0,k.classes)(["react-colorful__saturation",T]);return(0,e.createVNode)(1,"div",P,(0,e.createComponentVNode)(2,I.Interactive,{style:{background:"linear-gradient(to right, "+(0,S.hsvaToHslString)({h:M.h,s:0,v:M.v,a:1})+", "+(0,S.hsvaToHslString)({h:M.h,s:100,v:M.v,a:1})+")"},onMove:D,onKey:E,"aria-label":"Saturation","aria-valuenow":Math.round(M.s),"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__saturation-pointer",left:M.s/100,color:(0,S.hsvaToHslString)({h:M.h,s:M.s,v:M.v,a:1})})}),2)},B=function(x){var T=x.className,M=x.color,O=x.onChange,D=function(j){O({v:100*j.left})},E=function(j){O({v:(0,b.clamp)(M.v+j.left*100,0,100)})},P=(0,k.classes)(["react-colorful__value",T]);return(0,e.createVNode)(1,"div",P,(0,e.createComponentVNode)(2,I.Interactive,{style:{background:"linear-gradient(to right, "+(0,S.hsvaToHslString)({h:M.h,s:M.s,v:0,a:1})+", "+(0,S.hsvaToHslString)({h:M.h,s:M.s,v:100,a:1})+")"},onMove:D,onKey:E,"aria-label":"Value","aria-valuenow":Math.round(M.s),"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__value-pointer",left:M.v/100,color:(0,S.hsvaToHslString)({h:M.h,s:M.s,v:M.v,a:1})})}),2)},L=function(x){var T=x.className,M=x.color,O=x.onChange,D=x.target,E=(0,S.hsvaToRgba)(M),P=function(K){E[D]=K,O((0,S.rgbaToHsva)(E))},R=function(K){P(255*K.left)},j=function(K){P((0,b.clamp)(E[D]+K.left*255,0,255))},F=(0,k.classes)(["react-colorful__"+D,T]),W=D==="r"?"rgb("+Math.round(E.r)+",0,0)":D==="g"?"rgb(0,"+Math.round(E.g)+",0)":"rgb(0,0,"+Math.round(E.b)+")";return(0,e.createVNode)(1,"div",F,(0,e.createComponentVNode)(2,I.Interactive,{onMove:R,onKey:j,"aria-valuenow":E[D],"aria-valuemax":"100","aria-valuemin":"0",children:(0,e.createComponentVNode)(2,o.Pointer,{className:"react-colorful__"+D+"-pointer",left:E[D]/255,color:W})}),2)}},8444:function(A,r,n){"use strict";r.__esModule=!0,r.ColourMatrixTester=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ColourMatrixTester=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.colour_data,m=[[{name:"RR",idx:0},{name:"RG",idx:1},{name:"RB",idx:2},{name:"RA",idx:3}],[{name:"GR",idx:4},{name:"GG",idx:5},{name:"GB",idx:6},{name:"GA",idx:7}],[{name:"BR",idx:8},{name:"BG",idx:9},{name:"BB",idx:10},{name:"BA",idx:11}],[{name:"AR",idx:12},{name:"AG",idx:13},{name:"AB",idx:14},{name:"AA",idx:15}]];return(0,e.createComponentVNode)(2,o.Window,{width:360,height:190,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Modify Matrix",children:m.map(function(l){return(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",textColor:"label",children:l.map(function(u){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:1,children:[u.name,":\xA0",(0,e.createComponentVNode)(2,t.NumberInput,{width:4,value:c[u.idx],step:.05,minValue:-5,maxValue:5,stepPixelSize:5,onChange:function(){function s(i,h){return g("setvalue",{idx:u.idx+1,value:h})}return s}()})]},u.name)})},l)})})})})})}return b}()},63818:function(A,r,n){"use strict";r.__esModule=!0,r.CommunicationsComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(s){switch(s){case 1:return(0,e.createComponentVNode)(2,I);case 2:return(0,e.createComponentVNode)(2,d);case 3:return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,c)})});case 4:return(0,e.createComponentVNode)(2,l);default:return"ERROR. Unknown menu_state. Please contact NT Technical Support."}},b=r.CommunicationsComputer=function(){function u(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.menu_state;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S),f(p)]})})})}return u}(),S=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.authenticated,N=v.noauthbutton,V=v.esc_section,y=v.esc_callable,B=v.esc_recallable,L=v.esc_status,w=v.authhead,x=v.is_ai,T=v.lastCallLoc,M=!1,O;return p?p===1?O="Command":p===2?O="Captain":p===3?O="CentComm Officer":p===4?(O="CentComm Secure Connection",M=!0):O="ERROR: Report This Bug!":O="Not Logged In",(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Authentication",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:M&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Access",children:O})||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{icon:p?"sign-out-alt":"id-card",selected:p,disabled:N,content:p?"Log Out ("+O+")":"Log In",onClick:function(){function D(){return C("auth")}return D}()})})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:!!V&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Escape Shuttle",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!L&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:L}),!!y&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Options",children:(0,e.createComponentVNode)(2,t.Button,{icon:"rocket",content:"Call Shuttle",disabled:!w,onClick:function(){function D(){return C("callshuttle")}return D}()})}),!!B&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Options",children:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Recall Shuttle",disabled:!w||x,onClick:function(){function D(){return C("cancelshuttle")}return D}()})}),!!T&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Last Call/Recall From",children:T})]})})})],4)},I=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.is_admin;return p?(0,e.createComponentVNode)(2,k):(0,e.createComponentVNode)(2,g)},k=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.is_admin,N=v.gamma_armory_location,V=v.admin_levels,y=v.authenticated,B=v.ert_allowed;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"CentComm Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Change Alert",children:(0,e.createComponentVNode)(2,m,{levels:V,required_access:p,use_confirm:1})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Announcement",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"bullhorn",content:"Make Central Announcement",disabled:!p,onClick:function(){function L(){return C("send_to_cc_announcement_page")}return L}()}),y===4&&(0,e.createComponentVNode)(2,t.Button,{icon:"plus",content:"Make Other Announcement",disabled:!p,onClick:function(){function L(){return C("make_other_announcement")}return L}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Response Team",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"ambulance",content:"Dispatch ERT",disabled:!p,onClick:function(){function L(){return C("dispatch_ert")}return L}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:B,content:B?"ERT calling enabled":"ERT calling disabled",tooltip:B?"Command can request an ERT":"ERTs cannot be requested",disabled:!p,onClick:function(){function L(){return C("toggle_ert_allowed")}return L}(),selected:null})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nuclear Device",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"bomb",content:"Get Authentication Codes",disabled:!p,onClick:function(){function L(){return C("send_nuke_codes")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gamma Armory",children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"biohazard",content:N?"Send Gamma Armory":"Recall Gamma Armory",disabled:!p,onClick:function(){function L(){return C("move_gamma_armory")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Other",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"coins",content:"View Economy",disabled:!p,onClick:function(){function L(){return C("view_econ")}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fax",content:"Fax Manager",disabled:!p,onClick:function(){function L(){return C("view_fax")}return L}()})]})]})}),(0,e.createComponentVNode)(2,t.Collapsible,{title:"View Command accessible controls",children:(0,e.createComponentVNode)(2,g)})]})},g=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.msg_cooldown,N=v.emagged,V=v.cc_cooldown,y=v.security_level_color,B=v.str_security_level,L=v.levels,w=v.authcapt,x=v.authhead,T=v.messages,M="Make Priority Announcement";p>0&&(M+=" ("+p+"s)");var O=N?"Message [UNKNOWN]":"Message CentComm",D="Request Authentication Codes";return V>0&&(O+=" ("+V+"s)",D+=" ("+V+"s)"),(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Captain-Only Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Alert",color:y,children:B}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Change Alert",children:(0,e.createComponentVNode)(2,m,{levels:L,required_access:w})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Announcement",children:(0,e.createComponentVNode)(2,t.Button,{icon:"bullhorn",content:M,disabled:!w||p>0,onClick:function(){function E(){return C("announce")}return E}()})}),!!N&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transmit",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",color:"red",content:O,disabled:!w||V>0,onClick:function(){function E(){return C("MessageSyndicate")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync-alt",content:"Reset Relays",disabled:!w,onClick:function(){function E(){return C("RestoreBackup")}return E}()})]})||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transmit",children:(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",content:O,disabled:!w||V>0,onClick:function(){function E(){return C("MessageCentcomm")}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Nuclear Device",children:(0,e.createComponentVNode)(2,t.Button,{icon:"bomb",content:D,disabled:!w||V>0,onClick:function(){function E(){return C("nukerequest")}return E}()})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Command Staff Actions",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Displays",children:(0,e.createComponentVNode)(2,t.Button,{icon:"tv",content:"Change Status Displays",disabled:!x,onClick:function(){function E(){return C("status")}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Incoming Messages",children:(0,e.createComponentVNode)(2,t.Button,{icon:"folder-open",content:"View ("+T.length+")",disabled:!x,onClick:function(){function E(){return C("messagelist")}return E}()})})]})})})],4)},d=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.stat_display,N=v.authhead,V=v.current_message_title,y=p.presets.map(function(L){return(0,e.createComponentVNode)(2,t.Button,{content:L.label,selected:L.name===p.type,disabled:!N,onClick:function(){function w(){return C("setstat",{statdisp:L.name})}return w}()},L.name)}),B=p.alerts.map(function(L){return(0,e.createComponentVNode)(2,t.Button,{content:L.label,selected:L.alert===p.icon,disabled:!N,onClick:function(){function w(){return C("setstat",{statdisp:3,alert:L.alert})}return w}()},L.alert)});return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Modify Status Screens",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function L(){return C("main")}return L}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Presets",children:y}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alerts",children:B}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message Line 1",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:p.line_1,disabled:!N,onClick:function(){function L(){return C("setmsg1")}return L}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message Line 2",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:p.line_2,disabled:!N,onClick:function(){function L(){return C("setmsg2")}return L}()})})]})})})},c=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.authhead,N=v.current_message_title,V=v.current_message,y=v.messages,B=v.security_level,L;if(N)L=(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:N,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Return To Message List",disabled:!p,onClick:function(){function x(){return C("messagelist")}return x}()}),children:(0,e.createComponentVNode)(2,t.Box,{children:V})})});else{var w=y.map(function(x){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:x.title,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"eye",content:"View",disabled:!p||N===x.title,onClick:function(){function T(){return C("messagelist",{msgid:x.id})}return T}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"times",content:"Delete",disabled:!p,onClick:function(){function T(){return C("delmessage",{msgid:x.id})}return T}()})]},x.id)});L=(0,e.createComponentVNode)(2,t.Section,{title:"Messages Received",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function x(){return C("main")}return x}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:w})})}return(0,e.createComponentVNode)(2,t.Box,{children:L})},m=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=s.levels,N=s.required_access,V=s.use_confirm,y=v.security_level;return V?p.map(function(B){return(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:B.icon,content:B.name,disabled:!N||B.id===y,tooltip:B.tooltip,onClick:function(){function L(){return C("newalertlevel",{level:B.id})}return L}()},B.name)}):p.map(function(B){return(0,e.createComponentVNode)(2,t.Button,{icon:B.icon,content:B.name,disabled:!N||B.id===y,tooltip:B.tooltip,onClick:function(){function L(){return C("newalertlevel",{level:B.id})}return L}()},B.name)})},l=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.is_admin,N=v.possible_cc_sounds;if(!p)return C("main");var V=(0,a.useLocalState)(i,"subtitle",""),y=V[0],B=V[1],L=(0,a.useLocalState)(i,"text",""),w=L[0],x=L[1],T=(0,a.useLocalState)(i,"classified",0),M=T[0],O=T[1],D=(0,a.useLocalState)(i,"beepsound","Beep"),E=D[0],P=D[1];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Central Command Report",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back To Main Menu",onClick:function(){function R(){return C("main")}return R}()}),children:[(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter Subtitle here.",fluid:!0,value:y,onChange:function(){function R(j,F){return B(F)}return R}(),mb:"5px"}),(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter Announcement here,\nMultiline input is accepted.",rows:10,fluid:!0,multiline:1,value:w,onChange:function(){function R(j,F){return x(F)}return R}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Send Announcement",fluid:!0,icon:"paper-plane",center:!0,mt:"5px",textAlign:"center",onClick:function(){function R(){return C("make_cc_announcement",{subtitle:y,text:w,classified:M,beepsound:E})}return R}()}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"260px",height:"20px",options:N,selected:E,onSelected:function(){function R(j){return P(j)}return R}(),disabled:M})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"volume-up",mx:"5px",disabled:M,tooltip:"Test sound",onClick:function(){function R(){return C("test_sound",{sound:E})}return R}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:M,content:"Classified",fluid:!0,tooltip:M?"Sent to station communications consoles":"Publically announced",onClick:function(){function R(){return O(!M)}return R}()})})]})]})})}},20562:function(A,r,n){"use strict";r.__esModule=!0,r.CompostBin=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.CompostBin=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.biomass,m=d.compost,l=d.biomass_capacity,u=d.compost_capacity,s=d.potassium,i=d.potassium_capacity,h=d.potash,C=d.potash_capacity,v=(0,a.useSharedState)(I,"vendAmount",1),p=v[0],N=v[1];return(0,e.createComponentVNode)(2,o.Window,{width:360,height:250,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{label:"Resources",children:(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Biomass",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:c,minValue:0,maxValue:l,ranges:{good:[l*.5,1/0],average:[l*.25,l*.5],bad:[-1/0,l*.25]},children:[c," / ",l," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Compost",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:m,minValue:0,maxValue:u,ranges:{good:[u*.5,1/0],average:[u*.25,u*.5],bad:[-1/0,u*.25]},children:[m," / ",u," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Potassium",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:s,minValue:0,maxValue:i,ranges:{good:[i*.5,1/0],average:[i*.25,i*.5],bad:[-1/0,i*.25]},children:[s," / ",i," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Potash",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ml:.5,mt:1,width:20,value:h,minValue:0,maxValue:C,ranges:{good:[C*.5,1/0],average:[C*.25,C*.5],bad:[-1/0,C*.25]},children:[h," / ",C," Units"]})})]})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Controls",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,mr:"5px",color:"silver",children:"Soil clumps to make:"}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,value:p,width:"32px",minValue:1,maxValue:10,stepPixelSize:7,onChange:function(){function V(y,B){return N(B)}return V}()})],4),children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,align:"center",content:"Make Soil",disabled:m<25*p,icon:"arrow-circle-down",onClick:function(){function V(){return g("create",{amount:p})}return V}()})})})]})})})}return b}()},21813:function(A,r,n){"use strict";r.__esModule=!0,r.Contractor=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(73379),b=n(98595);function S(C,v){C.prototype=Object.create(v.prototype),C.prototype.constructor=C,I(C,v)}function I(C,v){return I=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(p,N){return p.__proto__=N,p},I(C,v)}var k={1:["ACTIVE","good"],2:["COMPLETED","good"],3:["FAILED","bad"]},g=["Recording biometric data...","Analyzing embedded syndicate info...","STATUS CONFIRMED","Contacting Syndicate database...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Response received, ack 4851234...","CONFIRM ACC "+Math.round(Math.random()*2e4),"Setting up private accounts...","CONTRACTOR ACCOUNT CREATED","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","CONTRACTS FOUND","WELCOME, AGENT"],d=r.Contractor=function(){function C(v,p){var N=(0,t.useBackend)(p),V=N.act,y=N.data,B;y.unauthorized?B=(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,i,{height:"100%",allMessages:["ERROR: UNAUTHORIZED USER"],finishedTimeout:100,onFinished:function(){function T(){}return T}()})}):y.load_animation_completed?B=(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",children:(0,e.createComponentVNode)(2,c)}),(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",mt:"0.5rem",children:(0,e.createComponentVNode)(2,m)}),(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",overflow:"hidden",children:y.page===1?(0,e.createComponentVNode)(2,l,{height:"100%"}):(0,e.createComponentVNode)(2,s,{height:"100%"})})],4):B=(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,i,{height:"100%",allMessages:g,finishedTimeout:3e3,onFinished:function(){function T(){return V("complete_load_animation")}return T}()})});var L=(0,t.useLocalState)(p,"viewingPhoto",""),w=L[0],x=L[1];return(0,e.createComponentVNode)(2,b.Window,{theme:"syndicate",width:500,height:600,children:[w&&(0,e.createComponentVNode)(2,h),(0,e.createComponentVNode)(2,b.Window.Content,{className:"Contractor",children:(0,e.createComponentVNode)(2,o.Flex,{direction:"column",height:"100%",children:B})})]})}return C}(),c=function(v,p){var N=(0,t.useBackend)(p),V=N.act,y=N.data,B=y.tc_available,L=y.tc_paid_out,w=y.completed_contracts,x=y.rep;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Summary",buttons:(0,e.createComponentVNode)(2,o.Box,{verticalAlign:"middle",mt:"0.25rem",children:[x," Rep"]})},v,{children:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Box,{flexBasis:"50%",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"TC Available",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,o.Flex,{align:"center",children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",children:[B," TC"]}),(0,e.createComponentVNode)(2,o.Button,{disabled:B<=0,content:"Claim",mx:"0.75rem",mb:"0",flexBasis:"content",onClick:function(){function T(){return V("claim")}return T}()})]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"TC Earned",children:[L," TC"]})]})}),(0,e.createComponentVNode)(2,o.Box,{flexBasis:"50%",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Contracts Completed",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,o.Box,{height:"20px",lineHeight:"20px",inline:!0,children:w})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Contractor Status",verticalAlign:"middle",children:"ACTIVE"})]})})]})})))},m=function(v,p){var N=(0,t.useBackend)(p),V=N.act,y=N.data,B=y.page;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Tabs,Object.assign({},v,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:B===1,onClick:function(){function L(){return V("page",{page:1})}return L}(),children:[(0,e.createComponentVNode)(2,o.Icon,{name:"suitcase"}),"Contracts"]}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:B===2,onClick:function(){function L(){return V("page",{page:2})}return L}(),children:[(0,e.createComponentVNode)(2,o.Icon,{name:"shopping-cart"}),"Hub"]})]})))},l=function(v,p){var N=(0,t.useBackend)(p),V=N.act,y=N.data,B=y.contracts,L=y.contract_active,w=y.can_extract,x=!!L&&B.filter(function(E){return E.status===1})[0],T=x&&x.time_left>0,M=(0,t.useLocalState)(p,"viewingPhoto",""),O=M[0],D=M[1];return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Available Contracts",overflow:"auto",buttons:(0,e.createComponentVNode)(2,o.Button,{disabled:!w||T,icon:"parachute-box",content:["Call Extraction",T&&(0,e.createComponentVNode)(2,f.Countdown,{timeLeft:x.time_left,format:function(){function E(P,R){return" ("+R.substr(3)+")"}return E}()})],onClick:function(){function E(){return V("extract")}return E}()})},v,{children:B.slice().sort(function(E,P){return E.status===1?-1:P.status===1?1:E.status-P.status}).map(function(E){var P;return(0,e.createComponentVNode)(2,o.Section,{title:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"1",color:E.status===1&&"good",children:E.target_name}),(0,e.createComponentVNode)(2,o.Flex.Item,{basis:"content",children:E.has_photo&&(0,e.createComponentVNode)(2,o.Button,{icon:"camera",mb:"-0.5rem",ml:"0.5rem",onClick:function(){function R(){return D("target_photo_"+E.uid+".png")}return R}()})})]}),className:"Contractor__Contract",buttons:(0,e.createComponentVNode)(2,o.Box,{width:"100%",children:[!!k[E.status]&&(0,e.createComponentVNode)(2,o.Box,{color:k[E.status][1],inline:!0,mt:E.status!==1&&"0.125rem",mr:"0.25rem",lineHeight:"20px",children:k[E.status][0]}),E.status===1&&(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"ban",color:"bad",content:"Abort",ml:"0.5rem",onClick:function(){function R(){return V("abort")}return R}()})]}),children:(0,e.createComponentVNode)(2,o.Flex,{children:[(0,e.createComponentVNode)(2,o.Flex.Item,{grow:"2",mr:"0.5rem",children:[E.fluff_message,!!E.completed_time&&(0,e.createComponentVNode)(2,o.Box,{color:"good",children:[(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Icon,{name:"check",mr:"0.5rem"}),"Contract completed at ",E.completed_time]}),!!E.dead_extraction&&(0,e.createComponentVNode)(2,o.Box,{color:"bad",mt:"0.5rem",bold:!0,children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"Telecrystals reward reduced drastically as the target was dead during extraction."]}),!!E.fail_reason&&(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:[(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Icon,{name:"times",mr:"0.5rem"}),"Contract failed: ",E.fail_reason]})]}),(0,e.createComponentVNode)(2,o.Flex.Item,{flexBasis:"100%",children:[(0,e.createComponentVNode)(2,o.Flex,{mb:"0.5rem",color:"label",children:["Extraction Zone:\xA0",u(E)]}),(P=E.difficulties)==null?void 0:P.map(function(R,j){return(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:!!L,content:R.name+" ("+R.reward+" TC)",onClick:function(){function F(){return V("activate",{uid:E.uid,difficulty:j+1})}return F}()},j)}),!!E.objective&&(0,e.createComponentVNode)(2,o.Box,{color:"white",bold:!0,children:[E.objective.extraction_name,(0,e.createVNode)(1,"br"),"(",(E.objective.rewards.tc||0)+" TC",",\xA0",(E.objective.rewards.credits||0)+" Credits",")"]})]})]})},E.uid)})})))},u=function(v){if(!(!v.objective||v.status>1)){var p=v.objective.locs.user_area_id,N=v.objective.locs.user_coords,V=v.objective.locs.target_area_id,y=v.objective.locs.target_coords,B=p===V;return(0,e.createComponentVNode)(2,o.Flex.Item,{children:(0,e.createComponentVNode)(2,o.Icon,{name:B?"dot-circle-o":"arrow-alt-circle-right-o",color:B?"green":"yellow",rotation:B?null:-(0,a.rad2deg)(Math.atan2(y[1]-N[1],y[0]-N[0])),lineHeight:B?null:"0.85",size:"1.5"})})}},s=function(v,p){var N=(0,t.useBackend)(p),V=N.act,y=N.data,B=y.rep,L=y.buyables;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({title:"Available Purchases",overflow:"auto"},v,{children:L.map(function(w){return(0,e.createComponentVNode)(2,o.Section,{title:w.name,children:[w.description,(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:B-1&&(0,e.createComponentVNode)(2,o.Box,{as:"span",color:w.stock===0?"bad":"good",ml:"0.5rem",children:[w.stock," in stock"]})]},w.uid)})})))},i=function(C){function v(N){var V;return V=C.call(this,N)||this,V.timer=null,V.state={currentIndex:0,currentDisplay:[]},V}S(v,C);var p=v.prototype;return p.tick=function(){function N(){var V=this.props,y=this.state;if(y.currentIndex<=V.allMessages.length){this.setState(function(L){return{currentIndex:L.currentIndex+1}});var B=y.currentDisplay;B.push(V.allMessages[y.currentIndex])}else clearTimeout(this.timer),setTimeout(V.onFinished,V.finishedTimeout)}return N}(),p.componentDidMount=function(){function N(){var V=this,y=this.props.linesPerSecond,B=y===void 0?2.5:y;this.timer=setInterval(function(){return V.tick()},1e3/B)}return N}(),p.componentWillUnmount=function(){function N(){clearTimeout(this.timer)}return N}(),p.render=function(){function N(){return(0,e.createComponentVNode)(2,o.Box,{m:1,children:this.state.currentDisplay.map(function(V){return(0,e.createFragment)([V,(0,e.createVNode)(1,"br")],0,V)})})}return N}(),v}(e.Component),h=function(v,p){var N=(0,t.useLocalState)(p,"viewingPhoto",""),V=N[0],y=N[1];return(0,e.createComponentVNode)(2,o.Modal,{className:"Contractor__photoZoom",children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",src:V}),(0,e.createComponentVNode)(2,o.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){function B(){return y("")}return B}()})]})}},54151:function(A,r,n){"use strict";r.__esModule=!0,r.ConveyorSwitch=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ConveyorSwitch=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.slowFactor,m=d.oneWay,l=d.position;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:135,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lever position",children:l>0?"forward":l<0?"reverse":"neutral"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Allow reverse",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!m,onClick:function(){function u(){return g("toggleOneWay")}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Slowdown factor",children:(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",onClick:function(){function u(){return g("slowFactor",{value:c-5})}return u}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-left",onClick:function(){function u(){return g("slowFactor",{value:c-1})}return u}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Slider,{width:"100px",mx:"1px",value:c,fillValue:c,minValue:1,maxValue:50,step:1,format:function(){function u(s){return s+"x"}return u}(),onChange:function(){function u(s,i){return g("slowFactor",{value:i})}return u}()})}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-right",onClick:function(){function u(){return g("slowFactor",{value:c+1})}return u}()})," "]}),(0,e.createComponentVNode)(2,t.Flex.Item,{mx:"1px",children:[" ",(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",onClick:function(){function u(){return g("slowFactor",{value:c+5})}return u}()})," "]})]})})]})})})})}return b}()},73169:function(A,r,n){"use strict";r.__esModule=!0,r.CrewMonitor=void 0;var e=n(89005),a=n(88510),t=n(25328),o=n(72253),f=n(36036),b=n(36352),S=n(76910),I=n(98595),k=n(96184),g=["color"];function d(h,C){if(h==null)return{};var v={};for(var p in h)if({}.hasOwnProperty.call(h,p)){if(C.includes(p))continue;v[p]=h[p]}return v}var c=function(C,v){return C.dead?"Deceased":parseInt(C.health,10)<=v?"Critical":parseInt(C.stat,10)===1?"Unconscious":"Living"},m=function(C,v){return C.dead?"red":parseInt(C.health,10)<=v?"orange":parseInt(C.stat,10)===1?"blue":"green"},l=r.CrewMonitor=function(){function h(C,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,y=(0,o.useLocalState)(v,"tabIndex",V.tabIndex),B=y[0],L=y[1],w=function(){function T(M){L(M),N("set_tab_index",{tab_index:M})}return T}(),x=function(){function T(M){switch(M){case 0:return(0,e.createComponentVNode)(2,u);case 1:return(0,e.createComponentVNode)(2,i);default:return"WE SHOULDN'T BE HERE!"}}return T}();return(0,e.createComponentVNode)(2,I.Window,{width:800,height:600,children:(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"table",selected:B===0,onClick:function(){function T(){return w(0)}return T}(),children:"Data View"},"DataView"),(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"map-marked-alt",selected:B===1,onClick:function(){function T(){return w(1)}return T}(),children:"Map View"},"MapView")]})}),x(B)]})})})}return h}(),u=function(C,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,y=V.possible_levels,B=V.viewing_current_z_level,L=V.is_advanced,w=V.highlightedNames,x=(0,a.sortBy)(function(E){return!w.includes(E.name)},function(E){return E.name})(V.crewmembers||[]),T=(0,o.useLocalState)(v,"search",""),M=T[0],O=T[1],D=(0,t.createSearch)(M,function(E){return E.name+"|"+E.assignment+"|"+E.area});return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,backgroundColor:"transparent",children:[(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Stack.Item,{width:"100%",ml:"5px",children:(0,e.createComponentVNode)(2,f.Input,{placeholder:"Search by name, assignment or location..",width:"100%",onInput:function(){function E(P,R){return O(R)}return E}()})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:L?(0,e.createComponentVNode)(2,f.Dropdown,{mr:"5px",width:"50px",options:y,selected:B,onSelected:function(){function E(P){return N("switch_level",{new_level:P})}return E}()}):null})]}),(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,f.Button,{tooltip:"Clear highlights",icon:"square-xmark",onClick:function(){function E(){return N("clear_highlighted_names")}return E}()})}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Location"})]}),x.filter(D).map(function(E,P){var R=w.includes(E.name);return(0,e.createComponentVNode)(2,f.Table.Row,{bold:!!E.is_command,children:[(0,e.createComponentVNode)(2,b.TableCell,{children:(0,e.createComponentVNode)(2,k.ButtonCheckbox,{checked:R,tooltip:"Mark on map",onClick:function(){function j(){return N(R?"remove_highlighted_name":"add_highlighted_name",{name:E.name})}return j}()})}),(0,e.createComponentVNode)(2,b.TableCell,{children:[E.name," (",E.assignment,")"]}),(0,e.createComponentVNode)(2,b.TableCell,{children:[(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:m(E,V.critThreshold),children:c(E,V.critThreshold)}),E.sensor_type>=2||V.ignoreSensors?(0,e.createComponentVNode)(2,f.Box,{inline:!0,ml:1,children:["(",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:S.COLORS.damageType.oxy,children:E.oxy}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:S.COLORS.damageType.toxin,children:E.tox}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:S.COLORS.damageType.burn,children:E.fire}),"|",(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:S.COLORS.damageType.brute,children:E.brute}),")"]}):null]}),(0,e.createComponentVNode)(2,b.TableCell,{children:E.sensor_type===3||V.ignoreSensors?V.isAI||V.isObserver?(0,e.createComponentVNode)(2,f.Button,{fluid:!0,icon:"location-arrow",content:E.area+" ("+E.x+", "+E.y+")",onClick:function(){function j(){return N("track",{track:E.ref})}return j}()}):E.area+" ("+E.x+", "+E.y+")":(0,e.createComponentVNode)(2,f.Box,{inline:!0,color:"grey",children:"Not Available"})})]},P)})]})]})},s=function(C,v){var p=C.color,N=d(C,g);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.NanoMap.Marker,Object.assign({},N,{children:(0,e.createVNode)(1,"span","highlighted-marker color-border-"+p)})))},i=function(C,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,y=V.highlightedNames;return(0,e.createComponentVNode)(2,f.Box,{height:"100vh",mb:"0.5rem",overflow:"hidden",children:(0,e.createComponentVNode)(2,f.NanoMap,{zoom:V.zoom,offsetX:V.offsetX,offsetY:V.offsetY,onZoom:function(){function B(L){return N("set_zoom",{zoom:L})}return B}(),onOffsetChange:function(){function B(L,w){return N("set_offset",{offset_x:w.offsetX,offset_y:w.offsetY})}return B}(),children:V.crewmembers.filter(function(B){return B.sensor_type===3||V.ignoreSensors}).map(function(B){var L=m(B,V.critThreshold),w=y.includes(B.name),x=function(){return V.isObserver?N("track",{track:B.ref}):null},T=function(){return N(w?"remove_highlighted_name":"add_highlighted_name",{name:B.name})},M=B.name+" ("+B.assignment+")";return w?(0,e.createComponentVNode)(2,s,{x:B.x,y:B.y,tooltip:M,color:L,onClick:x,onDblClick:T},B.ref):(0,e.createComponentVNode)(2,f.NanoMap.MarkerIcon,{x:B.x,y:B.y,icon:"circle",tooltip:M,color:L,onClick:x,onDblClick:T},B.ref)})})})}},63987:function(A,r,n){"use strict";r.__esModule=!0,r.Cryo=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],b=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],S=r.Cryo=function(){function g(d,c){return(0,e.createComponentVNode)(2,o.Window,{width:520,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,I)})})})}return g}(),I=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.isOperating,i=u.hasOccupant,h=u.occupant,C=h===void 0?[]:h,v=u.cellTemperature,p=u.cellTemperatureStatus,N=u.isBeakerLoaded,V=u.cooldownProgress,y=u.auto_eject_healthy,B=u.auto_eject_dead;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Occupant",fill:!0,scrollable:!0,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"user-slash",onClick:function(){function L(){return l("ejectOccupant")}return L}(),disabled:!i,children:"Eject"}),children:i?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Occupant",children:C.name||"Unknown"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:C.health,max:C.maxHealth,value:C.health/C.maxHealth,color:C.health>0?"good":"average",children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(C.health)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:b[C.stat][0],children:b[C.stat][1]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(C.bodyTemperature)})," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),f.map(function(L){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:L.label,children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:C[L.type]/100,ranges:{bad:[.01,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:Math.round(C[L.type])})})},L.id)})]}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Cell",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",onClick:function(){function L(){return l("ejectBeaker")}return L}(),disabled:!N,children:"Eject Beaker"}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",onClick:function(){function L(){return l(s?"switchOff":"switchOn")}return L}(),selected:s,children:s?"On":"Off"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",color:p,children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:v})," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:(0,e.createComponentVNode)(2,k)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dosage interval",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{average:[-1/0,99],good:[99,1/0]},color:!N&&"average",value:V,minValue:0,maxValue:100})}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto-eject healthy occupants",children:(0,e.createComponentVNode)(2,t.Button,{icon:y?"toggle-on":"toggle-off",selected:y,onClick:function(){function L(){return l(y?"auto_eject_healthy_off":"auto_eject_healthy_on")}return L}(),children:y?"On":"Off"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto-eject dead occupants",children:(0,e.createComponentVNode)(2,t.Button,{icon:B?"toggle-on":"toggle-off",selected:B,onClick:function(){function L(){return l(B?"auto_eject_dead_off":"auto_eject_dead_on")}return L}(),children:B?"On":"Off"})})]})})})],4)},k=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.isBeakerLoaded,i=u.beakerLabel,h=u.beakerVolume;return s?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:!i&&"average",children:[i||"No label",":"]}),(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:!h&&"bad",ml:1,children:h?(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:h,format:function(){function C(v){return Math.round(v)+" units remaining"}return C}()}):"Beaker is empty"})],4):(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"bad",children:"No beaker loaded"})}},86099:function(A,r,n){"use strict";r.__esModule=!0,r.CryopodConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=r.CryopodConsole=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.data,l=m.account_name,u=m.allow_items;return(0,e.createComponentVNode)(2,o.Window,{title:"Cryopod Console",width:400,height:480,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Hello, "+(l||"[REDACTED]")+"!",children:"This automated cryogenic freezing unit will safely store your corporeal form until your next assignment."}),(0,e.createComponentVNode)(2,S),!!u&&(0,e.createComponentVNode)(2,I)]})})}return k}(),S=function(g,d){var c=(0,a.useBackend)(d),m=c.data,l=m.frozen_crew;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Stored Crew",children:l.length?(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:l.map(function(u,s){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:u.name,children:u.rank},s)})})}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No stored crew!"})})},I=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.frozen_items,s=function(h){var C=h.toString();return C.startsWith("the ")&&(C=C.slice(4,C.length)),(0,f.toTitleCase)(C)};return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Stored Items",children:u.length?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:u.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:s(i.name),buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Drop",mr:1,onClick:function(){function h(){return m("one_item",{item:i.uid})}return h}()})},i)})})}),(0,e.createComponentVNode)(2,t.Button,{content:"Drop All Items",color:"red",onClick:function(){function i(){return m("all_items")}return i}()})],4):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No stored items!"})})}},12692:function(A,r,n){"use strict";r.__esModule=!0,r.DNAModifier=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=[["good","Alive"],["average","Critical"],["bad","DEAD"]],S=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],I=[5,10,20,30,50],k=r.DNAModifier=function(){function p(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.irradiating,x=L.dnaBlockSize,T=L.occupant;V.dnaBlockSize=x,V.isDNAInvalid=!T.isViableSubject||!T.uniqueIdentity||!T.structuralEnzymes;var M;return w&&(M=(0,e.createComponentVNode)(2,C,{duration:w})),(0,e.createComponentVNode)(2,o.Window,{width:660,height:775,children:[(0,e.createComponentVNode)(2,f.ComplexModal),M,(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,g)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,d)})]})})]})}return p}(),g=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.locked,x=L.hasOccupant,T=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{color:"label",inline:!0,mr:"0.5rem",children:"Door Lock:"}),(0,e.createComponentVNode)(2,t.Button,{disabled:!x,selected:w,icon:w?"toggle-on":"toggle-off",content:w?"Engaged":"Disengaged",onClick:function(){function M(){return B("toggleLock")}return M}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!x||w,icon:"user-slash",content:"Eject",onClick:function(){function M(){return B("ejectOccupant")}return M}()})],4),children:x?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:T.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:T.minHealth,max:T.maxHealth,value:T.health/T.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:b[T.stat][0],children:b[T.stat][1]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider)]})}),V.isDNAInvalid?(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-circle"}),"\xA0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Radiation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{min:"0",max:"100",value:T.radiationLevel/100,color:"average"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unique Enzymes",children:L.occupant.uniqueEnzymes?L.occupant.uniqueEnzymes:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"exclamation-circle"}),"\xA0 Unknown"]})})]})],0):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"Cell unoccupied."})})},d=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.selectedMenuKey,x=L.hasOccupant,T=L.occupant;if(x){if(V.isDNAInvalid)return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No operation possible on this subject."]})})})}else return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant in DNA modifier."]})})});var M;return w==="ui"?M=(0,e.createFragment)([(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,l)],4):w==="se"?M=(0,e.createFragment)([(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,l)],4):w==="buffer"?M=(0,e.createComponentVNode)(2,u):w==="rejuvenators"&&(M=(0,e.createComponentVNode)(2,h)),(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:S.map(function(O,D){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:O[2],selected:w===O[0],onClick:function(){function E(){return B("selectMenuKey",{key:O[0]})}return E}(),children:O[1]},D)})}),M]})},c=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.selectedUIBlock,x=L.selectedUISubBlock,T=L.selectedUITarget,M=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Modify Unique Identifier",children:[(0,e.createComponentVNode)(2,v,{dnaString:M.uniqueIdentity,selectedBlock:w,selectedSubblock:x,blockSize:V.dnaBlockSize,action:"selectUIBlock"}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:15,stepPixelSize:"20",value:T,format:function(){function O(D){return D.toString(16).toUpperCase()}return O}(),ml:"0",onChange:function(){function O(D,E){return B("changeUITarget",{value:E})}return O}()})})}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Irradiate Block",mt:"0.5rem",onClick:function(){function O(){return B("pulseUIRadiation")}return O}()})]})},m=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.selectedSEBlock,x=L.selectedSESubBlock,T=L.occupant;return(0,e.createComponentVNode)(2,t.Section,{title:"Modify Structural Enzymes",children:[(0,e.createComponentVNode)(2,v,{dnaString:T.structuralEnzymes,selectedBlock:w,selectedSubblock:x,blockSize:V.dnaBlockSize,action:"selectSEBlock"}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Irradiate Block",onClick:function(){function M(){return B("pulseSERadiation")}return M}()})]})},l=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.radiationIntensity,x=L.radiationDuration;return(0,e.createComponentVNode)(2,t.Section,{title:"Radiation Emitter",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Intensity",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:10,stepPixelSize:20,value:w,popUpPosition:"right",ml:"0",onChange:function(){function T(M,O){return B("radiationIntensity",{value:O})}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Duration",children:(0,e.createComponentVNode)(2,t.Knob,{minValue:1,maxValue:20,stepPixelSize:10,unit:"s",value:x,popUpPosition:"right",ml:"0",onChange:function(){function T(M,O){return B("radiationDuration",{value:O})}return T}()})})]}),(0,e.createComponentVNode)(2,t.Button,{icon:"radiation",content:"Pulse Radiation",tooltip:"Mutates a random block of either the occupant's UI or SE.",tooltipPosition:"top-start",mt:"0.5rem",onClick:function(){function T(){return B("pulseRadiation")}return T}()})]})},u=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.buffers,x=w.map(function(T,M){return(0,e.createComponentVNode)(2,s,{id:M+1,name:"Buffer "+(M+1),buffer:T},M)});return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{height:"75%",mt:1,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Buffers",children:x})}),(0,e.createComponentVNode)(2,t.Stack.Item,{height:"25%",children:(0,e.createComponentVNode)(2,i)})]})},s=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=N.id,x=N.name,T=N.buffer,M=L.isInjectorReady,O=x+(T.data?" - "+T.label:"");return(0,e.createComponentVNode)(2,t.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.createComponentVNode)(2,t.Section,{title:O,mx:"0",lineHeight:"18px",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{disabled:!T.data,icon:"trash",content:"Clear",onClick:function(){function D(){return B("bufferOption",{option:"clear",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!T.data,icon:"pen",content:"Rename",onClick:function(){function D(){return B("bufferOption",{option:"changeLabel",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!T.data||!L.hasDisk,icon:"save",content:"Export",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-start",onClick:function(){function D(){return B("bufferOption",{option:"saveDisk",id:w})}return D}()})],4),children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Write",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject U.I",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"saveUI",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject U.I and U.E.",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"saveUIAndUE",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-down",content:"Subject S.E.",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"saveSE",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!L.hasDisk||!L.disk.data,icon:"arrow-circle-down",content:"From Disk",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"loadDisk",id:w})}return D}()})]}),!!T.data&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subject",children:T.owner||(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Unknown"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Type",children:[T.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!T.ue&&" and Unique Enzymes"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Transfer to",children:[(0,e.createComponentVNode)(2,t.Button,{disabled:!M,icon:M?"syringe":"spinner",iconSpin:!M,content:"Injector",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"createInjector",id:w})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!M,icon:M?"syringe":"spinner",iconSpin:!M,content:"Block Injector",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"createInjector",id:w,block:1})}return D}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"user",content:"Subject",mb:"0",onClick:function(){function D(){return B("bufferOption",{option:"transfer",id:w})}return D}()})]})],4)]}),!T.data&&(0,e.createComponentVNode)(2,t.Box,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},i=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.hasDisk,x=L.disk;return(0,e.createComponentVNode)(2,t.Section,{title:"Data Disk",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{disabled:!w||!x.data,icon:"trash",content:"Wipe",onClick:function(){function T(){return B("wipeDisk")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:!w,icon:"eject",content:"Eject",onClick:function(){function T(){return B("ejectDisk")}return T}()})],4),children:w?x.data?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Label",children:x.label?x.label:"No label"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Subject",children:x.owner?x.owner:(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"Unknown"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Type",children:[x.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!x.ue&&" and Unique Enzymes"]})]}):(0,e.createComponentVNode)(2,t.Box,{color:"label",children:"Disk is blank."}):(0,e.createComponentVNode)(2,t.Box,{color:"label",textAlign:"center",my:"1rem",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"save-o",size:"4"}),(0,e.createVNode)(1,"br"),"No disk inserted."]})})},h=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.isBeakerLoaded,x=L.beakerVolume,T=L.beakerLabel;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Rejuvenators and Beaker",buttons:(0,e.createComponentVNode)(2,t.Button,{disabled:!w,icon:"eject",content:"Eject",onClick:function(){function M(){return B("ejectBeaker")}return M}()}),children:w?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Inject",children:[I.map(function(M,O){return(0,e.createComponentVNode)(2,t.Button,{disabled:M>x,icon:"syringe",content:M,onClick:function(){function D(){return B("injectRejuvenators",{amount:M})}return D}()},O)}),(0,e.createComponentVNode)(2,t.Button,{disabled:x<=0,icon:"syringe",content:"All",onClick:function(){function M(){return B("injectRejuvenators",{amount:x})}return M}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Beaker",children:[(0,e.createComponentVNode)(2,t.Box,{mb:"0.5rem",children:T||"No label"}),x?(0,e.createComponentVNode)(2,t.Box,{color:"good",children:[x," unit",x===1?"":"s"," remaining"]}):(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Empty"})]})]}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"flask",size:5,color:"silver"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"h3",null,"No beaker loaded.",16)]})})})},C=function(N,V){return(0,e.createComponentVNode)(2,t.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"spinner",size:"5",spin:!0}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{color:"average",children:(0,e.createVNode)(1,"h1",null,[(0,e.createComponentVNode)(2,t.Icon,{name:"radiation"}),(0,e.createTextVNode)("\xA0Irradiating occupant\xA0"),(0,e.createComponentVNode)(2,t.Icon,{name:"radiation"})],4)}),(0,e.createComponentVNode)(2,t.Box,{color:"label",children:(0,e.createVNode)(1,"h3",null,[(0,e.createTextVNode)("For "),N.duration,(0,e.createTextVNode)(" second"),N.duration===1?"":"s"],0)})]})},v=function(N,V){for(var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=N.dnaString,x=N.selectedBlock,T=N.selectedSubblock,M=N.blockSize,O=N.action,D=w.split(""),E=0,P=[],R=function(){for(var W=j/M+1,z=[],K=function(){var Q=G+1;z.push((0,e.createComponentVNode)(2,t.Button,{selected:x===W&&T===Q,content:D[j+G],mb:"0",onClick:function(){function ue(){return B(O,{block:W,subblock:Q})}return ue}()}))},G=0;Gi.spawnpoints?"red":"green",children:[i.total," total, versus ",i.spawnpoints," spawnpoints"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Dispatch",children:(0,e.createComponentVNode)(2,t.Button,{width:10.5,textAlign:"center",icon:"ambulance",content:"Send ERT",onClick:function(){function N(){return s("dispatch_ert",{silent:v})}return N}()})})]})})})},g=function(m,l){var u=(0,a.useBackend)(l),s=u.act,i=u.data,h=i.ert_request_messages;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:h&&h.length?h.map(function(C){return(0,e.createComponentVNode)(2,t.Section,{title:C.time,buttons:(0,e.createComponentVNode)(2,t.Button,{content:C.sender_real_name,onClick:function(){function v(){return s("view_player_panel",{uid:C.sender_uid})}return v}(),tooltip:"View player panel"}),children:C.message},(0,f.decodeHtmlEntities)(C.time))}):(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"broadcast-tower",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No ERT requests."]})})})})},d=function(m,l){var u=(0,a.useBackend)(l),s=u.act,i=u.data,h=(0,a.useLocalState)(l,"text",""),C=h[0],v=h[1];return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Input,{placeholder:"Enter ERT denial reason here,\nMultiline input is accepted.",rows:19,fluid:!0,multiline:1,value:C,onChange:function(){function p(N,V){return v(V)}return p}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Deny ERT",fluid:!0,icon:"times",center:!0,mt:2,textAlign:"center",onClick:function(){function p(){return s("deny_ert",{reason:C})}return p}()})]})})}},90217:function(A,r,n){"use strict";r.__esModule=!0,r.EconomyManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.EconomyManager=function(){function I(k,g){return(0,e.createComponentVNode)(2,o.Window,{width:600,height:325,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,e.createComponentVNode)(2,S)})]})}return I}(),S=function(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.next_payroll_time;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.4rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"coins",verticalAlign:"middle",size:3,mr:"1rem"}),"Economy Manager"]}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.LabeledList,{label:"Pay Bonuses and Deductions",children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Global",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Global Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"global"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Department Accounts",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Department Account Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"department"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Department Members",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Department Members Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"department_members"})}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Single Accounts",children:(0,e.createComponentVNode)(2,t.Button,{icon:"dollar-sign",width:"auto",content:"Crew Member Payroll Modification",onClick:function(){function u(){return c("payroll_modification",{mod_type:"crew_member"})}return u}()})})]}),(0,e.createVNode)(1,"hr"),(0,e.createComponentVNode)(2,t.Box,{mb:.5,children:["Next Payroll in: ",l," Minutes"]}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",width:"auto",color:"bad",content:"Delay Payroll",onClick:function(){function u(){return c("delay_payroll")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{width:"auto",content:"Set Payroll Time",onClick:function(){function u(){return c("set_payroll")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",width:"auto",color:"good",content:"Accelerate Payroll",onClick:function(){function u(){return c("accelerate_payroll")}return u}()})]}),(0,e.createComponentVNode)(2,t.NoticeBox,{children:[(0,e.createVNode)(1,"b",null,"WARNING:",16)," You take full responsibility for unbalancing the economy with these buttons!"]})],4)}},82565:function(A,r,n){"use strict";r.__esModule=!0,r.Electropack=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.Electropack=function(){function S(I,k){var g=(0,t.useBackend)(k),d=g.act,c=g.data,m=c.power,l=c.code,u=c.frequency,s=c.minFrequency,i=c.maxFrequency;return(0,e.createComponentVNode)(2,f.Window,{width:360,height:135,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,o.Button,{icon:m?"power-off":"times",content:m?"On":"Off",selected:m,onClick:function(){function h(){return d("power")}return h}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Reset",onClick:function(){function h(){return d("reset",{reset:"freq"})}return h}()}),children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:s/10,maxValue:i/10,value:u/10,format:function(){function h(C){return(0,a.toFixed)(C,1)}return h}(),width:"80px",onChange:function(){function h(C,v){return d("freq",{freq:v})}return h}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Reset",onClick:function(){function h(){return d("reset",{reset:"code"})}return h}()}),children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:l,width:"80px",onChange:function(){function h(C,v){return d("code",{code:v})}return h}()})})]})})})})}return S}()},11243:function(A,r,n){"use strict";r.__esModule=!0,r.Emojipedia=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=r.Emojipedia=function(){function I(k,g){var d=(0,t.useBackend)(g),c=d.data,m=c.emoji_list,l=(0,t.useLocalState)(g,"searchText",""),u=l[0],s=l[1],i=m.filter(function(h){return h.name.toLowerCase().includes(u.toLowerCase())});return(0,e.createComponentVNode)(2,f.Window,{width:325,height:400,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Emojipedia v1.0.1",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by name",value:u,onInput:function(){function h(C,v){return s(v)}return h}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"Click on an emoji to copy its tag!",tooltipPosition:"bottom",icon:"circle-question"})],4),children:i.map(function(h){return(0,e.createComponentVNode)(2,o.Button,{m:1,color:"transparent",className:(0,a.classes)(["emoji16x16","emoji-"+h.name]),style:{transform:"scale(1.5)"},tooltip:h.name,onClick:function(){function C(){S(h.name)}return C}()},h.name)})})})})}return I}(),S=function(k){var g=document.createElement("input"),d=":"+k+":";g.value=d,document.body.appendChild(g),g.select(),document.execCommand("copy"),document.body.removeChild(g)}},69784:function(A,r,n){"use strict";r.__esModule=!0,r.EmotePanelContent=r.EmotePanel=void 0;var e=n(89005),a=n(72253),t=n(98595),o=n(36036),f=n(25328),b=r.EmotePanel=function(){function I(k,g){return(0,e.createComponentVNode)(2,t.Window,{width:500,height:550,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,S)})})})}return I}(),S=r.EmotePanelContent=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.emotes,u=(0,a.useLocalState)(g,"searchText",""),s=u[0],i=u[1],h=(0,a.useLocalState)(g,"filterVisible",""),C=h[0],v=h[1],p=(0,a.useLocalState)(g,"filterAudible",""),N=p[0],V=p[1],y=(0,a.useLocalState)(g,"filterSound",""),B=y[0],L=y[1],w=(0,a.useLocalState)(g,"filterHands",""),x=w[0],T=w[1],M=(0,a.useLocalState)(g,"filterTargettable",""),O=M[0],D=M[1],E=(0,a.useLocalState)(g,"useTarget",""),P=E[0],R=E[1],j=(0,e.createComponentVNode)(2,o.Input,{placeholder:"\u0418\u0441\u043A\u0430\u0442\u044C \u044D\u043C\u043E\u0446\u0438\u044E...",fluid:!0,onInput:function(){function F(W,z){return i(z)}return F}()});return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B",buttons:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Button,{icon:"eye",align:"center",tooltip:"\u0412\u0438\u0434\u0438\u043C\u044B\u0439",selected:C,onClick:function(){function F(){return v(!C)}return F}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"comment",align:"center",tooltip:"\u0421\u043B\u044B\u0448\u0438\u043C\u044B\u0439",selected:N,onClick:function(){function F(){return V(!N)}return F}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"volume-up",align:"center",tooltip:"\u0417\u0432\u0443\u043A",selected:B,onClick:function(){function F(){return L(!B)}return F}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"hand-paper",align:"center",tooltip:"\u0420\u0443\u043A\u0438",selected:x,onClick:function(){function F(){return T(!x)}return F}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"crosshairs",height:"100%",align:"center",tooltip:"\u0426\u0435\u043B\u044C",selected:O,onClick:function(){function F(){return D(!O)}return F}()})]}),children:j})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:s.length>0?'\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043F\u043E\u0438\u0441\u043A\u0430 "'+s+'"':"\u0412\u0441\u0435 \u044D\u043C\u043E\u0446\u0438\u0438",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"crosshairs",selected:P,onClick:function(){function F(){return R(!P)}return F}(),children:"\u0412\u044B\u0431\u0438\u0440\u0430\u0442\u044C \u0446\u0435\u043B\u044C"}),children:(0,e.createComponentVNode)(2,o.Stack,{children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:l.filter(function(F){return F.key&&(s.length>0?F.key.toLowerCase().includes(s.toLowerCase())||F.name.toLowerCase().includes(s.toLowerCase()):!0)&&(C?F.visible:!0)&&(N?F.audible:!0)&&(B?F.sound:!0)&&(x?F.hands:!0)&&(O?F.targettable:!0)}).map(function(F){return(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function W(){return c("play_emote",{emote_key:F.key,useTarget:P})}return W}(),children:[F.visible?(0,e.createComponentVNode)(2,o.Icon,{name:"eye"}):"",F.audible?(0,e.createComponentVNode)(2,o.Icon,{name:"comment"}):"",F.sound?(0,e.createComponentVNode)(2,o.Icon,{name:"volume-up"}):"",F.hands?(0,e.createComponentVNode)(2,o.Icon,{name:"hand-paper"}):"",F.targettable?(0,e.createComponentVNode)(2,o.Icon,{name:"crosshairs"}):"",F.name]},F.name)})})})})})],4)}return I}()},36730:function(A,r,n){"use strict";r.__esModule=!0,r.EvolutionMenu=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(64795),S=n(88510),I=r.EvolutionMenu=function(){function d(c,m){return(0,e.createComponentVNode)(2,f.Window,{width:480,height:580,theme:"changeling",children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,g)]})})})}return d}(),k=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,i=s.evo_points,h=s.can_respec;return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Evolution Points",height:5.5,children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,color:"label",children:"Points remaining:"}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,ml:2,bold:!0,color:"#1b945c",children:i}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Button,{ml:2.5,disabled:!h,content:"Readapt",icon:"sync",onClick:function(){function C(){return u("readapt")}return C}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"By transforming a humanoid into a husk, we gain the ability to readapt our chosen evolutions.",tooltipPosition:"bottom",icon:"question-circle"})]})]})})})},g=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,i=s.evo_points,h=s.ability_tabs,C=s.purchased_abilities,v=s.view_mode,p=(0,t.useLocalState)(m,"selectedTab",h[0]),N=p[0],V=p[1],y=(0,t.useLocalState)(m,"searchText",""),B=y[0],L=y[1],w=(0,t.useLocalState)(m,"ability_tabs",h[0].abilities),x=w[0],T=w[1],M=function(P,R){if(R===void 0&&(R=""),!P||P.length===0)return[];var j=(0,a.createSearch)(R,function(F){return F.name+"|"+F.description});return(0,b.flow)([(0,S.filter)(function(F){return F==null?void 0:F.name}),(0,S.filter)(j),(0,S.sortBy)(function(F){return F==null?void 0:F.name})])(P)},O=function(P){if(L(P),P==="")return T(N.abilities);T(M(h.map(function(R){return R.abilities}).flat(),P))},D=function(P){V(P),T(P.abilities),L("")};return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Abilities",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Input,{width:"200px",placeholder:"Search Abilities",onInput:function(){function E(P,R){O(R)}return E}(),value:B}),(0,e.createComponentVNode)(2,o.Button,{icon:v?"square-o":"check-square-o",selected:!v,content:"Compact",onClick:function(){function E(){return u("set_view_mode",{mode:0})}return E}()}),(0,e.createComponentVNode)(2,o.Button,{icon:v?"check-square-o":"square-o",selected:v,content:"Expanded",onClick:function(){function E(){return u("set_view_mode",{mode:1})}return E}()})],4),children:[(0,e.createComponentVNode)(2,o.Tabs,{children:h.map(function(E){return(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:B===""&&N===E,onClick:function(){function P(){D(E)}return P}(),children:E.category},E)})}),x.map(function(E,P){return(0,e.createComponentVNode)(2,o.Box,{p:.5,mx:-1,className:"candystripe",children:[(0,e.createComponentVNode)(2,o.Stack,{align:"center",children:[(0,e.createComponentVNode)(2,o.Stack.Item,{ml:.5,color:"#dedede",children:E.name}),C.includes(E.power_path)&&(0,e.createComponentVNode)(2,o.Stack.Item,{ml:2,bold:!0,color:"#1b945c",children:"(Purchased)"}),(0,e.createComponentVNode)(2,o.Stack.Item,{mr:3,textAlign:"right",grow:1,children:[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:["Cost:"," "]}),(0,e.createComponentVNode)(2,o.Box,{as:"span",bold:!0,color:"#1b945c",children:E.cost})]}),(0,e.createComponentVNode)(2,o.Stack.Item,{textAlign:"right",children:(0,e.createComponentVNode)(2,o.Button,{mr:.5,disabled:E.cost>i||C.includes(E.power_path),content:"Evolve",onClick:function(){function R(){return u("purchase",{power_path:E.power_path})}return R}()})})]}),!!v&&(0,e.createComponentVNode)(2,o.Stack,{color:"#8a8a8a",my:1,ml:1.5,width:"95%",children:E.description+" "+E.helptext})]},P)})]})})}},17370:function(A,r,n){"use strict";r.__esModule=!0,r.ExosuitFabricator=void 0;var e=n(89005),a=n(35840),t=n(25328),o=n(72253),f=n(36036),b=n(73379),S=n(98595),I=["id","amount","lineDisplay","onClick"];function k(p,N){if(p==null)return{};var V={};for(var y in p)if({}.hasOwnProperty.call(p,y)){if(N.includes(y))continue;V[y]=p[y]}return V}var g=2e3,d={bananium:"clown",tranquillite:"mime"},c=r.ExosuitFabricator=function(){function p(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.building,x=L.linked;return x?(0,e.createComponentVNode)(2,S.Window,{width:950,height:625,children:(0,e.createComponentVNode)(2,S.Window.Content,{className:"Exofab",children:[(0,e.createComponentVNode)(2,v),(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,l)}),w&&(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,u)})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m)}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,s)})]})})]})]})}):(0,e.createComponentVNode)(2,C)}return p}(),m=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.materials,x=L.capacity,T=Object.values(w).reduce(function(M,O){return M+O},0);return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:"Materials",className:"Exofab__materials",buttons:(0,e.createComponentVNode)(2,f.Box,{color:"label",mt:"0.25rem",children:[(T/x*100).toPrecision(3),"% full"]}),children:["metal","glass","silver","gold","uranium","titanium","plasma","diamond","bluespace","bananium","tranquillite","plastic"].map(function(M){return(0,e.createComponentVNode)(2,i,{mt:-2,id:M,bold:M==="metal"||M==="glass",onClick:function(){function O(){return B("withdraw",{id:M})}return O}()},M)})})},l=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.curCategory,x=L.categories,T=L.designs,M=L.syncing,O=(0,o.useLocalState)(V,"searchText",""),D=O[0],E=O[1],P=(0,t.createSearch)(D,function(z){return z.name}),R=T.filter(P),j=(0,o.useLocalState)(V,"levelsModal",!1),F=j[0],W=j[1];return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,className:"Exofab__designs",title:(0,e.createComponentVNode)(2,f.Dropdown,{width:"19rem",className:"Exofab__dropdown",selected:w,options:x,onSelected:function(){function z(K){return B("category",{cat:K})}return z}()}),buttons:(0,e.createComponentVNode)(2,f.Box,{mt:"2px",children:[(0,e.createComponentVNode)(2,f.Button,{icon:"plus",content:"Queue all",onClick:function(){function z(){return B("queueall")}return z}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"info",content:"Show current tech levels",onClick:function(){function z(){return W(!0)}return z}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"unlink",color:"red",tooltip:"Disconnect from R&D network",onClick:function(){function z(){return B("unlink")}return z}()})]}),children:[(0,e.createComponentVNode)(2,f.Input,{placeholder:"Search by name...",mb:"0.5rem",width:"100%",onInput:function(){function z(K,G){return E(G)}return z}()}),R.map(function(z){return(0,e.createComponentVNode)(2,h,{design:z},z.id)}),R.length===0&&(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No designs found."})]})},u=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.building,x=L.buildStart,T=L.buildEnd,M=L.worldTime;return(0,e.createComponentVNode)(2,f.Section,{className:"Exofab__building",stretchContents:!0,children:(0,e.createComponentVNode)(2,f.ProgressBar.Countdown,{start:x,current:M,end:T,children:(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Icon,{name:"cog",spin:!0})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:["Building ",w,"\xA0(",(0,e.createComponentVNode)(2,b.Countdown,{current:M,timeLeft:T-M,format:function(){function O(D,E){return E.substr(3)}return O}()}),")"]})]})})})},s=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.queue,x=L.processingQueue,T=Object.entries(L.queueDeficit).filter(function(O){return O[1]<0}),M=w.reduce(function(O,D){return O+D.time},0);return(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,className:"Exofab__queue",title:"Queue",buttons:(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,f.Button,{selected:x,icon:x?"toggle-on":"toggle-off",content:"Process",onClick:function(){function O(){return B("process")}return O}()}),(0,e.createComponentVNode)(2,f.Button,{disabled:w.length===0,icon:"eraser",content:"Clear",onClick:function(){function O(){return B("unqueueall")}return O}()})]}),children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:w.length===0?(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"The queue is empty."}):(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--queue",grow:!0,overflow:"auto",children:w.map(function(O,D){return(0,e.createComponentVNode)(2,f.Box,{color:O.notEnough&&"bad",children:[D+1,". ",O.name,D>0&&(0,e.createComponentVNode)(2,f.Button,{icon:"arrow-up",onClick:function(){function E(){return B("queueswap",{from:D+1,to:D})}return E}()}),D0&&(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--time",children:[(0,e.createComponentVNode)(2,f.Divider),"Processing time:",(0,e.createComponentVNode)(2,f.Icon,{name:"clock",mx:"0.5rem"}),(0,e.createComponentVNode)(2,f.Box,{inline:!0,bold:!0,children:new Date(M/10*1e3).toISOString().substr(14,5)})]}),Object.keys(T).length>0&&(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__queue--deficit",shrink:"0",children:[(0,e.createComponentVNode)(2,f.Divider),"Lacking materials to complete:",T.map(function(O){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,i,{id:O[0],amount:-O[1],lineDisplay:!0})},O[0])})]})],0)})})},i=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=N.id,x=N.amount,T=N.lineDisplay,M=N.onClick,O=k(N,I),D=L.materials[w]||0,E=x||D;if(!(E<=0&&!(w==="metal"||w==="glass"))){var P=x&&x>D;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,f.Stack,Object.assign({align:"center",className:(0,a.classes)(["Exofab__material",T&&"Exofab__material--line"])},O,{children:T?(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{className:(0,a.classes)(["materials32x32",w])}),(0,e.createComponentVNode)(2,f.Stack.Item,{className:"Exofab__material--amount",color:P&&"bad",ml:0,mr:1,children:E.toLocaleString("en-US")})],4):(0,e.createFragment)([(0,e.createComponentVNode)(2,f.Stack.Item,{basis:"content",children:(0,e.createComponentVNode)(2,f.Button,{width:"85%",color:"transparent",onClick:M,children:(0,e.createComponentVNode)(2,f.Box,{mt:1,className:(0,a.classes)(["materials32x32",w])})})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:"1",children:[(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__material--name",children:w}),(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__material--amount",children:[E.toLocaleString("en-US")," cm\xB3 (",Math.round(E/g*10)/10," ","sheets)"]})]})],4)})))}},h=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=N.design;return(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__design",children:[(0,e.createComponentVNode)(2,f.Button,{disabled:w.notEnough||L.building,icon:"cog",content:w.name,onClick:function(){function x(){return B("build",{id:w.id})}return x}()}),(0,e.createComponentVNode)(2,f.Button,{icon:"plus-circle",onClick:function(){function x(){return B("queue",{id:w.id})}return x}()}),(0,e.createComponentVNode)(2,f.Box,{className:"Exofab__design--cost",children:Object.entries(w.cost).map(function(x){return(0,e.createComponentVNode)(2,f.Box,{children:(0,e.createComponentVNode)(2,i,{id:x[0],amount:x[1],lineDisplay:!0})},x[0])})}),(0,e.createComponentVNode)(2,f.Stack,{className:"Exofab__design--time",children:(0,e.createComponentVNode)(2,f.Stack.Item,{children:[(0,e.createComponentVNode)(2,f.Icon,{name:"clock"}),w.time>0?(0,e.createFragment)([w.time/10,(0,e.createTextVNode)(" seconds")],0):"Instant"]})})]})},C=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.controllers;return(0,e.createComponentVNode)(2,S.Window,{children:(0,e.createComponentVNode)(2,S.Window.Content,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,f.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,f.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:"Link"})]}),w.map(function(x){return(0,e.createComponentVNode)(2,f.Table.Row,{children:[(0,e.createComponentVNode)(2,f.Table.Cell,{children:x.addr}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:x.net_id}),(0,e.createComponentVNode)(2,f.Table.Cell,{children:(0,e.createComponentVNode)(2,f.Button,{content:"Link",icon:"link",onClick:function(){function T(){return B("linktonetworkcontroller",{target_controller:x.addr})}return T}()})})]},x.addr)})]})})})})},v=function(N,V){var y=(0,o.useBackend)(V),B=y.act,L=y.data,w=L.tech_levels,x=(0,o.useLocalState)(V,"levelsModal",!1),T=x[0],M=x[1];return T?(0,e.createComponentVNode)(2,f.Modal,{maxWidth:"75%",width:window.innerWidth+"px",maxHeight:window.innerHeight*.75+"px",mx:"auto",children:(0,e.createComponentVNode)(2,f.Section,{title:"Current tech levels",buttons:(0,e.createComponentVNode)(2,f.Button,{content:"Close",onClick:function(){function O(){M(!1)}return O}()}),children:(0,e.createComponentVNode)(2,f.LabeledList,{children:w.map(function(O){var D=O.name,E=O.level;return(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:D,children:E},D)})})})}):null}},59128:function(A,r,n){"use strict";r.__esModule=!0,r.ExperimentConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=new Map([[0,{text:"Conscious",color:"good"}],[1,{text:"Unconscious",color:"average"}],[2,{text:"Deceased",color:"bad"}]]),b=new Map([[0,{label:"Probe",icon:"thermometer"}],[1,{label:"Dissect",icon:"brain"}],[2,{label:"Analyze",icon:"search"}]]),S=r.ExperimentConsole=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.open,u=m.feedback,s=m.occupant,i=m.occupant_name,h=m.occupant_status,C=function(){function p(){if(!s)return(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No specimen detected."});var N=function(){function y(){return f.get(h)}return y}(),V=N();return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:i}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:V.color,children:V.text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Experiments",children:[0,1,2].map(function(y){return(0,e.createComponentVNode)(2,t.Button,{icon:b.get(y).icon,content:b.get(y).label,onClick:function(){function B(){return c("experiment",{experiment_type:y})}return B}()},y)})})]})}return p}(),v=C();return(0,e.createComponentVNode)(2,o.Window,{theme:"abductor",width:350,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:u})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Scanner",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){function p(){return c("door")}return p}()}),children:v})]})})}return I}()},97086:function(A,r,n){"use strict";r.__esModule=!0,r.ExternalAirlockController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=0,b=1013,S=function(g){var d="good",c=80,m=95,l=110,u=120;return gl?d="average":g>u&&(d="bad"),d},I=r.ExternalAirlockController=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.chamber_pressure,s=l.exterior_status,i=l.interior_status,h=l.processing;return(0,e.createComponentVNode)(2,o.Window,{width:330,height:205,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Information",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Chamber Pressure",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:S(u),value:u,minValue:f,maxValue:b,children:[u," kPa"]})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Actions",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Abort",icon:"ban",color:"red",disabled:!h,onClick:function(){function C(){return m("abort")}return C}()}),children:[(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Cycle to Exterior",icon:"arrow-circle-left",disabled:h,onClick:function(){function C(){return m("cycle_ext")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Cycle to Interior",icon:"arrow-circle-right",disabled:h,onClick:function(){function C(){return m("cycle_int")}return C}()})]}),(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{width:"49%",content:"Force Exterior Door",icon:"exclamation-triangle",color:i==="open"?"red":h?"yellow":null,onClick:function(){function C(){return m("force_ext")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{width:"50%",content:"Force Interior Door",icon:"exclamation-triangle",color:i==="open"?"red":h?"yellow":null,onClick:function(){function C(){return m("force_int")}return C}()})]})]})]})})}return k}()},96142:function(A,r,n){"use strict";r.__esModule=!0,r.FaxMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.FaxMachine=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data;return(0,e.createComponentVNode)(2,o.Window,{width:540,height:295,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Card",children:(0,e.createComponentVNode)(2,t.Button,{icon:d.scan_name?"eject":"id-card",selected:d.scan_name,content:d.scan_name?d.scan_name:"-----",tooltip:d.scan_name?"Eject ID":"Insert ID",onClick:function(){function c(){return g("scan")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Authorize",children:(0,e.createComponentVNode)(2,t.Button,{icon:d.authenticated?"sign-out-alt":"id-card",selected:d.authenticated,disabled:d.nologin,content:d.realauth?"Log Out":"Log In",onClick:function(){function c(){return g("auth")}return c}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Fax Menu",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network",children:d.network}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Document",children:[(0,e.createComponentVNode)(2,t.Button,{icon:d.paper?"eject":"paperclip",disabled:!d.authenticated&&!d.paper,content:d.paper?d.paper:"-----",onClick:function(){function c(){return g("paper")}return c}()}),!!d.paper&&(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:"Rename",onClick:function(){function c(){return g("rename")}return c}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sending To",children:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:d.destination?d.destination:"-----",disabled:!d.authenticated,onClick:function(){function c(){return g("dept")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Action",children:(0,e.createComponentVNode)(2,t.Button,{icon:"envelope",content:d.sendError?d.sendError:"Send",disabled:!d.paper||!d.destination||!d.authenticated||d.sendError,onClick:function(){function c(){return g("send")}return c}()})})]})})]})})}return b}()},74123:function(A,r,n){"use strict";r.__esModule=!0,r.FilingCabinet=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.FilingCabinet=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=k.config,m=d.contents,l=c.title;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:300,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Contents",children:[!m&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"folder-open",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"The ",l," is empty."]})}),!!m&&m.slice().map(function(u){return(0,e.createComponentVNode)(2,t.Stack,{mt:.5,className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"80%",children:u.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Retrieve",onClick:function(){function s(){return g("retrieve",{index:u.index})}return s}()})})]},u)})]})})})})}return b}()},83767:function(A,r,n){"use strict";r.__esModule=!0,r.FloorPainter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=k.icon_state,u=k.direction,s=k.isSelected,i=k.onSelect;return(0,e.createComponentVNode)(2,t.DmIcon,{icon:m.icon,icon_state:l,direction:u,onClick:i,style:{"border-style":s&&"solid"||"none","border-width":"2px","border-color":"orange",padding:s&&"0px"||"2px"}})},b={NORTH:1,SOUTH:2,EAST:4,WEST:8},S=r.FloorPainter=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.availableStyles,u=m.selectedStyle,s=m.selectedDir;return(0,e.createComponentVNode)(2,o.Window,{width:405,height:475,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Decal setup",children:[(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-left",onClick:function(){function i(){return c("cycle_style",{offset:-1})}return i}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Dropdown,{options:l,selected:u,width:"150px",nochevron:!0,onSelected:function(){function i(h){return c("select_style",{style:h})}return i}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",onClick:function(){function i(){return c("cycle_style",{offset:1})}return i}()})})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"5px",mb:"5px",children:(0,e.createComponentVNode)(2,t.Flex,{overflowY:"auto",maxHeight:"239px",wrap:"wrap",children:l.map(function(i){return(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,f,{icon_state:i,isSelected:u===i,onSelect:function(){function h(){return c("select_style",{style:i})}return h}()})},i)})})}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Direction",children:(0,e.createComponentVNode)(2,t.Table,{style:{display:"inline"},children:[b.NORTH,null,b.SOUTH].map(function(i){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[i+b.WEST,i,i+b.EAST].map(function(h){return(0,e.createComponentVNode)(2,t.Table.Cell,{style:{"vertical-align":"middle","text-align":"center"},children:h===null?(0,e.createComponentVNode)(2,t.Icon,{name:"arrows-alt",size:3}):(0,e.createComponentVNode)(2,f,{icon_state:u,direction:h,isSelected:h===s,onSelect:function(){function C(){return c("select_direction",{direction:h})}return C}()})},h)})},i)})})})})]})})})}return I}()},53424:function(A,r,n){"use strict";r.__esModule=!0,r.GPS=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=function(l){return l?"("+l.join(", ")+")":"ERROR"},S=function(l,u){if(!(!l||!u)){if(l[2]!==u[2])return null;var s=Math.atan2(u[1]-l[1],u[0]-l[0]),i=Math.sqrt(Math.pow(u[1]-l[1],2)+Math.pow(u[0]-l[0],2));return{angle:(0,a.rad2deg)(s),distance:i}}},I=r.GPS=function(){function m(l,u){var s=(0,t.useBackend)(u),i=s.data,h=i.emped,C=i.active,v=i.area,p=i.position,N=i.saved;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:h?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,k,{emp:!0})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,g)}),C?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,d,{area:v,position:p})}),N&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,d,{title:"Saved Position",position:N})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,c,{height:"100%"})})],0):(0,e.createComponentVNode)(2,k)],0)})})})}return m}(),k=function(l,u){var s=l.emp;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Box,{width:"100%",height:"100%",color:"label",textAlign:"center",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon,{name:s?"ban":"power-off",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),s?"ERROR: Device temporarily lost signal.":"Device is disabled."]})})})})},g=function(l,u){var s=(0,t.useBackend)(u),i=s.act,h=s.data,C=h.active,v=h.tag,p=h.same_z,N=(0,t.useLocalState)(u,"newTag",v),V=N[0],y=N[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Settings",buttons:(0,e.createComponentVNode)(2,o.Button,{selected:C,icon:C?"toggle-on":"toggle-off",content:C?"On":"Off",onClick:function(){function B(){return i("toggle")}return B}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Tag",children:[(0,e.createComponentVNode)(2,o.Input,{width:"5rem",value:v,onEnter:function(){function B(){return i("tag",{newtag:V})}return B}(),onInput:function(){function B(L,w){return y(w)}return B}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:v===V,width:"20px",mb:"0",ml:"0.25rem",onClick:function(){function B(){return i("tag",{newtag:V})}return B}(),children:(0,e.createComponentVNode)(2,o.Icon,{name:"pen"})})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Range",children:(0,e.createComponentVNode)(2,o.Button,{selected:!p,icon:p?"compress":"expand",content:p?"Local Sector":"Global",onClick:function(){function B(){return i("same_z")}return B}()})})]})})},d=function(l,u){var s=l.title,i=l.area,h=l.position;return(0,e.createComponentVNode)(2,o.Section,{title:s||"Position",children:(0,e.createComponentVNode)(2,o.Box,{fontSize:"1.5rem",children:[i&&(0,e.createFragment)([i,(0,e.createVNode)(1,"br")],0),b(h)]})})},c=function(l,u){var s=(0,t.useBackend)(u),i=s.data,h=i.position,C=i.signals;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,title:"Signals"},l,{children:(0,e.createComponentVNode)(2,o.Table,{children:C.map(function(v){return Object.assign({},v,S(h,v.position))}).map(function(v,p){return(0,e.createComponentVNode)(2,o.Table.Row,{backgroundColor:p%2===0&&"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,o.Table.Cell,{width:"30%",verticalAlign:"middle",color:"label",p:"0.25rem",bold:!0,children:v.tag}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",color:"grey",children:v.area}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",collapsing:!0,children:v.distance!==void 0&&(0,e.createComponentVNode)(2,o.Box,{opacity:Math.max(1-Math.min(v.distance,100)/100,.5),children:[(0,e.createComponentVNode)(2,o.Icon,{name:v.distance>0?"arrow-right":"circle",rotation:-v.angle}),"\xA0",Math.floor(v.distance)+"m"]})}),(0,e.createComponentVNode)(2,o.Table.Cell,{verticalAlign:"middle",pr:"0.25rem",collapsing:!0,children:b(v.position)})]},p)})})})))}},89124:function(A,r,n){"use strict";r.__esModule=!0,r.GeneModder=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(3939),f=n(98595),b=r.GeneModder=function(){function u(s,i){var h=(0,a.useBackend)(i),C=h.data,v=C.has_seed;return(0,e.createComponentVNode)(2,f.Window,{width:950,height:650,children:[(0,e.createVNode)(1,"div","GeneModder__left",(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,l,{scrollable:!0})}),2),(0,e.createVNode)(1,"div","GeneModder__right",(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,o.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),v===0?(0,e.createComponentVNode)(2,I):(0,e.createComponentVNode)(2,S)]})}),2)]})}return u}(),S=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.disk;return(0,e.createComponentVNode)(2,t.Section,{title:"Genes",fill:!0,scrollable:!0,children:[(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,d),(0,e.createComponentVNode)(2,c)]})},I=function(s,i){return(0,e.createComponentVNode)(2,t.Section,{fill:!0,height:"85%",children:(0,e.createComponentVNode)(2,t.Stack,{height:"100%",children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:"1",textAlign:"center",align:"center",color:"green",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"leaf",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),"The plant DNA manipulator is missing a seed."]})})})},k=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.has_seed,N=v.seed,V=v.has_disk,y=v.disk,B,L;return p?B=(0,e.createComponentVNode)(2,t.Stack.Item,{mb:"-6px",mt:"-4px",children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+N.image,style:{"vertical-align":"middle",width:"32px",margin:"-1px","margin-left":"-11px"}}),(0,e.createComponentVNode)(2,t.Button,{content:N.name,onClick:function(){function w(){return C("eject_seed")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{ml:"3px",icon:"pen",tooltip:"Name Variant",onClick:function(){function w(){return C("variant_name")}return w}()})]}):B=(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:3.3,content:"None",onClick:function(){function w(){return C("eject_seed")}return w}()})}),V?L=y.name:L="None",(0,e.createComponentVNode)(2,t.Section,{title:"Storage",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Plant Sample",children:B}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Data Disk",children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:3.3,content:L,tooltip:"Select Empty Disk",onClick:function(){function w(){return C("select_empty_disk")}return w}()})})})]})})},g=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.disk,N=v.core_genes;return(0,e.createComponentVNode)(2,t.Collapsible,{title:"Core Genes",open:!0,children:[N.map(function(V){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",ml:"2px",children:V.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract",disabled:!(p!=null&&p.can_extract),icon:"save",onClick:function(){function y(){return C("extract",{id:V.id})}return y}()})})]},V)})," ",(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract All",disabled:!(p!=null&&p.can_extract),icon:"save",onClick:function(){function V(){return C("bulk_extract_core")}return V}()})})})]},"Core Genes")},d=function(s,i){var h=(0,a.useBackend)(i),C=h.data,v=C.reagent_genes,p=C.has_reagent;return(0,e.createComponentVNode)(2,m,{title:"Reagent Genes",gene_set:v,do_we_show:p})},c=function(s,i){var h=(0,a.useBackend)(i),C=h.data,v=C.trait_genes,p=C.has_trait;return(0,e.createComponentVNode)(2,m,{title:"Trait Genes",gene_set:v,do_we_show:p})},m=function(s,i){var h=s.title,C=s.gene_set,v=s.do_we_show,p=(0,a.useBackend)(i),N=p.act,V=p.data,y=V.disk;return(0,e.createComponentVNode)(2,t.Collapsible,{title:h,open:!0,children:v?C.map(function(B){return(0,e.createComponentVNode)(2,t.Stack,{py:"2px",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",ml:"2px",children:B.name}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Extract",disabled:!(y!=null&&y.can_extract),icon:"save",onClick:function(){function L(){return N("extract",{id:B.id})}return L}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove",icon:"times",onClick:function(){function L(){return N("remove",{id:B.id})}return L}()})})]},B)}):(0,e.createComponentVNode)(2,t.Stack.Item,{children:"No Genes Detected"})},h)},l=function(s,i){var h=s.title,C=s.gene_set,v=s.do_we_show,p=(0,a.useBackend)(i),N=p.act,V=p.data,y=V.has_seed,B=V.empty_disks,L=V.stat_disks,w=V.trait_disks,x=V.reagent_disks;return(0,e.createComponentVNode)(2,t.Section,{title:"Disks",children:[(0,e.createVNode)(1,"br"),"Empty Disks: ",B,(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{width:12,icon:"arrow-down",tooltip:"Eject an Empty disk",content:"Eject Empty Disk",onClick:function(){function T(){return N("eject_empty_disk")}return T}()}),(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Stats",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[L.slice().sort(function(T,M){return T.display_name.localeCompare(M.display_name)}).map(function(T){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:T.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[T.stat==="All"?(0,e.createComponentVNode)(2,t.Button,{content:"Replace All",tooltip:"Write disk stats to seed",disabled:!(T!=null&&T.ready)||!y,icon:"arrow-circle-down",onClick:function(){function M(){return N("bulk_replace_core",{index:T.index})}return M}()}):(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",tooltip:"Write disk stat to seed",disabled:!T||!y,content:"Replace",onClick:function(){function M(){return N("replace",{index:T.index,stat:T.stat})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("select",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("eject_disk",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:T.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function M(){return N("set_read_only",{index:T.index,read_only:T.read_only})}return M}()})]})]},T)}),(0,e.createComponentVNode)(2,t.Button)]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Traits",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[w.slice().sort(function(T,M){return T.display_name.localeCompare(M.display_name)}).map(function(T){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:T.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",disabled:!T||!T.can_insert,tooltip:"Add disk trait to seed",content:"Insert",onClick:function(){function M(){return N("insert",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("select",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("eject_disk",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:T.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function M(){return N("set_read_only",{index:T.index,read_only:T.read_only})}return M}()})]})]},T)}),(0,e.createComponentVNode)(2,t.Button)]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Reagents",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,scrollable:!0,children:[x.slice().sort(function(T,M){return T.display_name.localeCompare(M.display_name)}).map(function(T){return(0,e.createComponentVNode)(2,t.Stack,{mr:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"49%",children:T.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:25,children:[(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-circle-down",disabled:!T||!T.can_insert,tooltip:"Add disk reagent to seed",content:"Insert",onClick:function(){function M(){return N("insert",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:6,icon:"arrow-right",content:"Select",tooltip:"Choose as target for extracted genes",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("select",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:5,icon:"arrow-down",content:"Eject",tooltip:"Eject Disk",tooltipPosition:"bottom-start",onClick:function(){function M(){return N("eject_disk",{index:T.index})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{width:2,icon:T.read_only?"lock":"lock-open",content:"",tool_tip:"Set/unset Read Only",onClick:function(){function M(){return N("set_read_only",{index:T.index,read_only:T.read_only})}return M}()})]})]},T)}),(0,e.createComponentVNode)(2,t.Button)]})})]})]})}},73053:function(A,r,n){"use strict";r.__esModule=!0,r.GenericCrewManifest=void 0;var e=n(89005),a=n(36036),t=n(98595),o=n(41874),f=r.GenericCrewManifest=function(){function b(S,I){return(0,e.createComponentVNode)(2,t.Window,{theme:"nologo",width:588,height:510,children:(0,e.createComponentVNode)(2,t.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,a.Section,{noTopPadding:!0,children:(0,e.createComponentVNode)(2,o.CrewManifest)})})})}return b}()},42914:function(A,r,n){"use strict";r.__esModule=!0,r.GhostHudPanel=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GhostHudPanel=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.data,c=d.security,m=d.medical,l=d.diagnostic,u=d.pressure,s=d.radioactivity,i=d.ahud;return(0,e.createComponentVNode)(2,o.Window,{width:250,height:217,theme:"nologo",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,b,{label:"Medical",type:"medical",is_active:m}),(0,e.createComponentVNode)(2,b,{label:"Security",type:"security",is_active:c}),(0,e.createComponentVNode)(2,b,{label:"Diagnostic",type:"diagnostic",is_active:l}),(0,e.createComponentVNode)(2,b,{label:"Pressure",type:"pressure",is_active:u}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,b,{label:"Radioactivity",type:"radioactivity",is_active:s,act_on:"rads_on",act_off:"rads_off"}),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,b,{label:"Antag HUD",is_active:i,act_on:"ahud_on",act_off:"ahud_off"})]})})})}return S}(),b=function(I,k){var g=(0,a.useBackend)(k),d=g.act,c=I.label,m=I.type,l=m===void 0?null:m,u=I.is_active,s=I.act_on,i=s===void 0?"hud_on":s,h=I.act_off,C=h===void 0?"hud_off":h;return(0,e.createComponentVNode)(2,t.Flex,{pt:.3,color:"label",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{pl:.5,align:"center",width:"80%",children:c}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Button,{mr:.6,content:u?"On":"Off",icon:u?"toggle-on":"toggle-off",selected:u,onClick:function(){function v(){return d(u?C:i,{hud_type:l})}return v}()})})]})}},25825:function(A,r,n){"use strict";r.__esModule=!0,r.GlandDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GlandDispenser=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.glands,m=c===void 0?[]:c;return(0,e.createComponentVNode)(2,o.Window,{width:300,height:338,theme:"abductor",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:m.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{width:"60px",height:"60px",m:.75,textAlign:"center",fontSize:"17px",lineHeight:"55px",icon:"eject",backgroundColor:l.color,content:l.amount||"0",disabled:!l.amount,onClick:function(){function u(){return g("dispense",{gland_id:l.id})}return u}()},l.id)})})})})}return b}()},10270:function(A,r,n){"use strict";r.__esModule=!0,r.GravityGen=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.GravityGen=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.charging_state,m=d.charge_count,l=d.breaker,u=d.ext_power,s=function(){function h(C){return C>0?(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"average",children:["[ ",C===1?"Charging":"Discharging"," ]"]}):(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:u?"good":"bad",children:["[ ",u?"Powered":"Unpowered"," ]"]})}return h}(),i=function(){function h(C){if(C>0)return(0,e.createComponentVNode)(2,t.NoticeBox,{danger:!0,p:1.5,children:[(0,e.createVNode)(1,"b",null,"WARNING:",16)," Radiation Detected!"]})}return h}();return(0,e.createComponentVNode)(2,o.Window,{width:350,height:170,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[i(c),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Generator Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:l?"power-off":"times",content:l?"Online":"Offline",color:l?"green":"red",px:1.5,onClick:function(){function h(){return g("breaker")}return h}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Status",color:u?"good":"bad",children:s(c)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gravity Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:m/100,ranges:{good:[.9,1/0],average:[.5,.9],bad:[-1/0,.5]}})})]})})]})})})}return b}()},48657:function(A,r,n){"use strict";r.__esModule=!0,r.GuestPass=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49148),b=r.GuestPass=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:690,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"id-card",selected:!c.showlogs,onClick:function(){function m(){return d("mode",{mode:0})}return m}(),children:"Issue Pass"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"scroll",selected:c.showlogs,onClick:function(){function m(){return d("mode",{mode:1})}return m}(),children:["Records (",c.issue_log.length,")"]})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Card",children:(0,e.createComponentVNode)(2,t.Button,{icon:c.scan_name?"eject":"id-card",selected:c.scan_name,content:c.scan_name?c.scan_name:"-----",tooltip:c.scan_name?"Eject ID":"Insert ID",onClick:function(){function m(){return d("scan")}return m}()})})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:!c.showlogs&&(0,e.createComponentVNode)(2,t.Section,{title:"Issue Guest Pass",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Issue To",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.giv_name?c.giv_name:"-----",disabled:!c.scan_name,onClick:function(){function m(){return d("giv_name")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reason",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.reason?c.reason:"-----",disabled:!c.scan_name,onClick:function(){function m(){return d("reason")}return m}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Duration",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pencil-alt",content:c.duration?c.duration:"-----",disabled:!c.scan_name,onClick:function(){function m(){return d("duration")}return m}()})})]})})}),!c.showlogs&&(c.scan_name?(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.AccessList,{sectionButtons:(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",content:c.printmsg,disabled:!c.canprint,onClick:function(){function m(){return d("issue")}return m}()}),grantableList:c.grantableList,accesses:c.regions,selectedList:c.selectedAccess,accessMod:function(){function m(l){return d("access",{access:l})}return m}(),grantAll:function(){function m(){return d("grant_all")}return m}(),denyAll:function(){function m(){return d("clear_all")}return m}(),grantDep:function(){function m(l){return d("grant_region",{region:l})}return m}(),denyDep:function(){function m(l){return d("deny_region",{region:l})}return m}()})}):(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,fontSize:1.5,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"id-card",size:5,color:"gray",mb:5}),(0,e.createVNode)(1,"br"),"Please, insert ID Card"]})})})})),!!c.showlogs&&(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,m:0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Issuance Log",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print",disabled:!c.scan_name,onClick:function(){function m(){return d("print")}return m}()}),children:!!c.issue_log.length&&(0,e.createComponentVNode)(2,t.LabeledList,{children:c.issue_log.map(function(m,l){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:m},l)})})||(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,fontSize:1.5,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No logs"]})})})})]})})})}return S}()},67834:function(A,r,n){"use strict";r.__esModule=!0,r.HandheldChemDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=[1,5,10,20,30,50],b=null,S=r.HandheldChemDispenser=function(){function g(d,c){return(0,e.createComponentVNode)(2,o.Window,{width:390,height:430,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k)]})})})}return g}(),I=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.amount,i=u.energy,h=u.maxEnergy,C=u.mode;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:i,minValue:0,maxValue:h,ranges:{good:[h*.5,1/0],average:[h*.25,h*.5],bad:[-1/0,h*.25]},children:[i," / ",h," Units"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Amount",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{children:f.map(function(v,p){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"15%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"cog",selected:s===v,content:v,onClick:function(){function N(){return l("amount",{amount:v})}return N}()})},p)})})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mode",verticalAlign:"middle",children:(0,e.createComponentVNode)(2,t.Stack,{justify:"space-between",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:C==="dispense",content:"Dispense",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"dispense"})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:C==="remove",content:"Remove",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"remove"})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",selected:C==="isolate",content:"Isolate",m:"0",width:"32%",onClick:function(){function v(){return l("mode",{mode:"isolate"})}return v}()})]})})]})})})},k=function(d,c){for(var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.chemicals,i=s===void 0?[]:s,h=u.current_reagent,C=[],v=0;v<(i.length+1)%3;v++)C.push(!0);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,height:"18%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:u.glass?"Drink Selector":"Chemical Selector",children:[i.map(function(p,N){return(0,e.createComponentVNode)(2,t.Button,{width:"32%",icon:"arrow-circle-down",overflow:"hidden",textOverflow:"ellipsis",selected:h===p.id,content:p.title,style:{"margin-left":"2px"},onClick:function(){function V(){return l("dispense",{reagent:p.id})}return V}()},N)}),C.map(function(p,N){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:"1",basis:"25%"},N)})]})})}},46098:function(A,r,n){"use strict";r.__esModule=!0,r.HealthSensor=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.HealthSensor=function(){function I(k,g){var d=(0,t.useBackend)(g),c=d.act,m=d.data,l=m.on,u=m.user_health,s=m.minHealth,i=m.maxHealth,h=m.alarm_health;return(0,e.createComponentVNode)(2,f.Window,{width:300,height:125,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Scanning",children:(0,e.createComponentVNode)(2,o.Button,{icon:"power-off",content:l?"On":"Off",color:l?null:"red",selected:l,onClick:function(){function C(){return c("scan_toggle")}return C}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health activation",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:2,stepPixelSize:6,minValue:s,maxValue:i,value:h,format:function(){function C(v){return(0,a.toFixed)(v,1)}return C}(),width:"80px",onDrag:function(){function C(v,p){return c("alarm_health",{alarm_health:p})}return C}()})}),u!==null&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"User health",children:(0,e.createComponentVNode)(2,o.Box,{color:S(u),bold:u>=100,children:(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:u})})})]})})})})}return I}(),S=function(k){return k>50?"green":k>0?"orange":"red"}},36771:function(A,r,n){"use strict";r.__esModule=!0,r.Holodeck=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Holodeck=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=(0,a.useLocalState)(k,"currentDeck",""),l=m[0],u=m[1],s=(0,a.useLocalState)(k,"showReload",!1),i=s[0],h=s[1],C=c.decks,v=c.ai_override,p=c.emagged,N=function(){function V(y){d("select_deck",{deck:y}),u(y),h(!0),setTimeout(function(){h(!1)},3e3)}return V}();return(0,e.createComponentVNode)(2,o.Window,{width:400,height:320,children:[i&&(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Holodeck Control System",children:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createVNode)(1,"b",null,"Currently Loaded Program:",16)," ",l]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Available Programs",children:[C.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{width:15.5,color:"transparent",content:V,selected:V===l,onClick:function(){function y(){return N(V)}return y}()},V)}),(0,e.createVNode)(1,"hr",null,null,1,{color:"gray"}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[!!v&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Override Protocols",children:(0,e.createComponentVNode)(2,t.Button,{content:p?"Turn On":"Turn Off",color:p?"good":"bad",onClick:function(){function V(){return d("ai_override")}return V}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety Protocols",children:(0,e.createComponentVNode)(2,t.Box,{color:p?"bad":"good",children:[p?"Off":"On",!!p&&(0,e.createComponentVNode)(2,t.Button,{ml:9.5,width:15.5,color:"red",content:"Wildlife Simulation",onClick:function(){function V(){return d("wildlifecarp")}return V}()})]})})]})]})})]})})]})}return S}(),b=function(I,k){return(0,e.createComponentVNode)(2,t.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"spinner",size:"5",spin:!0}),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{color:"white",children:(0,e.createVNode)(1,"h1",null,"\xA0Recalibrating projection apparatus.\xA0",16)}),(0,e.createComponentVNode)(2,t.Box,{color:"label",children:(0,e.createVNode)(1,"h3",null,"Please, wait for 3 seconds.",16)})]})}},25471:function(A,r,n){"use strict";r.__esModule=!0,r.Instrument=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.Instrument=function(){function d(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:505,children:[(0,e.createComponentVNode)(2,S),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,g)]})})]})}return d}(),S=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,i=s.help;if(i)return(0,e.createComponentVNode)(2,o.Modal,{maxWidth:"75%",height:window.innerHeight*.75+"px",mx:"auto",py:"0",px:"0.5rem",children:(0,e.createComponentVNode)(2,o.Section,{height:"100%",title:"Help",level:"2",overflow:"auto",children:(0,e.createComponentVNode)(2,o.Box,{px:"0.5rem",mt:"-0.5rem",children:[(0,e.createVNode)(1,"h1",null,"Making a Song",16),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Lines are a series of chords, separated by commas\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(,)"}),(0,e.createTextVNode)(", each with notes separated by hyphens\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(-)"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("as defined above.")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Notes are played by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"names of the note"}),(0,e.createTextVNode)(", and optionally, the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(", and/or the"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave number"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("By default, every note is\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"natural"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("and in\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave 3"}),(0,e.createTextVNode)(". Defining a different state for either is remembered for each"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"note"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Example:"}),(0,e.createTextVNode)("\xA0"),(0,e.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,e.createTextVNode)(" will play a\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"C"}),(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"major"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("scale.")],0),(0,e.createVNode)(1,"li",null,[(0,e.createTextVNode)("After a note has an\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("or\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("placed, it will be remembered:\xA0"),(0,e.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,e.createTextVNode)(" is "),(0,e.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],0)],4)],0),(0,e.createVNode)(1,"p",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Chords"}),(0,e.createTextVNode)("\xA0can be played simply by seperating each note with a hyphen: "),(0,e.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("A"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"pause"}),(0,e.createTextVNode)("\xA0may be denoted by an empty chord: "),(0,e.createVNode)(1,"i",null,"C,E,,C,G",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,e.createTextVNode)(",\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"eg:"}),(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,e.createTextVNode)(".")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Combined, an example line is: "),(0,e.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,e.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Lines are a series of chords, separated by commas\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(,)"}),(0,e.createTextVNode)(", each with notes separated by hyphens\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"(-)"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Every note in a chord will play together, with the chord timed by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("as defined above.")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Notes are played by the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"names of the note"}),(0,e.createTextVNode)(", and optionally, the\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(", and/or the"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave number"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("By default, every note is\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"natural"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("and in\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave 3"}),(0,e.createTextVNode)(". Defining a different state for either is remembered for each"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"note"}),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Example:"}),(0,e.createTextVNode)("\xA0"),(0,e.createVNode)(1,"i",null,"C,D,E,F,G,A,B",16),(0,e.createTextVNode)(" will play a\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"good",children:"C"}),(0,e.createTextVNode)("\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"major"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("scale.")],0),(0,e.createVNode)(1,"li",null,[(0,e.createTextVNode)("After a note has an\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"average",children:"accidental"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("or\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"bad",children:"octave"}),(0,e.createTextVNode)(" "),(0,e.createTextVNode)("placed, it will be remembered:\xA0"),(0,e.createVNode)(1,"i",null,"C,C4,C#,C3",16),(0,e.createTextVNode)(" is "),(0,e.createVNode)(1,"i",null,"C3,C4,C4#,C3#",16)],0)],4)],0),(0,e.createVNode)(1,"p",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"Chords"}),(0,e.createTextVNode)("\xA0can be played simply by seperating each note with a hyphen: "),(0,e.createVNode)(1,"i",null,"A-C#,Cn-E,E-G#,Gn-B",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("A"),(0,e.createTextVNode)(" "),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"pause"}),(0,e.createTextVNode)("\xA0may be denoted by an empty chord: "),(0,e.createVNode)(1,"i",null,"C,E,,C,G",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("To make a chord be a different time, end it with /x, where the chord length will be length defined by\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"tempo / x"}),(0,e.createTextVNode)(",\xA0"),(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"highlight",children:"eg:"}),(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"i",null,"C,G/2,E/4",16),(0,e.createTextVNode)(".")],0),(0,e.createVNode)(1,"p",null,[(0,e.createTextVNode)("Combined, an example line is: "),(0,e.createVNode)(1,"i",null,"E-E4/4,F#/2,G#/8,B/8,E3-E4/4",16),(0,e.createTextVNode)("."),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,"Lines may be up to 300 characters.",16),(0,e.createVNode)(1,"li",null,"A song may only contain up to 1,000 lines.",16)],4)],4),(0,e.createVNode)(1,"h1",null,"Instrument Advanced Settings",16),(0,e.createVNode)(1,"ul",null,[(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Type:"}),(0,e.createTextVNode)("\xA0Whether the instrument is legacy or synthesized."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Legacy instruments have a collection of sounds that are selectively used depending on the note to play."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Synthesized instruments use a base sound and change its pitch to match the note to play.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Current:"}),(0,e.createTextVNode)("\xA0Which instrument sample to play. Some instruments can be tuned to play different samples. Experiment!")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Note Shift/Note Transpose:"}),(0,e.createTextVNode)("\xA0The pitch to apply to all notes of the song.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Sustain Mode:"}),(0,e.createTextVNode)("\xA0How a played note fades out."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Linear sustain means a note will fade out at a constant rate."),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Exponential sustain means a note will fade out at an exponential rate, sounding smoother.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Volume Dropoff Threshold:"}),(0,e.createTextVNode)("\xA0The volume threshold at which a note is fully stopped.")],4),(0,e.createVNode)(1,"li",null,[(0,e.createComponentVNode)(2,o.Box,{as:"span",color:"label",children:"Sustain indefinitely last held note:"}),(0,e.createTextVNode)("\xA0Whether the last note should be sustained indefinitely.")],4)],4),(0,e.createComponentVNode)(2,o.Button,{color:"grey",content:"Close",onClick:function(){function h(){return u("help")}return h}()})]})})})},I=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,i=s.lines,h=s.playing,C=s.repeat,v=s.maxRepeats,p=s.tempo,N=s.minTempo,V=s.maxTempo,y=s.tickLag,B=s.volume,L=s.minVolume,w=s.maxVolume,x=s.ready;return(0,e.createComponentVNode)(2,o.Section,{title:"Instrument",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"info",content:"Help",onClick:function(){function T(){return u("help")}return T}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"file",content:"New",onClick:function(){function T(){return u("newsong")}return T}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"upload",content:"Import",onClick:function(){function T(){return u("import")}return T}()})],4),children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Playback",children:[(0,e.createComponentVNode)(2,o.Button,{selected:h,disabled:i.length===0||C<0,icon:"play",content:"Play",onClick:function(){function T(){return u("play")}return T}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!h,icon:"stop",content:"Stop",onClick:function(){function T(){return u("stop")}return T}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Repeat",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:0,maxValue:v,value:C,stepPixelSize:59,onChange:function(){function T(M,O){return u("repeat",{new:O})}return T}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Tempo",children:(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Button,{disabled:p>=V,content:"-",as:"span",mr:"0.5rem",onClick:function(){function T(){return u("tempo",{new:p+y})}return T}()}),(0,a.round)(600/p)," BPM",(0,e.createComponentVNode)(2,o.Button,{disabled:p<=N,content:"+",as:"span",ml:"0.5rem",onClick:function(){function T(){return u("tempo",{new:p-y})}return T}()})]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Volume",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:L,maxValue:w,value:B,stepPixelSize:6,onDrag:function(){function T(M,O){return u("setvolume",{new:O})}return T}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Status",children:x?(0,e.createComponentVNode)(2,o.Box,{color:"good",children:"Ready"}):(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"Instrument Definition Error!"})})]}),(0,e.createComponentVNode)(2,k)]})},k=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,i=s.allowedInstrumentNames,h=s.instrumentLoaded,C=s.instrument,v=s.canNoteShift,p=s.noteShift,N=s.noteShiftMin,V=s.noteShiftMax,y=s.sustainMode,B=s.sustainLinearDuration,L=s.sustainExponentialDropoff,w=s.legacy,x=s.sustainDropoffVolume,T=s.sustainHeldNote,M,O;return y===1?(M="Linear",O=(0,e.createComponentVNode)(2,o.Slider,{minValue:.1,maxValue:5,value:B,step:.5,stepPixelSize:85,format:function(){function D(E){return(0,a.round)(E*100)/100+" seconds"}return D}(),onChange:function(){function D(E,P){return u("setlinearfalloff",{new:P/10})}return D}()})):y===2&&(M="Exponential",O=(0,e.createComponentVNode)(2,o.Slider,{minValue:1.025,maxValue:10,value:L,step:.01,format:function(){function D(E){return(0,a.round)(E*1e3)/1e3+"% per decisecond"}return D}(),onChange:function(){function D(E,P){return u("setexpfalloff",{new:P})}return D}()})),i.sort(),(0,e.createComponentVNode)(2,o.Box,{my:-1,children:(0,e.createComponentVNode)(2,o.Collapsible,{mt:"1rem",mb:"0",title:"Advanced",children:(0,e.createComponentVNode)(2,o.Section,{mt:-1,children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Type",children:w?"Legacy":"Synthesized"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Current",children:h?(0,e.createComponentVNode)(2,o.Dropdown,{options:i,selected:C,width:"50%",onSelected:function(){function D(E){return u("switchinstrument",{name:E})}return D}()}):(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"None!"})}),!!(!w&&v)&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Note Shift/Note Transpose",children:(0,e.createComponentVNode)(2,o.Slider,{minValue:N,maxValue:V,value:p,stepPixelSize:2,format:function(){function D(E){return E+" keys / "+(0,a.round)(E/12*100)/100+" octaves"}return D}(),onChange:function(){function D(E,P){return u("setnoteshift",{new:P})}return D}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Sustain Mode",children:[(0,e.createComponentVNode)(2,o.Dropdown,{options:["Linear","Exponential"],selected:M,mb:"0.4rem",onSelected:function(){function D(E){return u("setsustainmode",{new:E})}return D}()}),O]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Volume Dropoff Threshold",children:(0,e.createComponentVNode)(2,o.Slider,{animated:!0,minValue:.01,maxValue:100,value:x,stepPixelSize:6,onChange:function(){function D(E,P){return u("setdropoffvolume",{new:P})}return D}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Sustain indefinitely last held note",children:(0,e.createComponentVNode)(2,o.Button,{selected:T,icon:T?"toggle-on":"toggle-off",content:T?"Yes":"No",onClick:function(){function D(){return u("togglesustainhold")}return D}()})})],4)]}),(0,e.createComponentVNode)(2,o.Button,{icon:"redo",content:"Reset to Default",mt:"0.5rem",onClick:function(){function D(){return u("reset")}return D}()})]})})})},g=function(c,m){var l=(0,t.useBackend)(m),u=l.act,s=l.data,i=s.playing,h=s.lines,C=s.editing;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Editor",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:!C||i,icon:"plus",content:"Add Line",onClick:function(){function v(){return u("newline",{line:h.length+1})}return v}()}),(0,e.createComponentVNode)(2,o.Button,{selected:!C,icon:C?"chevron-up":"chevron-down",onClick:function(){function v(){return u("edit")}return v}()})],4),children:!!C&&(h.length>0?(0,e.createComponentVNode)(2,o.LabeledList,{children:h.map(function(v,p){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:p+1,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:i,icon:"pen",onClick:function(){function N(){return u("modifyline",{line:p+1})}return N}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:i,icon:"trash",onClick:function(){function N(){return u("deleteline",{line:p+1})}return N}()})],4),children:v},p)})}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"Song is empty."}))})}},52736:function(A,r,n){"use strict";r.__esModule=!0,r.Jukebox=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(72253),f=n(36036),b=n(98595),S=r.Jukebox=function(){function g(d,c){var m=(0,o.useBackend)(c),l=m.act,u=m.data,s=u.active,i=u.looping,h=u.track_selected,C=u.volume,v=u.max_volume,p=u.songs,N=u.startTime,V=u.endTime,y=u.worldTime,B=u.need_coin,L=u.payment,w=u.advanced_admin,x=35,T=!L&&B&&!w,M=(0,t.flow)([(0,a.sortBy)(function(j){return j.name})])(p),O=p.find(function(j){return j.name===h}),D=M.length,E=O?M.findIndex(function(j){return j.name===O.name})+1:0,P=function(){function j(F){var W=Math.floor(F/60),z=F%60,K=String(W).padStart(2,"0")+":"+String(z).padStart(2,"0");return K}return j}(),R=(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:[s?i?"\u221E":P(Math.round((y-N)/10)):i?"\u221E":P(O.length)," ","/ ",i?"\u221E":P(O.length)]});return(0,e.createComponentVNode)(2,b.Window,{width:350,height:435,title:"\u041C\u0443\u0437\u044B\u043A\u0430\u043B\u044C\u043D\u044B\u0439 \u0430\u0432\u0442\u043E\u043C\u0430\u0442",children:[T?(0,e.createComponentVNode)(2,k):null,(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack,{children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,title:"\u041F\u0440\u043E\u0438\u0433\u0440\u044B\u0432\u0430\u0442\u0435\u043B\u044C",children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{bold:!0,maxWidth:"240px",children:O.name.length>x?(0,e.createVNode)(1,"marquee",null,O.name,0):O.name}),(0,e.createComponentVNode)(2,f.Stack,{fill:!0,mt:1.5,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,f.Button,{fluid:!0,icon:s?"pause":"play",color:"transparent",content:s?"\u0421\u0442\u043E\u043F":"\u0421\u0442\u0430\u0440\u0442",selected:s,onClick:function(){function j(){return l("toggle")}return j}()})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,basis:"0",children:(0,e.createComponentVNode)(2,f.Button.Checkbox,{fluid:!0,icon:"undo",content:"\u041F\u043E\u0432\u0442\u043E\u0440",disabled:s||B&&!w,tooltip:B&&!w?"\u0412\u044B \u043D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440 \u0437\u0430 \u043C\u043E\u043D\u0435\u0442\u043A\u0443":null,checked:i,onClick:function(){function j(){return l("loop",{looping:!i})}return j}()})})]}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.ProgressBar.Countdown,{start:N,current:i?V:y,end:V,children:R})})]})})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{children:[s?(0,e.createComponentVNode)(2,I):null,(0,e.createComponentVNode)(2,f.Stack,{fill:!0,mb:1.5,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,m:0,children:(0,e.createComponentVNode)(2,f.Button,{color:"transparent",icon:"fast-backward",onClick:function(){function j(){return l("set_volume",{volume:"min"})}return j}()})}),(0,e.createComponentVNode)(2,f.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,f.Button,{color:"transparent",icon:"undo",onClick:function(){function j(){return l("set_volume",{volume:"reset"})}return j}()})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,m:0,textAlign:"right",children:(0,e.createComponentVNode)(2,f.Button,{color:"transparent",icon:"fast-forward",onClick:function(){function j(){return l("set_volume",{volume:"max"})}return j}()})})]}),(0,e.createComponentVNode)(2,f.Stack.Item,{textAlign:"center",textColor:"label",children:[(0,e.createComponentVNode)(2,f.Knob,{size:2,color:C<=25?"green":C<=50?"":C<=75?"orange":"red",value:C,unit:"%",minValue:0,maxValue:v,step:1,stepPixelSize:5,onDrag:function(){function j(F,W){return l("set_volume",{volume:W})}return j}()}),"Volume"]})]})})]}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,title:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0442\u0440\u0435\u043A\u0438",buttons:(0,e.createComponentVNode)(2,f.Button,{bold:!0,icon:"random",color:"transparent",content:E+"/"+D,tooltip:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0439 \u0442\u0440\u0435\u043A",tooltipPosition:"top-end",onClick:function(){function j(){var F=Math.floor(Math.random()*D),W=M[F];l("select_track",{track:W.name})}return j}()}),children:M.map(function(j){return(0,e.createComponentVNode)(2,f.Stack.Item,{mb:.5,textAlign:"left",children:(0,e.createComponentVNode)(2,f.Button,{fluid:!0,selected:O.name===j.name,color:"translucent",content:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:j.name}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:P(j.length)})]}),onClick:function(){function F(){l("select_track",{track:j.name})}return F}()})},j.name)})})})]})})]})}return g}(),I=function(){return(0,e.createComponentVNode)(2,f.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"music",size:"3",color:"gray",mb:1}),(0,e.createComponentVNode)(2,f.Box,{color:"label",bold:!0,children:"\u0418\u0433\u0440\u0430\u0435\u0442 \u043C\u0443\u0437\u044B\u043A\u0430"})]})},k=function(){return(0,e.createComponentVNode)(2,f.Dimmer,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"coins",size:"6",color:"gold",mr:1}),(0,e.createComponentVNode)(2,f.Box,{color:"label",bold:!0,mt:5,fontSize:2,children:"\u0412\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u043C\u043E\u043D\u0435\u0442\u043A\u0443"})]})}},13618:function(A,r,n){"use strict";r.__esModule=!0,r.KeyComboModal=void 0;var e=n(89005),a=n(70611),t=n(72253),o=n(36036),f=n(98595),b=n(19203),S=n(51057),I=function(l){return l.key!==a.KEY.Alt&&l.key!==a.KEY.Control&&l.key!==a.KEY.Shift&&l.key!==a.KEY.Escape},k={DEL:"Delete",DOWN:"South",END:"Southwest",HOME:"Northwest",INSERT:"Insert",LEFT:"West",PAGEDOWN:"Southeast",PAGEUP:"Northeast",RIGHT:"East",SPACEBAR:"Space",UP:"North"},g=3,d=function(l){var u="";if(l.altKey&&(u+="Alt"),l.ctrlKey&&(u+="Ctrl"),l.shiftKey&&!(l.keyCode>=48&&l.keyCode<=57)&&(u+="Shift"),l.location===g&&(u+="Numpad"),I(l))if(l.shiftKey&&l.keyCode>=48&&l.keyCode<=57){var s=l.keyCode-48;u+="Shift"+s}else{var i=l.key.toUpperCase();u+=k[i]||i}return u},c=r.KeyComboModal=function(){function m(l,u){var s=(0,t.useBackend)(u),i=s.act,h=s.data,C=h.init_value,v=h.large_buttons,p=h.message,N=p===void 0?"":p,V=h.title,y=h.timeout,B=(0,t.useLocalState)(u,"input",C),L=B[0],w=B[1],x=(0,t.useLocalState)(u,"binding",!0),T=x[0],M=x[1],O=function(){function P(R){if(!T){R.key===a.KEY.Enter&&i("submit",{entry:L}),(0,a.isEscape)(R.key)&&i("cancel");return}if(R.preventDefault(),I(R)){D(d(R)),M(!1);return}else if(R.key===a.KEY.Escape){D(C),M(!1);return}}return P}(),D=function(){function P(R){R!==L&&w(R)}return P}(),E=130+(N.length>30?Math.ceil(N.length/3):0)+(N.length&&v?5:0);return(0,e.createComponentVNode)(2,f.Window,{title:V,width:240,height:E,children:[y&&(0,e.createComponentVNode)(2,S.Loader,{value:y}),(0,e.createComponentVNode)(2,f.Window.Content,{onKeyDown:function(){function P(R){O(R)}return P}(),children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Autofocus),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:N})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{disabled:T,content:T&&T!==null?"Awaiting input...":""+L,width:"100%",textAlign:"center",onClick:function(){function P(){D(C),M(!0)}return P}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,b.InputButtons,{input:L})})]})]})})]})}return m}()},35655:function(A,r,n){"use strict";r.__esModule=!0,r.KeycardAuth=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.KeycardAuth=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=(0,e.createComponentVNode)(2,t.Section,{title:"Keycard Authentication Device",children:(0,e.createComponentVNode)(2,t.Box,{children:"This device is used to trigger certain high security events. It requires the simultaneous swipe of two high-level ID cards."})});if(!d.swiping&&!d.busy)return(0,e.createComponentVNode)(2,o.Window,{width:540,height:280,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[c,(0,e.createComponentVNode)(2,t.Section,{title:"Choose Action",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Red Alert",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-triangle",disabled:!d.redAvailable,onClick:function(){function l(){return g("triggerevent",{triggerevent:"Red Alert"})}return l}(),content:"Red Alert"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ERT",children:(0,e.createComponentVNode)(2,t.Button,{icon:"broadcast-tower",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Emergency Response Team"})}return l}(),content:"Call ERT"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Maint Access",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"door-open",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Grant Emergency Maintenance Access"})}return l}(),content:"Grant"}),(0,e.createComponentVNode)(2,t.Button,{icon:"door-closed",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Revoke Emergency Maintenance Access"})}return l}(),content:"Revoke"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Emergency Station-Wide Access",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"door-open",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Activate Station-Wide Emergency Access"})}return l}(),content:"Grant"}),(0,e.createComponentVNode)(2,t.Button,{icon:"door-closed",onClick:function(){function l(){return g("triggerevent",{triggerevent:"Deactivate Station-Wide Emergency Access"})}return l}(),content:"Revoke"})]})]})})]})});var m=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Waiting for YOU to swipe your ID..."});return!d.hasSwiped&&!d.ertreason&&d.event==="Emergency Response Team"?m=(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Fill out the reason for your ERT request."}):d.hasConfirm?m=(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Request Confirmed!"}):d.isRemote?m=(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Swipe your card to CONFIRM the remote request."}):d.hasSwiped&&(m=(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Waiting for second person to confirm..."})),(0,e.createComponentVNode)(2,o.Window,{width:540,height:265,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[c,d.event==="Emergency Response Team"&&(0,e.createComponentVNode)(2,t.Section,{title:"Reason for ERT Call",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{color:d.ertreason?"":"red",icon:d.ertreason?"check":"pencil-alt",content:d.ertreason?d.ertreason:"-----",disabled:d.busy,onClick:function(){function l(){return g("ert")}return l}()})})}),(0,e.createComponentVNode)(2,t.Section,{title:d.event,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-circle-left",content:"Back",disabled:d.busy||d.hasConfirm,onClick:function(){function l(){return g("reset")}return l}()}),children:m})]})})}return b}()},62955:function(A,r,n){"use strict";r.__esModule=!0,r.KitchenMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(62411),b=r.KitchenMachine=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.data,m=d.config,l=c.ingredients,u=c.operating,s=m.title;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:320,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Operating,{operating:u,name:s}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,S)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Ingredients",children:(0,e.createComponentVNode)(2,t.Table,{className:"Ingredient__Table",children:l.map(function(i){return(0,e.createComponentVNode)(2,t.Table.Row,{tr:5,children:[(0,e.createVNode)(1,"td",null,(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:i.name}),2),(0,e.createVNode)(1,"td",null,(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:[i.amount," ",i.units]}),2)]},i.name)})})})})]})})})}return I}(),S=function(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.inactive,u=m.tooltip;return(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"power-off",disabled:l,tooltip:l?u:"",tooltipPosition:"bottom",content:"Activate",onClick:function(){function s(){return c("cook")}return s}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",disabled:l,tooltip:l?u:"",tooltipPosition:"bottom",content:"Eject Contents",onClick:function(){function s(){return c("eject")}return s}()})})]})})}},9525:function(A,r,n){"use strict";r.__esModule=!0,r.LawManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.LawManager=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.isAdmin,s=l.isSlaved,i=l.isMalf,h=l.isAIMalf,C=l.view;return(0,e.createComponentVNode)(2,o.Window,{width:800,height:i?620:365,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!(u&&s)&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:["This unit is slaved to ",s,"."]}),!!(i||h)&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Law Management",selected:C===0,onClick:function(){function v(){return m("set_view",{set_view:0})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Lawsets",selected:C===1,onClick:function(){function v(){return m("set_view",{set_view:1})}return v}()})]}),C===0&&(0,e.createComponentVNode)(2,b),C===1&&(0,e.createComponentVNode)(2,S)]})})}return k}(),b=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.has_zeroth_laws,s=l.zeroth_laws,i=l.has_ion_laws,h=l.ion_laws,C=l.ion_law_nr,v=l.has_inherent_laws,p=l.inherent_laws,N=l.has_supplied_laws,V=l.supplied_laws,y=l.channels,B=l.channel,L=l.isMalf,w=l.isAdmin,x=l.zeroth_law,T=l.ion_law,M=l.inherent_law,O=l.supplied_law,D=l.supplied_law_position;return(0,e.createFragment)([!!u&&(0,e.createComponentVNode)(2,I,{title:"ERR_NULL_VALUE",laws:s,ctx:d}),!!i&&(0,e.createComponentVNode)(2,I,{title:C,laws:h,ctx:d}),!!v&&(0,e.createComponentVNode)(2,I,{title:"Inherent",laws:p,ctx:d}),!!N&&(0,e.createComponentVNode)(2,I,{title:"Supplied",laws:V,ctx:d}),(0,e.createComponentVNode)(2,t.Section,{title:"Statement Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Statement Channel",children:y.map(function(E){return(0,e.createComponentVNode)(2,t.Button,{content:E.channel,selected:E.channel===B,onClick:function(){function P(){return m("law_channel",{law_channel:E.channel})}return P}()},E.channel)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"State Laws",children:(0,e.createComponentVNode)(2,t.Button,{content:"State Laws",onClick:function(){function E(){return m("state_laws")}return E}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Law Notification",children:(0,e.createComponentVNode)(2,t.Button,{content:"Notify",onClick:function(){function E(){return m("notify_laws")}return E}()})})]})}),!!L&&(0,e.createComponentVNode)(2,t.Section,{title:"Add Laws",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Type"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"60%",children:"Law"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Index"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"20%",children:"Actions"})]}),!!(w&&!u)&&(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Zero"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:x}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function E(){return m("change_zeroth_law")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function E(){return m("add_zeroth_law")}return E}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Ion"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:T}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function E(){return m("change_ion_law")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function E(){return m("add_ion_law")}return E}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Inherent"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:M}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"N/A"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function E(){return m("change_inherent_law")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function E(){return m("add_inherent_law")}return E}()})]})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Supplied"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:O}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:D,onClick:function(){function E(){return m("change_supplied_law_position")}return E}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function E(){return m("change_supplied_law")}return E}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Add",icon:"plus",onClick:function(){function E(){return m("add_supplied_law")}return E}()})]})]})]})})],0)},S=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.law_sets;return(0,e.createComponentVNode)(2,t.Box,{children:u.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name+" - "+s.header,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Load Laws",icon:"download",onClick:function(){function i(){return m("transfer_laws",{transfer_laws:s.ref})}return i}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[s.laws.has_ion_laws>0&&s.laws.ion_laws.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.index,children:i.law},i.index)}),s.laws.has_zeroth_laws>0&&s.laws.zeroth_laws.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.index,children:i.law},i.index)}),s.laws.has_inherent_laws>0&&s.laws.inherent_laws.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.index,children:i.law},i.index)}),s.laws.has_supplied_laws>0&&s.laws.inherent_laws.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.index,children:i.law},i.index)})]})},s.name)})})},I=function(g,d){var c=(0,a.useBackend)(g.ctx),m=c.act,l=c.data,u=l.isMalf;return(0,e.createComponentVNode)(2,t.Section,{title:g.title+" Laws",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"10%",children:"Index"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"69%",children:"Law"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"21%",children:"State?"})]}),g.laws.map(function(s){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:s.index}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s.law}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{content:s.state?"Yes":"No",selected:s.state,onClick:function(){function i(){return m("state_law",{ref:s.ref,state_law:s.state?0:1})}return i}()}),!!u&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Edit",icon:"pencil-alt",onClick:function(){function i(){return m("edit_law",{edit_law:s.ref})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Delete",icon:"trash",color:"red",onClick:function(){function i(){return m("delete_law",{delete_law:s.ref})}return i}()})],4)]})]},s.law)})]})})}},85066:function(A,r,n){"use strict";r.__esModule=!0,r.LibraryComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.LibraryComputer=function(){function C(v,p){return(0,e.createComponentVNode)(2,o.Window,{width:1050,height:600,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,d),(0,e.createComponentVNode)(2,c)]})})]})}return C}(),S=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=v.args,L=y.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:B.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:B.author}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:B.summary}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rating",children:[B.rating,(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",verticalAlign:"top"})]}),!B.isProgrammatic&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Categories",children:B.categories.join(", ")})]}),(0,e.createVNode)(1,"br"),L===B.ckey&&(0,e.createComponentVNode)(2,t.Button,{content:"Delete Book",icon:"trash",color:"red",disabled:B.isProgrammatic,onClick:function(){function w(){return V("delete_book",{bookid:B.id,user_ckey:L})}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Report Book",icon:"flag",color:"red",disabled:B.isProgrammatic,onClick:function(){function w(){return(0,f.modalOpen)(p,"report_book",{bookid:B.id})}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Rate Book",icon:"star",color:"caution",disabled:B.isProgrammatic,onClick:function(){function w(){return(0,f.modalOpen)(p,"rate_info",{bookid:B.id})}return w}()})]})},I=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=v.args,L=y.selected_report,w=y.report_categories,x=y.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{level:2,m:"-1rem",pb:"1.5rem",title:"Report this book for Rule Violations",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:B.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reasons",children:(0,e.createComponentVNode)(2,t.Box,{children:w.map(function(T,M){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:T.description,selected:T.category_id===L,onClick:function(){function O(){return V("set_report",{report_type:T.category_id})}return O}()}),(0,e.createVNode)(1,"br")],4,M)})})})]}),(0,e.createComponentVNode)(2,t.Button.Confirm,{bold:!0,icon:"paper-plane",content:"Submit Report",onClick:function(){function T(){return V("submit_report",{bookid:B.id,user_ckey:x})}return T}()})]})},k=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.selected_rating,L=Array(10).fill().map(function(w,x){return 1+x});return(0,e.createComponentVNode)(2,t.Stack,{children:[L.map(function(w,x){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{bold:!0,icon:"star",color:B>=w?"caution":"default",onClick:function(){function T(){return V("set_rating",{rating_value:w})}return T}()})},x)}),(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,ml:2,fontSize:"150%",children:[B+"/10",(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",ml:.5,verticalAlign:"top"})]})]})},g=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=v.args,L=y.user_ckey;return(0,e.createComponentVNode)(2,t.Section,{level:2,m:"-1rem",pb:"1.5rem",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:B.title}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:B.author}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rating",children:[B.current_rating?B.current_rating:0,(0,e.createComponentVNode)(2,t.Icon,{name:"star",color:"yellow",ml:.5,verticalAlign:"middle"})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Total Ratings",children:B.total_ratings?B.total_ratings:0})]}),(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,t.Button.Confirm,{mt:2,content:"Submit",icon:"paper-plane",onClick:function(){function w(){return V("rate_book",{bookid:B.id,user_ckey:L})}return w}()})]})},d=function(v,p){var N=(0,a.useBackend)(p),V=N.data,y=(0,a.useLocalState)(p,"tabIndex",0),B=y[0],L=y[1],w=V.login_state;return(0,e.createComponentVNode)(2,t.Stack.Item,{mb:1,children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:B===0,onClick:function(){function x(){return L(0)}return x}(),children:"Book Archives"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:B===1,onClick:function(){function x(){return L(1)}return x}(),children:"Corporate Literature"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:B===2,onClick:function(){function x(){return L(2)}return x}(),children:"Upload Book"}),w===1&&(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:B===3,onClick:function(){function x(){return L(3)}return x}(),children:"Patron Manager"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:B===4,onClick:function(){function x(){return L(4)}return x}(),children:"Inventory"})]})})},c=function(v,p){var N=(0,a.useLocalState)(p,"tabIndex",0),V=N[0];switch(V){case 0:return(0,e.createComponentVNode)(2,l);case 1:return(0,e.createComponentVNode)(2,u);case 2:return(0,e.createComponentVNode)(2,s);case 3:return(0,e.createComponentVNode)(2,i);case 4:return(0,e.createComponentVNode)(2,h);default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},m=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.searchcontent,L=y.book_categories,w=y.user_ckey,x=[];return L.map(function(T){return x[T.description]=T.category_id}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"35%",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"edit",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Search Inputs"]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:20,content:B.title||"Input Title",onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_search_title")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{textAlign:"left",icon:"pen",width:20,content:B.author||"Input Author",onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_search_author")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Ratings",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{mr:1,width:"min-content",content:B.ratingmin,onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_search_ratingmin")}return T}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:"To"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{ml:1,width:"min-content",content:B.ratingmax,onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_search_ratingmax")}return T}()})})]})})]})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"40%",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"clipboard-list",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Book Categories"]}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Dropdown,{mt:.6,width:"190px",options:L.map(function(T){return T.description}),onSelected:function(){function T(M){return V("toggle_search_category",{category_id:x[M]})}return T}()})})})}),(0,e.createVNode)(1,"br"),L.filter(function(T){return B.categories.includes(T.category_id)}).map(function(T){return(0,e.createComponentVNode)(2,t.Button,{content:T.description,selected:!0,icon:"unlink",onClick:function(){function M(){return V("toggle_search_category",{category_id:T.category_id})}return M}()},T.category_id)})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",m:".5em",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:1.5,mr:"1rem"}),"Search Actions"]}),(0,e.createComponentVNode)(2,t.Button,{content:"Clear Search",icon:"eraser",onClick:function(){function T(){return V("clear_search")}return T}()}),B.ckey?(0,e.createComponentVNode)(2,t.Button,{mb:.5,content:"Stop Showing My Books",color:"bad",icon:"search",onClick:function(){function T(){return V("clear_ckey_search")}return T}()}):(0,e.createComponentVNode)(2,t.Button,{content:"Find My Books",icon:"search",onClick:function(){function T(){return V("find_users_books",{user_ckey:w})}return T}()})]})]})},l=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.external_booklist,L=y.archive_pagenumber,w=y.num_pages,x=y.login_state;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Book System Access",buttons:(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-left",disabled:L===1,onClick:function(){function T(){return V("deincrementpagemax")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-left",disabled:L===1,onClick:function(){function T(){return V("deincrementpage")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{bold:!0,content:L,onClick:function(){function T(){return(0,f.modalOpen)(p,"setpagenumber")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",disabled:L===w,onClick:function(){function T(){return V("incrementpage")}return T}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"angle-double-right",disabled:L===w,onClick:function(){function T(){return V("incrementpagemax")}return T}()})],4),children:[(0,e.createComponentVNode)(2,m),(0,e.createVNode)(1,"hr"),(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Ratings"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Category"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Actions"})]}),B.map(function(T){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:T.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book",mr:.5}),T.title.length>45?T.title.substr(0,45)+"...":T.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:T.author.length>30?T.author.substr(0,30)+"...":T.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[T.rating,(0,e.createComponentVNode)(2,t.Icon,{name:"star",ml:.5,color:"yellow",verticalAlign:"middle"})]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:T.categories.join(", ").substr(0,45)}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[x===1&&(0,e.createComponentVNode)(2,t.Button,{content:"Order",icon:"print",onClick:function(){function M(){return V("order_external_book",{bookid:T.id})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{content:"More...",onClick:function(){function M(){return(0,f.modalOpen)(p,"expand_info",{bookid:T.id})}return M}()})]})]},T.id)})]})]})},u=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.programmatic_booklist,L=y.login_state;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Corporate Book Catalog",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Actions"})]}),B.map(function(w,x){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:w.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book",mr:2}),w.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:w.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[L===1&&(0,e.createComponentVNode)(2,t.Button,{content:"Order",icon:"print",onClick:function(){function T(){return V("order_programmatic_book",{bookid:w.id})}return T}()}),(0,e.createComponentVNode)(2,t.Button,{content:"More...",onClick:function(){function T(){return(0,f.modalOpen)(p,"expand_info",{bookid:w.id})}return T}()})]})]},x)})]})})},s=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.selectedbook,L=y.book_categories,w=y.user_ckey,x=[];return L.map(function(T){return x[T.description]=T.category_id}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Book System Upload",buttons:(0,e.createComponentVNode)(2,t.Button.Confirm,{bold:!0,width:9.5,icon:"upload",disabled:B.copyright,content:"Upload Book",onClick:function(){function T(){return V("uploadbook",{user_ckey:w})}return T}()}),children:[B.copyright?(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"WARNING: You cannot upload or modify the attributes of a copyrighted book"}):(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{ml:15,mb:3,fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"search-plus",verticalAlign:"middle",size:3,mr:2}),"Book Uploader"]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Button,{width:20,textAlign:"left",icon:"pen",disabled:B.copyright,content:B.title,onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_selected_title")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,t.Button,{width:20,textAlign:"left",icon:"pen",disabled:B.copyright,content:B.author,onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_selected_author")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Categories",children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Dropdown,{width:"240px",options:L.map(function(T){return T.description}),onSelected:function(){function T(M){return V("toggle_upload_category",{category_id:x[M]})}return T}()})})})]}),(0,e.createVNode)(1,"br"),L.filter(function(T){return B.categories.includes(T.category_id)}).map(function(T){return(0,e.createComponentVNode)(2,t.Button,{content:T.description,disabled:B.copyright,selected:!0,icon:"unlink",onClick:function(){function M(){return V("toggle_upload_category",{category_id:T.category_id})}return M}()},T.category_id)})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mr:75,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Summary",children:(0,e.createComponentVNode)(2,t.Button,{icon:"pen",width:"auto",disabled:B.copyright,content:"Edit Summary",onClick:function(){function T(){return(0,f.modalOpen)(p,"edit_selected_summary")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{children:B.summary})]})})]})]})},i=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.checkout_data;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Checked Out Books",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Patron"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Time Left"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actions"})]}),B.map(function(L,w){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-tag"}),L.patron_name]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.title}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.timeleft>=0?L.timeleft:"LATE"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:(0,e.createComponentVNode)(2,t.Button,{content:"Mark Lost",icon:"flag",color:"bad",disabled:L.timeleft>=0,onClick:function(){function x(){return V("reportlost",{libraryid:L.libraryid})}return x}()})})]},w)})]})})},h=function(v,p){var N=(0,a.useBackend)(p),V=N.act,y=N.data,B=y.inventory_list;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Library Inventory",children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"LIB ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"})]}),B.map(function(L,w){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:L.libraryid}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"})," ",L.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:L.checked_out?"Checked Out":"Available"})]},w)})]})})};(0,f.modalRegisterBodyOverride)("expand_info",S),(0,f.modalRegisterBodyOverride)("report_book",I),(0,f.modalRegisterBodyOverride)("rate_info",g)},9516:function(A,r,n){"use strict";r.__esModule=!0,r.LibraryManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=r.LibraryManager=function(){function d(c,m){return(0,e.createComponentVNode)(2,o.Window,{width:600,height:600,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:(0,e.createComponentVNode)(2,S)})]})}return d}(),S=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.pagestate;switch(i){case 1:return(0,e.createComponentVNode)(2,I);case 2:return(0,e.createComponentVNode)(2,g);case 3:return(0,e.createComponentVNode)(2,k);default:return"WE SHOULDN'T BE HERE!"}},I=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data;return(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.4rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-shield",verticalAlign:"middle",size:3,mr:"1rem"}),"Library Manager"]}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{icon:"trash",width:"auto",color:"danger",content:"Delete Book by SSID",onClick:function(){function i(){return(0,f.modalOpen)(m,"specify_ssid_delete")}return i}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"user-slash",width:"auto",color:"danger",content:"Delete All Books By CKEY",onClick:function(){function i(){return(0,f.modalOpen)(m,"specify_ckey_delete")}return i}()}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{icon:"search",width:"auto",content:"View All Books By CKEY",onClick:function(){function i(){return(0,f.modalOpen)(m,"specify_ckey_search")}return i}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"search",width:"auto",content:"View All Reported Books",onClick:function(){function i(){return u("view_reported_books")}return i}()})]})},k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.reports;return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-secret",verticalAlign:"middle",size:2,mr:"1rem"}),(0,e.createVNode)(1,"br"),"All Reported Books",(0,e.createVNode)(1,"br")]}),(0,e.createComponentVNode)(2,t.Button,{content:"Return to Main",icon:"arrow-alt-circle-left",onClick:function(){function h(){return u("return")}return h}()}),(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Uploader CKEY"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Report Type"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Reporter Ckey"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Administrative Actions"})]}),i.map(function(h){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:h.uploader_ckey}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"}),h.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:h.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:h.report_description}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:h.reporter_ckey}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Delete",icon:"trash",onClick:function(){function C(){return u("delete_book",{bookid:h.id})}return C}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Unflag",icon:"flag",color:"caution",onClick:function(){function C(){return u("unflag_book",{bookid:h.id})}return C}()}),(0,e.createComponentVNode)(2,t.Button,{content:"View",onClick:function(){function C(){return u("view_book",{bookid:h.id})}return C}()})]})]},h.id)})]})})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.ckey,h=s.booklist;return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Table,{className:"Library__Booklist",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.2rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user",verticalAlign:"middle",size:2,mr:"1rem"}),(0,e.createVNode)(1,"br"),"Books uploaded by ",i,(0,e.createVNode)(1,"br")]}),(0,e.createComponentVNode)(2,t.Button,{mt:1,content:"Return to Main",icon:"arrow-alt-circle-left",onClick:function(){function C(){return u("return")}return C}()}),(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"SSID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Title"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Author"}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"middle",children:"Administrative Actions"})]}),h.map(function(C){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:C.id}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"book"}),C.title]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"left",children:C.author}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"right",children:[(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Delete",icon:"trash",color:"bad",onClick:function(){function v(){return u("delete_book",{bookid:C.id})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"View",onClick:function(){function v(){return u("view_book",{bookid:C.id})}return v}()})]})]},C.id)})]})})}},90447:function(A,r,n){"use strict";r.__esModule=!0,r.ListInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(36036),f=n(72253),b=n(92986),S=n(98595),I=r.ListInputModal=function(){function d(c,m){var l=(0,f.useBackend)(m),u=l.act,s=l.data,i=s.items,h=i===void 0?[]:i,C=s.message,v=C===void 0?"":C,p=s.init_value,N=s.timeout,V=s.title,y=(0,f.useLocalState)(m,"selected",h.indexOf(p)),B=y[0],L=y[1],w=(0,f.useLocalState)(m,"searchBarVisible",h.length>10),x=w[0],T=w[1],M=(0,f.useLocalState)(m,"searchQuery",""),O=M[0],D=M[1],E=function(){function G(J){var Q=z.length-1;if(J===b.KEY_DOWN)if(B===null||B===Q){var ue;L(0),(ue=document.getElementById("0"))==null||ue.scrollIntoView()}else{var ie;L(B+1),(ie=document.getElementById((B+1).toString()))==null||ie.scrollIntoView()}else if(J===b.KEY_UP)if(B===null||B===0){var pe;L(Q),(pe=document.getElementById(Q.toString()))==null||pe.scrollIntoView()}else{var te;L(B-1),(te=document.getElementById((B-1).toString()))==null||te.scrollIntoView()}}return G}(),P=function(){function G(J){J!==B&&L(J)}return G}(),R=function(){function G(){T(!1),T(!0)}return G}(),j=function(){function G(J){var Q=String.fromCharCode(J),ue=h.find(function(te){return te==null?void 0:te.toLowerCase().startsWith(Q==null?void 0:Q.toLowerCase())});if(ue){var ie,pe=h.indexOf(ue);L(pe),(ie=document.getElementById(pe.toString()))==null||ie.scrollIntoView()}}return G}(),F=function(){function G(J){var Q;J!==O&&(D(J),L(0),(Q=document.getElementById("0"))==null||Q.scrollIntoView())}return G}(),W=function(){function G(){T(!x),D("")}return G}(),z=h.filter(function(G){return G==null?void 0:G.toLowerCase().includes(O.toLowerCase())}),K=330+Math.ceil(v.length/3);return x||setTimeout(function(){var G;return(G=document.getElementById(B.toString()))==null?void 0:G.focus()},1),(0,e.createComponentVNode)(2,S.Window,{title:V,width:325,height:K,children:[N&&(0,e.createComponentVNode)(2,a.Loader,{value:N}),(0,e.createComponentVNode)(2,S.Window.Content,{onKeyDown:function(){function G(J){var Q=window.event?J.which:J.keyCode;(Q===b.KEY_DOWN||Q===b.KEY_UP)&&(J.preventDefault(),E(Q)),Q===b.KEY_ENTER&&(J.preventDefault(),u("submit",{entry:z[B]})),!x&&Q>=b.KEY_A&&Q<=b.KEY_Z&&(J.preventDefault(),j(Q)),Q===b.KEY_ESCAPE&&(J.preventDefault(),u("cancel"))}return G}(),children:(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{compact:!0,icon:x?"search":"font",selected:!0,tooltip:x?"Search Mode. Type to search or use arrow keys to select manually.":"Hotkey Mode. Type a letter to jump to the first match. Enter to select.",tooltipPosition:"left",onClick:function(){function G(){return W()}return G}()}),className:"ListInput__Section",fill:!0,title:v,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,k,{filteredItems:z,onClick:P,onFocusSearch:R,searchBarVisible:x,selected:B})}),(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:x&&(0,e.createComponentVNode)(2,g,{filteredItems:z,onSearch:F,searchQuery:O,selected:B})}),(0,e.createComponentVNode)(2,o.Stack.Item,{mt:.5,children:(0,e.createComponentVNode)(2,t.InputButtons,{input:z[B]})})]})})})]})}return d}(),k=function(c,m){var l=(0,f.useBackend)(m),u=l.act,s=c.filteredItems,i=c.onClick,h=c.onFocusSearch,C=c.searchBarVisible,v=c.selected;return(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,tabIndex:0,children:s.map(function(p,N){return(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:"transparent",id:N,onClick:function(){function V(){return i(N)}return V}(),onDblClick:function(){function V(y){y.preventDefault(),u("submit",{entry:s[v]})}return V}(),onKeyDown:function(){function V(y){var B=window.event?y.which:y.keyCode;C&&B>=b.KEY_A&&B<=b.KEY_Z&&(y.preventDefault(),h())}return V}(),selected:N===v,style:{animation:"none",transition:"none"},children:p.replace(/^\w/,function(V){return V.toUpperCase()})},N)})})},g=function(c,m){var l=(0,f.useBackend)(m),u=l.act,s=c.filteredItems,i=c.onSearch,h=c.searchQuery,C=c.selected;return(0,e.createComponentVNode)(2,o.Input,{width:"100%",autoFocus:!0,autoSelect:!0,onEnter:function(){function v(p){p.preventDefault(),u("submit",{entry:s[C]})}return v}(),onInput:function(){function v(p,N){return i(N)}return v}(),placeholder:"Search...",value:h})}},26826:function(A,r,n){"use strict";r.__esModule=!0,r.Loadout=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b={Default:function(){function c(m,l){return m.gear.gear_tier-l.gear.gear_tier}return c}(),Alphabetical:function(){function c(m,l){return m.gear.name.toLowerCase().localeCompare(l.gear.name.toLowerCase())}return c}(),Cost:function(){function c(m,l){return m.gear.cost-l.gear.cost}return c}()},S=r.Loadout=function(){function c(m,l){var u=(0,t.useBackend)(l),s=u.act,i=u.data,h=(0,t.useLocalState)(l,"search",!1),C=h[0],v=h[1],p=(0,t.useLocalState)(l,"searchText",""),N=p[0],V=p[1],y=(0,t.useLocalState)(l,"category",Object.keys(i.gears)[0]),B=y[0],L=y[1],w=(0,t.useLocalState)(l,"tweakedGear",""),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,f.Window,{width:1105,height:650,children:[x&&(0,e.createComponentVNode)(2,d,{tweakedGear:x,setTweakedGear:T}),(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,I,{category:B,setCategory:L})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"25%",children:(0,e.createComponentVNode)(2,g,{setTweakedGear:T})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"75%",children:(0,e.createComponentVNode)(2,k,{category:B,search:C,setSearch:v,searchText:N,setSearchText:V})})]})})]})})]})}return c}(),I=function(m,l){var u=(0,t.useBackend)(l),s=u.act,i=u.data,h=m.category,C=m.setCategory;return(0,e.createComponentVNode)(2,o.Tabs,{fluid:!0,textAlign:"center",style:{"flex-wrap":"wrap-reverse"},children:Object.keys(i.gears).map(function(v){return(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:v===h,style:{"white-space":"nowrap"},onClick:function(){function p(){return C(v)}return p}(),children:v},v)})})},k=function(m,l){var u=(0,t.useBackend)(l),s=u.act,i=u.data,h=i.user_tier,C=i.gear_slots,v=i.max_gear_slots,p=m.category,N=m.search,V=m.setSearch,y=m.searchText,B=m.setSearchText,L=(0,t.useLocalState)(l,"sortType","Default"),w=L[0],x=L[1],T=(0,t.useLocalState)(l,"sortReverse",!1),M=T[0],O=T[1],D=(0,a.createSearch)(y,function(P){return P.name}),E;return y.length>2?E=Object.entries(i.gears).reduce(function(P,R){var j=R[0],F=R[1];return P.concat(Object.entries(F).map(function(W){var z=W[0],K=W[1];return{key:z,gear:K}}))},[]).filter(function(P){var R=P.gear;return D(R)}):E=Object.entries(i.gears[p]).map(function(P){var R=P[0],j=P[1];return{key:R,gear:j}}),E.sort(b[w]),M&&(E=E.reverse()),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:p,buttons:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Dropdown,{height:1.66,selected:w,options:Object.keys(b),onSelected:function(){function P(R){return x(R)}return P}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:M?"arrow-down-wide-short":"arrow-down-short-wide",tooltip:M?"Ascending order":"Descending order",tooltipPosition:"bottom-end",onClick:function(){function P(){return O(!M)}return P}()})}),N&&(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Input,{width:20,placeholder:"Search...",value:y,onInput:function(){function P(R){return B(R.target.value)}return P}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"magnifying-glass",selected:N,tooltip:"Toggle search field",tooltipPosition:"bottom-end",onClick:function(){function P(){V(!N),B("")}return P}()})})]}),children:E.map(function(P){var R=P.key,j=P.gear,F=12,W=Object.keys(i.selected_gears).includes(R),z=j.cost===1?j.cost+" Point":j.cost+" Points",K=(0,e.createComponentVNode)(2,o.Box,{children:[j.name.length>F&&(0,e.createComponentVNode)(2,o.Box,{children:j.name}),j.gear_tier>h&&(0,e.createComponentVNode)(2,o.Box,{mt:j.name.length>F&&1.5,textColor:"red",children:"That gear is only available at a higher donation tier than you are on."})]}),G=(0,e.createFragment)([j.allowed_roles&&(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:"user",tooltip:(0,e.createComponentVNode)(2,o.Section,{m:-1,title:"Allowed Roles",children:j.allowed_roles.map(function(Q){return(0,e.createComponentVNode)(2,o.Box,{children:Q},Q)})}),tooltipPosition:"left"}),Object.entries(j.tweaks).map(function(Q){var ue=Q[0],ie=Q[1];return ie.map(function(pe){return(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:pe.icon,tooltip:pe.tooltip,tooltipPosition:"top"},ue)})}),(0,e.createComponentVNode)(2,o.Button,{width:"22px",color:"transparent",icon:"info",tooltip:j.desc,tooltipPosition:"top"})],0),J=(0,e.createComponentVNode)(2,o.Box,{class:"Loadout-InfoBox",children:[(0,e.createComponentVNode)(2,o.Box,{style:{"flex-grow":1},fontSize:1,color:"gold",opacity:.75,children:j.gear_tier>0&&"Tier "+j.gear_tier}),(0,e.createComponentVNode)(2,o.Box,{fontSize:.75,opacity:.66,children:z})]});return(0,e.createComponentVNode)(2,o.ImageButton,{m:.5,imageSize:84,dmIcon:j.icon,dmIconState:j.icon_state,tooltip:(j.name.length>F||j.gear_tier>0)&&K,tooltipPosition:"bottom",selected:W,disabled:j.gear_tier>h||C+j.cost>v&&!W,buttons:G,buttonsAlt:J,onClick:function(){function Q(){return s("toggle_gear",{gear:R})}return Q}(),children:j.name},R)})})},g=function(m,l){var u=(0,t.useBackend)(l),s=u.act,i=u.data,h=m.setTweakedGear,C=Object.entries(i.gears).reduce(function(v,p){var N=p[0],V=p[1],y=Object.entries(V).filter(function(B){var L=B[0];return Object.keys(i.selected_gears).includes(L)}).map(function(B){var L=B[0],w=B[1];return Object.assign({key:L},w)});return v.concat(y)},[]);return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Selected Equipment",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",tooltip:"Clear Loadout",tooltipPosition:"bottom-end",onClick:function(){function v(){return s("clear_loadout")}return v}()}),children:C.map(function(v){return(0,e.createComponentVNode)(2,o.ImageButton,{fluid:!0,imageSize:32,dmIcon:v.icon,dmIconState:v.icon_state,buttons:(0,e.createFragment)([Object.entries(v.tweaks).length>0&&(0,e.createComponentVNode)(2,o.Button,{translucent:!0,icon:"gears",iconColor:"gray",width:"33px",onClick:function(){function p(){return h(v)}return p}()}),(0,e.createComponentVNode)(2,o.Button,{translucent:!0,icon:"times",iconColor:"red",width:"32px",onClick:function(){function p(){return s("toggle_gear",{gear:v.key})}return p}()})],0),children:v.name},v.key)})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.ProgressBar,{value:i.gear_slots,maxValue:i.max_gear_slots,ranges:{bad:[i.max_gear_slots,1/0],average:[i.max_gear_slots*.66,i.max_gear_slots],good:[0,i.max_gear_slots*.66]},children:(0,e.createComponentVNode)(2,o.Box,{textAlign:"center",children:["Used points ",i.gear_slots,"/",i.max_gear_slots]})})})})]})},d=function(m,l){var u=(0,t.useBackend)(l),s=u.act,i=u.data,h=m.tweakedGear,C=m.setTweakedGear;return(0,e.createComponentVNode)(2,o.Dimmer,{children:(0,e.createComponentVNode)(2,o.Box,{className:"Loadout-Modal__background",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,width:20,height:20,title:h.name,buttons:(0,e.createComponentVNode)(2,o.Button,{color:"red",icon:"times",tooltip:"Close",tooltipPosition:"top",onClick:function(){function v(){return C("")}return v}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:Object.entries(h.tweaks).map(function(v){var p=v[0],N=v[1];return N.map(function(V){var y=i.selected_gears[h.key][p];return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:V.name,color:y?"":"gray",buttons:(0,e.createComponentVNode)(2,o.Button,{color:"transparent",icon:"pen",onClick:function(){function B(){return s("set_tweak",{gear:h.key,tweak:p})}return B}()}),children:[y||"Default",(0,e.createComponentVNode)(2,o.Box,{inline:!0,ml:1,width:1,height:1,verticalAlign:"middle",style:{"background-color":""+y}})]},p)})})})})})})}},77613:function(A,r,n){"use strict";r.__esModule=!0,r.MODsuitContent=r.MODsuit=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(B,L){var w=B.name,x=B.value,T=B.module_ref,M=(0,a.useBackend)(L),O=M.act;return(0,e.createComponentVNode)(2,t.NumberInput,{value:x,minValue:-50,maxValue:50,stepPixelSize:5,width:"39px",onChange:function(){function D(E,P){return O("configure",{key:w,value:P,ref:T})}return D}()})},b=function(B,L){var w=B.name,x=B.value,T=B.module_ref,M=(0,a.useBackend)(L),O=M.act;return(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:x,onClick:function(){function D(){return O("configure",{key:w,value:!x,ref:T})}return D}()})},S=function(B,L){var w=B.name,x=B.value,T=B.module_ref,M=(0,a.useBackend)(L),O=M.act;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"paint-brush",onClick:function(){function D(){return O("configure",{key:w,ref:T})}return D}()}),(0,e.createComponentVNode)(2,t.ColorBox,{color:x,mr:.5})],4)},I=function(B,L){var w=B.name,x=B.value,T=B.values,M=B.module_ref,O=(0,a.useBackend)(L),D=O.act;return(0,e.createComponentVNode)(2,t.Dropdown,{displayText:x,options:T,onSelected:function(){function E(P){return D("configure",{key:w,value:P,ref:M})}return E}()})},k=function(B,L){var w=B.name,x=B.display_name,T=B.type,M=B.value,O=B.values,D=B.module_ref,E={number:(0,e.normalizeProps)((0,e.createComponentVNode)(2,f,Object.assign({},B))),bool:(0,e.normalizeProps)((0,e.createComponentVNode)(2,b,Object.assign({},B))),color:(0,e.normalizeProps)((0,e.createComponentVNode)(2,S,Object.assign({},B))),list:(0,e.normalizeProps)((0,e.createComponentVNode)(2,I,Object.assign({},B)))};return(0,e.createComponentVNode)(2,t.Box,{children:[x,": ",E[T]]})},g=function(B,L){var w=B.active,x=B.userradiated,T=B.usertoxins,M=B.usermaxtoxins,O=B.threatlevel;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Radiation Level",color:w&&x?"bad":"good",children:w&&x?"IRRADIATED!":"RADIATION-FREE"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxins Level",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?T/M:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:T})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Hazard Level",color:w&&O?"bad":"good",bold:!0,children:w&&O?O:0})})]})},d=function(B,L){var w=B.active,x=B.userhealth,T=B.usermaxhealth,M=B.userbrute,O=B.userburn,D=B.usertoxin,E=B.useroxy;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?x/T:0,ranges:{good:[.5,1/0],average:[.2,.5],bad:[-1/0,.2]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?x:0})})}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Brute",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?M/T:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?M:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Burn",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?O/T:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?O:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxin",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?D/T:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?D:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Suffocation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?E/T:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?E:0})})})})]})],4)},c=function(B,L){var w=B.active,x=B.statustime,T=B.statusid,M=B.statushealth,O=B.statusmaxhealth,D=B.statusbrute,E=B.statusburn,P=B.statustoxin,R=B.statusoxy,j=B.statustemp,F=B.statusnutrition,W=B.statusfingerprints,z=B.statusdna,K=B.statusviruses;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Operation Time",children:w?x:"00:00:00"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Operation Number",children:w?T||"0":"???"})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Health",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?M/O:0,ranges:{good:[.5,1/0],average:[.2,.5],bad:[-1/0,.2]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?M:0})})}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Brute",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?D/O:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?D:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Burn",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?E/O:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:w?E:0})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Toxin",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?P/O:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:P})})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Suffocation",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:w?R/O:0,ranges:{good:[-1/0,.2],average:[.2,.5],bad:[.5,1/0]},children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:R})})})})]}),(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Body Temperature",children:w?j:0})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Nutrition Status",children:w?F:0})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"DNA",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fingerprints",children:w?W:"???"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unique Enzymes",children:w?z:"???"})]})}),!!w&&!!K&&(0,e.createComponentVNode)(2,t.Section,{title:"Diseases",children:(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"signature",tooltip:"Name",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"wind",tooltip:"Type",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"bolt",tooltip:"Stage",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"flask",tooltip:"Cure",tooltipPosition:"top"})})]}),K.map(function(G){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.type}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[G.stage,"/",G.maxstage]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:G.cure})]},G.name)})]})})],0)},m={rad_counter:g,health_analyzer:d,status_readout:c},l=function(){return(0,e.createComponentVNode)(2,t.Section,{align:"center",fill:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{color:"red",name:"exclamation-triangle",size:15}),(0,e.createComponentVNode)(2,t.Box,{fontSize:"30px",color:"red",children:"ERROR: INTERFACE UNRESPONSIVE"})]})},u=function(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data;return(0,e.createComponentVNode)(2,t.Dimmer,{children:(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"16px",color:"blue",children:"SUIT UNPOWERED"})})})},s=function(B,L){var w=B.configuration_data,x=B.module_ref,T=Object.keys(w);return(0,e.createComponentVNode)(2,t.Dimmer,{backgroundColor:"rgba(0, 0, 0, 0.8)",children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[T.map(function(M){var O=w[M];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,k,{name:M,display_name:O.display_name,type:O.type,value:O.value,values:O.values,module_ref:x})},O.key)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:B.onExit,icon:"times",textAlign:"center",children:"Exit"})})})]})})},i=function(B){switch(B){case 1:return"Use";case 2:return"Toggle";case 3:return"Select"}},h=function(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.active,O=T.malfunctioning,D=T.locked,E=T.open,P=T.selected_module,R=T.complexity,j=T.complexity_max,F=T.wearer_name,W=T.wearer_job,z=O?"Malfunctioning":M?"Active":"Inactive";return(0,e.createComponentVNode)(2,t.Section,{title:"Parameters",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",content:M?"Deactivate":"Activate",onClick:function(){function K(){return x("activate")}return K}()}),children:z}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID Lock",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:D?"lock-open":"lock",content:D?"Unlock":"Lock",onClick:function(){function K(){return x("lock")}return K}()}),children:D?"Locked":"Unlocked"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cover",children:E?"Open":"Closed"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Selected Module",children:P||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Complexity",children:[R," (",j,")"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Occupant",children:[F,", ",W]})]})})},C=function(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.active,O=T.control,D=T.helmet,E=T.chestplate,P=T.gauntlets,R=T.boots,j=T.core,F=T.charge;return(0,e.createComponentVNode)(2,t.Section,{title:"Hardware",children:[(0,e.createComponentVNode)(2,t.Collapsible,{title:"Parts",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Control Unit",children:O}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Helmet",children:D||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Chestplate",children:E||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Gauntlets",children:P||"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Boots",children:R||"None"})]})}),(0,e.createComponentVNode)(2,t.Collapsible,{title:"Core",children:j&&(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Core Type",children:j}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Core Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:F/100,content:F+"%",ranges:{good:[.6,1/0],average:[.3,.6],bad:[-1/0,.3]}})})]})||(0,e.createComponentVNode)(2,t.Box,{color:"bad",textAlign:"center",children:"No Core Detected"})})]})},v=function(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.active,O=T.modules,D=O.filter(function(E){return!!E.id});return(0,e.createComponentVNode)(2,t.Section,{title:"Info",children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:D.length!==0&&D.map(function(E){var P=m[E.id];return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[!M&&(0,e.createComponentVNode)(2,u),(0,e.normalizeProps)((0,e.createComponentVNode)(2,P,Object.assign({},E,{active:M})))]},E.ref)})||(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:"No Info Modules Detected"})})})},p=function(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.complexity_max,O=T.modules,D=(0,a.useLocalState)(L,"module_configuration",null),E=D[0],P=D[1];return(0,e.createComponentVNode)(2,t.Section,{title:"Modules",fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:O.length!==0&&O.map(function(R){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Collapsible,{title:R.module_name,children:(0,e.createComponentVNode)(2,t.Section,{children:[E===R.ref&&(0,e.createComponentVNode)(2,s,{configuration_data:R.configuration_data,module_ref:R.ref,onExit:function(){function j(){return P(null)}return j}()}),(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"save",tooltip:"Complexity",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"plug",tooltip:"Idle Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"lightbulb",tooltip:"Active Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"bolt",tooltip:"Use Power Cost",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"hourglass-half",tooltip:"Cooldown",tooltipPosition:"top"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{color:"transparent",icon:"tasks",tooltip:"Actions",tooltipPosition:"top"})})]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[R.module_complexity,"/",M]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:R.idle_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:R.active_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:R.use_power}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[R.cooldown>0&&R.cooldown/10||"0","/",R.cooldown_time/10,"s"]}),(0,e.createComponentVNode)(2,t.Table.Cell,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function j(){return x("select",{ref:R.ref})}return j}(),icon:"bullseye",selected:R.module_active,tooltip:i(R.module_type),tooltipPosition:"left",disabled:!R.module_type}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function j(){return P(R.ref)}return j}(),icon:"cog",selected:E===R.ref,tooltip:"Configure",tooltipPosition:"left",disabled:R.configuration_data.length===0}),(0,e.createComponentVNode)(2,t.Button,{onClick:function(){function j(){return x("pin",{ref:R.ref})}return j}(),icon:"thumbtack",selected:R.pinned,tooltip:"Pin",tooltipPosition:"left",disabled:!R.module_type})]})]})]}),(0,e.createComponentVNode)(2,t.Box,{children:R.description})]})})},R.ref)})||(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",children:"No Modules Detected"})})})})},N=r.MODsuitContent=function(){function y(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.ui_theme,O=T.interface_break;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!O,children:!!O&&(0,e.createComponentVNode)(2,l)||(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,h)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,C)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,v)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,p)})]})})}return y}(),V=r.MODsuit=function(){function y(B,L){var w=(0,a.useBackend)(L),x=w.act,T=w.data,M=T.ui_theme,O=T.interface_break;return(0,e.createComponentVNode)(2,o.Window,{theme:M,width:400,height:620,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,N)})})})}return y}()},78624:function(A,r,n){"use strict";r.__esModule=!0,r.MagnetController=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=n(3939),S=new Map([["n",{icon:"arrow-up",tooltip:"Move North"}],["e",{icon:"arrow-right",tooltip:"Move East"}],["s",{icon:"arrow-down",tooltip:"Move South"}],["w",{icon:"arrow-left",tooltip:"Move West"}],["c",{icon:"crosshairs",tooltip:"Move to Magnet"}],["r",{icon:"dice",tooltip:"Move Randomly"}]]),I=r.MagnetController=function(){function k(g,d){var c=(0,t.useBackend)(d),m=c.act,l=c.data,u=l.autolink,s=l.code,i=l.frequency,h=l.linkedMagnets,C=l.magnetConfiguration,v=l.path,p=l.pathPosition,N=l.probing,V=l.powerState,y=l.speed;return(0,e.createComponentVNode)(2,f.Window,{width:400,height:600,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[!u&&(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{content:"Probe",icon:N?"spinner":"sync",iconSpin:!!N,disabled:N,onClick:function(){function B(){return m("probe_magnets")}return B}()}),title:"Magnet Linking",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:(0,a.toFixed)(i/10,1)}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",children:s})]})}),(0,e.createComponentVNode)(2,o.Section,{buttons:(0,e.createComponentVNode)(2,o.Button,{icon:V?"power-off":"times",content:V?"On":"Off",selected:V,onClick:function(){function B(){return m("toggle_power")}return B}()}),title:"Controller Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Speed",children:(0,e.createComponentVNode)(2,o.Slider,{value:y.value,minValue:y.min,maxValue:y.max,onChange:function(){function B(L,w){return m("set_speed",{speed:w})}return B}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Path",children:[Array.from(S.entries()).map(function(B){var L=B[0],w=B[1],x=w.icon,T=w.tooltip;return(0,e.createComponentVNode)(2,o.Button,{icon:x,tooltip:T,onClick:function(){function M(){return m("path_add",{code:L})}return M}()},L)}),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",confirmIcon:"trash",confirmContent:"",float:"right",tooltip:"Reset Path",tooltipPosition:"left",onClick:function(){function B(){return m("path_clear")}return B}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"file-import",float:"right",tooltip:"Manually input path",tooltipPosition:"left",onClick:function(){function B(){return(0,b.modalOpen)(d,"path_custom_input")}return B}()}),(0,e.createComponentVNode)(2,o.BlockQuote,{children:v.map(function(B,L){var w=S.get(B)||{icon:"question"},x=w.icon,T=w.tooltip;return(0,e.createComponentVNode)(2,o.Button.Confirm,{selected:L+2===p,icon:x,confirmIcon:x,confirmContent:"",tooltip:T,onClick:function(){function M(){return m("path_remove",{index:L+1,code:B})}return M}()},L)})})]})]})}),h.map(function(B,L){var w=B.uid,x=B.powerState,T=B.electricityLevel,M=B.magneticField;return(0,e.createComponentVNode)(2,o.Section,{title:"Magnet #"+(L+1)+" Configuration",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:x?"power-off":"times",content:x?"On":"Off",selected:x,onClick:function(){function O(){return m("toggle_magnet_power",{id:w})}return O}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Move Speed",children:(0,e.createComponentVNode)(2,o.Slider,{value:T,minValue:C.electricityLevel.min,maxValue:C.electricityLevel.max,onChange:function(){function O(D,E){return m("set_electricity_level",{id:w,electricityLevel:E})}return O}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Field Size",children:(0,e.createComponentVNode)(2,o.Slider,{value:M,minValue:C.magneticField.min,maxValue:C.magneticField.max,onChange:function(){function O(D,E){return m("set_magnetic_field",{id:w,magneticField:E})}return O}()})})]})},w)})]})]})}return k}()},72106:function(A,r,n){"use strict";r.__esModule=!0,r.MechBayConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.MechBayConsole=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.recharge_port,m=c&&c.mech,l=m&&m.cell,u=m&&m.name;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:155,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:u?"Mech status: "+u:"Mech status",textAlign:"center",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Sync",onClick:function(){function s(){return g("reconnect")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No power port detected. Please re-sync."})||!m&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No mech detected."})||(0,e.createComponentVNode)(2,t.ProgressBar,{value:m.health/m.maxhealth,ranges:{good:[.7,1/0],average:[.3,.7],bad:[-1/0,.3]}})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No power port detected. Please re-sync."})||!m&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No mech detected."})||!l&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No cell is installed."})||(0,e.createComponentVNode)(2,t.ProgressBar,{value:l.charge/l.maxcharge,ranges:{good:[.7,1/0],average:[.3,.7],bad:[-1/0,.3]},children:[(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:l.charge})," / "+l.maxcharge]})})]})})})})}return b}()},7466:function(A,r,n){"use strict";r.__esModule=!0,r.MechaControlConsole=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=n(25328),S=r.MechaControlConsole=function(){function I(k,g){var d=(0,t.useBackend)(g),c=d.act,m=d.data,l=m.beacons,u=m.stored_data;return u.length?(0,e.createComponentVNode)(2,f.Window,{width:420,height:500,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Section,{title:"Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"window-close",onClick:function(){function s(){return c("clear_log")}return s}()}),children:u.map(function(s){return(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",children:["(",s.time,")"]}),(0,e.createComponentVNode)(2,o.Box,{children:(0,b.decodeHtmlEntities)(s.message)})]},s.time)})})})}):(0,e.createComponentVNode)(2,f.Window,{width:420,height:500,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:l.length&&l.map(function(s){return(0,e.createComponentVNode)(2,o.Section,{title:s.name,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function i(){return c("send_message",{mt:s.uid})}return i}(),children:"Message"}),(0,e.createComponentVNode)(2,o.Button,{icon:"eye",onClick:function(){function i(){return c("get_log",{mt:s.uid})}return i}(),children:"View Log"}),(0,e.createComponentVNode)(2,o.Button.Confirm,{color:"red",content:"Sabotage",icon:"bomb",onClick:function(){function i(){return c("shock",{mt:s.uid})}return i}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{good:[s.maxHealth*.75,1/0],average:[s.maxHealth*.5,s.maxHealth*.75],bad:[-1/0,s.maxHealth*.5]},value:s.health,maxValue:s.maxHealth})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cell Charge",children:s.cell&&(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{good:[s.cellMaxCharge*.75,1/0],average:[s.cellMaxCharge*.5,s.cellMaxCharge*.75],bad:[-1/0,s.cellMaxCharge*.5]},value:s.cellCharge,maxValue:s.cellMaxCharge})||(0,e.createComponentVNode)(2,o.NoticeBox,{children:"No Cell Installed"})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Air Tank",children:[s.airtank,"kPa"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pilot",children:s.pilot||"Unoccupied"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Location",children:(0,b.toTitleCase)(s.location)||"Unknown"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Active Equipment",children:s.active||"None"}),s.cargoMax&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cargo Space",children:(0,e.createComponentVNode)(2,o.ProgressBar,{ranges:{bad:[s.cargoMax*.75,1/0],average:[s.cargoMax*.5,s.cargoMax*.75],good:[-1/0,s.cargoMax*.5]},value:s.cargoUsed,maxValue:s.cargoMax})})||null]})},s.name)})||(0,e.createComponentVNode)(2,o.NoticeBox,{children:"No mecha beacons found."})})})}return I}()},79625:function(A,r,n){"use strict";r.__esModule=!0,r.MedicalRecords=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(3939),b=n(98595),S=n(321),I=n(5485),k=n(22091),g={Minor:"lightgray",Medium:"good",Harmful:"average","Dangerous!":"bad","BIOHAZARD THREAT!":"darkred"},d={"*Deceased*":"deceased","*SSD*":"ssd","Physically Unfit":"physically_unfit",Disabled:"disabled"},c=function(x,T){(0,f.modalOpen)(x,"edit",{field:T.edit,value:T.value})},m=function(x,T){var M=x.args;return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:M.name||"Virus",children:(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Number of stages",children:M.max_stages}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Spread",children:[M.spread_text," Transmission"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Possible cure",children:M.cure}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Notes",children:M.desc}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Severity",color:g[M.severity],children:M.severity})]})})})},l=r.MedicalRecords=function(){function w(x,T){var M=(0,t.useBackend)(T),O=M.data,D=O.loginState,E=O.screen;if(!D.logged_in)return(0,e.createComponentVNode)(2,b.Window,{width:800,height:900,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,I.LoginScreen)})});var P;return E===2?P=(0,e.createComponentVNode)(2,u):E===3?P=(0,e.createComponentVNode)(2,s):E===4?P=(0,e.createComponentVNode)(2,i):E===5?P=(0,e.createComponentVNode)(2,p):E===6?P=(0,e.createComponentVNode)(2,N):E===7&&(P=(0,e.createComponentVNode)(2,V)),(0,e.createComponentVNode)(2,b.Window,{width:800,height:900,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S.LoginInfo),(0,e.createComponentVNode)(2,k.TemporaryNotice),(0,e.createComponentVNode)(2,L),P]})})]})}return w}(),u=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.records,P=(0,t.useLocalState)(T,"searchText",""),R=P[0],j=P[1],F=(0,t.useLocalState)(T,"sortId","name"),W=F[0],z=F[1],K=(0,t.useLocalState)(T,"sortOrder",!0),G=K[0],J=K[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Manage Records",icon:"wrench",ml:"0.25rem",onClick:function(){function Q(){return O("screen",{screen:3})}return Q}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{fluid:!0,placeholder:"Search by Name, ID, Physical Status, or Mental Status",onInput:function(){function Q(ue,ie){return j(ie)}return Q}()})})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,y,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,y,{id:"id",children:"ID"}),(0,e.createComponentVNode)(2,y,{id:"rank",children:"Assignment"}),(0,e.createComponentVNode)(2,y,{id:"p_stat",children:"Patient Status"}),(0,e.createComponentVNode)(2,y,{id:"m_stat",children:"Mental Status"})]}),E.filter((0,a.createSearch)(R,function(Q){return Q.name+"|"+Q.id+"|"+Q.rank+"|"+Q.p_stat+"|"+Q.m_stat})).sort(function(Q,ue){var ie=G?1:-1;return Q[W].localeCompare(ue[W])*ie}).map(function(Q){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listRow--"+d[Q.p_stat],onClick:function(){function ue(){return O("view_record",{view_record:Q.ref})}return ue}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",Q.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:Q.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:Q.rank}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:Q.p_stat}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:Q.m_stat})]},Q.id)})]})})})],4)},s=function(x,T){var M=(0,t.useBackend)(T),O=M.act;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,translucent:!0,lineHeight:3,icon:"download",content:"Backup to Disk",disabled:!0})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:[(0,e.createComponentVNode)(2,o.Button,{fluid:!0,translucent:!0,lineHeight:3,icon:"upload",content:"Upload from Disk",my:"0.5rem",disabled:!0})," "]}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button.Confirm,{fluid:!0,translucent:!0,lineHeight:3,icon:"trash",content:"Delete All Medical Records",onClick:function(){function D(){return O("del_all_med_records")}return D}()})})]})})},i=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.medical,P=D.printing;return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{height:"235px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"General Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:P?"spinner":"print",disabled:P,iconSpin:!!P,content:"Print Record",ml:"0.5rem",onClick:function(){function R(){return O("print_record")}return R}()}),children:(0,e.createComponentVNode)(2,h)})}),!E||!E.fields?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Medical Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"pen",content:"Create New Record",onClick:function(){function R(){return O("new_med_record")}return R}()}),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"Medical records lost!"]})})})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Medical Data",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",disabled:!!E.empty,content:"Delete Medical Record",onClick:function(){function R(){return O("del_med_record")}return R}()}),children:(0,e.createComponentVNode)(2,C)})}),(0,e.createComponentVNode)(2,v)],4)],0)},h=function(x,T){var M=(0,t.useBackend)(T),O=M.data,D=O.general;return!D||!D.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"General records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:D.fields.map(function(E,P){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:E.field,children:[(0,e.createComponentVNode)(2,o.Box,{height:"20px",inline:!0,children:E.value}),!!E.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",onClick:function(){function R(){return c(T,E)}return R}()})]},P)})})}),!!D.has_photos&&D.photos.map(function(E,P){return(0,e.createComponentVNode)(2,o.Stack.Item,{inline:!0,textAlign:"center",color:"label",ml:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:E,style:{width:"96px","margin-top":"2.5rem","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createVNode)(1,"br"),"Photo #",P+1]},P)})]})},C=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.medical;return!E||!E.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"Medical records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:E.fields.map(function(P,R){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:P.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(P.value),!!P.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:P.line_break?"1rem":"initial",onClick:function(){function j(){return c(T,P)}return j}()})]},R)})})})})},v=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.medical;return(0,e.createComponentVNode)(2,o.Stack.Item,{height:"150px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Comments/Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"comment",content:"Add Entry",onClick:function(){function P(){return(0,f.modalOpen)(T,"add_comment")}return P}()}),children:E.comments.length===0?(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No comments found."}):E.comments.map(function(P,R){return(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:P.header}),(0,e.createVNode)(1,"br"),P.text,(0,e.createComponentVNode)(2,o.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){function j(){return O("del_comment",{del_comment:R+1})}return j}()})]},R)})})})},p=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.virus,P=(0,t.useLocalState)(T,"searchText",""),R=P[0],j=P[1],F=(0,t.useLocalState)(T,"sortId2","name"),W=F[0],z=F[1],K=(0,t.useLocalState)(T,"sortOrder2",!0),G=K[0],J=K[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{ml:"0.25rem",fluid:!0,placeholder:"Search by Name, Max Stages, or Severity",onInput:function(){function Q(ue,ie){return j(ie)}return Q}()})}),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,B,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,B,{id:"max_stages",children:"Max Stages"}),(0,e.createComponentVNode)(2,B,{id:"severity",children:"Severity"})]}),E.filter((0,a.createSearch)(R,function(Q){return Q.name+"|"+Q.max_stages+"|"+Q.severity})).sort(function(Q,ue){var ie=G?1:-1;return Q[W].localeCompare(ue[W])*ie}).map(function(Q){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listVirus--"+Q.severity,onClick:function(){function ue(){return O("vir",{vir:Q.D})}return ue}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"virus"})," ",Q.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:Q.max_stages}),(0,e.createComponentVNode)(2,o.Table.Cell,{color:g[Q.severity],children:Q.severity})]},Q.id)})]})})})})],4)},N=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.goals;return(0,e.createComponentVNode)(2,o.Section,{title:"Virology Goals",fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:E.length!==0&&E.map(function(P){return(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:P.name,children:[(0,e.createComponentVNode)(2,o.Table,{children:(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:(0,e.createComponentVNode)(2,o.Table.Cell,{textAlign:"center",children:(0,e.createComponentVNode)(2,o.ProgressBar,{value:P.delivered,minValue:0,maxValue:P.deliverygoal,ranges:{good:[P.deliverygoal*.5,1/0],average:[P.deliverygoal*.25,P.deliverygoal*.5],bad:[-1/0,P.deliverygoal*.25]},children:[P.delivered," / ",P.deliverygoal," Units"]})})})}),(0,e.createComponentVNode)(2,o.Box,{children:P.report})]})},P.id)})||(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Box,{textAlign:"center",children:"No Goals Detected"})})})})},V=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.medbots;return E.length===0?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"robot",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"There are no Medibots."]})})})}):(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"MedicalRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Area"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Chemicals"})]}),E.map(function(P){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"MedicalRecords__listMedbot--"+P.on,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"medical"})," ",P.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[P.area||"Unknown"," (",P.x,", ",P.y,")"]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.on?(0,e.createComponentVNode)(2,o.Box,{color:"good",children:"Online"}):(0,e.createComponentVNode)(2,o.Box,{color:"average",children:"Offline"})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:P.use_beaker?"Reservoir: "+P.total_volume+"/"+P.maximum_volume:"Using internal synthesizer"})]},P.id)})]})})})},y=function(x,T){var M=(0,t.useLocalState)(T,"sortId","name"),O=M[0],D=M[1],E=(0,t.useLocalState)(T,"sortOrder",!0),P=E[0],R=E[1],j=x.id,F=x.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:O!==j&&"transparent",onClick:function(){function W(){O===j?R(!P):(D(j),R(!0))}return W}(),children:[F,O===j&&(0,e.createComponentVNode)(2,o.Icon,{name:P?"sort-up":"sort-down",ml:"0.25rem;"})]})})},B=function(x,T){var M=(0,t.useLocalState)(T,"sortId2","name"),O=M[0],D=M[1],E=(0,t.useLocalState)(T,"sortOrder2",!0),P=E[0],R=E[1],j=x.id,F=x.children;return(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,color:O!==j&&"transparent",onClick:function(){function W(){O===j?R(!P):(D(j),R(!0))}return W}(),children:[F,O===j&&(0,e.createComponentVNode)(2,o.Icon,{name:P?"sort-up":"sort-down",ml:"0.25rem;"})]})})},L=function(x,T){var M=(0,t.useBackend)(T),O=M.act,D=M.data,E=D.screen,P=D.general;return(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:E===2,onClick:function(){function R(){O("screen",{screen:2})}return R}(),children:"List Records"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"database",selected:E===5,onClick:function(){function R(){O("screen",{screen:5})}return R}(),children:"Virus Database"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"vial",selected:E===6,onClick:function(){function R(){O("screen",{screen:6})}return R}(),children:"Virology Goals"}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"plus-square",selected:E===7,onClick:function(){function R(){return O("screen",{screen:7})}return R}(),children:"Medibot Tracking"}),E===3&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"wrench",selected:E===3,children:"Record Maintenance"}),E===4&&P&&!P.empty&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"file",selected:E===4,children:["Record: ",P.fields[0].value]})]})})};(0,f.modalRegisterBodyOverride)("virus",m)},54989:function(A,r,n){"use strict";r.__esModule=!0,r.MerchVendor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=g.product,s=g.productImage,i=g.productCategory,h=l.user_money;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+s,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}})}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:u.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{disabled:u.price>h,icon:"shopping-cart",content:u.price,textAlign:"left",onClick:function(){function C(){return m("purchase",{name:u.name,category:i})}return C}()})})]})},b=function(g,d){var c=(0,a.useBackend)(d),m=c.data,l=(0,a.useLocalState)(d,"tabIndex",1),u=l[0],s=m.products,i=m.imagelist,h=["apparel","toy","decoration"];return(0,e.createComponentVNode)(2,t.Table,{children:s[h[u]].map(function(C){return(0,e.createComponentVNode)(2,f,{product:C,productImage:i[C.path],productCategory:h[u]},C.name)})})},S=r.MerchVendor=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.user_cash,s=l.inserted_cash;return(0,e.createComponentVNode)(2,o.Window,{title:"Merch Computer",width:450,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"User",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{color:"light-grey",inline:!0,mr:"0.5rem",children:["There is ",(0,e.createVNode)(1,"b",null,s,0)," credits inserted."]}),(0,e.createComponentVNode)(2,t.Button,{disabled:!s,icon:"money-bill-wave-alt",content:"Dispense Change",textAlign:"left",onClick:function(){function i(){return m("change")}return i}()})],4),children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:["Doing your job and not getting any recognition at work? Well, welcome to the merch shop! Here, you can buy cool things in exchange for money you earn when you have completed your Job Objectives.",u!==null&&(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:["Your balance is ",(0,e.createVNode)(1,"b",null,[u||0,(0,e.createTextVNode)(" credits")],0),"."]})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Products",children:[(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,b)]})})]})})})}return k}(),I=function(g,d){var c=(0,a.useBackend)(d),m=c.data,l=(0,a.useLocalState)(d,"tabIndex",1),u=l[0],s=l[1],i=m.login_state;return(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"dice",selected:u===1,onClick:function(){function h(){return s(1)}return h}(),children:"Toys"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"flag",selected:u===2,onClick:function(){function h(){return s(2)}return h}(),children:"Decorations"})]})}},87684:function(A,r,n){"use strict";r.__esModule=!0,r.MiningVendor=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=["title","items","gridLayout"];function S(l,u){if(l==null)return{};var s={};for(var i in l)if({}.hasOwnProperty.call(l,i)){if(u.includes(i))continue;s[i]=l[i]}return s}var I={Alphabetical:function(){function l(u,s){return u-s}return l}(),Availability:function(){function l(u,s){return-(u.affordable-s.affordable)}return l}(),Price:function(){function l(u,s){return u.price-s.price}return l}()},k=r.MiningVendor=function(){function l(u,s){var i=(0,t.useLocalState)(s,"gridLayout",!1),h=i[0],C=i[1];return(0,e.createComponentVNode)(2,f.Window,{width:400,height:525,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,g),(0,e.createComponentVNode)(2,c,{gridLayout:h,setGridLayout:C}),(0,e.createComponentVNode)(2,d,{gridLayout:h})]})})})}return l}(),g=function(u,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=C.has_id,p=C.id;return(0,e.createComponentVNode)(2,o.NoticeBox,{success:v,children:v?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Box,{inline:!0,verticalAlign:"middle",style:{float:"left"},children:["Logged in as ",p.name,".",(0,e.createVNode)(1,"br"),"You have ",p.points.toLocaleString("en-US")," points."]}),(0,e.createComponentVNode)(2,o.Button,{icon:"eject",content:"Eject ID",style:{float:"right"},onClick:function(){function N(){return h("logoff")}return N}()}),(0,e.createComponentVNode)(2,o.Box,{style:{clear:"both"}})],4):"Please insert an ID in order to make purchases."})},d=function(u,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=C.has_id,p=C.id,N=C.items,V=u.gridLayout,y=(0,t.useLocalState)(s,"search",""),B=y[0],L=y[1],w=(0,t.useLocalState)(s,"sort","Alphabetical"),x=w[0],T=w[1],M=(0,t.useLocalState)(s,"descending",!1),O=M[0],D=M[1],E=(0,a.createSearch)(B,function(j){return j[0]}),P=!1,R=Object.entries(N).map(function(j,F){var W=Object.entries(j[1]).filter(E).map(function(z){return z[1].affordable=v&&p.points>=z[1].price,z[1]}).sort(I[x]);if(W.length!==0)return O&&(W=W.reverse()),P=!0,(0,e.createComponentVNode)(2,m,{title:j[0],items:W,gridLayout:V},j[0])});return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:P?R:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No items matching your criteria was found!"})})})},c=function(u,s){var i=u.gridLayout,h=u.setGridLayout,C=(0,t.useLocalState)(s,"search",""),v=C[0],p=C[1],N=(0,t.useLocalState)(s,"sort",""),V=N[0],y=N[1],B=(0,t.useLocalState)(s,"descending",!1),L=B[0],w=B[1];return(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{mt:.2,placeholder:"Search by item name..",width:"100%",onInput:function(){function x(T,M){return p(M)}return x}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:i?"list":"table-cells-large",height:1.75,tooltip:i?"Toggle List Layout":"Toggle Grid Layout",tooltipPosition:"bottom-start",onClick:function(){function x(){return h(!i)}return x}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"30%",children:(0,e.createComponentVNode)(2,o.Dropdown,{selected:"Alphabetical",options:Object.keys(I),width:"100%",onSelected:function(){function x(T){return y(T)}return x}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{icon:L?"arrow-down":"arrow-up",height:1.75,tooltip:L?"Descending order":"Ascending order",tooltipPosition:"bottom-start",onClick:function(){function x(){return w(!L)}return x}()})})]})})},m=function(u,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=u.title,p=u.items,N=u.gridLayout,V=S(u,b);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Collapsible,Object.assign({open:!0,title:v},V,{children:p.map(function(y){return N?(0,e.createComponentVNode)(2,o.ImageButton,{mb:.5,imageSize:57.5,dmIcon:y.icon,dmIconState:y.icon_state,disabled:!C.has_id||C.id.points0?'\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043F\u043E\u0438\u0441\u043A\u0430 "'+u+'"':"\u0412\u0441\u0435 \u043C\u043E\u0434\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 - "+m.length,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:m.filter(function(h){return h.name&&(u.length>0?h.name.toLowerCase().includes(u.toLowerCase())||h.desc.toLowerCase().includes(u.toLowerCase())||h.author.toLowerCase().includes(u.toLowerCase()):!0)}).map(function(h){return(0,e.createComponentVNode)(2,o.Collapsible,{title:h.name,children:[(0,e.createComponentVNode)(2,o.Section,{title:"\u0410\u0432\u0442\u043E\u0440\u044B",children:h.author}),(0,e.createComponentVNode)(2,o.Section,{title:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",children:h.desc})]},h.name)})})})})})],4)}return S}()},59783:function(A,r,n){"use strict";r.__esModule=!0,r.NTRecruiter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.NTRecruiter=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.gamestatus,m=d.cand_name,l=d.cand_birth,u=d.cand_age,s=d.cand_species,i=d.cand_planet,h=d.cand_job,C=d.cand_records,v=d.cand_curriculum,p=d.total_curriculums,N=d.reason;if(c===0)return(0,e.createComponentVNode)(2,o.Window,{width:400,height:550,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{pt:"45%",fontSize:"31px",color:"white",textAlign:"center",bold:!0,children:"Nanotrasen Recruiter Simulator"}),(0,e.createComponentVNode)(2,t.Stack.Item,{pt:"1%",fontSize:"16px",textAlign:"center",color:"label",children:"Work as the Nanotrasen recruiter and avoid hiring incompetent employees!"})]})}),(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Button,{textAlign:"center",lineHeight:2,fluid:!0,icon:"play",color:"green",content:"Begin Shift",onClick:function(){function V(){return g("start_game")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{textAlign:"center",lineHeight:2,fluid:!0,icon:"info",color:"blue",content:"Guide",onClick:function(){function V(){return g("instructions")}return V}()})]})]})})});if(c===1)return(0,e.createComponentVNode)(2,o.Window,{width:400,height:550,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,color:"grey",title:"Guide",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-left",content:"Main Menu",onClick:function(){function V(){return g("back_to_menu")}return V}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"1#",color:"silver",children:["To win this game you must hire/dismiss ",(0,e.createVNode)(1,"b",null,p,0)," candidates, one wrongly made choice leads to a game over."]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"2#",color:"silver",children:"Make the right choice by truly putting yourself into the skin of a recruiter working for Nanotrasen!"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"3#",color:"silver",children:[(0,e.createVNode)(1,"b",null,"Unique",16)," characters may appear, pay attention to them!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"4#",color:"silver",children:"Make sure to pay attention to details like age, planet names, the requested job and even the species of the candidate!"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"5#",color:"silver",children:["Not every employment record is good, remember to make your choice based on the ",(0,e.createVNode)(1,"b",null,"company morals",16),"!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"6#",color:"silver",children:"The planet of origin has no restriction on the species of the candidate, don't think too much when you see humans that came from Boron!"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"7#",color:"silver",children:["Pay attention to ",(0,e.createVNode)(1,"b",null,"typos",16)," and ",(0,e.createVNode)(1,"b",null,"missing words",16),", these do make for bad applications!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"8#",color:"silver",children:["Remember, you are recruiting people to work at one of the many NT stations, so no hiring for"," ",(0,e.createVNode)(1,"b",null,"jobs",16)," that they ",(0,e.createVNode)(1,"b",null,"don't offer",16),"!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"9#",color:"silver",children:["Keep your eyes open for incompatible ",(0,e.createVNode)(1,"b",null,"naming schemes",16),", no company wants a Vox named Joe!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"10#",color:"silver",children:["For some unknown reason ",(0,e.createVNode)(1,"b",null,"clowns",16)," are never denied by the company, no matter what."]})]})})})})});if(c===2)return(0,e.createComponentVNode)(2,o.Window,{width:400,height:550,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,color:"label",fontSize:"14px",title:"Employment Applications",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"24px",textAlign:"center",color:"silver",bold:!0,children:["Candidate Number #",v]}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",color:"silver",children:(0,e.createVNode)(1,"b",null,m,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Species",color:"silver",children:(0,e.createVNode)(1,"b",null,s,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Age",color:"silver",children:(0,e.createVNode)(1,"b",null,u,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Date of Birth",color:"silver",children:(0,e.createVNode)(1,"b",null,l,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Planet of Origin",color:"silver",children:(0,e.createVNode)(1,"b",null,i,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Requested Job",color:"silver",children:(0,e.createVNode)(1,"b",null,h,0)}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Employment Records",color:"silver",children:(0,e.createVNode)(1,"b",null,C,0)})]})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Stamp the application!",color:"grey",textAlign:"center",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"red",content:"Dismiss",fontSize:"150%",icon:"ban",lineHeight:4.5,onClick:function(){function V(){return g("dismiss")}return V}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"green",content:"Hire",fontSize:"150%",icon:"arrow-circle-up",lineHeight:4.5,onClick:function(){function V(){return g("hire")}return V}()})})]})})})]})})});if(c===3)return(0,e.createComponentVNode)(2,o.Window,{width:400,height:550,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{pt:"40%",fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,color:"red",fontSize:"50px",textAlign:"center",children:"Game Over"}),(0,e.createComponentVNode)(2,t.Stack.Item,{fontSize:"15px",color:"label",textAlign:"center",children:N}),(0,e.createComponentVNode)(2,t.Stack.Item,{color:"blue",fontSize:"20px",textAlign:"center",pt:"10px",children:["FINAL SCORE: ",v-1,"/",p]})]})}),(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Button,{lineHeight:4,fluid:!0,icon:"arrow-left",content:"Main Menu",onClick:function(){function V(){return g("back_to_menu")}return V}()})})]})})})}return b}()},64713:function(A,r,n){"use strict";r.__esModule=!0,r.Newscaster=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(76910),b=n(98595),S=n(3939),I=n(22091),k=["icon","iconSpin","selected","security","onClick","title","children"],g=["name"];function d(B,L){if(B==null)return{};var w={};for(var x in B)if({}.hasOwnProperty.call(B,x)){if(L.includes(x))continue;w[x]=B[x]}return w}var c=128,m=["security","engineering","medical","science","service","supply"],l={security:{title:"Security",fluff_text:"Help keep the crew safe"},engineering:{title:"Engineering",fluff_text:"Ensure the station runs smoothly"},medical:{title:"Medical",fluff_text:"Practice medicine and save lives"},science:{title:"Science",fluff_text:"Develop new technologies"},service:{title:"Service",fluff_text:"Provide amenities to the crew"},supply:{title:"Supply",fluff_text:"Keep the station supplied"}},u=r.Newscaster=function(){function B(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=M.is_security,D=M.is_admin,E=M.is_silent,P=M.is_printing,R=M.screen,j=M.channels,F=M.channel_idx,W=F===void 0?-1:F,z=(0,t.useLocalState)(w,"menuOpen",!1),K=z[0],G=z[1],J=(0,t.useLocalState)(w,"viewingPhoto",""),Q=J[0],ue=J[1],ie=(0,t.useLocalState)(w,"censorMode",!1),pe=ie[0],te=ie[1],q;R===0||R===2?q=(0,e.createComponentVNode)(2,i):R===1&&(q=(0,e.createComponentVNode)(2,h));var ne=j.reduce(function(le,ee){return le+ee.unread},0);return(0,e.createComponentVNode)(2,b.Window,{theme:O&&"security",width:800,height:600,children:[Q?(0,e.createComponentVNode)(2,p):(0,e.createComponentVNode)(2,S.ComplexModal,{maxWidth:window.innerWidth/1.5+"px",maxHeight:window.innerHeight/1.5+"px"}),(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Section,{fill:!0,className:(0,a.classes)(["Newscaster__menu",K&&"Newscaster__menu--open"]),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,s,{icon:"bars",title:"Toggle Menu",onClick:function(){function le(){return G(!K)}return le}()}),(0,e.createComponentVNode)(2,s,{icon:"newspaper",title:"Headlines",selected:R===0,onClick:function(){function le(){return T("headlines")}return le}(),children:ne>0&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--unread",children:ne>=10?"9+":ne})}),(0,e.createComponentVNode)(2,s,{icon:"briefcase",title:"Job Openings",selected:R===1,onClick:function(){function le(){return T("jobs")}return le}()}),(0,e.createComponentVNode)(2,o.Divider)]}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:j.map(function(le){return(0,e.createComponentVNode)(2,s,{icon:le.icon,title:le.name,selected:R===2&&j[W-1]===le,onClick:function(){function ee(){return T("channel",{uid:le.uid})}return ee}(),children:le.unread>0&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--unread",children:le.unread>=10?"9+":le.unread})},le)})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:[(0,e.createComponentVNode)(2,o.Divider),(!!O||!!D)&&(0,e.createFragment)([(0,e.createComponentVNode)(2,s,{security:!0,icon:"exclamation-circle",title:"Edit Wanted Notice",mb:"0.5rem",onClick:function(){function le(){return(0,S.modalOpen)(w,"wanted_notice")}return le}()}),(0,e.createComponentVNode)(2,s,{security:!0,icon:pe?"minus-square":"minus-square-o",title:"Censor Mode: "+(pe?"On":"Off"),mb:"0.5rem",onClick:function(){function le(){return te(!pe)}return le}()}),(0,e.createComponentVNode)(2,o.Divider)],4),(0,e.createComponentVNode)(2,s,{icon:"pen-alt",title:"New Story",mb:"0.5rem",onClick:function(){function le(){return(0,S.modalOpen)(w,"create_story")}return le}()}),(0,e.createComponentVNode)(2,s,{icon:"plus-circle",title:"New Channel",onClick:function(){function le(){return(0,S.modalOpen)(w,"create_channel")}return le}()}),(0,e.createComponentVNode)(2,o.Divider),(0,e.createComponentVNode)(2,s,{icon:P?"spinner":"print",iconSpin:P,title:P?"Printing...":"Print Newspaper",onClick:function(){function le(){return T("print_newspaper")}return le}()}),(0,e.createComponentVNode)(2,s,{icon:E?"volume-mute":"volume-up",title:"Mute: "+(E?"On":"Off"),onClick:function(){function le(){return T("toggle_mute")}return le}()})]})]})}),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,width:"100%",children:[(0,e.createComponentVNode)(2,I.TemporaryNotice),q]})]})})]})}return B}(),s=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=L.icon,O=M===void 0?"":M,D=L.iconSpin,E=L.selected,P=E===void 0?!1:E,R=L.security,j=R===void 0?!1:R,F=L.onClick,W=L.title,z=L.children,K=d(L,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({className:(0,a.classes)(["Newscaster__menuButton",P&&"Newscaster__menuButton--selected",j&&"Newscaster__menuButton--security"]),onClick:F},K,{children:[P&&(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--selectedBar"}),(0,e.createComponentVNode)(2,o.Icon,{name:O,spin:D,size:"2"}),(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__menuButton--title",children:W}),z]})))},i=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=M.screen,D=M.is_admin,E=M.channel_idx,P=M.channel_can_manage,R=M.channels,j=M.stories,F=M.wanted,W=(0,t.useLocalState)(w,"fullStories",[]),z=W[0],K=W[1],G=(0,t.useLocalState)(w,"censorMode",!1),J=G[0],Q=G[1],ue=O===2&&E>-1?R[E-1]:null;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[!!F&&(0,e.createComponentVNode)(2,C,{story:F,wanted:!0}),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:ue?ue.icon:"newspaper",mr:"0.5rem"}),ue?ue.name:"Headlines"],0),children:j.length>0?j.slice().reverse().map(function(ie){return!z.includes(ie.uid)&&ie.body.length+3>c?Object.assign({},ie,{body_short:ie.body.substr(0,c-4)+"..."}):ie}).map(function(ie,pe){return(0,e.createComponentVNode)(2,C,{story:ie},pe)}):(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__emptyNotice",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"times",size:"3"}),(0,e.createVNode)(1,"br"),"There are no stories at this time."]})}),!!ue&&(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,height:"40%",title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"info-circle",mr:"0.5rem"}),(0,e.createTextVNode)("About")],4),buttons:(0,e.createFragment)([J&&(0,e.createComponentVNode)(2,o.Button,{disabled:!!ue.admin&&!D,selected:ue.censored,icon:ue.censored?"comment-slash":"comment",content:ue.censored?"Uncensor Channel":"Censor Channel",mr:"0.5rem",onClick:function(){function ie(){return T("censor_channel",{uid:ue.uid})}return ie}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!P,icon:"cog",content:"Manage",onClick:function(){function ie(){return(0,S.modalOpen)(w,"manage_channel",{uid:ue.uid})}return ie}()})],0),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description",children:ue.description||"N/A"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",children:ue.author||"N/A"}),!!D&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Ckey",children:ue.author_ckey}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Public",children:ue.public?"Yes":"No"}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Total Views",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"eye",mr:"0.5rem"}),j.reduce(function(ie,pe){return ie+pe.view_count},0).toLocaleString()]})]})})]})},h=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=M.jobs,D=M.wanted,E=Object.entries(O).reduce(function(P,R){var j=R[0],F=R[1];return P+F.length},0);return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[!!D&&(0,e.createComponentVNode)(2,C,{story:D,wanted:!0}),(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"briefcase",mr:"0.5rem"}),(0,e.createTextVNode)("Job Openings")],4),buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",color:"label",children:"Work for a better future at Nanotrasen"}),children:E>0?m.map(function(P){return Object.assign({},l[P],{id:P,jobs:O[P]})}).filter(function(P){return!!P&&P.jobs.length>0}).map(function(P){return(0,e.createComponentVNode)(2,o.Section,{className:(0,a.classes)(["Newscaster__jobCategory","Newscaster__jobCategory--"+P.id]),title:P.title,buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",color:"label",children:P.fluff_text}),children:P.jobs.map(function(R){return(0,e.createComponentVNode)(2,o.Box,{class:(0,a.classes)(["Newscaster__jobOpening",!!R.is_command&&"Newscaster__jobOpening--command"]),children:["\u2022 ",R.title]},R.title)})},P.id)}):(0,e.createComponentVNode)(2,o.Box,{className:"Newscaster__emptyNotice",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"times",size:"3"}),(0,e.createVNode)(1,"br"),"There are no openings at this time."]})}),(0,e.createComponentVNode)(2,o.Section,{height:"17%",children:["Interested in serving Nanotrasen?",(0,e.createVNode)(1,"br"),"Sign up for any of the above position now at the ",(0,e.createVNode)(1,"b",null,"Head of Personnel's Office!",16),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.Box,{as:"small",color:"label",children:"By signing up for a job at Nanotrasen, you agree to transfer your soul to the loyalty department of the omnipresent and helpful watcher of humanity."})]})]})},C=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=L.story,D=L.wanted,E=D===void 0?!1:D,P=M.is_admin,R=(0,t.useLocalState)(w,"fullStories",[]),j=R[0],F=R[1],W=(0,t.useLocalState)(w,"censorMode",!1),z=W[0],K=W[1];return(0,e.createComponentVNode)(2,o.Section,{className:(0,a.classes)(["Newscaster__story",E&&"Newscaster__story--wanted"]),title:(0,e.createFragment)([E&&(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-circle",mr:"0.5rem"}),O.censor_flags&2&&"[REDACTED]"||O.title||"News from "+O.author],0),buttons:(0,e.createComponentVNode)(2,o.Box,{mt:"0.25rem",children:(0,e.createComponentVNode)(2,o.Box,{color:"label",children:[!E&&z&&(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:(0,e.createComponentVNode)(2,o.Button,{enabled:O.censor_flags&2,icon:O.censor_flags&2?"comment-slash":"comment",content:O.censor_flags&2?"Uncensor":"Censor",mr:"0.5rem",mt:"-0.25rem",onClick:function(){function G(){return T("censor_story",{uid:O.uid})}return G}()})}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",O.author," |\xA0",!!P&&(0,e.createFragment)([(0,e.createTextVNode)("ckey: "),O.author_ckey,(0,e.createTextVNode)(" |\xA0")],0),!E&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Icon,{name:"eye"}),(0,e.createTextVNode)(" "),O.view_count.toLocaleString(),(0,e.createTextVNode)(" |\xA0")],0),(0,e.createComponentVNode)(2,o.Icon,{name:"clock"})," ",(0,f.timeAgo)(O.publish_time,M.world_time)]})]})}),children:(0,e.createComponentVNode)(2,o.Box,{children:O.censor_flags&2?"[REDACTED]":(0,e.createFragment)([!!O.has_photo&&(0,e.createComponentVNode)(2,v,{name:"story_photo_"+O.uid+".png",float:"right",ml:"0.5rem"}),(O.body_short||O.body).split("\n").map(function(G,J){return(0,e.createComponentVNode)(2,o.Box,{children:G||(0,e.createVNode)(1,"br")},J)}),O.body_short&&(0,e.createComponentVNode)(2,o.Button,{content:"Read more..",mt:"0.5rem",onClick:function(){function G(){return F([].concat(j,[O.uid]))}return G}()}),(0,e.createComponentVNode)(2,o.Box,{clear:"right"})],0)})})},v=function(L,w){var x=L.name,T=d(L,g),M=(0,t.useLocalState)(w,"viewingPhoto",""),O=M[0],D=M[1];return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Box,Object.assign({as:"img",className:"Newscaster__photo",src:x,onClick:function(){function E(){return D(x)}return E}()},T)))},p=function(L,w){var x=(0,t.useLocalState)(w,"viewingPhoto",""),T=x[0],M=x[1];return(0,e.createComponentVNode)(2,o.Modal,{className:"Newscaster__photoZoom",children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",src:T}),(0,e.createComponentVNode)(2,o.Button,{icon:"times",content:"Close",color:"grey",mt:"1rem",onClick:function(){function O(){return M("")}return O}()})]})},N=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=!!L.args.uid&&M.channels.filter(function(oe){return oe.uid===L.args.uid}).pop();if(L.id==="manage_channel"&&!O){(0,S.modalClose)(w);return}var D=L.id==="manage_channel",E=!!L.args.is_admin,P=L.args.scanned_user,R=(0,t.useLocalState)(w,"author",(O==null?void 0:O.author)||P||"Unknown"),j=R[0],F=R[1],W=(0,t.useLocalState)(w,"name",(O==null?void 0:O.name)||""),z=W[0],K=W[1],G=(0,t.useLocalState)(w,"description",(O==null?void 0:O.description)||""),J=G[0],Q=G[1],ue=(0,t.useLocalState)(w,"icon",(O==null?void 0:O.icon)||"newspaper"),ie=ue[0],pe=ue[1],te=(0,t.useLocalState)(w,"isPublic",D?!!(O!=null&&O.public):!1),q=te[0],ne=te[1],le=(0,t.useLocalState)(w,"adminLocked",(O==null?void 0:O.admin)===1||!1),ee=le[0],re=le[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:D?"Manage "+O.name:"Create New Channel",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!E,width:"100%",value:j,onInput:function(){function oe(fe,me){return F(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",placeholder:"50 characters max.",maxLength:"50",value:z,onInput:function(){function oe(fe,me){return K(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description (optional)",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{multiline:!0,width:"100%",placeholder:"128 characters max.",maxLength:"128",value:J,onInput:function(){function oe(fe,me){return Q(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Icon",children:[(0,e.createComponentVNode)(2,o.Input,{disabled:!E,value:ie,width:"35%",mr:"0.5rem",onInput:function(){function oe(fe,me){return pe(me)}return oe}()}),(0,e.createComponentVNode)(2,o.Icon,{name:ie,size:"2",verticalAlign:"middle",mr:"0.5rem"})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Accept Public Stories?",children:(0,e.createComponentVNode)(2,o.Button,{selected:q,icon:q?"toggle-on":"toggle-off",content:q?"Yes":"No",onClick:function(){function oe(){return ne(!q)}return oe}()})}),E&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:ee,icon:ee?"lock":"lock-open",content:ee?"On":"Off",tooltip:"Locking this channel will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function oe(){return re(!ee)}return oe}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:j.trim().length===0||z.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function oe(){(0,S.modalAnswer)(w,L.id,"",{author:j,name:z.substr(0,49),description:J.substr(0,128),icon:ie,public:q?1:0,admin_locked:ee?1:0})}return oe}()})]})},V=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=M.photo,D=M.channels,E=M.channel_idx,P=E===void 0?-1:E,R=!!L.args.is_admin,j=L.args.scanned_user,F=D.slice().sort(function(oe,fe){if(P<0)return 0;var me=D[P-1];if(me.uid===oe.uid)return-1;if(me.uid===fe.uid)return 1}).filter(function(oe){return R||!oe.frozen&&(oe.author===j||!!oe.public)}),W=(0,t.useLocalState)(w,"author",j||"Unknown"),z=W[0],K=W[1],G=(0,t.useLocalState)(w,"channel",F.length>0?F[0].name:""),J=G[0],Q=G[1],ue=(0,t.useLocalState)(w,"title",""),ie=ue[0],pe=ue[1],te=(0,t.useLocalState)(w,"body",""),q=te[0],ne=te[1],le=(0,t.useLocalState)(w,"adminLocked",!1),ee=le[0],re=le[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:"Create New Story",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Author",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!R,width:"100%",value:z,onInput:function(){function oe(fe,me){return K(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Channel",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Dropdown,{selected:J,options:F.map(function(oe){return oe.name}),mb:"0",width:"100%",onSelected:function(){function oe(fe){return Q(fe)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Divider),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",placeholder:"128 characters max.",maxLength:"128",value:ie,onInput:function(){function oe(fe,me){return pe(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Story Text",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{fluid:!0,multiline:!0,placeholder:"1024 characters max.",maxLength:"1024",rows:"8",width:"100%",value:q,onInput:function(){function oe(fe,me){return ne(me)}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{icon:"image",selected:O,content:O?"Eject: "+O.name:"Insert Photo",tooltip:!O&&"Attach a photo to this story by holding the photograph in your hand.",onClick:function(){function oe(){return T(O?"eject_photo":"attach_photo")}return oe}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Preview",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Section,{noTopPadding:!0,title:ie,maxHeight:"13.5rem",overflow:"auto",children:(0,e.createComponentVNode)(2,o.Box,{mt:"0.5rem",children:[!!O&&(0,e.createComponentVNode)(2,v,{name:"inserted_photo_"+O.uid+".png",float:"right"}),q.split("\n").map(function(oe,fe){return(0,e.createComponentVNode)(2,o.Box,{children:oe||(0,e.createVNode)(1,"br")},fe)}),(0,e.createComponentVNode)(2,o.Box,{clear:"right"})]})})}),R&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:ee,icon:ee?"lock":"lock-open",content:ee?"On":"Off",tooltip:"Locking this story will make it censorable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function oe(){return re(!ee)}return oe}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:z.trim().length===0||J.trim().length===0||ie.trim().length===0||q.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function oe(){(0,S.modalAnswer)(w,"create_story","",{author:z,channel:J,title:ie.substr(0,127),body:q.substr(0,1023),admin_locked:ee?1:0})}return oe}()})]})},y=function(L,w){var x=(0,t.useBackend)(w),T=x.act,M=x.data,O=M.photo,D=M.wanted,E=!!L.args.is_admin,P=L.args.scanned_user,R=(0,t.useLocalState)(w,"author",(D==null?void 0:D.author)||P||"Unknown"),j=R[0],F=R[1],W=(0,t.useLocalState)(w,"name",(D==null?void 0:D.title.substr(8))||""),z=W[0],K=W[1],G=(0,t.useLocalState)(w,"description",(D==null?void 0:D.body)||""),J=G[0],Q=G[1],ue=(0,t.useLocalState)(w,"adminLocked",(D==null?void 0:D.admin_locked)===1||!1),ie=ue[0],pe=ue[1];return(0,e.createComponentVNode)(2,o.Section,{m:"-1rem",pb:"1.5rem",title:"Manage Wanted Notice",children:[(0,e.createComponentVNode)(2,o.Box,{mx:"0.5rem",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Authority",children:(0,e.createComponentVNode)(2,o.Input,{disabled:!E,width:"100%",value:j,onInput:function(){function te(q,ne){return F(ne)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:(0,e.createComponentVNode)(2,o.Input,{width:"100%",value:z,maxLength:"128",onInput:function(){function te(q,ne){return K(ne)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Description",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Input,{multiline:!0,width:"100%",value:J,maxLength:"512",rows:"4",onInput:function(){function te(q,ne){return Q(ne)}return te}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Photo (optional)",verticalAlign:"top",children:[(0,e.createComponentVNode)(2,o.Button,{icon:"image",selected:O,content:O?"Eject: "+O.name:"Insert Photo",tooltip:!O&&"Attach a photo to this wanted notice by holding the photograph in your hand.",tooltipPosition:"top",onClick:function(){function te(){return T(O?"eject_photo":"attach_photo")}return te}()}),!!O&&(0,e.createComponentVNode)(2,v,{name:"inserted_photo_"+O.uid+".png",float:"right"})]}),E&&(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"CentComm Lock",verticalAlign:"top",children:(0,e.createComponentVNode)(2,o.Button,{selected:ie,icon:ie?"lock":"lock-open",content:ie?"On":"Off",tooltip:"Locking this wanted notice will make it editable by nobody but CentComm officers.",tooltipPosition:"top",onClick:function(){function te(){return pe(!ie)}return te}()})})]})}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:!D,icon:"eraser",color:"danger",content:"Clear",position:"absolute",right:"7.25rem",bottom:"-0.75rem",onClick:function(){function te(){T("clear_wanted_notice"),(0,S.modalClose)(w)}return te}()}),(0,e.createComponentVNode)(2,o.Button.Confirm,{disabled:j.trim().length===0||z.trim().length===0||J.trim().length===0,icon:"check",color:"good",content:"Submit",position:"absolute",right:"1rem",bottom:"-0.75rem",onClick:function(){function te(){(0,S.modalAnswer)(w,L.id,"",{author:j,name:z.substr(0,127),description:J.substr(0,511),admin_locked:ie?1:0})}return te}()})]})};(0,S.modalRegisterBodyOverride)("create_channel",N),(0,S.modalRegisterBodyOverride)("manage_channel",N),(0,S.modalRegisterBodyOverride)("create_story",V),(0,S.modalRegisterBodyOverride)("wanted_notice",y)},48286:function(A,r,n){"use strict";r.__esModule=!0,r.Noticeboard=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=r.Noticeboard=function(){function S(I,k){var g=(0,t.useBackend)(k),d=g.act,c=g.data,m=c.papers;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:300,theme:"noticeboard",children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:m.map(function(l){return(0,e.createComponentVNode)(2,o.Stack.Item,{align:"center",width:"22.45%",height:"85%",onClick:function(){function u(){return d("interact",{paper:l.ref})}return u}(),onContextMenu:function(){function u(s){s.preventDefault(),d("showFull",{paper:l.ref})}return u}(),children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,fontSize:.75,title:l.name,children:(0,a.decodeHtmlEntities)(l.contents)})},l.ref)})})})})}return S}()},41166:function(A,r,n){"use strict";r.__esModule=!0,r.NuclearBomb=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.NuclearBomb=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data;return d.extended?(0,e.createComponentVNode)(2,o.Window,{width:350,height:290,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Authorization",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auth Disk",children:(0,e.createComponentVNode)(2,t.Button,{icon:d.authdisk?"eject":"id-card",selected:d.authdisk,content:d.diskname?d.diskname:"-----",tooltip:d.authdisk?"Eject Disk":"Insert Disk",onClick:function(){function c(){return g("auth")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auth Code",children:(0,e.createComponentVNode)(2,t.Button,{icon:"key",disabled:!d.authdisk,selected:d.authcode,content:d.codemsg,onClick:function(){function c(){return g("code")}return c}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Arming & Disarming",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Bolted to floor",children:(0,e.createComponentVNode)(2,t.Button,{icon:d.anchored?"check":"times",selected:d.anchored,disabled:!d.authdisk,content:d.anchored?"YES":"NO",onClick:function(){function c(){return g("toggle_anchor")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Time Left",children:(0,e.createComponentVNode)(2,t.Button,{icon:"stopwatch",content:d.time,disabled:!d.authfull,tooltip:"Set Timer",onClick:function(){function c(){return g("set_time")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety",children:(0,e.createComponentVNode)(2,t.Button,{icon:d.safety?"check":"times",selected:d.safety,disabled:!d.authfull,content:d.safety?"ON":"OFF",tooltip:d.safety?"Disable Safety":"Enable Safety",onClick:function(){function c(){return g("toggle_safety")}return c}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Arm/Disarm",children:(0,e.createComponentVNode)(2,t.Button,{icon:(d.timer,"bomb"),disabled:d.safety||!d.authfull,color:"red",content:d.timer?"DISARM THE NUKE":"ARM THE NUKE",onClick:function(){function c(){return g("toggle_armed")}return c}()})})]})})]})}):(0,e.createComponentVNode)(2,o.Window,{width:350,height:115,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Deployment",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"exclamation-triangle",content:"Deploy Nuclear Device (will bolt device to floor)",onClick:function(){function c(){return g("deploy")}return c}()})})})})}return b}()},52416:function(A,r,n){"use strict";r.__esModule=!0,r.NumberInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(92986),f=n(72253),b=n(36036),S=n(98595),I=r.NumberInputModal=function(){function g(d,c){var m=(0,f.useBackend)(c),l=m.act,u=m.data,s=u.init_value,i=u.large_buttons,h=u.message,C=h===void 0?"":h,v=u.timeout,p=u.title,N=(0,f.useLocalState)(c,"input",s),V=N[0],y=N[1],B=function(){function x(T){T!==V&&y(T)}return x}(),L=function(){function x(T){T!==V&&y(T)}return x}(),w=140+Math.max(Math.ceil(C.length/3),C.length>0&&i?5:0);return(0,e.createComponentVNode)(2,S.Window,{title:p,width:270,height:w,children:[v&&(0,e.createComponentVNode)(2,a.Loader,{value:v}),(0,e.createComponentVNode)(2,S.Window.Content,{onKeyDown:function(){function x(T){var M=window.event?T.which:T.keyCode;M===o.KEY_ENTER&&l("submit",{entry:V}),M===o.KEY_ESCAPE&&l("cancel")}return x}(),children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Box,{color:"label",children:C})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,k,{input:V,onClick:L,onChange:B})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,t.InputButtons,{input:V})})]})})})]})}return g}(),k=function(d,c){var m=(0,f.useBackend)(c),l=m.act,u=m.data,s=u.min_value,i=u.max_value,h=u.init_value,C=u.round_value,v=d.input,p=d.onClick,N=d.onChange,V=Math.round(v!==s?Math.max(v/2,s):i/2),y=v===s&&s>0||v===1;return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===s,icon:"angle-double-left",onClick:function(){function B(){return p(s)}return B}(),tooltip:v===s?"Min":"Min ("+s+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.RestrictedInput,{autoFocus:!0,autoSelect:!0,fluid:!0,allowFloats:!C,minValue:s,maxValue:i,onChange:function(){function B(L,w){return N(w)}return B}(),onEnter:function(){function B(L,w){return l("submit",{entry:w})}return B}(),value:v})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===i,icon:"angle-double-right",onClick:function(){function B(){return p(i)}return B}(),tooltip:v===i?"Max":"Max ("+i+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:y,icon:"divide",onClick:function(){function B(){return p(V)}return B}(),tooltip:y?"Split":"Split ("+V+")"})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Button,{disabled:v===h,icon:"redo",onClick:function(){function B(){return p(h)}return B}(),tooltip:h?"Reset ("+h+")":"Reset"})})]})}},1218:function(A,r,n){"use strict";r.__esModule=!0,r.OperatingComputer=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(98595),f=n(36036),b=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],S=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],I={average:[.25,.5],bad:[.5,1/0]},k=["bad","average","average","good","average","average","bad"],g=r.OperatingComputer=function(){function l(u,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=C.hasOccupant,p=C.choice,N;return p?N=(0,e.createComponentVNode)(2,m):N=v?(0,e.createComponentVNode)(2,d):(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,o.Window,{width:650,height:455,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{selected:!p,icon:"user",onClick:function(){function V(){return h("choiceOff")}return V}(),children:"Patient"}),(0,e.createComponentVNode)(2,f.Tabs.Tab,{selected:!!p,icon:"cog",onClick:function(){function V(){return h("choiceOn")}return V}(),children:"Options"})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,scrollable:!0,children:N})})]})})})}return l}(),d=function(u,s){var i=(0,t.useBackend)(s),h=i.data,C=h.occupant;return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Section,{fill:!0,title:"Patient",children:(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Name",children:C.name}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Status",color:b[C.stat][0],children:b[C.stat][1]}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:C.maxHealth,value:C.health/C.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),S.map(function(v,p){return(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:v[0]+" Damage",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:"100",value:C[v[1]]/100,ranges:I,children:(0,a.round)(C[v[1]])},p)},p)}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:C.maxTemp,value:C.bodyTemperature/C.maxTemp,color:k[C.temperatureSuitability+3],children:[(0,a.round)(C.btCelsius),"\xB0C, ",(0,a.round)(C.btFaren),"\xB0F"]})}),!!C.hasBlood&&(0,e.createFragment)([(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Blood Level",children:(0,e.createComponentVNode)(2,f.ProgressBar,{min:"0",max:C.bloodMax,value:C.bloodLevel/C.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[C.bloodPercent,"%, ",C.bloodLevel,"cl"]})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Pulse",children:[C.pulse," BPM"]})],4)]})})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Section,{title:"Current Procedure",level:"2",children:C.inSurgery?(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Procedure",children:C.surgeryName}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Next Step",children:C.stepName})]}):(0,e.createComponentVNode)(2,f.Box,{color:"label",children:"No procedure ongoing."})})})]})},c=function(){return(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,align:"center",textAlign:"center",color:"label",children:[(0,e.createComponentVNode)(2,f.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No patient detected."]})})},m=function(u,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=C.verbose,p=C.health,N=C.healthAlarm,V=C.oxy,y=C.oxyAlarm,B=C.crit;return(0,e.createComponentVNode)(2,f.LabeledList,{children:[(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Loudspeaker",children:(0,e.createComponentVNode)(2,f.Button,{selected:v,icon:v?"toggle-on":"toggle-off",content:v?"On":"Off",onClick:function(){function L(){return h(v?"verboseOff":"verboseOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health Announcer",children:(0,e.createComponentVNode)(2,f.Button,{selected:p,icon:p?"toggle-on":"toggle-off",content:p?"On":"Off",onClick:function(){function L(){return h(p?"healthOff":"healthOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Health Announcer Threshold",children:(0,e.createComponentVNode)(2,f.Knob,{bipolar:!0,minValue:-100,maxValue:100,value:N,stepPixelSize:5,ml:"0",onChange:function(){function L(w,x){return h("health_adj",{new:x})}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Oxygen Alarm",children:(0,e.createComponentVNode)(2,f.Button,{selected:V,icon:V?"toggle-on":"toggle-off",content:V?"On":"Off",onClick:function(){function L(){return h(V?"oxyOff":"oxyOn")}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Oxygen Alarm Threshold",children:(0,e.createComponentVNode)(2,f.Knob,{bipolar:!0,minValue:-100,maxValue:100,value:y,stepPixelSize:5,ml:"0",onChange:function(){function L(w,x){return h("oxy_adj",{new:x})}return L}()})}),(0,e.createComponentVNode)(2,f.LabeledList.Item,{label:"Critical Alert",children:(0,e.createComponentVNode)(2,f.Button,{selected:B,icon:B?"toggle-on":"toggle-off",content:B?"On":"Off",onClick:function(){function L(){return h(B?"critOff":"critOn")}return L}()})})]})}},46892:function(A,r,n){"use strict";r.__esModule=!0,r.Orbit=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(35840);function S(i,h){var C=typeof Symbol!="undefined"&&i[Symbol.iterator]||i["@@iterator"];if(C)return(C=C.call(i)).next.bind(C);if(Array.isArray(i)||(C=I(i))||h&&i&&typeof i.length=="number"){C&&(i=C);var v=0;return function(){return v>=i.length?{done:!0}:{done:!1,value:i[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function I(i,h){if(i){if(typeof i=="string")return k(i,h);var C={}.toString.call(i).slice(8,-1);return C==="Object"&&i.constructor&&(C=i.constructor.name),C==="Map"||C==="Set"?Array.from(i):C==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(C)?k(i,h):void 0}}function k(i,h){(h==null||h>i.length)&&(h=i.length);for(var C=0,v=Array(h);CC},m=function(h,C){var v=h.name,p=C.name;if(!v||!p)return 0;var N=v.match(g),V=p.match(g);if(N&&V&&v.replace(g,"")===p.replace(g,"")){var y=parseInt(N[1],10),B=parseInt(V[1],10);return y-B}return c(v,p)},l=function(h,C){var v=h.searchText,p=h.source,N=h.title,V=h.color,y=h.sorted,B=p.filter(d(v));return y&&B.sort(m),p.length>0&&(0,e.createComponentVNode)(2,o.Section,{title:N+" - ("+p.length+")",children:B.map(function(L){return(0,e.createComponentVNode)(2,u,{thing:L,color:V},L.name)})})},u=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=h.color,V=h.thing;return(0,e.createComponentVNode)(2,o.Button,{color:N,tooltip:V.assigned_role?(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Box,{as:"img",mr:"0.5em",className:(0,b.classes)(["job_icons16x16",V.assigned_role_sprite])})," ",V.assigned_role]}):"",tooltipPosition:"bottom",onClick:function(){function y(){return p("orbit",{ref:V.ref})}return y}(),children:[V.name,V.orbiters&&(0,e.createComponentVNode)(2,o.Box,{inline:!0,ml:1,children:["(",V.orbiters," ",(0,e.createComponentVNode)(2,o.Icon,{name:"eye"}),")"]})]})},s=r.Orbit=function(){function i(h,C){for(var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.alive,y=N.antagonists,B=N.highlights,L=N.response_teams,w=N.tourist,x=N.auto_observe,T=N.dead,M=N.ssd,O=N.ghosts,D=N.misc,E=N.npcs,P=(0,t.useLocalState)(C,"searchText",""),R=P[0],j=P[1],F={},W=S(y),z;!(z=W()).done;){var K=z.value;F[K.antag]===void 0&&(F[K.antag]=[]),F[K.antag].push(K)}var G=Object.entries(F);G.sort(function(Q,ue){return c(Q[0],ue[0])});var J=function(){function Q(ue){for(var ie=0,pe=[G.map(function(ne){var le=ne[0],ee=ne[1];return ee}),w,B,V,O,M,T,E,D];ie0&&(0,e.createComponentVNode)(2,o.Section,{title:"Antagonists",children:G.map(function(Q){var ue=Q[0],ie=Q[1];return(0,e.createComponentVNode)(2,o.Section,{title:ue+" - ("+ie.length+")",level:2,children:ie.filter(d(R)).sort(m).map(function(pe){return(0,e.createComponentVNode)(2,u,{color:"bad",thing:pe},pe.name)})},ue)})}),B.length>0&&(0,e.createComponentVNode)(2,l,{title:"Highlights",source:B,searchText:R,color:"teal"}),(0,e.createComponentVNode)(2,l,{title:"Response Teams",source:L,searchText:R,color:"purple"}),(0,e.createComponentVNode)(2,l,{title:"Tourists",source:w,searchText:R,color:"violet"}),(0,e.createComponentVNode)(2,l,{title:"Alive",source:V,searchText:R,color:"good"}),(0,e.createComponentVNode)(2,l,{title:"Ghosts",source:O,searchText:R,color:"grey"}),(0,e.createComponentVNode)(2,l,{title:"SSD",source:M,searchText:R,color:"grey"}),(0,e.createComponentVNode)(2,l,{title:"Dead",source:T,searchText:R,sorted:!1}),(0,e.createComponentVNode)(2,l,{title:"NPCs",source:E,searchText:R,sorted:!1}),(0,e.createComponentVNode)(2,l,{title:"Misc",source:D,searchText:R,sorted:!1})]})})}return i}()},15421:function(A,r,n){"use strict";r.__esModule=!0,r.OreRedemption=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=n(9394);function S(i){if(i==null)throw new TypeError("Cannot destructure "+i)}var I=(0,b.createLogger)("OreRedemption"),k=function(h){return h.toLocaleString("en-US")+" pts"},g=r.OreRedemption=function(){function i(h,C){return(0,e.createComponentVNode)(2,f.Window,{width:490,height:750,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,d,{height:"100%"})}),(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,m)]})})})}return i}(),d=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.id,y=N.points,B=N.disk,L=Object.assign({},(S(h),h));return(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({},L,{children:[(0,e.createComponentVNode)(2,o.Box,{color:"average",textAlign:"center",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle",mr:"0.5rem"}),"This machine only accepts ore. Gibtonite is not accepted."]}),(0,e.createComponentVNode)(2,o.Divider),(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Unclaimed Points",color:y>0?"good":"grey",bold:y>0&&"good",children:k(y)})}),(0,e.createComponentVNode)(2,o.Divider),B?(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Design disk",children:[(0,e.createComponentVNode)(2,o.Button,{selected:!0,bold:!0,icon:"eject",content:B.name,tooltip:"Ejects the design disk.",onClick:function(){function w(){return p("eject_disk")}return w}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!B.design||!B.compatible,icon:"upload",content:"Download",tooltip:"Downloads the design on the disk into the machine.",onClick:function(){function w(){return p("download")}return w}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Stored design",children:(0,e.createComponentVNode)(2,o.Box,{color:B.design&&(B.compatible?"good":"bad"),children:B.design||"N/A"})})]}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No design disk inserted."})]})))},c=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.sheets,y=Object.assign({},(S(h),h));return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,height:"20%",children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,className:"OreRedemption__Ores",p:"0"},y,{children:[(0,e.createComponentVNode)(2,l,{title:"Sheets",columns:[["Available","25%"],["Ore Value","15%"],["Smelt","20%"]]}),V.map(function(B){return(0,e.createComponentVNode)(2,u,{ore:B},B.id)})]})))})},m=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.alloys,y=Object.assign({},(S(h),h));return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.normalizeProps)((0,e.createComponentVNode)(2,o.Section,Object.assign({fill:!0,scrollable:!0,className:"OreRedemption__Ores",p:"0"},y,{children:[(0,e.createComponentVNode)(2,l,{title:"Alloys",columns:[["Recipe","50%"],["Available","11%"],["Smelt","20%"]]}),V.map(function(B){return(0,e.createComponentVNode)(2,s,{ore:B},B.id)})]})))})},l=function(h,C){var v;return(0,e.createComponentVNode)(2,o.Box,{className:"OreHeader",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:h.title}),(v=h.columns)==null?void 0:v.map(function(p){return(0,e.createComponentVNode)(2,o.Stack.Item,{basis:p[1],textAlign:"center",color:"label",bold:!0,children:p[0]},p)})]})})},u=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=h.ore;if(!(N.value&&N.amount<=0&&!(["metal","glass"].indexOf(N.id)>-1)))return(0,e.createComponentVNode)(2,o.Box,{className:"SheetLine",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"45%",align:"middle",children:(0,e.createComponentVNode)(2,o.Stack,{align:"center",children:[(0,e.createComponentVNode)(2,o.Stack.Item,{className:(0,a.classes)(["materials32x32",N.id])}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:N.name})]})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",color:N.amount>=1?"good":"gray",bold:N.amount>=1,align:"center",children:N.amount.toLocaleString("en-US")}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",children:N.value}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"40%",value:0,minValue:0,maxValue:Math.min(N.amount,50),stepPixelSize:6,onChange:function(){function V(y,B){return p(N.value?"sheet":"alloy",{id:N.id,amount:B})}return V}()})})]})})},s=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=h.ore;return(0,e.createComponentVNode)(2,o.Box,{className:"SheetLine",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"7%",align:"middle",children:(0,e.createComponentVNode)(2,o.Box,{className:(0,a.classes)(["alloys32x32",N.id])})}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"30%",textAlign:"middle",align:"center",children:N.name}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"35%",textAlign:"middle",color:N.amount>=1?"good":"gray",align:"center",children:N.description}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"10%",textAlign:"center",color:N.amount>=1?"good":"gray",bold:N.amount>=1,align:"center",children:N.amount.toLocaleString("en-US")}),(0,e.createComponentVNode)(2,o.Stack.Item,{basis:"20%",textAlign:"center",align:"center",lineHeight:"32px",children:(0,e.createComponentVNode)(2,o.NumberInput,{width:"40%",value:0,minValue:0,maxValue:Math.min(N.amount,50),stepPixelSize:6,onChange:function(){function V(y,B){return p(N.value?"sheet":"alloy",{id:N.id,amount:B})}return V}()})})]})})}},52754:function(A,r,n){"use strict";r.__esModule=!0,r.PAI=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(71253),b=n(70752),S=function(g){var d;try{d=b("./"+g+".js")}catch(m){if(m.code==="MODULE_NOT_FOUND")return(0,f.routingError)("notFound",g);throw m}var c=d[g];return c||(0,f.routingError)("missingExport",g)},I=r.PAI=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.app_template,s=l.app_icon,i=l.app_title,h=S(u);return(0,e.createComponentVNode)(2,o.Window,{width:600,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{p:1,fill:!0,scrollable:!0,title:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:s,mr:1}),i,u!=="pai_main_menu"&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{ml:2,mb:0,content:"Back",icon:"arrow-left",onClick:function(){function C(){return m("Back")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Home",icon:"arrow-up",onClick:function(){function C(){return m("MASTER_back")}return C}()})],4)]}),children:(0,e.createComponentVNode)(2,h)})})})})})}return k}()},85175:function(A,r,n){"use strict";r.__esModule=!0,r.PDA=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(71253),b=n(59395),S=function(c){var m;try{m=b("./"+c+".js")}catch(u){if(u.code==="MODULE_NOT_FOUND")return(0,f.routingError)("notFound",c);throw u}var l=m[c];return l||(0,f.routingError)("missingExport",c)},I=r.PDA=function(){function d(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.app,h=s.owner;if(!h)return(0,e.createComponentVNode)(2,o.Window,{width:350,height:105,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Error",children:"No user data found. Please swipe an ID card."})})});var C=S(i.template);return(0,e.createComponentVNode)(2,o.Window,{width:600,height:650,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,k)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,p:1,pb:0,title:(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:i.icon,mr:1}),i.name]}),children:(0,e.createComponentVNode)(2,C)})}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:7.5,children:(0,e.createComponentVNode)(2,g)})]})})})}return d}(),k=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.idInserted,h=s.idLink,C=s.stationTime,v=s.cartridge_name;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{ml:.5,children:(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",color:"transparent",onClick:function(){function p(){return u("Authenticate")}return p}(),content:i?h:"No ID Inserted"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"sd-card",color:"transparent",onClick:function(){function p(){return u("Eject")}return p}(),content:v?["Eject "+v]:"No Cartridge Inserted"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"right",bold:!0,mr:1,mt:.5,children:C})]})},g=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.app;return(0,e.createComponentVNode)(2,t.Box,{height:"45px",className:"PDA__footer",backgroundColor:"#1b1b1b",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[!!i.has_back&&(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"33%",mr:-.5,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:i.has_back?"white":"disabled",icon:"arrow-alt-circle-left-o",onClick:function(){function h(){return u("Back")}return h}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{basis:i.has_back?"33%":"100%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,className:"PDA__footer__button",color:"transparent",iconColor:i.is_home?"disabled":"white",icon:"home",onClick:function(){function h(){u("Home")}return h}()})})]})})}},68654:function(A,r,n){"use strict";r.__esModule=!0,r.Pacman=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(49968),b=r.Pacman=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.active,l=c.anchored,u=c.broken,s=c.emagged,i=c.fuel_type,h=c.fuel_usage,C=c.fuel_stored,v=c.fuel_cap,p=c.is_ai,N=c.tmp_current,V=c.tmp_max,y=c.tmp_overheat,B=c.output_max,L=c.power_gen,w=c.output_set,x=c.has_fuel,T=C/v,M=N/V,O=w*L,D=Math.round(C/h*2),E=Math.round(D/60),P=D>120?E+" minutes":D+" seconds";return(0,e.createComponentVNode)(2,o.Window,{width:500,height:225,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(u||!l)&&(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:[!!u&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"The generator is malfunctioning!"}),!u&&!l&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"The generator needs to be anchored to the floor with a wrench."})]}),!u&&!!l&&(0,e.createVNode)(1,"div",null,[(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:m?"power-off":"times",content:m?"On":"Off",tooltip:"Toggles the generator on/off. Requires fuel.",tooltipPosition:"left",disabled:!x,selected:m,onClick:function(){function R(){return d("toggle_power")}return R}()}),children:(0,e.createComponentVNode)(2,t.Flex,{direction:"row",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",className:"ml-1",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power setting",children:[(0,e.createComponentVNode)(2,t.NumberInput,{value:w,minValue:1,maxValue:B*(s?2.5:1),step:1,className:"mt-1",onDrag:function(){function R(j,F){return d("change_power",{change_power:F})}return R}()}),"(",(0,f.formatPower)(O),")"]})})}),(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:M,ranges:{green:[-1/0,.33],orange:[.33,.66],red:[.66,1/0]},children:[N," \u2103"]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:[y>50&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"CRITICAL OVERHEAT!"}),y>20&&y<=50&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"WARNING: Overheating!"}),y>1&&y<=20&&(0,e.createComponentVNode)(2,t.Box,{color:"orange",children:"Temperature High"}),y===0&&(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Optimal"})]})]})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Fuel",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject Fuel",tooltip:"Ejects fuel. Generator needs to be offline.",tooltipPosition:"left",disabled:m||p||!x,onClick:function(){function R(){return d("eject_fuel")}return R}()}),children:(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Type",children:i}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel level",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:T,ranges:{red:[-1/0,.33],orange:[.33,.66],green:[.66,1/0]},children:[Math.round(C/1e3)," dm\xB3"]})})]})}),(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel usage",children:[h/1e3," dm\xB3/s"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fuel depletion",children:[!!x&&(h?P:"N/A"),!x&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Out of fuel"})]})]})})]})})],4)]})})}return S}()},1701:function(A,r,n){"use strict";r.__esModule=!0,r.PanDEMIC=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PanDEMIC=function(){function l(u,s){var i=(0,a.useBackend)(s),h=i.data,C=h.beakerLoaded,v=h.beakerContainsBlood,p=h.beakerContainsVirus,N=h.resistances,V=N===void 0?[]:N,y;return C?v?v&&!p&&(y=(0,e.createFragment)([(0,e.createTextVNode)("No disease detected in provided blood sample.")],4)):y=(0,e.createFragment)([(0,e.createTextVNode)("No blood sample found in the loaded container.")],4):y=(0,e.createFragment)([(0,e.createTextVNode)("No container loaded.")],4),(0,e.createComponentVNode)(2,o.Window,{width:575,height:510,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[y&&!p?(0,e.createComponentVNode)(2,t.Section,{title:"Container Information",buttons:(0,e.createComponentVNode)(2,b,{fill:!0,vertical:!0}),children:(0,e.createComponentVNode)(2,t.NoticeBox,{children:y})}):(0,e.createComponentVNode)(2,k),(V==null?void 0:V.length)>0&&(0,e.createComponentVNode)(2,m,{align:"bottom"})]})})})}return l}(),b=function(u,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.beakerLoaded;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:"Eject",disabled:!v,onClick:function(){function p(){return h("eject_beaker")}return p}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash-alt",confirmIcon:"eraser",content:"Destroy",confirmContent:"Destroy",disabled:!v,onClick:function(){function p(){return h("destroy_eject_beaker")}return p}()})],4)},S=function(u,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.beakerContainsVirus,p=u.strain,N=p.commonName,V=p.description,y=p.diseaseAgent,B=p.bloodDNA,L=p.bloodType,w=p.possibleTreatments,x=p.transmissionRoute,T=p.isAdvanced,M=(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood DNA",children:B?(0,e.createVNode)(1,"span",null,B,0,{style:{"font-family":"'Courier New', monospace"}}):"Undetectable"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Blood Type",children:(0,e.createVNode)(1,"div",null,null,1,{dangerouslySetInnerHTML:{__html:L!=null?L:"Undetectable"}})})],4);if(!v)return(0,e.createComponentVNode)(2,t.LabeledList,{children:M});var O;return T&&(N!=null&&N!=="Unknown"?O=(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print Release Forms",onClick:function(){function D(){return h("print_release_forms",{strain_index:u.strainIndex})}return D}(),style:{"margin-left":"auto"}}):O=(0,e.createComponentVNode)(2,t.Button,{icon:"pen",content:"Name Disease",onClick:function(){function D(){return h("name_strain",{strain_index:u.strainIndex})}return D}(),style:{"margin-left":"auto"}})),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Common Name",className:"common-name-label",children:(0,e.createComponentVNode)(2,t.Stack,{horizontal:!0,align:"center",children:[N!=null?N:"Unknown",O]})}),V&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:V}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Disease Agent",children:y}),M,(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Spread Vector",children:x!=null?x:"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Possible Cures",children:w!=null?w:"None"})]})},I=function(u,s){var i,h=(0,a.useBackend)(s),C=h.act,v=h.data,p=!!v.synthesisCooldown,N=(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:p?"spinner":"clone",iconSpin:p,content:"Clone",disabled:p,onClick:function(){function V(){return C("clone_strain",{strain_index:u.strainIndex})}return V}()}),u.sectionButtons],0);return(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:(i=u.sectionTitle)!=null?i:"Strain Information",buttons:N,children:(0,e.createComponentVNode)(2,S,{strain:u.strain,strainIndex:u.strainIndex})})})},k=function(u,s){var i,h=(0,a.useBackend)(s),C=h.act,v=h.data,p=v.selectedStrainIndex,N=v.strains,V=N[p-1];if(N.length===0)return(0,e.createComponentVNode)(2,t.Section,{title:"Container Information",buttons:(0,e.createComponentVNode)(2,b),children:(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No disease detected in provided blood sample."})});if(N.length===1){var y;return(0,e.createFragment)([(0,e.createComponentVNode)(2,I,{strain:N[0],strainIndex:1,sectionButtons:(0,e.createComponentVNode)(2,b)}),((y=N[0].symptoms)==null?void 0:y.length)>0&&(0,e.createComponentVNode)(2,d,{strain:N[0]})],0)}var B=(0,e.createComponentVNode)(2,b);return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Culture Information",fill:!0,buttons:B,children:(0,e.createComponentVNode)(2,t.Flex,{direction:"column",style:{height:"100%"},children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Tabs,{children:N.map(function(L,w){var x;return(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"virus",selected:p-1===w,onClick:function(){function T(){return C("switch_strain",{strain_index:w+1})}return T}(),children:(x=L.commonName)!=null?x:"Unknown"},w)})})}),(0,e.createComponentVNode)(2,I,{strain:V,strainIndex:p}),((i=V.symptoms)==null?void 0:i.length)>0&&(0,e.createComponentVNode)(2,d,{className:"remove-section-bottom-padding",strain:V})]})})})},g=function(u){return u.reduce(function(s,i){return s+i},0)},d=function(u){var s=u.strain.symptoms;return(0,e.createComponentVNode)(2,t.Flex.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{title:"Infection Symptoms",fill:!0,className:u.className,children:(0,e.createComponentVNode)(2,t.Table,{className:"symptoms-table",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Stealth"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Resistance"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Stage Speed"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Transmissibility"})]}),s.map(function(i,h){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.stealth}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.resistance}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.stageSpeed}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i.transmissibility})]},h)}),(0,e.createComponentVNode)(2,t.Table.Row,{className:"table-spacer"}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{style:{"font-weight":"bold"},children:"Total"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(i){return i.stealth}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(i){return i.resistance}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(i){return i.stageSpeed}))}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g(s.map(function(i){return i.transmissibility}))})]})]})})})},c=["flask","vial","eye-dropper"],m=function(u,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.synthesisCooldown,p=C.beakerContainsVirus,N=C.resistances;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Antibodies",fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{horizontal:!0,wrap:!0,children:N.map(function(V,y){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:c[y%c.length],disabled:!!v,onClick:function(){function B(){return h("clone_vaccine",{resistance_index:y+1})}return B}(),mr:"0.5em"}),V]},y)})})})})}},67921:function(A,r,n){"use strict";r.__esModule=!0,r.ParticleAccelerator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(25328),f=n(79646),b=n(36352),S=n(98595),I=n(35840),k=n(38307),g=function(u){switch(u){case 1:return"north";case 2:return"south";case 4:return"east";case 8:return"west";case 5:return"northeast";case 6:return"southeast";case 9:return"northwest";case 10:return"southwest"}return""},d=r.ParticleAccelerator=function(){function l(u,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.assembled,p=C.power,N=C.strength,V=C.max_strength,y=C.icon,B=C.layout_1,L=C.layout_2,w=C.layout_3,x=C.orientation;return(0,e.createComponentVNode)(2,S.Window,{width:395,height:v?160:x==="north"||x==="south"?540:465,children:(0,e.createComponentVNode)(2,S.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Control Panel",buttons:(0,e.createComponentVNode)(2,t.Button,{dmIcon:"sync",content:"Connect",onClick:function(){function T(){return h("scan")}return T}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",mb:"5px",children:(0,e.createComponentVNode)(2,t.Box,{color:v?"good":"bad",children:v?"Operational":"Error: Verify Configuration"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:(0,e.createComponentVNode)(2,t.Button,{icon:p?"power-off":"times",content:p?"On":"Off",selected:p,disabled:!v,onClick:function(){function T(){return h("power")}return T}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Strength",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:!v||N===0,onClick:function(){function T(){return h("remove_strength")}return T}(),mr:"4px"}),N,(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:!v||N===V,onClick:function(){function T(){return h("add_strength")}return T}(),ml:"4px"})]})]})}),v?"":(0,e.createComponentVNode)(2,t.Section,{title:x?"EM Acceleration Chamber Orientation: "+(0,o.capitalize)(x):"Place EM Acceleration Chamber Next To Console",children:x===0?"":x==="north"||x==="south"?(0,e.createComponentVNode)(2,m):(0,e.createComponentVNode)(2,c)})]})})}return l}(),c=function(u,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.assembled,p=C.power,N=C.strength,V=C.max_strength,y=C.icon,B=C.layout_1,L=C.layout_2,w=C.layout_3,x=C.orientation;return(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:(x==="east"?B:w).slice().map(function(T){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})}),(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:L.slice().map(function(T){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})}),(0,e.createComponentVNode)(2,b.TableRow,{width:"40px",children:(x==="east"?w:B).slice().map(function(T){return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})})]})},m=function(u,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.assembled,p=C.power,N=C.strength,V=C.max_strength,y=C.icon,B=C.layout_1,L=C.layout_2,w=C.layout_3,x=C.orientation;return(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,f.GridColumn,{width:"40px",children:(x==="north"?B:w).slice().map(function(T){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})}),(0,e.createComponentVNode)(2,f.GridColumn,{children:L.slice().map(function(T){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})}),(0,e.createComponentVNode)(2,f.GridColumn,{width:"40px",children:(x==="north"?w:B).slice().map(function(T){return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,tooltip:T.status,children:(0,e.createComponentVNode)(2,t.Tooltip,{content:(0,e.createVNode)(1,"span",null,[T.name,(0,e.createTextVNode)(" "),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)(" "),"Status: "+T.status,(0,e.createVNode)(1,"br"),"Direction: "+g(T.dir)],0,{style:{wordWrap:"break-word"}}),children:(0,e.createComponentVNode)(2,t.ImageButton,{dmIcon:y,dmIconState:T.icon_state,dmDirection:T.dir,style:{"border-style":"solid","border-width":"2px","border-color":T.status==="good"?"green":T.status==="Incomplete"?"orange":"red",padding:"2px"}})})},T.name)})})]})}},71432:function(A,r,n){"use strict";r.__esModule=!0,r.PdaPainter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PdaPainter=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.data,l=m.has_pda;return(0,e.createComponentVNode)(2,o.Window,{width:510,height:505,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:l?(0,e.createComponentVNode)(2,S):(0,e.createComponentVNode)(2,b)})})}return k}(),b=function(g,d){var c=(0,a.useBackend)(d),m=c.act;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"silver",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"download",size:5,mb:"10px"}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{width:"160px",textAlign:"center",content:"Insert PDA",onClick:function(){function l(){return m("insert_pda")}return l}()})]})})})},S=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.pda_colors;return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,horizontal:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,I)}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.Table,{className:"PdaPainter__list",children:Object.keys(u).map(function(s){return(0,e.createComponentVNode)(2,t.Table.Row,{onClick:function(){function i(){return m("choose_pda",{selectedPda:s})}return i}(),children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/png;base64,"+u[s][0],style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:s})]},s)})})})})]})},I=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.current_appearance,s=l.preview_appearance;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Current PDA",children:[(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+u,style:{"vertical-align":"middle",width:"160px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"eject",content:"Eject",color:"green",onClick:function(){function i(){return m("eject_pda")}return i}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"paint-roller",content:"Paint PDA",onClick:function(){function i(){return m("paint_pda")}return i}()})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Preview",children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+s,style:{"vertical-align":"middle",width:"160px",margin:"0px","margin-left":"0px","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}})})]})}},33388:function(A,r,n){"use strict";r.__esModule=!0,r.PersonalCrafting=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.PersonalCrafting=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.busy,u=m.category,s=m.display_craftable_only,i=m.display_compact,h=m.prev_cat,C=m.next_cat,v=m.subcategory,p=m.prev_subcat,N=m.next_subcat;return(0,e.createComponentVNode)(2,o.Window,{width:700,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!l&&(0,e.createComponentVNode)(2,t.Dimmer,{fontSize:"32px",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cog",spin:1})," Crafting..."]}),(0,e.createComponentVNode)(2,t.Section,{title:u,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Show Craftable Only",icon:s?"check-square-o":"square-o",selected:s,onClick:function(){function V(){return c("toggle_recipes")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Compact Mode",icon:i?"check-square-o":"square-o",selected:i,onClick:function(){function V(){return c("toggle_compact")}return V}()})],4),children:[(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:h,icon:"arrow-left",onClick:function(){function V(){return c("backwardCat")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:C,icon:"arrow-right",onClick:function(){function V(){return c("forwardCat")}return V}()})]}),v&&(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Button,{content:p,icon:"arrow-left",onClick:function(){function V(){return c("backwardSubCat")}return V}()}),(0,e.createComponentVNode)(2,t.Button,{content:N,icon:"arrow-right",onClick:function(){function V(){return c("forwardSubCat")}return V}()})]}),i?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,S)]})]})})}return I}(),b=function(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.display_craftable_only,u=m.can_craft,s=m.cant_craft;return(0,e.createComponentVNode)(2,t.Box,{mt:1,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[u.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.name,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",onClick:function(){function h(){return c("make",{make:i.ref})}return h}()}),i.catalyst_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:i.catalyst_text,content:"Catalysts",color:"transparent"}),(0,e.createComponentVNode)(2,t.Button,{tooltip:i.req_text,content:"Requirements",color:"transparent"}),i.tool_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:i.tool_text,content:"Tools",color:"transparent"})]},i.name)}),!l&&s.map(function(i){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:i.name,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",disabled:!0}),i.catalyst_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:i.catalyst_text,content:"Catalysts",color:"transparent"}),(0,e.createComponentVNode)(2,t.Button,{tooltip:i.req_text,content:"Requirements",color:"transparent"}),i.tool_text&&(0,e.createComponentVNode)(2,t.Button,{tooltip:i.tool_text,content:"Tools",color:"transparent"})]},i.name)})]})})},S=function(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.display_craftable_only,u=m.can_craft,s=m.cant_craft;return(0,e.createComponentVNode)(2,t.Box,{mt:1,children:[u.map(function(i){return(0,e.createComponentVNode)(2,t.Section,{title:i.name,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",onClick:function(){function h(){return c("make",{make:i.ref})}return h}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[i.catalyst_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Catalysts",children:i.catalyst_text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Requirements",children:i.req_text}),i.tool_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tools",children:i.tool_text})]})},i.name)}),!l&&s.map(function(i){return(0,e.createComponentVNode)(2,t.Section,{title:i.name,buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"hammer",content:"Craft",disabled:!0}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[i.catalyst_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Catalysts",children:i.catalyst_text}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Requirements",children:i.req_text}),i.tool_text&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tools",children:i.tool_text})]})},i.name)})]})}},56150:function(A,r,n){"use strict";r.__esModule=!0,r.Photocopier=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Photocopier=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:440,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Photocopier",color:"silver",children:[(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Copies:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"2em",bold:!0,children:m.copynumber}),(0,e.createComponentVNode)(2,t.Stack.Item,{float:"right",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"minus",textAlign:"center",content:"",onClick:function(){function l(){return c("minus")}return l}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"plus",textAlign:"center",content:"",onClick:function(){function l(){return c("add")}return l}()})]})]}),(0,e.createComponentVNode)(2,t.Stack,{mb:2,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Toner:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,children:m.toner})]}),(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Inserted Document:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!m.copyitem&&!m.mob,content:m.copyitem?m.copyitem:m.mob?m.mob+"'s ass!":"document",onClick:function(){function l(){return c("removedocument")}return l}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:12,children:"Inserted Folder:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!m.folder,content:m.folder?m.folder:"folder",onClick:function(){function l(){return c("removefolder")}return l}()})})]})]}),(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,b)}),(0,e.createComponentVNode)(2,S)]})})})}return I}(),b=function(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.issilicon;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"copy",float:"center",textAlign:"center",content:"Copy",onClick:function(){function u(){return c("copy")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file-import",float:"center",textAlign:"center",content:"Scan",onClick:function(){function u(){return c("scandocument")}return u}()}),!!l&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"file",color:"green",float:"center",textAlign:"center",content:"Print Text",onClick:function(){function u(){return c("ai_text")}return u}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"image",color:"green",float:"center",textAlign:"center",content:"Print Image",onClick:function(){function u(){return c("ai_pic")}return u}()})],4)],0)},S=function(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data;return(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Scanned Files",children:m.files.map(function(l){return(0,e.createComponentVNode)(2,t.Section,{title:l.name,buttons:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print",disabled:m.toner<=0,onClick:function(){function u(){return c("filecopy",{uid:l.uid})}return u}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash-alt",content:"Delete",color:"bad",onClick:function(){function u(){return c("deletefile",{uid:l.uid})}return u}()})]})},l.name)})})}},8340:function(A,r,n){"use strict";r.__esModule=!0,r.Photocopier220=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(88510),b=n(64795),S=n(25328);function I(m,l){var u=typeof Symbol!="undefined"&&m[Symbol.iterator]||m["@@iterator"];if(u)return(u=u.call(m)).next.bind(u);if(Array.isArray(m)||(u=k(m))||l&&m&&typeof m.length=="number"){u&&(m=u);var s=0;return function(){return s>=m.length?{done:!0}:{done:!1,value:m[s++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function k(m,l){if(m){if(typeof m=="string")return g(m,l);var u={}.toString.call(m).slice(8,-1);return u==="Object"&&m.constructor&&(u=m.constructor.name),u==="Map"||u==="Set"?Array.from(m):u==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u)?g(m,l):void 0}}function g(m,l){(l==null||l>m.length)&&(l=m.length);for(var u=0,s=Array(l);um?this.substring(0,m)+"...":this};var d=function(l,u){u===void 0&&(u="");var s=(0,S.createSearch)(u,function(i){return i.altername});return(0,b.flow)([(0,f.filter)(function(i){return i==null?void 0:i.altername}),u&&(0,f.filter)(s),(0,f.sortBy)(function(i){return i.id})])(l)},c=r.Photocopier220=function(){function m(l,u){for(var s=(0,a.useBackend)(u),i=s.act,h=s.data,C=h.copies,v=h.maxcopies,p=(0,a.useLocalState)(u,"searchText",""),N=p[0],V=p[1],y=d((0,f.sortBy)(function(E){return E.category})(h.forms||[]),N),B=[],L=I(y),w;!(w=L()).done;){var x=w.value;B.includes(x.category)||B.push(x.category)}var T=(0,a.useLocalState)(u,"number",0),M=T[0],O=T[1],D;return h.category===""?D=y:D=y.filter(function(E){return E.category===h.category}),(0,e.createComponentVNode)(2,o.Window,{width:550,height:575,theme:h.ui_theme,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"40%",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"\u0421\u0442\u0430\u0442\u0443\u0441",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",mt:.3,color:"grey",children:"\u0417\u0430\u0440\u044F\u0434 \u0442\u043E\u043D\u0435\u0440\u0430:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.ProgressBar,{minValue:0,maxValue:30,value:h.toner})})]}),(0,e.createComponentVNode)(2,t.Stack,{mt:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",mb:.3,color:"grey",children:"\u0424\u043E\u0440\u043C\u0430:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"50%",textAlign:"center",bold:!0,children:h.form_id===""?"\u041D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u0430":h.form_id})]}),(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",mt:1,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!h.copyitem&&!h.mob,icon:h.copyitem||h.mob?"eject":"times",content:h.copyitem?h.copyitem:h.mob?"\u0416\u043E\u043F\u0430 "+h.mob+"!":"\u0421\u043B\u043E\u0442 \u0434\u043B\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430",onClick:function(){function E(){return i("removedocument")}return E}()})})}),(0,e.createComponentVNode)(2,t.Stack,{children:(0,e.createComponentVNode)(2,t.Stack.Item,{width:"100%",mt:"3px",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",disabled:!h.folder,icon:h.folder?"eject":"times",content:h.folder?h.folder:"\u0421\u043B\u043E\u0442 \u0434\u043B\u044F \u043F\u0430\u043F\u043A\u0438",onClick:function(){function E(){return i("removefolder")}return E}()})})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435",children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"100%",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"print",disabled:h.toner===0||h.form===null,content:"\u041F\u0435\u0447\u0430\u0442\u044C",onClick:function(){function E(){return i("print_form")}return E}()})}),!!h.isAI&&(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"100%",ml:"5px",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"image",disabled:h.toner<5,content:"\u0424\u043E\u0442\u043E",tooltip:"\u0420\u0430\u0441\u043F\u0435\u0447\u0430\u0442\u0430\u0442\u044C \u0444\u043E\u0442\u043E \u0441 \u0411\u0430\u0437\u044B \u0414\u0430\u043D\u043D\u044B\u0445",onClick:function(){function E(){return i("ai_pic")}return E}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"100%",mt:"3px",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"copy",content:"\u041A\u043E\u043F\u0438\u044F",disabled:h.toner===0||!h.copyitem&&!h.mob,onClick:function(){function E(){return i("copy")}return E}()})}),!!h.isAI&&(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,width:"100%",ml:"5px",mt:"3px",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",icon:"i-cursor",content:"\u0422\u0435\u043A\u0441\u0442",tooltip:"\u0420\u0430\u0441\u043F\u0435\u0447\u0430\u0442\u0430\u0442\u044C \u0441\u0432\u043E\u0439 \u0442\u0435\u043A\u0441\u0442",disabled:h.toner===0,onClick:function(){function E(){return i("ai_text")}return E}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:1.5,mt:1.2,width:"50%",color:"grey",children:"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:"}),(0,e.createComponentVNode)(2,t.Slider,{mt:.75,width:"50%",animated:!0,minValue:1,maxValue:v,value:C,stepPixelSize:10,onChange:function(){function E(P,R){return i("copies",{new:R})}return E}()})]})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"\u0411\u044E\u0440\u043E\u043A\u0440\u0430\u0442\u0438\u044F",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mb:-.5,icon:"chevron-right",color:"transparent",content:"\u0412\u0441\u0435 \u0444\u043E\u0440\u043C\u044B",selected:!h.category,onClick:function(){function E(){return i("choose_category",{category:""})}return E}()})}),B.map(function(E){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"chevron-right",mb:-.5,color:"transparent",content:E,selected:h.category===E,onClick:function(){function P(){return i("choose_category",{category:E})}return P}()},E)},E)})]})})})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"60%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:h.category||"\u0412\u0441\u0435 \u0444\u043E\u0440\u043C\u044B",buttons:(0,e.createComponentVNode)(2,t.Input,{mr:18.5,width:"100%",placeholder:"\u041F\u043E\u0438\u0441\u043A \u0444\u043E\u0440\u043C\u044B",onInput:function(){function E(P,R){return V(R)}return E}()}),children:D.map(function(E){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mb:.5,color:"transparent",content:E.altername.trimLongStr(37),tooltip:E.altername,selected:h.form_id===E.id,onClick:function(){function P(){return i("choose_form",{path:E.path,id:E.id})}return P}()})},E.path)})})})]})})})}return m}()},84676:function(A,r,n){"use strict";r.__esModule=!0,r.PoolController=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=["tempKey"];function b(g,d){if(g==null)return{};var c={};for(var m in g)if({}.hasOwnProperty.call(g,m)){if(d.includes(m))continue;c[m]=g[m]}return c}var S={scalding:{label:"Scalding",color:"#FF0000",icon:"fa fa-arrow-circle-up",requireEmag:!0},warm:{label:"Warm",color:"#990000",icon:"fa fa-arrow-circle-up"},normal:{label:"Normal",color:null,icon:"fa fa-arrow-circle-right"},cool:{label:"Cool",color:"#009999",icon:"fa fa-arrow-circle-down"},frigid:{label:"Frigid",color:"#00CCCC",icon:"fa fa-arrow-circle-down",requireEmag:!0}},I=function(d,c){var m=d.tempKey,l=b(d,f),u=S[m];if(!u)return null;var s=(0,a.useBackend)(c),i=s.data,h=s.act,C=i.currentTemp,v=u.label,p=u.icon,N=m===C,V=function(){h("setTemp",{temp:m})};return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Button,Object.assign({color:"transparent",selected:N,onClick:V},l,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:p}),v]})))},k=r.PoolController=function(){function g(d,c){for(var m=(0,a.useBackend)(c),l=m.data,u=l.emagged,s=l.currentTemp,i=S[s]||S.normal,h=i.label,C=i.color,v=[],p=0,N=Object.entries(S);p50?"battery-half":"battery-quarter")||C==="C"&&"bolt"||C==="F"&&"battery-full"||C==="M"&&"slash",color:C==="N"&&(v>50?"yellow":"red")||C==="C"&&"yellow"||C==="F"&&"green"||C==="M"&&"orange"}),(0,e.createComponentVNode)(2,I.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,o.toFixed)(v)+"%"})],4)};u.defaultHooks=f.pureComponentHooks;var s=function(h){var C,v,p=h.status;switch(p){case"AOn":C=!0,v=!0;break;case"AOff":C=!0,v=!1;break;case"On":C=!1,v=!0;break;case"Off":C=!1,v=!1;break}var N=(v?"On":"Off")+(" ["+(C?"auto":"manual")+"]");return(0,e.createComponentVNode)(2,I.ColorBox,{color:v?"good":"bad",content:C?void 0:"M",title:N})};s.defaultHooks=f.pureComponentHooks},50992:function(A,r,n){"use strict";r.__esModule=!0,r.PrisonerImplantManager=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(29319),f=n(3939),b=n(321),S=n(5485),I=n(98595),k=r.PrisonerImplantManager=function(){function g(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.loginState,i=u.prisonerInfo,h=u.chemicalInfo,C=u.trackingInfo,v;if(!s.logged_in)return(0,e.createComponentVNode)(2,I.Window,{theme:"security",width:500,height:850,children:(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,S.LoginScreen)})});var p=[1,5,10];return(0,e.createComponentVNode)(2,I.Window,{theme:"security",width:500,height:850,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.LoginInfo),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Prisoner Points Manager System",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Prisoner",children:(0,e.createComponentVNode)(2,t.Button,{icon:i.name?"eject":"id-card",selected:i.name,content:i.name?i.name:"-----",tooltip:i.name?"Eject ID":"Insert ID",onClick:function(){function N(){return l("id_card")}return N}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Points",children:[i.points!==null?i.points:"-/-",(0,e.createComponentVNode)(2,t.Button,{ml:2,icon:"minus-square",disabled:i.points===null,content:"Reset",onClick:function(){function N(){return l("reset_points")}return N}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Point Goal",children:[i.goal!==null?i.goal:"-/-",(0,e.createComponentVNode)(2,t.Button,{ml:2,icon:"pen",disabled:i.goal===null,content:"Edit",onClick:function(){function N(){return(0,f.modalOpen)(c,"set_points")}return N}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{children:(0,e.createVNode)(1,"box",null,[(0,e.createTextVNode)("1 minute of prison time should roughly equate to 150 points."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Sentences should not exceed 5000 points."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Permanent prisoners should not be given a point goal."),(0,e.createVNode)(1,"br"),(0,e.createVNode)(1,"br"),(0,e.createTextVNode)("Prisoners who meet their point goal will be able to automatically access their locker and return to the station using the shuttle.")],4,{hidden:i.goal===null})})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Tracking Implants",children:C.map(function(N){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{p:1,backgroundColor:"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:["Subject: ",N.subject]}),(0,e.createComponentVNode)(2,t.Box,{children:[" ",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Location",children:N.location}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:N.health}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Prisoner",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-triangle",content:"Warn",tooltip:"Broadcast a message to this poor sod",onClick:function(){function V(){return(0,f.modalOpen)(c,"warn",{uid:N.uid})}return V}()})})]})]},N.subject)]}),(0,e.createVNode)(1,"br")],4)})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Chemical Implants",children:h.map(function(N){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{p:1,backgroundColor:"rgba(255, 255, 255, 0.05)",children:[(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:["Subject: ",N.name]}),(0,e.createComponentVNode)(2,t.Box,{children:[" ",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Remaining Reagents",children:N.volume})}),p.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{mt:2,disabled:N.volumec;return(0,e.createComponentVNode)(2,t.ImageButton,{fluid:!0,title:N.name,dmIcon:N.icon,dmIconState:N.icon_state,buttonsAlt:(0,e.createComponentVNode)(2,t.Button,{bold:!0,translucent:!0,fontSize:1.5,tooltip:V&&"Not enough tickets",disabled:V,onClick:function(){function y(){return g("purchase",{purchase:N.itemID})}return y}(),children:[N.cost,(0,e.createComponentVNode)(2,t.Icon,{m:0,mt:.25,name:"ticket",color:V?"bad":"good",size:1.6})]}),children:N.desc},N.name)})})})})})})}return b}()},94813:function(A,r,n){"use strict";r.__esModule=!0,r.RCD=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(3939),b=n(49148),S=r.RCD=function(){function l(u,s){return(0,e.createComponentVNode)(2,o.Window,{width:480,height:670,children:[(0,e.createComponentVNode)(2,f.ComplexModal),(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,d),(0,e.createComponentVNode)(2,c)]})})]})}return l}(),I=function(u,s){var i=(0,a.useBackend)(s),h=i.data,C=h.matter,v=h.max_matter,p=v*.7,N=v*.25;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Matter Storage",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[p,1/0],average:[N,p],bad:[-1/0,N]},value:C,maxValue:v,children:(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:C+" / "+v+" units"})})})})},k=function(){return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Construction Type",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,g,{mode_type:"Floors and Walls"}),(0,e.createComponentVNode)(2,g,{mode_type:"Airlocks"}),(0,e.createComponentVNode)(2,g,{mode_type:"Windows"}),(0,e.createComponentVNode)(2,g,{mode_type:"Deconstruction"})]})})})},g=function(u,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=u.mode_type,p=C.mode;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"transparent",content:v,selected:p===v?1:0,onClick:function(){function N(){return h("mode",{mode:v})}return N}()})})},d=function(u,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.door_name,p=C.electrochromic,N=C.airlock_glass;return(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Airlock Settings",children:(0,e.createComponentVNode)(2,t.Stack,{textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"transparent",icon:"pen-alt",content:(0,e.createFragment)([(0,e.createTextVNode)("Rename: "),(0,e.createVNode)(1,"b",null,v,0)],0),onClick:function(){function V(){return(0,f.modalOpen)(s,"renameAirlock")}return V}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:N===1&&(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:p?"toggle-on":"toggle-off",content:"Electrochromic",selected:p,onClick:function(){function V(){return h("electrochromic")}return V}()})})]})})})},c=function(u,s){var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.tab,p=C.locked,N=C.one_access,V=C.selected_accesses,y=C.regions;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Tabs,{fluid:!0,children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"cog",selected:v===1,onClick:function(){function B(){return h("set_tab",{tab:1})}return B}(),children:"Airlock Types"}),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:v===2,icon:"list",onClick:function(){function B(){return h("set_tab",{tab:2})}return B}(),children:"Airlock Access"})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:v===1?(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Types",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m,{check_number:0})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,m,{check_number:1})})]})}):v===2&&p?(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Access",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"lock-open",content:"Unlock",onClick:function(){function B(){return h("set_lock",{new_lock:"unlock"})}return B}()}),children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",align:"center",color:"label",children:[(0,e.createComponentVNode)(2,t.Icon,{name:"lock",size:"5",mb:3}),(0,e.createVNode)(1,"br"),"Airlock access selection is currently locked."]})})}):(0,e.createComponentVNode)(2,b.AccessList,{sectionButtons:(0,e.createComponentVNode)(2,t.Button,{icon:"lock",content:"Lock",onClick:function(){function B(){return h("set_lock",{new_lock:"lock"})}return B}()}),usedByRcd:1,rcdButtons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:N,content:"One",onClick:function(){function B(){return h("set_one_access",{access:"one"})}return B}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:!N,width:4,content:"All",onClick:function(){function B(){return h("set_one_access",{access:"all"})}return B}()})],4),accesses:y,selectedList:V,accessMod:function(){function B(L){return h("set",{access:L})}return B}(),grantAll:function(){function B(){return h("grant_all")}return B}(),denyAll:function(){function B(){return h("clear_all")}return B}(),grantDep:function(){function B(L){return h("grant_region",{region:L})}return B}(),denyDep:function(){function B(L){return h("deny_region",{region:L})}return B}()})})],4)},m=function(u,s){for(var i=(0,a.useBackend)(s),h=i.act,C=i.data,v=C.door_types_ui_list,p=C.door_type,N=u.check_number,V=[],y=0;yf?w=(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,mb:1,children:"There are new messages"}):w=(0,e.createComponentVNode)(2,t.Box,{color:"label",mb:1,children:"There are no new messages"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Main Menu",buttons:(0,e.createComponentVNode)(2,t.Button,{width:9,content:L?"Speaker Off":"Speaker On",selected:!L,icon:L?"volume-mute":"volume-up",onClick:function(){function x(){return N("toggleSilent")}return x}()}),children:[w,(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"View Messages",icon:y>f?"envelope-open-text":"envelope",onClick:function(){function x(){return N("setScreen",{setScreen:6})}return x}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Assistance",icon:"hand-paper",onClick:function(){function x(){return N("setScreen",{setScreen:1})}return x}()}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Supplies",icon:"box",onClick:function(){function x(){return N("setScreen",{setScreen:2})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Request Secondary Goal",icon:"clipboard-list",onClick:function(){function x(){return N("setScreen",{setScreen:11})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Relay Anonymous Information",icon:"comment",onClick:function(){function x(){return N("setScreen",{setScreen:3})}return x}()})]})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Print Shipping Label",icon:"tag",onClick:function(){function x(){return N("setScreen",{setScreen:9})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"View Shipping Logs",icon:"clipboard-list",onClick:function(){function x(){return N("setScreen",{setScreen:10})}return x}()})]})}),!!B&&(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,lineHeight:3,content:"Send Station-Wide Announcement",icon:"bullhorn",onClick:function(){function x(){return N("setScreen",{setScreen:8})}return x}()})})]})})},d=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y=V.department,B=[],L;switch(C.purpose){case"ASSISTANCE":B=V.assist_dept,L="Request assistance from another department";break;case"SUPPLIES":B=V.supply_dept,L="Request supplies from another department";break;case"INFO":B=V.info_dept,L="Relay information to another department";break}return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:L,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function w(){return N("setScreen",{setScreen:0})}return w}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:B.filter(function(w){return w!==y}).map(function(w){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:w,textAlign:"right",className:"candystripe",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Message",icon:"envelope",onClick:function(){function x(){return N("writeInput",{write:w,priority:S})}return x}()}),(0,e.createComponentVNode)(2,t.Button,{content:"High Priority",icon:"exclamation-circle",onClick:function(){function x(){return N("writeInput",{write:w,priority:I})}return x}()})]},w)})})})})},c=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y;switch(C.type){case"SUCCESS":y="Message sent successfully";break;case"FAIL":y="Unable to contact messaging server";break}return(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:y,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function B(){return N("setScreen",{setScreen:0})}return B}()})})},m=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y,B;switch(C.type){case"MESSAGES":y=V.message_log,B="Message Log";break;case"SHIPPING":y=V.shipping_log,B="Shipping label print log";break}return y.reverse(),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:B,buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()}),children:y.map(function(L){return(0,e.createComponentVNode)(2,t.Box,{textAlign:"left",children:[L.map(function(w,x){return(0,e.createVNode)(1,"div",null,w,0,null,x)}),(0,e.createVNode)(1,"hr")]},L)})})})},l=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y=V.recipient,B=V.message,L=V.msgVerified,w=V.msgStamped;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Message Authentication",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function x(){return N("setScreen",{setScreen:0})}return x}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Recipient",children:y}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Message",children:B}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Validated by",color:"green",children:L}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stamped by",color:"blue",children:w})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,textAlign:"center",content:"Send Message",icon:"envelope",onClick:function(){function x(){return N("department",{department:y})}return x}()})})})],4)},u=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y=V.message,B=V.announceAuth;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Station-Wide Announcement",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Edit Message",icon:"edit",onClick:function(){function L(){return N("writeAnnouncement")}return L}()})],4),children:y})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:[B?(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"green",children:"ID verified. Authentication accepted."}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Swipe your ID card to authenticate yourself"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:2,textAlign:"center",content:"Send Announcement",icon:"bullhorn",disabled:!(B&&y),onClick:function(){function L(){return N("sendAnnouncement")}return L}()})]})})],4)},s=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y=V.shipDest,B=V.msgVerified,L=V.ship_dept;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{textAlign:"center",children:(0,e.createComponentVNode)(2,t.Section,{title:"Print Shipping Label",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function w(){return N("setScreen",{setScreen:0})}return w}()}),children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Destination",children:y}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Validated by",children:B})]}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:1,textAlign:"center",content:"Print Label",icon:"print",disabled:!(y&&B),onClick:function(){function w(){return N("printLabel")}return w}()})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Destinations",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:L.map(function(w){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:w,textAlign:"right",className:"candystripe",children:(0,e.createComponentVNode)(2,t.Button,{content:y===w?"Selected":"Select",selected:y===w,onClick:function(){function x(){return N("shipSelect",{shipSelect:w})}return x}()})},w)})})})})],4)},i=function(C,v){var p=(0,a.useBackend)(v),N=p.act,V=p.data,y=V.secondaryGoalAuth,B=V.secondaryGoalEnabled;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Request Secondary Goal",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Back",icon:"arrow-left",onClick:function(){function L(){return N("setScreen",{setScreen:0})}return L}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:[B?y?(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"green",children:"ID verified. Authentication accepted."}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Swipe your ID card to authenticate yourself"}):(0,e.createComponentVNode)(2,t.Box,{textAlign:"center",color:"label",children:"Complete your current goal first!"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,mt:2,textAlign:"center",content:"Request Secondary Goal",icon:"clipboard-list",disabled:!(y&&B),onClick:function(){function L(){return N("requestSecondaryGoal")}return L}()})]})})],4)}},9861:function(A,r,n){"use strict";r.__esModule=!0,r.RndBackupConsole=r.LinkMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.RndBackupConsole=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.network_name,l=c.has_disk,u=c.disk_name,s=c.linked,i=c.techs,h=c.last_timestamp;return(0,e.createComponentVNode)(2,o.Window,{width:900,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Device Info",children:[(0,e.createComponentVNode)(2,t.Box,{mb:2,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Network",children:s?(0,e.createComponentVNode)(2,t.Button,{content:m,icon:"unlink",selected:1,onClick:function(){function C(){return d("unlink")}return C}()}):"None"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Loaded Disk",children:l?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:u+" (Last backup: "+h+")",icon:"save",selected:1,onClick:function(){function C(){return d("eject_disk")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Save all",onClick:function(){function C(){return d("saveall2disk")}return C}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Load all",onClick:function(){function C(){return d("saveall2network")}return C}()})],4):"None"})]})}),!!s||(0,e.createComponentVNode)(2,b)]}),(0,e.createComponentVNode)(2,t.Box,{mt:2,children:(0,e.createComponentVNode)(2,t.Section,{title:"Tech Info",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Tech Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Level"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Disk Level"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actions"})]}),Object.keys(i).map(function(C){return!(i[C].network_level>0||i[C].disk_level>0)||(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:i[C].name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i[C].network_level||"None"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:i[C].disk_level||"None"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Load to network",disabled:!l||!s,onClick:function(){function v(){return d("savetech2network",{tech:C})}return v}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Load to disk",disabled:!l||!s,onClick:function(){function v(){return d("savetech2disk",{tech:C})}return v}()})]})]},C)})]})})})]})})}return S}(),b=r.LinkMenu=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.controllers;return(0,e.createComponentVNode)(2,t.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Link"})]}),m.map(function(l){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Link",icon:"link",onClick:function(){function u(){return d("linktonetworkcontroller",{target_controller:l.addr})}return u}()})})]},l.addr)})]})})}return S}()},68303:function(A,r,n){"use strict";r.__esModule=!0,r.AnalyzerMenu=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=r.AnalyzerMenu=function(){function S(I,k){var g=(0,t.useBackend)(k),d=g.data,c=g.act,m=d.tech_levels,l=d.loaded_item,u=d.linked_analyzer,s=d.can_discover;return u?l?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Section,{title:"Object Analysis",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{content:"Deconstruct",icon:"microscope",onClick:function(){function i(){c("deconstruct")}return i}()}),(0,e.createComponentVNode)(2,o.Button,{content:"Eject",icon:"eject",onClick:function(){function i(){c("eject_item")}return i}()}),!s||(0,e.createComponentVNode)(2,o.Button,{content:"Discover",icon:"atom",onClick:function(){function i(){c("discover")}return i}()})],0),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:l.name})})}),(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{id:"research-levels",children:[(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Research Field"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Current Level"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Object Level"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"New Level"})]}),m.map(function(i){return(0,e.createComponentVNode)(2,b,{techLevel:i},i.id)})]})})],4):(0,e.createComponentVNode)(2,o.Section,{title:"Analysis Menu",children:"No item loaded. Standing by..."}):(0,e.createComponentVNode)(2,o.Section,{title:"Analysis Menu",children:"NO SCIENTIFIC ANALYZER LINKED TO CONSOLE"})}return S}(),b=function(I,k){var g=I.techLevel,d=g.name,c=g.desc,m=g.level,l=g.object_level,u=g.ui_icon,s=l!=null,i=s&&l>=m?Math.max(l,m+1):m;return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"circle-info",tooltip:c})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:u})," ",d]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:m}),s?(0,e.createComponentVNode)(2,o.Table.Cell,{children:l}):(0,e.createComponentVNode)(2,o.Table.Cell,{className:"research-level-no-effect",children:"-"}),(0,e.createComponentVNode)(2,o.Table.Cell,{className:(0,a.classes)([i!==m&&"upgraded-level"]),children:i})]})}},37556:function(A,r,n){"use strict";r.__esModule=!0,r.DataDiskMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o="design",f="tech",b=function(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.act,i=u.disk_data;return i?(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:i.name}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Level",children:i.level}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:i.desc})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:(0,e.createComponentVNode)(2,t.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){function h(){return s("updt_tech")}return h}()})})]}):null},S=function(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.act,i=u.disk_data;if(!i)return null;var h=i.name,C=i.lathe_types,v=i.materials,p=C.join(", ");return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name",children:h}),p?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Lathe Types",children:p}):null,(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Required Materials"})]}),v.map(function(N){return(0,e.createComponentVNode)(2,t.Box,{children:["- ",(0,e.createVNode)(1,"span",null,N.name,0,{style:{"text-transform":"capitalize"}})," x ",N.amount]},N.name)}),(0,e.createComponentVNode)(2,t.Box,{mt:"10px",children:(0,e.createComponentVNode)(2,t.Button,{content:"Upload to Database",icon:"arrow-up",onClick:function(){function N(){return s("updt_design")}return N}()})})]})},I=function(c,m){var l=(0,a.useBackend)(m),u=l.act,s=l.data,i=s.disk_data;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.Section,Object.assign({buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button.Confirm,{content:"Erase",icon:"eraser",disabled:!i,onClick:function(){function h(){return u("erase_disk")}return h}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject",icon:"eject",onClick:function(){function h(){u("eject_disk")}return h}()})],4)},c)))},k=function(c,m){var l=(0,a.useBackend)(m),u=l.data,s=l.act,i=u.disk_type,h=u.to_copy,C=c.title;return(0,e.createComponentVNode)(2,I,{title:C,children:(0,e.createComponentVNode)(2,t.Box,{overflowY:"auto",overflowX:"hidden",maxHeight:"450px",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:h.sort(function(v,p){return v.name.localeCompare(p.name)}).map(function(v){var p=v.name,N=v.id;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{noColon:!0,label:p,children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-down",content:"Copy to Disk",onClick:function(){function V(){i===f?s("copy_tech",{id:N}):s("copy_design",{id:N})}return V}()})},N)})})})})},g=r.DataDiskMenu=function(){function d(c,m){var l=(0,a.useBackend)(m),u=l.data,s=u.disk_type,i=u.disk_data;if(!s)return(0,e.createComponentVNode)(2,t.Section,{title:"Data Disk",children:"No disk loaded."});switch(s){case o:return i?(0,e.createComponentVNode)(2,I,{title:"Design Disk",children:(0,e.createComponentVNode)(2,S)}):(0,e.createComponentVNode)(2,k,{title:"Design Disk"});case f:return i?(0,e.createComponentVNode)(2,I,{title:"Technology Disk",children:(0,e.createComponentVNode)(2,b)}):(0,e.createComponentVNode)(2,k,{title:"Technology Disk"});default:return(0,e.createFragment)([(0,e.createTextVNode)("UNRECOGNIZED DISK TYPE")],4)}}return d}()},16830:function(A,r,n){"use strict";r.__esModule=!0,r.LatheCategory=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(52662),f=r.LatheCategory=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.data,d=k.act,c=g.category,m=g.matching_designs,l=g.menu,u=l===4,s=u?"build":"imprint";return(0,e.createComponentVNode)(2,t.Section,{title:c,children:[(0,e.createComponentVNode)(2,o.LatheMaterials),(0,e.createComponentVNode)(2,t.Table,{className:"RndConsole__LatheCategory__MatchingDesigns",children:m.map(function(i){var h=i.id,C=i.name,v=i.can_build,p=i.materials;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:C,disabled:v<1,onClick:function(){function N(){return d(s,{id:h,amount:1})}return N}()})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v>=5?(0,e.createComponentVNode)(2,t.Button,{content:"x5",onClick:function(){function N(){return d(s,{id:h,amount:5})}return N}()}):null}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:v>=10?(0,e.createComponentVNode)(2,t.Button,{content:"x10",onClick:function(){function N(){return d(s,{id:h,amount:10})}return N}()}):null}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.map(function(N){return(0,e.createFragment)([" | ",(0,e.createVNode)(1,"span",N.is_red?"color-red":null,[N.amount,(0,e.createTextVNode)(" "),N.name],0)],0)})})]},h)})})]})}return b}()},70497:function(A,r,n){"use strict";r.__esModule=!0,r.LatheChemicalStorage=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheChemicalStorage=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data,g=I.act,d=k.loaded_chemicals,c=k.menu===4;return(0,e.createComponentVNode)(2,t.Section,{title:"Chemical Storage",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Purge All",icon:"trash",onClick:function(){function m(){var l=c?"disposeallP":"disposeallI";g(l)}return m}()}),(0,e.createComponentVNode)(2,t.LabeledList,{children:d.map(function(m){var l=m.volume,u=m.name,s=m.id;return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"* "+l+" of "+u,children:(0,e.createComponentVNode)(2,t.Button,{content:"Purge",icon:"trash",onClick:function(){function i(){var h=c?"disposeP":"disposeI";g(h,{id:s})}return i}()})},s)})})]})}return f}()},70864:function(A,r,n){"use strict";r.__esModule=!0,r.LatheMainMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(52662),f=n(68198),b=r.LatheMainMenu=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.data,c=g.act,m=d.menu,l=d.categories,u=m===4?"Protolathe":"Circuit Imprinter";return(0,e.createComponentVNode)(2,t.Section,{title:u+" Menu",children:[(0,e.createComponentVNode)(2,o.LatheMaterials),(0,e.createComponentVNode)(2,f.LatheSearch),(0,e.createComponentVNode)(2,t.Divider),(0,e.createComponentVNode)(2,t.Flex,{wrap:"wrap",children:l.map(function(s){return(0,e.createComponentVNode)(2,t.Flex,{style:{"flex-basis":"50%","margin-bottom":"6px"},children:(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-right",content:s,onClick:function(){function i(){c("setCategory",{category:s})}return i}()})},s)})})]})}return S}()},42878:function(A,r,n){"use strict";r.__esModule=!0,r.LatheMaterialStorage=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheMaterialStorage=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data,g=I.act,d=k.loaded_materials;return(0,e.createComponentVNode)(2,t.Section,{className:"RndConsole__LatheMaterialStorage",title:"Material Storage",children:(0,e.createComponentVNode)(2,t.Table,{children:d.map(function(c){var m=c.id,l=c.amount,u=c.name,s=function(){function v(p){var N=k.menu===4?"lathe_ejectsheet":"imprinter_ejectsheet";g(N,{id:m,amount:p})}return v}(),i=Math.floor(l/2e3),h=l<1,C=i===1?"":"s";return(0,e.createComponentVNode)(2,t.Table.Row,{className:h?"color-grey":"color-yellow",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{minWidth:"210px",children:["* ",l," of ",u]}),(0,e.createComponentVNode)(2,t.Table.Cell,{minWidth:"110px",children:["(",i," sheet",C,")"]}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l>=2e3?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:"1x",icon:"eject",onClick:function(){function v(){return s(1)}return v}()}),(0,e.createComponentVNode)(2,t.Button,{content:"C",icon:"eject",onClick:function(){function v(){return s("custom")}return v}()}),l>=2e3*5?(0,e.createComponentVNode)(2,t.Button,{content:"5x",icon:"eject",onClick:function(){function v(){return s(5)}return v}()}):null,(0,e.createComponentVNode)(2,t.Button,{content:"All",icon:"eject",onClick:function(){function v(){return s(50)}return v}()})],0):null})]},m)})})})}return f}()},52662:function(A,r,n){"use strict";r.__esModule=!0,r.LatheMaterials=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheMaterials=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data,g=k.total_materials,d=k.max_materials,c=k.max_chemicals,m=k.total_chemicals;return(0,e.createComponentVNode)(2,t.Box,{className:"RndConsole__LatheMaterials",mb:"10px",children:(0,e.createComponentVNode)(2,t.Table,{width:"auto",children:[(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Material Amount:"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:g}),d?(0,e.createComponentVNode)(2,t.Table.Cell,{children:" / "+d}):null]}),(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:"Chemical Amount:"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:m}),c?(0,e.createComponentVNode)(2,t.Table.Cell,{children:" / "+c}):null]})]})})}return f}()},9681:function(A,r,n){"use strict";r.__esModule=!0,r.LatheMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(12644),f=n(70864),b=n(16830),S=n(42878),I=n(70497),k=["menu"];function g(u,s){if(u==null)return{};var i={};for(var h in u)if({}.hasOwnProperty.call(u,h)){if(s.includes(h))continue;i[h]=u[h]}return i}var d=t.Tabs.Tab,c=function(s,i){var h=(0,a.useBackend)(i),C=h.act,v=h.data,p=v.menu===o.MENU.LATHE?["nav_protolathe",v.submenu_protolathe]:["nav_imprinter",v.submenu_imprinter],N=p[0],V=p[1],y=s.menu,B=g(s,k);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,d,Object.assign({selected:V===y,onClick:function(){function L(){return C(N,{menu:y})}return L}()},B)))},m=function(s){switch(s){case o.PRINTER_MENU.MAIN:return(0,e.createComponentVNode)(2,f.LatheMainMenu);case o.PRINTER_MENU.SEARCH:return(0,e.createComponentVNode)(2,b.LatheCategory);case o.PRINTER_MENU.MATERIALS:return(0,e.createComponentVNode)(2,S.LatheMaterialStorage);case o.PRINTER_MENU.CHEMICALS:return(0,e.createComponentVNode)(2,I.LatheChemicalStorage)}},l=r.LatheMenu=function(){function u(s,i){var h=(0,a.useBackend)(i),C=h.data,v=C.menu,p=C.linked_lathe,N=C.linked_imprinter;return v===o.MENU.LATHE&&!p?(0,e.createComponentVNode)(2,t.Box,{children:"NO PROTOLATHE LINKED TO CONSOLE"}):v===o.MENU.IMPRINTER&&!N?(0,e.createComponentVNode)(2,t.Box,{children:"NO CIRCUIT IMPRITER LINKED TO CONSOLE"}):(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.MAIN,icon:"bars",children:"Main Menu"}),(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.MATERIALS,icon:"layer-group",children:"Materials"}),(0,e.createComponentVNode)(2,c,{menu:o.PRINTER_MENU.CHEMICALS,icon:"flask-vial",children:"Chemicals"})]}),m(C.menu===o.MENU.LATHE?C.submenu_protolathe:C.submenu_imprinter)]})}return u}()},68198:function(A,r,n){"use strict";r.__esModule=!0,r.LatheSearch=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LatheSearch=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act;return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"Search...",onEnter:function(){function g(d,c){return k("search",{to_search:c})}return g}()})})}return f}()},81421:function(A,r,n){"use strict";r.__esModule=!0,r.LinkMenu=void 0;var e=n(89005),a=n(72253),t=n(98595),o=n(36036),f=r.LinkMenu=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.controllers;return(0,e.createComponentVNode)(2,t.Window,{width:800,height:550,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Setup Linkage",children:(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Link"})]}),c.map(function(m){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:m.addr}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:m.net_id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Link",icon:"link",onClick:function(){function l(){return g("linktonetworkcontroller",{target_controller:m.addr})}return l}()})})]},m.addr)})]})})})})}return b}()},6256:function(A,r,n){"use strict";r.__esModule=!0,r.SettingsMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.SettingsMenu=function(){function S(I,k){return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,f),(0,e.createComponentVNode)(2,b)]})}return S}(),f=function(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.sync,l=c.admin;return(0,e.createComponentVNode)(2,t.Section,{title:"Settings",children:(0,e.createComponentVNode)(2,t.Flex,{direction:"column",align:"flex-start",children:(0,e.createComponentVNode)(2,t.Button,{color:"red",icon:"unlink",content:"Disconnect from Research Network",onClick:function(){function u(){d("unlink")}return u}()})})})},b=function(I,k){var g=(0,a.useBackend)(k),d=g.data,c=g.act,m=d.linked_analyzer,l=d.linked_lathe,u=d.linked_imprinter;return(0,e.createComponentVNode)(2,t.Section,{title:"Linked Devices",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"link",content:"Re-sync with Nearby Devices",onClick:function(){function s(){return c("find_device")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Scientific Analyzer",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!m,content:m?"Unlink":"Undetected",onClick:function(){function s(){return c("disconnect",{item:"analyze"})}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Protolathe",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!l,content:l?"Unlink":"Undetected",onClick:function(){function s(){c("disconnect",{item:"lathe"})}return s}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Circuit Imprinter",children:(0,e.createComponentVNode)(2,t.Button,{icon:"unlink",disabled:!u,content:u?"Unlink":"Undetected",onClick:function(){function s(){return c("disconnect",{item:"imprinter"})}return s}()})})]})})}},12644:function(A,r,n){"use strict";r.__esModule=!0,r.RndConsole=r.PRINTER_MENU=r.MENU=void 0;var e=n(89005),a=n(72253),t=n(98595),o=n(36036),f=n(35840),b=n(37556),S=n(9681),I=n(81421),k=n(6256),g=n(68303),d=["menu"];function c(p,N){if(p==null)return{};var V={};for(var y in p)if({}.hasOwnProperty.call(p,y)){if(N.includes(y))continue;V[y]=p[y]}return V}var m=o.Tabs.Tab,l=r.MENU={MAIN:0,DISK:2,ANALYZE:3,LATHE:4,IMPRINTER:5,SETTINGS:6},u=r.PRINTER_MENU={MAIN:0,SEARCH:1,MATERIALS:2,CHEMICALS:3},s=function(N){switch(N){case l.MAIN:return(0,e.createComponentVNode)(2,v);case l.DISK:return(0,e.createComponentVNode)(2,b.DataDiskMenu);case l.ANALYZE:return(0,e.createComponentVNode)(2,g.AnalyzerMenu);case l.LATHE:case l.IMPRINTER:return(0,e.createComponentVNode)(2,S.LatheMenu);case l.SETTINGS:return(0,e.createComponentVNode)(2,k.SettingsMenu);default:return"UNKNOWN MENU"}},i=function(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data,w=L.menu,x=N.menu,T=c(N,d);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,m,Object.assign({selected:w===x,onClick:function(){function M(){return B("nav",{menu:x})}return M}()},T)))},h=r.RndConsole=function(){function p(N,V){var y=(0,a.useBackend)(V),B=y.act,L=y.data;if(!L.linked)return(0,e.createComponentVNode)(2,I.LinkMenu);var w=L.menu,x=L.linked_analyzer,T=L.linked_lathe,M=L.linked_imprinter,O=L.wait_message;return(0,e.createComponentVNode)(2,t.Window,{width:800,height:550,children:(0,e.createComponentVNode)(2,t.Window.Content,{children:(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole",children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,i,{icon:"flask",menu:l.MAIN,children:"Research"}),!!x&&(0,e.createComponentVNode)(2,i,{icon:"microscope",menu:l.ANALYZE,children:"Analyze"}),!!T&&(0,e.createComponentVNode)(2,i,{icon:"print",menu:l.LATHE,children:"Protolathe"}),!!M&&(0,e.createComponentVNode)(2,i,{icon:"memory",menu:l.IMPRINTER,children:"Imprinter"}),(0,e.createComponentVNode)(2,i,{icon:"floppy-disk",menu:l.DISK,children:"Disk"}),(0,e.createComponentVNode)(2,i,{icon:"cog",menu:l.SETTINGS,children:"Settings"})]}),s(w),(0,e.createComponentVNode)(2,C)]})})})}return p}(),C=function(N,V){var y=(0,a.useBackend)(V),B=y.data,L=B.wait_message;return L?(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole__Overlay",children:(0,e.createComponentVNode)(2,o.Box,{className:"RndConsole__Overlay__Wrapper",children:(0,e.createComponentVNode)(2,o.NoticeBox,{color:"black",children:L})})}):null},v=function(N,V){var y=(0,a.useBackend)(V),B=y.data,L=B.tech_levels;return(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.Table,{id:"research-levels",children:[(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Research Field"}),(0,e.createComponentVNode)(2,o.Table.Cell,{header:!0,children:"Level"})]}),L.map(function(w){var x=w.id,T=w.name,M=w.desc,O=w.level,D=w.ui_icon;return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{icon:"circle-info",tooltip:M})}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:D})," ",T]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:O})]},x)})]})})}},29205:function(A,r,n){"use strict";r.__esModule=!0,r.RndNetController=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=r.RndNetController=function(){function k(g,d){var c=(0,t.useBackend)(d),m=c.act,l=c.data,u=l.ion,s=(0,t.useLocalState)(d,"mainTabIndex",0),i=s[0],h=s[1],C=function(){function v(p){switch(p){case 0:return(0,e.createComponentVNode)(2,S);case 1:return(0,e.createComponentVNode)(2,I);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}}return v}();return(0,e.createComponentVNode)(2,f.Window,{width:900,height:600,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"wrench",selected:i===0,onClick:function(){function v(){return h(0)}return v}(),children:"Network Management"},"ConfigPage"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"floppy-disk",selected:i===1,onClick:function(){function v(){return h(1)}return v}(),children:"Design Management"},"DesignPage")]}),C(i)]})})}return k}(),S=function(g,d){var c=(0,t.useBackend)(d),m=c.act,l=c.data,u=(0,t.useLocalState)(d,"filterType","ALL"),s=u[0],i=u[1],h=l.network_password,C=l.network_name,v=l.devices,p=[];p.push(s),s==="MSC"&&(p.push("BCK"),p.push("PGN"));var N=s==="ALL"?v:v.filter(function(V){return p.indexOf(V.dclass)>-1});return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Section,{title:"Network Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Network Name",children:(0,e.createComponentVNode)(2,o.Button,{content:C||"Unset",selected:C,icon:"edit",onClick:function(){function V(){return m("network_name")}return V}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Network Password",children:(0,e.createComponentVNode)(2,o.Button,{content:h||"Unset",selected:h,icon:"lock",onClick:function(){function V(){return m("network_password")}return V}()})})]})}),(0,e.createComponentVNode)(2,o.Section,{title:"Connected Devices",children:[(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="ALL",onClick:function(){function V(){return i("ALL")}return V}(),icon:"network-wired",children:"All Devices"},"AllDevices"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="SRV",onClick:function(){function V(){return i("SRV")}return V}(),icon:"server",children:"R&D Servers"},"RNDServers"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="RDC",onClick:function(){function V(){return i("RDC")}return V}(),icon:"desktop",children:"R&D Consoles"},"RDConsoles"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="MFB",onClick:function(){function V(){return i("MFB")}return V}(),icon:"industry",children:"Exosuit Fabricators"},"Mechfabs"),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:s==="MSC",onClick:function(){function V(){return i("MSC")}return V}(),icon:"microchip",children:"Miscellaneous Devices"},"Misc")]}),(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Device Name"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Device ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Unlink"})]}),N.map(function(V){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:V.name}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:V.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function y(){return m("unlink_device",{dclass:V.dclass,uid:V.id})}return y}()})})]},V.id)})]})]})],4)},I=function(g,d){var c=(0,t.useBackend)(d),m=c.act,l=c.data,u=l.designs,s=(0,t.useLocalState)(d,"searchText",""),i=s[0],h=s[1];return(0,e.createComponentVNode)(2,o.Section,{title:"Design Management",children:[(0,e.createComponentVNode)(2,o.Input,{fluid:!0,placeholder:"Search for designs",mb:2,onInput:function(){function C(v,p){return h(p)}return C}()}),u.filter((0,a.createSearch)(i,function(C){return C.name})).map(function(C){return(0,e.createComponentVNode)(2,o.Button.Checkbox,{fluid:!0,content:C.name,checked:!C.blacklisted,onClick:function(){function v(){return m(C.blacklisted?"unblacklist_design":"blacklist_design",{d_uid:C.uid})}return v}()},C.name)})]})}},63315:function(A,r,n){"use strict";r.__esModule=!0,r.RndServer=void 0;var e=n(89005),a=n(72253),t=n(44879),o=n(36036),f=n(98595),b=r.RndServer=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.active,s=l.network_name;return(0,e.createComponentVNode)(2,f.Window,{width:600,height:500,resizable:!0,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,o.Section,{title:"Server Configuration",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Machine power",children:(0,e.createComponentVNode)(2,o.Button,{content:u?"On":"Off",selected:u,icon:"power-off",onClick:function(){function i(){return m("toggle_active")}return i}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Link status",children:s===null?(0,e.createComponentVNode)(2,o.Box,{color:"red",children:"Unlinked"}):(0,e.createComponentVNode)(2,o.Box,{color:"green",children:"Linked"})})]})}),s===null?(0,e.createComponentVNode)(2,I):(0,e.createComponentVNode)(2,S)]})})}return k}(),S=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.network_name;return(0,e.createComponentVNode)(2,o.Section,{title:"Network Info",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Connected network ID",children:u}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Unlink",children:(0,e.createComponentVNode)(2,o.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function s(){return m("unlink")}return s}()})})]})})},I=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.controllers;return(0,e.createComponentVNode)(2,o.Section,{title:"Detected Cores",children:(0,e.createComponentVNode)(2,o.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,o.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:"Link"})]}),u.map(function(s){return(0,e.createComponentVNode)(2,o.Table.Row,{children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:s.netname}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{content:"Link",icon:"link",onClick:function(){function i(){return m("link",{addr:s.addr})}return i}()})})]},s.addr)})]})})}},26109:function(A,r,n){"use strict";r.__esModule=!0,r.RobotSelfDiagnosis=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(25328),b=function(k,g){var d=k/g;return d<=.2?"good":d<=.5?"average":"bad"},S=r.RobotSelfDiagnosis=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.data,m=c.component_data;return(0,e.createComponentVNode)(2,o.Window,{width:280,height:480,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:m.map(function(l,u){return(0,e.createComponentVNode)(2,t.Section,{title:(0,f.capitalize)(l.name),children:l.installed<=0?(0,e.createComponentVNode)(2,t.NoticeBox,{m:-.5,height:3.5,color:"red",style:{"font-style":"normal"},children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",children:(0,e.createComponentVNode)(2,t.Flex.Item,{grow:1,textAlign:"center",align:"center",color:"#e8e8e8",children:l.installed===-1?"Destroyed":"Missing"})})}):(0,e.createComponentVNode)(2,t.Flex,{children:[(0,e.createComponentVNode)(2,t.Flex.Item,{width:"72%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Brute Damage",color:b(l.brute_damage,l.max_damage),children:l.brute_damage}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Burn Damage",color:b(l.electronic_damage,l.max_damage),children:l.electronic_damage})]})}),(0,e.createComponentVNode)(2,t.Flex.Item,{width:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Powered",color:l.powered?"good":"bad",children:l.powered?"Yes":"No"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Enabled",color:l.status?"good":"bad",children:l.status?"Yes":"No"})]})})]})},u)})})})}return I}()},97997:function(A,r,n){"use strict";r.__esModule=!0,r.RoboticsControlConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.RoboticsControlConsole=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.can_hack,l=c.safety,u=c.show_lock_all,s=c.cyborgs,i=s===void 0?[]:s;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:460,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[!!u&&(0,e.createComponentVNode)(2,t.Section,{title:"Emergency Lock Down",children:[(0,e.createComponentVNode)(2,t.Button,{icon:l?"lock":"unlock",content:l?"Disable Safety":"Enable Safety",selected:l,onClick:function(){function h(){return d("arm",{})}return h}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"lock",disabled:l,content:"Lock ALL Cyborgs",color:"bad",onClick:function(){function h(){return d("masslock",{})}return h}()})]}),(0,e.createComponentVNode)(2,b,{cyborgs:i,can_hack:m})]})})}return S}(),b=function(I,k){var g=I.cyborgs,d=I.can_hack,c=(0,a.useBackend)(k),m=c.act,l=c.data,u="Detonate";return l.detonate_cooldown>0&&(u+=" ("+l.detonate_cooldown+"s)"),g.length?g.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name,buttons:(0,e.createFragment)([!!s.hackable&&!s.emagged&&(0,e.createComponentVNode)(2,t.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){function i(){return m("hackbot",{uid:s.uid})}return i}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:s.locked_down?"unlock":"lock",color:s.locked_down?"good":"default",content:s.locked_down?"Release":"Lockdown",disabled:!l.auth,onClick:function(){function i(){return m("stopbot",{uid:s.uid})}return i}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"bomb",content:u,disabled:!l.auth||l.detonate_cooldown>0,color:"bad",onClick:function(){function i(){return m("killbot",{uid:s.uid})}return i}()})],0),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:(0,e.createComponentVNode)(2,t.Box,{color:s.status?"bad":s.locked_down?"average":"good",children:s.status?"Not Responding":s.locked_down?"Locked Down":"Nominal"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:(0,e.createComponentVNode)(2,t.Box,{children:s.locstring})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:s.health>50?"good":"bad",value:s.health/100})}),typeof s.charge=="number"&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell Charge",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:s.charge>30?"good":"bad",value:s.charge/100})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell Capacity",children:(0,e.createComponentVNode)(2,t.Box,{color:s.cell_capacity<3e4?"average":"good",children:s.cell_capacity})})],4)||(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cell",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"No Power Cell"})}),!!s.is_hacked&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safeties",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"DISABLED"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Module",children:s.module}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Master AI",children:(0,e.createComponentVNode)(2,t.Box,{color:s.synchronization?"default":"average",children:s.synchronization||"None"})})]})},s.uid)}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No cyborg units detected within access parameters."})}},54431:function(A,r,n){"use strict";r.__esModule=!0,r.Safe=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Safe=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.dial,s=l.open,i=l.locked,h=l.contents;return(0,e.createComponentVNode)(2,o.Window,{theme:"safe",width:600,height:800,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving",children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving--hinge",top:"25%"}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--engraving--hinge",top:"75%"})]}),(0,e.createComponentVNode)(2,t.Icon,{className:"Safe--engraving--arrow",name:"long-arrow-alt-down",size:"3"}),(0,e.createVNode)(1,"br"),s?(0,e.createComponentVNode)(2,S):(0,e.createComponentVNode)(2,t.Box,{as:"img",className:"Safe--dial",src:"safe_dial.png",style:{transform:"rotate(-"+3.6*u+"deg)","z-index":0}})]}),!s&&(0,e.createComponentVNode)(2,I)]})})}return k}(),b=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.dial,s=l.open,i=l.locked,h=function(v,p){return(0,e.createComponentVNode)(2,t.Button,{disabled:s||p&&!i,icon:"arrow-"+(p?"right":"left"),content:(p?"Right":"Left")+" "+v,iconRight:p,onClick:function(){function N(){return m(p?"turnleft":"turnright",{num:v})}return N}(),style:{"z-index":10}})};return(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer",children:[(0,e.createComponentVNode)(2,t.Button,{disabled:i,icon:s?"lock":"lock-open",content:s?"Close":"Open",mb:"0.5rem",onClick:function(){function C(){return m("open")}return C}()}),(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Box,{position:"absolute",children:[h(50),h(10),h(1)]}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer--right",position:"absolute",right:"5px",children:[h(1,!0),h(10,!0),h(50,!0)]}),(0,e.createComponentVNode)(2,t.Box,{className:"Safe--dialer--number",children:u})]})},S=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.contents;return(0,e.createComponentVNode)(2,t.Box,{className:"Safe--contents",overflow:"auto",children:u.map(function(s,i){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{mb:"0.5rem",onClick:function(){function h(){return m("retrieve",{index:i+1})}return h}(),children:[(0,e.createComponentVNode)(2,t.Box,{as:"img",src:s.sprite+".png",verticalAlign:"middle",ml:"-6px",mr:"0.5rem"}),s.name]}),(0,e.createVNode)(1,"br")],4,s)})})},I=function(g,d){return(0,e.createComponentVNode)(2,t.Section,{className:"Safe--help",title:"Safe opening instructions (because you all keep forgetting)",children:[(0,e.createComponentVNode)(2,t.Box,{children:["1. Turn the dial left to the first number.",(0,e.createVNode)(1,"br"),"2. Turn the dial right to the second number.",(0,e.createVNode)(1,"br"),"3. Continue repeating this process for each number, switching between left and right each time.",(0,e.createVNode)(1,"br"),"4. Open the safe."]}),(0,e.createComponentVNode)(2,t.Box,{bold:!0,children:"To lock fully, turn the dial to the left after closing the safe."})]})}},29740:function(A,r,n){"use strict";r.__esModule=!0,r.SatelliteControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SatelliteControl=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.satellites,m=d.notice,l=d.meteor_shield,u=d.meteor_shield_coverage,s=d.meteor_shield_coverage_max,i=d.meteor_shield_coverage_percentage;return(0,e.createComponentVNode)(2,o.Window,{width:475,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[l&&(0,e.createComponentVNode)(2,t.Section,{title:"Station Shield Coverage",children:(0,e.createComponentVNode)(2,t.ProgressBar,{color:i>=100?"good":"average",value:u,maxValue:s,children:[i," %"]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Satellite Network Control",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Alert",color:"red",children:d.notice}),c.map(function(h){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"#"+h.id,children:[h.mode," ",(0,e.createComponentVNode)(2,t.Button,{content:h.active?"Deactivate":"Activate",icon:"arrow-circle-right",onClick:function(){function C(){return g("toggle",{id:h.id})}return C}()})]},h.id)})]})})]})})}return b}()},44162:function(A,r,n){"use strict";r.__esModule=!0,r.SecureStorage=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(98595),b=n(36352),S=n(92986),I=r.SecureStorage=function(){function c(m,l){return(0,e.createComponentVNode)(2,f.Window,{theme:"securestorage",height:500,width:280,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,g)})})})})}return c}(),k=function(m,l){var u=(0,t.useBackend)(l),s=u.act,i=window.event?m.which:m.keyCode;if(i===S.KEY_ENTER){m.preventDefault(),s("keypad",{digit:"E"});return}if(i===S.KEY_ESCAPE){m.preventDefault(),s("keypad",{digit:"C"});return}if(i===S.KEY_BACKSPACE){m.preventDefault(),s("backspace");return}if(i>=S.KEY_0&&i<=S.KEY_9){m.preventDefault(),s("keypad",{digit:i-S.KEY_0});return}if(i>=S.KEY_NUMPAD_0&&i<=S.KEY_NUMPAD_9){m.preventDefault(),s("keypad",{digit:i-S.KEY_NUMPAD_0});return}},g=function(m,l){var u=(0,t.useBackend)(l),s=u.act,i=u.data,h=i.locked,C=i.no_passcode,v=i.emagged,p=i.user_entered_code,N=[["1","2","3"],["4","5","6"],["7","8","9"],["C","0","E"]],V=C?"":h?"bad":"good";return(0,e.createComponentVNode)(2,o.Section,{fill:!0,onKeyDown:function(){function y(B){return k(B,l)}return y}(),children:[(0,e.createComponentVNode)(2,o.Stack.Item,{height:7.3,children:(0,e.createComponentVNode)(2,o.Box,{className:(0,a.classes)(["SecureStorage__displayBox","SecureStorage__displayBox--"+V]),height:"100%",children:v?"ERROR":p})}),(0,e.createComponentVNode)(2,o.Table,{children:N.map(function(y){return(0,e.createComponentVNode)(2,b.TableRow,{children:y.map(function(B){return(0,e.createComponentVNode)(2,b.TableCell,{children:(0,e.createComponentVNode)(2,d,{number:B})},B)})},y[0])})})]})},d=function(m,l){var u=(0,t.useBackend)(l),s=u.act,i=u.data,h=m.number;return(0,e.createComponentVNode)(2,o.Button,{fluid:!0,bold:!0,mb:"6px",content:h,textAlign:"center",fontSize:"60px",lineHeight:1.25,width:"80px",className:(0,a.classes)(["SecureStorage__Button","SecureStorage__Button--keypad","SecureStorage__Button--"+h]),onClick:function(){function C(){return s("keypad",{digit:h})}return C}()})}},6272:function(A,r,n){"use strict";r.__esModule=!0,r.SecurityRecords=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(3939),S=n(321),I=n(5485),k=n(22091),g={"*Execute*":"execute","*Arrest*":"arrest",Incarcerated:"incarcerated",Parolled:"parolled",Released:"released",Demote:"demote",Search:"search",Monitor:"monitor"},d=function(p,N){(0,b.modalOpen)(p,"edit",{field:N.edit,value:N.value})},c=r.SecurityRecords=function(){function v(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.loginState,w=B.currentPage,x;if(L.logged_in)w===1?x=(0,e.createComponentVNode)(2,l):w===2&&(x=(0,e.createComponentVNode)(2,i));else return(0,e.createComponentVNode)(2,f.Window,{theme:"security",width:800,height:900,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,I.LoginScreen)})});return(0,e.createComponentVNode)(2,f.Window,{theme:"security",width:800,height:900,children:[(0,e.createComponentVNode)(2,b.ComplexModal),(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,S.LoginInfo),(0,e.createComponentVNode)(2,k.TemporaryNotice),(0,e.createComponentVNode)(2,m),x]})})]})}return v}(),m=function(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.currentPage,w=B.general;return(0,e.createComponentVNode)(2,o.Stack.Item,{m:0,children:(0,e.createComponentVNode)(2,o.Tabs,{children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"list",selected:L===1,onClick:function(){function x(){return y("page",{page:1})}return x}(),children:"List Records"}),L===2&&w&&!w.empty&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{icon:"file",selected:L===2,children:["Record: ",w.fields[0].value]})]})})},l=function(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.records,w=(0,t.useLocalState)(N,"searchText",""),x=w[0],T=w[1],M=(0,t.useLocalState)(N,"sortId","name"),O=M[0],D=M[1],E=(0,t.useLocalState)(N,"sortOrder",!0),P=E[0],R=E[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,s)}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,mt:.5,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,o.Table,{className:"SecurityRecords__list",children:[(0,e.createComponentVNode)(2,o.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,u,{id:"name",children:"Name"}),(0,e.createComponentVNode)(2,u,{id:"id",children:"ID"}),(0,e.createComponentVNode)(2,u,{id:"rank",children:"Assignment"}),(0,e.createComponentVNode)(2,u,{id:"fingerprint",children:"Fingerprint"}),(0,e.createComponentVNode)(2,u,{id:"status",children:"Criminal Status"})]}),L.filter((0,a.createSearch)(x,function(j){return j.name+"|"+j.id+"|"+j.rank+"|"+j.fingerprint+"|"+j.status})).sort(function(j,F){var W=P?1:-1;return j[O].localeCompare(F[O])*W}).map(function(j){return(0,e.createComponentVNode)(2,o.Table.Row,{className:"SecurityRecords__listRow--"+g[j.status],onClick:function(){function F(){return y("view",{uid_gen:j.uid_gen,uid_sec:j.uid_sec})}return F}(),children:[(0,e.createComponentVNode)(2,o.Table.Cell,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user"})," ",j.name]}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:j.id}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:j.rank}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:j.fingerprint}),(0,e.createComponentVNode)(2,o.Table.Cell,{children:j.status})]},j.id)})]})})})],4)},u=function(p,N){var V=(0,t.useLocalState)(N,"sortId","name"),y=V[0],B=V[1],L=(0,t.useLocalState)(N,"sortOrder",!0),w=L[0],x=L[1],T=p.id,M=p.children;return(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Table.Cell,{children:(0,e.createComponentVNode)(2,o.Button,{color:y!==T&&"transparent",fluid:!0,onClick:function(){function O(){y===T?x(!w):(B(T),x(!0))}return O}(),children:[M,y===T&&(0,e.createComponentVNode)(2,o.Icon,{name:w?"sort-up":"sort-down",ml:"0.25rem;"})]})})})},s=function(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.isPrinting,w=(0,t.useLocalState)(N,"searchText",""),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{ml:"0.25rem",content:"New Record",icon:"plus",onClick:function(){function M(){return y("new_general")}return M}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Button,{disabled:L,icon:L?"spinner":"print",iconSpin:!!L,content:"Print Cell Log",onClick:function(){function M(){return(0,b.modalOpen)(N,"print_cell_log")}return M}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by Name, ID, Assignment, Fingerprint, Status",fluid:!0,onInput:function(){function M(O,D){return T(D)}return M}()})})]})},i=function(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.isPrinting,w=B.general,x=B.security;return!w||!w.fields?(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"General records lost!"}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"General Data",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:L,icon:L?"spinner":"print",iconSpin:!!L,content:"Print Record",onClick:function(){function T(){return y("print_record")}return T}()}),(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",tooltip:"WARNING: This will also delete the Security and Medical records associated with this crew member!",tooltipPosition:"bottom-start",content:"Delete Record",onClick:function(){function T(){return y("delete_general")}return T}()})],4),children:(0,e.createComponentVNode)(2,h)})}),!x||!x.fields?(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,title:"Security Data",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"pen",content:"Create New Record",onClick:function(){function T(){return y("new_security")}return T}()}),children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{bold:!0,grow:!0,textAlign:"center",fontSize:1.75,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon.Stack,{children:[(0,e.createComponentVNode)(2,o.Icon,{name:"scroll",size:5,color:"gray"}),(0,e.createComponentVNode)(2,o.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"Security records lost!"]})})})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Security Data",buttons:(0,e.createComponentVNode)(2,o.Button.Confirm,{icon:"trash",disabled:x.empty,content:"Delete Record",onClick:function(){function T(){return y("delete_security")}return T}()}),children:(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:x.fields.map(function(T,M){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:T.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(T.value),!!T.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:T.line_break?"1rem":"initial",onClick:function(){function O(){return d(N,T)}return O}()})]},M)})})})})}),(0,e.createComponentVNode)(2,C)],4)],0)},h=function(p,N){var V=(0,t.useBackend)(N),y=V.data,B=y.general;return!B||!B.fields?(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,color:"bad",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,children:"General records lost!"})})}):(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:B.fields.map(function(L,w){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:L.field,preserveWhitespace:!0,children:[(0,a.decodeHtmlEntities)(""+L.value),!!L.edit&&(0,e.createComponentVNode)(2,o.Button,{icon:"pen",ml:"0.5rem",mb:L.line_break?"1rem":"initial",onClick:function(){function x(){return d(N,L)}return x}()})]},w)})})}),!!B.has_photos&&B.photos.map(function(L,w){return(0,e.createComponentVNode)(2,o.Stack.Item,{inline:!0,textAlign:"center",color:"label",ml:0,children:[(0,e.createVNode)(1,"img",null,null,1,{src:L,style:{width:"96px","margin-top":"5rem","margin-bottom":"0.5rem","-ms-interpolation-mode":"nearest-neighbor","image-rendering":"pixelated"}}),(0,e.createVNode)(1,"br"),"Photo #",w+1]},w)})]})},C=function(p,N){var V=(0,t.useBackend)(N),y=V.act,B=V.data,L=B.security;return(0,e.createComponentVNode)(2,o.Stack.Item,{height:"150px",children:(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Comments/Log",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:"comment",content:"Add Entry",onClick:function(){function w(){return(0,b.modalOpen)(N,"comment_add")}return w}()}),children:L.comments.length===0?(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No comments found."}):L.comments.map(function(w,x){return(0,e.createComponentVNode)(2,o.Box,{preserveWhitespace:!0,children:[(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:w.header||"Auto-generated"}),(0,e.createVNode)(1,"br"),w.text||w,(0,e.createComponentVNode)(2,o.Button,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){function T(){return y("comment_delete",{id:x+1})}return T}()})]},x)})})})}},5099:function(A,r,n){"use strict";r.__esModule=!0,r.SeedExtractor=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=n(98595),b=n(3939);function S(u,s){var i=typeof Symbol!="undefined"&&u[Symbol.iterator]||u["@@iterator"];if(i)return(i=i.call(u)).next.bind(i);if(Array.isArray(u)||(i=I(u))||s&&u&&typeof u.length=="number"){i&&(u=i);var h=0;return function(){return h>=u.length?{done:!0}:{done:!1,value:u[h++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function I(u,s){if(u){if(typeof u=="string")return k(u,s);var i={}.toString.call(u).slice(8,-1);return i==="Object"&&u.constructor&&(i=u.constructor.name),i==="Map"||i==="Set"?Array.from(u):i==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?k(u,s):void 0}}function k(u,s){(s==null||s>u.length)&&(s=u.length);for(var i=0,h=Array(s);i=x},C=function(w,x){return w<=x},v=s.split(" "),p=[],N=function(){var w=B.value,x=w.split(":");if(x.length===0)return 0;if(x.length===1)return p.push(function(O){return(O.name+" ("+O.variant+")").toLocaleLowerCase().includes(x[0].toLocaleLowerCase())}),0;if(x.length>2)return{v:function(){function O(D){return!1}return O}()};var T,M=i;if(x[1][x[1].length-1]==="-"?(M=C,T=Number(x[1].substring(0,x[1].length-1))):x[1][x[1].length-1]==="+"?(M=h,T=Number(x[1].substring(0,x[1].length-1))):T=Number(x[1]),isNaN(T))return{v:function(){function O(D){return!1}return O}()};switch(x[0].toLocaleLowerCase()){case"l":case"life":case"lifespan":p.push(function(O){return M(O.lifespan,T)});break;case"e":case"end":case"endurance":p.push(function(O){return M(O.endurance,T)});break;case"m":case"mat":case"maturation":p.push(function(O){return M(O.maturation,T)});break;case"pr":case"prod":case"production":p.push(function(O){return M(O.production,T)});break;case"y":case"yield":p.push(function(O){return M(O.yield,T)});break;case"po":case"pot":case"potency":p.push(function(O){return M(O.potency,T)});break;case"s":case"stock":case"c":case"count":case"a":case"amount":p.push(function(O){return M(O.amount,T)});break;default:return{v:function(){function O(D){return!1}return O}()}}},V,y=S(v),B;!(B=y()).done;)if(V=N(),V!==0&&V)return V.v;return function(L){for(var w=0,x=p;w=1?Number(M):1)}return x}()})]})]})}},17474:function(A,r,n){"use strict";r.__esModule=!0,r.Shop=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(25328),f=n(72253),b=n(36036),S=n(98595),I=n(3939),k=function(h){switch(h){case 0:return(0,e.createComponentVNode)(2,d);case 1:return(0,e.createComponentVNode)(2,c);default:return"\u041E\u0428\u0418\u0411\u041A\u0410, \u0421\u041E\u041E\u0411\u0429\u0418\u0422\u0415 \u0420\u0410\u0417\u0420\u0410\u0411\u041E\u0422\u0427\u0418\u041A\u0423"}},g=r.Shop=function(){function i(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=N.cart,y=(0,f.useLocalState)(C,"tabIndex",0),B=y[0],L=y[1];return(0,e.createComponentVNode)(2,S.Window,{width:900,height:600,theme:"abductor",children:[(0,e.createComponentVNode)(2,I.ComplexModal),(0,e.createComponentVNode)(2,S.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Tabs,{children:[(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:B===0,onClick:function(){function w(){L(0)}return w}(),icon:"store",children:"\u0422\u043E\u0440\u0433\u043E\u0432\u043B\u044F"},"PurchasePage"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:B===1,onClick:function(){function w(){L(1)}return w}(),icon:"shopping-cart",children:["\u041A\u043E\u0440\u0437\u0438\u043D\u0430 ",V&&V.length?"("+V.length+")":""]},"Cart")]})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:k(B)})]})})]})}return i}(),d=function(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=N.cash,y=N.cats,B=(0,f.useLocalState)(C,"shopItems",y[0].items),L=B[0],w=B[1],x=(0,f.useLocalState)(C,"showDesc",1),T=x[0],M=x[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Section,{title:"\u0421\u0440\u0435\u0434\u0441\u0442\u0432\u0430: "+V+"\u043A",buttons:(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438",checked:T,onClick:function(){function O(){return M(!T)}return O}()})})})}),(0,e.createComponentVNode)(2,b.Stack,{fill:!0,mt:.3,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:y.map(function(O){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:O.items===L,onClick:function(){function D(){w(O.items)}return D}(),children:O.cat},O)})})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:L.map(function(O){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,m,{i:O,showDecription:T},(0,o.decodeHtmlEntities)(O.name))},(0,o.decodeHtmlEntities)(O.name))})})})})]})]})},c=function(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=N.cart,y=N.cash,B=N.cart_price,L=(0,f.useLocalState)(C,"showDesc",0),w=L[0],x=L[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"\u0421\u0440\u0435\u0434\u0441\u0442\u0432\u0430: "+y+"\u043A",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438",checked:w,onClick:function(){function T(){return x(!w)}return T}()}),(0,e.createComponentVNode)(2,b.Button,{content:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",icon:"trash",onClick:function(){function T(){return p("empty_cart")}return T}(),disabled:!V}),(0,e.createComponentVNode)(2,b.Button,{content:"\u041E\u043F\u043B\u0430\u0442\u0438\u0442\u044C ("+B+"\u043A)",icon:"shopping-cart",onClick:function(){function T(){return p("purchase_cart")}return T}(),disabled:!V||B>y})],4),children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:V?V.map(function(T){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,mr:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,m,{i:T,showDecription:w,buttons:(0,e.createComponentVNode)(2,u,{i:T})})},(0,o.decodeHtmlEntities)(T.name))}):(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:"\u0412\u0430\u0448\u0430 \u043A\u043E\u0440\u0437\u0438\u043D\u0430 \u043F\u0443\u0441\u0442\u0430!"})})})})})},m=function(h,C){var v=h.i,p=h.showDecription,N=p===void 0?1:p,V=h.buttons,y=V===void 0?(0,e.createComponentVNode)(2,l,{i:v}):V;return(0,e.createComponentVNode)(2,b.Section,{title:(0,o.decodeHtmlEntities)(v.name),showBottom:N,buttons:y,children:[N?(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:(0,o.decodeHtmlEntities)(v.desc)}):null,N?(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:(0,o.decodeHtmlEntities)(v.content)}):null]})},l=function(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=h.i,y=N.cash;return(0,e.createComponentVNode)(2,b.Button,{icon:"shopping-cart",content:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 ("+V.cost+" \u041A\u0438\u043A\u0438\u0440\u0438\u0434\u0438\u0442\u043E\u0432)",color:V.limit!==-1&&"red",tooltip:"\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u043E\u0432\u0430\u0440 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443, \u0443\u0432\u0435\u043B\u0438\u0447\u0438\u0432 \u043E\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043B\u043E \u0434\u0430\u043D\u043D\u043E\u0433\u043E \u0442\u043E\u0432\u0430\u0440\u0430. \u0426\u0435\u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u0430 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u043E\u0442 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044B\u0445 \u0446\u0435\u043D\u043D\u043E\u0441\u0442\u0435\u0439 \u0432 \u0420\u0430\u0441\u0447\u0438\u0447\u0435\u0442\u0447\u0438\u043A\u0438\u043A\u0435.",tooltipPosition:"left",onClick:function(){function B(){return p("add_to_cart",{item:V.obj_path})}return B}(),disabled:V.cost>y||V.limit!==-1&&V.purchased>=V.limit||V.is_time_available===!1})},u=function(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=h.i;return(0,e.createComponentVNode)(2,b.Stack,{children:[(0,e.createComponentVNode)(2,b.Button,{icon:"times",content:"("+V.cost*V.amount+"\u043A)",tooltip:"\u0423\u0431\u0440\u0430\u0442\u044C \u0438\u0437 \u043A\u043E\u0440\u0437\u0438\u043D\u044B.",tooltipPosition:"left",onClick:function(){function y(){return p("remove_from_cart",{item:V.obj_path})}return y}()}),(0,e.createComponentVNode)(2,b.Button,{icon:"minus",ml:"5px",onClick:function(){function y(){return p("set_cart_item_quantity",{item:V.obj_path,quantity:--V.amount})}return y}(),disabled:V.amount<=0}),(0,e.createComponentVNode)(2,b.Button.Input,{content:V.amount,width:"45px",tooltipPosition:"bottom-end",onCommit:function(){function y(B,L){return p("set_cart_item_quantity",{item:V.obj_path,quantity:L})}return y}(),disabled:V.limit!==-1&&V.amount>=V.limit&&V.amount<=0}),(0,e.createComponentVNode)(2,b.Button,{mb:.3,icon:"plus",tooltipPosition:"bottom-start",tooltip:V.limit===0&&"Discount already redeemed!",onClick:function(){function y(){return p("set_cart_item_quantity",{item:V.obj_path,quantity:++V.amount})}return y}(),disabled:V.limit!==-1&&V.amount>=V.limit})]})},s=function(h,C){var v=(0,f.useBackend)(C),p=v.act,N=v.data,V=h.pack;return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,horizontal:!0,children:(0,e.createComponentVNode)(2,b.Stack.Item,{width:"70%",children:V.content_images.map(function(y){return(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+y,style:{"vertical-align":"middle",width:"32px",margin:"0px","margin-left":"0px"}})},y.ref)})})})}},2916:function(A,r,n){"use strict";r.__esModule=!0,r.ShuttleConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ShuttleConsole=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:150,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:d.status?d.status:(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"Shuttle Missing"})}),!!d.shuttle&&(!!d.docking_ports_len&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Send to ",children:d.docking_ports.map(function(c){return(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",content:c.name,onClick:function(){function m(){return g("move",{move:c.id})}return m}()},c.name)})})||(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",color:"red",children:(0,e.createComponentVNode)(2,t.NoticeBox,{color:"red",children:"Shuttle Locked"})}),!!d.admin_controlled&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Authorization",children:(0,e.createComponentVNode)(2,t.Button,{icon:"exclamation-circle",content:"Request Authorization",disabled:!d.status,onClick:function(){function c(){return g("request")}return c}()})})],0))]})})})})}return b}()},39401:function(A,r,n){"use strict";r.__esModule=!0,r.ShuttleManipulator=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.ShuttleManipulator=function(){function k(g,d){var c=(0,a.useLocalState)(d,"tabIndex",0),m=c[0],l=c[1],u=function(){function s(i){switch(i){case 0:return(0,e.createComponentVNode)(2,b);case 1:return(0,e.createComponentVNode)(2,S);case 2:return(0,e.createComponentVNode)(2,I);default:return"WE SHOULDN'T BE HERE!"}}return s}();return(0,e.createComponentVNode)(2,o.Window,{width:650,height:700,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Box,{fillPositionedParent:!0,children:[(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===0,onClick:function(){function s(){return l(0)}return s}(),icon:"info-circle",children:"Status"},"Status"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===1,onClick:function(){function s(){return l(1)}return s}(),icon:"file-import",children:"Templates"},"Templates"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:m===2,onClick:function(){function s(){return l(2)}return s}(),icon:"tools",children:"Modification"},"Modification")]}),u(m)]})})})}return k}(),b=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.shuttles;return(0,e.createComponentVNode)(2,t.Box,{children:u.map(function(s){return(0,e.createComponentVNode)(2,t.Section,{title:s.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"ID",children:s.id}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Timer",children:s.timeleft}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Mode",children:s.mode}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shuttle Status",children:s.status}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){function i(){return m("jump_to",{type:"mobile",id:s.id})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Fast Travel",icon:"fast-forward",onClick:function(){function i(){return m("fast_travel",{id:s.id})}return i}()})]})]})},s.name)})})},S=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.templates_tabs,s=l.existing_shuttle,i=l.templates;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Tabs,{children:u.map(function(h){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:h===s.id,icon:"file",onClick:function(){function C(){return m("select_template_category",{cat:h})}return C}(),children:h},h)})}),!!s&&i[s.id].templates.map(function(h){return(0,e.createComponentVNode)(2,t.Section,{title:h.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[h.description&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:h.description}),h.admin_notes&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Admin Notes",children:h.admin_notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{content:"Load Template",icon:"download",onClick:function(){function C(){return m("select_template",{shuttle_id:h.shuttle_id})}return C}()})})]})},h.name)})]})},I=function(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.existing_shuttle,s=l.selected;return(0,e.createComponentVNode)(2,t.Box,{children:[u?(0,e.createComponentVNode)(2,t.Section,{title:"Selected Shuttle: "+u.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:u.status}),u.timer&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Timer",children:u.timeleft}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:(0,e.createComponentVNode)(2,t.Button,{content:"Jump To",icon:"location-arrow",onClick:function(){function i(){return m("jump_to",{type:"mobile",id:u.id})}return i}()})})]})}):(0,e.createComponentVNode)(2,t.Section,{title:"Selected Shuttle: None"}),s?(0,e.createComponentVNode)(2,t.Section,{title:"Selected Template: "+s.name,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[s.description&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Description",children:s.description}),s.admin_notes&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Admin Notes",children:s.admin_notes}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Preview",icon:"eye",onClick:function(){function i(){return m("preview",{shuttle_id:s.shuttle_id})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Load",icon:"download",onClick:function(){function i(){return m("load",{shuttle_id:s.shuttle_id})}return i}()})]})]})}):(0,e.createComponentVNode)(2,t.Section,{title:"Selected Template: None"})]})}},86013:function(A,r,n){"use strict";r.__esModule=!0,r.SingularityMonitor=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(44879),f=n(72253),b=n(36036),S=n(76910),I=n(98595),k=n(36352),g=r.SingularityMonitor=function(){function l(u,s){var i=(0,f.useBackend)(s),h=i.act,C=i.data;return C.active===0?(0,e.createComponentVNode)(2,c):(0,e.createComponentVNode)(2,m)}return l}(),d=function(u){return Math.log2(16+Math.max(0,u))-4},c=function(u,s){var i=(0,f.useBackend)(s),h=i.act,C=i.data,v=C.singularities,p=v===void 0?[]:v;return(0,e.createComponentVNode)(2,I.Window,{width:450,height:185,children:(0,e.createComponentVNode)(2,I.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,title:"Detected Singularities",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"sync",content:"Refresh",onClick:function(){function N(){return h("refresh")}return N}()}),children:(0,e.createComponentVNode)(2,b.Table,{children:p.map(function(N){return(0,e.createComponentVNode)(2,b.Table.Row,{children:[(0,e.createComponentVNode)(2,b.Table.Cell,{children:N.singularity_id+". "+N.area_name}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,color:"label",children:"Stage:"}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,width:"120px",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N.stage,minValue:0,maxValue:6,ranges:{good:[1,2],average:[3,4],bad:[5,6]},children:(0,o.toFixed)(N.stage)})}),(0,e.createComponentVNode)(2,b.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,b.Button,{content:"Details",onClick:function(){function V(){return h("view",{view:N.singularity_id})}return V}()})})]},N.singularity_id)})})})})})},m=function(u,s){var i=(0,f.useBackend)(s),h=i.act,C=i.data,v=C.active,p=C.singulo_stage,N=C.singulo_potential_stage,V=C.singulo_energy,y=C.singulo_high,B=C.singulo_low,L=C.generators,w=L===void 0?[]:L;return(0,e.createComponentVNode)(2,I.Window,{width:550,height:185,children:(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"270px",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Metrics",children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Stage",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:p,minValue:0,maxValue:6,ranges:{good:[1,2],average:[3,4],bad:[5,6]},children:(0,o.toFixed)(p)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Potential Stage",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N,minValue:0,maxValue:6,ranges:{good:[1,p+.5],average:[p+.5,p+1.5],bad:[p+1.5,p+2]},children:(0,o.toFixed)(N)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Energy",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:V,minValue:B,maxValue:y,ranges:{good:[.67*y+.33*B,y],average:[.33*y+.67*B,.67*y+.33*B],bad:[B,.33*y+.67*B]},children:(0,o.toFixed)(V)+"MJ"})})]})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Field Generators",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"arrow-left",content:"Back",onClick:function(){function x(){return h("back")}return x}()}),children:(0,e.createComponentVNode)(2,b.LabeledList,{children:w.map(function(x){return(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Remaining Charge",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:x.charge,minValue:0,maxValue:125,ranges:{good:[80,125],average:[30,80],bad:[0,30]},children:(0,o.toFixed)(x.charge)})},x.gen_index)})})})})]})})})}},88284:function(A,r,n){"use strict";r.__esModule=!0,r.Sleeper=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=[["good","Alive"],["average","Critical"],["bad","DEAD"]],S=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],I={average:[.25,.5],bad:[.5,1/0]},k=["bad","average","average","good","average","average","bad"],g=r.Sleeper=function(){function i(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.hasOccupant,y=V?(0,e.createComponentVNode)(2,d):(0,e.createComponentVNode)(2,s);return(0,e.createComponentVNode)(2,f.Window,{width:550,height:760,children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:y}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,l)})]})})})}return i}(),d=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.occupant;return(0,e.createFragment)([(0,e.createComponentVNode)(2,c),(0,e.createComponentVNode)(2,m),(0,e.createComponentVNode)(2,u)],4)},c=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.occupant,y=N.auto_eject_dead;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Box,{color:"label",inline:!0,children:"Auto-eject if dead:\xA0"}),(0,e.createComponentVNode)(2,o.Button,{icon:y?"toggle-on":"toggle-off",selected:y,content:y?"On":"Off",onClick:function(){function B(){return p("auto_eject_dead_"+(y?"off":"on"))}return B}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"user-slash",content:"Eject",onClick:function(){function B(){return p("ejectify")}return B}()})],4),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Name",children:V.name}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Health",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.maxHealth,value:V.health/V.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]},children:(0,a.round)(V.health,0)})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Status",color:b[V.stat][0],children:b[V.stat][1]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.maxTemp,value:V.bodyTemperature/V.maxTemp,color:k[V.temperatureSuitability+3],children:[(0,a.round)(V.btCelsius,0),"\xB0C,",(0,a.round)(V.btFaren,0),"\xB0F"]})}),!!V.hasBlood&&(0,e.createFragment)([(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Blood Level",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:V.bloodMax,value:V.bloodLevel/V.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[V.bloodPercent,"%, ",V.bloodLevel,"cl"]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pulse",verticalAlign:"middle",children:[V.pulse," BPM"]})],4)]})})},m=function(h,C){var v=(0,t.useBackend)(C),p=v.data,N=p.occupant;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant Damage",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:S.map(function(V,y){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:V[0],children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:"100",value:N[V[1]]/100,ranges:I,children:(0,a.round)(N[V[1]],0)},y)},y)})})})},l=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.hasOccupant,y=N.isBeakerLoaded,B=N.beakerMaxSpace,L=N.beakerFreeSpace,w=N.dialysis,x=w&&L>0;return(0,e.createComponentVNode)(2,o.Section,{title:"Dialysis",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{disabled:!y||L<=0||!V,selected:x,icon:x?"toggle-on":"toggle-off",content:x?"Active":"Inactive",onClick:function(){function T(){return p("togglefilter")}return T}()}),(0,e.createComponentVNode)(2,o.Button,{disabled:!y,icon:"eject",content:"Eject",onClick:function(){function T(){return p("removebeaker")}return T}()})],4),children:y?(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Remaining Space",children:(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:B,value:L/B,ranges:{good:[.5,1/0],average:[.25,.5],bad:[-1/0,.25]},children:[L,"u"]})})}):(0,e.createComponentVNode)(2,o.Box,{color:"label",children:"No beaker loaded."})})},u=function(h,C){var v=(0,t.useBackend)(C),p=v.act,N=v.data,V=N.occupant,y=N.chemicals,B=N.maxchem,L=N.amounts;return(0,e.createComponentVNode)(2,o.Section,{title:"Occupant Chemicals",children:y.map(function(w,x){var T="",M;return w.overdosing?(T="bad",M=(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-circle"}),"\xA0 Overdosing!"]})):w.od_warning&&(T="average",M=(0,e.createComponentVNode)(2,o.Box,{color:"average",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"exclamation-triangle"}),"\xA0 Close to overdosing"]})),(0,e.createComponentVNode)(2,o.Box,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.createComponentVNode)(2,o.Section,{title:w.title,level:"3",mx:"0",lineHeight:"18px",buttons:M,children:(0,e.createComponentVNode)(2,o.Stack,{children:[(0,e.createComponentVNode)(2,o.ProgressBar,{min:"0",max:B,value:w.occ_amount/B,color:T,title:"Amount of chemicals currently inside the occupant / Total amount injectable by this machine",mr:"0.5rem",children:[w.pretty_amount,"/",B,"u"]}),L.map(function(O,D){return(0,e.createComponentVNode)(2,o.Button,{disabled:!w.injectable||w.occ_amount+O>B||V.stat===2,icon:"syringe",content:"Inject "+O+"u",title:"Inject "+O+"u of "+w.title+" into the occupant",mb:"0",height:"19px",onClick:function(){function E(){return p("chemical",{chemid:w.id,amount:O})}return E}()},D)})]})})},x)})})},s=function(h,C){return(0,e.createComponentVNode)(2,o.Section,{fill:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,o.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,align:"center",color:"label",children:[(0,e.createComponentVNode)(2,o.Icon,{name:"user-slash",mb:"0.5rem",size:"5"}),(0,e.createVNode)(1,"br"),"No occupant detected."]})})})}},21597:function(A,r,n){"use strict";r.__esModule=!0,r.SlotMachine=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SlotMachine=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data;if(d.money===null)return(0,e.createComponentVNode)(2,o.Window,{width:350,height:90,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{children:"Could not scan your card or could not find account!"}),(0,e.createComponentVNode)(2,t.Box,{children:"Please wear or hold your ID and try again."})]})})});var c;return d.plays===1?c=d.plays+" player has tried their luck today!":c=d.plays+" players have tried their luck today!",(0,e.createComponentVNode)(2,o.Window,{width:300,height:151,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{lineHeight:2,children:c}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Credits Remaining",children:(0,e.createComponentVNode)(2,t.AnimatedNumber,{value:d.money})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"10 credits to spin",children:(0,e.createComponentVNode)(2,t.Button,{icon:"coins",disabled:d.working,content:d.working?"Spinning...":"Spin",onClick:function(){function m(){return g("spin")}return m}()})})]}),(0,e.createComponentVNode)(2,t.Box,{bold:!0,lineHeight:2,color:d.resultlvl,children:d.result})]})})})}return b}()},46348:function(A,r,n){"use strict";r.__esModule=!0,r.Smartfridge=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Smartfridge=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.secure,m=d.can_dry,l=d.drying,u=d.contents;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[!!c&&(0,e.createComponentVNode)(2,t.NoticeBox,{children:"Secure Access: Please have your identification ready."}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:m?"Drying rack":"Contents",buttons:!!m&&(0,e.createComponentVNode)(2,t.Button,{width:4,icon:l?"power-off":"times",content:l?"On":"Off",selected:l,onClick:function(){function s(){return g("drying")}return s}()}),children:[!u&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{bold:!0,grow:!0,textAlign:"center",align:"center",color:"average",children:[(0,e.createComponentVNode)(2,t.Icon.Stack,{children:[(0,e.createComponentVNode)(2,t.Icon,{name:"cookie-bite",size:5,color:"brown"}),(0,e.createComponentVNode)(2,t.Icon,{name:"slash",size:5,color:"red"})]}),(0,e.createVNode)(1,"br"),"No products loaded."]})}),!!u&&u.slice().sort(function(s,i){return s.display_name.localeCompare(i.display_name)}).map(function(s){return(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:"55%",children:s.display_name}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:"25%",children:["(",s.quantity," in stock)"]}),(0,e.createComponentVNode)(2,t.Stack.Item,{width:13,children:[(0,e.createComponentVNode)(2,t.Button,{width:3,icon:"arrow-down",tooltip:"Dispense one.",content:"1",onClick:function(){function i(){return g("vend",{index:s.vend,amount:1})}return i}()}),(0,e.createComponentVNode)(2,t.NumberInput,{width:"40px",minValue:0,value:0,maxValue:s.quantity,step:1,stepPixelSize:3,onChange:function(){function i(h,C){return g("vend",{index:s.vend,amount:C})}return i}()}),(0,e.createComponentVNode)(2,t.Button,{width:4,icon:"arrow-down",content:"All",tooltip:"Dispense all.",tooltipPosition:"bottom-start",onClick:function(){function i(){return g("vend",{index:s.vend,amount:s.quantity})}return i}()})]})]},s)})]})]})})})}return b}()},86162:function(A,r,n){"use strict";r.__esModule=!0,r.Smes=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(49968),f=n(98595),b=1e3,S=r.Smes=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.capacityPercent,u=m.capacity,s=m.charge,i=m.inputAttempt,h=m.inputting,C=m.inputLevel,v=m.inputLevelMax,p=m.inputAvailable,N=m.outputPowernet,V=m.outputAttempt,y=m.outputting,B=m.outputLevel,L=m.outputLevelMax,w=m.outputUsed,x=l>=100&&"good"||h&&"average"||"bad",T=y&&"good"||s>0&&"average"||"bad";return(0,e.createComponentVNode)(2,f.Window,{width:340,height:345,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Stored Energy",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:l*.01,ranges:{good:[.5,1/0],average:[.15,.5],bad:[-1/0,.15]}})}),(0,e.createComponentVNode)(2,t.Section,{title:"Input",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Charge Mode",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:i?"sync-alt":"times",selected:i,onClick:function(){function M(){return c("tryinput")}return M}(),children:i?"Auto":"Off"}),children:(0,e.createComponentVNode)(2,t.Box,{color:x,children:l>=100&&"Fully Charged"||h&&"Charging"||"Not Charging"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Input",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:C===0,onClick:function(){function M(){return c("input",{target:"min"})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:C===0,onClick:function(){function M(){return c("input",{adjust:-1e4})}return M}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Slider,{value:C/b,fillValue:p/b,minValue:0,maxValue:v/b,step:5,stepPixelSize:4,format:function(){function M(O){return(0,o.formatPower)(O*b,1)}return M}(),onChange:function(){function M(O,D){return c("input",{target:D*b})}return M}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:C===v,onClick:function(){function M(){return c("input",{adjust:1e4})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:C===v,onClick:function(){function M(){return c("input",{target:"max"})}return M}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Available",children:(0,o.formatPower)(p)})]})}),(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Output",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Output Mode",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:V?"power-off":"times",selected:V,onClick:function(){function M(){return c("tryoutput")}return M}(),children:V?"On":"Off"}),children:(0,e.createComponentVNode)(2,t.Box,{color:T,children:N?y?"Sending":s>0?"Not Sending":"No Charge":"Not Connected"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Output",children:(0,e.createComponentVNode)(2,t.Stack,{inline:!0,width:"100%",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:B===0,onClick:function(){function M(){return c("output",{target:"min"})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"backward",disabled:B===0,onClick:function(){function M(){return c("output",{adjust:-1e4})}return M}()})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Slider,{value:B/b,minValue:0,maxValue:L/b,step:5,stepPixelSize:4,format:function(){function M(O){return(0,o.formatPower)(O*b,1)}return M}(),onChange:function(){function M(O,D){return c("output",{target:D*b})}return M}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"forward",disabled:B===L,onClick:function(){function M(){return c("output",{adjust:1e4})}return M}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:B===L,onClick:function(){function M(){return c("output",{target:"max"})}return M}()})]})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Outputting",children:(0,o.formatPower)(w)})]})})]})})})}return I}()},63584:function(A,r,n){"use strict";r.__esModule=!0,r.SolarControl=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SolarControl=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=0,m=1,l=2,u=d.generated,s=d.generated_ratio,i=d.tracking_state,h=d.tracking_rate,C=d.connected_panels,v=d.connected_tracker,p=d.cdir,N=d.direction,V=d.rotating_direction;return(0,e.createComponentVNode)(2,o.Window,{width:490,height:277,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Scan for new hardware",onClick:function(){function y(){return g("refresh")}return y}()}),children:(0,e.createComponentVNode)(2,t.Grid,{children:[(0,e.createComponentVNode)(2,t.Grid.Column,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Solar tracker",color:v?"good":"bad",children:v?"OK":"N/A"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Solar panels",color:C>0?"good":"bad",children:C})]})}),(0,e.createComponentVNode)(2,t.Grid.Column,{size:2,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power output",children:(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[.66,1/0],average:[.33,.66],bad:[-1/0,.33]},minValue:0,maxValue:1,value:s,children:u+" W"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Panel orientation",children:[p,"\xB0 (",N,")"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker rotation",children:[i===l&&(0,e.createComponentVNode)(2,t.Box,{children:" Automated "}),i===m&&(0,e.createComponentVNode)(2,t.Box,{children:[" ",h,"\xB0/h (",V,")"," "]}),i===c&&(0,e.createComponentVNode)(2,t.Box,{children:" Tracker offline "})]})]})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Controls",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Panel orientation",children:[i!==l&&(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0",step:1,stepPixelSize:1,minValue:0,maxValue:359,value:p,onDrag:function(){function y(B,L){return g("cdir",{cdir:L})}return y}()}),i===l&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Automated "})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker status",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Off",selected:i===c,onClick:function(){function y(){return g("track",{track:c})}return y}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"clock-o",content:"Timed",selected:i===m,onClick:function(){function y(){return g("track",{track:m})}return y}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sync",content:"Auto",selected:i===l,disabled:!v,onClick:function(){function y(){return g("track",{track:l})}return y}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tracker rotation",children:[i===m&&(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0/h",step:1,stepPixelSize:1,minValue:-7200,maxValue:7200,value:h,format:function(){function y(B){var L=Math.sign(B)>0?"+":"-";return L+Math.abs(B)}return y}(),onDrag:function(){function y(B,L){return g("tdir",{tdir:L})}return y}()}),i===c&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Tracker offline "}),i===l&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"19px",children:" Automated "})]})]})})]})})}return b}()},38096:function(A,r,n){"use strict";r.__esModule=!0,r.SpawnersMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SpawnersMenu=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.spawners||[];return(0,e.createComponentVNode)(2,o.Window,{width:700,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Section,{children:c.map(function(m){return(0,e.createComponentVNode)(2,t.Section,{mb:.5,title:m.name+" ("+m.amount_left+" left)",level:2,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-circle-right",content:"Jump",onClick:function(){function l(){return g("jump",{ID:m.uids})}return l}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-circle-right",content:"Spawn",onClick:function(){function l(){return g("spawn",{ID:m.uids})}return l}()})],4),children:[(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},mb:1,fontSize:"16px",children:m.desc}),!!m.fluff&&(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},textColor:"#878787",fontSize:"14px",children:m.fluff}),!!m.important_info&&(0,e.createComponentVNode)(2,t.Box,{style:{"white-space":"pre-wrap"},mt:1,bold:!0,color:"red",fontSize:"18px",children:m.important_info})]},m.name)})})})})}return b}()},30586:function(A,r,n){"use strict";r.__esModule=!0,r.SpecMenu=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SpecMenu=function(){function g(d,c){return(0,e.createComponentVNode)(2,o.Window,{width:1100,height:600,theme:"nologo",children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,S),(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k)]})})})}return g}(),b=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Hemomancer",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function i(){return l("hemomancer")}return i}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on blood magic and the manipulation of blood around you.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Vampiric claws",16),(0,e.createTextVNode)(": Unlocked at 150 blood, allows you to summon a robust pair of claws that attack rapidly, drain a targets blood, and heal you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood Barrier",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to select two turfs and create a wall between them.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood tendrils",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to slow everyone in a targeted 3x3 area after a short delay.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Sanguine pool",16),(0,e.createTextVNode)(": Unlocked at 400 blood, allows you to travel at high speeds for a short duration. Doing this leaves behind blood splatters. You can move through anything but walls and space when doing this.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Predator senses",16),(0,e.createTextVNode)(": Unlocked at 600 blood, allows you to sniff out anyone within the same sector as you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood eruption",16),(0,e.createTextVNode)(": Unlocked at 800 blood, allows you to manipulate all nearby blood splatters, in 4 tiles around you, into spikes that impale anyone stood ontop of them.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"The blood bringers rite",16),(0,e.createTextVNode)(": When toggled you will rapidly drain the blood of everyone who is nearby and use it to heal yourself slightly and remove any incapacitating effects rapidly.")],4)]})})},S=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Umbrae",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function i(){return l("umbrae")}return i}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on darkness, stealth ambushing and mobility.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Cloak of darkness",16),(0,e.createTextVNode)(": Unlocked at 150 blood, when toggled, allows you to become nearly invisible and move rapidly when in dark regions. While active, burn damage is more effective against you.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Shadow anchor",16),(0,e.createTextVNode)(": Unlocked at 250 blood, casting it will create an anchor at the cast location after a short delay. If you then cast the ability again, you are teleported back to the anchor. If you do not cast again within 2 minutes, you will do a fake recall, causing a clone to appear at the anchor and making yourself invisible. It will not teleport you between Z levels.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Shadow snare",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to summon a trap that when crossed blinds and ensnares the victim. This trap is hard to see, but withers in the light.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Dark passage",16),(0,e.createTextVNode)(": Unlocked at 400 blood, allows you to target a turf on screen, you will then teleport to that turf.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Extinguish",16),(0,e.createTextVNode)(": Unlocked at 600 blood, allows you to snuff out nearby electronic light sources and glowshrooms.")],4),(0,e.createVNode)(1,"b",null,"Shadow boxing",16),": Unlocked at 800 blood, sends out shadow clones towards a target, damaging them while you remain in range.",(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Eternal darkness",16),(0,e.createTextVNode)(": When toggled, you consume yourself in unholy darkness, only the strongest of lights will be able to see through it. Inside the radius, nearby creatures will freeze and energy projectiles will deal less damage.")],4),(0,e.createVNode)(1,"p",null,"In addition, you also gain permanent X-ray vision.",16)]})})},I=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Gargantua",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function i(){return l("gargantua")}return i}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on tenacity and melee damage.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Rejuvenate",16),(0,e.createTextVNode)(": Will heal you at an increased rate based on how much damage you have taken.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood swell",16),(0,e.createTextVNode)(": Unlocked at 150 blood, increases your resistance to physical damage, stuns and stamina for 30 seconds. While it is active you cannot fire guns.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Seismic stomp",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to stomp the ground to send out a shockwave, knocking people back.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood rush",16),(0,e.createTextVNode)(": Unlocked at 250 blood, gives you a short speed boost when cast.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood swell II",16),(0,e.createTextVNode)(": Unlocked at 400 blood, increases all melee damage by 10.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Overwhelming force",16),(0,e.createTextVNode)(": Unlocked at 600 blood, when toggled, if you bump into a door that you do not have access to, it will force it open. In addition, you cannot be pushed or pulled while it is active.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Demonic grasp",16),(0,e.createTextVNode)(": Unlocked at 800 blood, allows you to send out a demonic hand to snare someone. If you are on disarm/grab intent you will push/pull the target, respectively.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Charge",16),(0,e.createTextVNode)(": Unlocked at 800 blood, you gain the ability to charge at a target. Destroying and knocking back pretty much anything you collide with.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full Power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Desecrated Duel",16),(0,e.createTextVNode)(": Leap towards a visible enemy, creating an arena upon landing, infusing you with increased regeneration, and granting you resistance to internal damages.")],4)]})})},k=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.subclasses;return(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,basis:"25%",children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Dantalion",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Choose",onClick:function(){function i(){return l("dantalion")}return i}()}),children:[(0,e.createVNode)(1,"h3",null,"Focuses on thralling and illusions.",16),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Enthrall",16),(0,e.createTextVNode)(": Unlocked at 150 blood, Thralls your target to your will, requires you to stand still. Does not work on mindshielded or already enthralled/mindslaved people.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Thrall cap",16),(0,e.createTextVNode)(": You can only thrall a max of 1 person at a time. This can be increased at 400 blood, 600 blood and at full power to a max of 4 thralls.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Thrall commune",16),(0,e.createTextVNode)(": Unlocked at 150 blood, Allows you to talk to your thralls, your thralls can talk back in the same way.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Subspace swap",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to swap positions with a target.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Pacify",16),(0,e.createTextVNode)(": Unlocked at 250 blood, allows you to pacify a target, preventing them from causing harm for 40 seconds.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Decoy",16),(0,e.createTextVNode)(": Unlocked at 400 blood, briefly turn invisible and send out an illusion to fool everyone nearby.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Rally thralls",16),(0,e.createTextVNode)(": Unlocked at 600 blood, removes all incapacitating effects from nearby thralls.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Blood bond",16),(0,e.createTextVNode)(": Unlocked at 800 blood, when cast, all nearby thralls become linked to you. If anyone in the network takes damage, it is shared equally between everyone in the network. If a thrall goes out of range, they will be removed from the network.")],4),(0,e.createVNode)(1,"p",null,[(0,e.createVNode)(1,"b",null,"Full Power",16),(0,e.createComponentVNode)(2,t.Divider),(0,e.createVNode)(1,"b",null,"Mass Hysteria",16),(0,e.createTextVNode)(": Casts a powerful illusion that blinds and then makes everyone nearby perceive others as random animals.")],4)]})})}},95152:function(A,r,n){"use strict";r.__esModule=!0,r.StackCraft=void 0;var e=n(89005),a=n(72253),t=n(88510),o=n(64795),f=n(25328),b=n(98595),S=n(36036),I=r.StackCraft=function(){function s(){return(0,e.createComponentVNode)(2,b.Window,{width:350,height:500,children:(0,e.createComponentVNode)(2,b.Window.Content,{children:(0,e.createComponentVNode)(2,k)})})}return s}(),k=function(i,h){var C=(0,a.useBackend)(h),v=C.data,p=v.amount,N=v.recipes,V=(0,a.useLocalState)(h,"searchText",""),y=V[0],B=V[1],L=g(N,(0,f.createSearch)(y)),w=(0,a.useLocalState)(h,"",!1),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,S.Section,{fill:!0,scrollable:!0,title:"Amount: "+p,buttons:(0,e.createFragment)([x&&(0,e.createComponentVNode)(2,S.Input,{width:12.5,value:y,placeholder:"Find recipe",onInput:function(){function M(O,D){return B(D)}return M}()}),(0,e.createComponentVNode)(2,S.Button,{ml:.5,tooltip:"Search",tooltipPosition:"bottom-end",icon:"magnifying-glass",selected:x,onClick:function(){function M(){return T(!x)}return M}()})],0),children:L?(0,e.createComponentVNode)(2,l,{recipes:L}):(0,e.createComponentVNode)(2,S.NoticeBox,{children:"No recipes found!"})})},g=function s(i,h){var C=(0,o.flow)([(0,t.map)(function(v){var p=v[0],N=v[1];return d(N)?h(p)?v:[p,s(N,h)]:h(p)?v:[p,void 0]}),(0,t.filter)(function(v){var p=v[0],N=v[1];return N!==void 0}),(0,t.sortBy)(function(v){var p=v[0],N=v[1];return p}),(0,t.sortBy)(function(v){var p=v[0],N=v[1];return!d(N)}),(0,t.reduce)(function(v,p){var N=p[0],V=p[1];return v[N]=V,v},{})])(Object.entries(i));return Object.keys(C).length?C:void 0},d=function(i){return i.uid===void 0},c=function(i,h){return i.required_amount>h?0:Math.floor(h/i.required_amount)},m=function(i,h){for(var C=(0,a.useBackend)(h),v=C.act,p=i.recipe,N=i.max_possible_multiplier,V=Math.min(N,Math.floor(p.max_result_amount/p.result_amount)),y=[5,10,25],B=[],L=function(){var M=x[w];V>=M&&B.push((0,e.createComponentVNode)(2,S.Button,{bold:!0,translucent:!0,fontSize:.85,width:"32px",content:M*p.result_amount+"x",onClick:function(){function O(){return v("make",{recipe_uid:p.uid,multiplier:M})}return O}()}))},w=0,x=y;w1?B+"x ":"",E=L>1?"s":"",P=""+D+V,R=L+" sheet"+E,j=c(y,N);return(0,e.createComponentVNode)(2,S.ImageButton,{fluid:!0,base64:O,dmIcon:T,dmIconState:M,imageSize:32,disabled:!j,tooltip:R,buttons:w>1&&j>1&&(0,e.createComponentVNode)(2,m,{recipe:y,max_possible_multiplier:j}),onClick:function(){function F(){return v("make",{recipe_uid:x,multiplier:1})}return F}(),children:P})}},38307:function(A,r,n){"use strict";r.__esModule=!0,r.StationAlertConsoleContent=r.StationAlertConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.StationAlertConsole=function(){function S(){return(0,e.createComponentVNode)(2,o.Window,{width:325,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b)})})}return S}(),b=r.StationAlertConsoleContent=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.data,c=d.alarms||[],m=c.Fire||[],l=c.Atmosphere||[],u=c.Power||[];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Fire Alarms",children:(0,e.createVNode)(1,"ul",null,[m.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),m.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Atmospherics Alarms",children:(0,e.createVNode)(1,"ul",null,[l.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),l.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Alarms",children:(0,e.createVNode)(1,"ul",null,[u.length===0&&(0,e.createVNode)(1,"li","color-good","Systems Nominal",16),u.map(function(s){return(0,e.createVNode)(1,"li","color-average",s,0,null,s)})],0)})],4)}return S}()},96091:function(A,r,n){"use strict";r.__esModule=!0,r.StationTraitsPanel=void 0;var e=n(89005),a=n(88510),t=n(42127),o=n(72253),f=n(36036),b=n(98595),S=function(d){return d[d.SetupFutureStationTraits=0]="SetupFutureStationTraits",d[d.ViewStationTraits=1]="ViewStationTraits",d}(S||{}),I=function(c,m){var l=(0,o.useBackend)(m),u=l.act,s=l.data,i=s.future_station_traits,h=(0,o.useLocalState)(m,"selectedFutureTrait",null),C=h[0],v=h[1],p=Object.fromEntries(s.valid_station_traits.map(function(V){return[V.name,V.path]})),N=Object.keys(p);return N.sort(),(0,e.createComponentVNode)(2,f.Box,{children:[(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,f.Dropdown,{displayText:!C&&"Select trait to add...",onSelected:v,options:N,selected:C,width:"100%"})}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"green",icon:"plus",onClick:function(){function V(){if(C){var y=p[C],B=[y];if(i){var L,w=i.map(function(x){return x.path});if(w.indexOf(y)!==-1)return;B=(L=B).concat.apply(L,w)}u("setup_future_traits",{station_traits:B})}}return V}(),children:"Add"})})]}),(0,e.createComponentVNode)(2,f.Divider),Array.isArray(i)?i.length>0?(0,e.createComponentVNode)(2,f.Stack,{vertical:!0,fill:!0,children:i.map(function(V){return(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:V.name}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button,{color:"red",icon:"times",onClick:function(){function y(){u("setup_future_traits",{station_traits:(0,a.filterMap)(i,function(B){if(B.path!==V.path)return B.path})})}return y}(),children:"Delete"})})]})},V.path)})}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Box,{children:"No station traits will run next round."}),(0,e.createComponentVNode)(2,f.Button,{mt:1,fluid:!0,color:"good",icon:"times",tooltip:"The next round will roll station traits randomly, just like normal",onClick:function(){function V(){return u("clear_future_traits")}return V}(),children:"Run Station Traits Normally"})]}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:[(0,e.createComponentVNode)(2,f.Box,{children:"No future station traits are planned."}),(0,e.createComponentVNode)(2,f.Button,{mt:1,fluid:!0,color:"red",icon:"times",onClick:function(){function V(){return u("setup_future_traits",{station_traits:[]})}return V}(),children:"Prevent station traits from running next round"})]})]})},k=function(c,m){var l=(0,o.useBackend)(m),u=l.act,s=l.data;return s.current_traits.length>0?(0,e.createComponentVNode)(2,f.Stack,{vertical:!0,fill:!0,children:s.current_traits.map(function(i){return(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{grow:!0,children:i.name}),(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Button.Confirm,{content:"Revert",color:"red",disabled:s.too_late_to_revert||!i.can_revert,tooltip:!i.can_revert&&"This trait is not revertable."||s.too_late_to_revert&&"It's too late to revert station traits, the round has already started.",icon:"times",onClick:function(){function h(){return u("revert",{ref:i.ref})}return h}()})})]})},i.ref)})}):(0,e.createComponentVNode)(2,f.Box,{textAlign:"center",children:"There are no active station traits."})},g=r.StationTraitsPanel=function(){function d(c,m){var l=(0,o.useLocalState)(m,"station_traits_tab",S.ViewStationTraits),u=l[0],s=l[1],i;switch(u){case S.SetupFutureStationTraits:i=(0,e.createComponentVNode)(2,I);break;case S.ViewStationTraits:i=(0,e.createComponentVNode)(2,k);break;default:(0,t.exhaustiveCheck)(u)}return(0,e.createComponentVNode)(2,b.Window,{title:"Modify Station Traits",height:350,width:350,children:(0,e.createComponentVNode)(2,b.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,f.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,f.Stack.Item,{children:(0,e.createComponentVNode)(2,f.Tabs,{children:[(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"eye",selected:u===S.ViewStationTraits,onClick:function(){function h(){return s(S.ViewStationTraits)}return h}(),children:"View"}),(0,e.createComponentVNode)(2,f.Tabs.Tab,{icon:"edit",selected:u===S.SetupFutureStationTraits,onClick:function(){function h(){return s(S.SetupFutureStationTraits)}return h}(),children:"Edit"})]})}),(0,e.createComponentVNode)(2,f.Stack.Item,{m:0,children:[(0,e.createComponentVNode)(2,f.Divider),i]})]})})})}return d}()},39409:function(A,r,n){"use strict";r.__esModule=!0,r.StripMenu=void 0;var e=n(89005),a=n(88510),t=n(79140),o=n(72253),f=n(36036),b=n(98595),S=5,I=9,k=function(C){return C===0?5:9},g="64px",d=function(C){return C[0]+"/"+C[1]},c=function(C){var v=C.align,p=C.children;return(0,e.createComponentVNode)(2,f.Box,{style:{position:"absolute",left:v==="left"?"6px":"48px","text-align":v,"text-shadow":"2px 2px 2px #000",top:"2px"},children:p})},m={enable_internals:{icon:"lungs",text:"Enable internals"},disable_internals:{icon:"lungs",text:"Disable internals"},enable_lock:{icon:"lock",text:"Enable lock"},disable_lock:{icon:"unlock",text:"Disable lock"},suit_sensors:{icon:"tshirt",text:"Adjust suit sensors"},remove_accessory:{icon:"medal",text:"Remove accessory"},dislodge_headpocket:{icon:"head-side-virus",text:"Dislodge headpocket"}},l={eyes:{displayName:"eyewear",gridSpot:d([0,0]),image:"inventory-glasses.png"},head:{displayName:"headwear",gridSpot:d([0,1]),image:"inventory-head.png"},mask:{displayName:"mask",gridSpot:d([1,1]),image:"inventory-mask.png"},neck:{displayName:"neck",gridSpot:d([1,0]),image:"inventory-neck.png"},pet_collar:{displayName:"collar",gridSpot:d([1,1]),image:"inventory-collar.png"},right_ear:{displayName:"right ear",gridSpot:d([0,2]),image:"inventory-ears.png"},left_ear:{displayName:"left ear",gridSpot:d([1,2]),image:"inventory-ears.png"},parrot_headset:{displayName:"headset",gridSpot:d([1,2]),image:"inventory-ears.png"},handcuffs:{displayName:"handcuffs",gridSpot:d([1,3])},legcuffs:{displayName:"legcuffs",gridSpot:d([1,4])},jumpsuit:{displayName:"uniform",gridSpot:d([2,0]),image:"inventory-uniform.png"},suit:{displayName:"suit",gridSpot:d([2,1]),image:"inventory-suit.png"},gloves:{displayName:"gloves",gridSpot:d([2,2]),image:"inventory-gloves.png"},right_hand:{displayName:"right hand",gridSpot:d([2,3]),image:"inventory-hand_r.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"left",children:"R"})},left_hand:{displayName:"left hand",gridSpot:d([2,4]),image:"inventory-hand_l.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"right",children:"L"})},shoes:{displayName:"shoes",gridSpot:d([3,1]),image:"inventory-shoes.png"},suit_storage:{displayName:"suit storage",gridSpot:d([4,0]),image:"inventory-suit_storage.png"},id:{displayName:"ID",gridSpot:d([4,1]),image:"inventory-id.png"},belt:{displayName:"belt",gridSpot:d([4,2]),image:"inventory-belt.png"},back:{displayName:"backpack",gridSpot:d([4,3]),image:"inventory-back.png"},left_pocket:{displayName:"left pocket",gridSpot:d([3,4]),image:"inventory-pocket.png"},right_pocket:{displayName:"right pocket",gridSpot:d([3,3]),image:"inventory-pocket.png"},pda:{displayName:"PDA",gridSpot:d([4,4]),image:"inventory-pda.png"}},u={eyes:{displayName:"eyewear",gridSpot:d([0,0]),image:"inventory-glasses.png"},head:{displayName:"headwear",gridSpot:d([0,1]),image:"inventory-head.png"},mask:{displayName:"mask",gridSpot:d([1,1]),image:"inventory-mask.png"},neck:{displayName:"neck",gridSpot:d([1,0]),image:"inventory-neck.png"},pet_collar:{displayName:"collar",gridSpot:d([1,1]),image:"inventory-collar.png"},right_ear:{displayName:"right ear",gridSpot:d([0,2]),image:"inventory-ears.png"},left_ear:{displayName:"left ear",gridSpot:d([1,2]),image:"inventory-ears.png"},parrot_headset:{displayName:"headset",gridSpot:d([1,2]),image:"inventory-ears.png"},handcuffs:{displayName:"handcuffs",gridSpot:d([1,3])},legcuffs:{displayName:"legcuffs",gridSpot:d([1,4])},jumpsuit:{displayName:"uniform",gridSpot:d([2,0]),image:"inventory-uniform.png"},suit:{displayName:"suit",gridSpot:d([2,1]),image:"inventory-suit.png"},gloves:{displayName:"gloves",gridSpot:d([2,2]),image:"inventory-gloves.png"},right_hand:{displayName:"right hand",gridSpot:d([4,4]),image:"inventory-hand_r.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"left",children:"R"})},left_hand:{displayName:"left hand",gridSpot:d([4,5]),image:"inventory-hand_l.png",additionalComponent:(0,e.createComponentVNode)(2,c,{align:"right",children:"L"})},shoes:{displayName:"shoes",gridSpot:d([3,1]),image:"inventory-shoes.png"},suit_storage:{displayName:"suit storage",gridSpot:d([4,0]),image:"inventory-suit_storage.png"},id:{displayName:"ID",gridSpot:d([4,1]),image:"inventory-id.png"},belt:{displayName:"belt",gridSpot:d([4,2]),image:"inventory-belt.png"},back:{displayName:"backpack",gridSpot:d([4,3]),image:"inventory-back.png"},left_pocket:{displayName:"left pocket",gridSpot:d([4,7]),image:"inventory-pocket.png"},right_pocket:{displayName:"right pocket",gridSpot:d([4,6]),image:"inventory-pocket.png"},pda:{displayName:"PDA",gridSpot:d([4,8]),image:"inventory-pda.png"}},s=function(h){return h[h.Completely=1]="Completely",h[h.Hidden=2]="Hidden",h}(s||{}),i=r.StripMenu=function(){function h(C,v){var p=(0,o.useBackend)(v),N=p.act,V=p.data,y=new Map;if(V.show_mode===0)for(var B=0,L=Object.keys(V.items);B=.01})},(0,a.sortBy)(function(T){return-T.amount})])(C.gases||[]),x=Math.max.apply(Math,[1].concat(w.map(function(T){return T.portion})));return(0,e.createComponentVNode)(2,I.Window,{width:550,height:250,children:(0,e.createComponentVNode)(2,I.Window.Content,{children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"270px",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Metrics",children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Integrity",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:p/100,ranges:{good:[.9,1/0],average:[.5,.9],bad:[-1/0,.5]}})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Relative EER",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:N,minValue:0,maxValue:5e3,ranges:{good:[-1/0,5e3],average:[5e3,7e3],bad:[7e3,1/0]},children:(0,o.toFixed)(N)+" MeV/cm3"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Gas Coefficient",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:L,minValue:1,maxValue:5.25,ranges:{bad:[1,1.55],average:[1.55,5.25],good:[5.25,1/0]},children:L.toFixed(2)})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Temperature",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:d(V),minValue:0,maxValue:d(1e4),ranges:{teal:[-1/0,d(80)],good:[d(80),d(373)],average:[d(373),d(1e3)],bad:[d(1e3),1/0]},children:(0,o.toFixed)(V)+" K"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Mole Per Tile",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:B,minValue:0,maxValue:12e3,ranges:{teal:[-1/0,100],average:[100,11333],good:[11333,12e3],bad:[12e3,1/0]},children:(0,o.toFixed)(B)+" mol"})}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Pressure",children:(0,e.createComponentVNode)(2,b.ProgressBar,{value:d(y),minValue:0,maxValue:d(5e4),ranges:{good:[d(1),d(300)],average:[-1/0,d(1e3)],bad:[d(1e3),1/0]},children:(0,o.toFixed)(y)+" kPa"})})]})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,basis:0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Gases",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"arrow-left",content:"Back",onClick:function(){function T(){return h("back")}return T}()}),children:(0,e.createComponentVNode)(2,b.LabeledList,{children:w.map(function(T){return(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:(0,S.getGasLabel)(T.name),children:(0,e.createComponentVNode)(2,b.ProgressBar,{color:(0,S.getGasColor)(T.name),value:T.portion,minValue:0,maxValue:x,children:(0,o.toFixed)(T.amount)+" mol ("+T.portion+"%)"})},T.name)})})})})]})})})}},46029:function(A,r,n){"use strict";r.__esModule=!0,r.SyndicateComputerSimple=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.SyndicateComputerSimple=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data;return(0,e.createComponentVNode)(2,o.Window,{theme:"syndicate",width:400,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:d.rows.map(function(c){return(0,e.createComponentVNode)(2,t.Section,{title:c.title,buttons:(0,e.createComponentVNode)(2,t.Button,{content:c.buttontitle,disabled:c.buttondisabled,tooltip:c.buttontooltip,tooltipPosition:"left",onClick:function(){function m(){return g(c.buttonact)}return m}()}),children:[c.status,!!c.bullets&&(0,e.createComponentVNode)(2,t.Box,{children:c.bullets.map(function(m){return(0,e.createComponentVNode)(2,t.Box,{children:m},m)})})]},c.title)})})})}return b}()},36372:function(A,r,n){"use strict";r.__esModule=!0,r.TEG=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(I){return I.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,")},b=r.TEG=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data;return c.error?(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Error",children:[c.error,(0,e.createComponentVNode)(2,t.Button,{icon:"circle",content:"Recheck",onClick:function(){function m(){return d("check")}return m}()})]})})}):(0,e.createComponentVNode)(2,o.Window,{width:500,height:400,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Cold Loop ("+c.cold_dir+")",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cold Inlet",children:[f(c.cold_inlet_temp)," K, ",f(c.cold_inlet_pressure)," kPa"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cold Outlet",children:[f(c.cold_outlet_temp)," K, ",f(c.cold_outlet_pressure)," kPa"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Hot Loop ("+c.hot_dir+")",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hot Inlet",children:[f(c.hot_inlet_temp)," K, ",f(c.hot_inlet_pressure)," kPa"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hot Outlet",children:[f(c.hot_outlet_temp)," K, ",f(c.hot_outlet_pressure)," kPa"]})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Power Output",children:[f(c.output_power)," W",!!c.warning_switched&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Cold inlet temperature exceeds hot inlet temperature."}),!!c.warning_cold_pressure&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Cold circulator inlet pressure is under 1,000 kPa."}),!!c.warning_hot_pressure&&(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Warning: Hot circulator inlet pressure is under 1,000 kPa."})]})]})})}return S}()},23190:function(A,r,n){"use strict";r.__esModule=!0,r.TTSSeedsExplorerContent=r.TTSSeedsExplorer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(46095),f=n(98595),b={0:"Free",1:"Tier I",2:"Tier II",3:"Tier III",4:"Tier IV",5:"Tier V"},S={male:"\u041C\u0443\u0436\u0441\u043A\u043E\u0439",female:"\u0416\u0435\u043D\u0441\u043A\u0438\u0439"},I={\u041C\u0443\u0436\u0441\u043A\u043E\u0439:{icon:"mars",color:"blue"},\u0416\u0435\u043D\u0441\u043A\u0438\u0439:{icon:"venus",color:"purple"},\u041B\u044E\u0431\u043E\u0439:{icon:"venus-mars",color:"white"}},k=function(m,l,u,s){return s===void 0&&(s=null),m.map(function(i){var h,C=(h=i[s])!=null?h:i;return(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:l.includes(i),content:C,onClick:function(){function v(){l.includes(i)?u(l.filter(function(p){var N;return((N=p[s])!=null?N:p)!==i})):u([i].concat(l))}return v}()},C)})},g=r.TTSSeedsExplorer=function(){function c(){return(0,e.createComponentVNode)(2,f.Window,{width:1e3,height:685,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:(0,e.createComponentVNode)(2,d)})})})}return c}(),d=r.TTSSeedsExplorerContent=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,i=u.data,h=i.providers,C=i.seeds,v=i.selected_seed,p=i.phrases,N=i.donator_level,V=i.character_gender,y=C.map(function(Y){return Y.category}).filter(function(Y,ve,he){return he.indexOf(Y)===ve}).sort(function(Y,ve){return Y.localeCompare(ve)}),B=C.map(function(Y){return Y.gender}).filter(function(Y,ve,he){return he.indexOf(Y)===ve}),L=C.map(function(Y){return Y.required_donator_level}).filter(function(Y,ve,he){return he.indexOf(Y)===ve}).sort(function(Y,ve){return Y-ve}).map(function(Y){return b[Y]}),w=(0,a.useLocalState)(l,"selectedProviders",h),x=w[0],T=w[1],M=(0,a.useLocalState)(l,"selectedGenders",B.includes(S[V])?[S[V]]:B),O=M[0],D=M[1],E=(0,a.useLocalState)(l,"selectedCategories",y),P=E[0],R=E[1],j=(0,a.useLocalState)(l,"selectedDonatorLevels",L.includes(b[N])?L.slice(0,L.indexOf(b[N])+1):L),F=j[0],W=j[1],z=(0,a.useLocalState)(l,"selectedPhrase",p[0]),K=z[0],G=z[1],J=(0,a.useLocalState)(l,"searchtext",""),Q=J[0],ue=J[1],ie=(0,a.useLocalState)(l,"searchToggle",!1),pe=ie[0],te=ie[1],q=k(h,x,T,"name"),ne=k(B,O,D),le=k(y,P,R),ee=k(L,F,W),re=(0,e.createComponentVNode)(2,t.Dropdown,{options:p,selected:K.replace(/(.{60})..+/,"$1..."),width:"21.3em",onSelected:function(){function Y(ve){return G(ve)}return Y}()}),oe=(0,e.createFragment)([pe&&(0,e.createComponentVNode)(2,t.Input,{placeholder:"\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435...",width:20,onInput:function(){function Y(ve,he){return ue(he)}return Y}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"magnifying-glass",tooltip:"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u043E\u0438\u0441\u043A",tooltipPosition:"bottom-end",selected:pe,onClick:function(){function Y(){return te(!pe)}return Y}()})],0),fe=C.sort(function(Y,ve){var he=Y.name.toLowerCase(),Ve=ve.name.toLowerCase();return he>Ve?1:he0&&v!==Y.name?"orange":"white",children:Y.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,opacity:v===Y.name?.5:.25,textAlign:"left",children:Y.category}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,opacity:.5,textColor:v===Y.name?"white":I[Y.gender].color,textAlign:"left",children:(0,e.createComponentVNode)(2,t.Icon,{mx:1,size:1.2,name:I[Y.gender].icon})}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,opacity:.5,textColor:"white",textAlign:"right",children:Y.required_donator_level>0&&(0,e.createFragment)([b[Y.required_donator_level],(0,e.createComponentVNode)(2,t.Icon,{ml:1,mr:2,name:"coins"})],0)})]},Y.name)});return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"30.25em",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"\u041F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u044B",children:q}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"\u041F\u043E\u043B",children:ne}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"\u0422\u0438\u0440",children:ee}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"\u0424\u0440\u0430\u0437\u0430",children:re})]})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u0438",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:"times",disabled:P.length===0,onClick:function(){function Y(){return R([])}return Y}(),children:"\u0423\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0451"}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",disabled:P.length===y.length,onClick:function(){function Y(){return R(y)}return Y}(),children:"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0451"})],4),children:le})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.BlockQuote,{children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"11px",children:"\u0414\u043B\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u044F \u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0432 \u0443\u0441\u043B\u043E\u0432\u0438\u044F\u0445 \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0445 \u0440\u0430\u0441\u0445\u043E\u0434\u043E\u0432 \u0447\u0430\u0441\u0442\u044C \u0433\u043E\u043B\u043E\u0441\u043E\u0432 \u043F\u0440\u0438\u0448\u043B\u043E\u0441\u044C \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u043C\u0438 \u0442\u043E\u043B\u044C\u043A\u043E \u0437\u0430 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044C\u043D\u0443\u044E \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0443 \u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0430."}),(0,e.createComponentVNode)(2,t.Box,{mt:1.5,italic:!0,color:"gray",fontSize:"10px",children:"\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0435\u0435 \u043E\u0431 \u044D\u0442\u043E\u043C \u043C\u043E\u0436\u043D\u043E \u0443\u0437\u043D\u0430\u0442\u044C \u0432 \u043D\u0430\u0448\u0435\u043C Discord-\u0441\u043E\u043E\u0431\u0449\u0435\u0441\u0442\u0432\u0435."})]})})})]})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"\u0413\u043E\u043B\u043E\u0441\u0430 ("+fe.length+"/"+C.length+")",buttons:oe,children:(0,e.createComponentVNode)(2,t.Table,{children:(0,e.createComponentVNode)(2,o.VirtualList,{children:me})})})})],4)}return c}()},56441:function(A,r,n){"use strict";r.__esModule=!0,r.TachyonArrayContent=r.TachyonArray=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TachyonArray=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.records,l=m===void 0?[]:m,u=c.explosion_target,s=c.toxins_tech,i=c.printing;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:600,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Shift's Target",children:u}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Toxins Level",children:s}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Administration",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"print",content:"Print All Logs",disabled:!l.length||i,align:"center",onClick:function(){function h(){return d("print_logs")}return h}()}),(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash",content:"Delete All Logs",disabled:!l.length,color:"bad",align:"center",onClick:function(){function h(){return d("delete_logs")}return h}()})]})]})}),l.length?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,t.NoticeBox,{children:"No Records"})]})})}return S}(),b=r.TachyonArrayContent=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.records,l=m===void 0?[]:m;return(0,e.createComponentVNode)(2,t.Section,{title:"Logged Explosions",children:(0,e.createComponentVNode)(2,t.Flex,{children:(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Time"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Epicenter"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Actual Size"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Theoretical Size"})]}),l.map(function(u){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.logged_time}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.epicenter}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.actual_size_message}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.theoretical_size_message}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button.Confirm,{icon:"trash",content:"Delete",color:"bad",onClick:function(){function s(){return d("delete_record",{index:u.index})}return s}()})})]},u.index)})]})})})})}return S}()},1754:function(A,r,n){"use strict";r.__esModule=!0,r.Tank=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Tank=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c;return d.has_mask?c=(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mask",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,width:"76%",icon:d.connected?"check":"times",content:d.connected?"Internals On":"Internals Off",selected:d.connected,onClick:function(){function m(){return g("internals")}return m}()})}):c=(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mask",color:"red",children:"No Mask Equipped"}),(0,e.createComponentVNode)(2,o.Window,{width:325,height:135,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Tank Pressure",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:d.tankPressure/1013,ranges:{good:[.35,1/0],average:[.15,.35],bad:[-1/0,.15]},children:d.tankPressure+" kPa"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Release Pressure",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"fast-backward",disabled:d.ReleasePressure===d.minReleasePressure,tooltip:"Min",onClick:function(){function m(){return g("pressure",{pressure:"min"})}return m}()}),(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,value:parseFloat(d.releasePressure),width:"65px",unit:"kPa",minValue:d.minReleasePressure,maxValue:d.maxReleasePressure,onChange:function(){function m(l,u){return g("pressure",{pressure:u})}return m}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"fast-forward",disabled:d.ReleasePressure===d.maxReleasePressure,tooltip:"Max",onClick:function(){function m(){return g("pressure",{pressure:"max"})}return m}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"undo",content:"",disabled:d.ReleasePressure===d.defaultReleasePressure,tooltip:"Reset",onClick:function(){function m(){return g("pressure",{pressure:"reset"})}return m}()})]}),c]})})})})}return b}()},7579:function(A,r,n){"use strict";r.__esModule=!0,r.TankDispenser=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TankDispenser=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.o_tanks,m=d.p_tanks;return(0,e.createComponentVNode)(2,o.Window,{width:250,height:105,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Dispense Oxygen Tank ("+c+")",disabled:c===0,icon:"arrow-circle-down",onClick:function(){function l(){return g("oxygen")}return l}()})}),(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{mt:1,fluid:!0,content:"Dispense Plasma Tank ("+m+")",disabled:m===0,icon:"arrow-circle-down",onClick:function(){function l(){return g("plasma")}return l}()})})]})})})}return b}()},16136:function(A,r,n){"use strict";r.__esModule=!0,r.TcommsCore=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TcommsCore=function(){function g(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.ion,i=(0,a.useLocalState)(c,"tabIndex",0),h=i[0],C=i[1],v=function(){function p(N){switch(N){case 0:return(0,e.createComponentVNode)(2,S);case 1:return(0,e.createComponentVNode)(2,I);case 2:return(0,e.createComponentVNode)(2,k);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}}return p}();return(0,e.createComponentVNode)(2,o.Window,{width:900,height:520,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[s===1&&(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,t.Tabs,{children:[(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"wrench",selected:h===0,onClick:function(){function p(){return C(0)}return p}(),children:"Configuration"},"ConfigPage"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"link",selected:h===1,onClick:function(){function p(){return C(1)}return p}(),children:"Device Linkage"},"LinkagePage"),(0,e.createComponentVNode)(2,t.Tabs.Tab,{icon:"user-times",selected:h===2,onClick:function(){function p(){return C(2)}return p}(),children:"User Filtering"},"FilterPage")]}),v(h)]})})}return g}(),b=function(){return(0,e.createComponentVNode)(2,t.NoticeBox,{children:"ERROR: An Ionospheric overload has occured. Please wait for the machine to reboot. This cannot be manually done."})},S=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.active,i=u.sectors_available,h=u.nttc_toggle_jobs,C=u.nttc_toggle_job_color,v=u.nttc_toggle_name_color,p=u.nttc_toggle_command_bold,N=u.nttc_job_indicator_type,V=u.nttc_setting_language,y=u.network_id;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Machine Power",children:(0,e.createComponentVNode)(2,t.Button,{content:s?"On":"Off",selected:s,icon:"power-off",onClick:function(){function B(){return l("toggle_active")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Sector Coverage",children:i})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Radio Configuration",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Announcements",children:(0,e.createComponentVNode)(2,t.Button,{content:h?"On":"Off",selected:h,icon:"user-tag",onClick:function(){function B(){return l("nttc_toggle_jobs")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Departmentalisation",children:(0,e.createComponentVNode)(2,t.Button,{content:C?"On":"Off",selected:C,icon:"clipboard-list",onClick:function(){function B(){return l("nttc_toggle_job_color")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Name Departmentalisation",children:(0,e.createComponentVNode)(2,t.Button,{content:v?"On":"Off",selected:v,icon:"user-tag",onClick:function(){function B(){return l("nttc_toggle_name_color")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Command Amplification",children:(0,e.createComponentVNode)(2,t.Button,{content:p?"On":"Off",selected:p,icon:"volume-up",onClick:function(){function B(){return l("nttc_toggle_command_bold")}return B}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Advanced",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Job Announcement Format",children:(0,e.createComponentVNode)(2,t.Button,{content:N||"Unset",selected:N,icon:"pencil-alt",onClick:function(){function B(){return l("nttc_job_indicator_type")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Language Conversion",children:(0,e.createComponentVNode)(2,t.Button,{content:V||"Unset",selected:V,icon:"globe",onClick:function(){function B(){return l("nttc_setting_language")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network ID",children:(0,e.createComponentVNode)(2,t.Button,{content:y||"Unset",selected:y,icon:"server",onClick:function(){function B(){return l("network_id")}return B}()})})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Maintenance",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Import Configuration",icon:"file-import",onClick:function(){function B(){return l("import")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Export Configuration",icon:"file-export",onClick:function(){function B(){return l("export")}return B}()})]})],4)},I=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.link_password,i=u.relay_entries;return(0,e.createComponentVNode)(2,t.Section,{title:"Device Linkage",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linkage Password",children:(0,e.createComponentVNode)(2,t.Button,{content:s||"Unset",selected:s,icon:"lock",onClick:function(){function h(){return l("change_password")}return h}()})})}),(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Sector"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Status"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Unlink"})]}),i.map(function(h){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.sector}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:h.status===1?(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Online"}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Offline"})}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Unlink",icon:"unlink",onClick:function(){function C(){return l("unlink",{addr:h.addr})}return C}()})})]},h.addr)})]})]})},k=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.filtered_users;return(0,e.createComponentVNode)(2,t.Section,{title:"User Filtering",buttons:(0,e.createComponentVNode)(2,t.Button,{content:"Add User",icon:"user-plus",onClick:function(){function i(){return l("add_filter")}return i}()}),children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{style:{width:"90%"},children:"User"}),(0,e.createComponentVNode)(2,t.Table.Cell,{style:{width:"10%"},children:"Actions"})]}),s.map(function(i){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:i}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Remove",icon:"user-times",onClick:function(){function h(){return l("remove_filter",{user:i})}return h}()})})]},i)})]})})}},88046:function(A,r,n){"use strict";r.__esModule=!0,r.TcommsRelay=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TcommsRelay=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.linked,u=m.active,s=m.network_id;return(0,e.createComponentVNode)(2,o.Window,{width:600,height:292,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Relay Configuration",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Machine Power",children:(0,e.createComponentVNode)(2,t.Button,{content:u?"On":"Off",selected:u,icon:"power-off",onClick:function(){function i(){return c("toggle_active")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Network ID",children:(0,e.createComponentVNode)(2,t.Button,{content:s||"Unset",selected:s,icon:"server",onClick:function(){function i(){return c("network_id")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Link Status",children:l===1?(0,e.createComponentVNode)(2,t.Box,{color:"green",children:"Linked"}):(0,e.createComponentVNode)(2,t.Box,{color:"red",children:"Unlinked"})})]})}),l===1?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,S)]})})}return I}(),b=function(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.linked_core_id,u=m.linked_core_addr,s=m.hidden_link;return(0,e.createComponentVNode)(2,t.Section,{title:"Link Status",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linked Core ID",children:l}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Linked Core Address",children:u}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hidden Link",children:(0,e.createComponentVNode)(2,t.Button,{content:s?"Yes":"No",icon:s?"eye-slash":"eye",selected:s,onClick:function(){function i(){return c("toggle_hidden_link")}return i}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Unlink",children:(0,e.createComponentVNode)(2,t.Button,{content:"Unlink",icon:"unlink",color:"red",onClick:function(){function i(){return c("unlink")}return i}()})})]})})},S=function(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.cores;return(0,e.createComponentVNode)(2,t.Section,{title:"Detected Cores",children:(0,e.createComponentVNode)(2,t.Table,{m:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network Address"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Network ID"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Sector"}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:"Link"})]}),l.map(function(u){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.addr}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.net_id}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:u.sector}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{content:"Link",icon:"link",onClick:function(){function s(){return c("link",{addr:u.addr})}return s}()})})]},u.addr)})]})})}},20802:function(A,r,n){"use strict";r.__esModule=!0,r.Teleporter=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Teleporter=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.targetsTeleport?d.targetsTeleport:{},m=0,l=1,u=2,s=d.calibrated,i=d.calibrating,h=d.powerstation,C=d.regime,v=d.teleporterhub,p=d.target,N=d.locked,V=d.adv_beacon_allowed,y=d.advanced_beacon_locking;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:270,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:[(!h||!v)&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,title:"Error",children:[v,!h&&(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:" Powerstation not linked "}),h&&!v&&(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:" Teleporter hub not linked "})]}),h&&v&&(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Status",buttons:(0,e.createFragment)(!!V&&(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{inline:!0,color:"label",children:"Advanced Beacon Locking:\xA0"}),(0,e.createComponentVNode)(2,t.Button,{selected:y,icon:y?"toggle-on":"toggle-off",content:y?"Enabled":"Disabled",onClick:function(){function B(){return g("advanced_beacon_locking",{on:y?0:1})}return B}()})],4),0),children:[(0,e.createComponentVNode)(2,t.Stack,{mb:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Teleport target:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[C===m&&(0,e.createComponentVNode)(2,t.Dropdown,{width:18.2,selected:p,disabled:i,options:Object.keys(c),color:p!=="None"?"default":"bad",onSelected:function(){function B(L){return g("settarget",{x:c[L].x,y:c[L].y,z:c[L].z,tptarget:c[L].pretarget})}return B}()}),C===l&&(0,e.createComponentVNode)(2,t.Dropdown,{width:18.2,selected:p,disabled:i,options:Object.keys(c),color:p!=="None"?"default":"bad",onSelected:function(){function B(L){return g("settarget",{x:c[L].x,y:c[L].y,z:c[L].z,tptarget:c[L].pretarget})}return B}()}),C===u&&(0,e.createComponentVNode)(2,t.Box,{children:p})]})]}),(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Regime:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Gate",tooltip:"Teleport to another teleport hub.",tooltipPosition:"top",color:C===l?"good":null,onClick:function(){function B(){return g("setregime",{regime:l})}return B}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Teleporter",tooltip:"One-way teleport.",tooltipPosition:"top",color:C===m?"good":null,onClick:function(){function B(){return g("setregime",{regime:m})}return B}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"GPS",tooltip:"Teleport to a location stored in a GPS device.",tooltipPosition:"top-end",color:C===u?"good":null,disabled:!N,onClick:function(){function B(){return g("setregime",{regime:u})}return B}()})})]}),(0,e.createComponentVNode)(2,t.Stack,{label:"Calibration",mt:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:8.5,color:"label",children:"Calibration:"}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[p!=="None"&&(0,e.createComponentVNode)(2,t.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{width:15.8,textAlign:"center",mt:.5,children:i&&(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"In Progress"})||s&&(0,e.createComponentVNode)(2,t.Box,{color:"good",children:"Optimal"})||(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Sub-Optimal"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button,{icon:"sync-alt",tooltip:"Calibrates the hub. Accidents may occur when the calibration is not optimal.",tooltipPosition:"bottom-end",disabled:!!(s||i),onClick:function(){function B(){return g("calibrate")}return B}()})})]}),p==="None"&&(0,e.createComponentVNode)(2,t.Box,{lineHeight:"21px",children:"No target set"})]})]})]}),!!(N&&h&&v&&C===u)&&(0,e.createComponentVNode)(2,t.Section,{title:"GPS",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Button,{content:"Upload GPS data",tooltip:"Loads the GPS data from the device.",icon:"upload",onClick:function(){function B(){return g("load")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject",tooltip:"Ejects the GPS device",icon:"eject",onClick:function(){function B(){return g("eject")}return B}()})]})})]})})})})}return b}()},48517:function(A,r,n){"use strict";r.__esModule=!0,r.TelescienceConsole=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TelescienceConsole=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.last_msg,m=d.linked_pad,l=d.held_gps,u=d.lastdata,s=d.power_levels,i=d.current_max_power,h=d.current_power,C=d.current_bearing,v=d.current_elevation,p=d.current_sector,N=d.working,V=d.max_z,y=(0,a.useLocalState)(I,"dummyrot",C),B=y[0],L=y[1];return(0,e.createComponentVNode)(2,o.Window,{width:400,height:500,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:[(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:(0,e.createFragment)([c,!(u.length>0)||(0,e.createVNode)(1,"ul",null,u.map(function(w){return(0,e.createVNode)(1,"li",null,w,0,null,w)}),0)],0)}),(0,e.createComponentVNode)(2,t.Section,{title:"Telepad Status",children:m===1?(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Bearing",children:(0,e.createComponentVNode)(2,t.Box,{inline:!0,position:"relative",children:[(0,e.createComponentVNode)(2,t.NumberInput,{unit:"\xB0",width:6.1,lineHeight:1.5,step:.1,minValue:0,maxValue:360,disabled:N,value:C,onDrag:function(){function w(x,T){return L(T)}return w}(),onChange:function(){function w(x,T){return g("setbear",{bear:T})}return w}()}),(0,e.createComponentVNode)(2,t.Icon,{ml:1,size:1,name:"arrow-up",rotation:B})]})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Elevation",children:(0,e.createComponentVNode)(2,t.NumberInput,{width:6.1,lineHeight:1.5,step:.1,minValue:0,maxValue:100,disabled:N,value:v,onChange:function(){function w(x,T){return g("setelev",{elev:T})}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power Level",children:s.map(function(w,x){return(0,e.createComponentVNode)(2,t.Button,{content:w,selected:h===w,disabled:x>=i-1||N,onClick:function(){function T(){return g("setpwr",{pwr:x+1})}return T}()},w)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Target Sector",children:(0,e.createComponentVNode)(2,t.NumberInput,{width:6.1,lineHeight:1.5,step:1,minValue:2,maxValue:V,value:p,disabled:N,onChange:function(){function w(x,T){return g("setz",{newz:T})}return w}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Telepad Actions",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Send",disabled:N,onClick:function(){function w(){return g("pad_send")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Receive",disabled:N,onClick:function(){function w(){return g("pad_receive")}return w}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Crystal Maintenance",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Recalibrate Crystals",disabled:N,onClick:function(){function w(){return g("recal_crystals")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Eject Crystals",disabled:N,onClick:function(){function w(){return g("eject_crystals")}return w}()})]})]}):(0,e.createFragment)([(0,e.createTextVNode)("No pad linked to console. Please use a multitool to link a pad.")],4)}),(0,e.createComponentVNode)(2,t.Section,{title:"GPS Actions",children:l===1?(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{disabled:l===0||N,content:"Eject GPS",onClick:function(){function w(){return g("eject_gps")}return w}()}),(0,e.createComponentVNode)(2,t.Button,{disabled:l===0||N,content:"Store Coordinates",onClick:function(){function w(){return g("store_to_gps")}return w}()})],4):(0,e.createFragment)([(0,e.createTextVNode)("Please insert a GPS to store coordinates to it.")],4)})]})})}return b}()},21800:function(A,r,n){"use strict";r.__esModule=!0,r.TempGun=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.TempGun=function(){function g(d,c){var m=(0,t.useBackend)(c),l=m.act,u=m.data,s=u.target_temperature,i=u.temperature,h=u.max_temp,C=u.min_temp;return(0,e.createComponentVNode)(2,f.Window,{width:250,height:121,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target Temperature",children:[(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:10,stepPixelSize:6,minValue:C,maxValue:h,value:s,format:function(){function v(p){return(0,a.toFixed)(p,2)}return v}(),width:"50px",onDrag:function(){function v(p,N){return l("target_temperature",{target_temperature:N})}return v}()}),"\xB0C"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Current Temperature",children:(0,e.createComponentVNode)(2,o.Box,{color:S(i),bold:i>500-273.15,children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:(0,a.round)(i,2)}),"\xB0C"]})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Power Cost",children:(0,e.createComponentVNode)(2,o.Box,{color:k(i),children:I(i)})})]})})})})}return g}(),S=function(d){return d<=-100?"blue":d<=0?"teal":d<=100?"green":d<=200?"orange":"red"},I=function(d){return d<=100-273.15?"High":d<=250-273.15?"Medium":d<=300-273.15?"Low":d<=400-273.15?"Medium":"High"},k=function(d){return d<=100-273.15?"red":d<=250-273.15?"orange":d<=300-273.15?"green":d<=400-273.15?"orange":"red"}},24410:function(A,r,n){"use strict";r.__esModule=!0,r.sanitizeMultiline=r.removeAllSkiplines=r.TextInputModal=void 0;var e=n(89005),a=n(51057),t=n(19203),o=n(72253),f=n(92986),b=n(36036),S=n(98595),I=r.sanitizeMultiline=function(){function c(m){return m.replace(/(\n|\r\n){3,}/,"\n\n")}return c}(),k=r.removeAllSkiplines=function(){function c(m){return m.replace(/[\r\n]+/,"")}return c}(),g=r.TextInputModal=function(){function c(m,l){var u=(0,o.useBackend)(l),s=u.act,i=u.data,h=i.max_length,C=i.message,v=C===void 0?"":C,p=i.multiline,N=i.placeholder,V=i.timeout,y=i.title,B=(0,o.useLocalState)(l,"input",N||""),L=B[0],w=B[1],x=function(){function O(D){if(D!==L){var E=p?I(D):k(D);w(E)}}return O}(),T=p||L.length>=40,M=130+(v.length>40?Math.ceil(v.length/4):0)+(T?80:0);return(0,e.createComponentVNode)(2,S.Window,{title:y,width:325,height:M,children:[V&&(0,e.createComponentVNode)(2,a.Loader,{value:V}),(0,e.createComponentVNode)(2,S.Window.Content,{onKeyDown:function(){function O(D){var E=window.event?D.which:D.keyCode;E===f.KEY_ENTER&&(!T||!D.shiftKey)&&s("submit",{entry:L}),E===f.KEY_ESCAPE&&s("cancel")}return O}(),children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Box,{color:"label",children:v})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,d,{input:L,onType:x})}),(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,t.InputButtons,{input:L,message:L.length+"/"+h})})]})})})]})}return c}(),d=function(m,l){var u=(0,o.useBackend)(l),s=u.act,i=u.data,h=i.max_length,C=i.multiline,v=m.input,p=m.onType,N=C||v.length>=40;return(0,e.createComponentVNode)(2,b.TextArea,{autoFocus:!0,autoSelect:!0,height:C||v.length>=40?"100%":"1.8rem",maxLength:h,onEscape:function(){function V(){return s("cancel")}return V}(),onEnter:function(){function V(y){N&&y.shiftKey||(y.preventDefault(),s("submit",{entry:v}))}return V}(),onInput:function(){function V(y,B){return p(B)}return V}(),placeholder:"Type something...",value:v})}},25036:function(A,r,n){"use strict";r.__esModule=!0,r.ThermoMachine=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=n(98595),b=r.ThermoMachine=function(){function S(I,k){var g=(0,t.useBackend)(k),d=g.act,c=g.data;return(0,e.createComponentVNode)(2,f.Window,{width:300,height:225,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:[(0,e.createComponentVNode)(2,o.Section,{title:"Status",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Temperature",children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:c.temperature,format:function(){function m(l){return(0,a.toFixed)(l,2)}return m}()})," K"]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Pressure",children:[(0,e.createComponentVNode)(2,o.AnimatedNumber,{value:c.pressure,format:function(){function m(l){return(0,a.toFixed)(l,2)}return m}()})," kPa"]})]})}),(0,e.createComponentVNode)(2,o.Section,{title:"Controls",buttons:(0,e.createComponentVNode)(2,o.Button,{icon:c.on?"power-off":"times",content:c.on?"On":"Off",selected:c.on,onClick:function(){function m(){return d("power")}return m}()}),children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Setting",textAlign:"center",children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:c.cooling?"temperature-low":"temperature-high",content:c.cooling?"Cooling":"Heating",selected:c.cooling,onClick:function(){function m(){return d("cooling")}return m}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Target Temperature",children:[(0,e.createComponentVNode)(2,o.Button,{icon:"fast-backward",disabled:c.target===c.min,title:"Minimum temperature",onClick:function(){function m(){return d("target",{target:c.min})}return m}()}),(0,e.createComponentVNode)(2,o.NumberInput,{animated:!0,value:Math.round(c.target),unit:"K",width:5.4,lineHeight:1.4,minValue:Math.round(c.min),maxValue:Math.round(c.max),step:5,stepPixelSize:3,onDrag:function(){function m(l,u){return d("target",{target:u})}return m}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"fast-forward",disabled:c.target===c.max,title:"Maximum Temperature",onClick:function(){function m(){return d("target",{target:c.max})}return m}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"sync",disabled:c.target===c.initial,title:"Room Temperature",onClick:function(){function m(){return d("target",{target:c.initial})}return m}()})]})]})})]})})}return S}()},20035:function(A,r,n){"use strict";r.__esModule=!0,r.TransferValve=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.TransferValve=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.tank_one,m=d.tank_two,l=d.attached_device,u=d.valve;return(0,e.createComponentVNode)(2,o.Window,{width:460,height:285,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Valve Status",children:(0,e.createComponentVNode)(2,t.Button,{icon:u?"unlock":"lock",content:u?"Open":"Closed",disabled:!c||!m,onClick:function(){function s(){return g("toggle")}return s}()})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Assembly",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Configure Assembly",disabled:!l,onClick:function(){function s(){return g("device")}return s}()}),children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:l?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:l,disabled:!l,onClick:function(){function s(){return g("remove_device")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Assembly"})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Attachment One",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:c?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:c,disabled:!c,onClick:function(){function s(){return g("tankone")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Tank"})})})}),(0,e.createComponentVNode)(2,t.Section,{title:"Attachment Two",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Attachment",children:m?(0,e.createComponentVNode)(2,t.Button,{icon:"eject",content:m,disabled:!m,onClick:function(){function s(){return g("tanktwo")}return s}()}):(0,e.createComponentVNode)(2,t.Box,{color:"average",children:"No Tank"})})})})]})})}return b}()},78166:function(A,r,n){"use strict";r.__esModule=!0,r.TurbineComputer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=n(44879),b=r.TurbineComputer=function(){function k(g,d){var c=(0,a.useBackend)(d),m=c.act,l=c.data,u=l.compressor,s=l.compressor_broken,i=l.turbine,h=l.turbine_broken,C=l.online,v=!!(u&&!s&&i&&!h);return(0,e.createComponentVNode)(2,o.Window,{width:400,height:200,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Status",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{icon:C?"power-off":"times",content:C?"Online":"Offline",selected:C,disabled:!v,onClick:function(){function p(){return m("toggle_power")}return p}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:"Disconnect",onClick:function(){function p(){return m("disconnect")}return p}()})],4),children:v?(0,e.createComponentVNode)(2,I):(0,e.createComponentVNode)(2,S)})})})}return k}(),S=function(g,d){var c=(0,a.useBackend)(d),m=c.data,l=m.compressor,u=m.compressor_broken,s=m.turbine,i=m.turbine_broken,h=m.online;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Compressor Status",color:!l||u?"bad":"good",children:u?l?"Offline":"Missing":"Online"}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Turbine Status",color:!s||i?"bad":"good",children:i?s?"Offline":"Missing":"Online"})]})},I=function(g,d){var c=(0,a.useBackend)(d),m=c.data,l=m.rpm,u=m.temperature,s=m.power,i=m.bearing_heat;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Turbine Speed",children:[l," RPM"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Internal Temp",children:[u," K"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Generated Power",children:[s," W"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Bearing Heat",children:(0,e.createComponentVNode)(2,t.ProgressBar,{value:i,minValue:0,maxValue:100,ranges:{good:[-1/0,60],average:[60,90],bad:[90,1/0]},children:(0,f.toFixed)(i)+"%"})})]})}},52847:function(A,r,n){"use strict";r.__esModule=!0,r.Uplink=void 0;var e=n(89005),a=n(88510),t=n(64795),o=n(25328),f=n(72253),b=n(36036),S=n(98595),I=n(3939),k=function(C){switch(C){case 0:return(0,e.createComponentVNode)(2,d);case 1:return(0,e.createComponentVNode)(2,c);case 2:return(0,e.createComponentVNode)(2,i);default:return"SOMETHING WENT VERY WRONG PLEASE AHELP"}},g=r.Uplink=function(){function h(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.cart,B=(0,f.useLocalState)(v,"tabIndex",0),L=B[0],w=B[1],x=(0,f.useLocalState)(v,"searchText",""),T=x[0],M=x[1];return(0,e.createComponentVNode)(2,S.Window,{width:900,height:600,theme:"syndicate",children:[(0,e.createComponentVNode)(2,I.ComplexModal),(0,e.createComponentVNode)(2,S.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Tabs,{children:[(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===0,onClick:function(){function O(){w(0),M("")}return O}(),icon:"store",children:"View Market"},"PurchasePage"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===1,onClick:function(){function O(){w(1),M("")}return O}(),icon:"shopping-cart",children:["View Shopping Cart ",y&&y.length?"("+y.length+")":""]},"Cart"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:L===2,onClick:function(){function O(){w(2),M("")}return O}(),icon:"user",children:"Exploitable Information"},"ExploitableInfo"),(0,e.createComponentVNode)(2,b.Tabs.Tab,{onClick:function(){function O(){return N("lock")}return O}(),icon:"lock",children:"Lock Uplink"},"LockUplink")]})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:k(L)})]})})]})}return h}(),d=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.crystals,B=V.cats,L=(0,f.useLocalState)(v,"uplinkItems",B[0].items),w=L[0],x=L[1],T=(0,f.useLocalState)(v,"searchText",""),M=T[0],O=T[1],D=function(W,z){z===void 0&&(z="");var K=(0,o.createSearch)(z,function(G){var J=G.hijack_only===1?"|hijack":"";return G.name+"|"+G.desc+"|"+G.cost+"tc"+J});return(0,t.flow)([(0,a.filter)(function(G){return G==null?void 0:G.name}),z&&(0,a.filter)(K),(0,a.sortBy)(function(G){return G==null?void 0:G.name})])(W)},E=function(W){if(O(W),W==="")return x(B[0].items);x(D(B.map(function(z){return z.items}).flat(),W))},P=(0,f.useLocalState)(v,"showDesc",1),R=P[0],j=P[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:(0,e.createComponentVNode)(2,b.Stack.Item,{children:(0,e.createComponentVNode)(2,b.Section,{title:"Current Balance: "+y+"TC",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"Show Descriptions",checked:R,onClick:function(){function F(){return j(!R)}return F}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Random Item",icon:"question",onClick:function(){function F(){return N("buyRandom")}return F}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Refund Currently Held Item",icon:"undo",onClick:function(){function F(){return N("refund")}return F}()})],4),children:(0,e.createComponentVNode)(2,b.Input,{fluid:!0,placeholder:"Search Equipment",onInput:function(){function F(W,z){E(z)}return F}(),value:M})})})}),(0,e.createComponentVNode)(2,b.Stack,{fill:!0,mt:.3,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:B.map(function(F){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:M!==""?!1:F.items===w,onClick:function(){function W(){x(F.items),O("")}return W}(),children:F.cat},F)})})})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:w.map(function(F){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,l,{i:F,showDecription:R},(0,o.decodeHtmlEntities)(F.name))},(0,o.decodeHtmlEntities)(F.name))})})})})]})]})},c=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.cart,B=V.crystals,L=V.cart_price,w=(0,f.useLocalState)(v,"showDesc",0),x=w[0],T=w[1];return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Current Balance: "+B+"TC",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button.Checkbox,{content:"Show Descriptions",checked:x,onClick:function(){function M(){return T(!x)}return M}()}),(0,e.createComponentVNode)(2,b.Button,{content:"Empty Cart",icon:"trash",onClick:function(){function M(){return N("empty_cart")}return M}(),disabled:!y}),(0,e.createComponentVNode)(2,b.Button,{content:"Purchase Cart ("+L+"TC)",icon:"shopping-cart",onClick:function(){function M(){return N("purchase_cart")}return M}(),disabled:!y||L>B})],4),children:(0,e.createComponentVNode)(2,b.Stack,{vertical:!0,children:y?y.map(function(M){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,mr:1,backgroundColor:"rgba(255, 0, 0, 0.1)",children:(0,e.createComponentVNode)(2,l,{i:M,showDecription:x,buttons:(0,e.createComponentVNode)(2,s,{i:M})})},(0,o.decodeHtmlEntities)(M.name))}):(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:"Your Shopping Cart is empty!"})})})}),(0,e.createComponentVNode)(2,m)]})},m=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.cats,B=V.lucky_numbers;return(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Suggested Purchases",buttons:(0,e.createComponentVNode)(2,b.Button,{icon:"dice",content:"See more suggestions",onClick:function(){function L(){return N("shuffle_lucky_numbers")}return L}()}),children:(0,e.createComponentVNode)(2,b.Stack,{wrap:!0,children:B.map(function(L){return y[L.cat].items[L.item]}).filter(function(L){return L!=null}).map(function(L,w){return(0,e.createComponentVNode)(2,b.Stack.Item,{p:1,mb:1,ml:1,width:34,backgroundColor:"rgba(255, 0, 0, 0.15)",children:(0,e.createComponentVNode)(2,l,{grow:!0,i:L})},w)})})})})},l=function(C,v){var p=C.i,N=C.showDecription,V=N===void 0?1:N,y=C.buttons,B=y===void 0?(0,e.createComponentVNode)(2,u,{i:p}):y;return(0,e.createComponentVNode)(2,b.Section,{title:(0,o.decodeHtmlEntities)(p.name),showBottom:V,buttons:B,children:V?(0,e.createComponentVNode)(2,b.Box,{italic:!0,children:(0,o.decodeHtmlEntities)(p.desc)}):null})},u=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=C.i,B=V.crystals;return(0,e.createFragment)([(0,e.createComponentVNode)(2,b.Button,{icon:"shopping-cart",color:y.hijack_only===1&&"red",tooltip:"Add to cart.",tooltipPosition:"left",onClick:function(){function L(){return N("add_to_cart",{item:y.obj_path})}return L}(),disabled:y.cost>B}),(0,e.createComponentVNode)(2,b.Button,{content:"Buy ("+y.cost+"TC)"+(y.refundable?" [Refundable]":""),color:y.hijack_only===1&&"red",tooltip:y.hijack_only===1&&"Hijack Agents Only!",tooltipPosition:"left",onClick:function(){function L(){return N("buyItem",{item:y.obj_path})}return L}(),disabled:y.cost>B})],4)},s=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=C.i,B=V.exploitable;return(0,e.createComponentVNode)(2,b.Stack,{children:[(0,e.createComponentVNode)(2,b.Button,{icon:"times",content:"("+y.cost*y.amount+"TC)",tooltip:"Remove from cart.",tooltipPosition:"left",onClick:function(){function L(){return N("remove_from_cart",{item:y.obj_path})}return L}()}),(0,e.createComponentVNode)(2,b.Button,{icon:"minus",tooltip:y.limit===0&&"Discount already redeemed!",ml:"5px",onClick:function(){function L(){return N("set_cart_item_quantity",{item:y.obj_path,quantity:--y.amount})}return L}(),disabled:y.amount<=0}),(0,e.createComponentVNode)(2,b.Button.Input,{content:y.amount,width:"45px",tooltipPosition:"bottom-end",tooltip:y.limit===0&&"Discount already redeemed!",onCommit:function(){function L(w,x){return N("set_cart_item_quantity",{item:y.obj_path,quantity:x})}return L}(),disabled:y.limit!==-1&&y.amount>=y.limit&&y.amount<=0}),(0,e.createComponentVNode)(2,b.Button,{mb:.3,icon:"plus",tooltipPosition:"bottom-start",tooltip:y.limit===0&&"Discount already redeemed!",onClick:function(){function L(){return N("set_cart_item_quantity",{item:y.obj_path,quantity:++y.amount})}return L}(),disabled:y.limit!==-1&&y.amount>=y.limit})]})},i=function(C,v){var p=(0,f.useBackend)(v),N=p.act,V=p.data,y=V.exploitable,B=(0,f.useLocalState)(v,"selectedRecord",y[0]),L=B[0],w=B[1],x=(0,f.useLocalState)(v,"searchText",""),T=x[0],M=x[1],O=function(P,R){R===void 0&&(R="");var j=(0,o.createSearch)(R,function(F){return F.name});return(0,t.flow)([(0,a.filter)(function(F){return F==null?void 0:F.name}),R&&(0,a.filter)(j),(0,a.sortBy)(function(F){return F.name})])(P)},D=O(y,T);return(0,e.createComponentVNode)(2,b.Stack,{fill:!0,children:[(0,e.createComponentVNode)(2,b.Stack.Item,{width:"30%",children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:"Exploitable Records",children:[(0,e.createComponentVNode)(2,b.Input,{fluid:!0,mb:1,placeholder:"Search Crew",onInput:function(){function E(P,R){return M(R)}return E}()}),(0,e.createComponentVNode)(2,b.Tabs,{vertical:!0,children:D.map(function(E){return(0,e.createComponentVNode)(2,b.Tabs.Tab,{selected:E===L,onClick:function(){function P(){return w(E)}return P}(),children:E.name},E)})})]})}),(0,e.createComponentVNode)(2,b.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,b.Section,{fill:!0,scrollable:!0,title:L.name,children:(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Age",children:L.age}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Fingerprint",children:L.fingerprint}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Rank",children:L.rank}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Sex",children:L.sex}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Species",children:L.species})]})})})]})}},12261:function(A,r,n){"use strict";r.__esModule=!0,r.Vending=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=function(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=I.product,l=I.productStock,u=I.productIcon,s=I.productIconState,i=c.chargesMoney,h=c.user,C=c.usermoney,v=c.inserted_cash,p=c.vend_ready,N=c.inserted_item_name,V=!i||m.price===0,y="ERROR!",B="";V?(y="FREE",B="arrow-circle-down"):(y=m.price,B="shopping-cart");var L=!p||l===0||!V&&m.price>C&&m.price>v;return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,children:(0,e.createComponentVNode)(2,t.DmIcon,{verticalAlign:"middle",icon:u,icon_state:s,fallback:(0,e.createComponentVNode)(2,t.Icon,{p:.66,name:"spinner",size:2,spin:!0})})}),(0,e.createComponentVNode)(2,t.Table.Cell,{bold:!0,children:m.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Box,{color:l<=0&&"bad"||l<=m.max_amount/2&&"average"||"good",children:[l," in stock"]})}),(0,e.createComponentVNode)(2,t.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,disabled:L,icon:B,content:y,textAlign:"left",onClick:function(){function w(){return d("vend",{inum:m.inum})}return w}()})})]})},b=r.Vending=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.user,l=c.usermoney,u=c.inserted_cash,s=c.chargesMoney,i=c.product_records,h=i===void 0?[]:i,C=c.hidden_records,v=C===void 0?[]:C,p=c.stock,N=c.vend_ready,V=c.inserted_item_name,y=c.panel_open,B=c.speaker,L;return L=[].concat(h),c.extended_inventory&&(L=[].concat(L,v)),L=L.filter(function(w){return!!w}),(0,e.createComponentVNode)(2,o.Window,{title:"Vending Machine",width:450,height:Math.min((s?171:89)+L.length*32,585),children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[!!s&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"User",buttons:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:!!V&&(0,e.createComponentVNode)(2,t.Button,{fluid:!0,icon:"eject",content:(0,e.createVNode)(1,"span",null,V,0,{style:{"text-transform":"capitalize"}}),onClick:function(){function w(){return d("eject_item",{})}return w}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{disabled:!u,icon:"money-bill-wave-alt",content:u?(0,e.createFragment)([(0,e.createVNode)(1,"b",null,u,0),(0,e.createTextVNode)(" credits")],0):"Dispense Change",tooltip:u?"Dispense Change":null,textAlign:"left",onClick:function(){function w(){return d("change")}return w}()})})]}),children:m&&(0,e.createComponentVNode)(2,t.Box,{children:["Welcome, ",(0,e.createVNode)(1,"b",null,m.name,0),", ",(0,e.createVNode)(1,"b",null,m.job||"Unemployed",0),"!",(0,e.createVNode)(1,"br"),"Your balance is ",(0,e.createVNode)(1,"b",null,[l,(0,e.createTextVNode)(" credits")],0),".",(0,e.createVNode)(1,"br")]})})}),!!y&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{title:"Maintenance",children:(0,e.createComponentVNode)(2,t.Button,{icon:B?"check":"volume-mute",selected:B,content:"Speaker",textAlign:"left",onClick:function(){function w(){return d("toggle_voice",{})}return w}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:"Products",children:(0,e.createComponentVNode)(2,t.Table,{children:L.map(function(w){return(0,e.createComponentVNode)(2,f,{product:w,productStock:p[w.name],productIcon:w.icon,productIconState:w.icon_state},w.name)})})})})]})})})}return S}()},68971:function(A,r,n){"use strict";r.__esModule=!0,r.VolumeMixer=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.VolumeMixer=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.channels;return(0,e.createComponentVNode)(2,o.Window,{width:350,height:Math.min(95+c.length*50,565),children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:c.map(function(m,l){return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.25rem",color:"label",mt:l>0&&"0.5rem",children:m.name}),(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{mr:.5,children:(0,e.createComponentVNode)(2,t.Button,{width:"24px",color:"transparent",children:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-off",size:"1.5",mt:"0.1rem",onClick:function(){function u(){return g("volume",{channel:m.num,volume:0})}return u}()})})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mx:"0.5rem",children:(0,e.createComponentVNode)(2,t.Slider,{minValue:0,maxValue:100,stepPixelSize:3.13,value:m.volume,onChange:function(){function u(s,i){return g("volume",{channel:m.num,volume:i})}return u}()})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{width:"24px",color:"transparent",children:(0,e.createComponentVNode)(2,t.Icon,{name:"volume-up",size:"1.5",mt:"0.1rem",onClick:function(){function u(){return g("volume",{channel:m.num,volume:100})}return u}()})})})]})})],4,m.num)})})})})}return b}()},2510:function(A,r,n){"use strict";r.__esModule=!0,r.VotePanel=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.VotePanel=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.remaining,m=d.question,l=d.choices,u=d.user_vote,s=d.counts,i=d.show_counts;return(0,e.createComponentVNode)(2,o.Window,{width:400,height:360,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,title:m,children:[(0,e.createComponentVNode)(2,t.Box,{mb:1.5,ml:.5,children:["Time remaining: ",Math.round(c/10),"s"]}),l.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{mb:1,fluid:!0,translucent:!0,lineHeight:3,multiLine:h,content:h+(i?" ("+(s[h]||0)+")":""),onClick:function(){function C(){return g("vote",{target:h})}return C}(),selected:h===u})},h)})]})})})}return b}()},30138:function(A,r,n){"use strict";r.__esModule=!0,r.Wires=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.Wires=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.wires||[],m=d.status||[],l=56+c.length*23+(status?0:15+m.length*17);return(0,e.createComponentVNode)(2,o.Window,{width:350,height:l,children:(0,e.createComponentVNode)(2,o.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Section,{fill:!0,scrollable:!0,children:(0,e.createComponentVNode)(2,t.LabeledList,{children:c.map(function(u){return(0,e.createComponentVNode)(2,t.LabeledList.Item,{className:"candystripe",label:u.color_name,labelColor:u.seen_color,color:u.seen_color,buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Button,{content:u.cut?"Mend":"Cut",onClick:function(){function s(){return g("cut",{wire:u.color})}return s}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Pulse",onClick:function(){function s(){return g("pulse",{wire:u.color})}return s}()}),(0,e.createComponentVNode)(2,t.Button,{content:u.attached?"Detach":"Attach",onClick:function(){function s(){return g("attach",{wire:u.color})}return s}()})],4),children:!!u.wire&&(0,e.createVNode)(1,"i",null,[(0,e.createTextVNode)("("),u.wire,(0,e.createTextVNode)(")")],0)},u.seen_color)})})})}),!!m.length&&(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Section,{children:m.map(function(u){return(0,e.createComponentVNode)(2,t.Box,{color:"lightgray",children:u},u)})})})]})})})}return b}()},21400:function(A,r,n){"use strict";r.__esModule=!0,r.WizardApprenticeContract=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(98595),f=r.WizardApprenticeContract=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.used;return(0,e.createComponentVNode)(2,o.Window,{width:500,height:555,children:(0,e.createComponentVNode)(2,o.Window.Content,{scrollable:!0,children:[(0,e.createComponentVNode)(2,t.Section,{title:"Contract of Apprenticeship",children:["Using this contract, you may summon an apprentice to aid you on your mission.",(0,e.createVNode)(1,"p",null,"If you are unable to establish contact with your apprentice, you can feed the contract back to the spellbook to refund your points.",16),c?(0,e.createComponentVNode)(2,t.Box,{bold:!0,color:"red",children:"You've already summoned an apprentice or you are in process of summoning one."}):""]}),(0,e.createComponentVNode)(2,t.Section,{title:"Which school of magic is your apprentice studying?",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Fire",children:["Your apprentice is skilled in bending fire. ",(0,e.createVNode)(1,"br"),"They know Fireball, Sacred Flame, and Ethereal Jaunt.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("fire")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Translocation",children:["Your apprentice is able to defy physics, learning how to move through bluespace. ",(0,e.createVNode)(1,"br"),"They know Teleport, Blink and Ethereal Jaunt.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("translocation")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Restoration",children:["Your apprentice is dedicated to supporting your magical prowess.",(0,e.createVNode)(1,"br"),"They come equipped with a Staff of Healing, have the unique ability to teleport back to you, and know Charge and Knock.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("restoration")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Stealth",children:["Your apprentice is learning the art of infiltrating mundane facilities. ",(0,e.createVNode)(1,"br"),"They know Mindswap, Knock, Homing Toolbox, and Disguise Self, all of which can be cast without robes. They also join you in a Maintenance Dweller disguise, complete with Gloves of Shock Immunity and a Belt of Tools.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("stealth")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Honk",children:["Your apprentice is here to spread the Honkmother's blessings.",(0,e.createVNode)(1,"br"),"They know Banana Touch, Instant Summons, Ethereal Jaunt, and come equipped with a Staff of Slipping."," ",(0,e.createVNode)(1,"br"),"While under your tutelage, they have been 'blessed' with clown shoes that are impossible to remove.",(0,e.createVNode)(1,"br"),(0,e.createComponentVNode)(2,t.Button,{content:"Select",disabled:c,onClick:function(){function m(){return g("honk")}return m}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Divider)]})})]})})}return b}()},49148:function(A,r,n){"use strict";r.__esModule=!0,r.AccessList=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036);function f(g,d){var c=typeof Symbol!="undefined"&&g[Symbol.iterator]||g["@@iterator"];if(c)return(c=c.call(g)).next.bind(c);if(Array.isArray(g)||(c=b(g))||d&&g&&typeof g.length=="number"){c&&(g=c);var m=0;return function(){return m>=g.length?{done:!0}:{done:!1,value:g[m++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(g,d){if(g){if(typeof g=="string")return S(g,d);var c={}.toString.call(g).slice(8,-1);return c==="Object"&&g.constructor&&(c=g.constructor.name),c==="Map"||c==="Set"?Array.from(g):c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?S(g,d):void 0}}function S(g,d){(d==null||d>g.length)&&(d=g.length);for(var c=0,m=Array(d);c0&&!V.includes(R.ref)&&!p.includes(R.ref),checked:p.includes(R.ref),onClick:function(){function j(){return y(R.ref)}return j}()},R.desc)})]})]})})}return g}()},26991:function(A,r,n){"use strict";r.__esModule=!0,r.AtmosScan=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036),f=function(I,k,g,d,c){return Id?"average":I>c?"bad":"good"},b=r.AtmosScan=function(){function S(I,k){var g=I.data.aircontents;return(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,a.filter)(function(d){return d.val!=="0"||d.entry==="Pressure"||d.entry==="Temperature"})(g).map(function(d){return(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:d.entry,color:f(d.val,d.bad_low,d.poor_low,d.poor_high,d.bad_high),children:[d.val,d.units]},d.entry)})})})}return S}()},85870:function(A,r,n){"use strict";r.__esModule=!0,r.BeakerContents=void 0;var e=n(89005),a=n(36036),t=n(15964),o=function(S){return S+" unit"+(S===1?"":"s")},f=r.BeakerContents=function(){function b(S){var I=S.beakerLoaded,k=S.beakerContents,g=k===void 0?[]:k,d=S.buttons;return(0,e.createComponentVNode)(2,a.Stack,{vertical:!0,children:[!I&&(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",children:"No beaker loaded."})||g.length===0&&(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",children:"Beaker is empty."}),g.map(function(c,m){return(0,e.createComponentVNode)(2,a.Stack,{children:[(0,e.createComponentVNode)(2,a.Stack.Item,{color:"label",grow:!0,children:[o(c.volume)," of ",c.name]},c.name),!!d&&(0,e.createComponentVNode)(2,a.Stack.Item,{children:d(c,m)})]},c.name)})]})}return b}();f.propTypes={beakerLoaded:t.bool,beakerContents:t.array,buttons:t.arrayOf(t.element)}},92963:function(A,r,n){"use strict";r.__esModule=!0,r.BotStatus=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.BotStatus=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,d=g.locked,c=g.noaccess,m=g.maintpanel,l=g.on,u=g.autopatrol,s=g.canhack,i=g.emagged,h=g.remote_disabled;return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.NoticeBox,{children:["Swipe an ID card to ",d?"unlock":"lock"," this interface."]}),(0,e.createComponentVNode)(2,t.Section,{title:"General Settings",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:(0,e.createComponentVNode)(2,t.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,disabled:c,onClick:function(){function C(){return k("power")}return C}()})}),u!==null&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Patrol",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:u,content:"Auto Patrol",disabled:c,onClick:function(){function C(){return k("autopatrol")}return C}()})}),!!m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Maintenance Panel",children:(0,e.createComponentVNode)(2,t.Box,{color:"bad",children:"Panel Open!"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Safety System",children:(0,e.createComponentVNode)(2,t.Box,{color:i?"bad":"good",children:i?"DISABLED!":"Enabled"})}),!!s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Hacking",children:(0,e.createComponentVNode)(2,t.Button,{icon:"terminal",content:i?"Restore Safties":"Hack",disabled:c,color:"bad",onClick:function(){function C(){return k("hack")}return C}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Remote Access",children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:!h,content:"AI Remote Control",disabled:c,onClick:function(){function C(){return k("disableremote")}return C}()})})]})})],4)}return f}()},3939:function(A,r,n){"use strict";r.__esModule=!0,r.modalRegisterBodyOverride=r.modalOpen=r.modalClose=r.modalAnswer=r.ComplexModal=void 0;var e=n(89005),a=n(72253),t=n(36036),o={},f=r.modalOpen=function(){function g(d,c,m){var l=(0,a.useBackend)(d),u=l.act,s=l.data,i=Object.assign(s.modal?s.modal.args:{},m||{});u("modal_open",{id:c,arguments:JSON.stringify(i)})}return g}(),b=r.modalRegisterBodyOverride=function(){function g(d,c){o[d]=c}return g}(),S=r.modalAnswer=function(){function g(d,c,m,l){var u=(0,a.useBackend)(d),s=u.act,i=u.data;if(i.modal){var h=Object.assign(i.modal.args||{},l||{});s("modal_answer",{id:c,answer:m,arguments:JSON.stringify(h)})}}return g}(),I=r.modalClose=function(){function g(d,c){var m=(0,a.useBackend)(d),l=m.act;l("modal_close",{id:c})}return g}(),k=r.ComplexModal=function(){function g(d,c){var m=(0,a.useBackend)(c),l=m.data;if(l.modal){var u=l.modal,s=u.id,i=u.text,h=u.type,C,v=(0,e.createComponentVNode)(2,t.Button,{className:"Button--modal",icon:"arrow-left",content:"Cancel",onClick:function(){function L(){return I(c)}return L}()}),p,N,V="auto";if(o[s])p=o[s](l.modal,c);else if(h==="input"){var y=l.modal.value;C=function(){function L(w){return S(c,s,y)}return L}(),p=(0,e.createComponentVNode)(2,t.Input,{value:l.modal.value,placeholder:"ENTER to submit",width:"100%",my:"0.5rem",autofocus:!0,onChange:function(){function L(w,x){y=x}return L}()}),N=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"arrow-left",content:"Cancel",color:"grey",onClick:function(){function L(){return I(c)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:"Confirm",color:"good",float:"right",m:"0",onClick:function(){function L(){return S(c,s,y)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]})}else if(h==="choice"){var B=typeof l.modal.choices=="object"?Object.values(l.modal.choices):l.modal.choices;p=(0,e.createComponentVNode)(2,t.Dropdown,{options:B,selected:l.modal.value,width:"100%",my:"0.5rem",onSelected:function(){function L(w){return S(c,s,w)}return L}()}),V="initial"}else h==="bento"?p=(0,e.createComponentVNode)(2,t.Stack,{spacingPrecise:"1",wrap:"wrap",my:"0.5rem",maxHeight:"1%",children:l.modal.choices.map(function(L,w){return(0,e.createComponentVNode)(2,t.Stack.Item,{flex:"1 1 auto",children:(0,e.createComponentVNode)(2,t.Button,{selected:w+1===parseInt(l.modal.value,10),onClick:function(){function x(){return S(c,s,w+1)}return x}(),children:(0,e.createVNode)(1,"img",null,null,1,{src:L})})},w)})}):h==="boolean"&&(N=(0,e.createComponentVNode)(2,t.Box,{mt:"0.5rem",children:[(0,e.createComponentVNode)(2,t.Button,{icon:"times",content:l.modal.no_text,color:"bad",float:"left",mb:"0",onClick:function(){function L(){return S(c,s,0)}return L}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"check",content:l.modal.yes_text,color:"good",float:"right",m:"0",onClick:function(){function L(){return S(c,s,1)}return L}()}),(0,e.createComponentVNode)(2,t.Box,{clear:"both"})]}));return(0,e.createComponentVNode)(2,t.Modal,{maxWidth:d.maxWidth||window.innerWidth/2+"px",maxHeight:d.maxHeight||window.innerHeight/2+"px",onEnter:C,mx:"auto",overflowY:V,"padding-bottom":"5px",children:[i&&(0,e.createComponentVNode)(2,t.Box,{inline:!0,children:i}),o[s]&&v,p,N]})}}return g}()},41874:function(A,r,n){"use strict";r.__esModule=!0,r.CrewManifest=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(25328),f=n(76910),b=f.COLORS.department,S=["Captain","Head of Security","Chief Engineer","Chief Medical Officer","Research Director","Head of Personnel","Quartermaster"],I=function(m){return S.indexOf(m)!==-1?"green":"orange"},k=function(m){if(S.indexOf(m)!==-1)return!0},g=function(m){return m.length>0&&(0,e.createComponentVNode)(2,t.Table,{children:[(0,e.createComponentVNode)(2,t.Table.Row,{header:!0,color:"white",children:[(0,e.createComponentVNode)(2,t.Table.Cell,{width:"50%",children:"Name"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"35%",children:"Rank"}),(0,e.createComponentVNode)(2,t.Table.Cell,{width:"15%",children:"Active"})]}),m.map(function(l){return(0,e.createComponentVNode)(2,t.Table.Row,{color:I(l.rank),bold:k(l.rank),children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(l.name)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,o.decodeHtmlEntities)(l.rank)}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:l.active})]},l.name+l.rank)})]})},d=r.CrewManifest=function(){function c(m,l){var u=(0,a.useBackend)(l),s=u.act,i;if(m.data)i=m.data;else{var h=(0,a.useBackend)(l),C=h.data;i=C}var v=i,p=v.manifest,N=p.heads,V=p.sec,y=p.eng,B=p.med,L=p.sci,w=p.ser,x=p.sup,T=p.misc;return(0,e.createComponentVNode)(2,t.Box,{children:[(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.command,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Command"})}),level:2,children:g(N)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.security,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Security"})}),level:2,children:g(V)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.engineering,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Engineering"})}),level:2,children:g(y)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.medical,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Medical"})}),level:2,children:g(B)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.science,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Science"})}),level:2,children:g(L)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.service,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Service"})}),level:2,children:g(w)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{backgroundColor:b.supply,m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Supply"})}),level:2,children:g(x)}),(0,e.createComponentVNode)(2,t.Section,{title:(0,e.createComponentVNode)(2,t.Box,{m:-1,pt:1,pb:1,children:(0,e.createComponentVNode)(2,t.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Misc"})}),level:2,children:g(T)})]})}return c}()},19203:function(A,r,n){"use strict";r.__esModule=!0,r.InputButtons=void 0;var e=n(89005),a=n(36036),t=n(72253),o=r.InputButtons=function(){function f(b,S){var I=(0,t.useBackend)(S),k=I.act,g=I.data,d=g.large_buttons,c=g.swapped_buttons,m=b.input,l=b.message,u=b.disabled,s=(0,e.createComponentVNode)(2,a.Button,{color:"good",content:"Submit",bold:!!d,fluid:!!d,onClick:function(){function h(){return k("submit",{entry:m})}return h}(),textAlign:"center",tooltip:d&&l,disabled:u,width:!d&&6}),i=(0,e.createComponentVNode)(2,a.Button,{color:"bad",content:"Cancel",bold:!!d,fluid:!!d,onClick:function(){function h(){return k("cancel")}return h}(),textAlign:"center",width:!d&&6});return(0,e.createComponentVNode)(2,a.Flex,{fill:!0,align:"center",direction:c?"row-reverse":"row",justify:"space-around",children:[d?(0,e.createComponentVNode)(2,a.Flex.Item,{grow:!0,ml:c?.5:0,mr:c?0:.5,children:i}):(0,e.createComponentVNode)(2,a.Flex.Item,{children:i}),!d&&l&&(0,e.createComponentVNode)(2,a.Flex.Item,{children:(0,e.createComponentVNode)(2,a.Box,{color:"label",textAlign:"center",children:l})}),d?(0,e.createComponentVNode)(2,a.Flex.Item,{grow:!0,mr:c?.5:0,ml:c?0:.5,children:s}):(0,e.createComponentVNode)(2,a.Flex.Item,{children:s})]})}return f}()},195:function(A,r,n){"use strict";r.__esModule=!0,r.InterfaceLockNoticeBox=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.InterfaceLockNoticeBox=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,d=b.siliconUser,c=d===void 0?g.siliconUser:d,m=b.locked,l=m===void 0?g.locked:m,u=b.normallyLocked,s=u===void 0?g.normallyLocked:u,i=b.onLockStatusChange,h=i===void 0?function(){return k("lock")}:i,C=b.accessText,v=C===void 0?"an ID card":C;return c?(0,e.createComponentVNode)(2,t.NoticeBox,{color:c&&"grey",children:(0,e.createComponentVNode)(2,t.Flex,{align:"center",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{children:"Interface lock status:"}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:"1"}),(0,e.createComponentVNode)(2,t.Flex.Item,{children:(0,e.createComponentVNode)(2,t.Button,{m:"0",color:s?"red":"green",icon:s?"lock":"unlock",content:s?"Locked":"Unlocked",onClick:function(){function p(){h&&h(!l)}return p}()})})]})}):(0,e.createComponentVNode)(2,t.NoticeBox,{children:["Swipe ",v," to ",l?"unlock":"lock"," this interface."]})}return f}()},51057:function(A,r,n){"use strict";r.__esModule=!0,r.Loader=void 0;var e=n(89005),a=n(44879),t=n(36036),o=r.Loader=function(){function f(b){var S=b.value;return(0,e.createVNode)(1,"div","AlertModal__Loader",(0,e.createComponentVNode)(2,t.Box,{className:"AlertModal__LoaderProgress",style:{width:(0,a.clamp01)(S)*100+"%"}}),2)}return f}()},321:function(A,r,n){"use strict";r.__esModule=!0,r.LoginInfo=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LoginInfo=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,d=g.loginState;if(g)return(0,e.createComponentVNode)(2,t.NoticeBox,{info:!0,children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:.5,children:["Logged in as: ",d.name," (",d.rank,")"]}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:[(0,e.createComponentVNode)(2,t.Button,{icon:"eject",disabled:!d.id,content:"Eject ID",color:"good",onClick:function(){function c(){return k("login_eject")}return c}()}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-out-alt",content:"Logout",color:"good",onClick:function(){function c(){return k("login_logout")}return c}()})]})]})})}return f}()},5485:function(A,r,n){"use strict";r.__esModule=!0,r.LoginScreen=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.LoginScreen=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,d=g.loginState,c=g.isAI,m=g.isRobot,l=g.isAdmin;return(0,e.createComponentVNode)(2,t.Section,{title:"Welcome",fill:!0,stretchContents:!0,children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",align:"center",justify:"center",children:(0,e.createComponentVNode)(2,t.Flex.Item,{textAlign:"center",mt:"-2rem",children:[(0,e.createComponentVNode)(2,t.Box,{fontSize:"1.5rem",bold:!0,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"user-circle",verticalAlign:"middle",size:3,mr:"1rem"}),"Guest"]}),(0,e.createComponentVNode)(2,t.Box,{color:"label",my:"1rem",children:["ID:",(0,e.createComponentVNode)(2,t.Button,{icon:"id-card",content:d.id?d.id:"----------",ml:"0.5rem",onClick:function(){function u(){return k("login_insert")}return u}()})]}),(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",disabled:!d.id,content:"Login",onClick:function(){function u(){return k("login_login",{login_type:1})}return u}()}),!!c&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as AI",onClick:function(){function u(){return k("login_login",{login_type:2})}return u}()}),!!m&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"Login as Cyborg",onClick:function(){function u(){return k("login_login",{login_type:3})}return u}()}),!!l&&(0,e.createComponentVNode)(2,t.Button,{icon:"sign-in-alt",content:"CentComm Secure Login",onClick:function(){function u(){return k("login_login",{login_type:4})}return u}()})]})})})}return f}()},62411:function(A,r,n){"use strict";r.__esModule=!0,r.Operating=void 0;var e=n(89005),a=n(36036),t=n(15964),o=r.Operating=function(){function f(b){var S=b.operating,I=b.name;if(S)return(0,e.createComponentVNode)(2,a.Dimmer,{children:(0,e.createComponentVNode)(2,a.Flex,{mb:"30px",children:(0,e.createComponentVNode)(2,a.Flex.Item,{bold:!0,color:"silver",textAlign:"center",children:[(0,e.createComponentVNode)(2,a.Icon,{name:"spinner",spin:!0,size:4,mb:"15px"}),(0,e.createVNode)(1,"br"),"The ",I," is processing..."]})})})}return f}();o.propTypes={operating:t.bool,name:t.string}},13545:function(A,r,n){"use strict";r.__esModule=!0,r.Signaler=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=r.Signaler=function(){function b(S,I){var k=(0,t.useBackend)(I),g=k.act,d=S.data,c=d.code,m=d.frequency,l=d.minFrequency,u=d.maxFrequency;return(0,e.createComponentVNode)(2,o.Section,{children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:l/10,maxValue:u/10,value:m/10,format:function(){function s(i){return(0,a.toFixed)(i,1)}return s}(),width:"80px",onDrag:function(){function s(i,h){return g("freq",{freq:h})}return s}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Code",children:(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:c,width:"80px",onDrag:function(){function s(i,h){return g("code",{code:h})}return s}()})})]}),(0,e.createComponentVNode)(2,o.Button,{mt:1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){function s(){return g("signal")}return s}()})]})}return b}()},41984:function(A,r,n){"use strict";r.__esModule=!0,r.SimpleRecords=void 0;var e=n(89005),a=n(72253),t=n(25328),o=n(64795),f=n(88510),b=n(36036),S=r.SimpleRecords=function(){function g(d,c){var m=d.data.records;return(0,e.createComponentVNode)(2,b.Box,{children:m?(0,e.createComponentVNode)(2,k,{data:d.data,recordType:d.recordType}):(0,e.createComponentVNode)(2,I,{data:d.data})})}return g}(),I=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=d.data.recordsList,s=(0,a.useLocalState)(c,"searchText",""),i=s[0],h=s[1],C=function(N,V){V===void 0&&(V="");var y=(0,t.createSearch)(V,function(B){return B.Name});return(0,o.flow)([(0,f.filter)(function(B){return B==null?void 0:B.Name}),V&&(0,f.filter)(y),(0,f.sortBy)(function(B){return B.Name})])(u)},v=C(u,i);return(0,e.createComponentVNode)(2,b.Box,{children:[(0,e.createComponentVNode)(2,b.Input,{fluid:!0,mb:1,placeholder:"Search records...",onInput:function(){function p(N,V){return h(V)}return p}()}),v.map(function(p){return(0,e.createComponentVNode)(2,b.Box,{children:(0,e.createComponentVNode)(2,b.Button,{mb:.5,content:p.Name,icon:"user",onClick:function(){function N(){return l("Records",{target:p.uid})}return N}()})},p)})]})},k=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=d.data.records,s=u.general,i=u.medical,h=u.security,C;switch(d.recordType){case"MED":C=(0,e.createComponentVNode)(2,b.Section,{level:2,title:"Medical Data",children:i?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Blood Type",children:i.blood_type}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Minor Disabilities",children:i.mi_dis}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:i.mi_dis_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Major Disabilities",children:i.ma_dis}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:i.ma_dis_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Allergies",children:i.alg}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:i.alg_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Current Diseases",children:i.cdi}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:i.cdi_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:i.notes})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"Medical record lost!"})});break;case"SEC":C=(0,e.createComponentVNode)(2,b.Section,{level:2,title:"Security Data",children:h?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Criminal Status",children:h.criminal}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Minor Crimes",children:h.mi_crim}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:h.mi_crim_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Major Crimes",children:h.ma_crim}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Details",children:h.ma_crim_d}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Important Notes",preserveWhitespace:!0,children:h.notes})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"Security record lost!"})});break}return(0,e.createComponentVNode)(2,b.Box,{children:[(0,e.createComponentVNode)(2,b.Section,{title:"General Data",children:s?(0,e.createComponentVNode)(2,b.LabeledList,{children:[(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Name",children:s.name}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Sex",children:s.sex}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Species",children:s.species}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Age",children:s.age}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Rank",children:s.rank}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Fingerprint",children:s.fingerprint}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Physical Status",children:s.p_stat}),(0,e.createComponentVNode)(2,b.LabeledList.Item,{label:"Mental Status",children:s.m_stat})]}):(0,e.createComponentVNode)(2,b.Box,{color:"red",bold:!0,children:"General record lost!"})}),C]})}},22091:function(A,r,n){"use strict";r.__esModule=!0,r.TemporaryNotice=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.TemporaryNotice=function(){function f(b,S){var I,k=(0,a.useBackend)(S),g=k.act,d=k.data,c=d.temp;if(c){var m=(I={},I[c.style]=!0,I);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,t.NoticeBox,Object.assign({},m,{children:(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,mt:.5,children:c.text}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{icon:"times-circle",onClick:function(){function l(){return g("cleartemp")}return l}()})})]})})))}}return f}()},95213:function(A,r,n){"use strict";r.__esModule=!0,r.goonstation_PTL=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(49968),f=n(98595);/**
* @file
* @copyright 2020
* @author Sovexe (https://github.com/Sovexe)
* @license ISC
- */var b=r.goonstation_PTL=function(){function g(u,c){var m=(0,a.useBackend)(c),l=m.data,d=l.total_earnings,s=l.total_energy,i=l.name,h=i===void 0?"Power Transmission Laser":i;return(0,e.createComponentVNode)(2,f.Window,{title:"Power Transmission Laser",width:"310",height:"485",children:(0,e.createComponentVNode)(2,f.Window.Content,{children:[(0,e.createComponentVNode)(2,S),(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,t.NoticeBox,{success:!0,children:["Earned Credits : ",d?(0,o.formatMoney)(d):0]}),(0,e.createComponentVNode)(2,t.NoticeBox,{success:!0,children:["Energy Sold : ",s?(0,o.formatSiUnit)(s,0,"J"):"0 J"]})]})})}return g}(),S=function(u,c){var m=(0,a.useBackend)(c),l=m.data,d=l.max_capacity,s=l.held_power,i=l.input_total,h=l.max_grid_load;return(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reserve energy",children:s?(0,o.formatSiUnit)(s,0,"J"):"0 J"})}),(0,e.createComponentVNode)(2,t.ProgressBar,{mt:"0.5em",mb:"0.5em",ranges:{good:[.8,1/0],average:[.5,.8],bad:[-1/0,.5]},value:s/d}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Grid Saturation"})}),(0,e.createComponentVNode)(2,t.ProgressBar,{mt:"0.5em",ranges:{good:[.8,1/0],average:[.5,.8],bad:[-1/0,.5]},value:Math.min(i,d-s)/h})]})},I=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.input_total,i=d.accepting_power,h=d.sucking_power,C=d.input_number,v=d.power_format;return(0,e.createComponentVNode)(2,t.Section,{title:"Input Controls",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input Circuit",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",color:i?"green":"red",onClick:function(){function p(){return l("toggle_input")}return p}(),children:i?"Enabled":"Disabled"}),children:(0,e.createComponentVNode)(2,t.Box,{color:h&&"good"||i&&"average"||"bad",children:h&&"Online"||i&&"Idle"||"Offline"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input Level",children:s?(0,o.formatPower)(s):"0 W"})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"0.5em",children:[(0,e.createComponentVNode)(2,t.NumberInput,{mr:"0.5em",animated:!0,size:1.25,inline:!0,step:1,stepPixelSize:2,minValue:0,maxValue:999,value:C,onChange:function(){function p(N,V){return l("set_input",{set_input:V})}return p}()}),(0,e.createComponentVNode)(2,t.Button,{selected:v===1,onClick:function(){function p(){return l("inputW")}return p}(),children:"W"}),(0,e.createComponentVNode)(2,t.Button,{selected:v===Math.pow(10,3),onClick:function(){function p(){return l("inputKW")}return p}(),children:"KW"}),(0,e.createComponentVNode)(2,t.Button,{selected:v===Math.pow(10,6),onClick:function(){function p(){return l("inputMW")}return p}(),children:"MW"}),(0,e.createComponentVNode)(2,t.Button,{selected:v===Math.pow(10,9),onClick:function(){function p(){return l("inputGW")}return p}(),children:"GW"})]})]})},k=function(u,c){var m=(0,a.useBackend)(c),l=m.act,d=m.data,s=d.output_total,i=d.firing,h=d.accepting_power,C=d.output_number,v=d.output_multiplier,p=d.target,N=d.held_power;return(0,e.createComponentVNode)(2,t.Section,{title:"Output Controls",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Laser Circuit",buttons:(0,e.createComponentVNode)(2,t.Stack,{Horizontal:!0,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"crosshairs",color:p===""?"green":"red",onClick:function(){function V(){return l("target")}return V}(),children:p}),(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",color:i?"green":"red",disabled:!i&&Nd,onClick:function(){function y(){return k("purchaseSoftware",{key:V.key})}return y}()},V.key)}),c.filter(function(V){return!N[V.key]}).length===0&&"No software available!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Installed Software",children:[m.filter(function(V){return V.key!=="mainmenu"}).map(function(V){return(0,e.createComponentVNode)(2,t.Button,{content:V.name,icon:V.icon,onClick:function(){function y(){return k("startSoftware",{software_key:V.key})}return y}()},V.key)}),m.length===0&&"No software installed!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Installed Toggles",children:[l.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{content:V.name,icon:V.icon,selected:V.active,onClick:function(){function y(){return k("setToggle",{toggle_key:V.key})}return y}()},V.key)}),l.length===0&&"No toggles installed!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Emotion",children:s.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{content:V.name,selected:V.id===i,onClick:function(){function y(){return k("setEmotion",{emotion:V.id})}return y}()},V.id)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Speaking State",children:h.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{content:V.name,selected:V.name===C,onClick:function(){function y(){return k("setSpeechStyle",{speech_state:V.name})}return y}()},V.id)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Chassis Type",children:v.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{content:V.name,selected:V.icon===p,onClick:function(){function y(){return k("setChassis",{chassis_to_change:V.icon})}return y}()},V.id)})})]})})}return f}()},2983:function(A,r,n){"use strict";r.__esModule=!0,r.pai_manifest=void 0;var e=n(89005),a=n(72253),t=n(41874),o=r.pai_manifest=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data;return(0,e.createComponentVNode)(2,t.CrewManifest,{data:g.app_data})}return f}()},40758:function(A,r,n){"use strict";r.__esModule=!0,r.pai_medrecords=void 0;var e=n(89005),a=n(72253),t=n(41984),o=r.pai_medrecords=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:k.app_data,recordType:"MED"})}return f}()},98599:function(A,r,n){"use strict";r.__esModule=!0,r.pai_messenger=void 0;var e=n(89005),a=n(72253),t=n(77595),o=r.pai_messenger=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,u=g.app_data.active_convo;return u?(0,e.createComponentVNode)(2,t.ActiveConversation,{data:g.app_data}):(0,e.createComponentVNode)(2,t.MessengerList,{data:g.app_data})}return f}()},50775:function(A,r,n){"use strict";r.__esModule=!0,r.pai_radio=void 0;var e=n(89005),a=n(72253),t=n(44879),o=n(36036),f=r.pai_radio=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.app_data,m=c.minFrequency,l=c.maxFrequency,d=c.frequency,s=c.broadcasting;return(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:[(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:m/10,maxValue:l/10,value:d/10,format:function(){function i(h){return(0,t.toFixed)(h,1)}return i}(),onChange:function(){function i(h,C){return g("freq",{freq:C})}return i}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"Reset",icon:"undo",onClick:function(){function i(){return g("freq",{freq:"145.9"})}return i}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Broadcast Nearby Speech",children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function i(){return g("toggleBroadcast")}return i}(),selected:s,content:s?"Enabled":"Disabled"})})]})}return b}()},48623:function(A,r,n){"use strict";r.__esModule=!0,r.pai_secrecords=void 0;var e=n(89005),a=n(72253),t=n(41984),o=r.pai_secrecords=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:k.app_data,recordType:"SEC"})}return f}()},47297:function(A,r,n){"use strict";r.__esModule=!0,r.pai_signaler=void 0;var e=n(89005),a=n(72253),t=n(13545),o=r.pai_signaler=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data;return(0,e.createComponentVNode)(2,t.Signaler,{data:g.app_data})}return f}()},78532:function(A,r,n){"use strict";r.__esModule=!0,r.pda_atmos_scan=void 0;var e=n(89005),a=n(72253),t=n(26991),o=r.pda_atmos_scan=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data;return(0,e.createComponentVNode)(2,t.AtmosScan,{data:k})}return f}()},2395:function(A,r,n){"use strict";r.__esModule=!0,r.pda_games=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(1331),f=r.pda_games=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,u=k.data,c=u.games,m=function(){function l(d){switch(d){case"Minesweeper":return(0,e.createComponentVNode)(2,o.IconStack,{children:[(0,e.createComponentVNode)(2,o.Icon,{ml:"0",mt:"10px",name:"flag",size:"6",color:"gray",rotation:30}),(0,e.createComponentVNode)(2,o.Icon,{ml:"9px",mt:"23px",name:"bomb",size:"3",color:"black"})]});default:return(0,e.createComponentVNode)(2,o.Icon,{ml:"16px",mt:"10px",name:"gamepad",size:"6"})}}return l}();return(0,e.createComponentVNode)(2,t.Box,{children:c.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{width:"33%",textAlign:"center",translucent:!0,onClick:function(){function d(){return g("play",{id:l.id})}return d}(),children:[m(l.name),(0,e.createComponentVNode)(2,t.Box,{children:l.name})]},l.name)})})}return b}()},40253:function(A,r,n){"use strict";r.__esModule=!0,r.pda_janitor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_janitor=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,u=g.janitor,c=u.user_loc,m=u.mops,l=u.buckets,d=u.cleanbots,s=u.carts,i=u.janicarts;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Location",children:[c.x,",",c.y]}),m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mop Locations",children:m.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:[h.x,",",h.y," (",h.dir,") - ",h.status]},h)})}),l&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mop Bucket Locations",children:l.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:[h.x,",",h.y," (",h.dir,") - [",h.volume,"/",h.max_volume,"]"]},h)})}),d&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cleanbot Locations",children:d.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:[h.x,",",h.y," (",h.dir,") - ",h.status]},h)})}),s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Janitorial Cart Locations",children:s.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:[h.x,",",h.y," (",h.dir,") - [",h.volume,"/",h.max_volume,"]"]},h)})}),i&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Janicart Locations",children:i.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:[h.x,",",h.y," (",h.direction_from_user,")"]},h)})})]})}return f}()},58293:function(A,r,n){"use strict";r.__esModule=!0,r.pda_main_menu=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=r.pda_main_menu=function(){function b(S,I){var k=(0,t.useBackend)(I),g=k.act,u=k.data,c=u.owner,m=u.ownjob,l=u.idInserted,d=u.categories,s=u.pai,i=u.notifying;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",color:"average",children:[c,", ",m]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"ID",children:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Update PDA Info",disabled:!l,onClick:function(){function h(){return g("UpdateInfo")}return h}()})})]})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Functions",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:d.map(function(h){var C=u.apps[h];return!C||!C.length?null:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:h,children:C.map(function(v){return(0,e.createComponentVNode)(2,o.Button,{icon:v.uid in i?v.notify_icon:v.icon,iconSpin:v.uid in i,color:v.uid in i?"red":"transparent",content:v.name,onClick:function(){function p(){return g("StartProgram",{program:v.uid})}return p}()},v.uid)})},h)})})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:!!s&&(0,e.createComponentVNode)(2,o.Section,{title:"pAI",children:[(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"cog",content:"Configuration",onClick:function(){function h(){return g("pai",{option:1})}return h}()}),(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"eject",content:"Eject pAI",onClick:function(){function h(){return g("pai",{option:2})}return h}()})]})})]})}return b}()},58059:function(A,r,n){"use strict";r.__esModule=!0,r.pda_manifest=void 0;var e=n(89005),a=n(72253),t=n(41874),o=r.pda_manifest=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data;return(0,e.createComponentVNode)(2,t.CrewManifest)}return f}()},18147:function(A,r,n){"use strict";r.__esModule=!0,r.pda_medical=void 0;var e=n(89005),a=n(72253),t=n(41984),o=r.pda_medical=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:k,recordType:"MED"})}return f}()},77595:function(A,r,n){"use strict";r.__esModule=!0,r.pda_messenger=r.MessengerList=r.ActiveConversation=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036),f=r.pda_messenger=function(){function k(g,u){var c=(0,t.useBackend)(u),m=c.act,l=c.data,d=l.active_convo;return d?(0,e.createComponentVNode)(2,b,{data:l}):(0,e.createComponentVNode)(2,S,{data:l})}return k}(),b=r.ActiveConversation=function(){function k(g,u){var c=(0,t.useBackend)(u),m=c.act,l=g.data,d=l.convo_name,s=l.convo_job,i=l.messages,h=l.active_convo,C=(0,t.useLocalState)(u,"clipboardMode",!1),v=C[0],p=C[1],N=(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Conversation with "+d+" ("+s+")",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"eye",selected:v,tooltip:"Enter Clipboard Mode",tooltipPosition:"bottom-start",onClick:function(){function V(){return p(!v)}return V}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function V(){return m("Message",{target:h})}return V}(),content:"Reply"})],4),children:(0,a.filter)(function(V){return V.target===h})(i).map(function(V,y){return(0,e.createComponentVNode)(2,o.Box,{textAlign:V.sent?"right":"left",position:"relative",mb:1,children:[(0,e.createComponentVNode)(2,o.Icon,{fontSize:2.5,color:V.sent?"#4d9121":"#cd7a0d",position:"absolute",left:V.sent?null:"0px",right:V.sent?"0px":null,bottom:"-4px",style:{"z-index":"0",transform:V.sent?"scale(-1, 1)":null},name:"comment"}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,backgroundColor:V.sent?"#4d9121":"#cd7a0d",p:1,maxWidth:"100%",position:"relative",textAlign:V.sent?"left":"right",style:{"z-index":"1","border-radius":"10px","word-break":"normal"},children:[V.sent?"You:":"Them:"," ",V.message]})]},y)})});return v&&(N=(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Conversation with "+d+" ("+s+")",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"eye",selected:v,tooltip:"Exit Clipboard Mode",tooltipPosition:"bottom-start",onClick:function(){function V(){return p(!v)}return V}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function V(){return m("Message",{target:h})}return V}(),content:"Reply"})],4),children:(0,a.filter)(function(V){return V.target===h})(i).map(function(V,y){return(0,e.createComponentVNode)(2,o.Box,{color:V.sent?"#4d9121":"#cd7a0d",style:{"word-break":"normal"},children:[V.sent?"You:":"Them:"," ",(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:V.message})]},y)})})),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mb:.5,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Messenger Functions",children:(0,e.createComponentVNode)(2,o.Button.Confirm,{content:"Delete Conversations",confirmContent:"Are you sure?",icon:"trash",confirmIcon:"trash",onClick:function(){function V(){return m("Clear",{option:"Convo"})}return V}()})})})}),N]})}return k}(),S=r.MessengerList=function(){function k(g,u){var c=(0,t.useBackend)(u),m=c.act,l=g.data,d=l.convopdas,s=l.pdas,i=l.charges,h=l.silent,C=l.toff,v=l.ringtone_list,p=l.ringtone,N=(0,t.useLocalState)(u,"searchTerm",""),V=N[0],y=N[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mb:5,children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Messenger Functions",children:[(0,e.createComponentVNode)(2,o.Button,{selected:!h,icon:h?"volume-mute":"volume-up",onClick:function(){function B(){return m("Toggle Ringer")}return B}(),children:["Ringer: ",h?"Off":"On"]}),(0,e.createComponentVNode)(2,o.Button,{color:C?"bad":"green",icon:"power-off",onClick:function(){function B(){return m("Toggle Messenger")}return B}(),children:["Messenger: ",C?"Off":"On"]}),(0,e.createComponentVNode)(2,o.Button,{icon:"trash",color:"bad",onClick:function(){function B(){return m("Clear",{option:"All"})}return B}(),children:"Delete All Conversations"}),(0,e.createComponentVNode)(2,o.Button,{icon:"bell",onClick:function(){function B(){return m("Ringtone")}return B}(),children:"Set Custom Ringtone"}),(0,e.createComponentVNode)(2,o.Dropdown,{selected:p,width:"100px",options:Object.keys(v),onSelected:function(){function B(L){return m("Available_Ringtones",{selected_ringtone:L})}return B}()})]})}),!C&&(0,e.createComponentVNode)(2,o.Box,{children:[!!i&&(0,e.createComponentVNode)(2,o.Box,{mt:.5,mb:1,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cartridge Special Function",children:[i," charges left."]})})}),!d.length&&!s.length&&(0,e.createComponentVNode)(2,o.Box,{children:"No current conversations"})||(0,e.createComponentVNode)(2,o.Box,{children:["Search:"," ",(0,e.createComponentVNode)(2,o.Input,{mt:.5,value:V,onInput:function(){function B(L,w){y(w)}return B}()})]})]})||(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"Messenger Offline."})]}),(0,e.createComponentVNode)(2,I,{title:"Current Conversations",data:l,pdas:d,msgAct:"Select Conversation",searchTerm:V}),(0,e.createComponentVNode)(2,I,{title:"Other PDAs",pdas:s,msgAct:"Message",data:l,searchTerm:V})]})}return k}(),I=function(g,u){var c=(0,t.useBackend)(u),m=c.act,l=g.data,d=g.pdas,s=g.title,i=g.msgAct,h=g.searchTerm,C=l.charges,v=l.plugins;return!d||!d.length?(0,e.createComponentVNode)(2,o.Section,{title:s,children:"No PDAs found."}):(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:s,children:d.filter(function(p){return p.Name.toLowerCase().includes(h.toLowerCase())}).map(function(p){return(0,e.createComponentVNode)(2,o.Stack,{m:.5,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"arrow-circle-down",content:p.Name,onClick:function(){function N(){return m(i,{target:p.uid})}return N}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:!!C&&v.map(function(N){return(0,e.createComponentVNode)(2,o.Button,{icon:N.icon,content:N.name,onClick:function(){function V(){return m("Messenger Plugin",{plugin:N.uid,target:p.uid})}return V}()},N.uid)})})]},p.uid)})})}},90382:function(A,r,n){"use strict";r.__esModule=!0,r.pda_minesweeper=r.MineSweeperLeaderboard=r.MineSweeperGame=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_minesweeper=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=(0,a.useLocalState)(g,"window","Game"),d=l[0],s=l[1],i={Game:"Leaderboard",Leaderboard:"Game"};return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:d==="Game"?(0,e.createComponentVNode)(2,f):(0,e.createComponentVNode)(2,b)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,fontSize:2,lineHeight:1.75,icon:d==="Game"?"book":"gamepad",onClick:function(){function h(){return s(i[d])}return h}(),children:i[d]})})]})}return I}(),f=r.MineSweeperGame=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.matrix,d=m.flags,s=m.bombs,i={1:"blue",2:"green",3:"red",4:"darkblue",5:"brown",6:"lightblue",7:"black",8:"white"},h=function(){function C(v,p,N){c("Square",{X:v,Y:p,mode:N})}return C}();return(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:Object.keys(l).map(function(C){return(0,e.createComponentVNode)(2,t.Box,{children:Object.keys(l[C]).map(function(v){return(0,e.createComponentVNode)(2,t.Button,{m:.25,height:2,width:2,className:l[C][v].open?"Minesweeper__open":"Minesweeper__closed",bold:!0,color:"transparent",icon:l[C][v].open?l[C][v].bomb?"bomb":"":l[C][v].flag?"flag":"",textColor:l[C][v].open?l[C][v].bomb?"black":i[l[C][v].around]:l[C][v].flag?"red":"gray",onClick:function(){function p(N){return h(C,v,"bomb")}return p}(),onContextMenu:function(){function p(N){event.preventDefault(),h(C,v,"flag")}return p}(),children:l[C][v].open&&!l[C][v].bomb&&l[C][v].around?l[C][v].around:" "},v)})},C)})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,className:"Minesweeper__infobox",children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,textAlign:"left",pt:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{pl:2,fontSize:2,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"bomb",color:"gray"})," : ",s]}),(0,e.createComponentVNode)(2,t.Stack.Divider),(0,e.createComponentVNode)(2,t.Stack.Item,{pl:2,fontSize:2,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"flag",color:"red"})," : ",d]})]})})]})}return I}(),b=r.MineSweeperLeaderboard=function(){function I(k,g){var u=(0,a.useBackend)(g),c=u.act,m=u.data,l=m.leaderboard,d=(0,a.useLocalState)(g,"sortId","time"),s=d[0],i=d[1],h=(0,a.useLocalState)(g,"sortOrder",!1),C=h[0],v=h[1];return(0,e.createComponentVNode)(2,t.Table,{className:"Minesweeper__list",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,S,{id:"name",children:"Nick"}),(0,e.createComponentVNode)(2,S,{id:"time",children:"Time"})]}),l&&l.sort(function(p,N){var V=C?1:-1;return p[s].localeCompare(N[s])*V}).map(function(p,N){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.time})]},N)})]})}return I}(),S=function(k,g){var u=(0,a.useLocalState)(g,"sortId","time"),c=u[0],m=u[1],l=(0,a.useLocalState)(g,"sortOrder",!1),d=l[0],s=l[1],i=k.id,h=k.children;return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"transparent",onClick:function(){function C(){c===i?s(!d):(m(i),s(!0))}return C}(),children:[h,c===i&&(0,e.createComponentVNode)(2,t.Icon,{name:d?"sort-up":"sort-down",ml:"0.25rem;"})]})})}},24635:function(A,r,n){"use strict";r.__esModule=!0,r.pda_mule=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_mule=function(){function S(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.mulebot,l=m.active;return(0,e.createComponentVNode)(2,t.Box,{children:l?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,f)})}return S}(),f=function(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.mulebot,l=m.bots;return l.map(function(d){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:d.Name,icon:"cog",onClick:function(){function s(){return u("control",{bot:d.uid})}return s}()})},d.Name)})},b=function(I,k){var g=(0,a.useBackend)(k),u=g.act,c=g.data,m=c.mulebot,l=m.botstatus,d=m.active,s=l.mode,i=l.loca,h=l.load,C=l.powr,v=l.dest,p=l.home,N=l.retn,V=l.pick,y;switch(s){case 0:y="Ready";break;case 1:y="Loading/Unloading";break;case 2:case 12:y="Navigating to delivery location";break;case 3:y="Navigating to Home";break;case 4:y="Waiting for clear path";break;case 5:case 6:y="Calculating navigation path";break;case 7:y="Unable to locate destination";break;default:y=s;break}return(0,e.createComponentVNode)(2,t.Section,{title:d,children:[s===-1&&(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,children:"Waiting for response..."}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:i}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:y}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:[C,"%"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Home",children:p}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Destination",children:(0,e.createComponentVNode)(2,t.Button,{content:v?v+" (Set)":"None (Set)",onClick:function(){function B(){return u("target")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Load",children:(0,e.createComponentVNode)(2,t.Button,{content:h?h+" (Unload)":"None",disabled:!h,onClick:function(){function B(){return u("unload")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto Pickup",children:(0,e.createComponentVNode)(2,t.Button,{content:V?"Yes":"No",selected:V,onClick:function(){function B(){return u("set_pickup_type",{autopick:V?0:1})}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto Return",children:(0,e.createComponentVNode)(2,t.Button,{content:N?"Yes":"No",selected:N,onClick:function(){function B(){return u("set_auto_return",{autoret:N?0:1})}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Controls",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Stop",icon:"stop",onClick:function(){function B(){return u("stop")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Proceed",icon:"play",onClick:function(){function B(){return u("start")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Return Home",icon:"home",onClick:function(){function B(){return u("home")}return B}()})]})]})]})}},23734:function(A,r,n){"use strict";r.__esModule=!0,r.pda_nanobank=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=r.pda_nanobank=function(){function l(d,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=C.logged_in,p=C.owner_name,N=C.money;return v?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Name",children:p}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Balance",children:["$",N]})]})}),(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,S)]})],4):(0,e.createComponentVNode)(2,u)}return l}(),b=function(d,s){var i=(0,t.useBackend)(s),h=i.data,C=h.is_premium,v=(0,t.useLocalState)(s,"tabIndex",1),p=v[0],N=v[1];return(0,e.createComponentVNode)(2,o.Tabs,{mt:2,children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:p===1,onClick:function(){function V(){return N(1)}return V}(),children:[(0,e.createComponentVNode)(2,o.Icon,{mr:1,name:"list"}),"Transfers"]}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:p===2,onClick:function(){function V(){return N(2)}return V}(),children:[(0,e.createComponentVNode)(2,o.Icon,{mr:1,name:"list"}),"Account Actions"]}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:p===3,onClick:function(){function V(){return N(3)}return V}(),children:[(0,e.createComponentVNode)(2,o.Icon,{mr:1,name:"list"}),"Transaction History"]}),!!C&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:p===4,onClick:function(){function V(){return N(4)}return V}(),children:[(0,e.createComponentVNode)(2,o.Icon,{mr:1,name:"list"}),"Supply Orders"]})]})},S=function(d,s){var i=(0,t.useLocalState)(s,"tabIndex",1),h=i[0],C=(0,t.useBackend)(s),v=C.data,p=v.db_status;if(!p)return(0,e.createComponentVNode)(2,o.Box,{children:"Account Database Connection Severed"});switch(h){case 1:return(0,e.createComponentVNode)(2,I);case 2:return(0,e.createComponentVNode)(2,k);case 3:return(0,e.createComponentVNode)(2,g);case 4:return(0,e.createComponentVNode)(2,m);default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},I=function(d,s){var i,h=(0,t.useBackend)(s),C=h.act,v=h.data,p=v.requests,N=v.available_accounts,V=v.money,y=(0,t.useLocalState)(s,"selectedAccount"),B=y[0],L=y[1],w=(0,t.useLocalState)(s,"transferAmount"),x=w[0],T=w[1],M=(0,t.useLocalState)(s,"searchText",""),O=M[0],D=M[1],E=[];return N.map(function(P){return E[P.name]=P.UID}),(0,e.createFragment)([(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account",children:[(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by account name",onInput:function(){function P(R,j){return D(j)}return P}()}),(0,e.createComponentVNode)(2,o.Dropdown,{mt:.6,width:"190px",options:N.filter((0,a.createSearch)(O,function(P){return P.name})).map(function(P){return P.name}),selected:(i=N.filter(function(P){return P.UID===B})[0])==null?void 0:i.name,onSelected:function(){function P(R){return L(E[R])}return P}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Amount",children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Up to 5000",onInput:function(){function P(R,j){return T(j)}return P}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Actions",children:[(0,e.createComponentVNode)(2,o.Button.Confirm,{bold:!0,icon:"paper-plane",width:"auto",disabled:V0&&i.map(function(C){return(0,e.createComponentVNode)(2,t.Box,{children:["#",C.Number,' - "',C.Name,'" for "',C.OrderedBy,'"']},C)})}),(0,e.createComponentVNode)(2,t.Section,{title:"Approved Orders",children:s>0&&d.map(function(C){return(0,e.createComponentVNode)(2,t.Box,{children:["#",C.Number,' - "',C.Name,'" for "',C.ApprovedBy,'"']},C)})})]})}return f}()},17617:function(A,r,n){"use strict";r.__esModule=!0,r.Layout=void 0;var e=n(89005),a=n(35840),t=n(55937),o=n(24826),f=["className","theme","children"],b=["className","scrollable","children"];/**
+ */var b=r.goonstation_PTL=function(){function g(d,c){var m=(0,a.useBackend)(c),l=m.data,u=l.total_earnings,s=l.total_energy,i=l.name,h=i===void 0?"Power Transmission Laser":i;return(0,e.createComponentVNode)(2,f.Window,{title:"Power Transmission Laser",width:"310",height:"485",children:(0,e.createComponentVNode)(2,f.Window.Content,{children:[(0,e.createComponentVNode)(2,S),(0,e.createComponentVNode)(2,I),(0,e.createComponentVNode)(2,k),(0,e.createComponentVNode)(2,t.NoticeBox,{success:!0,children:["Earned Credits : ",u?(0,o.formatMoney)(u):0]}),(0,e.createComponentVNode)(2,t.NoticeBox,{success:!0,children:["Energy Sold : ",s?(0,o.formatSiUnit)(s,0,"J"):"0 J"]})]})})}return g}(),S=function(d,c){var m=(0,a.useBackend)(c),l=m.data,u=l.max_capacity,s=l.held_power,i=l.input_total,h=l.max_grid_load;return(0,e.createComponentVNode)(2,t.Section,{title:"Status",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Reserve energy",children:s?(0,o.formatSiUnit)(s,0,"J"):"0 J"})}),(0,e.createComponentVNode)(2,t.ProgressBar,{mt:"0.5em",mb:"0.5em",ranges:{good:[.8,1/0],average:[.5,.8],bad:[-1/0,.5]},value:s/u}),(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Grid Saturation"})}),(0,e.createComponentVNode)(2,t.ProgressBar,{mt:"0.5em",ranges:{good:[.8,1/0],average:[.5,.8],bad:[-1/0,.5]},value:Math.min(i,u-s)/h})]})},I=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.input_total,i=u.accepting_power,h=u.sucking_power,C=u.input_number,v=u.power_format;return(0,e.createComponentVNode)(2,t.Section,{title:"Input Controls",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input Circuit",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",color:i?"green":"red",onClick:function(){function p(){return l("toggle_input")}return p}(),children:i?"Enabled":"Disabled"}),children:(0,e.createComponentVNode)(2,t.Box,{color:h&&"good"||i&&"average"||"bad",children:h&&"Online"||i&&"Idle"||"Offline"})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input Level",children:s?(0,o.formatPower)(s):"0 W"})]}),(0,e.createComponentVNode)(2,t.Box,{mt:"0.5em",children:[(0,e.createComponentVNode)(2,t.NumberInput,{mr:"0.5em",animated:!0,size:1.25,inline:!0,step:1,stepPixelSize:2,minValue:0,maxValue:999,value:C,onChange:function(){function p(N,V){return l("set_input",{set_input:V})}return p}()}),(0,e.createComponentVNode)(2,t.Button,{selected:v===1,onClick:function(){function p(){return l("inputW")}return p}(),children:"W"}),(0,e.createComponentVNode)(2,t.Button,{selected:v===Math.pow(10,3),onClick:function(){function p(){return l("inputKW")}return p}(),children:"KW"}),(0,e.createComponentVNode)(2,t.Button,{selected:v===Math.pow(10,6),onClick:function(){function p(){return l("inputMW")}return p}(),children:"MW"}),(0,e.createComponentVNode)(2,t.Button,{selected:v===Math.pow(10,9),onClick:function(){function p(){return l("inputGW")}return p}(),children:"GW"})]})]})},k=function(d,c){var m=(0,a.useBackend)(c),l=m.act,u=m.data,s=u.output_total,i=u.firing,h=u.accepting_power,C=u.output_number,v=u.output_multiplier,p=u.target,N=u.held_power;return(0,e.createComponentVNode)(2,t.Section,{title:"Output Controls",children:[(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Laser Circuit",buttons:(0,e.createComponentVNode)(2,t.Stack,{Horizontal:!0,children:[(0,e.createComponentVNode)(2,t.Button,{icon:"crosshairs",color:p===""?"green":"red",onClick:function(){function V(){return l("target")}return V}(),children:p}),(0,e.createComponentVNode)(2,t.Button,{icon:"power-off",color:i?"green":"red",disabled:!i&&Nu,onClick:function(){function y(){return k("purchaseSoftware",{key:V.key})}return y}()},V.key)}),c.filter(function(V){return!N[V.key]}).length===0&&"No software available!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Installed Software",children:[m.filter(function(V){return V.key!=="mainmenu"}).map(function(V){return(0,e.createComponentVNode)(2,t.Button,{content:V.name,icon:V.icon,onClick:function(){function y(){return k("startSoftware",{software_key:V.key})}return y}()},V.key)}),m.length===0&&"No software installed!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Installed Toggles",children:[l.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{content:V.name,icon:V.icon,selected:V.active,onClick:function(){function y(){return k("setToggle",{toggle_key:V.key})}return y}()},V.key)}),l.length===0&&"No toggles installed!"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Emotion",children:s.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{content:V.name,selected:V.id===i,onClick:function(){function y(){return k("setEmotion",{emotion:V.id})}return y}()},V.id)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Speaking State",children:h.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{content:V.name,selected:V.name===C,onClick:function(){function y(){return k("setSpeechStyle",{speech_state:V.name})}return y}()},V.id)})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Select Chassis Type",children:v.map(function(V){return(0,e.createComponentVNode)(2,t.Button,{content:V.name,selected:V.icon===p,onClick:function(){function y(){return k("setChassis",{chassis_to_change:V.icon})}return y}()},V.id)})})]})})}return f}()},2983:function(A,r,n){"use strict";r.__esModule=!0,r.pai_manifest=void 0;var e=n(89005),a=n(72253),t=n(41874),o=r.pai_manifest=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data;return(0,e.createComponentVNode)(2,t.CrewManifest,{data:g.app_data})}return f}()},40758:function(A,r,n){"use strict";r.__esModule=!0,r.pai_medrecords=void 0;var e=n(89005),a=n(72253),t=n(41984),o=r.pai_medrecords=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:k.app_data,recordType:"MED"})}return f}()},98599:function(A,r,n){"use strict";r.__esModule=!0,r.pai_messenger=void 0;var e=n(89005),a=n(72253),t=n(77595),o=r.pai_messenger=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,d=g.app_data.active_convo;return d?(0,e.createComponentVNode)(2,t.ActiveConversation,{data:g.app_data}):(0,e.createComponentVNode)(2,t.MessengerList,{data:g.app_data})}return f}()},50775:function(A,r,n){"use strict";r.__esModule=!0,r.pai_radio=void 0;var e=n(89005),a=n(72253),t=n(44879),o=n(36036),f=r.pai_radio=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.app_data,m=c.minFrequency,l=c.maxFrequency,u=c.frequency,s=c.broadcasting;return(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Frequency",children:[(0,e.createComponentVNode)(2,o.NumberInput,{animate:!0,step:.2,stepPixelSize:6,minValue:m/10,maxValue:l/10,value:u/10,format:function(){function i(h){return(0,t.toFixed)(h,1)}return i}(),onChange:function(){function i(h,C){return g("freq",{freq:C})}return i}()}),(0,e.createComponentVNode)(2,o.Button,{tooltip:"Reset",icon:"undo",onClick:function(){function i(){return g("freq",{freq:"145.9"})}return i}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Broadcast Nearby Speech",children:(0,e.createComponentVNode)(2,o.Button,{onClick:function(){function i(){return g("toggleBroadcast")}return i}(),selected:s,content:s?"Enabled":"Disabled"})})]})}return b}()},48623:function(A,r,n){"use strict";r.__esModule=!0,r.pai_secrecords=void 0;var e=n(89005),a=n(72253),t=n(41984),o=r.pai_secrecords=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:k.app_data,recordType:"SEC"})}return f}()},47297:function(A,r,n){"use strict";r.__esModule=!0,r.pai_signaler=void 0;var e=n(89005),a=n(72253),t=n(13545),o=r.pai_signaler=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data;return(0,e.createComponentVNode)(2,t.Signaler,{data:g.app_data})}return f}()},78532:function(A,r,n){"use strict";r.__esModule=!0,r.pda_atmos_scan=void 0;var e=n(89005),a=n(72253),t=n(26991),o=r.pda_atmos_scan=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data;return(0,e.createComponentVNode)(2,t.AtmosScan,{data:k})}return f}()},2395:function(A,r,n){"use strict";r.__esModule=!0,r.pda_games=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(1331),f=r.pda_games=function(){function b(S,I){var k=(0,a.useBackend)(I),g=k.act,d=k.data,c=d.games,m=function(){function l(u){switch(u){case"Minesweeper":return(0,e.createComponentVNode)(2,o.IconStack,{children:[(0,e.createComponentVNode)(2,o.Icon,{ml:"0",mt:"10px",name:"flag",size:"6",color:"gray",rotation:30}),(0,e.createComponentVNode)(2,o.Icon,{ml:"9px",mt:"23px",name:"bomb",size:"3",color:"black"})]});default:return(0,e.createComponentVNode)(2,o.Icon,{ml:"16px",mt:"10px",name:"gamepad",size:"6"})}}return l}();return(0,e.createComponentVNode)(2,t.Box,{children:c.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{width:"33%",textAlign:"center",translucent:!0,onClick:function(){function u(){return g("play",{id:l.id})}return u}(),children:[m(l.name),(0,e.createComponentVNode)(2,t.Box,{children:l.name})]},l.name)})})}return b}()},40253:function(A,r,n){"use strict";r.__esModule=!0,r.pda_janitor=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_janitor=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data,d=g.janitor,c=d.user_loc,m=d.mops,l=d.buckets,u=d.cleanbots,s=d.carts,i=d.janicarts;return(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Location",children:[c.x,",",c.y]}),m&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mop Locations",children:m.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:[h.x,",",h.y," (",h.dir,") - ",h.status]},h)})}),l&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Mop Bucket Locations",children:l.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:[h.x,",",h.y," (",h.dir,") - [",h.volume,"/",h.max_volume,"]"]},h)})}),u&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Cleanbot Locations",children:u.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:[h.x,",",h.y," (",h.dir,") - ",h.status]},h)})}),s&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Janitorial Cart Locations",children:s.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:[h.x,",",h.y," (",h.dir,") - [",h.volume,"/",h.max_volume,"]"]},h)})}),i&&(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Janicart Locations",children:i.map(function(h){return(0,e.createComponentVNode)(2,t.Box,{children:[h.x,",",h.y," (",h.direction_from_user,")"]},h)})})]})}return f}()},58293:function(A,r,n){"use strict";r.__esModule=!0,r.pda_main_menu=void 0;var e=n(89005),a=n(44879),t=n(72253),o=n(36036),f=r.pda_main_menu=function(){function b(S,I){var k=(0,t.useBackend)(I),g=k.act,d=k.data,c=d.owner,m=d.ownjob,l=d.idInserted,u=d.categories,s=d.pai,i=d.notifying;return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Owner",color:"average",children:[c,", ",m]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"ID",children:(0,e.createComponentVNode)(2,o.Button,{icon:"sync",content:"Update PDA Info",disabled:!l,onClick:function(){function h(){return g("UpdateInfo")}return h}()})})]})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:(0,e.createComponentVNode)(2,o.Section,{title:"Functions",children:(0,e.createComponentVNode)(2,o.LabeledList,{children:u.map(function(h){var C=d.apps[h];return!C||!C.length?null:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:h,children:C.map(function(v){return(0,e.createComponentVNode)(2,o.Button,{icon:v.uid in i?v.notify_icon:v.icon,iconSpin:v.uid in i,color:v.uid in i?"red":"transparent",content:v.name,onClick:function(){function p(){return g("StartProgram",{program:v.uid})}return p}()},v.uid)})},h)})})})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:!!s&&(0,e.createComponentVNode)(2,o.Section,{title:"pAI",children:[(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"cog",content:"Configuration",onClick:function(){function h(){return g("pai",{option:1})}return h}()}),(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"eject",content:"Eject pAI",onClick:function(){function h(){return g("pai",{option:2})}return h}()})]})})]})}return b}()},58059:function(A,r,n){"use strict";r.__esModule=!0,r.pda_manifest=void 0;var e=n(89005),a=n(72253),t=n(41874),o=r.pda_manifest=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.act,g=I.data;return(0,e.createComponentVNode)(2,t.CrewManifest)}return f}()},18147:function(A,r,n){"use strict";r.__esModule=!0,r.pda_medical=void 0;var e=n(89005),a=n(72253),t=n(41984),o=r.pda_medical=function(){function f(b,S){var I=(0,a.useBackend)(S),k=I.data;return(0,e.createComponentVNode)(2,t.SimpleRecords,{data:k,recordType:"MED"})}return f}()},77595:function(A,r,n){"use strict";r.__esModule=!0,r.pda_messenger=r.MessengerList=r.ActiveConversation=void 0;var e=n(89005),a=n(88510),t=n(72253),o=n(36036),f=r.pda_messenger=function(){function k(g,d){var c=(0,t.useBackend)(d),m=c.act,l=c.data,u=l.active_convo;return u?(0,e.createComponentVNode)(2,b,{data:l}):(0,e.createComponentVNode)(2,S,{data:l})}return k}(),b=r.ActiveConversation=function(){function k(g,d){var c=(0,t.useBackend)(d),m=c.act,l=g.data,u=l.convo_name,s=l.convo_job,i=l.messages,h=l.active_convo,C=(0,t.useLocalState)(d,"clipboardMode",!1),v=C[0],p=C[1],N=(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Conversation with "+u+" ("+s+")",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"eye",selected:v,tooltip:"Enter Clipboard Mode",tooltipPosition:"bottom-start",onClick:function(){function V(){return p(!v)}return V}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function V(){return m("Message",{target:h})}return V}(),content:"Reply"})],4),children:(0,a.filter)(function(V){return V.target===h})(i).map(function(V,y){return(0,e.createComponentVNode)(2,o.Box,{textAlign:V.sent?"right":"left",position:"relative",mb:1,children:[(0,e.createComponentVNode)(2,o.Icon,{fontSize:2.5,color:V.sent?"#4d9121":"#cd7a0d",position:"absolute",left:V.sent?null:"0px",right:V.sent?"0px":null,bottom:"-4px",style:{"z-index":"0",transform:V.sent?"scale(-1, 1)":null},name:"comment"}),(0,e.createComponentVNode)(2,o.Box,{inline:!0,backgroundColor:V.sent?"#4d9121":"#cd7a0d",p:1,maxWidth:"100%",position:"relative",textAlign:V.sent?"left":"right",style:{"z-index":"1","border-radius":"10px","word-break":"normal"},children:[V.sent?"You:":"Them:"," ",V.message]})]},y)})});return v&&(N=(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:"Conversation with "+u+" ("+s+")",buttons:(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Button,{icon:"eye",selected:v,tooltip:"Exit Clipboard Mode",tooltipPosition:"bottom-start",onClick:function(){function V(){return p(!v)}return V}()}),(0,e.createComponentVNode)(2,o.Button,{icon:"comment",onClick:function(){function V(){return m("Message",{target:h})}return V}(),content:"Reply"})],4),children:(0,a.filter)(function(V){return V.target===h})(i).map(function(V,y){return(0,e.createComponentVNode)(2,o.Box,{color:V.sent?"#4d9121":"#cd7a0d",style:{"word-break":"normal"},children:[V.sent?"You:":"Them:"," ",(0,e.createComponentVNode)(2,o.Box,{inline:!0,children:V.message})]},y)})})),(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mb:.5,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Messenger Functions",children:(0,e.createComponentVNode)(2,o.Button.Confirm,{content:"Delete Conversations",confirmContent:"Are you sure?",icon:"trash",confirmIcon:"trash",onClick:function(){function V(){return m("Clear",{option:"Convo"})}return V}()})})})}),N]})}return k}(),S=r.MessengerList=function(){function k(g,d){var c=(0,t.useBackend)(d),m=c.act,l=g.data,u=l.convopdas,s=l.pdas,i=l.charges,h=l.silent,C=l.toff,v=l.ringtone_list,p=l.ringtone,N=(0,t.useLocalState)(d,"searchTerm",""),V=N[0],y=N[1];return(0,e.createComponentVNode)(2,o.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{mb:5,children:[(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Messenger Functions",children:[(0,e.createComponentVNode)(2,o.Button,{selected:!h,icon:h?"volume-mute":"volume-up",onClick:function(){function B(){return m("Toggle Ringer")}return B}(),children:["Ringer: ",h?"Off":"On"]}),(0,e.createComponentVNode)(2,o.Button,{color:C?"bad":"green",icon:"power-off",onClick:function(){function B(){return m("Toggle Messenger")}return B}(),children:["Messenger: ",C?"Off":"On"]}),(0,e.createComponentVNode)(2,o.Button,{icon:"trash",color:"bad",onClick:function(){function B(){return m("Clear",{option:"All"})}return B}(),children:"Delete All Conversations"}),(0,e.createComponentVNode)(2,o.Button,{icon:"bell",onClick:function(){function B(){return m("Ringtone")}return B}(),children:"Set Custom Ringtone"}),(0,e.createComponentVNode)(2,o.Dropdown,{selected:p,width:"100px",options:Object.keys(v),onSelected:function(){function B(L){return m("Available_Ringtones",{selected_ringtone:L})}return B}()})]})}),!C&&(0,e.createComponentVNode)(2,o.Box,{children:[!!i&&(0,e.createComponentVNode)(2,o.Box,{mt:.5,mb:1,children:(0,e.createComponentVNode)(2,o.LabeledList,{children:(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Cartridge Special Function",children:[i," charges left."]})})}),!u.length&&!s.length&&(0,e.createComponentVNode)(2,o.Box,{children:"No current conversations"})||(0,e.createComponentVNode)(2,o.Box,{children:["Search:"," ",(0,e.createComponentVNode)(2,o.Input,{mt:.5,value:V,onInput:function(){function B(L,w){y(w)}return B}()})]})]})||(0,e.createComponentVNode)(2,o.Box,{color:"bad",children:"Messenger Offline."})]}),(0,e.createComponentVNode)(2,I,{title:"Current Conversations",data:l,pdas:u,msgAct:"Select Conversation",searchTerm:V}),(0,e.createComponentVNode)(2,I,{title:"Other PDAs",pdas:s,msgAct:"Message",data:l,searchTerm:V})]})}return k}(),I=function(g,d){var c=(0,t.useBackend)(d),m=c.act,l=g.data,u=g.pdas,s=g.title,i=g.msgAct,h=g.searchTerm,C=l.charges,v=l.plugins;return!u||!u.length?(0,e.createComponentVNode)(2,o.Section,{title:s,children:"No PDAs found."}):(0,e.createComponentVNode)(2,o.Section,{fill:!0,scrollable:!0,title:s,children:u.filter(function(p){return p.Name.toLowerCase().includes(h.toLowerCase())}).map(function(p){return(0,e.createComponentVNode)(2,o.Stack,{m:.5,children:[(0,e.createComponentVNode)(2,o.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,o.Button,{fluid:!0,icon:"arrow-circle-down",content:p.Name,onClick:function(){function N(){return m(i,{target:p.uid})}return N}()})}),(0,e.createComponentVNode)(2,o.Stack.Item,{children:!!C&&v.map(function(N){return(0,e.createComponentVNode)(2,o.Button,{icon:N.icon,content:N.name,onClick:function(){function V(){return m("Messenger Plugin",{plugin:N.uid,target:p.uid})}return V}()},N.uid)})})]},p.uid)})})}},90382:function(A,r,n){"use strict";r.__esModule=!0,r.pda_minesweeper=r.MineSweeperLeaderboard=r.MineSweeperGame=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_minesweeper=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=(0,a.useLocalState)(g,"window","Game"),u=l[0],s=l[1],i={Game:"Leaderboard",Leaderboard:"Game"};return(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,textAlign:"center",children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:u==="Game"?(0,e.createComponentVNode)(2,f):(0,e.createComponentVNode)(2,b)}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:!0,fontSize:2,lineHeight:1.75,icon:u==="Game"?"book":"gamepad",onClick:function(){function h(){return s(i[u])}return h}(),children:i[u]})})]})}return I}(),f=r.MineSweeperGame=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.matrix,u=m.flags,s=m.bombs,i={1:"blue",2:"green",3:"red",4:"darkblue",5:"brown",6:"lightblue",7:"black",8:"white"},h=function(){function C(v,p,N){c("Square",{X:v,Y:p,mode:N})}return C}();return(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:Object.keys(l).map(function(C){return(0,e.createComponentVNode)(2,t.Box,{children:Object.keys(l[C]).map(function(v){return(0,e.createComponentVNode)(2,t.Button,{m:.25,height:2,width:2,className:l[C][v].open?"Minesweeper__open":"Minesweeper__closed",bold:!0,color:"transparent",icon:l[C][v].open?l[C][v].bomb?"bomb":"":l[C][v].flag?"flag":"",textColor:l[C][v].open?l[C][v].bomb?"black":i[l[C][v].around]:l[C][v].flag?"red":"gray",onClick:function(){function p(N){return h(C,v,"bomb")}return p}(),onContextMenu:function(){function p(N){event.preventDefault(),h(C,v,"flag")}return p}(),children:l[C][v].open&&!l[C][v].bomb&&l[C][v].around?l[C][v].around:" "},v)})},C)})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,className:"Minesweeper__infobox",children:(0,e.createComponentVNode)(2,t.Stack,{vertical:!0,textAlign:"left",pt:1,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{pl:2,fontSize:2,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"bomb",color:"gray"})," : ",s]}),(0,e.createComponentVNode)(2,t.Stack.Divider),(0,e.createComponentVNode)(2,t.Stack.Item,{pl:2,fontSize:2,children:[(0,e.createComponentVNode)(2,t.Icon,{name:"flag",color:"red"})," : ",u]})]})})]})}return I}(),b=r.MineSweeperLeaderboard=function(){function I(k,g){var d=(0,a.useBackend)(g),c=d.act,m=d.data,l=m.leaderboard,u=(0,a.useLocalState)(g,"sortId","time"),s=u[0],i=u[1],h=(0,a.useLocalState)(g,"sortOrder",!1),C=h[0],v=h[1];return(0,e.createComponentVNode)(2,t.Table,{className:"Minesweeper__list",children:[(0,e.createComponentVNode)(2,t.Table.Row,{bold:!0,children:[(0,e.createComponentVNode)(2,S,{id:"name",children:"Nick"}),(0,e.createComponentVNode)(2,S,{id:"time",children:"Time"})]}),l&&l.sort(function(p,N){var V=C?1:-1;return p[s].localeCompare(N[s])*V}).map(function(p,N){return(0,e.createComponentVNode)(2,t.Table.Row,{children:[(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.name}),(0,e.createComponentVNode)(2,t.Table.Cell,{children:p.time})]},N)})]})}return I}(),S=function(k,g){var d=(0,a.useLocalState)(g,"sortId","time"),c=d[0],m=d[1],l=(0,a.useLocalState)(g,"sortOrder",!1),u=l[0],s=l[1],i=k.id,h=k.children;return(0,e.createComponentVNode)(2,t.Table.Cell,{children:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,color:"transparent",onClick:function(){function C(){c===i?s(!u):(m(i),s(!0))}return C}(),children:[h,c===i&&(0,e.createComponentVNode)(2,t.Icon,{name:u?"sort-up":"sort-down",ml:"0.25rem;"})]})})}},24635:function(A,r,n){"use strict";r.__esModule=!0,r.pda_mule=void 0;var e=n(89005),a=n(72253),t=n(36036),o=r.pda_mule=function(){function S(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.mulebot,l=m.active;return(0,e.createComponentVNode)(2,t.Box,{children:l?(0,e.createComponentVNode)(2,b):(0,e.createComponentVNode)(2,f)})}return S}(),f=function(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.mulebot,l=m.bots;return l.map(function(u){return(0,e.createComponentVNode)(2,t.Box,{children:(0,e.createComponentVNode)(2,t.Button,{content:u.Name,icon:"cog",onClick:function(){function s(){return d("control",{bot:u.uid})}return s}()})},u.Name)})},b=function(I,k){var g=(0,a.useBackend)(k),d=g.act,c=g.data,m=c.mulebot,l=m.botstatus,u=m.active,s=l.mode,i=l.loca,h=l.load,C=l.powr,v=l.dest,p=l.home,N=l.retn,V=l.pick,y;switch(s){case 0:y="Ready";break;case 1:y="Loading/Unloading";break;case 2:case 12:y="Navigating to delivery location";break;case 3:y="Navigating to Home";break;case 4:y="Waiting for clear path";break;case 5:case 6:y="Calculating navigation path";break;case 7:y="Unable to locate destination";break;default:y=s;break}return(0,e.createComponentVNode)(2,t.Section,{title:u,children:[s===-1&&(0,e.createComponentVNode)(2,t.Box,{color:"red",bold:!0,children:"Waiting for response..."}),(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Location",children:i}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Status",children:y}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Power",children:[C,"%"]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Home",children:p}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Destination",children:(0,e.createComponentVNode)(2,t.Button,{content:v?v+" (Set)":"None (Set)",onClick:function(){function B(){return d("target")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Current Load",children:(0,e.createComponentVNode)(2,t.Button,{content:h?h+" (Unload)":"None",disabled:!h,onClick:function(){function B(){return d("unload")}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto Pickup",children:(0,e.createComponentVNode)(2,t.Button,{content:V?"Yes":"No",selected:V,onClick:function(){function B(){return d("set_pickup_type",{autopick:V?0:1})}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Auto Return",children:(0,e.createComponentVNode)(2,t.Button,{content:N?"Yes":"No",selected:N,onClick:function(){function B(){return d("set_auto_return",{autoret:N?0:1})}return B}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Controls",children:[(0,e.createComponentVNode)(2,t.Button,{content:"Stop",icon:"stop",onClick:function(){function B(){return d("stop")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Proceed",icon:"play",onClick:function(){function B(){return d("start")}return B}()}),(0,e.createComponentVNode)(2,t.Button,{content:"Return Home",icon:"home",onClick:function(){function B(){return d("home")}return B}()})]})]})]})}},23734:function(A,r,n){"use strict";r.__esModule=!0,r.pda_nanobank=void 0;var e=n(89005),a=n(25328),t=n(72253),o=n(36036),f=r.pda_nanobank=function(){function l(u,s){var i=(0,t.useBackend)(s),h=i.act,C=i.data,v=C.logged_in,p=C.owner_name,N=C.money;return v?(0,e.createFragment)([(0,e.createComponentVNode)(2,o.Box,{children:(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Name",children:p}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account Balance",children:["$",N]})]})}),(0,e.createComponentVNode)(2,o.Box,{children:[(0,e.createComponentVNode)(2,b),(0,e.createComponentVNode)(2,S)]})],4):(0,e.createComponentVNode)(2,d)}return l}(),b=function(u,s){var i=(0,t.useBackend)(s),h=i.data,C=h.is_premium,v=(0,t.useLocalState)(s,"tabIndex",1),p=v[0],N=v[1];return(0,e.createComponentVNode)(2,o.Tabs,{mt:2,children:[(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:p===1,onClick:function(){function V(){return N(1)}return V}(),children:[(0,e.createComponentVNode)(2,o.Icon,{mr:1,name:"list"}),"Transfers"]}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:p===2,onClick:function(){function V(){return N(2)}return V}(),children:[(0,e.createComponentVNode)(2,o.Icon,{mr:1,name:"list"}),"Account Actions"]}),(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:p===3,onClick:function(){function V(){return N(3)}return V}(),children:[(0,e.createComponentVNode)(2,o.Icon,{mr:1,name:"list"}),"Transaction History"]}),!!C&&(0,e.createComponentVNode)(2,o.Tabs.Tab,{selected:p===4,onClick:function(){function V(){return N(4)}return V}(),children:[(0,e.createComponentVNode)(2,o.Icon,{mr:1,name:"list"}),"Supply Orders"]})]})},S=function(u,s){var i=(0,t.useLocalState)(s,"tabIndex",1),h=i[0],C=(0,t.useBackend)(s),v=C.data,p=v.db_status;if(!p)return(0,e.createComponentVNode)(2,o.Box,{children:"Account Database Connection Severed"});switch(h){case 1:return(0,e.createComponentVNode)(2,I);case 2:return(0,e.createComponentVNode)(2,k);case 3:return(0,e.createComponentVNode)(2,g);case 4:return(0,e.createComponentVNode)(2,m);default:return"You are somehow on a tab that doesn't exist! Please let a coder know."}},I=function(u,s){var i,h=(0,t.useBackend)(s),C=h.act,v=h.data,p=v.requests,N=v.available_accounts,V=v.money,y=(0,t.useLocalState)(s,"selectedAccount"),B=y[0],L=y[1],w=(0,t.useLocalState)(s,"transferAmount"),x=w[0],T=w[1],M=(0,t.useLocalState)(s,"searchText",""),O=M[0],D=M[1],E=[];return N.map(function(P){return E[P.name]=P.UID}),(0,e.createFragment)([(0,e.createComponentVNode)(2,o.LabeledList,{children:[(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Account",children:[(0,e.createComponentVNode)(2,o.Input,{placeholder:"Search by account name",onInput:function(){function P(R,j){return D(j)}return P}()}),(0,e.createComponentVNode)(2,o.Dropdown,{mt:.6,width:"190px",options:N.filter((0,a.createSearch)(O,function(P){return P.name})).map(function(P){return P.name}),selected:(i=N.filter(function(P){return P.UID===B})[0])==null?void 0:i.name,onSelected:function(){function P(R){return L(E[R])}return P}()})]}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Amount",children:(0,e.createComponentVNode)(2,o.Input,{placeholder:"Up to 5000",onInput:function(){function P(R,j){return T(j)}return P}()})}),(0,e.createComponentVNode)(2,o.LabeledList.Item,{label:"Actions",children:[(0,e.createComponentVNode)(2,o.Button.Confirm,{bold:!0,icon:"paper-plane",width:"auto",disabled:V0&&i.map(function(C){return(0,e.createComponentVNode)(2,t.Box,{children:["#",C.Number,' - "',C.Name,'" for "',C.OrderedBy,'"']},C)})}),(0,e.createComponentVNode)(2,t.Section,{title:"Approved Orders",children:s>0&&u.map(function(C){return(0,e.createComponentVNode)(2,t.Box,{children:["#",C.Number,' - "',C.Name,'" for "',C.ApprovedBy,'"']},C)})})]})}return f}()},17617:function(A,r,n){"use strict";r.__esModule=!0,r.Layout=void 0;var e=n(89005),a=n(35840),t=n(55937),o=n(24826),f=["className","theme","children"],b=["className","scrollable","children"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function S(g,u){if(g==null)return{};var c={};for(var m in g)if({}.hasOwnProperty.call(g,m)){if(u.includes(m))continue;c[m]=g[m]}return c}var I=r.Layout=function(){function g(u){var c=u.className,m=u.theme,l=m===void 0?"nanotrasen":m,d=u.children,s=S(u,f);return document.documentElement.className="theme-"+l,(0,e.createVNode)(1,"div","theme-"+l,(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)(["Layout",c].concat((0,t.computeBoxClassName)(s))),d,0,Object.assign({},(0,t.computeBoxProps)(s)))),2)}return g}(),k=function(u){var c=u.className,m=u.scrollable,l=u.children,d=S(u,b);return(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)(["Layout__content",m&&"Layout__content--scrollable",c,(0,t.computeBoxClassName)(d)]),l,0,Object.assign({},(0,t.computeBoxProps)(d))))};k.defaultHooks={onComponentDidMount:function(){function g(u){return(0,o.addScrollableNode)(u)}return g}(),onComponentWillUnmount:function(){function g(u){return(0,o.removeScrollableNode)(u)}return g}()},I.Content=k},96945:function(A,r,n){"use strict";r.__esModule=!0,r.Pane=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(99851),b=n(17617),S=["theme","children","className"],I=["className","fitted","children"];/**
+ */function S(g,d){if(g==null)return{};var c={};for(var m in g)if({}.hasOwnProperty.call(g,m)){if(d.includes(m))continue;c[m]=g[m]}return c}var I=r.Layout=function(){function g(d){var c=d.className,m=d.theme,l=m===void 0?"nanotrasen":m,u=d.children,s=S(d,f);return document.documentElement.className="theme-"+l,(0,e.createVNode)(1,"div","theme-"+l,(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)(["Layout",c].concat((0,t.computeBoxClassName)(s))),u,0,Object.assign({},(0,t.computeBoxProps)(s)))),2)}return g}(),k=function(d){var c=d.className,m=d.scrollable,l=d.children,u=S(d,b);return(0,e.normalizeProps)((0,e.createVNode)(1,"div",(0,a.classes)(["Layout__content",m&&"Layout__content--scrollable",c,(0,t.computeBoxClassName)(u)]),l,0,Object.assign({},(0,t.computeBoxProps)(u))))};k.defaultHooks={onComponentDidMount:function(){function g(d){return(0,o.addScrollableNode)(d)}return g}(),onComponentWillUnmount:function(){function g(d){return(0,o.removeScrollableNode)(d)}return g}()},I.Content=k},96945:function(A,r,n){"use strict";r.__esModule=!0,r.Pane=void 0;var e=n(89005),a=n(35840),t=n(72253),o=n(36036),f=n(99851),b=n(17617),S=["theme","children","className"],I=["className","fitted","children"];/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
- */function k(c,m){if(c==null)return{};var l={};for(var d in c)if({}.hasOwnProperty.call(c,d)){if(m.includes(d))continue;l[d]=c[d]}return l}var g=r.Pane=function(){function c(m,l){var d=m.theme,s=m.children,i=m.className,h=k(m,S),C=(0,t.useBackend)(l),v=C.suspended,p=(0,f.useDebug)(l),N=p.debugLayout;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,b.Layout,Object.assign({className:(0,a.classes)(["Window",i]),theme:d},h,{children:(0,e.createComponentVNode)(2,o.Box,{fillPositionedParent:!0,className:N&&"debug-layout",children:!v&&s})})))}return c}(),u=function(m){var l=m.className,d=m.fitted,s=m.children,i=k(m,I);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,b.Layout.Content,Object.assign({className:(0,a.classes)(["Window__content",l])},i,{children:d&&s||(0,e.createVNode)(1,"div","Window__contentPadding",s,0)})))};g.Content=u},34827:function(A,r,n){"use strict";r.__esModule=!0,r.Window=void 0;var e=n(89005),a=n(35840),t=n(85307),o=n(25328),f=n(72253),b=n(36036),S=n(76910),I=n(99851),k=n(77384),g=n(35421),u=n(9394),c=n(17617),m=["className","fitted","children"];function l(V,y){if(V==null)return{};var B={};for(var L in V)if({}.hasOwnProperty.call(V,L)){if(y.includes(L))continue;B[L]=V[L]}return B}function d(V,y){V.prototype=Object.create(y.prototype),V.prototype.constructor=V,s(V,y)}function s(V,y){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(B,L){return B.__proto__=L,B},s(V,y)}/**
+ */function k(c,m){if(c==null)return{};var l={};for(var u in c)if({}.hasOwnProperty.call(c,u)){if(m.includes(u))continue;l[u]=c[u]}return l}var g=r.Pane=function(){function c(m,l){var u=m.theme,s=m.children,i=m.className,h=k(m,S),C=(0,t.useBackend)(l),v=C.suspended,p=(0,f.useDebug)(l),N=p.debugLayout;return(0,e.normalizeProps)((0,e.createComponentVNode)(2,b.Layout,Object.assign({className:(0,a.classes)(["Window",i]),theme:u},h,{children:(0,e.createComponentVNode)(2,o.Box,{fillPositionedParent:!0,className:N&&"debug-layout",children:!v&&s})})))}return c}(),d=function(m){var l=m.className,u=m.fitted,s=m.children,i=k(m,I);return(0,e.normalizeProps)((0,e.createComponentVNode)(2,b.Layout.Content,Object.assign({className:(0,a.classes)(["Window__content",l])},i,{children:u&&s||(0,e.createVNode)(1,"div","Window__contentPadding",s,0)})))};g.Content=d},34827:function(A,r,n){"use strict";r.__esModule=!0,r.Window=void 0;var e=n(89005),a=n(35840),t=n(85307),o=n(25328),f=n(72253),b=n(36036),S=n(76910),I=n(99851),k=n(77384),g=n(35421),d=n(9394),c=n(17617),m=["className","fitted","children"];function l(V,y){if(V==null)return{};var B={};for(var L in V)if({}.hasOwnProperty.call(V,L)){if(y.includes(L))continue;B[L]=V[L]}return B}function u(V,y){V.prototype=Object.create(y.prototype),V.prototype.constructor=V,s(V,y)}function s(V,y){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(B,L){return B.__proto__=L,B},s(V,y)}/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
-*/var i=(0,u.createLogger)("Window"),h=[400,600],C=r.Window=function(V){function y(){return V.apply(this,arguments)||this}d(y,V);var B=y.prototype;return B.componentDidMount=function(){function L(){var w=(0,f.useBackend)(this.context),x=w.suspended;x||(i.log("mounting"),this.updateGeometry())}return L}(),B.componentDidUpdate=function(){function L(w){var x=this.props.width!==w.width||this.props.height!==w.height;x&&this.updateGeometry()}return L}(),B.updateGeometry=function(){function L(){var w,x=(0,f.useBackend)(this.context),T=x.config,M=Object.assign({size:h},T.window);this.props.width&&this.props.height&&(M.size=[this.props.width,this.props.height]),(w=T.window)!=null&&w.key&&(0,g.setWindowKey)(T.window.key),(0,g.recallWindowGeometry)(M)}return L}(),B.render=function(){function L(){var w,x=this.props,T=x.theme,M=x.title,O=x.children,D=(0,f.useBackend)(this.context),E=D.config,P=D.suspended,R=(0,I.useDebug)(this.context),j=R.debugLayout,F=(0,t.useDispatch)(this.context),W=(w=E.window)==null?void 0:w.fancy,z=E.user&&(E.user.observer?E.status2?m-2:0),d=2;d=o){var s=[c].concat(l).map(function(i){return typeof i=="string"?i:i instanceof Error?i.stack||String(i):JSON.stringify(i)}).filter(function(i){return i}).join(" ")+"\nUser Agent: "+navigator.userAgent;Byond.sendMessage({type:"log",message:s})}},I=r.createLogger=function(){function g(u){return{debug:function(){function c(){for(var m=arguments.length,l=new Array(m),d=0;d2?m-2:0),u=2;u=o){var s=[c].concat(l).map(function(i){return typeof i=="string"?i:i instanceof Error?i.stack||String(i):JSON.stringify(i)}).filter(function(i){return i}).join(" ")+"\nUser Agent: "+navigator.userAgent;Byond.sendMessage({type:"log",message:s})}},I=r.createLogger=function(){function g(d){return{debug:function(){function c(){for(var m=arguments.length,l=new Array(m),u=0;u0;){var p=C.shift(),N=p(h);try{v=b(N)}catch(y){if(y.code!=="MODULE_NOT_FOUND")throw y}}if(!v)return S("notFound",h);var V=v[h];return V||S("missingExport",h)}return u}()},72178:function(A,r,n){"use strict";r.__esModule=!0,r.configureStore=r.StoreProvider=void 0;var e=n(64795),a=n(85307),t=n(89005),o=n(79140),f=n(72253),b=n(99851),S=n(9394);function I(d,s){d.prototype=Object.create(s.prototype),d.prototype.constructor=d,k(d,s)}function k(d,s){return k=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,h){return i.__proto__=h,i},k(d,s)}/**
+ */var b=n(32054),S=function(c,m){return function(){return(0,e.createComponentVNode)(2,f.Window,{children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0,children:[c==="notFound"&&(0,e.createVNode)(1,"div",null,[(0,e.createTextVNode)("Interface "),(0,e.createVNode)(1,"b",null,m,0),(0,e.createTextVNode)(" was not found.")],4),c==="missingExport"&&(0,e.createVNode)(1,"div",null,[(0,e.createTextVNode)("Interface "),(0,e.createVNode)(1,"b",null,m,0),(0,e.createTextVNode)(" is missing an export.")],4)]})})}},I=function(){return(0,e.createComponentVNode)(2,f.Window,{children:(0,e.createComponentVNode)(2,f.Window.Content,{scrollable:!0})})},k=function(){return(0,e.createComponentVNode)(2,f.Window,{height:130,title:"Loading",width:150,children:(0,e.createComponentVNode)(2,f.Window.Content,{children:(0,e.createComponentVNode)(2,t.Stack,{align:"center",fill:!0,justify:"center",vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{children:(0,e.createComponentVNode)(2,t.Icon,{color:"blue",name:"toolbox",spin:!0,size:4})}),(0,e.createComponentVNode)(2,t.Stack.Item,{children:"Please wait..."})]})})})},g=r.getRoutedComponent=function(){function d(c){var m=c.getState(),l=(0,a.selectBackend)(m),u=l.suspended,s=l.config;if(u)return I;if(s.refreshing)return k;if(0)var i;for(var h=s==null?void 0:s.interface,C=[function(y){return"./"+y+".tsx"},function(y){return"./"+y+".js"},function(y){return"./"+y+"/index.tsx"},function(y){return"./"+y+"/index.js"}],v;!v&&C.length>0;){var p=C.shift(),N=p(h);try{v=b(N)}catch(y){if(y.code!=="MODULE_NOT_FOUND")throw y}}if(!v)return S("notFound",h);var V=v[h];return V||S("missingExport",h)}return d}()},72178:function(A,r,n){"use strict";r.__esModule=!0,r.configureStore=r.StoreProvider=void 0;var e=n(64795),a=n(85307),t=n(89005),o=n(79140),f=n(72253),b=n(99851),S=n(9394);function I(u,s){u.prototype=Object.create(s.prototype),u.prototype.constructor=u,k(u,s)}function k(u,s){return k=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,h){return i.__proto__=h,i},k(u,s)}/**
* @file
* @copyright 2020 Aleksej Komarov
* @license MIT
-*/var g=(0,S.createLogger)("store"),u=r.configureStore=function(){function d(s){var i,h;s===void 0&&(s={});var C=s,v=C.sideEffects,p=v===void 0?!0:v,N=(0,e.flow)([(0,a.combineReducers)({debug:b.debugReducer,backend:f.backendReducer}),s.reducer]),V=p?[].concat(((i=s.middleware)==null?void 0:i.pre)||[],[o.assetMiddleware,f.backendMiddleware],((h=s.middleware)==null?void 0:h.post)||[]):[],y=a.applyMiddleware.apply(void 0,V),B=(0,a.createStore)(N,y);return window.__store__=B,window.__augmentStack__=m(B),B}return d}(),c=function(s){return function(i){return function(h){var C=h.type,v=h.payload;return C==="update"||C==="backend/update"?g.debug("action",{type:C}):g.debug("action",h),i(h)}}},m=function(s){return function(i,h){var C,v;h?typeof h=="object"&&!h.stack&&(h.stack=i):(h=new Error(i.split("\n")[0]),h.stack=i),g.log("FatalError:",h);var p=s.getState(),N=p==null||(C=p.backend)==null?void 0:C.config,V=i;return V+="\nUser Agent: "+navigator.userAgent,V+="\nState: "+JSON.stringify({ckey:N==null||(v=N.client)==null?void 0:v.ckey,interface:N==null?void 0:N.interface,window:N==null?void 0:N.window}),V}},l=r.StoreProvider=function(d){function s(){return d.apply(this,arguments)||this}I(s,d);var i=s.prototype;return i.getChildContext=function(){function h(){var C=this.props.store;return{store:C}}return h}(),i.render=function(){function h(){return this.props.children}return h}(),s}(t.Component)},51364:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(36036);/**
+*/var g=(0,S.createLogger)("store"),d=r.configureStore=function(){function u(s){var i,h;s===void 0&&(s={});var C=s,v=C.sideEffects,p=v===void 0?!0:v,N=(0,e.flow)([(0,a.combineReducers)({debug:b.debugReducer,backend:f.backendReducer}),s.reducer]),V=p?[].concat(((i=s.middleware)==null?void 0:i.pre)||[],[o.assetMiddleware,f.backendMiddleware],((h=s.middleware)==null?void 0:h.post)||[]):[],y=a.applyMiddleware.apply(void 0,V),B=(0,a.createStore)(N,y);return window.__store__=B,window.__augmentStack__=m(B),B}return u}(),c=function(s){return function(i){return function(h){var C=h.type,v=h.payload;return C==="update"||C==="backend/update"?g.debug("action",{type:C}):g.debug("action",h),i(h)}}},m=function(s){return function(i,h){var C,v;h?typeof h=="object"&&!h.stack&&(h.stack=i):(h=new Error(i.split("\n")[0]),h.stack=i),g.log("FatalError:",h);var p=s.getState(),N=p==null||(C=p.backend)==null?void 0:C.config,V=i;return V+="\nUser Agent: "+navigator.userAgent,V+="\nState: "+JSON.stringify({ckey:N==null||(v=N.client)==null?void 0:v.ckey,interface:N==null?void 0:N.interface,window:N==null?void 0:N.window}),V}},l=r.StoreProvider=function(u){function s(){return u.apply(this,arguments)||this}I(s,u);var i=s.prototype;return i.getChildContext=function(){function h(){var C=this.props.store;return{store:C}}return h}(),i.render=function(){function h(){return this.props.children}return h}(),s}(t.Component)},51364:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(36036);/**
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
@@ -295,11 +295,11 @@
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
- */var o=r.meta={title:"Button",render:function(){function I(){return(0,e.createComponentVNode)(2,S)}return I}()},f=["red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","gold"],b=["good","average","bad","black","white"],S=function(k,g){var u=(0,a.useLocalState)(g,"translucent",!1),c=u[0],m=u[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Box,{mb:1,children:[(0,e.createComponentVNode)(2,t.Button,{content:"Simple"}),(0,e.createComponentVNode)(2,t.Button,{selected:!0,content:"Selected"}),(0,e.createComponentVNode)(2,t.Button,{altSelected:!0,content:"Alt Selected"}),(0,e.createComponentVNode)(2,t.Button,{disabled:!0,content:"Disabled"}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",content:"Transparent"}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Icon"}),(0,e.createComponentVNode)(2,t.Button,{icon:"power-off"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Fluid"}),(0,e.createComponentVNode)(2,t.Button,{my:1,lineHeight:2,minWidth:15,textAlign:"center",content:"With Box props"})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Color States",buttons:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:c,onClick:function(){function l(){return m(!c)}return l}(),content:"Translucent"}),children:b.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{translucent:c,color:l,content:l},l)})}),(0,e.createComponentVNode)(2,t.Section,{title:"Available Colors",children:f.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{translucent:c,color:l,content:l},l)})}),(0,e.createComponentVNode)(2,t.Section,{title:"Text Colors",children:f.map(function(l){return(0,e.createComponentVNode)(2,t.Box,{inline:!0,mx:"7px",color:l,children:l},l)})})],4)}},51956:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(9394);/**
+ */var o=r.meta={title:"Button",render:function(){function I(){return(0,e.createComponentVNode)(2,S)}return I}()},f=["red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","gold"],b=["good","average","bad","black","white"],S=function(k,g){var d=(0,a.useLocalState)(g,"translucent",!1),c=d[0],m=d[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.Box,{mb:1,children:[(0,e.createComponentVNode)(2,t.Button,{content:"Simple"}),(0,e.createComponentVNode)(2,t.Button,{selected:!0,content:"Selected"}),(0,e.createComponentVNode)(2,t.Button,{altSelected:!0,content:"Alt Selected"}),(0,e.createComponentVNode)(2,t.Button,{disabled:!0,content:"Disabled"}),(0,e.createComponentVNode)(2,t.Button,{color:"transparent",content:"Transparent"}),(0,e.createComponentVNode)(2,t.Button,{icon:"cog",content:"Icon"}),(0,e.createComponentVNode)(2,t.Button,{icon:"power-off"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,content:"Fluid"}),(0,e.createComponentVNode)(2,t.Button,{my:1,lineHeight:2,minWidth:15,textAlign:"center",content:"With Box props"})]})}),(0,e.createComponentVNode)(2,t.Section,{title:"Color States",buttons:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:c,onClick:function(){function l(){return m(!c)}return l}(),content:"Translucent"}),children:b.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{translucent:c,color:l,content:l},l)})}),(0,e.createComponentVNode)(2,t.Section,{title:"Available Colors",children:f.map(function(l){return(0,e.createComponentVNode)(2,t.Button,{translucent:c,color:l,content:l},l)})}),(0,e.createComponentVNode)(2,t.Section,{title:"Text Colors",children:f.map(function(l){return(0,e.createComponentVNode)(2,t.Box,{inline:!0,mx:"7px",color:l,children:l},l)})})],4)}},51956:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(72253),t=n(36036),o=n(9394);/**
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
- */var f=r.meta={title:"ByondUi",render:function(){function S(){return(0,e.createComponentVNode)(2,b)}return S}()},b=function(I,k){var g=(0,a.useLocalState)(k,"byondUiEvalCode","Byond.winset('"+Byond.windowId+"', {\n 'is-visible': true,\n})"),u=g[0],c=g[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Button",children:(0,e.createComponentVNode)(2,t.ByondUi,{params:{type:"button",text:"Button"}})}),(0,e.createComponentVNode)(2,t.Section,{title:"Make BYOND calls",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",onClick:function(){function m(){return setTimeout(function(){try{var l=new Function("return ("+u+")")();l&&l.then?(o.logger.log("Promise"),l.then(o.logger.log)):o.logger.log(l)}catch(d){o.logger.log(d)}})}return m}(),children:"Evaluate"}),children:(0,e.createComponentVNode)(2,t.Box,{as:"textarea",width:"100%",height:"10em",onChange:function(){function m(l){return c(l.target.value)}return m}(),children:u})})],4)}},17466:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(36036),t=n(37168);/**
+ */var f=r.meta={title:"ByondUi",render:function(){function S(){return(0,e.createComponentVNode)(2,b)}return S}()},b=function(I,k){var g=(0,a.useLocalState)(k,"byondUiEvalCode","Byond.winset('"+Byond.windowId+"', {\n 'is-visible': true,\n})"),d=g[0],c=g[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{title:"Button",children:(0,e.createComponentVNode)(2,t.ByondUi,{params:{type:"button",text:"Button"}})}),(0,e.createComponentVNode)(2,t.Section,{title:"Make BYOND calls",buttons:(0,e.createComponentVNode)(2,t.Button,{icon:"chevron-right",onClick:function(){function m(){return setTimeout(function(){try{var l=new Function("return ("+d+")")();l&&l.then?(o.logger.log("Promise"),l.then(o.logger.log)):o.logger.log(l)}catch(u){o.logger.log(u)}})}return m}(),children:"Evaluate"}),children:(0,e.createComponentVNode)(2,t.Box,{as:"textarea",width:"100%",height:"10em",onChange:function(){function m(l){return c(l.target.value)}return m}(),children:d})})],4)}},17466:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(36036),t=n(37168);/**
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
@@ -307,19 +307,19 @@
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
- */var o=r.meta={title:"Flex & Sections",render:function(){function b(){return(0,e.createComponentVNode)(2,f)}return b}()},f=function(S,I){var k=(0,a.useLocalState)(I,"fs_grow",1),g=k[0],u=k[1],c=(0,a.useLocalState)(I,"fs_direction","column"),m=c[0],l=c[1],d=(0,a.useLocalState)(I,"fs_fill",!0),s=d[0],i=d[1],h=(0,a.useLocalState)(I,"fs_title",!0),C=h[0],v=h[1];return(0,e.createComponentVNode)(2,t.Flex,{height:"100%",direction:"column",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{mb:1,children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:function(){function p(){return l(m==="column"?"row":"column")}return p}(),children:'Flex direction="'+m+'"'}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:function(){function p(){return u(+!g)}return p}(),children:"Flex.Item grow={"+g+"}"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:function(){function p(){return i(!s)}return p}(),children:"Section fill={"+String(s)+"}"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,selected:C,onClick:function(){function p(){return v(!C)}return p}(),children:"Section title"})]})}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:1,children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",direction:m,children:[(0,e.createComponentVNode)(2,t.Flex.Item,{mr:m==="row"&&1,mb:m==="column"&&1,grow:g,children:(0,e.createComponentVNode)(2,t.Section,{title:C&&"Section 1",fill:s,children:"Content"})}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:g,children:(0,e.createComponentVNode)(2,t.Section,{title:C&&"Section 2",fill:s,children:"Content"})})]})})]})}},48779:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(72253),t=n(36036);/**
+ */var o=r.meta={title:"Flex & Sections",render:function(){function b(){return(0,e.createComponentVNode)(2,f)}return b}()},f=function(S,I){var k=(0,a.useLocalState)(I,"fs_grow",1),g=k[0],d=k[1],c=(0,a.useLocalState)(I,"fs_direction","column"),m=c[0],l=c[1],u=(0,a.useLocalState)(I,"fs_fill",!0),s=u[0],i=u[1],h=(0,a.useLocalState)(I,"fs_title",!0),C=h[0],v=h[1];return(0,e.createComponentVNode)(2,t.Flex,{height:"100%",direction:"column",children:[(0,e.createComponentVNode)(2,t.Flex.Item,{mb:1,children:(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:function(){function p(){return l(m==="column"?"row":"column")}return p}(),children:'Flex direction="'+m+'"'}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:function(){function p(){return d(+!g)}return p}(),children:"Flex.Item grow={"+g+"}"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,onClick:function(){function p(){return i(!s)}return p}(),children:"Section fill={"+String(s)+"}"}),(0,e.createComponentVNode)(2,t.Button,{fluid:!0,selected:C,onClick:function(){function p(){return v(!C)}return p}(),children:"Section title"})]})}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:1,children:(0,e.createComponentVNode)(2,t.Flex,{height:"100%",direction:m,children:[(0,e.createComponentVNode)(2,t.Flex.Item,{mr:m==="row"&&1,mb:m==="column"&&1,grow:g,children:(0,e.createComponentVNode)(2,t.Section,{title:C&&"Section 1",fill:s,children:"Content"})}),(0,e.createComponentVNode)(2,t.Flex.Item,{grow:g,children:(0,e.createComponentVNode)(2,t.Section,{title:C&&"Section 2",fill:s,children:"Content"})})]})})]})}},48779:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(72253),t=n(36036);/**
* @file
* @copyright 2024 Aylong (https://github.com/AyIong)
* @license MIT
- */var o=r.meta={title:"ImageButton",render:function(){function I(){return(0,e.createComponentVNode)(2,S)}return I}()},f=["red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","gold"],b=["good","average","bad","black","white"],S=function(k,g){var u=(0,a.useLocalState)(g,"fluid1",!0),c=u[0],m=u[1],l=(0,a.useLocalState)(g,"fluid2",!1),d=l[0],s=l[1],i=(0,a.useLocalState)(g,"fluid3",!1),h=i[0],C=i[1],v=(0,a.useLocalState)(g,"disabled",!1),p=v[0],N=v[1],V=(0,a.useLocalState)(g,"selected",!1),y=V[0],B=V[1],L=(0,a.useLocalState)(g,"addImage",!1),w=L[0],x=L[1],T=(0,a.useLocalState)(g,"base64",""),M=T[0],O=T[1],D=(0,a.useLocalState)(g,"title","Image Button"),E=D[0],P=D[1],R=(0,a.useLocalState)(g,"content","You can put anything in there"),j=R[0],F=R[1],W=(0,a.useLocalState)(g,"imageSize",64),z=W[0],K=W[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:w?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"base64",children:(0,e.createComponentVNode)(2,t.Input,{value:M,onInput:function(){function G(J,Q){return O(Q)}return G}()})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Input,{value:E,onInput:function(){function G(J,Q){return P(Q)}return G}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Content",children:(0,e.createComponentVNode)(2,t.Input,{value:j,onInput:function(){function G(J,Q){return F(Q)}return G}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Image Size",children:(0,e.createComponentVNode)(2,t.Slider,{width:10,value:z,minValue:0,maxValue:256,step:1,onChange:function(){function G(J,Q){return K(Q)}return G}()})})],4)})}),(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"50%",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:c,onClick:function(){function G(){return m(!c)}return G}(),children:"Fluid"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:p,onClick:function(){function G(){return N(!p)}return G}(),children:"Disabled"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:y,onClick:function(){function G(){return B(!y)}return G}(),children:"Selected"})})]})})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:(0,e.createComponentVNode)(2,t.ImageButton,{m:!c&&0,fluid:c,base64:M,imageSize:z,title:E,tooltip:!c&&j,disabled:p,selected:y,buttonsAlt:c,buttons:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:c,compact:!c,color:!c&&"transparent",selected:w,onClick:function(){function G(){return x(!w)}return G}(),children:"Add Image"}),children:j})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Color States",buttons:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:d,onClick:function(){function G(){return s(!d)}return G}(),children:"Fluid"}),children:b.map(function(G){return(0,e.createComponentVNode)(2,t.ImageButton,{fluid:d,color:G,imageSize:d?24:48,children:G},G)})}),(0,e.createComponentVNode)(2,t.Section,{title:"Available Colors",buttons:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:h,onClick:function(){function G(){return C(!h)}return G}(),children:"Fluid"}),children:f.map(function(G){return(0,e.createComponentVNode)(2,t.ImageButton,{fluid:h,color:G,imageSize:h?24:48,children:G},G)})})],4)}},21394:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(72253),t=n(36036);/**
+ */var o=r.meta={title:"ImageButton",render:function(){function I(){return(0,e.createComponentVNode)(2,S)}return I}()},f=["red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","gold"],b=["good","average","bad","black","white"],S=function(k,g){var d=(0,a.useLocalState)(g,"fluid1",!0),c=d[0],m=d[1],l=(0,a.useLocalState)(g,"fluid2",!1),u=l[0],s=l[1],i=(0,a.useLocalState)(g,"fluid3",!1),h=i[0],C=i[1],v=(0,a.useLocalState)(g,"disabled",!1),p=v[0],N=v[1],V=(0,a.useLocalState)(g,"selected",!1),y=V[0],B=V[1],L=(0,a.useLocalState)(g,"addImage",!1),w=L[0],x=L[1],T=(0,a.useLocalState)(g,"base64",""),M=T[0],O=T[1],D=(0,a.useLocalState)(g,"title","Image Button"),E=D[0],P=D[1],R=(0,a.useLocalState)(g,"content","You can put anything in there"),j=R[0],F=R[1],W=(0,a.useLocalState)(g,"imageSize",64),z=W[0],K=W[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Stack,{children:[(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"50%",children:(0,e.createComponentVNode)(2,t.LabeledList,{children:w?(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"base64",children:(0,e.createComponentVNode)(2,t.Input,{value:M,onInput:function(){function G(J,Q){return O(Q)}return G}()})}):(0,e.createFragment)([(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Title",children:(0,e.createComponentVNode)(2,t.Input,{value:E,onInput:function(){function G(J,Q){return P(Q)}return G}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Content",children:(0,e.createComponentVNode)(2,t.Input,{value:j,onInput:function(){function G(J,Q){return F(Q)}return G}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Image Size",children:(0,e.createComponentVNode)(2,t.Slider,{width:10,value:z,minValue:0,maxValue:256,step:1,onChange:function(){function G(J,Q){return K(Q)}return G}()})})],4)})}),(0,e.createComponentVNode)(2,t.Stack.Item,{basis:"50%",children:(0,e.createComponentVNode)(2,t.Stack,{fill:!0,vertical:!0,children:[(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:c,onClick:function(){function G(){return m(!c)}return G}(),children:"Fluid"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:p,onClick:function(){function G(){return N(!p)}return G}(),children:"Disabled"})}),(0,e.createComponentVNode)(2,t.Stack.Item,{grow:!0,children:(0,e.createComponentVNode)(2,t.Button.Checkbox,{fluid:!0,checked:y,onClick:function(){function G(){return B(!y)}return G}(),children:"Selected"})})]})})]}),(0,e.createComponentVNode)(2,t.Stack.Item,{mt:1,children:(0,e.createComponentVNode)(2,t.ImageButton,{m:!c&&0,fluid:c,base64:M,imageSize:z,title:E,tooltip:!c&&j,disabled:p,selected:y,buttonsAlt:c,buttons:(0,e.createComponentVNode)(2,t.Button,{fluid:!0,translucent:c,compact:!c,color:!c&&"transparent",selected:w,onClick:function(){function G(){return x(!w)}return G}(),children:"Add Image"}),children:j})})]}),(0,e.createComponentVNode)(2,t.Section,{title:"Color States",buttons:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:u,onClick:function(){function G(){return s(!u)}return G}(),children:"Fluid"}),children:b.map(function(G){return(0,e.createComponentVNode)(2,t.ImageButton,{fluid:u,color:G,imageSize:u?24:48,children:G},G)})}),(0,e.createComponentVNode)(2,t.Section,{title:"Available Colors",buttons:(0,e.createComponentVNode)(2,t.Button.Checkbox,{checked:h,onClick:function(){function G(){return C(!h)}return G}(),children:"Fluid"}),children:f.map(function(G){return(0,e.createComponentVNode)(2,t.ImageButton,{fluid:h,color:G,imageSize:h?24:48,children:G},G)})})],4)}},21394:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(72253),t=n(36036);/**
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
- */var o=r.meta={title:"Input",render:function(){function b(){return(0,e.createComponentVNode)(2,f)}return b}()},f=function(S,I){var k=(0,a.useLocalState)(I,"number",0),g=k[0],u=k[1],c=(0,a.useLocalState)(I,"text","Sample text"),m=c[0],l=c[1];return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input (onChange)",children:(0,e.createComponentVNode)(2,t.Input,{value:m,onChange:function(){function d(s,i){return l(i)}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input (onInput)",children:(0,e.createComponentVNode)(2,t.Input,{value:m,onInput:function(){function d(s,i){return l(i)}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"NumberInput (onChange)",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,width:"40px",step:1,stepPixelSize:5,value:g,minValue:-100,maxValue:100,onChange:function(){function d(s,i){return u(i)}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"NumberInput (onDrag)",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,width:"40px",step:1,stepPixelSize:5,value:g,minValue:-100,maxValue:100,onDrag:function(){function d(s,i){return u(i)}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Slider (onDrag)",children:(0,e.createComponentVNode)(2,t.Slider,{step:1,stepPixelSize:5,value:g,minValue:-100,maxValue:100,onDrag:function(){function d(s,i){return u(i)}return d}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Knob (onDrag)",children:[(0,e.createComponentVNode)(2,t.Knob,{inline:!0,size:1,step:1,stepPixelSize:2,value:g,minValue:-100,maxValue:100,onDrag:function(){function d(s,i){return u(i)}return d}()}),(0,e.createComponentVNode)(2,t.Knob,{ml:1,inline:!0,bipolar:!0,size:1,step:1,stepPixelSize:2,value:g,minValue:-100,maxValue:100,onDrag:function(){function d(s,i){return u(i)}return d}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rotating Icon",children:(0,e.createComponentVNode)(2,t.Box,{inline:!0,position:"relative",children:(0,e.createComponentVNode)(2,t.DraggableControl,{value:g,minValue:-100,maxValue:100,dragMatrix:[0,-1],step:1,stepPixelSize:5,onDrag:function(){function d(s,i){return u(i)}return d}(),children:function(){function d(s){return(0,e.createComponentVNode)(2,t.Box,{onMouseDown:s.handleDragStart,children:[(0,e.createComponentVNode)(2,t.Icon,{size:4,color:"yellow",name:"times",rotation:s.displayValue*4}),s.inputElement]})}return d}()})})})]})})}},43932:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(36036),t=r.meta={title:"Popper",render:function(){function f(){return(0,e.createComponentVNode)(2,o)}return f}()},o=function(){return(0,e.createFragment)([(0,e.createComponentVNode)(2,a.Popper,{popperContent:(0,e.createComponentVNode)(2,a.Box,{style:{background:"white",border:"2px solid blue"},children:"Loogatme!"}),options:{placement:"bottom"},children:(0,e.createComponentVNode)(2,a.Box,{style:{border:"5px solid white",height:"300px",width:"200px"}})}),(0,e.createComponentVNode)(2,a.Popper,{popperContent:(0,e.createComponentVNode)(2,a.Box,{style:{background:"white",border:"2px solid blue"},children:"I am on the right!"}),options:{placement:"right"},children:(0,e.createComponentVNode)(2,a.Box,{style:{border:"5px solid white",height:"500px",width:"100px"}})})],4)}},33270:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(72253),t=n(36036);/**
+ */var o=r.meta={title:"Input",render:function(){function b(){return(0,e.createComponentVNode)(2,f)}return b}()},f=function(S,I){var k=(0,a.useLocalState)(I,"number",0),g=k[0],d=k[1],c=(0,a.useLocalState)(I,"text","Sample text"),m=c[0],l=c[1];return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:[(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input (onChange)",children:(0,e.createComponentVNode)(2,t.Input,{value:m,onChange:function(){function u(s,i){return l(i)}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Input (onInput)",children:(0,e.createComponentVNode)(2,t.Input,{value:m,onInput:function(){function u(s,i){return l(i)}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"NumberInput (onChange)",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,width:"40px",step:1,stepPixelSize:5,value:g,minValue:-100,maxValue:100,onChange:function(){function u(s,i){return d(i)}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"NumberInput (onDrag)",children:(0,e.createComponentVNode)(2,t.NumberInput,{animated:!0,width:"40px",step:1,stepPixelSize:5,value:g,minValue:-100,maxValue:100,onDrag:function(){function u(s,i){return d(i)}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Slider (onDrag)",children:(0,e.createComponentVNode)(2,t.Slider,{step:1,stepPixelSize:5,value:g,minValue:-100,maxValue:100,onDrag:function(){function u(s,i){return d(i)}return u}()})}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Knob (onDrag)",children:[(0,e.createComponentVNode)(2,t.Knob,{inline:!0,size:1,step:1,stepPixelSize:2,value:g,minValue:-100,maxValue:100,onDrag:function(){function u(s,i){return d(i)}return u}()}),(0,e.createComponentVNode)(2,t.Knob,{ml:1,inline:!0,bipolar:!0,size:1,step:1,stepPixelSize:2,value:g,minValue:-100,maxValue:100,onDrag:function(){function u(s,i){return d(i)}return u}()})]}),(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Rotating Icon",children:(0,e.createComponentVNode)(2,t.Box,{inline:!0,position:"relative",children:(0,e.createComponentVNode)(2,t.DraggableControl,{value:g,minValue:-100,maxValue:100,dragMatrix:[0,-1],step:1,stepPixelSize:5,onDrag:function(){function u(s,i){return d(i)}return u}(),children:function(){function u(s){return(0,e.createComponentVNode)(2,t.Box,{onMouseDown:s.handleDragStart,children:[(0,e.createComponentVNode)(2,t.Icon,{size:4,color:"yellow",name:"times",rotation:s.displayValue*4}),s.inputElement]})}return u}()})})})]})})}},43932:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(36036),t=r.meta={title:"Popper",render:function(){function f(){return(0,e.createComponentVNode)(2,o)}return f}()},o=function(){return(0,e.createFragment)([(0,e.createComponentVNode)(2,a.Popper,{popperContent:(0,e.createComponentVNode)(2,a.Box,{style:{background:"white",border:"2px solid blue"},children:"Loogatme!"}),options:{placement:"bottom"},children:(0,e.createComponentVNode)(2,a.Box,{style:{border:"5px solid white",height:"300px",width:"200px"}})}),(0,e.createComponentVNode)(2,a.Popper,{popperContent:(0,e.createComponentVNode)(2,a.Box,{style:{background:"white",border:"2px solid blue"},children:"I am on the right!"}),options:{placement:"right"},children:(0,e.createComponentVNode)(2,a.Box,{style:{border:"5px solid white",height:"500px",width:"100px"}})})],4)}},33270:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(72253),t=n(36036);/**
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
- */var o=r.meta={title:"ProgressBar",render:function(){function b(){return(0,e.createComponentVNode)(2,f)}return b}()},f=function(S,I){var k=(0,a.useLocalState)(I,"progress",.5),g=k[0],u=k[1];return(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[.5,1/0],bad:[-1/0,.1],average:[0,.5]},minValue:-1,maxValue:1,value:g,children:["Value: ",Number(g).toFixed(1)]}),(0,e.createComponentVNode)(2,t.Box,{mt:1,children:[(0,e.createComponentVNode)(2,t.Button,{content:"-0.1",onClick:function(){function c(){return u(g-.1)}return c}()}),(0,e.createComponentVNode)(2,t.Button,{content:"+0.1",onClick:function(){function c(){return u(g+.1)}return c}()})]})]})}},77766:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(36036);/**
+ */var o=r.meta={title:"ProgressBar",render:function(){function b(){return(0,e.createComponentVNode)(2,f)}return b}()},f=function(S,I){var k=(0,a.useLocalState)(I,"progress",.5),g=k[0],d=k[1];return(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.ProgressBar,{ranges:{good:[.5,1/0],bad:[-1/0,.1],average:[0,.5]},minValue:-1,maxValue:1,value:g,children:["Value: ",Number(g).toFixed(1)]}),(0,e.createComponentVNode)(2,t.Box,{mt:1,children:[(0,e.createComponentVNode)(2,t.Button,{content:"-0.1",onClick:function(){function c(){return d(g-.1)}return c}()}),(0,e.createComponentVNode)(2,t.Button,{content:"+0.1",onClick:function(){function c(){return d(g+.1)}return c}()})]})]})}},77766:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(36036);/**
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
@@ -331,11 +331,11 @@
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
- */var o=r.meta={title:"Tabs",render:function(){function S(){return(0,e.createComponentVNode)(2,b)}return S}()},f=["Tab #1","Tab #2","Tab #3","Tab #4"],b=function(I,k){var g=(0,a.useLocalState)(k,"tabIndex",0),u=g[0],c=g[1],m=(0,a.useLocalState)(k,"tabProps",{}),l=m[0],d=m[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"vertical",checked:l.vertical,onClick:function(){function s(){return d(Object.assign({},l,{vertical:!l.vertical}))}return s}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"leftSlot",checked:l.leftSlot,onClick:function(){function s(){return d(Object.assign({},l,{leftSlot:!l.leftSlot}))}return s}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"rightSlot",checked:l.rightSlot,onClick:function(){function s(){return d(Object.assign({},l,{rightSlot:!l.rightSlot}))}return s}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"icon",checked:l.icon,onClick:function(){function s(){return d(Object.assign({},l,{icon:!l.icon}))}return s}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"fluid",checked:l.fluid,onClick:function(){function s(){return d(Object.assign({},l,{fluid:!l.fluid}))}return s}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"left aligned",checked:l.leftAligned,onClick:function(){function s(){return d(Object.assign({},l,{leftAligned:!l.leftAligned}))}return s}()})]}),(0,e.createComponentVNode)(2,t.Section,{fitted:!0,children:(0,e.createComponentVNode)(2,t.Tabs,{vertical:l.vertical,fluid:l.fluid,textAlign:l.leftAligned&&"left",children:f.map(function(s,i){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:i===u,icon:l.icon&&"info-circle",leftSlot:l.leftSlot&&(0,e.createComponentVNode)(2,t.Button,{circular:!0,compact:!0,color:"transparent",icon:"times"}),rightSlot:l.rightSlot&&(0,e.createComponentVNode)(2,t.Button,{circular:!0,compact:!0,color:"transparent",icon:"times"}),onClick:function(){function h(){return c(i)}return h}(),children:s},i)})})})],4)}},53276:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(72253),t=n(36036);/**
+ */var o=r.meta={title:"Tabs",render:function(){function S(){return(0,e.createComponentVNode)(2,b)}return S}()},f=["Tab #1","Tab #2","Tab #3","Tab #4"],b=function(I,k){var g=(0,a.useLocalState)(k,"tabIndex",0),d=g[0],c=g[1],m=(0,a.useLocalState)(k,"tabProps",{}),l=m[0],u=m[1];return(0,e.createFragment)([(0,e.createComponentVNode)(2,t.Section,{children:[(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"vertical",checked:l.vertical,onClick:function(){function s(){return u(Object.assign({},l,{vertical:!l.vertical}))}return s}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"leftSlot",checked:l.leftSlot,onClick:function(){function s(){return u(Object.assign({},l,{leftSlot:!l.leftSlot}))}return s}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"rightSlot",checked:l.rightSlot,onClick:function(){function s(){return u(Object.assign({},l,{rightSlot:!l.rightSlot}))}return s}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"icon",checked:l.icon,onClick:function(){function s(){return u(Object.assign({},l,{icon:!l.icon}))}return s}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"fluid",checked:l.fluid,onClick:function(){function s(){return u(Object.assign({},l,{fluid:!l.fluid}))}return s}()}),(0,e.createComponentVNode)(2,t.Button.Checkbox,{inline:!0,content:"left aligned",checked:l.leftAligned,onClick:function(){function s(){return u(Object.assign({},l,{leftAligned:!l.leftAligned}))}return s}()})]}),(0,e.createComponentVNode)(2,t.Section,{fitted:!0,children:(0,e.createComponentVNode)(2,t.Tabs,{vertical:l.vertical,fluid:l.fluid,textAlign:l.leftAligned&&"left",children:f.map(function(s,i){return(0,e.createComponentVNode)(2,t.Tabs.Tab,{selected:i===d,icon:l.icon&&"info-circle",leftSlot:l.leftSlot&&(0,e.createComponentVNode)(2,t.Button,{circular:!0,compact:!0,color:"transparent",icon:"times"}),rightSlot:l.rightSlot&&(0,e.createComponentVNode)(2,t.Button,{circular:!0,compact:!0,color:"transparent",icon:"times"}),onClick:function(){function h(){return c(i)}return h}(),children:s},i)})})})],4)}},53276:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(72253),t=n(36036);/**
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
- */var o=r.meta={title:"Themes",render:function(){function b(){return(0,e.createComponentVNode)(2,f)}return b}()},f=function(S,I){var k=(0,a.useLocalState)(I,"kitchenSinkTheme"),g=k[0],u=k[1];return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Use theme",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"theme_name",value:g,onInput:function(){function c(m,l){return u(l)}return c}()})})})})}},28717:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(36036);/**
+ */var o=r.meta={title:"Themes",render:function(){function b(){return(0,e.createComponentVNode)(2,f)}return b}()},f=function(S,I){var k=(0,a.useLocalState)(I,"kitchenSinkTheme"),g=k[0],d=k[1];return(0,e.createComponentVNode)(2,t.Section,{children:(0,e.createComponentVNode)(2,t.LabeledList,{children:(0,e.createComponentVNode)(2,t.LabeledList.Item,{label:"Use theme",children:(0,e.createComponentVNode)(2,t.Input,{placeholder:"theme_name",value:g,onInput:function(){function c(m,l){return d(l)}return c}()})})})})}},28717:function(A,r,n){"use strict";r.__esModule=!0,r.meta=void 0;var e=n(89005),a=n(36036);/**
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
@@ -343,12 +343,12 @@
* @file
* @copyright 2021 Aleksej Komarov
* @license MIT
- */var t=r.BoxWithSampleText=function(){function o(f){return(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Box,Object.assign({},f,{children:[(0,e.createComponentVNode)(2,a.Box,{italic:!0,children:"Jackdaws love my big sphinx of quartz."}),(0,e.createComponentVNode)(2,a.Box,{mt:1,bold:!0,children:"The wide electrification of the southern provinces will give a powerful impetus to the growth of agriculture."})]})))}return o}()},67160:function(){},23542:function(){},30386:function(){},98996:function(){},50578:function(){},4444:function(){},77870:function(){},23632:function(){},56492:function(){},39108:function(){},11714:function(){},73492:function(){},49641:function(){},17570:function(){},61858:function(){},32882:function(){},70752:function(A,r,n){var e={"./pai_atmosphere.js":80818,"./pai_bioscan.js":23903,"./pai_directives.js":64988,"./pai_doorjack.js":13813,"./pai_main_menu.js":66025,"./pai_manifest.js":2983,"./pai_medrecords.js":40758,"./pai_messenger.js":98599,"./pai_radio.js":50775,"./pai_secrecords.js":48623,"./pai_signaler.js":47297};function a(o){var f=t(o);return n(f)}function t(o){if(!n.o(e,o)){var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}return e[o]}a.keys=function(){return Object.keys(e)},a.resolve=t,A.exports=a,a.id=70752},59395:function(A,r,n){var e={"./pda_atmos_scan.js":78532,"./pda_games.js":2395,"./pda_janitor.js":40253,"./pda_main_menu.js":58293,"./pda_manifest.js":58059,"./pda_medical.js":18147,"./pda_messenger.js":77595,"./pda_minesweeper.js":90382,"./pda_mule.js":24635,"./pda_nanobank.js":23734,"./pda_notes.js":97085,"./pda_power.js":57513,"./pda_secbot.js":99808,"./pda_security.js":77168,"./pda_signaler.js":21773,"./pda_status_display.js":81857,"./pda_supplyrecords.js":70287};function a(o){var f=t(o);return n(f)}function t(o){if(!n.o(e,o)){var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}return e[o]}a.keys=function(){return Object.keys(e)},a.resolve=t,A.exports=a,a.id=59395},32054:function(A,r,n){var e={"./AICard":1090,"./AICard.js":1090,"./AIFixer":39454,"./AIFixer.js":39454,"./APC":88422,"./APC.js":88422,"./ATM":99660,"./ATM.js":99660,"./AccountsUplinkTerminal":86423,"./AccountsUplinkTerminal.js":86423,"./AdminAntagMenu":23001,"./AdminAntagMenu.js":23001,"./AgentCard":39683,"./AgentCard.tsx":39683,"./AiAirlock":56793,"./AiAirlock.js":56793,"./AirAlarm":72475,"./AirAlarm.js":72475,"./AirlockAccessController":12333,"./AirlockAccessController.js":12333,"./AirlockElectronics":28736,"./AirlockElectronics.js":28736,"./AlertModal":47365,"./AlertModal.tsx":47365,"./AppearanceChanger":71824,"./AppearanceChanger.js":71824,"./AtmosAlertConsole":72285,"./AtmosAlertConsole.js":72285,"./AtmosControl":65805,"./AtmosControl.js":65805,"./AtmosFilter":87816,"./AtmosFilter.js":87816,"./AtmosGraphMonitor":57258,"./AtmosGraphMonitor.tsx":57258,"./AtmosMixer":52977,"./AtmosMixer.js":52977,"./AtmosPump":11748,"./AtmosPump.js":11748,"./AtmosTankControl":69321,"./AtmosTankControl.js":69321,"./AugmentMenu":92444,"./AugmentMenu.js":92444,"./Autolathe":59179,"./Autolathe.js":59179,"./Autolathe220":29943,"./Autolathe220.tsx":29943,"./BioChipPad":5147,"./BioChipPad.js":5147,"./Biogenerator":64273,"./Biogenerator.js":64273,"./BloomEdit":47823,"./BloomEdit.js":47823,"./BlueSpaceArtilleryControl":18621,"./BlueSpaceArtilleryControl.js":18621,"./BluespaceTap":27629,"./BluespaceTap.js":27629,"./BodyScanner":33758,"./BodyScanner.js":33758,"./BookBinder":67963,"./BookBinder.js":67963,"./BotCall":61925,"./BotCall.js":61925,"./BotClean":20464,"./BotClean.js":20464,"./BotFloor":69479,"./BotFloor.js":69479,"./BotHonk":59887,"./BotHonk.js":59887,"./BotMed":80063,"./BotMed.js":80063,"./BotSecurity":74439,"./BotSecurity.js":74439,"./BrigCells":10833,"./BrigCells.js":10833,"./BrigTimer":45761,"./BrigTimer.js":45761,"./CameraConsole":26300,"./CameraConsole.js":26300,"./CameraConsole220":39222,"./CameraConsole220.js":39222,"./Canister":52927,"./Canister.js":52927,"./CardComputer":51793,"./CardComputer.js":51793,"./CargoConsole":64083,"./CargoConsole.js":64083,"./Chameleon":36232,"./Chameleon.tsx":36232,"./ChangelogView":87331,"./ChangelogView.js":87331,"./CheckboxListInputModal":91360,"./CheckboxListInputModal.tsx":91360,"./ChemDispenser":36108,"./ChemDispenser.js":36108,"./ChemHeater":13146,"./ChemHeater.js":13146,"./ChemMaster":56541,"./ChemMaster.tsx":56541,"./CloningConsole":37173,"./CloningConsole.js":37173,"./CloningPod":98723,"./CloningPod.js":98723,"./CoinMint":18259,"./CoinMint.tsx":18259,"./ColorPickerModal":93858,"./ColorPickerModal.tsx":93858,"./ColourMatrixTester":8444,"./ColourMatrixTester.js":8444,"./CommunicationsComputer":63818,"./CommunicationsComputer.js":63818,"./CompostBin":20562,"./CompostBin.js":20562,"./Contractor":21813,"./Contractor.js":21813,"./ConveyorSwitch":54151,"./ConveyorSwitch.js":54151,"./CrewMonitor":73169,"./CrewMonitor.js":73169,"./Cryo":63987,"./Cryo.js":63987,"./CryopodConsole":86099,"./CryopodConsole.js":86099,"./DNAModifier":12692,"./DNAModifier.js":12692,"./DecalPainter":76430,"./DecalPainter.js":76430,"./DestinationTagger":41074,"./DestinationTagger.js":41074,"./DisposalBin":46500,"./DisposalBin.js":46500,"./DnaVault":33233,"./DnaVault.js":33233,"./DroneConsole":33681,"./DroneConsole.js":33681,"./EFTPOS":17263,"./EFTPOS.js":17263,"./ERTManager":76382,"./ERTManager.js":76382,"./EconomyManager":90217,"./EconomyManager.js":90217,"./Electropack":82565,"./Electropack.js":82565,"./Emojipedia":11243,"./Emojipedia.tsx":11243,"./EmotePanel":69784,"./EmotePanel.js":69784,"./EvolutionMenu":36730,"./EvolutionMenu.js":36730,"./ExosuitFabricator":17370,"./ExosuitFabricator.js":17370,"./ExperimentConsole":59128,"./ExperimentConsole.js":59128,"./ExternalAirlockController":97086,"./ExternalAirlockController.js":97086,"./FaxMachine":96142,"./FaxMachine.js":96142,"./FilingCabinet":74123,"./FilingCabinet.js":74123,"./FloorPainter":83767,"./FloorPainter.js":83767,"./GPS":53424,"./GPS.js":53424,"./GeneModder":89124,"./GeneModder.js":89124,"./GenericCrewManifest":73053,"./GenericCrewManifest.js":73053,"./GhostHudPanel":42914,"./GhostHudPanel.js":42914,"./GlandDispenser":25825,"./GlandDispenser.js":25825,"./GravityGen":10270,"./GravityGen.js":10270,"./GuestPass":48657,"./GuestPass.js":48657,"./HandheldChemDispenser":67834,"./HandheldChemDispenser.js":67834,"./HealthSensor":46098,"./HealthSensor.js":46098,"./Holodeck":36771,"./Holodeck.js":36771,"./Instrument":25471,"./Instrument.js":25471,"./Jukebox":52736,"./Jukebox.tsx":52736,"./KeyComboModal":13618,"./KeyComboModal.tsx":13618,"./KeycardAuth":35655,"./KeycardAuth.js":35655,"./KitchenMachine":62955,"./KitchenMachine.js":62955,"./LawManager":9525,"./LawManager.js":9525,"./LibraryComputer":85066,"./LibraryComputer.js":85066,"./LibraryManager":9516,"./LibraryManager.js":9516,"./ListInputModal":90447,"./ListInputModal.tsx":90447,"./Loadout":26826,"./Loadout.tsx":26826,"./MODsuit":77613,"./MODsuit.js":77613,"./MagnetController":78624,"./MagnetController.js":78624,"./MechBayConsole":72106,"./MechBayConsole.js":72106,"./MechaControlConsole":7466,"./MechaControlConsole.js":7466,"./MedicalRecords":79625,"./MedicalRecords.js":79625,"./MerchVendor":54989,"./MerchVendor.js":54989,"./MiningVendor":87684,"./MiningVendor.js":87684,"./ModpacksList":61468,"./ModpacksList.js":61468,"./NTRecruiter":59783,"./NTRecruiter.js":59783,"./Newscaster":64713,"./Newscaster.js":64713,"./Noticeboard":48286,"./Noticeboard.tsx":48286,"./NuclearBomb":41166,"./NuclearBomb.js":41166,"./NumberInputModal":52416,"./NumberInputModal.tsx":52416,"./OperatingComputer":1218,"./OperatingComputer.js":1218,"./Orbit":46892,"./Orbit.js":46892,"./OreRedemption":15421,"./OreRedemption.js":15421,"./PAI":52754,"./PAI.js":52754,"./PDA":85175,"./PDA.js":85175,"./Pacman":68654,"./Pacman.js":68654,"./PanDEMIC":1701,"./PanDEMIC.tsx":1701,"./ParticleAccelerator":67921,"./ParticleAccelerator.js":67921,"./PdaPainter":71432,"./PdaPainter.js":71432,"./PersonalCrafting":33388,"./PersonalCrafting.js":33388,"./Photocopier":56150,"./Photocopier.js":56150,"./Photocopier220":8340,"./Photocopier220.js":8340,"./PoolController":84676,"./PoolController.js":84676,"./PortablePump":57003,"./PortablePump.js":57003,"./PortableScrubber":70069,"./PortableScrubber.js":70069,"./PortableTurret":59955,"./PortableTurret.js":59955,"./PowerMonitor":61631,"./PowerMonitor.js":61631,"./PrisonerImplantManager":50992,"./PrisonerImplantManager.js":50992,"./PrisonerShuttleConsole":53952,"./PrisonerShuttleConsole.js":53952,"./PrizeCounter":97852,"./PrizeCounter.tsx":97852,"./RCD":94813,"./RCD.js":94813,"./RPD":18738,"./RPD.js":18738,"./Radio":80299,"./Radio.js":80299,"./RankedListInputModal":14846,"./RankedListInputModal.tsx":14846,"./ReagentGrinder":48125,"./ReagentGrinder.js":48125,"./ReagentsEditor":58262,"./ReagentsEditor.tsx":58262,"./RemoteSignaler":30207,"./RemoteSignaler.js":30207,"./RequestConsole":25472,"./RequestConsole.js":25472,"./RndBackupConsole":9861,"./RndBackupConsole.js":9861,"./RndConsole":12644,"./RndConsole/":12644,"./RndConsole/AnalyzerMenu":68303,"./RndConsole/AnalyzerMenu.js":68303,"./RndConsole/DataDiskMenu":37556,"./RndConsole/DataDiskMenu.js":37556,"./RndConsole/LatheCategory":16830,"./RndConsole/LatheCategory.js":16830,"./RndConsole/LatheChemicalStorage":70497,"./RndConsole/LatheChemicalStorage.js":70497,"./RndConsole/LatheMainMenu":70864,"./RndConsole/LatheMainMenu.js":70864,"./RndConsole/LatheMaterialStorage":42878,"./RndConsole/LatheMaterialStorage.js":42878,"./RndConsole/LatheMaterials":52662,"./RndConsole/LatheMaterials.js":52662,"./RndConsole/LatheMenu":9681,"./RndConsole/LatheMenu.js":9681,"./RndConsole/LatheSearch":68198,"./RndConsole/LatheSearch.js":68198,"./RndConsole/LinkMenu":81421,"./RndConsole/LinkMenu.js":81421,"./RndConsole/SettingsMenu":6256,"./RndConsole/SettingsMenu.js":6256,"./RndConsole/index":12644,"./RndConsole/index.js":12644,"./RndNetController":29205,"./RndNetController.js":29205,"./RndServer":63315,"./RndServer.js":63315,"./RobotSelfDiagnosis":26109,"./RobotSelfDiagnosis.js":26109,"./RoboticsControlConsole":97997,"./RoboticsControlConsole.js":97997,"./Safe":54431,"./Safe.js":54431,"./SatelliteControl":29740,"./SatelliteControl.js":29740,"./SecureStorage":44162,"./SecureStorage.js":44162,"./SecurityRecords":6272,"./SecurityRecords.js":6272,"./SeedExtractor":5099,"./SeedExtractor.js":5099,"./Shop":17474,"./Shop.js":17474,"./ShuttleConsole":2916,"./ShuttleConsole.js":2916,"./ShuttleManipulator":39401,"./ShuttleManipulator.js":39401,"./SingularityMonitor":86013,"./SingularityMonitor.js":86013,"./Sleeper":88284,"./Sleeper.js":88284,"./SlotMachine":21597,"./SlotMachine.js":21597,"./Smartfridge":46348,"./Smartfridge.js":46348,"./Smes":86162,"./Smes.js":86162,"./SolarControl":63584,"./SolarControl.js":63584,"./SpawnersMenu":38096,"./SpawnersMenu.js":38096,"./SpecMenu":30586,"./SpecMenu.js":30586,"./StackCraft":95152,"./StackCraft.js":95152,"./StationAlertConsole":38307,"./StationAlertConsole.js":38307,"./StationTraitsPanel":96091,"./StationTraitsPanel.tsx":96091,"./StripMenu":39409,"./StripMenu.tsx":39409,"./SuitStorage":69514,"./SuitStorage.js":69514,"./SupermatterMonitor":15022,"./SupermatterMonitor.js":15022,"./SyndicateComputerSimple":46029,"./SyndicateComputerSimple.js":46029,"./TEG":36372,"./TEG.js":36372,"./TTSSeedsExplorer":23190,"./TTSSeedsExplorer.tsx":23190,"./TachyonArray":56441,"./TachyonArray.js":56441,"./Tank":1754,"./Tank.js":1754,"./TankDispenser":7579,"./TankDispenser.js":7579,"./TcommsCore":16136,"./TcommsCore.js":16136,"./TcommsRelay":88046,"./TcommsRelay.js":88046,"./Teleporter":20802,"./Teleporter.js":20802,"./TelescienceConsole":48517,"./TelescienceConsole.js":48517,"./TempGun":21800,"./TempGun.js":21800,"./TextInputModal":24410,"./TextInputModal.tsx":24410,"./ThermoMachine":25036,"./ThermoMachine.js":25036,"./TransferValve":20035,"./TransferValve.js":20035,"./TurbineComputer":78166,"./TurbineComputer.js":78166,"./Uplink":52847,"./Uplink.js":52847,"./Vending":12261,"./Vending.js":12261,"./VolumeMixer":68971,"./VolumeMixer.js":68971,"./VotePanel":2510,"./VotePanel.js":2510,"./Wires":30138,"./Wires.js":30138,"./WizardApprenticeContract":21400,"./WizardApprenticeContract.js":21400,"./common/AccessList":49148,"./common/AccessList.js":49148,"./common/AtmosScan":26991,"./common/AtmosScan.js":26991,"./common/BeakerContents":85870,"./common/BeakerContents.js":85870,"./common/BotStatus":92963,"./common/BotStatus.js":92963,"./common/ComplexModal":3939,"./common/ComplexModal.js":3939,"./common/CrewManifest":41874,"./common/CrewManifest.js":41874,"./common/InputButtons":19203,"./common/InputButtons.tsx":19203,"./common/InterfaceLockNoticeBox":195,"./common/InterfaceLockNoticeBox.js":195,"./common/Loader":51057,"./common/Loader.tsx":51057,"./common/LoginInfo":321,"./common/LoginInfo.js":321,"./common/LoginScreen":5485,"./common/LoginScreen.js":5485,"./common/Operating":62411,"./common/Operating.js":62411,"./common/Signaler":13545,"./common/Signaler.js":13545,"./common/SimpleRecords":41984,"./common/SimpleRecords.js":41984,"./common/TemporaryNotice":22091,"./common/TemporaryNotice.js":22091,"./goonstation_PTL":95213,"./goonstation_PTL/":95213,"./goonstation_PTL/index":95213,"./goonstation_PTL/index.js":95213,"./pai/pai_atmosphere":80818,"./pai/pai_atmosphere.js":80818,"./pai/pai_bioscan":23903,"./pai/pai_bioscan.js":23903,"./pai/pai_directives":64988,"./pai/pai_directives.js":64988,"./pai/pai_doorjack":13813,"./pai/pai_doorjack.js":13813,"./pai/pai_main_menu":66025,"./pai/pai_main_menu.js":66025,"./pai/pai_manifest":2983,"./pai/pai_manifest.js":2983,"./pai/pai_medrecords":40758,"./pai/pai_medrecords.js":40758,"./pai/pai_messenger":98599,"./pai/pai_messenger.js":98599,"./pai/pai_radio":50775,"./pai/pai_radio.js":50775,"./pai/pai_secrecords":48623,"./pai/pai_secrecords.js":48623,"./pai/pai_signaler":47297,"./pai/pai_signaler.js":47297,"./pda/pda_atmos_scan":78532,"./pda/pda_atmos_scan.js":78532,"./pda/pda_games":2395,"./pda/pda_games.js":2395,"./pda/pda_janitor":40253,"./pda/pda_janitor.js":40253,"./pda/pda_main_menu":58293,"./pda/pda_main_menu.js":58293,"./pda/pda_manifest":58059,"./pda/pda_manifest.js":58059,"./pda/pda_medical":18147,"./pda/pda_medical.js":18147,"./pda/pda_messenger":77595,"./pda/pda_messenger.js":77595,"./pda/pda_minesweeper":90382,"./pda/pda_minesweeper.js":90382,"./pda/pda_mule":24635,"./pda/pda_mule.js":24635,"./pda/pda_nanobank":23734,"./pda/pda_nanobank.js":23734,"./pda/pda_notes":97085,"./pda/pda_notes.js":97085,"./pda/pda_power":57513,"./pda/pda_power.js":57513,"./pda/pda_secbot":99808,"./pda/pda_secbot.js":99808,"./pda/pda_security":77168,"./pda/pda_security.js":77168,"./pda/pda_signaler":21773,"./pda/pda_signaler.js":21773,"./pda/pda_status_display":81857,"./pda/pda_status_display.js":81857,"./pda/pda_supplyrecords":70287,"./pda/pda_supplyrecords.js":70287};function a(o){var f=t(o);return n(f)}function t(o){if(!n.o(e,o)){var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}return e[o]}a.keys=function(){return Object.keys(e)},a.resolve=t,A.exports=a,a.id=32054},4085:function(A,r,n){var e={"./Blink.stories.js":51364,"./BlockQuote.stories.js":32453,"./Box.stories.js":83531,"./Button.stories.js":74198,"./ByondUi.stories.js":51956,"./Collapsible.stories.js":17466,"./Flex.stories.js":89241,"./ImageButton.stories.js":48779,"./Input.stories.js":21394,"./Popper.stories.js":43932,"./ProgressBar.stories.js":33270,"./Stack.stories.js":77766,"./Storage.stories.js":30187,"./Tabs.stories.js":46554,"./Themes.stories.js":53276,"./Tooltip.stories.js":28717};function a(o){var f=t(o);return n(f)}function t(o){if(!n.o(e,o)){var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}return e[o]}a.keys=function(){return Object.keys(e)},a.resolve=t,A.exports=a,a.id=4085},10320:function(A,r,n){"use strict";var e=n(55747),a=n(89393),t=TypeError;A.exports=function(o){if(e(o))return o;throw new t(a(o)+" is not a function")}},32606:function(A,r,n){"use strict";var e=n(1031),a=n(89393),t=TypeError;A.exports=function(o){if(e(o))return o;throw new t(a(o)+" is not a constructor")}},35908:function(A,r,n){"use strict";var e=n(45015),a=String,t=TypeError;A.exports=function(o){if(e(o))return o;throw new t("Can't set "+a(o)+" as a prototype")}},80575:function(A,r,n){"use strict";var e=n(24697),a=n(80674),t=n(74595).f,o=e("unscopables"),f=Array.prototype;f[o]===void 0&&t(f,o,{configurable:!0,value:a(null)}),A.exports=function(b){f[o][b]=!0}},35483:function(A,r,n){"use strict";var e=n(50233).charAt;A.exports=function(a,t,o){return t+(o?e(a,t).length:1)}},60077:function(A,r,n){"use strict";var e=n(21287),a=TypeError;A.exports=function(t,o){if(e(o,t))return t;throw new a("Incorrect invocation")}},30365:function(A,r,n){"use strict";var e=n(77568),a=String,t=TypeError;A.exports=function(o){if(e(o))return o;throw new t(a(o)+" is not an object")}},70377:function(A){"use strict";A.exports=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"},3782:function(A,r,n){"use strict";var e=n(40033);A.exports=e(function(){if(typeof ArrayBuffer=="function"){var a=new ArrayBuffer(8);Object.isExtensible(a)&&Object.defineProperty(a,"a",{value:8})}})},4246:function(A,r,n){"use strict";var e=n(70377),a=n(58310),t=n(74685),o=n(55747),f=n(77568),b=n(45299),S=n(2281),I=n(89393),k=n(37909),g=n(55938),u=n(73936),c=n(21287),m=n(36917),l=n(76649),d=n(24697),s=n(16738),i=n(5419),h=i.enforce,C=i.get,v=t.Int8Array,p=v&&v.prototype,N=t.Uint8ClampedArray,V=N&&N.prototype,y=v&&m(v),B=p&&m(p),L=Object.prototype,w=t.TypeError,x=d("toStringTag"),T=s("TYPED_ARRAY_TAG"),M="TypedArrayConstructor",O=e&&!!l&&S(t.opera)!=="Opera",D=!1,E,P,R,j={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},F={BigInt64Array:8,BigUint64Array:8},W=function(){function ie(pe){if(!f(pe))return!1;var te=S(pe);return te==="DataView"||b(j,te)||b(F,te)}return ie}(),z=function ie(pe){var te=m(pe);if(f(te)){var q=C(te);return q&&b(q,M)?q[M]:ie(te)}},K=function(pe){if(!f(pe))return!1;var te=S(pe);return b(j,te)||b(F,te)},G=function(pe){if(K(pe))return pe;throw new w("Target is not a typed array")},J=function(pe){if(o(pe)&&(!l||c(y,pe)))return pe;throw new w(I(pe)+" is not a typed array constructor")},Q=function(pe,te,q,ne){if(a){if(q)for(var le in j){var ee=t[le];if(ee&&b(ee.prototype,pe))try{delete ee.prototype[pe]}catch(re){try{ee.prototype[pe]=te}catch(oe){}}}(!B[pe]||q)&&g(B,pe,q?te:O&&p[pe]||te,ne)}},ue=function(pe,te,q){var ne,le;if(a){if(l){if(q){for(ne in j)if(le=t[ne],le&&b(le,pe))try{delete le[pe]}catch(ee){}}if(!y[pe]||q)try{return g(y,pe,q?te:O&&y[pe]||te)}catch(ee){}else return}for(ne in j)le=t[ne],le&&(!le[pe]||q)&&g(le,pe,te)}};for(E in j)P=t[E],R=P&&P.prototype,R?h(R)[M]=P:O=!1;for(E in F)P=t[E],R=P&&P.prototype,R&&(h(R)[M]=P);if((!O||!o(y)||y===Function.prototype)&&(y=function(){function ie(){throw new w("Incorrect invocation")}return ie}(),O))for(E in j)t[E]&&l(t[E],y);if((!O||!B||B===L)&&(B=y.prototype,O))for(E in j)t[E]&&l(t[E].prototype,B);if(O&&m(V)!==B&&l(V,B),a&&!b(B,x)){D=!0,u(B,x,{configurable:!0,get:function(){function ie(){return f(this)?this[T]:void 0}return ie}()});for(E in j)t[E]&&k(t[E],T,E)}A.exports={NATIVE_ARRAY_BUFFER_VIEWS:O,TYPED_ARRAY_TAG:D&&T,aTypedArray:G,aTypedArrayConstructor:J,exportTypedArrayMethod:Q,exportTypedArrayStaticMethod:ue,getTypedArrayConstructor:z,isView:W,isTypedArray:K,TypedArray:y,TypedArrayPrototype:B}},37336:function(A,r,n){"use strict";var e=n(74685),a=n(67250),t=n(58310),o=n(70377),f=n(70520),b=n(37909),S=n(73936),I=n(30145),k=n(40033),g=n(60077),u=n(61365),c=n(10188),m=n(43806),l=n(95867),d=n(91784),s=n(36917),i=n(76649),h=n(88471),C=n(54602),v=n(5781),p=n(5774),N=n(84925),V=n(5419),y=f.PROPER,B=f.CONFIGURABLE,L="ArrayBuffer",w="DataView",x="prototype",T="Wrong length",M="Wrong index",O=V.getterFor(L),D=V.getterFor(w),E=V.set,P=e[L],R=P,j=R&&R[x],F=e[w],W=F&&F[x],z=Object.prototype,K=e.Array,G=e.RangeError,J=a(h),Q=a([].reverse),ue=d.pack,ie=d.unpack,pe=function(Ve){return[Ve&255]},te=function(Ve){return[Ve&255,Ve>>8&255]},q=function(Ve){return[Ve&255,Ve>>8&255,Ve>>16&255,Ve>>24&255]},ne=function(Ve){return Ve[3]<<24|Ve[2]<<16|Ve[1]<<8|Ve[0]},le=function(Ve){return ue(l(Ve),23,4)},ee=function(Ve){return ue(Ve,52,8)},re=function(Ve,Be,be){S(Ve[x],Be,{configurable:!0,get:function(){function Le(){return be(this)[Be]}return Le}()})},oe=function(Ve,Be,be,Le){var we=D(Ve),xe=m(be),Re=!!Le;if(xe+Be>we.byteLength)throw new G(M);var He=we.bytes,ye=xe+we.byteOffset,de=C(He,ye,ye+Be);return Re?de:Q(de)},fe=function(Ve,Be,be,Le,we,xe){var Re=D(Ve),He=m(be),ye=Le(+we),de=!!xe;if(He+Be>Re.byteLength)throw new G(M);for(var Ce=Re.bytes,ke=He+Re.byteOffset,ge=0;gewe)throw new G("Wrong offset");if(be=be===void 0?we-xe:c(be),xe+be>we)throw new G(T);E(this,{type:w,buffer:Ve,byteLength:be,byteOffset:xe,bytes:Le.bytes}),t||(this.buffer=Ve,this.byteLength=be,this.byteOffset=xe)}return he}(),W=F[x],t&&(re(R,"byteLength",O),re(F,"buffer",D),re(F,"byteLength",D),re(F,"byteOffset",D)),I(W,{getInt8:function(){function he(Ve){return oe(this,1,Ve)[0]<<24>>24}return he}(),getUint8:function(){function he(Ve){return oe(this,1,Ve)[0]}return he}(),getInt16:function(){function he(Ve){var Be=oe(this,2,Ve,arguments.length>1?arguments[1]:!1);return(Be[1]<<8|Be[0])<<16>>16}return he}(),getUint16:function(){function he(Ve){var Be=oe(this,2,Ve,arguments.length>1?arguments[1]:!1);return Be[1]<<8|Be[0]}return he}(),getInt32:function(){function he(Ve){return ne(oe(this,4,Ve,arguments.length>1?arguments[1]:!1))}return he}(),getUint32:function(){function he(Ve){return ne(oe(this,4,Ve,arguments.length>1?arguments[1]:!1))>>>0}return he}(),getFloat32:function(){function he(Ve){return ie(oe(this,4,Ve,arguments.length>1?arguments[1]:!1),23)}return he}(),getFloat64:function(){function he(Ve){return ie(oe(this,8,Ve,arguments.length>1?arguments[1]:!1),52)}return he}(),setInt8:function(){function he(Ve,Be){fe(this,1,Ve,pe,Be)}return he}(),setUint8:function(){function he(Ve,Be){fe(this,1,Ve,pe,Be)}return he}(),setInt16:function(){function he(Ve,Be){fe(this,2,Ve,te,Be,arguments.length>2?arguments[2]:!1)}return he}(),setUint16:function(){function he(Ve,Be){fe(this,2,Ve,te,Be,arguments.length>2?arguments[2]:!1)}return he}(),setInt32:function(){function he(Ve,Be){fe(this,4,Ve,q,Be,arguments.length>2?arguments[2]:!1)}return he}(),setUint32:function(){function he(Ve,Be){fe(this,4,Ve,q,Be,arguments.length>2?arguments[2]:!1)}return he}(),setFloat32:function(){function he(Ve,Be){fe(this,4,Ve,le,Be,arguments.length>2?arguments[2]:!1)}return he}(),setFloat64:function(){function he(Ve,Be){fe(this,8,Ve,ee,Be,arguments.length>2?arguments[2]:!1)}return he}()});else{var me=y&&P.name!==L;!k(function(){P(1)})||!k(function(){new P(-1)})||k(function(){return new P,new P(1.5),new P(NaN),P.length!==1||me&&!B})?(R=function(){function he(Ve){return g(this,j),v(new P(m(Ve)),this,R)}return he}(),R[x]=j,j.constructor=R,p(R,P)):me&&B&&b(P,"name",L),i&&s(W)!==z&&i(W,z);var Y=new F(new R(2)),ve=a(W.setInt8);Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),(Y.getInt8(0)||!Y.getInt8(1))&&I(W,{setInt8:function(){function he(Ve,Be){ve(this,Ve,Be<<24>>24)}return he}(),setUint8:function(){function he(Ve,Be){ve(this,Ve,Be<<24>>24)}return he}()},{unsafe:!0})}N(R,L),N(F,w),A.exports={ArrayBuffer:R,DataView:F}},71447:function(A,r,n){"use strict";var e=n(46771),a=n(13912),t=n(24760),o=n(95108),f=Math.min;A.exports=[].copyWithin||function(){function b(S,I){var k=e(this),g=t(k),u=a(S,g),c=a(I,g),m=arguments.length>2?arguments[2]:void 0,l=f((m===void 0?g:a(m,g))-c,g-u),d=1;for(c0;)c in k?k[u]=k[c]:o(k,u),u+=d,c+=d;return k}return b}()},88471:function(A,r,n){"use strict";var e=n(46771),a=n(13912),t=n(24760);A.exports=function(){function o(f){for(var b=e(this),S=t(b),I=arguments.length,k=a(I>1?arguments[1]:void 0,S),g=I>2?arguments[2]:void 0,u=g===void 0?S:a(g,S);u>k;)b[k++]=f;return b}return o}()},35601:function(A,r,n){"use strict";var e=n(22603).forEach,a=n(55528),t=a("forEach");A.exports=t?[].forEach:function(){function o(f){return e(this,f,arguments.length>1?arguments[1]:void 0)}return o}()},78008:function(A,r,n){"use strict";var e=n(24760);A.exports=function(a,t,o){for(var f=0,b=arguments.length>2?o:e(t),S=new a(b);b>f;)S[f]=t[f++];return S}},73174:function(A,r,n){"use strict";var e=n(75754),a=n(91495),t=n(46771),o=n(40125),f=n(76571),b=n(1031),S=n(24760),I=n(60102),k=n(77455),g=n(59201),u=Array;A.exports=function(){function c(m){var l=t(m),d=b(this),s=arguments.length,i=s>1?arguments[1]:void 0,h=i!==void 0;h&&(i=e(i,s>2?arguments[2]:void 0));var C=g(l),v=0,p,N,V,y,B,L;if(C&&!(this===u&&f(C)))for(N=d?new this:[],y=k(l,C),B=y.next;!(V=a(B,y)).done;v++)L=h?o(y,i,[V.value,v],!0):V.value,I(N,v,L);else for(p=S(l),N=d?new this(p):u(p);p>v;v++)L=h?i(l[v],v):l[v],I(N,v,L);return N.length=v,N}return c}()},14211:function(A,r,n){"use strict";var e=n(57591),a=n(13912),t=n(24760),o=function(b){return function(S,I,k){var g=e(S),u=t(g);if(u===0)return!b&&-1;var c=a(k,u),m;if(b&&I!==I){for(;u>c;)if(m=g[c++],m!==m)return!0}else for(;u>c;c++)if((b||c in g)&&g[c]===I)return b||c||0;return!b&&-1}};A.exports={includes:o(!0),indexOf:o(!1)}},22603:function(A,r,n){"use strict";var e=n(75754),a=n(67250),t=n(37457),o=n(46771),f=n(24760),b=n(57823),S=a([].push),I=function(g){var u=g===1,c=g===2,m=g===3,l=g===4,d=g===6,s=g===7,i=g===5||d;return function(h,C,v,p){for(var N=o(h),V=t(N),y=f(V),B=e(C,v),L=0,w=p||b,x=u?w(h,y):c||s?w(h,0):void 0,T,M;y>L;L++)if((i||L in V)&&(T=V[L],M=B(T,L,N),g))if(u)x[L]=M;else if(M)switch(g){case 3:return!0;case 5:return T;case 6:return L;case 2:S(x,T)}else switch(g){case 4:return!1;case 7:S(x,T)}return d?-1:m||l?l:x}};A.exports={forEach:I(0),map:I(1),filter:I(2),some:I(3),every:I(4),find:I(5),findIndex:I(6),filterReject:I(7)}},1325:function(A,r,n){"use strict";var e=n(61267),a=n(57591),t=n(61365),o=n(24760),f=n(55528),b=Math.min,S=[].lastIndexOf,I=!!S&&1/[1].lastIndexOf(1,-0)<0,k=f("lastIndexOf"),g=I||!k;A.exports=g?function(){function u(c){if(I)return e(S,this,arguments)||0;var m=a(this),l=o(m);if(l===0)return-1;var d=l-1;for(arguments.length>1&&(d=b(d,t(arguments[1]))),d<0&&(d=l+d);d>=0;d--)if(d in m&&m[d]===c)return d||0;return-1}return u}():S},44091:function(A,r,n){"use strict";var e=n(40033),a=n(24697),t=n(5026),o=a("species");A.exports=function(f){return t>=51||!e(function(){var b=[],S=b.constructor={};return S[o]=function(){return{foo:1}},b[f](Boolean).foo!==1})}},55528:function(A,r,n){"use strict";var e=n(40033);A.exports=function(a,t){var o=[][a];return!!o&&e(function(){o.call(null,t||function(){return 1},1)})}},56844:function(A,r,n){"use strict";var e=n(10320),a=n(46771),t=n(37457),o=n(24760),f=TypeError,b="Reduce of empty array with no initial value",S=function(k){return function(g,u,c,m){var l=a(g),d=t(l),s=o(l);if(e(u),s===0&&c<2)throw new f(b);var i=k?s-1:0,h=k?-1:1;if(c<2)for(;;){if(i in d){m=d[i],i+=h;break}if(i+=h,k?i<0:s<=i)throw new f(b)}for(;k?i>=0:s>i;i+=h)i in d&&(m=u(m,d[i],i,l));return m}};A.exports={left:S(!1),right:S(!0)}},13345:function(A,r,n){"use strict";var e=n(58310),a=n(37386),t=TypeError,o=Object.getOwnPropertyDescriptor,f=e&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(b){return b instanceof TypeError}}();A.exports=f?function(b,S){if(a(b)&&!o(b,"length").writable)throw new t("Cannot set read only .length");return b.length=S}:function(b,S){return b.length=S}},54602:function(A,r,n){"use strict";var e=n(67250);A.exports=e([].slice)},90274:function(A,r,n){"use strict";var e=n(54602),a=Math.floor,t=function o(f,b){var S=f.length;if(S<8)for(var I=1,k,g;I0;)f[g]=f[--g];g!==I++&&(f[g]=k)}else for(var u=a(S/2),c=o(e(f,0,u),b),m=o(e(f,u),b),l=c.length,d=m.length,s=0,i=0;s1?arguments[1]:void 0),M;M=M?M.next:x.first;)for(T(M.value,M.key,this);M&&M.removed;)M=M.previous}return L}(),has:function(){function L(w){return!!B(this,w)}return L}()}),t(N,C?{get:function(){function L(w){var x=B(this,w);return x&&x.value}return L}(),set:function(){function L(w,x){return y(this,w===0?0:w,x)}return L}()}:{add:function(){function L(w){return y(this,w=w===0?0:w,w)}return L}()}),u&&a(N,"size",{configurable:!0,get:function(){function L(){return V(this).size}return L}()}),p}return s}(),setStrong:function(){function s(i,h,C){var v=h+" Iterator",p=d(h),N=d(v);I(i,h,function(V,y){l(this,{type:v,target:V,state:p(V),kind:y,last:void 0})},function(){for(var V=N(this),y=V.kind,B=V.last;B&&B.removed;)B=B.previous;return!V.target||!(V.last=B=B?B.next:V.state.first)?(V.target=void 0,k(void 0,!0)):k(y==="keys"?B.key:y==="values"?B.value:[B.key,B.value],!1)},C?"entries":"values",!C,!0),g(h)}return s}()}},39895:function(A,r,n){"use strict";var e=n(67250),a=n(30145),t=n(81969).getWeakData,o=n(60077),f=n(30365),b=n(42871),S=n(77568),I=n(49450),k=n(22603),g=n(45299),u=n(5419),c=u.set,m=u.getterFor,l=k.find,d=k.findIndex,s=e([].splice),i=0,h=function(N){return N.frozen||(N.frozen=new C)},C=function(){this.entries=[]},v=function(N,V){return l(N.entries,function(y){return y[0]===V})};C.prototype={get:function(){function p(N){var V=v(this,N);if(V)return V[1]}return p}(),has:function(){function p(N){return!!v(this,N)}return p}(),set:function(){function p(N,V){var y=v(this,N);y?y[1]=V:this.entries.push([N,V])}return p}(),delete:function(){function p(N){var V=d(this.entries,function(y){return y[0]===N});return~V&&s(this.entries,V,1),!!~V}return p}()},A.exports={getConstructor:function(){function p(N,V,y,B){var L=N(function(M,O){o(M,w),c(M,{type:V,id:i++,frozen:void 0}),b(O)||I(O,M[B],{that:M,AS_ENTRIES:y})}),w=L.prototype,x=m(V),T=function(){function M(O,D,E){var P=x(O),R=t(f(D),!0);return R===!0?h(P).set(D,E):R[P.id]=E,O}return M}();return a(w,{delete:function(){function M(O){var D=x(this);if(!S(O))return!1;var E=t(O);return E===!0?h(D).delete(O):E&&g(E,D.id)&&delete E[D.id]}return M}(),has:function(){function M(O){var D=x(this);if(!S(O))return!1;var E=t(O);return E===!0?h(D).has(O):E&&g(E,D.id)}return M}()}),a(w,y?{get:function(){function M(O){var D=x(this);if(S(O)){var E=t(O);return E===!0?h(D).get(O):E?E[D.id]:void 0}}return M}(),set:function(){function M(O,D){return T(this,O,D)}return M}()}:{add:function(){function M(O){return T(this,O,!0)}return M}()}),L}return p}()}},45150:function(A,r,n){"use strict";var e=n(63964),a=n(74685),t=n(67250),o=n(41314),f=n(55938),b=n(81969),S=n(49450),I=n(60077),k=n(55747),g=n(42871),u=n(77568),c=n(40033),m=n(92490),l=n(84925),d=n(5781);A.exports=function(s,i,h){var C=s.indexOf("Map")!==-1,v=s.indexOf("Weak")!==-1,p=C?"set":"add",N=a[s],V=N&&N.prototype,y=N,B={},L=function(P){var R=t(V[P]);f(V,P,P==="add"?function(){function j(F){return R(this,F===0?0:F),this}return j}():P==="delete"?function(j){return v&&!u(j)?!1:R(this,j===0?0:j)}:P==="get"?function(){function j(F){return v&&!u(F)?void 0:R(this,F===0?0:F)}return j}():P==="has"?function(){function j(F){return v&&!u(F)?!1:R(this,F===0?0:F)}return j}():function(){function j(F,W){return R(this,F===0?0:F,W),this}return j}())},w=o(s,!k(N)||!(v||V.forEach&&!c(function(){new N().entries().next()})));if(w)y=h.getConstructor(i,s,C,p),b.enable();else if(o(s,!0)){var x=new y,T=x[p](v?{}:-0,1)!==x,M=c(function(){x.has(1)}),O=m(function(E){new N(E)}),D=!v&&c(function(){for(var E=new N,P=5;P--;)E[p](P,P);return!E.has(-0)});O||(y=i(function(E,P){I(E,V);var R=d(new N,E,y);return g(P)||S(P,R[p],{that:R,AS_ENTRIES:C}),R}),y.prototype=V,V.constructor=y),(M||D)&&(L("delete"),L("has"),C&&L("get")),(D||T)&&L(p),v&&V.clear&&delete V.clear}return B[s]=y,e({global:!0,constructor:!0,forced:y!==N},B),l(y,s),v||h.setStrong(y,s,C),y}},5774:function(A,r,n){"use strict";var e=n(45299),a=n(97921),t=n(27193),o=n(74595);A.exports=function(f,b,S){for(var I=a(b),k=o.f,g=t.f,u=0;u"+g+""+S+">"}},5959:function(A){"use strict";A.exports=function(r,n){return{value:r,done:n}}},37909:function(A,r,n){"use strict";var e=n(58310),a=n(74595),t=n(87458);A.exports=e?function(o,f,b){return a.f(o,f,t(1,b))}:function(o,f,b){return o[f]=b,o}},87458:function(A){"use strict";A.exports=function(r,n){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:n}}},60102:function(A,r,n){"use strict";var e=n(58310),a=n(74595),t=n(87458);A.exports=function(o,f,b){e?a.f(o,f,t(0,b)):o[f]=b}},67206:function(A,r,n){"use strict";var e=n(67250),a=n(40033),t=n(24051).start,o=RangeError,f=isFinite,b=Math.abs,S=Date.prototype,I=S.toISOString,k=e(S.getTime),g=e(S.getUTCDate),u=e(S.getUTCFullYear),c=e(S.getUTCHours),m=e(S.getUTCMilliseconds),l=e(S.getUTCMinutes),d=e(S.getUTCMonth),s=e(S.getUTCSeconds);A.exports=a(function(){return I.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!a(function(){I.call(new Date(NaN))})?function(){function i(){if(!f(k(this)))throw new o("Invalid time value");var h=this,C=u(h),v=m(h),p=C<0?"-":C>9999?"+":"";return p+t(b(C),p?6:4,0)+"-"+t(d(h)+1,2,0)+"-"+t(g(h),2,0)+"T"+t(c(h),2,0)+":"+t(l(h),2,0)+":"+t(s(h),2,0)+"."+t(v,3,0)+"Z"}return i}():I},10886:function(A,r,n){"use strict";var e=n(30365),a=n(13396),t=TypeError;A.exports=function(o){if(e(this),o==="string"||o==="default")o="string";else if(o!=="number")throw new t("Incorrect hint");return a(this,o)}},73936:function(A,r,n){"use strict";var e=n(20001),a=n(74595);A.exports=function(t,o,f){return f.get&&e(f.get,o,{getter:!0}),f.set&&e(f.set,o,{setter:!0}),a.f(t,o,f)}},55938:function(A,r,n){"use strict";var e=n(55747),a=n(74595),t=n(20001),o=n(18231);A.exports=function(f,b,S,I){I||(I={});var k=I.enumerable,g=I.name!==void 0?I.name:b;if(e(S)&&t(S,g,I),I.global)k?f[b]=S:o(b,S);else{try{I.unsafe?f[b]&&(k=!0):delete f[b]}catch(u){}k?f[b]=S:a.f(f,b,{value:S,enumerable:!1,configurable:!I.nonConfigurable,writable:!I.nonWritable})}return f}},30145:function(A,r,n){"use strict";var e=n(55938);A.exports=function(a,t,o){for(var f in t)e(a,f,t[f],o);return a}},18231:function(A,r,n){"use strict";var e=n(74685),a=Object.defineProperty;A.exports=function(t,o){try{a(e,t,{value:o,configurable:!0,writable:!0})}catch(f){e[t]=o}return o}},95108:function(A,r,n){"use strict";var e=n(89393),a=TypeError;A.exports=function(t,o){if(!delete t[o])throw new a("Cannot delete property "+e(o)+" of "+e(t))}},58310:function(A,r,n){"use strict";var e=n(40033);A.exports=!e(function(){return Object.defineProperty({},1,{get:function(){function a(){return 7}return a}()})[1]!==7})},12689:function(A,r,n){"use strict";var e=n(74685),a=n(77568),t=e.document,o=a(t)&&a(t.createElement);A.exports=function(f){return o?t.createElement(f):{}}},21291:function(A){"use strict";var r=TypeError,n=9007199254740991;A.exports=function(e){if(e>n)throw r("Maximum allowed index exceeded");return e}},652:function(A,r,n){"use strict";var e=n(63318),a=e.match(/firefox\/(\d+)/i);A.exports=!!a&&+a[1]},8180:function(A,r,n){"use strict";var e=n(73730),a=n(81702);A.exports=!e&&!a&&typeof window=="object"&&typeof document=="object"},49197:function(A){"use strict";A.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"},73730:function(A){"use strict";A.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},19228:function(A,r,n){"use strict";var e=n(63318);A.exports=/MSIE|Trident/.test(e)},51802:function(A,r,n){"use strict";var e=n(63318);A.exports=/ipad|iphone|ipod/i.test(e)&&typeof Pebble!="undefined"},83433:function(A,r,n){"use strict";var e=n(63318);A.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(e)},81702:function(A,r,n){"use strict";var e=n(74685),a=n(7462);A.exports=a(e.process)==="process"},63383:function(A,r,n){"use strict";var e=n(63318);A.exports=/web0s(?!.*chrome)/i.test(e)},63318:function(A){"use strict";A.exports=typeof navigator!="undefined"&&String(navigator.userAgent)||""},5026:function(A,r,n){"use strict";var e=n(74685),a=n(63318),t=e.process,o=e.Deno,f=t&&t.versions||o&&o.version,b=f&&f.v8,S,I;b&&(S=b.split("."),I=S[0]>0&&S[0]<4?1:+(S[0]+S[1])),!I&&a&&(S=a.match(/Edge\/(\d+)/),(!S||S[1]>=74)&&(S=a.match(/Chrome\/(\d+)/),S&&(I=+S[1]))),A.exports=I},9342:function(A,r,n){"use strict";var e=n(63318),a=e.match(/AppleWebKit\/(\d+)\./);A.exports=!!a&&+a[1]},89453:function(A){"use strict";A.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},63964:function(A,r,n){"use strict";var e=n(74685),a=n(27193).f,t=n(37909),o=n(55938),f=n(18231),b=n(5774),S=n(41314);A.exports=function(I,k){var g=I.target,u=I.global,c=I.stat,m,l,d,s,i,h;if(u?l=e:c?l=e[g]||f(g,{}):l=e[g]&&e[g].prototype,l)for(d in k){if(i=k[d],I.dontCallGetSet?(h=a(l,d),s=h&&h.value):s=l[d],m=S(u?d:g+(c?".":"#")+d,I.forced),!m&&s!==void 0){if(typeof i==typeof s)continue;b(i,s)}(I.sham||s&&s.sham)&&t(i,"sham",!0),o(l,d,i,I)}}},40033:function(A){"use strict";A.exports=function(r){try{return!!r()}catch(n){return!0}}},79942:function(A,r,n){"use strict";n(79669);var e=n(91495),a=n(55938),t=n(14489),o=n(40033),f=n(24697),b=n(37909),S=f("species"),I=RegExp.prototype;A.exports=function(k,g,u,c){var m=f(k),l=!o(function(){var h={};return h[m]=function(){return 7},""[k](h)!==7}),d=l&&!o(function(){var h=!1,C=/a/;return k==="split"&&(C={},C.constructor={},C.constructor[S]=function(){return C},C.flags="",C[m]=/./[m]),C.exec=function(){return h=!0,null},C[m](""),!h});if(!l||!d||u){var s=/./[m],i=g(m,""[k],function(h,C,v,p,N){var V=C.exec;return V===t||V===I.exec?l&&!N?{done:!0,value:e(s,C,v,p)}:{done:!0,value:e(h,v,C,p)}:{done:!1}});a(String.prototype,k,i[0]),a(I,m,i[1])}c&&b(I[m],"sham",!0)}},65561:function(A,r,n){"use strict";var e=n(37386),a=n(24760),t=n(21291),o=n(75754),f=function b(S,I,k,g,u,c,m,l){for(var d=u,s=0,i=m?o(m,l):!1,h,C;s0&&e(h)?(C=a(h),d=b(S,I,h,C,d,c-1)-1):(t(d+1),S[d]=h),d++),s++;return d};A.exports=f},50730:function(A,r,n){"use strict";var e=n(40033);A.exports=!e(function(){return Object.isExtensible(Object.preventExtensions({}))})},61267:function(A,r,n){"use strict";var e=n(55050),a=Function.prototype,t=a.apply,o=a.call;A.exports=typeof Reflect=="object"&&Reflect.apply||(e?o.bind(t):function(){return o.apply(t,arguments)})},75754:function(A,r,n){"use strict";var e=n(71138),a=n(10320),t=n(55050),o=e(e.bind);A.exports=function(f,b){return a(f),b===void 0?f:t?o(f,b):function(){return f.apply(b,arguments)}}},55050:function(A,r,n){"use strict";var e=n(40033);A.exports=!e(function(){var a=function(){}.bind();return typeof a!="function"||a.hasOwnProperty("prototype")})},66284:function(A,r,n){"use strict";var e=n(67250),a=n(10320),t=n(77568),o=n(45299),f=n(54602),b=n(55050),S=Function,I=e([].concat),k=e([].join),g={},u=function(m,l,d){if(!o(g,l)){for(var s=[],i=0;i]*>)/g,I=/\$([$&'`]|\d{1,2})/g;A.exports=function(k,g,u,c,m,l){var d=u+k.length,s=c.length,i=I;return m!==void 0&&(m=a(m),i=S),f(l,i,function(h,C){var v;switch(o(C,0)){case"$":return"$";case"&":return k;case"`":return b(g,0,u);case"'":return b(g,d);case"<":v=m[b(C,1,-1)];break;default:var p=+C;if(p===0)return h;if(p>s){var N=t(p/10);return N===0?h:N<=s?c[N-1]===void 0?o(C,1):c[N-1]+o(C,1):h}v=c[p-1]}return v===void 0?"":v})}},74685:function(A,r,n){"use strict";var e=function(t){return t&&t.Math===Math&&t};A.exports=e(typeof globalThis=="object"&&globalThis)||e(typeof window=="object"&&window)||e(typeof self=="object"&&self)||e(typeof n.g=="object"&&n.g)||e(!1)||function(){return this}()||Function("return this")()},45299:function(A,r,n){"use strict";var e=n(67250),a=n(46771),t=e({}.hasOwnProperty);A.exports=Object.hasOwn||function(){function o(f,b){return t(a(f),b)}return o}()},79195:function(A){"use strict";A.exports={}},72259:function(A){"use strict";A.exports=function(r,n){try{arguments.length}catch(e){}}},5315:function(A,r,n){"use strict";var e=n(4009);A.exports=e("document","documentElement")},36223:function(A,r,n){"use strict";var e=n(58310),a=n(40033),t=n(12689);A.exports=!e&&!a(function(){return Object.defineProperty(t("div"),"a",{get:function(){function o(){return 7}return o}()}).a!==7})},91784:function(A){"use strict";var r=Array,n=Math.abs,e=Math.pow,a=Math.floor,t=Math.log,o=Math.LN2,f=function(I,k,g){var u=r(g),c=g*8-k-1,m=(1<>1,d=k===23?e(2,-24)-e(2,-77):0,s=I<0||I===0&&1/I<0?1:0,i=0,h,C,v;for(I=n(I),I!==I||I===1/0?(C=I!==I?1:0,h=m):(h=a(t(I)/o),v=e(2,-h),I*v<1&&(h--,v*=2),h+l>=1?I+=d/v:I+=d*e(2,1-l),I*v>=2&&(h++,v/=2),h+l>=m?(C=0,h=m):h+l>=1?(C=(I*v-1)*e(2,k),h+=l):(C=I*e(2,l-1)*e(2,k),h=0));k>=8;)u[i++]=C&255,C/=256,k-=8;for(h=h<0;)u[i++]=h&255,h/=256,c-=8;return u[--i]|=s*128,u},b=function(I,k){var g=I.length,u=g*8-k-1,c=(1<>1,l=u-7,d=g-1,s=I[d--],i=s&127,h;for(s>>=7;l>0;)i=i*256+I[d--],l-=8;for(h=i&(1<<-l)-1,i>>=-l,l+=k;l>0;)h=h*256+I[d--],l-=8;if(i===0)i=1-m;else{if(i===c)return h?NaN:s?-1/0:1/0;h+=e(2,k),i-=m}return(s?-1:1)*h*e(2,i-k)};A.exports={pack:f,unpack:b}},37457:function(A,r,n){"use strict";var e=n(67250),a=n(40033),t=n(7462),o=Object,f=e("".split);A.exports=a(function(){return!o("z").propertyIsEnumerable(0)})?function(b){return t(b)==="String"?f(b,""):o(b)}:o},5781:function(A,r,n){"use strict";var e=n(55747),a=n(77568),t=n(76649);A.exports=function(o,f,b){var S,I;return t&&e(S=f.constructor)&&S!==b&&a(I=S.prototype)&&I!==b.prototype&&t(o,I),o}},40492:function(A,r,n){"use strict";var e=n(67250),a=n(55747),t=n(40095),o=e(Function.toString);a(t.inspectSource)||(t.inspectSource=function(f){return o(f)}),A.exports=t.inspectSource},81969:function(A,r,n){"use strict";var e=n(63964),a=n(67250),t=n(79195),o=n(77568),f=n(45299),b=n(74595).f,S=n(37310),I=n(81644),k=n(81834),g=n(16738),u=n(50730),c=!1,m=g("meta"),l=0,d=function(N){b(N,m,{value:{objectID:"O"+l++,weakData:{}}})},s=function(N,V){if(!o(N))return typeof N=="symbol"?N:(typeof N=="string"?"S":"P")+N;if(!f(N,m)){if(!k(N))return"F";if(!V)return"E";d(N)}return N[m].objectID},i=function(N,V){if(!f(N,m)){if(!k(N))return!0;if(!V)return!1;d(N)}return N[m].weakData},h=function(N){return u&&c&&k(N)&&!f(N,m)&&d(N),N},C=function(){v.enable=function(){},c=!0;var N=S.f,V=a([].splice),y={};y[m]=1,N(y).length&&(S.f=function(B){for(var L=N(B),w=0,x=L.length;wB;B++)if(w=O(l[B]),w&&S(m,w))return w;return new c(!1)}V=I(l,y)}for(x=C?l.next:V.next;!(T=a(x,V)).done;){try{w=O(T.value)}catch(D){g(V,"throw",D)}if(typeof w=="object"&&w&&S(m,w))return w}return new c(!1)}},28649:function(A,r,n){"use strict";var e=n(91495),a=n(30365),t=n(78060);A.exports=function(o,f,b){var S,I;a(o);try{if(S=t(o,"return"),!S){if(f==="throw")throw b;return b}S=e(S,o)}catch(k){I=!0,S=k}if(f==="throw")throw b;if(I)throw S;return a(S),b}},5656:function(A,r,n){"use strict";var e=n(67635).IteratorPrototype,a=n(80674),t=n(87458),o=n(84925),f=n(83967),b=function(){return this};A.exports=function(S,I,k,g){var u=I+" Iterator";return S.prototype=a(e,{next:t(+!g,k)}),o(S,u,!1,!0),f[u]=b,S}},65574:function(A,r,n){"use strict";var e=n(63964),a=n(91495),t=n(4493),o=n(70520),f=n(55747),b=n(5656),S=n(36917),I=n(76649),k=n(84925),g=n(37909),u=n(55938),c=n(24697),m=n(83967),l=n(67635),d=o.PROPER,s=o.CONFIGURABLE,i=l.IteratorPrototype,h=l.BUGGY_SAFARI_ITERATORS,C=c("iterator"),v="keys",p="values",N="entries",V=function(){return this};A.exports=function(y,B,L,w,x,T,M){b(L,B,w);var O=function(J){if(J===x&&j)return j;if(!h&&J&&J in P)return P[J];switch(J){case v:return function(){function Q(){return new L(this,J)}return Q}();case p:return function(){function Q(){return new L(this,J)}return Q}();case N:return function(){function Q(){return new L(this,J)}return Q}()}return function(){return new L(this)}},D=B+" Iterator",E=!1,P=y.prototype,R=P[C]||P["@@iterator"]||x&&P[x],j=!h&&R||O(x),F=B==="Array"&&P.entries||R,W,z,K;if(F&&(W=S(F.call(new y)),W!==Object.prototype&&W.next&&(!t&&S(W)!==i&&(I?I(W,i):f(W[C])||u(W,C,V)),k(W,D,!0,!0),t&&(m[D]=V))),d&&x===p&&R&&R.name!==p&&(!t&&s?g(P,"name",p):(E=!0,j=function(){function G(){return a(R,this)}return G}())),x)if(z={values:O(p),keys:T?j:O(v),entries:O(N)},M)for(K in z)(h||E||!(K in P))&&u(P,K,z[K]);else e({target:B,proto:!0,forced:h||E},z);return(!t||M)&&P[C]!==j&&u(P,C,j,{name:x}),m[B]=j,z}},67635:function(A,r,n){"use strict";var e=n(40033),a=n(55747),t=n(77568),o=n(80674),f=n(36917),b=n(55938),S=n(24697),I=n(4493),k=S("iterator"),g=!1,u,c,m;[].keys&&(m=[].keys(),"next"in m?(c=f(f(m)),c!==Object.prototype&&(u=c)):g=!0);var l=!t(u)||e(function(){var d={};return u[k].call(d)!==d});l?u={}:I&&(u=o(u)),a(u[k])||b(u,k,function(){return this}),A.exports={IteratorPrototype:u,BUGGY_SAFARI_ITERATORS:g}},83967:function(A){"use strict";A.exports={}},24760:function(A,r,n){"use strict";var e=n(10188);A.exports=function(a){return e(a.length)}},20001:function(A,r,n){"use strict";var e=n(67250),a=n(40033),t=n(55747),o=n(45299),f=n(58310),b=n(70520).CONFIGURABLE,S=n(40492),I=n(5419),k=I.enforce,g=I.get,u=String,c=Object.defineProperty,m=e("".slice),l=e("".replace),d=e([].join),s=f&&!a(function(){return c(function(){},"length",{value:8}).length!==8}),i=String(String).split("String"),h=A.exports=function(C,v,p){m(u(v),0,7)==="Symbol("&&(v="["+l(u(v),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),p&&p.getter&&(v="get "+v),p&&p.setter&&(v="set "+v),(!o(C,"name")||b&&C.name!==v)&&(f?c(C,"name",{value:v,configurable:!0}):C.name=v),s&&p&&o(p,"arity")&&C.length!==p.arity&&c(C,"length",{value:p.arity});try{p&&o(p,"constructor")&&p.constructor?f&&c(C,"prototype",{writable:!1}):C.prototype&&(C.prototype=void 0)}catch(V){}var N=k(C);return o(N,"source")||(N.source=d(i,typeof v=="string"?v:"")),C};Function.prototype.toString=h(function(){function C(){return t(this)&&g(this).source||S(this)}return C}(),"toString")},82040:function(A){"use strict";var r=Math.expm1,n=Math.exp;A.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||r(-2e-17)!==-2e-17?function(){function e(a){var t=+a;return t===0?t:t>-1e-6&&t<1e-6?t+t*t/2:n(t)-1}return e}():r},14950:function(A,r,n){"use strict";var e=n(22172),a=Math.abs,t=2220446049250313e-31,o=1/t,f=function(S){return S+o-o};A.exports=function(b,S,I,k){var g=+b,u=a(g),c=e(g);if(uI||l!==l?c*(1/0):c*l}},95867:function(A,r,n){"use strict";var e=n(14950),a=11920928955078125e-23,t=34028234663852886e22,o=11754943508222875e-54;A.exports=Math.fround||function(){function f(b){return e(b,a,t,o)}return f}()},75002:function(A){"use strict";var r=Math.log,n=Math.LOG10E;A.exports=Math.log10||function(){function e(a){return r(a)*n}return e}()},90874:function(A){"use strict";var r=Math.log;A.exports=Math.log1p||function(){function n(e){var a=+e;return a>-1e-8&&a<1e-8?a-a*a/2:r(1+a)}return n}()},22172:function(A){"use strict";A.exports=Math.sign||function(){function r(n){var e=+n;return e===0||e!==e?e:e<0?-1:1}return r}()},21119:function(A){"use strict";var r=Math.ceil,n=Math.floor;A.exports=Math.trunc||function(){function e(a){var t=+a;return(t>0?n:r)(t)}return e}()},37713:function(A,r,n){"use strict";var e=n(74685),a=n(44915),t=n(75754),o=n(60375).set,f=n(9547),b=n(83433),S=n(51802),I=n(63383),k=n(81702),g=e.MutationObserver||e.WebKitMutationObserver,u=e.document,c=e.process,m=e.Promise,l=a("queueMicrotask"),d,s,i,h,C;if(!l){var v=new f,p=function(){var V,y;for(k&&(V=c.domain)&&V.exit();y=v.get();)try{y()}catch(B){throw v.head&&d(),B}V&&V.enter()};!b&&!k&&!I&&g&&u?(s=!0,i=u.createTextNode(""),new g(p).observe(i,{characterData:!0}),d=function(){i.data=s=!s}):!S&&m&&m.resolve?(h=m.resolve(void 0),h.constructor=m,C=t(h.then,h),d=function(){C(p)}):k?d=function(){c.nextTick(p)}:(o=t(o,e),d=function(){o(p)}),l=function(V){v.head||d(),v.add(V)}}A.exports=l},81837:function(A,r,n){"use strict";var e=n(10320),a=TypeError,t=function(f){var b,S;this.promise=new f(function(I,k){if(b!==void 0||S!==void 0)throw new a("Bad Promise constructor");b=I,S=k}),this.resolve=e(b),this.reject=e(S)};A.exports.f=function(o){return new t(o)}},86213:function(A,r,n){"use strict";var e=n(72586),a=TypeError;A.exports=function(t){if(e(t))throw new a("The method doesn't accept regular expressions");return t}},3294:function(A,r,n){"use strict";var e=n(74685),a=e.isFinite;A.exports=Number.isFinite||function(){function t(o){return typeof o=="number"&&a(o)}return t}()},28506:function(A,r,n){"use strict";var e=n(74685),a=n(40033),t=n(67250),o=n(12605),f=n(92648).trim,b=n(4198),S=t("".charAt),I=e.parseFloat,k=e.Symbol,g=k&&k.iterator,u=1/I(b+"-0")!==-1/0||g&&!a(function(){I(Object(g))});A.exports=u?function(){function c(m){var l=f(o(m)),d=I(l);return d===0&&S(l,0)==="-"?-0:d}return c}():I},13693:function(A,r,n){"use strict";var e=n(74685),a=n(40033),t=n(67250),o=n(12605),f=n(92648).trim,b=n(4198),S=e.parseInt,I=e.Symbol,k=I&&I.iterator,g=/^[+-]?0x/i,u=t(g.exec),c=S(b+"08")!==8||S(b+"0x16")!==22||k&&!a(function(){S(Object(k))});A.exports=c?function(){function m(l,d){var s=f(o(l));return S(s,d>>>0||(u(g,s)?16:10))}return m}():S},41143:function(A,r,n){"use strict";var e=n(58310),a=n(67250),t=n(91495),o=n(40033),f=n(18450),b=n(89235),S=n(12867),I=n(46771),k=n(37457),g=Object.assign,u=Object.defineProperty,c=a([].concat);A.exports=!g||o(function(){if(e&&g({b:1},g(u({},"a",{enumerable:!0,get:function(){function i(){u(this,"b",{value:3,enumerable:!1})}return i}()}),{b:2})).b!==1)return!0;var m={},l={},d=Symbol("assign detection"),s="abcdefghijklmnopqrst";return m[d]=7,s.split("").forEach(function(i){l[i]=i}),g({},m)[d]!==7||f(g({},l)).join("")!==s})?function(){function m(l,d){for(var s=I(l),i=arguments.length,h=1,C=b.f,v=S.f;i>h;)for(var p=k(arguments[h++]),N=C?c(f(p),C(p)):f(p),V=N.length,y=0,B;V>y;)B=N[y++],(!e||t(v,p,B))&&(s[B]=p[B]);return s}return m}():g},80674:function(A,r,n){"use strict";var e=n(30365),a=n(24239),t=n(89453),o=n(79195),f=n(5315),b=n(12689),S=n(19417),I=">",k="<",g="prototype",u="script",c=S("IE_PROTO"),m=function(){},l=function(v){return k+u+I+v+k+"/"+u+I},d=function(v){v.write(l("")),v.close();var p=v.parentWindow.Object;return v=null,p},s=function(){var v=b("iframe"),p="java"+u+":",N;return v.style.display="none",f.appendChild(v),v.src=String(p),N=v.contentWindow.document,N.open(),N.write(l("document.F=Object")),N.close(),N.F},i,h=function(){try{i=new ActiveXObject("htmlfile")}catch(p){}h=typeof document!="undefined"?document.domain&&i?d(i):s():d(i);for(var v=t.length;v--;)delete h[g][t[v]];return h()};o[c]=!0,A.exports=Object.create||function(){function C(v,p){var N;return v!==null?(m[g]=e(v),N=new m,m[g]=null,N[c]=v):N=h(),p===void 0?N:a.f(N,p)}return C}()},24239:function(A,r,n){"use strict";var e=n(58310),a=n(80944),t=n(74595),o=n(30365),f=n(57591),b=n(18450);r.f=e&&!a?Object.defineProperties:function(){function S(I,k){o(I);for(var g=f(k),u=b(k),c=u.length,m=0,l;c>m;)t.f(I,l=u[m++],g[l]);return I}return S}()},74595:function(A,r,n){"use strict";var e=n(58310),a=n(36223),t=n(80944),o=n(30365),f=n(767),b=TypeError,S=Object.defineProperty,I=Object.getOwnPropertyDescriptor,k="enumerable",g="configurable",u="writable";r.f=e?t?function(){function c(m,l,d){if(o(m),l=f(l),o(d),typeof m=="function"&&l==="prototype"&&"value"in d&&u in d&&!d[u]){var s=I(m,l);s&&s[u]&&(m[l]=d.value,d={configurable:g in d?d[g]:s[g],enumerable:k in d?d[k]:s[k],writable:!1})}return S(m,l,d)}return c}():S:function(){function c(m,l,d){if(o(m),l=f(l),o(d),a)try{return S(m,l,d)}catch(s){}if("get"in d||"set"in d)throw new b("Accessors not supported");return"value"in d&&(m[l]=d.value),m}return c}()},27193:function(A,r,n){"use strict";var e=n(58310),a=n(91495),t=n(12867),o=n(87458),f=n(57591),b=n(767),S=n(45299),I=n(36223),k=Object.getOwnPropertyDescriptor;r.f=e?k:function(){function g(u,c){if(u=f(u),c=b(c),I)try{return k(u,c)}catch(m){}if(S(u,c))return o(!a(t.f,u,c),u[c])}return g}()},81644:function(A,r,n){"use strict";var e=n(7462),a=n(57591),t=n(37310).f,o=n(54602),f=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],b=function(I){try{return t(I)}catch(k){return o(f)}};A.exports.f=function(){function S(I){return f&&e(I)==="Window"?b(I):t(a(I))}return S}()},37310:function(A,r,n){"use strict";var e=n(53726),a=n(89453),t=a.concat("length","prototype");r.f=Object.getOwnPropertyNames||function(){function o(f){return e(f,t)}return o}()},89235:function(A,r){"use strict";r.f=Object.getOwnPropertySymbols},36917:function(A,r,n){"use strict";var e=n(45299),a=n(55747),t=n(46771),o=n(19417),f=n(9225),b=o("IE_PROTO"),S=Object,I=S.prototype;A.exports=f?S.getPrototypeOf:function(k){var g=t(k);if(e(g,b))return g[b];var u=g.constructor;return a(u)&&g instanceof u?u.prototype:g instanceof S?I:null}},81834:function(A,r,n){"use strict";var e=n(40033),a=n(77568),t=n(7462),o=n(3782),f=Object.isExtensible,b=e(function(){f(1)});A.exports=b||o?function(){function S(I){return!a(I)||o&&t(I)==="ArrayBuffer"?!1:f?f(I):!0}return S}():f},21287:function(A,r,n){"use strict";var e=n(67250);A.exports=e({}.isPrototypeOf)},53726:function(A,r,n){"use strict";var e=n(67250),a=n(45299),t=n(57591),o=n(14211).indexOf,f=n(79195),b=e([].push);A.exports=function(S,I){var k=t(S),g=0,u=[],c;for(c in k)!a(f,c)&&a(k,c)&&b(u,c);for(;I.length>g;)a(k,c=I[g++])&&(~o(u,c)||b(u,c));return u}},18450:function(A,r,n){"use strict";var e=n(53726),a=n(89453);A.exports=Object.keys||function(){function t(o){return e(o,a)}return t}()},12867:function(A,r){"use strict";var n={}.propertyIsEnumerable,e=Object.getOwnPropertyDescriptor,a=e&&!n.call({1:2},1);r.f=a?function(){function t(o){var f=e(this,o);return!!f&&f.enumerable}return t}():n},57377:function(A,r,n){"use strict";var e=n(4493),a=n(74685),t=n(40033),o=n(9342);A.exports=e||!t(function(){if(!(o&&o<535)){var f=Math.random();__defineSetter__.call(null,f,function(){}),delete a[f]}})},76649:function(A,r,n){"use strict";var e=n(38656),a=n(77568),t=n(16952),o=n(35908);A.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var f=!1,b={},S;try{S=e(Object.prototype,"__proto__","set"),S(b,[]),f=b instanceof Array}catch(I){}return function(){function I(k,g){return t(k),o(g),a(k)&&(f?S(k,g):k.__proto__=g),k}return I}()}():void 0)},70915:function(A,r,n){"use strict";var e=n(58310),a=n(40033),t=n(67250),o=n(36917),f=n(18450),b=n(57591),S=n(12867).f,I=t(S),k=t([].push),g=e&&a(function(){var c=Object.create(null);return c[2]=2,!I(c,2)}),u=function(m){return function(l){for(var d=b(l),s=f(d),i=g&&o(d)===null,h=s.length,C=0,v=[],p;h>C;)p=s[C++],(!e||(i?p in d:I(d,p)))&&k(v,m?[p,d[p]]:d[p]);return v}};A.exports={entries:u(!0),values:u(!1)}},2509:function(A,r,n){"use strict";var e=n(2650),a=n(2281);A.exports=e?{}.toString:function(){function t(){return"[object "+a(this)+"]"}return t}()},13396:function(A,r,n){"use strict";var e=n(91495),a=n(55747),t=n(77568),o=TypeError;A.exports=function(f,b){var S,I;if(b==="string"&&a(S=f.toString)&&!t(I=e(S,f))||a(S=f.valueOf)&&!t(I=e(S,f))||b!=="string"&&a(S=f.toString)&&!t(I=e(S,f)))return I;throw new o("Can't convert object to primitive value")}},97921:function(A,r,n){"use strict";var e=n(4009),a=n(67250),t=n(37310),o=n(89235),f=n(30365),b=a([].concat);A.exports=e("Reflect","ownKeys")||function(){function S(I){var k=t.f(f(I)),g=o.f;return g?b(k,g(I)):k}return S}()},61765:function(A,r,n){"use strict";var e=n(74685);A.exports=e},10729:function(A){"use strict";A.exports=function(r){try{return{error:!1,value:r()}}catch(n){return{error:!0,value:n}}}},74854:function(A,r,n){"use strict";var e=n(74685),a=n(67512),t=n(55747),o=n(41314),f=n(40492),b=n(24697),S=n(8180),I=n(73730),k=n(4493),g=n(5026),u=a&&a.prototype,c=b("species"),m=!1,l=t(e.PromiseRejectionEvent),d=o("Promise",function(){var s=f(a),i=s!==String(a);if(!i&&g===66||k&&!(u.catch&&u.finally))return!0;if(!g||g<51||!/native code/.test(s)){var h=new a(function(p){p(1)}),C=function(N){N(function(){},function(){})},v=h.constructor={};if(v[c]=C,m=h.then(function(){})instanceof C,!m)return!0}return!i&&(S||I)&&!l});A.exports={CONSTRUCTOR:d,REJECTION_EVENT:l,SUBCLASSING:m}},67512:function(A,r,n){"use strict";var e=n(74685);A.exports=e.Promise},66628:function(A,r,n){"use strict";var e=n(30365),a=n(77568),t=n(81837);A.exports=function(o,f){if(e(o),a(f)&&f.constructor===o)return f;var b=t.f(o),S=b.resolve;return S(f),b.promise}},48199:function(A,r,n){"use strict";var e=n(67512),a=n(92490),t=n(74854).CONSTRUCTOR;A.exports=t||!a(function(o){e.all(o).then(void 0,function(){})})},34550:function(A,r,n){"use strict";var e=n(74595).f;A.exports=function(a,t,o){o in a||e(a,o,{configurable:!0,get:function(){function f(){return t[o]}return f}(),set:function(){function f(b){t[o]=b}return f}()})}},9547:function(A){"use strict";var r=function(){this.head=null,this.tail=null};r.prototype={add:function(){function n(e){var a={item:e,next:null},t=this.tail;t?t.next=a:this.head=a,this.tail=a}return n}(),get:function(){function n(){var e=this.head;if(e){var a=this.head=e.next;return a===null&&(this.tail=null),e.item}}return n}()},A.exports=r},28340:function(A,r,n){"use strict";var e=n(91495),a=n(30365),t=n(55747),o=n(7462),f=n(14489),b=TypeError;A.exports=function(S,I){var k=S.exec;if(t(k)){var g=e(k,S,I);return g!==null&&a(g),g}if(o(S)==="RegExp")return e(f,S,I);throw new b("RegExp#exec called on incompatible receiver")}},14489:function(A,r,n){"use strict";var e=n(91495),a=n(67250),t=n(12605),o=n(70901),f=n(62115),b=n(16639),S=n(80674),I=n(5419).get,k=n(39173),g=n(35688),u=b("native-string-replace",String.prototype.replace),c=RegExp.prototype.exec,m=c,l=a("".charAt),d=a("".indexOf),s=a("".replace),i=a("".slice),h=function(){var N=/a/,V=/b*/g;return e(c,N,"a"),e(c,V,"a"),N.lastIndex!==0||V.lastIndex!==0}(),C=f.BROKEN_CARET,v=/()??/.exec("")[1]!==void 0,p=h||v||C||k||g;p&&(m=function(){function N(V){var y=this,B=I(y),L=t(V),w=B.raw,x,T,M,O,D,E,P;if(w)return w.lastIndex=y.lastIndex,x=e(m,w,L),y.lastIndex=w.lastIndex,x;var R=B.groups,j=C&&y.sticky,F=e(o,y),W=y.source,z=0,K=L;if(j&&(F=s(F,"y",""),d(F,"g")===-1&&(F+="g"),K=i(L,y.lastIndex),y.lastIndex>0&&(!y.multiline||y.multiline&&l(L,y.lastIndex-1)!=="\n")&&(W="(?: "+W+")",K=" "+K,z++),T=new RegExp("^(?:"+W+")",F)),v&&(T=new RegExp("^"+W+"$(?!\\s)",F)),h&&(M=y.lastIndex),O=e(c,j?T:y,K),j?O?(O.input=i(O.input,z),O[0]=i(O[0],z),O.index=y.lastIndex,y.lastIndex+=O[0].length):y.lastIndex=0:h&&O&&(y.lastIndex=y.global?O.index+O[0].length:M),v&&O&&O.length>1&&e(u,O[0],T,function(){for(D=1;Db)","g");return o.exec("b").groups.a!=="b"||"b".replace(o,"$c")!=="bc"})},16952:function(A,r,n){"use strict";var e=n(42871),a=TypeError;A.exports=function(t){if(e(t))throw new a("Can't call method on "+t);return t}},44915:function(A,r,n){"use strict";var e=n(74685),a=n(58310),t=Object.getOwnPropertyDescriptor;A.exports=function(o){if(!a)return e[o];var f=t(e,o);return f&&f.value}},5700:function(A){"use strict";A.exports=Object.is||function(){function r(n,e){return n===e?n!==0||1/n===1/e:n!==n&&e!==e}return r}()},78362:function(A,r,n){"use strict";var e=n(74685),a=n(61267),t=n(55747),o=n(49197),f=n(63318),b=n(54602),S=n(24986),I=e.Function,k=/MSIE .\./.test(f)||o&&function(){var g=e.Bun.version.split(".");return g.length<3||g[0]==="0"&&(g[1]<3||g[1]==="3"&&g[2]==="0")}();A.exports=function(g,u){var c=u?2:1;return k?function(m,l){var d=S(arguments.length,1)>c,s=t(m)?m:I(m),i=d?b(arguments,c):[],h=d?function(){a(s,this,i)}:s;return u?g(h,l):g(h)}:g}},58491:function(A,r,n){"use strict";var e=n(4009),a=n(73936),t=n(24697),o=n(58310),f=t("species");A.exports=function(b){var S=e(b);o&&S&&!S[f]&&a(S,f,{configurable:!0,get:function(){function I(){return this}return I}()})}},84925:function(A,r,n){"use strict";var e=n(74595).f,a=n(45299),t=n(24697),o=t("toStringTag");A.exports=function(f,b,S){f&&!S&&(f=f.prototype),f&&!a(f,o)&&e(f,o,{configurable:!0,value:b})}},19417:function(A,r,n){"use strict";var e=n(16639),a=n(16738),t=e("keys");A.exports=function(o){return t[o]||(t[o]=a(o))}},40095:function(A,r,n){"use strict";var e=n(4493),a=n(74685),t=n(18231),o="__core-js_shared__",f=A.exports=a[o]||t(o,{});(f.versions||(f.versions=[])).push({version:"3.37.1",mode:e?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE",source:"https://github.com/zloirock/core-js"})},16639:function(A,r,n){"use strict";var e=n(40095);A.exports=function(a,t){return e[a]||(e[a]=t||{})}},28987:function(A,r,n){"use strict";var e=n(30365),a=n(32606),t=n(42871),o=n(24697),f=o("species");A.exports=function(b,S){var I=e(b).constructor,k;return I===void 0||t(k=e(I)[f])?S:a(k)}},88539:function(A,r,n){"use strict";var e=n(40033);A.exports=function(a){return e(function(){var t=""[a]('"');return t!==t.toLowerCase()||t.split('"').length>3})}},50233:function(A,r,n){"use strict";var e=n(67250),a=n(61365),t=n(12605),o=n(16952),f=e("".charAt),b=e("".charCodeAt),S=e("".slice),I=function(g){return function(u,c){var m=t(o(u)),l=a(c),d=m.length,s,i;return l<0||l>=d?g?"":void 0:(s=b(m,l),s<55296||s>56319||l+1===d||(i=b(m,l+1))<56320||i>57343?g?f(m,l):s:g?S(m,l,l+2):(s-55296<<10)+(i-56320)+65536)}};A.exports={codeAt:I(!1),charAt:I(!0)}},34125:function(A,r,n){"use strict";var e=n(63318);A.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(e)},24051:function(A,r,n){"use strict";var e=n(67250),a=n(10188),t=n(12605),o=n(62443),f=n(16952),b=e(o),S=e("".slice),I=Math.ceil,k=function(u){return function(c,m,l){var d=t(f(c)),s=a(m),i=d.length,h=l===void 0?" ":t(l),C,v;return s<=i||h===""?d:(C=s-i,v=b(h,I(C/h.length)),v.length>C&&(v=S(v,0,C)),u?d+v:v+d)}};A.exports={start:k(!1),end:k(!0)}},62443:function(A,r,n){"use strict";var e=n(61365),a=n(12605),t=n(16952),o=RangeError;A.exports=function(){function f(b){var S=a(t(this)),I="",k=e(b);if(k<0||k===1/0)throw new o("Wrong number of repetitions");for(;k>0;(k>>>=1)&&(S+=S))k&1&&(I+=S);return I}return f}()},43476:function(A,r,n){"use strict";var e=n(92648).end,a=n(90012);A.exports=a("trimEnd")?function(){function t(){return e(this)}return t}():"".trimEnd},90012:function(A,r,n){"use strict";var e=n(70520).PROPER,a=n(40033),t=n(4198),o="\u200B\x85\u180E";A.exports=function(f){return a(function(){return!!t[f]()||o[f]()!==o||e&&t[f].name!==f})}},43885:function(A,r,n){"use strict";var e=n(92648).start,a=n(90012);A.exports=a("trimStart")?function(){function t(){return e(this)}return t}():"".trimStart},92648:function(A,r,n){"use strict";var e=n(67250),a=n(16952),t=n(12605),o=n(4198),f=e("".replace),b=RegExp("^["+o+"]+"),S=RegExp("(^|[^"+o+"])["+o+"]+$"),I=function(g){return function(u){var c=t(a(u));return g&1&&(c=f(c,b,"")),g&2&&(c=f(c,S,"$1")),c}};A.exports={start:I(1),end:I(2),trim:I(3)}},52357:function(A,r,n){"use strict";var e=n(5026),a=n(40033),t=n(74685),o=t.String;A.exports=!!Object.getOwnPropertySymbols&&!a(function(){var f=Symbol("symbol detection");return!o(f)||!(Object(f)instanceof Symbol)||!Symbol.sham&&e&&e<41})},52360:function(A,r,n){"use strict";var e=n(91495),a=n(4009),t=n(24697),o=n(55938);A.exports=function(){var f=a("Symbol"),b=f&&f.prototype,S=b&&b.valueOf,I=t("toPrimitive");b&&!b[I]&&o(b,I,function(k){return e(S,this)},{arity:1})}},66570:function(A,r,n){"use strict";var e=n(52357);A.exports=e&&!!Symbol.for&&!!Symbol.keyFor},60375:function(A,r,n){"use strict";var e=n(74685),a=n(61267),t=n(75754),o=n(55747),f=n(45299),b=n(40033),S=n(5315),I=n(54602),k=n(12689),g=n(24986),u=n(83433),c=n(81702),m=e.setImmediate,l=e.clearImmediate,d=e.process,s=e.Dispatch,i=e.Function,h=e.MessageChannel,C=e.String,v=0,p={},N="onreadystatechange",V,y,B,L;b(function(){V=e.location});var w=function(D){if(f(p,D)){var E=p[D];delete p[D],E()}},x=function(D){return function(){w(D)}},T=function(D){w(D.data)},M=function(D){e.postMessage(C(D),V.protocol+"//"+V.host)};(!m||!l)&&(m=function(){function O(D){g(arguments.length,1);var E=o(D)?D:i(D),P=I(arguments,1);return p[++v]=function(){a(E,void 0,P)},y(v),v}return O}(),l=function(){function O(D){delete p[D]}return O}(),c?y=function(D){d.nextTick(x(D))}:s&&s.now?y=function(D){s.now(x(D))}:h&&!u?(B=new h,L=B.port2,B.port1.onmessage=T,y=t(L.postMessage,L)):e.addEventListener&&o(e.postMessage)&&!e.importScripts&&V&&V.protocol!=="file:"&&!b(M)?(y=M,e.addEventListener("message",T,!1)):N in k("script")?y=function(D){S.appendChild(k("script"))[N]=function(){S.removeChild(this),w(D)}}:y=function(D){setTimeout(x(D),0)}),A.exports={set:m,clear:l}},46438:function(A,r,n){"use strict";var e=n(67250);A.exports=e(1 .valueOf)},13912:function(A,r,n){"use strict";var e=n(61365),a=Math.max,t=Math.min;A.exports=function(o,f){var b=e(o);return b<0?a(b+f,0):t(b,f)}},61484:function(A,r,n){"use strict";var e=n(24843),a=TypeError;A.exports=function(t){var o=e(t,"number");if(typeof o=="number")throw new a("Can't convert number to bigint");return BigInt(o)}},43806:function(A,r,n){"use strict";var e=n(61365),a=n(10188),t=RangeError;A.exports=function(o){if(o===void 0)return 0;var f=e(o),b=a(f);if(f!==b)throw new t("Wrong length or index");return b}},57591:function(A,r,n){"use strict";var e=n(37457),a=n(16952);A.exports=function(t){return e(a(t))}},61365:function(A,r,n){"use strict";var e=n(21119);A.exports=function(a){var t=+a;return t!==t||t===0?0:e(t)}},10188:function(A,r,n){"use strict";var e=n(61365),a=Math.min;A.exports=function(t){var o=e(t);return o>0?a(o,9007199254740991):0}},46771:function(A,r,n){"use strict";var e=n(16952),a=Object;A.exports=function(t){return a(e(t))}},56043:function(A,r,n){"use strict";var e=n(16140),a=RangeError;A.exports=function(t,o){var f=e(t);if(f%o)throw new a("Wrong offset");return f}},16140:function(A,r,n){"use strict";var e=n(61365),a=RangeError;A.exports=function(t){var o=e(t);if(o<0)throw new a("The argument can't be less than 0");return o}},24843:function(A,r,n){"use strict";var e=n(91495),a=n(77568),t=n(71399),o=n(78060),f=n(13396),b=n(24697),S=TypeError,I=b("toPrimitive");A.exports=function(k,g){if(!a(k)||t(k))return k;var u=o(k,I),c;if(u){if(g===void 0&&(g="default"),c=e(u,k,g),!a(c)||t(c))return c;throw new S("Can't convert object to primitive value")}return g===void 0&&(g="number"),f(k,g)}},767:function(A,r,n){"use strict";var e=n(24843),a=n(71399);A.exports=function(t){var o=e(t,"string");return a(o)?o:o+""}},2650:function(A,r,n){"use strict";var e=n(24697),a=e("toStringTag"),t={};t[a]="z",A.exports=String(t)==="[object z]"},12605:function(A,r,n){"use strict";var e=n(2281),a=String;A.exports=function(t){if(e(t)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return a(t)}},15409:function(A){"use strict";var r=Math.round;A.exports=function(n){var e=r(n);return e<0?0:e>255?255:e&255}},89393:function(A){"use strict";var r=String;A.exports=function(n){try{return r(n)}catch(e){return"Object"}}},80185:function(A,r,n){"use strict";var e=n(63964),a=n(74685),t=n(91495),o=n(58310),f=n(86563),b=n(4246),S=n(37336),I=n(60077),k=n(87458),g=n(37909),u=n(5841),c=n(10188),m=n(43806),l=n(56043),d=n(15409),s=n(767),i=n(45299),h=n(2281),C=n(77568),v=n(71399),p=n(80674),N=n(21287),V=n(76649),y=n(37310).f,B=n(3805),L=n(22603).forEach,w=n(58491),x=n(73936),T=n(74595),M=n(27193),O=n(78008),D=n(5419),E=n(5781),P=D.get,R=D.set,j=D.enforce,F=T.f,W=M.f,z=a.RangeError,K=S.ArrayBuffer,G=K.prototype,J=S.DataView,Q=b.NATIVE_ARRAY_BUFFER_VIEWS,ue=b.TYPED_ARRAY_TAG,ie=b.TypedArray,pe=b.TypedArrayPrototype,te=b.isTypedArray,q="BYTES_PER_ELEMENT",ne="Wrong length",le=function(Y,ve){x(Y,ve,{configurable:!0,get:function(){function he(){return P(this)[ve]}return he}()})},ee=function(Y){var ve;return N(G,Y)||(ve=h(Y))==="ArrayBuffer"||ve==="SharedArrayBuffer"},re=function(Y,ve){return te(Y)&&!v(ve)&&ve in Y&&u(+ve)&&ve>=0},oe=function(){function me(Y,ve){return ve=s(ve),re(Y,ve)?k(2,Y[ve]):W(Y,ve)}return me}(),fe=function(){function me(Y,ve,he){return ve=s(ve),re(Y,ve)&&C(he)&&i(he,"value")&&!i(he,"get")&&!i(he,"set")&&!he.configurable&&(!i(he,"writable")||he.writable)&&(!i(he,"enumerable")||he.enumerable)?(Y[ve]=he.value,Y):F(Y,ve,he)}return me}();o?(Q||(M.f=oe,T.f=fe,le(pe,"buffer"),le(pe,"byteOffset"),le(pe,"byteLength"),le(pe,"length")),e({target:"Object",stat:!0,forced:!Q},{getOwnPropertyDescriptor:oe,defineProperty:fe}),A.exports=function(me,Y,ve){var he=me.match(/\d+/)[0]/8,Ve=me+(ve?"Clamped":"")+"Array",Be="get"+me,be="set"+me,Le=a[Ve],we=Le,xe=we&&we.prototype,Re={},He=function(ge,Se){var Pe=P(ge);return Pe.view[Be](Se*he+Pe.byteOffset,!0)},ye=function(ge,Se,Pe){var je=P(ge);je.view[be](Se*he+je.byteOffset,ve?d(Pe):Pe,!0)},de=function(ge,Se){F(ge,Se,{get:function(){function Pe(){return He(this,Se)}return Pe}(),set:function(){function Pe(je){return ye(this,Se,je)}return Pe}(),enumerable:!0})};Q?f&&(we=Y(function(ke,ge,Se,Pe){return I(ke,xe),E(function(){return C(ge)?ee(ge)?Pe!==void 0?new Le(ge,l(Se,he),Pe):Se!==void 0?new Le(ge,l(Se,he)):new Le(ge):te(ge)?O(we,ge):t(B,we,ge):new Le(m(ge))}(),ke,we)}),V&&V(we,ie),L(y(Le),function(ke){ke in we||g(we,ke,Le[ke])}),we.prototype=xe):(we=Y(function(ke,ge,Se,Pe){I(ke,xe);var je=0,_e=0,ze,We,Ue;if(!C(ge))Ue=m(ge),We=Ue*he,ze=new K(We);else if(ee(ge)){ze=ge,_e=l(Se,he);var Xe=ge.byteLength;if(Pe===void 0){if(Xe%he)throw new z(ne);if(We=Xe-_e,We<0)throw new z(ne)}else if(We=c(Pe)*he,We+_e>Xe)throw new z(ne);Ue=We/he}else return te(ge)?O(we,ge):t(B,we,ge);for(R(ke,{buffer:ze,byteOffset:_e,byteLength:We,length:Ue,view:new J(ze)});je1?arguments[1]:void 0,h=i!==void 0,C=S(d),v,p,N,V,y,B,L,w;if(C&&!I(C))for(L=b(d,C),w=L.next,d=[];!(B=a(w,L)).done;)d.push(B.value);for(h&&s>2&&(i=e(i,arguments[2])),p=f(d),N=new(g(l))(p),V=k(N),v=0;p>v;v++)y=h?i(d[v],v):d[v],N[v]=V?u(y):+y;return N}return c}()},31082:function(A,r,n){"use strict";var e=n(4246),a=n(28987),t=e.aTypedArrayConstructor,o=e.getTypedArrayConstructor;A.exports=function(f){return t(a(f,o(f)))}},16738:function(A,r,n){"use strict";var e=n(67250),a=0,t=Math.random(),o=e(1 .toString);A.exports=function(f){return"Symbol("+(f===void 0?"":f)+")_"+o(++a+t,36)}},1062:function(A,r,n){"use strict";var e=n(52357);A.exports=e&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},80944:function(A,r,n){"use strict";var e=n(58310),a=n(40033);A.exports=e&&a(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})},24986:function(A){"use strict";var r=TypeError;A.exports=function(n,e){if(n=51||!a(function(){var i=[];return i[m]=!1,i.concat()[0]!==i}),d=function(h){if(!o(h))return!1;var C=h[m];return C!==void 0?!!C:t(h)},s=!l||!g("concat");e({target:"Array",proto:!0,arity:1,forced:s},{concat:function(){function i(h){var C=f(this),v=k(C,0),p=0,N,V,y,B,L;for(N=-1,y=arguments.length;N1?arguments[1]:void 0)}return f}()})},68933:function(A,r,n){"use strict";var e=n(63964),a=n(88471),t=n(80575);e({target:"Array",proto:!0},{fill:a}),t("fill")},47830:function(A,r,n){"use strict";var e=n(63964),a=n(22603).filter,t=n(44091),o=t("filter");e({target:"Array",proto:!0,forced:!o},{filter:function(){function f(b){return a(this,b,arguments.length>1?arguments[1]:void 0)}return f}()})},64094:function(A,r,n){"use strict";var e=n(63964),a=n(22603).findIndex,t=n(80575),o="findIndex",f=!0;o in[]&&Array(1)[o](function(){f=!1}),e({target:"Array",proto:!0,forced:f},{findIndex:function(){function b(S){return a(this,S,arguments.length>1?arguments[1]:void 0)}return b}()}),t(o)},13455:function(A,r,n){"use strict";var e=n(63964),a=n(22603).find,t=n(80575),o="find",f=!0;o in[]&&Array(1)[o](function(){f=!1}),e({target:"Array",proto:!0,forced:f},{find:function(){function b(S){return a(this,S,arguments.length>1?arguments[1]:void 0)}return b}()}),t(o)},32384:function(A,r,n){"use strict";var e=n(63964),a=n(65561),t=n(10320),o=n(46771),f=n(24760),b=n(57823);e({target:"Array",proto:!0},{flatMap:function(){function S(I){var k=o(this),g=f(k),u;return t(I),u=b(k,0),u.length=a(u,k,k,g,0,1,I,arguments.length>1?arguments[1]:void 0),u}return S}()})},61915:function(A,r,n){"use strict";var e=n(63964),a=n(65561),t=n(46771),o=n(24760),f=n(61365),b=n(57823);e({target:"Array",proto:!0},{flat:function(){function S(){var I=arguments.length?arguments[0]:void 0,k=t(this),g=o(k),u=b(k,0);return u.length=a(u,k,k,g,0,I===void 0?1:f(I)),u}return S}()})},25579:function(A,r,n){"use strict";var e=n(63964),a=n(35601);e({target:"Array",proto:!0,forced:[].forEach!==a},{forEach:a})},63532:function(A,r,n){"use strict";var e=n(63964),a=n(73174),t=n(92490),o=!t(function(f){Array.from(f)});e({target:"Array",stat:!0,forced:o},{from:a})},33425:function(A,r,n){"use strict";var e=n(63964),a=n(14211).includes,t=n(40033),o=n(80575),f=t(function(){return!Array(1).includes()});e({target:"Array",proto:!0,forced:f},{includes:function(){function b(S){return a(this,S,arguments.length>1?arguments[1]:void 0)}return b}()}),o("includes")},43894:function(A,r,n){"use strict";var e=n(63964),a=n(71138),t=n(14211).indexOf,o=n(55528),f=a([].indexOf),b=!!f&&1/f([1],1,-0)<0,S=b||!o("indexOf");e({target:"Array",proto:!0,forced:S},{indexOf:function(){function I(k){var g=arguments.length>1?arguments[1]:void 0;return b?f(this,k,g)||0:t(this,k,g)}return I}()})},99636:function(A,r,n){"use strict";var e=n(63964),a=n(37386);e({target:"Array",stat:!0},{isArray:a})},34570:function(A,r,n){"use strict";var e=n(57591),a=n(80575),t=n(83967),o=n(5419),f=n(74595).f,b=n(65574),S=n(5959),I=n(4493),k=n(58310),g="Array Iterator",u=o.set,c=o.getterFor(g);A.exports=b(Array,"Array",function(l,d){u(this,{type:g,target:e(l),index:0,kind:d})},function(){var l=c(this),d=l.target,s=l.index++;if(!d||s>=d.length)return l.target=void 0,S(void 0,!0);switch(l.kind){case"keys":return S(s,!1);case"values":return S(d[s],!1)}return S([s,d[s]],!1)},"values");var m=t.Arguments=t.Array;if(a("keys"),a("values"),a("entries"),!I&&k&&m.name!=="values")try{f(m,"name",{value:"values"})}catch(l){}},94432:function(A,r,n){"use strict";var e=n(63964),a=n(67250),t=n(37457),o=n(57591),f=n(55528),b=a([].join),S=t!==Object,I=S||!f("join",",");e({target:"Array",proto:!0,forced:I},{join:function(){function k(g){return b(o(this),g===void 0?",":g)}return k}()})},24683:function(A,r,n){"use strict";var e=n(63964),a=n(1325);e({target:"Array",proto:!0,forced:a!==[].lastIndexOf},{lastIndexOf:a})},69984:function(A,r,n){"use strict";var e=n(63964),a=n(22603).map,t=n(44091),o=t("map");e({target:"Array",proto:!0,forced:!o},{map:function(){function f(b){return a(this,b,arguments.length>1?arguments[1]:void 0)}return f}()})},32089:function(A,r,n){"use strict";var e=n(63964),a=n(40033),t=n(1031),o=n(60102),f=Array,b=a(function(){function S(){}return!(f.of.call(S)instanceof S)});e({target:"Array",stat:!0,forced:b},{of:function(){function S(){for(var I=0,k=arguments.length,g=new(t(this)?this:f)(k);k>I;)o(g,I,arguments[I++]);return g.length=k,g}return S}()})},29645:function(A,r,n){"use strict";var e=n(63964),a=n(56844).right,t=n(55528),o=n(5026),f=n(81702),b=!f&&o>79&&o<83,S=b||!t("reduceRight");e({target:"Array",proto:!0,forced:S},{reduceRight:function(){function I(k){return a(this,k,arguments.length,arguments.length>1?arguments[1]:void 0)}return I}()})},60206:function(A,r,n){"use strict";var e=n(63964),a=n(56844).left,t=n(55528),o=n(5026),f=n(81702),b=!f&&o>79&&o<83,S=b||!t("reduce");e({target:"Array",proto:!0,forced:S},{reduce:function(){function I(k){var g=arguments.length;return a(this,k,g,g>1?arguments[1]:void 0)}return I}()})},4788:function(A,r,n){"use strict";var e=n(63964),a=n(67250),t=n(37386),o=a([].reverse),f=[1,2];e({target:"Array",proto:!0,forced:String(f)===String(f.reverse())},{reverse:function(){function b(){return t(this)&&(this.length=this.length),o(this)}return b}()})},58672:function(A,r,n){"use strict";var e=n(63964),a=n(37386),t=n(1031),o=n(77568),f=n(13912),b=n(24760),S=n(57591),I=n(60102),k=n(24697),g=n(44091),u=n(54602),c=g("slice"),m=k("species"),l=Array,d=Math.max;e({target:"Array",proto:!0,forced:!c},{slice:function(){function s(i,h){var C=S(this),v=b(C),p=f(i,v),N=f(h===void 0?v:h,v),V,y,B;if(a(C)&&(V=C.constructor,t(V)&&(V===l||a(V.prototype))?V=void 0:o(V)&&(V=V[m],V===null&&(V=void 0)),V===l||V===void 0))return u(C,p,N);for(y=new(V===void 0?l:V)(d(N-p,0)),B=0;p1?arguments[1]:void 0)}return f}()})},48968:function(A,r,n){"use strict";var e=n(63964),a=n(67250),t=n(10320),o=n(46771),f=n(24760),b=n(95108),S=n(12605),I=n(40033),k=n(90274),g=n(55528),u=n(652),c=n(19228),m=n(5026),l=n(9342),d=[],s=a(d.sort),i=a(d.push),h=I(function(){d.sort(void 0)}),C=I(function(){d.sort(null)}),v=g("sort"),p=!I(function(){if(m)return m<70;if(!(u&&u>3)){if(c)return!0;if(l)return l<603;var y="",B,L,w,x;for(B=65;B<76;B++){switch(L=String.fromCharCode(B),B){case 66:case 69:case 70:case 72:w=3;break;case 68:case 71:w=4;break;default:w=2}for(x=0;x<47;x++)d.push({k:L+x,v:w})}for(d.sort(function(T,M){return M.v-T.v}),x=0;xS(w)?1:-1}};e({target:"Array",proto:!0,forced:N},{sort:function(){function y(B){B!==void 0&&t(B);var L=o(this);if(p)return B===void 0?s(L):s(L,B);var w=[],x=f(L),T,M;for(M=0;MC-V+N;B--)g(h,B-1)}else if(N>V)for(B=C-V;B>v;B--)L=B+V-1,w=B+N-1,L in h?h[w]=h[L]:g(h,w);for(B=0;B9490626562425156e-8?o(g)+b:a(g-1+f(g-1)*f(g+1))}return I}()})},59660:function(A,r,n){"use strict";var e=n(63964),a=Math.asinh,t=Math.log,o=Math.sqrt;function f(S){var I=+S;return!isFinite(I)||I===0?I:I<0?-f(-I):t(I+o(I*I+1))}var b=!(a&&1/a(0)>0);e({target:"Math",stat:!0,forced:b},{asinh:f})},15383:function(A,r,n){"use strict";var e=n(63964),a=Math.atanh,t=Math.log,o=!(a&&1/a(-0)<0);e({target:"Math",stat:!0,forced:o},{atanh:function(){function f(b){var S=+b;return S===0?S:t((1+S)/(1-S))/2}return f}()})},92866:function(A,r,n){"use strict";var e=n(63964),a=n(22172),t=Math.abs,o=Math.pow;e({target:"Math",stat:!0},{cbrt:function(){function f(b){var S=+b;return a(S)*o(t(S),.3333333333333333)}return f}()})},86107:function(A,r,n){"use strict";var e=n(63964),a=Math.floor,t=Math.log,o=Math.LOG2E;e({target:"Math",stat:!0},{clz32:function(){function f(b){var S=b>>>0;return S?31-a(t(S+.5)*o):32}return f}()})},29248:function(A,r,n){"use strict";var e=n(63964),a=n(82040),t=Math.cosh,o=Math.abs,f=Math.E,b=!t||t(710)===1/0;e({target:"Math",stat:!0,forced:b},{cosh:function(){function S(I){var k=a(o(I)-1)+1;return(k+1/(k*f*f))*(f/2)}return S}()})},52540:function(A,r,n){"use strict";var e=n(63964),a=n(82040);e({target:"Math",stat:!0,forced:a!==Math.expm1},{expm1:a})},79007:function(A,r,n){"use strict";var e=n(63964),a=n(95867);e({target:"Math",stat:!0},{fround:a})},77199:function(A,r,n){"use strict";var e=n(63964),a=Math.hypot,t=Math.abs,o=Math.sqrt,f=!!a&&a(1/0,NaN)!==1/0;e({target:"Math",stat:!0,arity:2,forced:f},{hypot:function(){function b(S,I){for(var k=0,g=0,u=arguments.length,c=0,m,l;g0?(l=m/c,k+=l*l):k+=m;return c===1/0?1/0:c*o(k)}return b}()})},6522:function(A,r,n){"use strict";var e=n(63964),a=n(40033),t=Math.imul,o=a(function(){return t(4294967295,5)!==-5||t.length!==2});e({target:"Math",stat:!0,forced:o},{imul:function(){function f(b,S){var I=65535,k=+b,g=+S,u=I&k,c=I&g;return 0|u*c+((I&k>>>16)*c+u*(I&g>>>16)<<16>>>0)}return f}()})},95542:function(A,r,n){"use strict";var e=n(63964),a=n(75002);e({target:"Math",stat:!0},{log10:a})},2966:function(A,r,n){"use strict";var e=n(63964),a=n(90874);e({target:"Math",stat:!0},{log1p:a})},20997:function(A,r,n){"use strict";var e=n(63964),a=Math.log,t=Math.LN2;e({target:"Math",stat:!0},{log2:function(){function o(f){return a(f)/t}return o}()})},57400:function(A,r,n){"use strict";var e=n(63964),a=n(22172);e({target:"Math",stat:!0},{sign:a})},45571:function(A,r,n){"use strict";var e=n(63964),a=n(40033),t=n(82040),o=Math.abs,f=Math.exp,b=Math.E,S=a(function(){return Math.sinh(-2e-17)!==-2e-17});e({target:"Math",stat:!0,forced:S},{sinh:function(){function I(k){var g=+k;return o(g)<1?(t(g)-t(-g))/2:(f(g-1)-f(-g-1))*(b/2)}return I}()})},54800:function(A,r,n){"use strict";var e=n(63964),a=n(82040),t=Math.exp;e({target:"Math",stat:!0},{tanh:function(){function o(f){var b=+f,S=a(b),I=a(-b);return S===1/0?1:I===1/0?-1:(S-I)/(t(b)+t(-b))}return o}()})},15709:function(A,r,n){"use strict";var e=n(84925);e(Math,"Math",!0)},76059:function(A,r,n){"use strict";var e=n(63964),a=n(21119);e({target:"Math",stat:!0},{trunc:a})},96614:function(A,r,n){"use strict";var e=n(63964),a=n(4493),t=n(58310),o=n(74685),f=n(61765),b=n(67250),S=n(41314),I=n(45299),k=n(5781),g=n(21287),u=n(71399),c=n(24843),m=n(40033),l=n(37310).f,d=n(27193).f,s=n(74595).f,i=n(46438),h=n(92648).trim,C="Number",v=o[C],p=f[C],N=v.prototype,V=o.TypeError,y=b("".slice),B=b("".charCodeAt),L=function(E){var P=c(E,"number");return typeof P=="bigint"?P:w(P)},w=function(E){var P=c(E,"number"),R,j,F,W,z,K,G,J;if(u(P))throw new V("Cannot convert a Symbol value to a number");if(typeof P=="string"&&P.length>2){if(P=h(P),R=B(P,0),R===43||R===45){if(j=B(P,2),j===88||j===120)return NaN}else if(R===48){switch(B(P,1)){case 66:case 98:F=2,W=49;break;case 79:case 111:F=8,W=55;break;default:return+P}for(z=y(P,2),K=z.length,G=0;GW)return NaN;return parseInt(z,F)}}return+P},x=S(C,!v(" 0o1")||!v("0b1")||v("+0x1")),T=function(E){return g(N,E)&&m(function(){i(E)})},M=function(){function D(E){var P=arguments.length<1?0:v(L(E));return T(this)?k(Object(P),this,M):P}return D}();M.prototype=N,x&&!a&&(N.constructor=M),e({global:!0,constructor:!0,wrap:!0,forced:x},{Number:M});var O=function(E,P){for(var R=t?l(P):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),j=0,F;R.length>j;j++)I(P,F=R[j])&&!I(E,F)&&s(E,F,d(P,F))};a&&p&&O(f[C],p),(x||a)&&O(f[C],v)},324:function(A,r,n){"use strict";var e=n(63964);e({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},90426:function(A,r,n){"use strict";var e=n(63964),a=n(3294);e({target:"Number",stat:!0},{isFinite:a})},95443:function(A,r,n){"use strict";var e=n(63964),a=n(5841);e({target:"Number",stat:!0},{isInteger:a})},87968:function(A,r,n){"use strict";var e=n(63964);e({target:"Number",stat:!0},{isNaN:function(){function a(t){return t!==t}return a}()})},55007:function(A,r,n){"use strict";var e=n(63964),a=n(5841),t=Math.abs;e({target:"Number",stat:!0},{isSafeInteger:function(){function o(f){return a(f)&&t(f)<=9007199254740991}return o}()})},55323:function(A,r,n){"use strict";var e=n(63964);e({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},13521:function(A,r,n){"use strict";var e=n(63964);e({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},5006:function(A,r,n){"use strict";var e=n(63964),a=n(28506);e({target:"Number",stat:!0,forced:Number.parseFloat!==a},{parseFloat:a})},99009:function(A,r,n){"use strict";var e=n(63964),a=n(13693);e({target:"Number",stat:!0,forced:Number.parseInt!==a},{parseInt:a})},85770:function(A,r,n){"use strict";var e=n(63964),a=n(67250),t=n(61365),o=n(46438),f=n(62443),b=n(40033),S=RangeError,I=String,k=Math.floor,g=a(f),u=a("".slice),c=a(1 .toFixed),m=function C(v,p,N){return p===0?N:p%2===1?C(v,p-1,N*v):C(v*v,p/2,N)},l=function(v){for(var p=0,N=v;N>=4096;)p+=12,N/=4096;for(;N>=2;)p+=1,N/=2;return p},d=function(v,p,N){for(var V=-1,y=N;++V<6;)y+=p*v[V],v[V]=y%1e7,y=k(y/1e7)},s=function(v,p){for(var N=6,V=0;--N>=0;)V+=v[N],v[N]=k(V/p),V=V%p*1e7},i=function(v){for(var p=6,N="";--p>=0;)if(N!==""||p===0||v[p]!==0){var V=I(v[p]);N=N===""?V:N+g("0",7-V.length)+V}return N},h=b(function(){return c(8e-5,3)!=="0.000"||c(.9,0)!=="1"||c(1.255,2)!=="1.25"||c(0xde0b6b3a7640080,0)!=="1000000000000000128"})||!b(function(){c({})});e({target:"Number",proto:!0,forced:h},{toFixed:function(){function C(v){var p=o(this),N=t(v),V=[0,0,0,0,0,0],y="",B="0",L,w,x,T;if(N<0||N>20)throw new S("Incorrect fraction digits");if(p!==p)return"NaN";if(p<=-1e21||p>=1e21)return I(p);if(p<0&&(y="-",p=-p),p>1e-21)if(L=l(p*m(2,69,1))-69,w=L<0?p*m(2,-L,1):p/m(2,L,1),w*=4503599627370496,L=52-L,L>0){for(d(V,0,w),x=N;x>=7;)d(V,1e7,0),x-=7;for(d(V,m(10,x,1),0),x=L-1;x>=23;)s(V,8388608),x-=23;s(V,1<0?(T=B.length,B=y+(T<=N?"0."+g("0",N-T)+B:u(B,0,T-N)+"."+u(B,T-N))):B=y+B,B}return C}()})},23532:function(A,r,n){"use strict";var e=n(63964),a=n(67250),t=n(40033),o=n(46438),f=a(1 .toPrecision),b=t(function(){return f(1,void 0)!=="1"})||!t(function(){f({})});e({target:"Number",proto:!0,forced:b},{toPrecision:function(){function S(I){return I===void 0?f(o(this)):f(o(this),I)}return S}()})},87119:function(A,r,n){"use strict";var e=n(63964),a=n(41143);e({target:"Object",stat:!0,arity:2,forced:Object.assign!==a},{assign:a})},78618:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(80674);e({target:"Object",stat:!0,sham:!a},{create:t})},27129:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(57377),o=n(10320),f=n(46771),b=n(74595);a&&e({target:"Object",proto:!0,forced:t},{__defineGetter__:function(){function S(I,k){b.f(f(this),I,{get:o(k),enumerable:!0,configurable:!0})}return S}()})},31943:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(24239).f;e({target:"Object",stat:!0,forced:Object.defineProperties!==t,sham:!a},{defineProperties:t})},3579:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(74595).f;e({target:"Object",stat:!0,forced:Object.defineProperty!==t,sham:!a},{defineProperty:t})},97397:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(57377),o=n(10320),f=n(46771),b=n(74595);a&&e({target:"Object",proto:!0,forced:t},{__defineSetter__:function(){function S(I,k){b.f(f(this),I,{set:o(k),enumerable:!0,configurable:!0})}return S}()})},85028:function(A,r,n){"use strict";var e=n(63964),a=n(70915).entries;e({target:"Object",stat:!0},{entries:function(){function t(o){return a(o)}return t}()})},8225:function(A,r,n){"use strict";var e=n(63964),a=n(50730),t=n(40033),o=n(77568),f=n(81969).onFreeze,b=Object.freeze,S=t(function(){b(1)});e({target:"Object",stat:!0,forced:S,sham:!a},{freeze:function(){function I(k){return b&&o(k)?b(f(k)):k}return I}()})},43331:function(A,r,n){"use strict";var e=n(63964),a=n(49450),t=n(60102);e({target:"Object",stat:!0},{fromEntries:function(){function o(f){var b={};return a(f,function(S,I){t(b,S,I)},{AS_ENTRIES:!0}),b}return o}()})},62289:function(A,r,n){"use strict";var e=n(63964),a=n(40033),t=n(57591),o=n(27193).f,f=n(58310),b=!f||a(function(){o(1)});e({target:"Object",stat:!0,forced:b,sham:!f},{getOwnPropertyDescriptor:function(){function S(I,k){return o(t(I),k)}return S}()})},56196:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(97921),o=n(57591),f=n(27193),b=n(60102);e({target:"Object",stat:!0,sham:!a},{getOwnPropertyDescriptors:function(){function S(I){for(var k=o(I),g=f.f,u=t(k),c={},m=0,l,d;u.length>m;)d=g(k,l=u[m++]),d!==void 0&&b(c,l,d);return c}return S}()})},2950:function(A,r,n){"use strict";var e=n(63964),a=n(40033),t=n(81644).f,o=a(function(){return!Object.getOwnPropertyNames(1)});e({target:"Object",stat:!0,forced:o},{getOwnPropertyNames:t})},28603:function(A,r,n){"use strict";var e=n(63964),a=n(52357),t=n(40033),o=n(89235),f=n(46771),b=!a||t(function(){o.f(1)});e({target:"Object",stat:!0,forced:b},{getOwnPropertySymbols:function(){function S(I){var k=o.f;return k?k(f(I)):[]}return S}()})},44205:function(A,r,n){"use strict";var e=n(63964),a=n(40033),t=n(46771),o=n(36917),f=n(9225),b=a(function(){o(1)});e({target:"Object",stat:!0,forced:b,sham:!f},{getPrototypeOf:function(){function S(I){return o(t(I))}return S}()})},83186:function(A,r,n){"use strict";var e=n(63964),a=n(81834);e({target:"Object",stat:!0,forced:Object.isExtensible!==a},{isExtensible:a})},76065:function(A,r,n){"use strict";var e=n(63964),a=n(40033),t=n(77568),o=n(7462),f=n(3782),b=Object.isFrozen,S=f||a(function(){b(1)});e({target:"Object",stat:!0,forced:S},{isFrozen:function(){function I(k){return!t(k)||f&&o(k)==="ArrayBuffer"?!0:b?b(k):!1}return I}()})},13411:function(A,r,n){"use strict";var e=n(63964),a=n(40033),t=n(77568),o=n(7462),f=n(3782),b=Object.isSealed,S=f||a(function(){b(1)});e({target:"Object",stat:!0,forced:S},{isSealed:function(){function I(k){return!t(k)||f&&o(k)==="ArrayBuffer"?!0:b?b(k):!1}return I}()})},76882:function(A,r,n){"use strict";var e=n(63964),a=n(5700);e({target:"Object",stat:!0},{is:a})},26634:function(A,r,n){"use strict";var e=n(63964),a=n(46771),t=n(18450),o=n(40033),f=o(function(){t(1)});e({target:"Object",stat:!0,forced:f},{keys:function(){function b(S){return t(a(S))}return b}()})},53118:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(57377),o=n(46771),f=n(767),b=n(36917),S=n(27193).f;a&&e({target:"Object",proto:!0,forced:t},{__lookupGetter__:function(){function I(k){var g=o(this),u=f(k),c;do if(c=S(g,u))return c.get;while(g=b(g))}return I}()})},42514:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(57377),o=n(46771),f=n(767),b=n(36917),S=n(27193).f;a&&e({target:"Object",proto:!0,forced:t},{__lookupSetter__:function(){function I(k){var g=o(this),u=f(k),c;do if(c=S(g,u))return c.set;while(g=b(g))}return I}()})},84353:function(A,r,n){"use strict";var e=n(63964),a=n(77568),t=n(81969).onFreeze,o=n(50730),f=n(40033),b=Object.preventExtensions,S=f(function(){b(1)});e({target:"Object",stat:!0,forced:S,sham:!o},{preventExtensions:function(){function I(k){return b&&a(k)?b(t(k)):k}return I}()})},62987:function(A,r,n){"use strict";var e=n(63964),a=n(77568),t=n(81969).onFreeze,o=n(50730),f=n(40033),b=Object.seal,S=f(function(){b(1)});e({target:"Object",stat:!0,forced:S,sham:!o},{seal:function(){function I(k){return b&&a(k)?b(t(k)):k}return I}()})},48993:function(A,r,n){"use strict";var e=n(63964),a=n(76649);e({target:"Object",stat:!0},{setPrototypeOf:a})},52917:function(A,r,n){"use strict";var e=n(2650),a=n(55938),t=n(2509);e||a(Object.prototype,"toString",t,{unsafe:!0})},4972:function(A,r,n){"use strict";var e=n(63964),a=n(70915).values;e({target:"Object",stat:!0},{values:function(){function t(o){return a(o)}return t}()})},28913:function(A,r,n){"use strict";var e=n(63964),a=n(28506);e({global:!0,forced:parseFloat!==a},{parseFloat:a})},36382:function(A,r,n){"use strict";var e=n(63964),a=n(13693);e({global:!0,forced:parseInt!==a},{parseInt:a})},48865:function(A,r,n){"use strict";var e=n(63964),a=n(91495),t=n(10320),o=n(81837),f=n(10729),b=n(49450),S=n(48199);e({target:"Promise",stat:!0,forced:S},{all:function(){function I(k){var g=this,u=o.f(g),c=u.resolve,m=u.reject,l=f(function(){var d=t(g.resolve),s=[],i=0,h=1;b(k,function(C){var v=i++,p=!1;h++,a(d,g,C).then(function(N){p||(p=!0,s[v]=N,--h||c(s))},m)}),--h||c(s)});return l.error&&m(l.value),u.promise}return I}()})},70641:function(A,r,n){"use strict";var e=n(63964),a=n(4493),t=n(74854).CONSTRUCTOR,o=n(67512),f=n(4009),b=n(55747),S=n(55938),I=o&&o.prototype;if(e({target:"Promise",proto:!0,forced:t,real:!0},{catch:function(){function g(u){return this.then(void 0,u)}return g}()}),!a&&b(o)){var k=f("Promise").prototype.catch;I.catch!==k&&S(I,"catch",k,{unsafe:!0})}},75946:function(A,r,n){"use strict";var e=n(63964),a=n(4493),t=n(81702),o=n(74685),f=n(91495),b=n(55938),S=n(76649),I=n(84925),k=n(58491),g=n(10320),u=n(55747),c=n(77568),m=n(60077),l=n(28987),d=n(60375).set,s=n(37713),i=n(72259),h=n(10729),C=n(9547),v=n(5419),p=n(67512),N=n(74854),V=n(81837),y="Promise",B=N.CONSTRUCTOR,L=N.REJECTION_EVENT,w=N.SUBCLASSING,x=v.getterFor(y),T=v.set,M=p&&p.prototype,O=p,D=M,E=o.TypeError,P=o.document,R=o.process,j=V.f,F=j,W=!!(P&&P.createEvent&&o.dispatchEvent),z="unhandledrejection",K="rejectionhandled",G=0,J=1,Q=2,ue=1,ie=2,pe,te,q,ne,le=function(be){var Le;return c(be)&&u(Le=be.then)?Le:!1},ee=function(be,Le){var we=Le.value,xe=Le.state===J,Re=xe?be.ok:be.fail,He=be.resolve,ye=be.reject,de=be.domain,Ce,ke,ge;try{Re?(xe||(Le.rejection===ie&&Y(Le),Le.rejection=ue),Re===!0?Ce=we:(de&&de.enter(),Ce=Re(we),de&&(de.exit(),ge=!0)),Ce===be.promise?ye(new E("Promise-chain cycle")):(ke=le(Ce))?f(ke,Ce,He,ye):He(Ce)):ye(we)}catch(Se){de&&!ge&&de.exit(),ye(Se)}},re=function(be,Le){be.notified||(be.notified=!0,s(function(){for(var we=be.reactions,xe;xe=we.get();)ee(xe,be);be.notified=!1,Le&&!be.rejection&&fe(be)}))},oe=function(be,Le,we){var xe,Re;W?(xe=P.createEvent("Event"),xe.promise=Le,xe.reason=we,xe.initEvent(be,!1,!0),o.dispatchEvent(xe)):xe={promise:Le,reason:we},!L&&(Re=o["on"+be])?Re(xe):be===z&&i("Unhandled promise rejection",we)},fe=function(be){f(d,o,function(){var Le=be.facade,we=be.value,xe=me(be),Re;if(xe&&(Re=h(function(){t?R.emit("unhandledRejection",we,Le):oe(z,Le,we)}),be.rejection=t||me(be)?ie:ue,Re.error))throw Re.value})},me=function(be){return be.rejection!==ue&&!be.parent},Y=function(be){f(d,o,function(){var Le=be.facade;t?R.emit("rejectionHandled",Le):oe(K,Le,be.value)})},ve=function(be,Le,we){return function(xe){be(Le,xe,we)}},he=function(be,Le,we){be.done||(be.done=!0,we&&(be=we),be.value=Le,be.state=Q,re(be,!0))},Ve=function Be(be,Le,we){if(!be.done){be.done=!0,we&&(be=we);try{if(be.facade===Le)throw new E("Promise can't be resolved itself");var xe=le(Le);xe?s(function(){var Re={done:!1};try{f(xe,Le,ve(Be,Re,be),ve(he,Re,be))}catch(He){he(Re,He,be)}}):(be.value=Le,be.state=J,re(be,!1))}catch(Re){he({done:!1},Re,be)}}};if(B&&(O=function(){function Be(be){m(this,D),g(be),f(pe,this);var Le=x(this);try{be(ve(Ve,Le),ve(he,Le))}catch(we){he(Le,we)}}return Be}(),D=O.prototype,pe=function(){function Be(be){T(this,{type:y,done:!1,notified:!1,parent:!1,reactions:new C,rejection:!1,state:G,value:void 0})}return Be}(),pe.prototype=b(D,"then",function(){function Be(be,Le){var we=x(this),xe=j(l(this,O));return we.parent=!0,xe.ok=u(be)?be:!0,xe.fail=u(Le)&&Le,xe.domain=t?R.domain:void 0,we.state===G?we.reactions.add(xe):s(function(){ee(xe,we)}),xe.promise}return Be}()),te=function(){var be=new pe,Le=x(be);this.promise=be,this.resolve=ve(Ve,Le),this.reject=ve(he,Le)},V.f=j=function(be){return be===O||be===q?new te(be):F(be)},!a&&u(p)&&M!==Object.prototype)){ne=M.then,w||b(M,"then",function(){function Be(be,Le){var we=this;return new O(function(xe,Re){f(ne,we,xe,Re)}).then(be,Le)}return Be}(),{unsafe:!0});try{delete M.constructor}catch(Be){}S&&S(M,D)}e({global:!0,constructor:!0,wrap:!0,forced:B},{Promise:O}),I(O,y,!1,!0),k(y)},69861:function(A,r,n){"use strict";var e=n(63964),a=n(4493),t=n(67512),o=n(40033),f=n(4009),b=n(55747),S=n(28987),I=n(66628),k=n(55938),g=t&&t.prototype,u=!!t&&o(function(){g.finally.call({then:function(){function m(){}return m}()},function(){})});if(e({target:"Promise",proto:!0,real:!0,forced:u},{finally:function(){function m(l){var d=S(this,f("Promise")),s=b(l);return this.then(s?function(i){return I(d,l()).then(function(){return i})}:l,s?function(i){return I(d,l()).then(function(){throw i})}:l)}return m}()}),!a&&b(t)){var c=f("Promise").prototype.finally;g.finally!==c&&k(g,"finally",c,{unsafe:!0})}},53092:function(A,r,n){"use strict";n(75946),n(48865),n(70641),n(16937),n(41719),n(59321)},16937:function(A,r,n){"use strict";var e=n(63964),a=n(91495),t=n(10320),o=n(81837),f=n(10729),b=n(49450),S=n(48199);e({target:"Promise",stat:!0,forced:S},{race:function(){function I(k){var g=this,u=o.f(g),c=u.reject,m=f(function(){var l=t(g.resolve);b(k,function(d){a(l,g,d).then(u.resolve,c)})});return m.error&&c(m.value),u.promise}return I}()})},41719:function(A,r,n){"use strict";var e=n(63964),a=n(81837),t=n(74854).CONSTRUCTOR;e({target:"Promise",stat:!0,forced:t},{reject:function(){function o(f){var b=a.f(this),S=b.reject;return S(f),b.promise}return o}()})},59321:function(A,r,n){"use strict";var e=n(63964),a=n(4009),t=n(4493),o=n(67512),f=n(74854).CONSTRUCTOR,b=n(66628),S=a("Promise"),I=t&&!f;e({target:"Promise",stat:!0,forced:t||f},{resolve:function(){function k(g){return b(I&&this===S?o:this,g)}return k}()})},29674:function(A,r,n){"use strict";var e=n(63964),a=n(61267),t=n(10320),o=n(30365),f=n(40033),b=!f(function(){Reflect.apply(function(){})});e({target:"Reflect",stat:!0,forced:b},{apply:function(){function S(I,k,g){return a(t(I),k,o(g))}return S}()})},81543:function(A,r,n){"use strict";var e=n(63964),a=n(4009),t=n(61267),o=n(66284),f=n(32606),b=n(30365),S=n(77568),I=n(80674),k=n(40033),g=a("Reflect","construct"),u=Object.prototype,c=[].push,m=k(function(){function s(){}return!(g(function(){},[],s)instanceof s)}),l=!k(function(){g(function(){})}),d=m||l;e({target:"Reflect",stat:!0,forced:d,sham:d},{construct:function(){function s(i,h){f(i),b(h);var C=arguments.length<3?i:f(arguments[2]);if(l&&!m)return g(i,h,C);if(i===C){switch(h.length){case 0:return new i;case 1:return new i(h[0]);case 2:return new i(h[0],h[1]);case 3:return new i(h[0],h[1],h[2]);case 4:return new i(h[0],h[1],h[2],h[3])}var v=[null];return t(c,v,h),new(t(o,i,v))}var p=C.prototype,N=I(S(p)?p:u),V=t(i,N,h);return S(V)?V:N}return s}()})},9373:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(30365),o=n(767),f=n(74595),b=n(40033),S=b(function(){Reflect.defineProperty(f.f({},1,{value:1}),1,{value:2})});e({target:"Reflect",stat:!0,forced:S,sham:!a},{defineProperty:function(){function I(k,g,u){t(k);var c=o(g);t(u);try{return f.f(k,c,u),!0}catch(m){return!1}}return I}()})},45093:function(A,r,n){"use strict";var e=n(63964),a=n(30365),t=n(27193).f;e({target:"Reflect",stat:!0},{deleteProperty:function(){function o(f,b){var S=t(a(f),b);return S&&!S.configurable?!1:delete f[b]}return o}()})},5815:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(30365),o=n(27193);e({target:"Reflect",stat:!0,sham:!a},{getOwnPropertyDescriptor:function(){function f(b,S){return o.f(t(b),S)}return f}()})},88527:function(A,r,n){"use strict";var e=n(63964),a=n(30365),t=n(36917),o=n(9225);e({target:"Reflect",stat:!0,sham:!o},{getPrototypeOf:function(){function f(b){return t(a(b))}return f}()})},63074:function(A,r,n){"use strict";var e=n(63964),a=n(91495),t=n(77568),o=n(30365),f=n(98373),b=n(27193),S=n(36917);function I(k,g){var u=arguments.length<3?k:arguments[2],c,m;if(o(k)===u)return k[g];if(c=b.f(k,g),c)return f(c)?c.value:c.get===void 0?void 0:a(c.get,u);if(t(m=S(k)))return I(m,g,u)}e({target:"Reflect",stat:!0},{get:I})},66390:function(A,r,n){"use strict";var e=n(63964);e({target:"Reflect",stat:!0},{has:function(){function a(t,o){return o in t}return a}()})},7784:function(A,r,n){"use strict";var e=n(63964),a=n(30365),t=n(81834);e({target:"Reflect",stat:!0},{isExtensible:function(){function o(f){return a(f),t(f)}return o}()})},50551:function(A,r,n){"use strict";var e=n(63964),a=n(97921);e({target:"Reflect",stat:!0},{ownKeys:a})},76483:function(A,r,n){"use strict";var e=n(63964),a=n(4009),t=n(30365),o=n(50730);e({target:"Reflect",stat:!0,sham:!o},{preventExtensions:function(){function f(b){t(b);try{var S=a("Object","preventExtensions");return S&&S(b),!0}catch(I){return!1}}return f}()})},63915:function(A,r,n){"use strict";var e=n(63964),a=n(30365),t=n(35908),o=n(76649);o&&e({target:"Reflect",stat:!0},{setPrototypeOf:function(){function f(b,S){a(b),t(S);try{return o(b,S),!0}catch(I){return!1}}return f}()})},92046:function(A,r,n){"use strict";var e=n(63964),a=n(91495),t=n(30365),o=n(77568),f=n(98373),b=n(40033),S=n(74595),I=n(27193),k=n(36917),g=n(87458);function u(m,l,d){var s=arguments.length<4?m:arguments[3],i=I.f(t(m),l),h,C,v;if(!i){if(o(C=k(m)))return u(C,l,d,s);i=g(0)}if(f(i)){if(i.writable===!1||!o(s))return!1;if(h=I.f(s,l)){if(h.get||h.set||h.writable===!1)return!1;h.value=d,S.f(s,l,h)}else S.f(s,l,g(0,d))}else{if(v=i.set,v===void 0)return!1;a(v,s,d)}return!0}var c=b(function(){var m=function(){},l=S.f(new m,"a",{configurable:!0});return Reflect.set(m.prototype,"a",1,l)!==!1});e({target:"Reflect",stat:!0,forced:c},{set:u})},51454:function(A,r,n){"use strict";var e=n(58310),a=n(74685),t=n(67250),o=n(41314),f=n(5781),b=n(37909),S=n(80674),I=n(37310).f,k=n(21287),g=n(72586),u=n(12605),c=n(73392),m=n(62115),l=n(34550),d=n(55938),s=n(40033),i=n(45299),h=n(5419).enforce,C=n(58491),v=n(24697),p=n(39173),N=n(35688),V=v("match"),y=a.RegExp,B=y.prototype,L=a.SyntaxError,w=t(B.exec),x=t("".charAt),T=t("".replace),M=t("".indexOf),O=t("".slice),D=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,E=/a/g,P=/a/g,R=new y(E)!==E,j=m.MISSED_STICKY,F=m.UNSUPPORTED_Y,W=e&&(!R||j||p||N||s(function(){return P[V]=!1,y(E)!==E||y(P)===P||String(y(E,"i"))!=="/a/i"})),z=function(ie){for(var pe=ie.length,te=0,q="",ne=!1,le;te<=pe;te++){if(le=x(ie,te),le==="\\"){q+=le+x(ie,++te);continue}!ne&&le==="."?q+="[\\s\\S]":(le==="["?ne=!0:le==="]"&&(ne=!1),q+=le)}return q},K=function(ie){for(var pe=ie.length,te=0,q="",ne=[],le=S(null),ee=!1,re=!1,oe=0,fe="",me;te<=pe;te++){if(me=x(ie,te),me==="\\")me+=x(ie,++te);else if(me==="]")ee=!1;else if(!ee)switch(!0){case me==="[":ee=!0;break;case me==="(":w(D,O(ie,te+1))&&(te+=2,re=!0),q+=me,oe++;continue;case(me===">"&&re):if(fe===""||i(le,fe))throw new L("Invalid capture group name");le[fe]=!0,ne[ne.length]=[fe,oe],re=!1,fe="";continue}re?fe+=me:q+=me}return[q,ne]};if(o("RegExp",W)){for(var G=function(){function ue(ie,pe){var te=k(B,this),q=g(ie),ne=pe===void 0,le=[],ee=ie,re,oe,fe,me,Y,ve;if(!te&&q&&ne&&ie.constructor===G)return ie;if((q||k(B,ie))&&(ie=ie.source,ne&&(pe=c(ee))),ie=ie===void 0?"":u(ie),pe=pe===void 0?"":u(pe),ee=ie,p&&"dotAll"in E&&(oe=!!pe&&M(pe,"s")>-1,oe&&(pe=T(pe,/s/g,""))),re=pe,j&&"sticky"in E&&(fe=!!pe&&M(pe,"y")>-1,fe&&F&&(pe=T(pe,/y/g,""))),N&&(me=K(ie),ie=me[0],le=me[1]),Y=f(y(ie,pe),te?this:B,G),(oe||fe||le.length)&&(ve=h(Y),oe&&(ve.dotAll=!0,ve.raw=G(z(ie),re)),fe&&(ve.sticky=!0),le.length&&(ve.groups=le)),ie!==ee)try{b(Y,"source",ee===""?"(?:)":ee)}catch(he){}return Y}return ue}(),J=I(y),Q=0;J.length>Q;)l(G,y,J[Q++]);B.constructor=G,G.prototype=B,d(a,"RegExp",G,{constructor:!0})}C("RegExp")},79669:function(A,r,n){"use strict";var e=n(63964),a=n(14489);e({target:"RegExp",proto:!0,forced:/./.exec!==a},{exec:a})},23057:function(A,r,n){"use strict";var e=n(74685),a=n(58310),t=n(73936),o=n(70901),f=n(40033),b=e.RegExp,S=b.prototype,I=a&&f(function(){var k=!0;try{b(".","d")}catch(i){k=!1}var g={},u="",c=k?"dgimsy":"gimsy",m=function(h,C){Object.defineProperty(g,h,{get:function(){function v(){return u+=C,!0}return v}()})},l={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};k&&(l.hasIndices="d");for(var d in l)m(d,l[d]);var s=Object.getOwnPropertyDescriptor(S,"flags").get.call(g);return s!==c||u!==c});I&&t(S,"flags",{configurable:!0,get:o})},57983:function(A,r,n){"use strict";var e=n(70520).PROPER,a=n(55938),t=n(30365),o=n(12605),f=n(40033),b=n(73392),S="toString",I=RegExp.prototype,k=I[S],g=f(function(){return k.call({source:"a",flags:"b"})!=="/a/b"}),u=e&&k.name!==S;(g||u)&&a(I,S,function(){function c(){var m=t(this),l=o(m.source),d=o(b(m));return"/"+l+"/"+d}return c}(),{unsafe:!0})},1963:function(A,r,n){"use strict";var e=n(45150),a=n(41028);e("Set",function(t){return function(){function o(){return t(this,arguments.length?arguments[0]:void 0)}return o}()},a)},17953:function(A,r,n){"use strict";n(1963)},95309:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("anchor")},{anchor:function(){function o(f){return a(this,"a","name",f)}return o}()})},82256:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("big")},{big:function(){function o(){return a(this,"big","","")}return o}()})},49484:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("blink")},{blink:function(){function o(){return a(this,"blink","","")}return o}()})},38931:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("bold")},{bold:function(){function o(){return a(this,"b","","")}return o}()})},30442:function(A,r,n){"use strict";var e=n(63964),a=n(50233).codeAt;e({target:"String",proto:!0},{codePointAt:function(){function t(o){return a(this,o)}return t}()})},6403:function(A,r,n){"use strict";var e=n(63964),a=n(71138),t=n(27193).f,o=n(10188),f=n(12605),b=n(86213),S=n(16952),I=n(45490),k=n(4493),g=a("".slice),u=Math.min,c=I("endsWith"),m=!k&&!c&&!!function(){var l=t(String.prototype,"endsWith");return l&&!l.writable}();e({target:"String",proto:!0,forced:!m&&!c},{endsWith:function(){function l(d){var s=f(S(this));b(d);var i=arguments.length>1?arguments[1]:void 0,h=s.length,C=i===void 0?h:u(o(i),h),v=f(d);return g(s,C-v.length,C)===v}return l}()})},39308:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("fixed")},{fixed:function(){function o(){return a(this,"tt","","")}return o}()})},91550:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("fontcolor")},{fontcolor:function(){function o(f){return a(this,"font","color",f)}return o}()})},75008:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("fontsize")},{fontsize:function(){function o(f){return a(this,"font","size",f)}return o}()})},9867:function(A,r,n){"use strict";var e=n(63964),a=n(67250),t=n(13912),o=RangeError,f=String.fromCharCode,b=String.fromCodePoint,S=a([].join),I=!!b&&b.length!==1;e({target:"String",stat:!0,arity:1,forced:I},{fromCodePoint:function(){function k(g){for(var u=[],c=arguments.length,m=0,l;c>m;){if(l=+arguments[m++],t(l,1114111)!==l)throw new o(l+" is not a valid code point");u[m]=l<65536?f(l):f(((l-=65536)>>10)+55296,l%1024+56320)}return S(u,"")}return k}()})},43673:function(A,r,n){"use strict";var e=n(63964),a=n(67250),t=n(86213),o=n(16952),f=n(12605),b=n(45490),S=a("".indexOf);e({target:"String",proto:!0,forced:!b("includes")},{includes:function(){function I(k){return!!~S(f(o(this)),f(t(k)),arguments.length>1?arguments[1]:void 0)}return I}()})},56027:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("italics")},{italics:function(){function o(){return a(this,"i","","")}return o}()})},12354:function(A,r,n){"use strict";var e=n(50233).charAt,a=n(12605),t=n(5419),o=n(65574),f=n(5959),b="String Iterator",S=t.set,I=t.getterFor(b);o(String,"String",function(k){S(this,{type:b,string:a(k),index:0})},function(){function k(){var g=I(this),u=g.string,c=g.index,m;return c>=u.length?f(void 0,!0):(m=e(u,c),g.index+=m.length,f(m,!1))}return k}())},50340:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("link")},{link:function(){function o(f){return a(this,"a","href",f)}return o}()})},22515:function(A,r,n){"use strict";var e=n(91495),a=n(79942),t=n(30365),o=n(42871),f=n(10188),b=n(12605),S=n(16952),I=n(78060),k=n(35483),g=n(28340);a("match",function(u,c,m){return[function(){function l(d){var s=S(this),i=o(d)?void 0:I(d,u);return i?e(i,d,s):new RegExp(d)[u](b(s))}return l}(),function(l){var d=t(this),s=b(l),i=m(c,d,s);if(i.done)return i.value;if(!d.global)return g(d,s);var h=d.unicode;d.lastIndex=0;for(var C=[],v=0,p;(p=g(d,s))!==null;){var N=b(p[0]);C[v]=N,N===""&&(d.lastIndex=k(s,f(d.lastIndex),h)),v++}return v===0?null:C}]})},5143:function(A,r,n){"use strict";var e=n(63964),a=n(24051).end,t=n(34125);e({target:"String",proto:!0,forced:t},{padEnd:function(){function o(f){return a(this,f,arguments.length>1?arguments[1]:void 0)}return o}()})},93514:function(A,r,n){"use strict";var e=n(63964),a=n(24051).start,t=n(34125);e({target:"String",proto:!0,forced:t},{padStart:function(){function o(f){return a(this,f,arguments.length>1?arguments[1]:void 0)}return o}()})},5416:function(A,r,n){"use strict";var e=n(63964),a=n(67250),t=n(57591),o=n(46771),f=n(12605),b=n(24760),S=a([].push),I=a([].join);e({target:"String",stat:!0},{raw:function(){function k(g){var u=t(o(g).raw),c=b(u);if(!c)return"";for(var m=arguments.length,l=[],d=0;;){if(S(l,f(u[d++])),d===c)return I(l,"");d")!=="7"});o("replace",function(T,M,O){var D=w?"$":"$0";return[function(){function E(P,R){var j=c(this),F=I(P)?void 0:l(P,h);return F?a(F,P,j,R):a(M,u(j),P,R)}return E}(),function(E,P){var R=b(this),j=u(E);if(typeof P=="string"&&V(P,D)===-1&&V(P,"$<")===-1){var F=O(M,R,j,P);if(F.done)return F.value}var W=S(P);W||(P=u(P));var z=R.global,K;z&&(K=R.unicode,R.lastIndex=0);for(var G=[],J;J=s(R,j),!(J===null||(N(G,J),!z));){var Q=u(J[0]);Q===""&&(R.lastIndex=m(j,g(R.lastIndex),K))}for(var ue="",ie=0,pe=0;pe=ie&&(ue+=y(j,ie,q)+le,ie=q+te.length)}return ue+y(j,ie)}]},!x||!L||w)},63272:function(A,r,n){"use strict";var e=n(91495),a=n(79942),t=n(30365),o=n(42871),f=n(16952),b=n(5700),S=n(12605),I=n(78060),k=n(28340);a("search",function(g,u,c){return[function(){function m(l){var d=f(this),s=o(l)?void 0:I(l,g);return s?e(s,l,d):new RegExp(l)[g](S(d))}return m}(),function(m){var l=t(this),d=S(m),s=c(u,l,d);if(s.done)return s.value;var i=l.lastIndex;b(i,0)||(l.lastIndex=0);var h=k(l,d);return b(l.lastIndex,i)||(l.lastIndex=i),h===null?-1:h.index}]})},34325:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("small")},{small:function(){function o(){return a(this,"small","","")}return o}()})},39930:function(A,r,n){"use strict";var e=n(91495),a=n(67250),t=n(79942),o=n(30365),f=n(42871),b=n(16952),S=n(28987),I=n(35483),k=n(10188),g=n(12605),u=n(78060),c=n(28340),m=n(62115),l=n(40033),d=m.UNSUPPORTED_Y,s=4294967295,i=Math.min,h=a([].push),C=a("".slice),v=!l(function(){var N=/(?:)/,V=N.exec;N.exec=function(){return V.apply(this,arguments)};var y="ab".split(N);return y.length!==2||y[0]!=="a"||y[1]!=="b"}),p="abbc".split(/(b)*/)[1]==="c"||"test".split(/(?:)/,-1).length!==4||"ab".split(/(?:ab)*/).length!==2||".".split(/(.?)(.?)/).length!==4||".".split(/()()/).length>1||"".split(/.?/).length;t("split",function(N,V,y){var B="0".split(void 0,0).length?function(L,w){return L===void 0&&w===0?[]:e(V,this,L,w)}:V;return[function(){function L(w,x){var T=b(this),M=f(w)?void 0:u(w,N);return M?e(M,w,T,x):e(B,g(T),w,x)}return L}(),function(L,w){var x=o(this),T=g(L);if(!p){var M=y(B,x,T,w,B!==V);if(M.done)return M.value}var O=S(x,RegExp),D=x.unicode,E=(x.ignoreCase?"i":"")+(x.multiline?"m":"")+(x.unicode?"u":"")+(d?"g":"y"),P=new O(d?"^(?:"+x.source+")":x,E),R=w===void 0?s:w>>>0;if(R===0)return[];if(T.length===0)return c(P,T)===null?[T]:[];for(var j=0,F=0,W=[];F1?arguments[1]:void 0,s.length)),h=f(d);return g(s,i,i+h.length)===h}return l}()})},74498:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("strike")},{strike:function(){function o(){return a(this,"strike","","")}return o}()})},15812:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("sub")},{sub:function(){function o(){return a(this,"sub","","")}return o}()})},57726:function(A,r,n){"use strict";var e=n(63964),a=n(72506),t=n(88539);e({target:"String",proto:!0,forced:t("sup")},{sup:function(){function o(){return a(this,"sup","","")}return o}()})},70604:function(A,r,n){"use strict";n(99159);var e=n(63964),a=n(43476);e({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==a},{trimEnd:a})},85404:function(A,r,n){"use strict";var e=n(63964),a=n(43885);e({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==a},{trimLeft:a})},99159:function(A,r,n){"use strict";var e=n(63964),a=n(43476);e({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==a},{trimRight:a})},34965:function(A,r,n){"use strict";n(85404);var e=n(63964),a=n(43885);e({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==a},{trimStart:a})},8448:function(A,r,n){"use strict";var e=n(63964),a=n(92648).trim,t=n(90012);e({target:"String",proto:!0,forced:t("trim")},{trim:function(){function o(){return a(this)}return o}()})},79250:function(A,r,n){"use strict";var e=n(85889);e("asyncIterator")},49899:function(A,r,n){"use strict";var e=n(63964),a=n(74685),t=n(91495),o=n(67250),f=n(4493),b=n(58310),S=n(52357),I=n(40033),k=n(45299),g=n(21287),u=n(30365),c=n(57591),m=n(767),l=n(12605),d=n(87458),s=n(80674),i=n(18450),h=n(37310),C=n(81644),v=n(89235),p=n(27193),N=n(74595),V=n(24239),y=n(12867),B=n(55938),L=n(73936),w=n(16639),x=n(19417),T=n(79195),M=n(16738),O=n(24697),D=n(55557),E=n(85889),P=n(52360),R=n(84925),j=n(5419),F=n(22603).forEach,W=x("hidden"),z="Symbol",K="prototype",G=j.set,J=j.getterFor(z),Q=Object[K],ue=a.Symbol,ie=ue&&ue[K],pe=a.RangeError,te=a.TypeError,q=a.QObject,ne=p.f,le=N.f,ee=C.f,re=y.f,oe=o([].push),fe=w("symbols"),me=w("op-symbols"),Y=w("wks"),ve=!q||!q[K]||!q[K].findChild,he=function(Ce,ke,ge){var Se=ne(Q,ke);Se&&delete Q[ke],le(Ce,ke,ge),Se&&Ce!==Q&&le(Q,ke,Se)},Ve=b&&I(function(){return s(le({},"a",{get:function(){function de(){return le(this,"a",{value:7}).a}return de}()})).a!==7})?he:le,Be=function(Ce,ke){var ge=fe[Ce]=s(ie);return G(ge,{type:z,tag:Ce,description:ke}),b||(ge.description=ke),ge},be=function(){function de(Ce,ke,ge){Ce===Q&&be(me,ke,ge),u(Ce);var Se=m(ke);return u(ge),k(fe,Se)?(ge.enumerable?(k(Ce,W)&&Ce[W][Se]&&(Ce[W][Se]=!1),ge=s(ge,{enumerable:d(0,!1)})):(k(Ce,W)||le(Ce,W,d(1,s(null))),Ce[W][Se]=!0),Ve(Ce,Se,ge)):le(Ce,Se,ge)}return de}(),Le=function(){function de(Ce,ke){u(Ce);var ge=c(ke),Se=i(ge).concat(ye(ge));return F(Se,function(Pe){(!b||t(xe,ge,Pe))&&be(Ce,Pe,ge[Pe])}),Ce}return de}(),we=function(){function de(Ce,ke){return ke===void 0?s(Ce):Le(s(Ce),ke)}return de}(),xe=function(){function de(Ce){var ke=m(Ce),ge=t(re,this,ke);return this===Q&&k(fe,ke)&&!k(me,ke)?!1:ge||!k(this,ke)||!k(fe,ke)||k(this,W)&&this[W][ke]?ge:!0}return de}(),Re=function(){function de(Ce,ke){var ge=c(Ce),Se=m(ke);if(!(ge===Q&&k(fe,Se)&&!k(me,Se))){var Pe=ne(ge,Se);return Pe&&k(fe,Se)&&!(k(ge,W)&&ge[W][Se])&&(Pe.enumerable=!0),Pe}}return de}(),He=function(){function de(Ce){var ke=ee(c(Ce)),ge=[];return F(ke,function(Se){!k(fe,Se)&&!k(T,Se)&&oe(ge,Se)}),ge}return de}(),ye=function(Ce){var ke=Ce===Q,ge=ee(ke?me:c(Ce)),Se=[];return F(ge,function(Pe){k(fe,Pe)&&(!ke||k(Q,Pe))&&oe(Se,fe[Pe])}),Se};S||(ue=function(){function de(){if(g(ie,this))throw new te("Symbol is not a constructor");var Ce=!arguments.length||arguments[0]===void 0?void 0:l(arguments[0]),ke=M(Ce),ge=function(){function Se(Pe){var je=this===void 0?a:this;je===Q&&t(Se,me,Pe),k(je,W)&&k(je[W],ke)&&(je[W][ke]=!1);var _e=d(1,Pe);try{Ve(je,ke,_e)}catch(ze){if(!(ze instanceof pe))throw ze;he(je,ke,_e)}}return Se}();return b&&ve&&Ve(Q,ke,{configurable:!0,set:ge}),Be(ke,Ce)}return de}(),ie=ue[K],B(ie,"toString",function(){function de(){return J(this).tag}return de}()),B(ue,"withoutSetter",function(de){return Be(M(de),de)}),y.f=xe,N.f=be,V.f=Le,p.f=Re,h.f=C.f=He,v.f=ye,D.f=function(de){return Be(O(de),de)},b&&(L(ie,"description",{configurable:!0,get:function(){function de(){return J(this).description}return de}()}),f||B(Q,"propertyIsEnumerable",xe,{unsafe:!0}))),e({global:!0,constructor:!0,wrap:!0,forced:!S,sham:!S},{Symbol:ue}),F(i(Y),function(de){E(de)}),e({target:z,stat:!0,forced:!S},{useSetter:function(){function de(){ve=!0}return de}(),useSimple:function(){function de(){ve=!1}return de}()}),e({target:"Object",stat:!0,forced:!S,sham:!b},{create:we,defineProperty:be,defineProperties:Le,getOwnPropertyDescriptor:Re}),e({target:"Object",stat:!0,forced:!S},{getOwnPropertyNames:He}),P(),R(ue,z),T[W]=!0},10933:function(A,r,n){"use strict";var e=n(63964),a=n(58310),t=n(74685),o=n(67250),f=n(45299),b=n(55747),S=n(21287),I=n(12605),k=n(73936),g=n(5774),u=t.Symbol,c=u&&u.prototype;if(a&&b(u)&&(!("description"in c)||u().description!==void 0)){var m={},l=function(){function p(){var N=arguments.length<1||arguments[0]===void 0?void 0:I(arguments[0]),V=S(c,this)?new u(N):N===void 0?u():u(N);return N===""&&(m[V]=!0),V}return p}();g(l,u),l.prototype=c,c.constructor=l;var d=String(u("description detection"))==="Symbol(description detection)",s=o(c.valueOf),i=o(c.toString),h=/^Symbol\((.*)\)[^)]+$/,C=o("".replace),v=o("".slice);k(c,"description",{configurable:!0,get:function(){function p(){var N=s(this);if(f(m,N))return"";var V=i(N),y=d?v(V,7,-1):C(V,h,"$1");return y===""?void 0:y}return p}()}),e({global:!0,constructor:!0,forced:!0},{Symbol:l})}},30828:function(A,r,n){"use strict";var e=n(63964),a=n(4009),t=n(45299),o=n(12605),f=n(16639),b=n(66570),S=f("string-to-symbol-registry"),I=f("symbol-to-string-registry");e({target:"Symbol",stat:!0,forced:!b},{for:function(){function k(g){var u=o(g);if(t(S,u))return S[u];var c=a("Symbol")(u);return S[u]=c,I[c]=u,c}return k}()})},53795:function(A,r,n){"use strict";var e=n(85889);e("hasInstance")},87806:function(A,r,n){"use strict";var e=n(85889);e("isConcatSpreadable")},64677:function(A,r,n){"use strict";var e=n(85889);e("iterator")},33313:function(A,r,n){"use strict";n(49899),n(30828),n(6862),n(53008),n(28603)},6862:function(A,r,n){"use strict";var e=n(63964),a=n(45299),t=n(71399),o=n(89393),f=n(16639),b=n(66570),S=f("symbol-to-string-registry");e({target:"Symbol",stat:!0,forced:!b},{keyFor:function(){function I(k){if(!t(k))throw new TypeError(o(k)+" is not a symbol");if(a(S,k))return S[k]}return I}()})},48058:function(A,r,n){"use strict";var e=n(85889);e("match")},51583:function(A,r,n){"use strict";var e=n(85889);e("replace")},82403:function(A,r,n){"use strict";var e=n(85889);e("search")},34265:function(A,r,n){"use strict";var e=n(85889);e("species")},3295:function(A,r,n){"use strict";var e=n(85889);e("split")},1078:function(A,r,n){"use strict";var e=n(85889),a=n(52360);e("toPrimitive"),a()},63207:function(A,r,n){"use strict";var e=n(4009),a=n(85889),t=n(84925);a("toStringTag"),t(e("Symbol"),"Symbol")},80520:function(A,r,n){"use strict";var e=n(85889);e("unscopables")},99872:function(A,r,n){"use strict";var e=n(67250),a=n(4246),t=n(71447),o=e(t),f=a.aTypedArray,b=a.exportTypedArrayMethod;b("copyWithin",function(){function S(I,k){return o(f(this),I,k,arguments.length>2?arguments[2]:void 0)}return S}())},73364:function(A,r,n){"use strict";var e=n(4246),a=n(22603).every,t=e.aTypedArray,o=e.exportTypedArrayMethod;o("every",function(){function f(b){return a(t(this),b,arguments.length>1?arguments[1]:void 0)}return f}())},58166:function(A,r,n){"use strict";var e=n(4246),a=n(88471),t=n(61484),o=n(2281),f=n(91495),b=n(67250),S=n(40033),I=e.aTypedArray,k=e.exportTypedArrayMethod,g=b("".slice),u=S(function(){var c=0;return new Int8Array(2).fill({valueOf:function(){function m(){return c++}return m}()}),c!==1});k("fill",function(){function c(m){var l=arguments.length;I(this);var d=g(o(this),0,3)==="Big"?t(m):+m;return f(a,this,d,l>1?arguments[1]:void 0,l>2?arguments[2]:void 0)}return c}(),u)},23793:function(A,r,n){"use strict";var e=n(4246),a=n(22603).filter,t=n(45399),o=e.aTypedArray,f=e.exportTypedArrayMethod;f("filter",function(){function b(S){var I=a(o(this),S,arguments.length>1?arguments[1]:void 0);return t(this,I)}return b}())},13917:function(A,r,n){"use strict";var e=n(4246),a=n(22603).findIndex,t=e.aTypedArray,o=e.exportTypedArrayMethod;o("findIndex",function(){function f(b){return a(t(this),b,arguments.length>1?arguments[1]:void 0)}return f}())},43820:function(A,r,n){"use strict";var e=n(4246),a=n(22603).find,t=e.aTypedArray,o=e.exportTypedArrayMethod;o("find",function(){function f(b){return a(t(this),b,arguments.length>1?arguments[1]:void 0)}return f}())},80756:function(A,r,n){"use strict";var e=n(80185);e("Float32",function(a){return function(){function t(o,f,b){return a(this,o,f,b)}return t}()})},70567:function(A,r,n){"use strict";var e=n(80185);e("Float64",function(a){return function(){function t(o,f,b){return a(this,o,f,b)}return t}()})},19852:function(A,r,n){"use strict";var e=n(4246),a=n(22603).forEach,t=e.aTypedArray,o=e.exportTypedArrayMethod;o("forEach",function(){function f(b){a(t(this),b,arguments.length>1?arguments[1]:void 0)}return f}())},40379:function(A,r,n){"use strict";var e=n(86563),a=n(4246).exportTypedArrayStaticMethod,t=n(3805);a("from",t,e)},92770:function(A,r,n){"use strict";var e=n(4246),a=n(14211).includes,t=e.aTypedArray,o=e.exportTypedArrayMethod;o("includes",function(){function f(b){return a(t(this),b,arguments.length>1?arguments[1]:void 0)}return f}())},81069:function(A,r,n){"use strict";var e=n(4246),a=n(14211).indexOf,t=e.aTypedArray,o=e.exportTypedArrayMethod;o("indexOf",function(){function f(b){return a(t(this),b,arguments.length>1?arguments[1]:void 0)}return f}())},60037:function(A,r,n){"use strict";var e=n(80185);e("Int16",function(a){return function(){function t(o,f,b){return a(this,o,f,b)}return t}()})},44195:function(A,r,n){"use strict";var e=n(80185);e("Int32",function(a){return function(){function t(o,f,b){return a(this,o,f,b)}return t}()})},66756:function(A,r,n){"use strict";var e=n(80185);e("Int8",function(a){return function(){function t(o,f,b){return a(this,o,f,b)}return t}()})},63689:function(A,r,n){"use strict";var e=n(74685),a=n(40033),t=n(67250),o=n(4246),f=n(34570),b=n(24697),S=b("iterator"),I=e.Uint8Array,k=t(f.values),g=t(f.keys),u=t(f.entries),c=o.aTypedArray,m=o.exportTypedArrayMethod,l=I&&I.prototype,d=!a(function(){l[S].call([1])}),s=!!l&&l.values&&l[S]===l.values&&l.values.name==="values",i=function(){function h(){return k(c(this))}return h}();m("entries",function(){function h(){return u(c(this))}return h}(),d),m("keys",function(){function h(){return g(c(this))}return h}(),d),m("values",i,d||!s,{name:"values"}),m(S,i,d||!s,{name:"values"})},5659:function(A,r,n){"use strict";var e=n(4246),a=n(67250),t=e.aTypedArray,o=e.exportTypedArrayMethod,f=a([].join);o("join",function(){function b(S){return f(t(this),S)}return b}())},25014:function(A,r,n){"use strict";var e=n(4246),a=n(61267),t=n(1325),o=e.aTypedArray,f=e.exportTypedArrayMethod;f("lastIndexOf",function(){function b(S){var I=arguments.length;return a(t,o(this),I>1?[S,arguments[1]]:[S])}return b}())},32189:function(A,r,n){"use strict";var e=n(4246),a=n(22603).map,t=n(31082),o=e.aTypedArray,f=e.exportTypedArrayMethod;f("map",function(){function b(S){return a(o(this),S,arguments.length>1?arguments[1]:void 0,function(I,k){return new(t(I))(k)})}return b}())},23030:function(A,r,n){"use strict";var e=n(4246),a=n(86563),t=e.aTypedArrayConstructor,o=e.exportTypedArrayStaticMethod;o("of",function(){function f(){for(var b=0,S=arguments.length,I=new(t(this))(S);S>b;)I[b]=arguments[b++];return I}return f}(),a)},49110:function(A,r,n){"use strict";var e=n(4246),a=n(56844).right,t=e.aTypedArray,o=e.exportTypedArrayMethod;o("reduceRight",function(){function f(b){var S=arguments.length;return a(t(this),b,S,S>1?arguments[1]:void 0)}return f}())},24309:function(A,r,n){"use strict";var e=n(4246),a=n(56844).left,t=e.aTypedArray,o=e.exportTypedArrayMethod;o("reduce",function(){function f(b){var S=arguments.length;return a(t(this),b,S,S>1?arguments[1]:void 0)}return f}())},56445:function(A,r,n){"use strict";var e=n(4246),a=e.aTypedArray,t=e.exportTypedArrayMethod,o=Math.floor;t("reverse",function(){function f(){for(var b=this,S=a(b).length,I=o(S/2),k=0,g;k1?arguments[1]:void 0,1),C=b(i);if(l)return a(u,this,C,h);var v=this.length,p=o(C),N=0;if(p+h>v)throw new I("Wrong length");for(;N m;)d[m]=u[m++];return d}return I}(),S)},88739:function(A,r,n){"use strict";var e=n(4246),a=n(22603).some,t=e.aTypedArray,o=e.exportTypedArrayMethod;o("some",function(){function f(b){return a(t(this),b,arguments.length>1?arguments[1]:void 0)}return f}())},60415:function(A,r,n){"use strict";var e=n(74685),a=n(71138),t=n(40033),o=n(10320),f=n(90274),b=n(4246),S=n(652),I=n(19228),k=n(5026),g=n(9342),u=b.aTypedArray,c=b.exportTypedArrayMethod,m=e.Uint16Array,l=m&&a(m.prototype.sort),d=!!l&&!(t(function(){l(new m(2),null)})&&t(function(){l(new m(2),{})})),s=!!l&&!t(function(){if(k)return k<74;if(S)return S<67;if(I)return!0;if(g)return g<602;var h=new m(516),C=Array(516),v,p;for(v=0;v<516;v++)p=v%4,h[v]=515-v,C[v]=v-2*p+3;for(l(h,function(N,V){return(N/4|0)-(V/4|0)}),v=0;v<516;v++)if(h[v]!==C[v])return!0}),i=function(C){return function(v,p){return C!==void 0?+C(v,p)||0:p!==p?-1:v!==v?1:v===0&&p===0?1/v>0&&1/p<0?1:-1:v>p}};c("sort",function(){function h(C){return C!==void 0&&o(C),s?l(this,C):f(u(this),i(C))}return h}(),!s||d)},72532:function(A,r,n){"use strict";var e=n(4246),a=n(10188),t=n(13912),o=n(31082),f=e.aTypedArray,b=e.exportTypedArrayMethod;b("subarray",function(){function S(I,k){var g=f(this),u=g.length,c=t(I,u),m=o(g);return new m(g.buffer,g.byteOffset+c*g.BYTES_PER_ELEMENT,a((k===void 0?u:t(k,u))-c))}return S}())},62207:function(A,r,n){"use strict";var e=n(74685),a=n(61267),t=n(4246),o=n(40033),f=n(54602),b=e.Int8Array,S=t.aTypedArray,I=t.exportTypedArrayMethod,k=[].toLocaleString,g=!!b&&o(function(){k.call(new b(1))}),u=o(function(){return[1,2].toLocaleString()!==new b([1,2]).toLocaleString()})||!o(function(){b.prototype.toLocaleString.call([1,2])});I("toLocaleString",function(){function c(){return a(k,g?f(S(this)):S(this),f(arguments))}return c}(),u)},906:function(A,r,n){"use strict";var e=n(4246).exportTypedArrayMethod,a=n(40033),t=n(74685),o=n(67250),f=t.Uint8Array,b=f&&f.prototype||{},S=[].toString,I=o([].join);a(function(){S.call({})})&&(S=function(){function g(){return I(this)}return g}());var k=b.toString!==S;e("toString",S,k)},78824:function(A,r,n){"use strict";var e=n(80185);e("Uint16",function(a){return function(){function t(o,f,b){return a(this,o,f,b)}return t}()})},72846:function(A,r,n){"use strict";var e=n(80185);e("Uint32",function(a){return function(){function t(o,f,b){return a(this,o,f,b)}return t}()})},24575:function(A,r,n){"use strict";var e=n(80185);e("Uint8",function(a){return function(){function t(o,f,b){return a(this,o,f,b)}return t}()})},71968:function(A,r,n){"use strict";var e=n(80185);e("Uint8",function(a){return function(){function t(o,f,b){return a(this,o,f,b)}return t}()},!0)},80040:function(A,r,n){"use strict";var e=n(50730),a=n(74685),t=n(67250),o=n(30145),f=n(81969),b=n(45150),S=n(39895),I=n(77568),k=n(5419).enforce,g=n(40033),u=n(21820),c=Object,m=Array.isArray,l=c.isExtensible,d=c.isFrozen,s=c.isSealed,i=c.freeze,h=c.seal,C=!a.ActiveXObject&&"ActiveXObject"in a,v,p=function(M){return function(){function O(){return M(this,arguments.length?arguments[0]:void 0)}return O}()},N=b("WeakMap",p,S),V=N.prototype,y=t(V.set),B=function(){return e&&g(function(){var M=i([]);return y(new N,M,1),!d(M)})};if(u)if(C){v=S.getConstructor(p,"WeakMap",!0),f.enable();var L=t(V.delete),w=t(V.has),x=t(V.get);o(V,{delete:function(){function T(M){if(I(M)&&!l(M)){var O=k(this);return O.frozen||(O.frozen=new v),L(this,M)||O.frozen.delete(M)}return L(this,M)}return T}(),has:function(){function T(M){if(I(M)&&!l(M)){var O=k(this);return O.frozen||(O.frozen=new v),w(this,M)||O.frozen.has(M)}return w(this,M)}return T}(),get:function(){function T(M){if(I(M)&&!l(M)){var O=k(this);return O.frozen||(O.frozen=new v),w(this,M)?x(this,M):O.frozen.get(M)}return x(this,M)}return T}(),set:function(){function T(M,O){if(I(M)&&!l(M)){var D=k(this);D.frozen||(D.frozen=new v),w(this,M)?y(this,M,O):D.frozen.set(M,O)}else y(this,M,O);return this}return T}()})}else B()&&o(V,{set:function(){function T(M,O){var D;return m(M)&&(d(M)?D=i:s(M)&&(D=h)),y(this,M,O),D&&D(M),this}return T}()})},90846:function(A,r,n){"use strict";n(80040)},67042:function(A,r,n){"use strict";var e=n(45150),a=n(39895);e("WeakSet",function(t){return function(){function o(){return t(this,arguments.length?arguments[0]:void 0)}return o}()},a)},40348:function(A,r,n){"use strict";n(67042)},5606:function(A,r,n){"use strict";var e=n(63964),a=n(74685),t=n(60375).clear;e({global:!0,bind:!0,enumerable:!0,forced:a.clearImmediate!==t},{clearImmediate:t})},83006:function(A,r,n){"use strict";n(5606),n(27807)},25764:function(A,r,n){"use strict";var e=n(63964),a=n(74685),t=n(37713),o=n(10320),f=n(24986),b=n(40033),S=n(58310),I=b(function(){return S&&Object.getOwnPropertyDescriptor(a,"queueMicrotask").value.length!==1});e({global:!0,enumerable:!0,dontCallGetSet:!0,forced:I},{queueMicrotask:function(){function k(g){f(arguments.length,1),t(o(g))}return k}()})},27807:function(A,r,n){"use strict";var e=n(63964),a=n(74685),t=n(60375).set,o=n(78362),f=a.setImmediate?o(t,!1):t;e({global:!0,bind:!0,enumerable:!0,forced:a.setImmediate!==f},{setImmediate:f})},45569:function(A,r,n){"use strict";var e=n(63964),a=n(74685),t=n(78362),o=t(a.setInterval,!0);e({global:!0,bind:!0,forced:a.setInterval!==o},{setInterval:o})},5213:function(A,r,n){"use strict";var e=n(63964),a=n(74685),t=n(78362),o=t(a.setTimeout,!0);e({global:!0,bind:!0,forced:a.setTimeout!==o},{setTimeout:o})},69401:function(A,r,n){"use strict";n(45569),n(5213)},7435:function(A){"use strict";/**
+ */var t=r.BoxWithSampleText=function(){function o(f){return(0,e.normalizeProps)((0,e.createComponentVNode)(2,a.Box,Object.assign({},f,{children:[(0,e.createComponentVNode)(2,a.Box,{italic:!0,children:"Jackdaws love my big sphinx of quartz."}),(0,e.createComponentVNode)(2,a.Box,{mt:1,bold:!0,children:"The wide electrification of the southern provinces will give a powerful impetus to the growth of agriculture."})]})))}return o}()},67160:function(){},23542:function(){},30386:function(){},98996:function(){},50578:function(){},4444:function(){},77870:function(){},23632:function(){},56492:function(){},39108:function(){},11714:function(){},73492:function(){},49641:function(){},17570:function(){},61858:function(){},32882:function(){},70752:function(A,r,n){var e={"./pai_atmosphere.js":80818,"./pai_bioscan.js":23903,"./pai_directives.js":64988,"./pai_doorjack.js":13813,"./pai_main_menu.js":66025,"./pai_manifest.js":2983,"./pai_medrecords.js":40758,"./pai_messenger.js":98599,"./pai_radio.js":50775,"./pai_secrecords.js":48623,"./pai_signaler.js":47297};function a(o){var f=t(o);return n(f)}function t(o){if(!n.o(e,o)){var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}return e[o]}a.keys=function(){return Object.keys(e)},a.resolve=t,A.exports=a,a.id=70752},59395:function(A,r,n){var e={"./pda_atmos_scan.js":78532,"./pda_games.js":2395,"./pda_janitor.js":40253,"./pda_main_menu.js":58293,"./pda_manifest.js":58059,"./pda_medical.js":18147,"./pda_messenger.js":77595,"./pda_minesweeper.js":90382,"./pda_mule.js":24635,"./pda_nanobank.js":23734,"./pda_notes.js":97085,"./pda_power.js":57513,"./pda_secbot.js":99808,"./pda_security.js":77168,"./pda_signaler.js":21773,"./pda_status_display.js":81857,"./pda_supplyrecords.js":70287};function a(o){var f=t(o);return n(f)}function t(o){if(!n.o(e,o)){var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}return e[o]}a.keys=function(){return Object.keys(e)},a.resolve=t,A.exports=a,a.id=59395},32054:function(A,r,n){var e={"./AICard":1090,"./AICard.js":1090,"./AIFixer":39454,"./AIFixer.js":39454,"./APC":88422,"./APC.js":88422,"./ATM":99660,"./ATM.js":99660,"./AccountsUplinkTerminal":86423,"./AccountsUplinkTerminal.js":86423,"./AdminAntagMenu":23001,"./AdminAntagMenu.js":23001,"./AgentCard":39683,"./AgentCard.tsx":39683,"./AiAirlock":56793,"./AiAirlock.js":56793,"./AirAlarm":72475,"./AirAlarm.js":72475,"./AirlockAccessController":12333,"./AirlockAccessController.js":12333,"./AirlockElectronics":28736,"./AirlockElectronics.js":28736,"./AlertModal":47365,"./AlertModal.tsx":47365,"./AppearanceChanger":71824,"./AppearanceChanger.js":71824,"./AtmosAlertConsole":72285,"./AtmosAlertConsole.js":72285,"./AtmosControl":65805,"./AtmosControl.js":65805,"./AtmosFilter":87816,"./AtmosFilter.js":87816,"./AtmosGraphMonitor":57258,"./AtmosGraphMonitor.tsx":57258,"./AtmosMixer":52977,"./AtmosMixer.js":52977,"./AtmosPump":11748,"./AtmosPump.js":11748,"./AtmosTankControl":69321,"./AtmosTankControl.js":69321,"./AugmentMenu":92444,"./AugmentMenu.js":92444,"./Autolathe":59179,"./Autolathe.js":59179,"./Autolathe220":29943,"./Autolathe220.tsx":29943,"./BioChipPad":5147,"./BioChipPad.js":5147,"./Biogenerator":64273,"./Biogenerator.js":64273,"./BloomEdit":47823,"./BloomEdit.js":47823,"./BlueSpaceArtilleryControl":18621,"./BlueSpaceArtilleryControl.js":18621,"./BluespaceTap":27629,"./BluespaceTap.js":27629,"./BodyScanner":33758,"./BodyScanner.js":33758,"./BookBinder":67963,"./BookBinder.js":67963,"./BotCall":61925,"./BotCall.js":61925,"./BotClean":20464,"./BotClean.js":20464,"./BotFloor":69479,"./BotFloor.js":69479,"./BotHonk":59887,"./BotHonk.js":59887,"./BotMed":80063,"./BotMed.js":80063,"./BotSecurity":74439,"./BotSecurity.js":74439,"./BrigCells":10833,"./BrigCells.js":10833,"./BrigTimer":45761,"./BrigTimer.js":45761,"./CameraConsole":26300,"./CameraConsole.js":26300,"./CameraConsole220":39222,"./CameraConsole220.js":39222,"./Canister":52927,"./Canister.js":52927,"./CardComputer":51793,"./CardComputer.js":51793,"./CargoConsole":64083,"./CargoConsole.js":64083,"./Chameleon":36232,"./Chameleon.tsx":36232,"./ChangelogView":87331,"./ChangelogView.js":87331,"./CheckboxListInputModal":91360,"./CheckboxListInputModal.tsx":91360,"./ChemDispenser":36108,"./ChemDispenser.js":36108,"./ChemHeater":13146,"./ChemHeater.js":13146,"./ChemMaster":56541,"./ChemMaster.tsx":56541,"./CloningConsole":37173,"./CloningConsole.js":37173,"./CloningPod":98723,"./CloningPod.js":98723,"./CoinMint":18259,"./CoinMint.tsx":18259,"./ColorPickerModal":93858,"./ColorPickerModal.tsx":93858,"./ColourMatrixTester":8444,"./ColourMatrixTester.js":8444,"./CommunicationsComputer":63818,"./CommunicationsComputer.js":63818,"./CompostBin":20562,"./CompostBin.js":20562,"./Contractor":21813,"./Contractor.js":21813,"./ConveyorSwitch":54151,"./ConveyorSwitch.js":54151,"./CrewMonitor":73169,"./CrewMonitor.js":73169,"./Cryo":63987,"./Cryo.js":63987,"./CryopodConsole":86099,"./CryopodConsole.js":86099,"./DNAModifier":12692,"./DNAModifier.js":12692,"./DecalPainter":76430,"./DecalPainter.js":76430,"./DestinationTagger":41074,"./DestinationTagger.js":41074,"./DisposalBin":46500,"./DisposalBin.js":46500,"./DnaVault":33233,"./DnaVault.js":33233,"./DroneConsole":33681,"./DroneConsole.js":33681,"./EFTPOS":17263,"./EFTPOS.js":17263,"./ERTManager":76382,"./ERTManager.js":76382,"./EconomyManager":90217,"./EconomyManager.js":90217,"./Electropack":82565,"./Electropack.js":82565,"./Emojipedia":11243,"./Emojipedia.tsx":11243,"./EmotePanel":69784,"./EmotePanel.js":69784,"./EvolutionMenu":36730,"./EvolutionMenu.js":36730,"./ExosuitFabricator":17370,"./ExosuitFabricator.js":17370,"./ExperimentConsole":59128,"./ExperimentConsole.js":59128,"./ExternalAirlockController":97086,"./ExternalAirlockController.js":97086,"./FaxMachine":96142,"./FaxMachine.js":96142,"./FilingCabinet":74123,"./FilingCabinet.js":74123,"./FloorPainter":83767,"./FloorPainter.js":83767,"./GPS":53424,"./GPS.js":53424,"./GeneModder":89124,"./GeneModder.js":89124,"./GenericCrewManifest":73053,"./GenericCrewManifest.js":73053,"./GhostHudPanel":42914,"./GhostHudPanel.js":42914,"./GlandDispenser":25825,"./GlandDispenser.js":25825,"./GravityGen":10270,"./GravityGen.js":10270,"./GuestPass":48657,"./GuestPass.js":48657,"./HandheldChemDispenser":67834,"./HandheldChemDispenser.js":67834,"./HealthSensor":46098,"./HealthSensor.js":46098,"./Holodeck":36771,"./Holodeck.js":36771,"./Instrument":25471,"./Instrument.js":25471,"./Jukebox":52736,"./Jukebox.tsx":52736,"./KeyComboModal":13618,"./KeyComboModal.tsx":13618,"./KeycardAuth":35655,"./KeycardAuth.js":35655,"./KitchenMachine":62955,"./KitchenMachine.js":62955,"./LawManager":9525,"./LawManager.js":9525,"./LibraryComputer":85066,"./LibraryComputer.js":85066,"./LibraryManager":9516,"./LibraryManager.js":9516,"./ListInputModal":90447,"./ListInputModal.tsx":90447,"./Loadout":26826,"./Loadout.tsx":26826,"./MODsuit":77613,"./MODsuit.js":77613,"./MagnetController":78624,"./MagnetController.js":78624,"./MechBayConsole":72106,"./MechBayConsole.js":72106,"./MechaControlConsole":7466,"./MechaControlConsole.js":7466,"./MedicalRecords":79625,"./MedicalRecords.js":79625,"./MerchVendor":54989,"./MerchVendor.js":54989,"./MiningVendor":87684,"./MiningVendor.js":87684,"./ModpacksList":61468,"./ModpacksList.js":61468,"./NTRecruiter":59783,"./NTRecruiter.js":59783,"./Newscaster":64713,"./Newscaster.js":64713,"./Noticeboard":48286,"./Noticeboard.tsx":48286,"./NuclearBomb":41166,"./NuclearBomb.js":41166,"./NumberInputModal":52416,"./NumberInputModal.tsx":52416,"./OperatingComputer":1218,"./OperatingComputer.js":1218,"./Orbit":46892,"./Orbit.js":46892,"./OreRedemption":15421,"./OreRedemption.js":15421,"./PAI":52754,"./PAI.js":52754,"./PDA":85175,"./PDA.js":85175,"./Pacman":68654,"./Pacman.js":68654,"./PanDEMIC":1701,"./PanDEMIC.tsx":1701,"./ParticleAccelerator":67921,"./ParticleAccelerator.js":67921,"./PdaPainter":71432,"./PdaPainter.js":71432,"./PersonalCrafting":33388,"./PersonalCrafting.js":33388,"./Photocopier":56150,"./Photocopier.js":56150,"./Photocopier220":8340,"./Photocopier220.js":8340,"./PoolController":84676,"./PoolController.js":84676,"./PortablePump":57003,"./PortablePump.js":57003,"./PortableScrubber":70069,"./PortableScrubber.js":70069,"./PortableTurret":59955,"./PortableTurret.js":59955,"./PowerMonitor":61631,"./PowerMonitor.js":61631,"./PrisonerImplantManager":50992,"./PrisonerImplantManager.js":50992,"./PrisonerShuttleConsole":53952,"./PrisonerShuttleConsole.js":53952,"./PrizeCounter":97852,"./PrizeCounter.tsx":97852,"./RCD":94813,"./RCD.js":94813,"./RPD":18738,"./RPD.js":18738,"./Radio":80299,"./Radio.js":80299,"./RankedListInputModal":14846,"./RankedListInputModal.tsx":14846,"./ReagentGrinder":48125,"./ReagentGrinder.js":48125,"./ReagentsEditor":58262,"./ReagentsEditor.tsx":58262,"./RemoteSignaler":30207,"./RemoteSignaler.js":30207,"./RequestConsole":25472,"./RequestConsole.js":25472,"./RndBackupConsole":9861,"./RndBackupConsole.js":9861,"./RndConsole":12644,"./RndConsole/":12644,"./RndConsole/AnalyzerMenu":68303,"./RndConsole/AnalyzerMenu.js":68303,"./RndConsole/DataDiskMenu":37556,"./RndConsole/DataDiskMenu.js":37556,"./RndConsole/LatheCategory":16830,"./RndConsole/LatheCategory.js":16830,"./RndConsole/LatheChemicalStorage":70497,"./RndConsole/LatheChemicalStorage.js":70497,"./RndConsole/LatheMainMenu":70864,"./RndConsole/LatheMainMenu.js":70864,"./RndConsole/LatheMaterialStorage":42878,"./RndConsole/LatheMaterialStorage.js":42878,"./RndConsole/LatheMaterials":52662,"./RndConsole/LatheMaterials.js":52662,"./RndConsole/LatheMenu":9681,"./RndConsole/LatheMenu.js":9681,"./RndConsole/LatheSearch":68198,"./RndConsole/LatheSearch.js":68198,"./RndConsole/LinkMenu":81421,"./RndConsole/LinkMenu.js":81421,"./RndConsole/SettingsMenu":6256,"./RndConsole/SettingsMenu.js":6256,"./RndConsole/index":12644,"./RndConsole/index.js":12644,"./RndNetController":29205,"./RndNetController.js":29205,"./RndServer":63315,"./RndServer.js":63315,"./RobotSelfDiagnosis":26109,"./RobotSelfDiagnosis.js":26109,"./RoboticsControlConsole":97997,"./RoboticsControlConsole.js":97997,"./Safe":54431,"./Safe.js":54431,"./SatelliteControl":29740,"./SatelliteControl.js":29740,"./SecureStorage":44162,"./SecureStorage.js":44162,"./SecurityRecords":6272,"./SecurityRecords.js":6272,"./SeedExtractor":5099,"./SeedExtractor.js":5099,"./Shop":17474,"./Shop.js":17474,"./ShuttleConsole":2916,"./ShuttleConsole.js":2916,"./ShuttleManipulator":39401,"./ShuttleManipulator.js":39401,"./SingularityMonitor":86013,"./SingularityMonitor.js":86013,"./Sleeper":88284,"./Sleeper.js":88284,"./SlotMachine":21597,"./SlotMachine.js":21597,"./Smartfridge":46348,"./Smartfridge.js":46348,"./Smes":86162,"./Smes.js":86162,"./SolarControl":63584,"./SolarControl.js":63584,"./SpawnersMenu":38096,"./SpawnersMenu.js":38096,"./SpecMenu":30586,"./SpecMenu.js":30586,"./StackCraft":95152,"./StackCraft.js":95152,"./StationAlertConsole":38307,"./StationAlertConsole.js":38307,"./StationTraitsPanel":96091,"./StationTraitsPanel.tsx":96091,"./StripMenu":39409,"./StripMenu.tsx":39409,"./SuitStorage":69514,"./SuitStorage.js":69514,"./SupermatterMonitor":15022,"./SupermatterMonitor.js":15022,"./SyndicateComputerSimple":46029,"./SyndicateComputerSimple.js":46029,"./TEG":36372,"./TEG.js":36372,"./TTSSeedsExplorer":23190,"./TTSSeedsExplorer.tsx":23190,"./TachyonArray":56441,"./TachyonArray.js":56441,"./Tank":1754,"./Tank.js":1754,"./TankDispenser":7579,"./TankDispenser.js":7579,"./TcommsCore":16136,"./TcommsCore.js":16136,"./TcommsRelay":88046,"./TcommsRelay.js":88046,"./Teleporter":20802,"./Teleporter.js":20802,"./TelescienceConsole":48517,"./TelescienceConsole.js":48517,"./TempGun":21800,"./TempGun.js":21800,"./TextInputModal":24410,"./TextInputModal.tsx":24410,"./ThermoMachine":25036,"./ThermoMachine.js":25036,"./TransferValve":20035,"./TransferValve.js":20035,"./TurbineComputer":78166,"./TurbineComputer.js":78166,"./Uplink":52847,"./Uplink.js":52847,"./Vending":12261,"./Vending.js":12261,"./VolumeMixer":68971,"./VolumeMixer.js":68971,"./VotePanel":2510,"./VotePanel.js":2510,"./Wires":30138,"./Wires.js":30138,"./WizardApprenticeContract":21400,"./WizardApprenticeContract.js":21400,"./common/AccessList":49148,"./common/AccessList.js":49148,"./common/AtmosScan":26991,"./common/AtmosScan.js":26991,"./common/BeakerContents":85870,"./common/BeakerContents.js":85870,"./common/BotStatus":92963,"./common/BotStatus.js":92963,"./common/ComplexModal":3939,"./common/ComplexModal.js":3939,"./common/CrewManifest":41874,"./common/CrewManifest.js":41874,"./common/InputButtons":19203,"./common/InputButtons.tsx":19203,"./common/InterfaceLockNoticeBox":195,"./common/InterfaceLockNoticeBox.js":195,"./common/Loader":51057,"./common/Loader.tsx":51057,"./common/LoginInfo":321,"./common/LoginInfo.js":321,"./common/LoginScreen":5485,"./common/LoginScreen.js":5485,"./common/Operating":62411,"./common/Operating.js":62411,"./common/Signaler":13545,"./common/Signaler.js":13545,"./common/SimpleRecords":41984,"./common/SimpleRecords.js":41984,"./common/TemporaryNotice":22091,"./common/TemporaryNotice.js":22091,"./goonstation_PTL":95213,"./goonstation_PTL/":95213,"./goonstation_PTL/index":95213,"./goonstation_PTL/index.js":95213,"./pai/pai_atmosphere":80818,"./pai/pai_atmosphere.js":80818,"./pai/pai_bioscan":23903,"./pai/pai_bioscan.js":23903,"./pai/pai_directives":64988,"./pai/pai_directives.js":64988,"./pai/pai_doorjack":13813,"./pai/pai_doorjack.js":13813,"./pai/pai_main_menu":66025,"./pai/pai_main_menu.js":66025,"./pai/pai_manifest":2983,"./pai/pai_manifest.js":2983,"./pai/pai_medrecords":40758,"./pai/pai_medrecords.js":40758,"./pai/pai_messenger":98599,"./pai/pai_messenger.js":98599,"./pai/pai_radio":50775,"./pai/pai_radio.js":50775,"./pai/pai_secrecords":48623,"./pai/pai_secrecords.js":48623,"./pai/pai_signaler":47297,"./pai/pai_signaler.js":47297,"./pda/pda_atmos_scan":78532,"./pda/pda_atmos_scan.js":78532,"./pda/pda_games":2395,"./pda/pda_games.js":2395,"./pda/pda_janitor":40253,"./pda/pda_janitor.js":40253,"./pda/pda_main_menu":58293,"./pda/pda_main_menu.js":58293,"./pda/pda_manifest":58059,"./pda/pda_manifest.js":58059,"./pda/pda_medical":18147,"./pda/pda_medical.js":18147,"./pda/pda_messenger":77595,"./pda/pda_messenger.js":77595,"./pda/pda_minesweeper":90382,"./pda/pda_minesweeper.js":90382,"./pda/pda_mule":24635,"./pda/pda_mule.js":24635,"./pda/pda_nanobank":23734,"./pda/pda_nanobank.js":23734,"./pda/pda_notes":97085,"./pda/pda_notes.js":97085,"./pda/pda_power":57513,"./pda/pda_power.js":57513,"./pda/pda_secbot":99808,"./pda/pda_secbot.js":99808,"./pda/pda_security":77168,"./pda/pda_security.js":77168,"./pda/pda_signaler":21773,"./pda/pda_signaler.js":21773,"./pda/pda_status_display":81857,"./pda/pda_status_display.js":81857,"./pda/pda_supplyrecords":70287,"./pda/pda_supplyrecords.js":70287};function a(o){var f=t(o);return n(f)}function t(o){if(!n.o(e,o)){var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}return e[o]}a.keys=function(){return Object.keys(e)},a.resolve=t,A.exports=a,a.id=32054},4085:function(A,r,n){var e={"./Blink.stories.js":51364,"./BlockQuote.stories.js":32453,"./Box.stories.js":83531,"./Button.stories.js":74198,"./ByondUi.stories.js":51956,"./Collapsible.stories.js":17466,"./Flex.stories.js":89241,"./ImageButton.stories.js":48779,"./Input.stories.js":21394,"./Popper.stories.js":43932,"./ProgressBar.stories.js":33270,"./Stack.stories.js":77766,"./Storage.stories.js":30187,"./Tabs.stories.js":46554,"./Themes.stories.js":53276,"./Tooltip.stories.js":28717};function a(o){var f=t(o);return n(f)}function t(o){if(!n.o(e,o)){var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}return e[o]}a.keys=function(){return Object.keys(e)},a.resolve=t,A.exports=a,a.id=4085},10320:function(A,r,n){"use strict";var e=n(55747),a=n(89393),t=TypeError;A.exports=function(o){if(e(o))return o;throw new t(a(o)+" is not a function")}},32606:function(A,r,n){"use strict";var e=n(1031),a=n(89393),t=TypeError;A.exports=function(o){if(e(o))return o;throw new t(a(o)+" is not a constructor")}},35908:function(A,r,n){"use strict";var e=n(45015),a=String,t=TypeError;A.exports=function(o){if(e(o))return o;throw new t("Can't set "+a(o)+" as a prototype")}},80575:function(A,r,n){"use strict";var e=n(24697),a=n(80674),t=n(74595).f,o=e("unscopables"),f=Array.prototype;f[o]===void 0&&t(f,o,{configurable:!0,value:a(null)}),A.exports=function(b){f[o][b]=!0}},35483:function(A,r,n){"use strict";var e=n(50233).charAt;A.exports=function(a,t,o){return t+(o?e(a,t).length:1)}},60077:function(A,r,n){"use strict";var e=n(21287),a=TypeError;A.exports=function(t,o){if(e(o,t))return t;throw new a("Incorrect invocation")}},30365:function(A,r,n){"use strict";var e=n(77568),a=String,t=TypeError;A.exports=function(o){if(e(o))return o;throw new t(a(o)+" is not an object")}},70377:function(A){"use strict";A.exports=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"},3782:function(A,r,n){"use strict";var e=n(40033);A.exports=e(function(){if(typeof ArrayBuffer=="function"){var a=new ArrayBuffer(8);Object.isExtensible(a)&&Object.defineProperty(a,"a",{value:8})}})},4246:function(A,r,n){"use strict";var e=n(70377),a=n(58310),t=n(74685),o=n(55747),f=n(77568),b=n(45299),S=n(2281),I=n(89393),k=n(37909),g=n(55938),d=n(73936),c=n(21287),m=n(36917),l=n(76649),u=n(24697),s=n(16738),i=n(5419),h=i.enforce,C=i.get,v=t.Int8Array,p=v&&v.prototype,N=t.Uint8ClampedArray,V=N&&N.prototype,y=v&&m(v),B=p&&m(p),L=Object.prototype,w=t.TypeError,x=u("toStringTag"),T=s("TYPED_ARRAY_TAG"),M="TypedArrayConstructor",O=e&&!!l&&S(t.opera)!=="Opera",D=!1,E,P,R,j={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},F={BigInt64Array:8,BigUint64Array:8},W=function(){function ie(pe){if(!f(pe))return!1;var te=S(pe);return te==="DataView"||b(j,te)||b(F,te)}return ie}(),z=function ie(pe){var te=m(pe);if(f(te)){var q=C(te);return q&&b(q,M)?q[M]:ie(te)}},K=function(pe){if(!f(pe))return!1;var te=S(pe);return b(j,te)||b(F,te)},G=function(pe){if(K(pe))return pe;throw new w("Target is not a typed array")},J=function(pe){if(o(pe)&&(!l||c(y,pe)))return pe;throw new w(I(pe)+" is not a typed array constructor")},Q=function(pe,te,q,ne){if(a){if(q)for(var le in j){var ee=t[le];if(ee&&b(ee.prototype,pe))try{delete ee.prototype[pe]}catch(re){try{ee.prototype[pe]=te}catch(oe){}}}(!B[pe]||q)&&g(B,pe,q?te:O&&p[pe]||te,ne)}},ue=function(pe,te,q){var ne,le;if(a){if(l){if(q){for(ne in j)if(le=t[ne],le&&b(le,pe))try{delete le[pe]}catch(ee){}}if(!y[pe]||q)try{return g(y,pe,q?te:O&&y[pe]||te)}catch(ee){}else return}for(ne in j)le=t[ne],le&&(!le[pe]||q)&&g(le,pe,te)}};for(E in j)P=t[E],R=P&&P.prototype,R?h(R)[M]=P:O=!1;for(E in F)P=t[E],R=P&&P.prototype,R&&(h(R)[M]=P);if((!O||!o(y)||y===Function.prototype)&&(y=function(){function ie(){throw new w("Incorrect invocation")}return ie}(),O))for(E in j)t[E]&&l(t[E],y);if((!O||!B||B===L)&&(B=y.prototype,O))for(E in j)t[E]&&l(t[E].prototype,B);if(O&&m(V)!==B&&l(V,B),a&&!b(B,x)){D=!0,d(B,x,{configurable:!0,get:function(){function ie(){return f(this)?this[T]:void 0}return ie}()});for(E in j)t[E]&&k(t[E],T,E)}A.exports={NATIVE_ARRAY_BUFFER_VIEWS:O,TYPED_ARRAY_TAG:D&&T,aTypedArray:G,aTypedArrayConstructor:J,exportTypedArrayMethod:Q,exportTypedArrayStaticMethod:ue,getTypedArrayConstructor:z,isView:W,isTypedArray:K,TypedArray:y,TypedArrayPrototype:B}},37336:function(A,r,n){"use strict";var e=n(74685),a=n(67250),t=n(58310),o=n(70377),f=n(70520),b=n(37909),S=n(73936),I=n(30145),k=n(40033),g=n(60077),d=n(61365),c=n(10188),m=n(43806),l=n(95867),u=n(91784),s=n(36917),i=n(76649),h=n(88471),C=n(54602),v=n(5781),p=n(5774),N=n(84925),V=n(5419),y=f.PROPER,B=f.CONFIGURABLE,L="ArrayBuffer",w="DataView",x="prototype",T="Wrong length",M="Wrong index",O=V.getterFor(L),D=V.getterFor(w),E=V.set,P=e[L],R=P,j=R&&R[x],F=e[w],W=F&&F[x],z=Object.prototype,K=e.Array,G=e.RangeError,J=a(h),Q=a([].reverse),ue=u.pack,ie=u.unpack,pe=function(Ve){return[Ve&255]},te=function(Ve){return[Ve&255,Ve>>8&255]},q=function(Ve){return[Ve&255,Ve>>8&255,Ve>>16&255,Ve>>24&255]},ne=function(Ve){return Ve[3]<<24|Ve[2]<<16|Ve[1]<<8|Ve[0]},le=function(Ve){return ue(l(Ve),23,4)},ee=function(Ve){return ue(Ve,52,8)},re=function(Ve,Be,be){S(Ve[x],Be,{configurable:!0,get:function(){function Le(){return be(this)[Be]}return Le}()})},oe=function(Ve,Be,be,Le){var we=D(Ve),xe=m(be),Re=!!Le;if(xe+Be>we.byteLength)throw new G(M);var He=we.bytes,ye=xe+we.byteOffset,de=C(He,ye,ye+Be);return Re?de:Q(de)},fe=function(Ve,Be,be,Le,we,xe){var Re=D(Ve),He=m(be),ye=Le(+we),de=!!xe;if(He+Be>Re.byteLength)throw new G(M);for(var Ce=Re.bytes,ke=He+Re.byteOffset,ge=0;gewe)throw new G("Wrong offset");if(be=be===void 0?we-xe:c(be),xe+be>we)throw new G(T);E(this,{type:w,buffer:Ve,byteLength:be,byteOffset:xe,bytes:Le.bytes}),t||(this.buffer=Ve,this.byteLength=be,this.byteOffset=xe)}return he}(),W=F[x],t&&(re(R,"byteLength",O),re(F,"buffer",D),re(F,"byteLength",D),re(F,"byteOffset",D)),I(W,{getInt8:function(){function he(Ve){return oe(this,1,Ve)[0]<<24>>24}return he}(),getUint8:function(){function he(Ve){return oe(this,1,Ve)[0]}return he}(),getInt16:function(){function he(Ve){var Be=oe(this,2,Ve,arguments.length>1?arguments[1]:!1);return(Be[1]<<8|Be[0])<<16>>16}return he}(),getUint16:function(){function he(Ve){var Be=oe(this,2,Ve,arguments.length>1?arguments[1]:!1);return Be[1]<<8|Be[0]}return he}(),getInt32:function(){function he(Ve){return ne(oe(this,4,Ve,arguments.length>1?arguments[1]:!1))}return he}(),getUint32:function(){function he(Ve){return ne(oe(this,4,Ve,arguments.length>1?arguments[1]:!1))>>>0}return he}(),getFloat32:function(){function he(Ve){return ie(oe(this,4,Ve,arguments.length>1?arguments[1]:!1),23)}return he}(),getFloat64:function(){function he(Ve){return ie(oe(this,8,Ve,arguments.length>1?arguments[1]:!1),52)}return he}(),setInt8:function(){function he(Ve,Be){fe(this,1,Ve,pe,Be)}return he}(),setUint8:function(){function he(Ve,Be){fe(this,1,Ve,pe,Be)}return he}(),setInt16:function(){function he(Ve,Be){fe(this,2,Ve,te,Be,arguments.length>2?arguments[2]:!1)}return he}(),setUint16:function(){function he(Ve,Be){fe(this,2,Ve,te,Be,arguments.length>2?arguments[2]:!1)}return he}(),setInt32:function(){function he(Ve,Be){fe(this,4,Ve,q,Be,arguments.length>2?arguments[2]:!1)}return he}(),setUint32:function(){function he(Ve,Be){fe(this,4,Ve,q,Be,arguments.length>2?arguments[2]:!1)}return he}(),setFloat32:function(){function he(Ve,Be){fe(this,4,Ve,le,Be,arguments.length>2?arguments[2]:!1)}return he}(),setFloat64:function(){function he(Ve,Be){fe(this,8,Ve,ee,Be,arguments.length>2?arguments[2]:!1)}return he}()});else{var me=y&&P.name!==L;!k(function(){P(1)})||!k(function(){new P(-1)})||k(function(){return new P,new P(1.5),new P(NaN),P.length!==1||me&&!B})?(R=function(){function he(Ve){return g(this,j),v(new P(m(Ve)),this,R)}return he}(),R[x]=j,j.constructor=R,p(R,P)):me&&B&&b(P,"name",L),i&&s(W)!==z&&i(W,z);var Y=new F(new R(2)),ve=a(W.setInt8);Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),(Y.getInt8(0)||!Y.getInt8(1))&&I(W,{setInt8:function(){function he(Ve,Be){ve(this,Ve,Be<<24>>24)}return he}(),setUint8:function(){function he(Ve,Be){ve(this,Ve,Be<<24>>24)}return he}()},{unsafe:!0})}N(R,L),N(F,w),A.exports={ArrayBuffer:R,DataView:F}},71447:function(A,r,n){"use strict";var e=n(46771),a=n(13912),t=n(24760),o=n(95108),f=Math.min;A.exports=[].copyWithin||function(){function b(S,I){var k=e(this),g=t(k),d=a(S,g),c=a(I,g),m=arguments.length>2?arguments[2]:void 0,l=f((m===void 0?g:a(m,g))-c,g-d),u=1;for(c0;)c in k?k[d]=k[c]:o(k,d),d+=u,c+=u;return k}return b}()},88471:function(A,r,n){"use strict";var e=n(46771),a=n(13912),t=n(24760);A.exports=function(){function o(f){for(var b=e(this),S=t(b),I=arguments.length,k=a(I>1?arguments[1]:void 0,S),g=I>2?arguments[2]:void 0,d=g===void 0?S:a(g,S);d>k;)b[k++]=f;return b}return o}()},35601:function(A,r,n){"use strict";var e=n(22603).forEach,a=n(55528),t=a("forEach");A.exports=t?[].forEach:function(){function o(f){return e(this,f,arguments.length>1?arguments[1]:void 0)}return o}()},78008:function(A,r,n){"use strict";var e=n(24760);A.exports=function(a,t,o){for(var f=0,b=arguments.length>2?o:e(t),S=new a(b);b>f;)S[f]=t[f++];return S}},73174:function(A,r,n){"use strict";var e=n(75754),a=n(91495),t=n(46771),o=n(40125),f=n(76571),b=n(1031),S=n(24760),I=n(60102),k=n(77455),g=n(59201),d=Array;A.exports=function(){function c(m){var l=t(m),u=b(this),s=arguments.length,i=s>1?arguments[1]:void 0,h=i!==void 0;h&&(i=e(i,s>2?arguments[2]:void 0));var C=g(l),v=0,p,N,V,y,B,L;if(C&&!(this===d&&f(C)))for(N=u?new this:[],y=k(l,C),B=y.next;!(V=a(B,y)).done;v++)L=h?o(y,i,[V.value,v],!0):V.value,I(N,v,L);else for(p=S(l),N=u?new this(p):d(p);p>v;v++)L=h?i(l[v],v):l[v],I(N,v,L);return N.length=v,N}return c}()},14211:function(A,r,n){"use strict";var e=n(57591),a=n(13912),t=n(24760),o=function(b){return function(S,I,k){var g=e(S),d=t(g);if(d===0)return!b&&-1;var c=a(k,d),m;if(b&&I!==I){for(;d>c;)if(m=g[c++],m!==m)return!0}else for(;d>c;c++)if((b||c in g)&&g[c]===I)return b||c||0;return!b&&-1}};A.exports={includes:o(!0),indexOf:o(!1)}},22603:function(A,r,n){"use strict";var e=n(75754),a=n(67250),t=n(37457),o=n(46771),f=n(24760),b=n(57823),S=a([].push),I=function(g){var d=g===1,c=g===2,m=g===3,l=g===4,u=g===6,s=g===7,i=g===5||u;return function(h,C,v,p){for(var N=o(h),V=t(N),y=f(V),B=e(C,v),L=0,w=p||b,x=d?w(h,y):c||s?w(h,0):void 0,T,M;y>L;L++)if((i||L in V)&&(T=V[L],M=B(T,L,N),g))if(d)x[L]=M;else if(M)switch(g){case 3:return!0;case 5:return T;case 6:return L;case 2:S(x,T)}else switch(g){case 4:return!1;case 7:S(x,T)}return u?-1:m||l?l:x}};A.exports={forEach:I(0),map:I(1),filter:I(2),some:I(3),every:I(4),find:I(5),findIndex:I(6),filterReject:I(7)}},1325:function(A,r,n){"use strict";var e=n(61267),a=n(57591),t=n(61365),o=n(24760),f=n(55528),b=Math.min,S=[].lastIndexOf,I=!!S&&1/[1].lastIndexOf(1,-0)<0,k=f("lastIndexOf"),g=I||!k;A.exports=g?function(){function d(c){if(I)return e(S,this,arguments)||0;var m=a(this),l=o(m);if(l===0)return-1;var u=l-1;for(arguments.length>1&&(u=b(u,t(arguments[1]))),u<0&&(u=l+u);u>=0;u--)if(u in m&&m[u]===c)return u||0;return-1}return d}():S},44091:function(A,r,n){"use strict";var e=n(40033),a=n(24697),t=n(5026),o=a("species");A.exports=function(f){return t>=51||!e(function(){var b=[],S=b.constructor={};return S[o]=function(){return{foo:1}},b[f](Boolean).foo!==1})}},55528:function(A,r,n){"use strict";var e=n(40033);A.exports=function(a,t){var o=[][a];return!!o&&e(function(){o.call(null,t||function(){return 1},1)})}},56844:function(A,r,n){"use strict";var e=n(10320),a=n(46771),t=n(37457),o=n(24760),f=TypeError,b="Reduce of empty array with no initial value",S=function(k){return function(g,d,c,m){var l=a(g),u=t(l),s=o(l);if(e(d),s===0&&c<2)throw new f(b);var i=k?s-1:0,h=k?-1:1;if(c<2)for(;;){if(i in u){m=u[i],i+=h;break}if(i+=h,k?i<0:s<=i)throw new f(b)}for(;k?i>=0:s>i;i+=h)i in u&&(m=d(m,u[i],i,l));return m}};A.exports={left:S(!1),right:S(!0)}},13345:function(A,r,n){"use strict";var e=n(58310),a=n(37386),t=TypeError,o=Object.getOwnPropertyDescriptor,f=e&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(b){return b instanceof TypeError}}();A.exports=f?function(b,S){if(a(b)&&!o(b,"length").writable)throw new t("Cannot set read only .length");return b.length=S}:function(b,S){return b.length=S}},54602:function(A,r,n){"use strict";var e=n(67250);A.exports=e([].slice)},90274:function(A,r,n){"use strict";var e=n(54602),a=Math.floor,t=function o(f,b){var S=f.length;if(S<8)for(var I=1,k,g;I0;)f[g]=f[--g];g!==I++&&(f[g]=k)}else for(var d=a(S/2),c=o(e(f,0,d),b),m=o(e(f,d),b),l=c.length,u=m.length,s=0,i=0;s1?arguments[1]:void 0),M;M=M?M.next:x.first;)for(T(M.value,M.key,this);M&&M.removed;)M=M.previous}return L}(),has:function(){function L(w){return!!B(this,w)}return L}()}),t(N,C?{get:function(){function L(w){var x=B(this,w);return x&&x.value}return L}(),set:function(){function L(w,x){return y(this,w===0?0:w,x)}return L}()}:{add:function(){function L(w){return y(this,w=w===0?0:w,w)}return L}()}),d&&a(N,"size",{configurable:!0,get:function(){function L(){return V(this).size}return L}()}),p}return s}(),setStrong:function(){function s(i,h,C){var v=h+" Iterator",p=u(h),N=u(v);I(i,h,function(V,y){l(this,{type:v,target:V,state:p(V),kind:y,last:void 0})},function(){for(var V=N(this),y=V.kind,B=V.last;B&&B.removed;)B=B.previous;return!V.target||!(V.last=B=B?B.next:V.state.first)?(V.target=void 0,k(void 0,!0)):k(y==="keys"?B.key:y==="values"?B.value:[B.key,B.value],!1)},C?"entries":"values",!C,!0),g(h)}return s}()}},39895:function(A,r,n){"use strict";var e=n(67250),a=n(30145),t=n(81969).getWeakData,o=n(60077),f=n(30365),b=n(42871),S=n(77568),I=n(49450),k=n(22603),g=n(45299),d=n(5419),c=d.set,m=d.getterFor,l=k.find,u=k.findIndex,s=e([].splice),i=0,h=function(N){return N.frozen||(N.frozen=new C)},C=function(){this.entries=[]},v=function(N,V){return l(N.entries,function(y){return y[0]===V})};C.prototype={get:function(){function p(N){var V=v(this,N);if(V)return V[1]}return p}(),has:function(){function p(N){return!!v(this,N)}return p}(),set:function(){function p(N,V){var y=v(this,N);y?y[1]=V:this.entries.push([N,V])}return p}(),delete:function(){function p(N){var V=u(this.entries,function(y){return y[0]===N});return~V&&s(this.entries,V,1),!!~V}return p}()},A.exports={getConstructor:function(){function p(N,V,y,B){var L=N(function(M,O){o(M,w),c(M,{type:V,id:i++,frozen:void 0}),b(O)||I(O,M[B],{that:M,AS_ENTRIES:y})}),w=L.prototype,x=m(V),T=function(){function M(O,D,E){var P=x(O),R=t(f(D),!0);return R===!0?h(P).set(D,E):R[P.id]=E,O}return M}();return a(w,{delete:function(){function M(O){var D=x(this);if(!S(O))return!1;var E=t(O);return E===!0?h(D).delete(O):E&&g(E,D.id)&&delete E[D.id]}return M}(),has:function(){function M(O){var D=x(this);if(!S(O))return!1;var E=t(O);return E===!0?h(D).has(O):E&&g(E,D.id)}return M}()}),a(w,y?{get:function(){function M(O){var D=x(this);if(S(O)){var E=t(O);return E===!0?h(D).get(O):E?E[D.id]:void 0}}return M}(),set:function(){function M(O,D){return T(this,O,D)}return M}()}:{add:function(){function M(O){return T(this,O,!0)}return M}()}),L}return p}()}},45150:function(A,r,n){"use strict";var e=n(63964),a=n(74685),t=n(67250),o=n(41314),f=n(55938),b=n(81969),S=n(49450),I=n(60077),k=n(55747),g=n(42871),d=n(77568),c=n(40033),m=n(92490),l=n(84925),u=n(5781);A.exports=function(s,i,h){var C=s.indexOf("Map")!==-1,v=s.indexOf("Weak")!==-1,p=C?"set":"add",N=a[s],V=N&&N.prototype,y=N,B={},L=function(P){var R=t(V[P]);f(V,P,P==="add"?function(){function j(F){return R(this,F===0?0:F),this}return j}():P==="delete"?function(j){return v&&!d(j)?!1:R(this,j===0?0:j)}:P==="get"?function(){function j(F){return v&&!d(F)?void 0:R(this,F===0?0:F)}return j}():P==="has"?function(){function j(F){return v&&!d(F)?!1:R(this,F===0?0:F)}return j}():function(){function j(F,W){return R(this,F===0?0:F,W),this}return j}())},w=o(s,!k(N)||!(v||V.forEach&&!c(function(){new N().entries().next()})));if(w)y=h.getConstructor(i,s,C,p),b.enable();else if(o(s,!0)){var x=new y,T=x[p](v?{}:-0,1)!==x,M=c(function(){x.has(1)}),O=m(function(E){new N(E)}),D=!v&&c(function(){for(var E=new N,P=5;P--;)E[p](P,P);return!E.has(-0)});O||(y=i(function(E,P){I(E,V);var R=u(new N,E,y);return g(P)||S(P,R[p],{that:R,AS_ENTRIES:C}),R}),y.prototype=V,V.constructor=y),(M||D)&&(L("delete"),L("has"),C&&L("get")),(D||T)&&L(p),v&&V.clear&&delete V.clear}return B[s]=y,e({global:!0,constructor:!0,forced:y!==N},B),l(y,s),v||h.setStrong(y,s,C),y}},5774:function(A,r,n){"use strict";var e=n(45299),a=n(97921),t=n(27193),o=n(74595);A.exports=function(f,b,S){for(var I=a(b),k=o.f,g=t.f,d=0;d"+g+""+S+">"}},5959:function(A){"use strict";A.exports=function(r,n){return{value:r,done:n}}},37909:function(A,r,n){"use strict";var e=n(58310),a=n(74595),t=n(87458);A.exports=e?function(o,f,b){return a.f(o,f,t(1,b))}:function(o,f,b){return o[f]=b,o}},87458:function(A){"use strict";A.exports=function(r,n){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:n}}},60102:function(A,r,n){"use strict";var e=n(58310),a=n(74595),t=n(87458);A.exports=function(o,f,b){e?a.f(o,f,t(0,b)):o[f]=b}},67206:function(A,r,n){"use strict";var e=n(67250),a=n(40033),t=n(24051).start,o=RangeError,f=isFinite,b=Math.abs,S=Date.prototype,I=S.toISOString,k=e(S.getTime),g=e(S.getUTCDate),d=e(S.getUTCFullYear),c=e(S.getUTCHours),m=e(S.getUTCMilliseconds),l=e(S.getUTCMinutes),u=e(S.getUTCMonth),s=e(S.getUTCSeconds);A.exports=a(function(){return I.call(new Date(-50000000000001))!=="0385-07-25T07:06:39.999Z"})||!a(function(){I.call(new Date(NaN))})?function(){function i(){if(!f(k(this)))throw new o("Invalid time value");var h=this,C=d(h),v=m(h),p=C<0?"-":C>9999?"+":"";return p+t(b(C),p?6:4,0)+"-"+t(u(h)+1,2,0)+"-"+t(g(h),2,0)+"T"+t(c(h),2,0)+":"+t(l(h),2,0)+":"+t(s(h),2,0)+"."+t(v,3,0)+"Z"}return i}():I},10886:function(A,r,n){"use strict";var e=n(30365),a=n(13396),t=TypeError;A.exports=function(o){if(e(this),o==="string"||o==="default")o="string";else if(o!=="number")throw new t("Incorrect hint");return a(this,o)}},73936:function(A,r,n){"use strict";var e=n(20001),a=n(74595);A.exports=function(t,o,f){return f.get&&e(f.get,o,{getter:!0}),f.set&&e(f.set,o,{setter:!0}),a.f(t,o,f)}},55938:function(A,r,n){"use strict";var e=n(55747),a=n(74595),t=n(20001),o=n(18231);A.exports=function(f,b,S,I){I||(I={});var k=I.enumerable,g=I.name!==void 0?I.name:b;if(e(S)&&t(S,g,I),I.global)k?f[b]=S:o(b,S);else{try{I.unsafe?f[b]&&(k=!0):delete f[b]}catch(d){}k?f[b]=S:a.f(f,b,{value:S,enumerable:!1,configurable:!I.nonConfigurable,writable:!I.nonWritable})}return f}},30145:function(A,r,n){"use strict";var e=n(55938);A.exports=function(a,t,o){for(var f in t)e(a,f,t[f],o);return a}},18231:function(A,r,n){"use strict";var e=n(74685),a=Object.defineProperty;A.exports=function(t,o){try{a(e,t,{value:o,configurable:!0,writable:!0})}catch(f){e[t]=o}return o}},95108:function(A,r,n){"use strict";var e=n(89393),a=TypeError;A.exports=function(t,o){if(!delete t[o])throw new a("Cannot delete property "+e(o)+" of "+e(t))}},58310:function(A,r,n){"use strict";var e=n(40033);A.exports=!e(function(){return Object.defineProperty({},1,{get:function(){function a(){return 7}return a}()})[1]!==7})},12689:function(A,r,n){"use strict";var e=n(74685),a=n(77568),t=e.document,o=a(t)&&a(t.createElement);A.exports=function(f){return o?t.createElement(f):{}}},21291:function(A){"use strict";var r=TypeError,n=9007199254740991;A.exports=function(e){if(e>n)throw r("Maximum allowed index exceeded");return e}},652:function(A,r,n){"use strict";var e=n(63318),a=e.match(/firefox\/(\d+)/i);A.exports=!!a&&+a[1]},8180:function(A,r,n){"use strict";var e=n(73730),a=n(81702);A.exports=!e&&!a&&typeof window=="object"&&typeof document=="object"},49197:function(A){"use strict";A.exports=typeof Bun=="function"&&Bun&&typeof Bun.version=="string"},73730:function(A){"use strict";A.exports=typeof Deno=="object"&&Deno&&typeof Deno.version=="object"},19228:function(A,r,n){"use strict";var e=n(63318);A.exports=/MSIE|Trident/.test(e)},51802:function(A,r,n){"use strict";var e=n(63318);A.exports=/ipad|iphone|ipod/i.test(e)&&typeof Pebble!="undefined"},83433:function(A,r,n){"use strict";var e=n(63318);A.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(e)},81702:function(A,r,n){"use strict";var e=n(74685),a=n(7462);A.exports=a(e.process)==="process"},63383:function(A,r,n){"use strict";var e=n(63318);A.exports=/web0s(?!.*chrome)/i.test(e)},63318:function(A){"use strict";A.exports=typeof navigator!="undefined"&&String(navigator.userAgent)||""},5026:function(A,r,n){"use strict";var e=n(74685),a=n(63318),t=e.process,o=e.Deno,f=t&&t.versions||o&&o.version,b=f&&f.v8,S,I;b&&(S=b.split("."),I=S[0]>0&&S[0]<4?1:+(S[0]+S[1])),!I&&a&&(S=a.match(/Edge\/(\d+)/),(!S||S[1]>=74)&&(S=a.match(/Chrome\/(\d+)/),S&&(I=+S[1]))),A.exports=I},9342:function(A,r,n){"use strict";var e=n(63318),a=e.match(/AppleWebKit\/(\d+)\./);A.exports=!!a&&+a[1]},89453:function(A){"use strict";A.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},63964:function(A,r,n){"use strict";var e=n(74685),a=n(27193).f,t=n(37909),o=n(55938),f=n(18231),b=n(5774),S=n(41314);A.exports=function(I,k){var g=I.target,d=I.global,c=I.stat,m,l,u,s,i,h;if(d?l=e:c?l=e[g]||f(g,{}):l=e[g]&&e[g].prototype,l)for(u in k){if(i=k[u],I.dontCallGetSet?(h=a(l,u),s=h&&h.value):s=l[u],m=S(d?u:g+(c?".":"#")+u,I.forced),!m&&s!==void 0){if(typeof i==typeof s)continue;b(i,s)}(I.sham||s&&s.sham)&&t(i,"sham",!0),o(l,u,i,I)}}},40033:function(A){"use strict";A.exports=function(r){try{return!!r()}catch(n){return!0}}},79942:function(A,r,n){"use strict";n(79669);var e=n(91495),a=n(55938),t=n(14489),o=n(40033),f=n(24697),b=n(37909),S=f("species"),I=RegExp.prototype;A.exports=function(k,g,d,c){var m=f(k),l=!o(function(){var h={};return h[m]=function(){return 7},""[k](h)!==7}),u=l&&!o(function(){var h=!1,C=/a/;return k==="split"&&(C={},C.constructor={},C.constructor[S]=function(){return C},C.flags="",C[m]=/./[m]),C.exec=function(){return h=!0,null},C[m](""),!h});if(!l||!u||d){var s=/./[m],i=g(m,""[k],function(h,C,v,p,N){var V=C.exec;return V===t||V===I.exec?l&&!N?{done:!0,value:e(s,C,v,p)}:{done:!0,value:e(h,v,C,p)}:{done:!1}});a(String.prototype,k,i[0]),a(I,m,i[1])}c&&b(I[m],"sham",!0)}},65561:function(A,r,n){"use strict";var e=n(37386),a=n(24760),t=n(21291),o=n(75754),f=function b(S,I,k,g,d,c,m,l){for(var u=d,s=0,i=m?o(m,l):!1,h,C;s0&&e(h)?(C=a(h),u=b(S,I,h,C,u,c-1)-1):(t(u+1),S[u]=h),u++),s++;return u};A.exports=f},50730:function(A,r,n){"use strict";var e=n(40033);A.exports=!e(function(){return Object.isExtensible(Object.preventExtensions({}))})},61267:function(A,r,n){"use strict";var e=n(55050),a=Function.prototype,t=a.apply,o=a.call;A.exports=typeof Reflect=="object"&&Reflect.apply||(e?o.bind(t):function(){return o.apply(t,arguments)})},75754:function(A,r,n){"use strict";var e=n(71138),a=n(10320),t=n(55050),o=e(e.bind);A.exports=function(f,b){return a(f),b===void 0?f:t?o(f,b):function(){return f.apply(b,arguments)}}},55050:function(A,r,n){"use strict";var e=n(40033);A.exports=!e(function(){var a=function(){}.bind();return typeof a!="function"||a.hasOwnProperty("prototype")})},66284:function(A,r,n){"use strict";var e=n(67250),a=n(10320),t=n(77568),o=n(45299),f=n(54602),b=n(55050),S=Function,I=e([].concat),k=e([].join),g={},d=function(m,l,u){if(!o(g,l)){for(var s=[],i=0;i]*>)/g,I=/\$([$&'`]|\d{1,2})/g;A.exports=function(k,g,d,c,m,l){var u=d+k.length,s=c.length,i=I;return m!==void 0&&(m=a(m),i=S),f(l,i,function(h,C){var v;switch(o(C,0)){case"$":return"$";case"&":return k;case"`":return b(g,0,d);case"'":return b(g,u);case"<":v=m[b(C,1,-1)];break;default:var p=+C;if(p===0)return h;if(p>s){var N=t(p/10);return N===0?h:N<=s?c[N-1]===void 0?o(C,1):c[N-1]+o(C,1):h}v=c[p-1]}return v===void 0?"":v})}},74685:function(A,r,n){"use strict";var e=function(t){return t&&t.Math===Math&&t};A.exports=e(typeof globalThis=="object"&&globalThis)||e(typeof window=="object"&&window)||e(typeof self=="object"&&self)||e(typeof n.g=="object"&&n.g)||e(!1)||function(){return this}()||Function("return this")()},45299:function(A,r,n){"use strict";var e=n(67250),a=n(46771),t=e({}.hasOwnProperty);A.exports=Object.hasOwn||function(){function o(f,b){return t(a(f),b)}return o}()},79195:function(A){"use strict";A.exports={}},72259:function(A){"use strict";A.exports=function(r,n){try{arguments.length}catch(e){}}},5315:function(A,r,n){"use strict";var e=n(4009);A.exports=e("document","documentElement")},36223:function(A,r,n){"use strict";var e=n(58310),a=n(40033),t=n(12689);A.exports=!e&&!a(function(){return Object.defineProperty(t("div"),"a",{get:function(){function o(){return 7}return o}()}).a!==7})},91784:function(A){"use strict";var r=Array,n=Math.abs,e=Math.pow,a=Math.floor,t=Math.log,o=Math.LN2,f=function(I,k,g){var d=r(g),c=g*8-k-1,m=(1<>1,u=k===23?e(2,-24)-e(2,-77):0,s=I<0||I===0&&1/I<0?1:0,i=0,h,C,v;for(I=n(I),I!==I||I===1/0?(C=I!==I?1:0,h=m):(h=a(t(I)/o),v=e(2,-h),I*v<1&&(h--,v*=2),h+l>=1?I+=u/v:I+=u*e(2,1-l),I*v>=2&&(h++,v/=2),h+l>=m?(C=0,h=m):h+l>=1?(C=(I*v-1)*e(2,k),h+=l):(C=I*e(2,l-1)*e(2,k),h=0));k>=8;)d[i++]=C&255,C/=256,k-=8;for(h=h<0;)d[i++]=h&255,h/=256,c-=8;return d[--i]|=s*128,d},b=function(I,k){var g=I.length,d=g*8-k-1,c=(1<>1,l=d-7,u=g-1,s=I[u--],i=s&127,h;for(s>>=7;l>0;)i=i*256+I[u--],l-=8;for(h=i&(1<<-l)-1,i>>=-l,l+=k;l>0;)h=h*256+I[u--],l-=8;if(i===0)i=1-m;else{if(i===c)return h?NaN:s?-1/0:1/0;h+=e(2,k),i-=m}return(s?-1:1)*h*e(2,i-k)};A.exports={pack:f,unpack:b}},37457:function(A,r,n){"use strict";var e=n(67250),a=n(40033),t=n(7462),o=Object,f=e("".split);A.exports=a(function(){return!o("z").propertyIsEnumerable(0)})?function(b){return t(b)==="String"?f(b,""):o(b)}:o},5781:function(A,r,n){"use strict";var e=n(55747),a=n(77568),t=n(76649);A.exports=function(o,f,b){var S,I;return t&&e(S=f.constructor)&&S!==b&&a(I=S.prototype)&&I!==b.prototype&&t(o,I),o}},40492:function(A,r,n){"use strict";var e=n(67250),a=n(55747),t=n(40095),o=e(Function.toString);a(t.inspectSource)||(t.inspectSource=function(f){return o(f)}),A.exports=t.inspectSource},81969:function(A,r,n){"use strict";var e=n(63964),a=n(67250),t=n(79195),o=n(77568),f=n(45299),b=n(74595).f,S=n(37310),I=n(81644),k=n(81834),g=n(16738),d=n(50730),c=!1,m=g("meta"),l=0,u=function(N){b(N,m,{value:{objectID:"O"+l++,weakData:{}}})},s=function(N,V){if(!o(N))return typeof N=="symbol"?N:(typeof N=="string"?"S":"P")+N;if(!f(N,m)){if(!k(N))return"F";if(!V)return"E";u(N)}return N[m].objectID},i=function(N,V){if(!f(N,m)){if(!k(N))return!0;if(!V)return!1;u(N)}return N[m].weakData},h=function(N){return d&&c&&k(N)&&!f(N,m)&&u(N),N},C=function(){v.enable=function(){},c=!0;var N=S.f,V=a([].splice),y={};y[m]=1,N(y).length&&(S.f=function(B){for(var L=N(B),w=0,x=L.length;w